Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Python: Add Comm.wait_any
[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 register 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 668
634 #define YY_END_OF_BUFFER 669
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[4108] =
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,  669,  667,   16,   10,   10,   16,   16,  647,
680        10,  647,    5,    6,    5,    8,    9,    8,  663,  655,
681       656,  664,  661,  664,  662,  666,  655,  656,  666,   43,
682        10,   43,   43,   43,   41,   43,   43,   47,   10,   47,
683        47,  667,   47,  667,   47,   47,  667,  667,   47,  667,
684        47,  667,   47,   68,   10,   68,   68,   68,   66,   68,
685        68,   68,   72,   10,   72,  667,   72,   89,   10,   89,
686        89,   89,   87,   89,   89,   89,   89,   89,   93,   10,
687
688        93,  667,   93,  100,   10,  100,  100,  100,   98,  100,
689       104,   10,  104,  115,   10,  115,  115,  115,  113,  115,
690       115,  115,  119,   10,  119,  132,   10,  132,  132,  132,
691       130,  132,  132,  132,  136,   10,  136,  136,  145,   10,
692       145,  145,  145,  143,  145,  145,  149,   10,  149,  149,
693       162,   10,  162,  162,  162,  160,  162,  162,  162,  166,
694        10,  166,  166,  185,   10,  185,  185,  185,  183,  185,
695       185,  185,  185,  185,  185,  189,   10,  189,  244,   10,
696       244,  244,  244,  242,  244,  244,  244,  244,  244,  244,
697       244,  244,  248,   10,  248,  248,  255,   10,  255,  255,
698
699       255,  253,  255,  259,   10,  259,  259,  280,   10,  280,
700       280,  280,  278,  280,  280,  280,  280,  280,  284,   10,
701       284,  667,  284,  295,   10,  295,  295,  295,  293,  295,
702       295,  295,  299,   10,  299,  306,   10,  306,  306,  306,
703       304,  306,  310,   10,  310,  667,  310,  335,   10,  335,
704       335,  335,  333,  335,  335,  335,  335,  339,   10,  339,
705       339,  352,   10,  352,  352,  352,  350,  352,  352,  356,
706        10,  356,  365,   10,  365,  365,  365,  363,  365,  365,
707       369,   10,  369,  378,   10,  378,  378,  378,  376,  378,
708       378,  382,   10,  382,  405,   10,  405,  405,  405,  403,
709
710       405,  405,  405,  405,  405,  405,  409,   10,  409,  667,
711       416,   10,  416,  416,  416,  414,  416,  420,   10,  420,
712       420,  667,  420,  667,  420,  437,   10,  437,  437,  437,
713       435,  437,  437,  437,  437,  437,  441,   10,  441,  441,
714       450,   10,  450,  450,  450,  448,  450,  450,  454,   10,
715       454,  481,   10,  481,  481,  481,  479,  481,  481,  481,
716       481,  481,  485,   10,  485,  502,   10,  502,  502,  502,
717       500,  502,  502,  506,   10,  506,  506,  515,   10,  515,
718       515,  515,  513,  515,  515,  519,   10,  519,  532,   10,
719       532,  532,  532,  530,  532,  532,  532,  532,  536,   10,
720
721       536,  536,  549,   10,  549,  549,  549,  547,  549,  549,
722       549,  549,  553,   10,  553,  667,  553,  564,   10,  564,
723       564,  564,  562,  564,  564,  564,  664,  663,  586,   10,
724       586,  586,  586,  584,  586,  586,  586,  590,   10,  590,
725       617,   10,  617,  617,  617,  615,  617,  617,  621,   10,
726       621,  621,  621,  667,  621,  621,  621,  621,  621,  642,
727        10,  642,  642,  642,  640,  642,  642,  642,  646,   10,
728       646,  646,   10,    0,    2,    2,    0,    4,    7,  658,
729       657,    0,    0,    0,    0,    0,    0,   42,   44,   44,
730        44,    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,    0,
735        67,   69,   69,   69,   69,   69,    0,    0,   88,   90,
736        90,   90,   90,   90,   90,    0,    0,   99,  101,  101,
737         0,  114,  116,  116,  116,  116,    0,  131,  133,  133,
738       133,  133,    0,  144,  146,  146,  146,    0,  161,  163,
739       163,  163,  163,    0,  184,  186,  186,  186,  186,  186,
740       186,  186,  186,    0,  243,  245,  245,  245,  245,  245,
741       245,  245,  245,  245,  245,  245,  245,  245,  245,  245,
742
743         0,  254,  256,  256,    0,  279,  281,  281,  281,  281,
744       281,  281,  281,    0,    0,  294,  296,  296,  296,  296,
745         0,  305,  307,  307,    0,  334,  336,  336,  336,  336,
746       336,  336,    0,  351,  353,  353,  353,    0,  364,  366,
747       366,  366,    0,  377,  379,  379,  379,    0,  404,  406,
748       406,  406,  406,  406,  406,  406,  406,    0,    0,  415,
749       417,  417,    0,    0,    0,    0,    0,    0,    0,  436,
750       438,  438,  438,  438,  438,  438,    0,  449,  451,  451,
751       451,    0,  480,  482,  482,  482,  482,  482,  482,  482,
752       482,  482,    0,  501,  503,  503,  503,  503,    0,  514,
753
754       516,  516,  516,    0,  531,  533,  533,  533,  533,  533,
755         0,  548,  550,  550,  550,  550,  550,    0,    0,  563,
756       565,  565,  565,  565,    0,    0,    0,  585,  587,  587,
757       587,  587,    0,  616,  618,  618,  618,    0,    0,  641,
758       643,  643,  643,  643,  643,    0,    0,    0,    0,    0,
759         3,    0,    0,    0,    0,    0,    0,    0,  665,    0,
760         0,   44,    0,    0,   18,    0,    0,    0,    0,    0,
761         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
762         0,    0,    0,    0,    0,   17,    0,    0,    0,    0,
763         0,    0,    0,    0,    0,    0,    0,    0,   17,    0,
764
765         0,   18,    0,    0,    0,    0,   69,   69,   69,   69,
766         0,    0,    0,   90,   90,   90,   90,   90,    0,    0,
767         0,  101,    0,    0,  116,    0,    0,  116,    0,    0,
768       133,  133,  133,    0,    0,  146,  146,    0,    0,  163,
769       163,  163,    0,    0,    0,    0,    0,    0,  186,  186,
770       186,  186,  186,    0,    0,  245,    0,    0,  245,    0,
771         0,  245,  245,  245,  245,  245,  245,  245,  245,  245,
772       245,    0,    0,    0,    0,    0,    0,  281,  281,  281,
773         0,    0,  281,  281,  281,    0,    0,    0,  296,    0,
774         0,    0,    0,    0,    0,  307,    0,    0,  336,    0,
775
776         0,  336,  336,  336,    0,    0,  353,    0,    0,    0,
777         0,    0,    0,  366,    0,    0,  379,  379,    0,    0,
778       406,  406,  406,    0,    0,  406,  406,  406,    0,    0,
779         0,  417,    0,    0,    0,    0,    0,    0,  438,  438,
780       438,  438,  438,    0,    0,    0,    0,  451,    0,    0,
781       482,    0,    0,  482,  482,  482,  482,  482,  482,    0,
782         0,  503,  503,  503,    0,    0,  516,    0,    0,    0,
783         0,  533,  533,    0,    0,  533,    0,    0,  550,    0,
784         0,  550,  550,    0,    0,    0,  565,    0,    0,  565,
785         0,    0,    0,  660,  587,  587,  587,    0,    0,    0,
786
787         0,  618,    0,    0,  643,  643,  643,  643,    0,    0,
788         0,   15,    1,    0,    0,  653,    0,    0,    0,  650,
789       649,    0,    0,   20,   19,   44,    0,    0,   46,    0,
790        18,    0,    0,    0,    0,    0,    0,    0,    0,    0,
791         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
792         0,    0,    0,   17,    0,    0,    0,    0,    0,    0,
793         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
794         0,    0,    0,    0,    0,   69,   69,    0,    0,   69,
795         0,    0,   71,    0,    0,   90,   90,   90,   90,   90,
796         0,    0,   92,    0,    0,  101,    0,    0,  103,    0,
797
798       116,    0,  110,  109,  116,    0,    0,  118,    0,    0,
799         0,  133,  133,    0,    0,    0,    0,  135,    0,    0,
800         0,    0,    0,    0,    0,  148,    0,    0,    0,  163,
801       163,    0,    0,    0,    0,  165,    0,    0,  170,  169,
802         0,  172,  171,    0,    0,  186,  186,  186,  186,    0,
803         0,  188,    0,  245,  245,  245,    0,  201,  200,  245,
804         0,  205,  204,    0,    0,  245,  245,  245,  245,  245,
805       245,  245,  245,  245,    0,    0,  247,    0,    0,  252,
806       251,    0,    0,  258,    0,  281,  281,  281,    0,  269,
807       268,  281,  281,  281,    0,    0,  283,    0,    0,  296,
808
809         0,  290,  289,    0,  292,  291,    0,    0,  298,    0,
810       307,    0,    0,  309,    0,  336,    0,  318,  317,  336,
811       336,  336,    0,    0,  338,    0,  353,    0,  349,  348,
812         0,    0,  355,    0,    0,  360,  359,  366,    0,    0,
813       368,    0,  379,  379,    0,    0,  381,    0,  406,  406,
814       406,  406,    0,  394,  393,    0,    0,  406,  406,    0,
815         0,  408,    0,    0,  417,    0,    0,  419,    0,    0,
816         0,    0,    0,  438,  438,  438,  438,  438,    0,    0,
817       440,    0,    0,  445,  444,  451,    0,    0,  453,    0,
818       482,    0,  466,  465,    0,    0,  482,    0,    0,  482,
819
820       482,  482,    0,    0,  484,    0,    0,    0,    0,    0,
821       503,    0,    0,  505,    0,  516,    0,  512,  511,    0,
822         0,  518,    0,  533,  533,    0,  527,  526,  533,    0,
823         0,  535,    0,  550,    0,  542,  541,  550,  550,    0,
824         0,  552,    0,    0,  565,    0,  559,  558,  565,    0,
825         0,    0,  567,    0,  587,  587,  587,    0,    0,  589,
826         0,    0,  594,  593,  618,    0,    0,  620,    0,    0,
827         0,  643,  643,    0,    0,  643,    0,    0,  645,    0,
828         0,    0,  654,  648,    0,    0,   44,    0,   45,    0,
829         0,    0,    0,    0,    0,    0,    0,  261,    0,  312,
830
831         0,    0,  384,    0,    0,  443,    0,    0,    0,    0,
832       592,  442,    0,    0,    0,    0,    0,  260,    0,  311,
833       383,    0,    0,    0,  591,    0,  591,  592,    0,    0,
834         0,    0,   51,   50,   69,   69,    0,   57,   56,   69,
835         0,  311,   90,    0,    0,   90,   90,   90,    0,    0,
836       101,    0,  116,  116,    0,    0,  123,  122,  133,  133,
837         0,  129,  128,    0,    0,  140,  139,    0,  142,  141,
838         0,    0,  153,  152,  163,  163,    0,  159,  158,    0,
839         0,  174,  173,  186,  186,  186,  186,    0,  245,  245,
840       245,    0,    0,    0,  207,  206,  245,  245,  245,  245,
841
842       245,  245,  245,  245,  245,  245,    0,    0,  281,  281,
843         0,    0,  281,  281,  281,    0,    0,    0,    0,    0,
844         0,    0,    0,  336,  336,  336,  336,    0,  353,    0,
845       366,    0,    0,    0,  379,    0,  406,  406,  406,  406,
846         0,  396,  395,  406,  406,    0,    0,  417,    0,    0,
847         0,    0,    0,  438,    0,    0,  438,  438,  438,    0,
848       451,    0,  482,    0,  468,  467,    0,    0,    0,  472,
849       471,  482,    0,    0,  482,    0,    0,  489,  488,    0,
850       491,  490,  503,    0,  516,    0,  533,  533,  533,    0,
851       550,  550,    0,    0,    0,    0,    0,    0,  565,    0,
852
853         0,  587,    0,    0,  587,    0,  618,    0,    0,  625,
854       624,  643,  643,    0,  631,  630,  643,    0,    0,    0,
855         0,   12,    0,  651,  652,   44,    0,   73,    0,    0,
856         0,    0,    0,    0,  261,    0,    0,  312,    0,    0,
857       370,  384,    0,    0,  443,    0,  487,    0,  555,  592,
858         0,  442,    0,    0,    0,    0,    0,  260,    0,    0,
859       311,  383,  486,    0,  554,  591,    0,    0,    0,  487,
860       486,   69,   69,   69,    0,    0,   90,    0,   78,   77,
861        90,   90,   90,    0,    0,    0,    0,    0,  116,  116,
862         0,  133,  133,    0,    0,  163,  163,    0,  186,  186,
863
864         0,    0,  186,    0,    0,    0,  245,  245,    0,  203,
865       202,  245,  245,  245,  245,  245,  245,    0,    0,  245,
866       245,  245,    0,    0,  281,  281,    0,  267,  266,  281,
867         0,    0,  281,  281,    0,  371,    0,  288,  287,    0,
868         0,  303,  302,    0,  336,  336,  336,  336,    0,  353,
869         0,    0,    0,    0,    0,  373,  372,  379,    0,  406,
870         0,    0,  406,  406,    0,    0,  406,  406,    0,    0,
871       417,    0,   74,    0,    0,    0,  438,    0,  426,  425,
872       438,  438,  438,    0,    0,    0,    0,  482,    0,  470,
873       469,  482,    0,  476,  475,  482,    0,  503,    0,  516,
874
875         0,  533,  533,  533,    0,  550,    0,    0,    0,  546,
876       545,    0,    0,    0,  557,  556,  565,    0,    0,  587,
877         0,    0,    0,    0,    0,    0,  618,    0,  643,  643,
878       643,    0,    0,    0,    0,   11,   44,    0,   73,    0,
879         0,    0,    0,    0,  249,    0,    0,    0,    0,  370,
880         0,    0,  455,  487,  508,    0,  555,    0,    0,    0,
881         0,    0,    0,    0,    0,    0,  486,  507,    0,  554,
882         0,    0,    0,    0,    0,    0,    0,    0,   69,    0,
883         0,   90,   90,   90,   90,    0,    0,    0,   97,   96,
884         0,  116,  116,    0,    0,    0,    0,    0,    0,    0,
885
886         0,    0,    0,    0,    0,    0,    0,  186,    0,  180,
887       179,    0,    0,    0,    0,  193,  192,    0,    0,  245,
888       245,  245,    0,    0,  245,  245,  245,    0,  229,  228,
889         0,    0,  245,  245,    0,    0,  281,  281,    0,    0,
890         0,  273,  272,  281,  281,    0,  282,  371,    0,    0,
891       336,  336,  336,  336,    0,  337,  353,    0,    0,  362,
892       361,    0,  379,    0,  406,    0,  388,  387,    0,    0,
893       406,    0,  398,  397,  406,  406,    0,  407,    0,  417,
894         0,   74,  250,    0,  456,  438,  438,  438,  438,    0,
895         0,  447,  446,    0,  452,  482,  482,  482,    0,  503,
896
897         0,  516,    0,    0,    0,  533,    0,    0,    0,  550,
898         0,  544,  543,    0,    0,  565,    0,    0,  587,    0,
899         0,    0,    0,    0,    0,    0,    0,    0,  583,  582,
900         0,  618,    0,  619,    0,    0,    0,    0,  643,    0,
901         0,    0,    0,    0,    0,   49,    0,    0,    0,    0,
902         0,  168,  191,  249,    0,  301,    0,    0,    0,  421,
903       455,  508,  521,    0,    0,   48,    0,    0,    0,    0,
904       167,  190,    0,  300,  507,  520,    0,    0,    0,   53,
905        52,    0,   55,   54,   69,    0,    0,   90,   90,   90,
906        90,    0,   91,    0,    0,  116,    0,    0,    0,    0,
907
908       125,  124,    0,  127,  126,    0,    0,    0,  155,  154,
909         0,  157,  156,    0,    0,  176,  175,    0,    0,    0,
910       182,  181,    0,    0,  195,  194,  245,  245,  245,    0,
911       215,  214,    0,    0,  245,  245,    0,  231,  230,  245,
912       245,    0,    0,  281,  281,    0,  271,  270,  281,  281,
913         0,    0,  336,    0,    0,  336,  336,  336,  353,    0,
914         0,  379,    0,  380,  406,    0,  390,  389,  406,  406,
915       406,    0,    0,    0,    0,  250,  422,  456,  438,  438,
916       438,  438,    0,  482,    0,    0,  482,    0,  503,    0,
917       504,  516,    0,    0,  523,  522,    0,    0,    0,  529,
918
919       528,    0,    0,    0,    0,    0,  565,    0,    0,  566,
920         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
921         0,    0,    0,    0,    0,    0,  627,  626,    0,  629,
922       628,  643,    0,    0,    0,    0,    0,    0,    0,   49,
923        94,  106,    0,    0,    0,  168,  191,    0,  301,  340,
924         0,  410,  421,  521,    0,    0,    0,   48,  105,    0,
925         0,    0,  167,  190,    0,  300,  520,    0,    0,    0,
926        69,    0,  341,    0,    0,   90,   90,   90,   95,    0,
927       116,    0,  112,  111,    0,    0,    0,    0,    0,  178,
928       177,    0,  245,  245,  245,    0,  217,  216,  245,  245,
929
930       245,    0,    0,    0,    0,  257,  281,  281,  281,  281,
931         0,    0,  336,    0,  320,  319,  336,  336,  336,  353,
932         0,    0,  379,  406,  406,  406,  406,  411,    0,  413,
933       412,    0,  422,    0,    0,  438,  438,  438,    0,  482,
934         0,  474,  473,  482,    0,  483,  503,  516,    0,  517,
935         0,  525,  524,    0,    0,  540,  539,    0,    0,  565,
936       659,    0,  571,  570,    0,    0,    0,    0,    0,    0,
937         0,    0,    0,    0,    0,    0,    0,    0,  643,    0,
938         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
939         0,    0,    0,   94,  106,    0,    0,    0,  286,  340,
940
941         0,  410,    0,    0,  623,  105,    0,    0,    0,  285,
942         0,    0,  622,   69,    0,   70,  341,    0,   76,   75,
943         0,    0,   90,   90,   95,    0,    0,    0,    0,    0,
944         0,    0,    0,  187,  245,  245,  245,  245,    0,    0,
945       245,  245,    0,    0,    0,    0,  246,  281,  281,  281,
946       281,    0,    0,  308,    0,    0,  336,  336,  336,  336,
947         0,    0,    0,    0,    0,    0,  406,  406,  406,  406,
948       411,    0,    0,  424,  423,    0,    0,  438,  438,    0,
949       439,    0,    0,  482,  503,  516,    0,  534,    0,    0,
950       565,    0,    0,    0,    0,    0,    0,    0,    0,    0,
951
952         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
953         0,    0,  643,    0,    0,    0,    0,    0,    0,    0,
954         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
955         0,    0,  286,  357,    0,    0,  623,    0,    0,    0,
956       285,    0,    0,  622,   69,    0,   80,   79,    0,    0,
957         0,    0,    0,  102,    0,  108,  107,    0,  117,    0,
958         0,    0,  245,  245,  245,  245,    0,  219,  218,  245,
959       245,    0,    0,    0,    0,    0,    0,  281,  281,    0,
960         0,    0,    0,    0,    0,  314,  313,  336,  336,  336,
961         0,    0,    0,    0,    0,    0,  354,    0,    0,  375,
962
963       374,  406,  406,    0,    0,    0,    0,    0,  418,    0,
964       428,  427,    0,    0,    0,    0,    0,    0,    0,  482,
965       503,  516,    0,  358,  565,    0,    0,    0,    0,    0,
966         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
967         0,    0,    0,    0,    0,    0,    0,    0,  643,    0,
968         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
969         0,    0,    0,    0,    0,    0,  138,    0,  357,    0,
970         0,    0,  137,    0,    0,    0,    0,    0,    0,    0,
971         0,    0,   86,   85,    0,    0,    0,  245,  245,    0,
972         0,  245,  245,  245,    0,    0,    0,    0,    0,    0,
973
974         0,    0,  281,    0,    0,    0,  275,  274,    0,  277,
975       276,    0,  297,  336,  336,  336,    0,  332,  331,    0,
976         0,    0,    0,    0,    0,    0,  406,    0,    0,    0,
977       400,  399,    0,  402,  401,    0,    0,    0,    0,  434,
978       433,    0,    0,    0,    0,    0,    0,  482,    0,    0,
979         0,    0,    0,  358,    0,    0,    0,    0,    0,    0,
980       575,    0,    0,    0,    0,  574,    0,    0,    0,    0,
981         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
982         0,    0,  644,    0,    0,    0,    0,    0,    0,    0,
983         0,    0,    0,    0,    0,    0,    0,    0,    0,  138,
984
985         0,  538,    0,    0,  137,    0,  537,    0,    0,    0,
986         0,    0,    0,    0,    0,    0,    0,    0,  245,    0,
987         0,    0,  211,  210,    0,    0,  245,  245,    0,    0,
988         0,    0,    0,    0,    0,    0,  281,    0,  265,  264,
989       336,    0,    0,  336,    0,    0,    0,    0,    0,    0,
990         0,  367,  406,    0,  392,  391,    0,    0,    0,    0,
991         0,    0,    0,    0,    0,    0,    0,    0,  482,    0,
992         0,    0,    0,  510,  509,    0,    0,  561,  560,    0,
993         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
994         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
995
996         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
997        22,   30,    0,    0,    0,    0,   21,   29,    0,  121,
998         0,  538,  569,  120,    0,  537,  568,    0,    0,    0,
999         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1000         0,  147,    0,  245,    0,  209,  208,    0,  213,  212,
1001       245,  245,    0,    0,    0,    0,    0,    0,    0,    0,
1002       281,  336,    0,  322,  321,  336,    0,    0,  343,    0,
1003         0,  342,  406,    0,    0,    0,    0,    0,    0,    0,
1004         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1005         0,    0,    0,    0,    0,    0,    0,    0,  581,    0,
1006
1007         0,    0,  580,    0,    0,    0,    0,    0,  596,  604,
1008         0,    0,    0,    0,  595,  603,    0,    0,    0,    0,
1009         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1010         0,    0,    0,   24,    0,    0,    0,   23,    0,  121,
1011         0,  569,  120,    0,  568,    0,    0,    0,    0,    0,
1012         0,    0,    0,    0,    0,    0,    0,    0,    0,  245,
1013         0,    0,  245,    0,    0,  235,    0,    0,    0,  234,
1014         0,  281,    0,    0,    0,    0,    0,    0,    0,    0,
1015       406,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1016         0,    0,    0,    0,  478,  477,    0,    0,    0,    0,
1017
1018         0,    0,    0,    0,    0,  551,    0,    0,    0,    0,
1019         0,    0,    0,    0,    0,  598,    0,    0,    0,  597,
1020         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1021         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1022         0,  151,  150,   61,    0,   65,    0,   60,    0,   64,
1023         0,   82,    0,   81,    0,    0,  134,    0,  245,    0,
1024         0,    0,    0,    0,    0,    0,  237,    0,    0,  236,
1025       281,    0,  316,  315,    0,    0,    0,  345,  347,  344,
1026       346,  406,  430,    0,  429,    0,    0,  464,  460,    0,
1027         0,  463,  459,    0,  495,    0,  499,    0,  494,    0,
1028
1029       498,    0,  579,    0,    0,  578,    0,    0,    0,  588,
1030         0,    0,    0,    0,    0,    0,  635,    0,  639,    0,
1031       634,    0,  638,    0,    0,    0,    0,   12,    0,   12,
1032         0,   34,    0,    0,    0,    0,   32,   33,    0,    0,
1033         0,    0,   31,  151,  150,   59,   63,   58,   62,    0,
1034         0,    0,  245,    0,    0,    0,    0,    0,  233,  232,
1035         0,    0,    0,    0,  281,    0,    0,    0,    0,  406,
1036         0,    0,    0,    0,    0,    0,  493,  497,  492,  496,
1037       573,  577,  572,  576,  608,    0,    0,    0,    0,  606,
1038       607,    0,    0,    0,    0,  605,  633,  637,  632,  636,
1039
1040         0,    0,    0,    0,    0,    0,    0,    0,   26,    0,
1041         0,    0,    0,   25,    0,    0,    0,    0,  164,    0,
1042         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1043         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1044         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1045         0,    0,    0,    0,  600,    0,    0,    0,    0,  599,
1046         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1047         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1048         0,    0,    0,    0,    0,  239,    0,  238,    0,  263,
1049       262,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1050
1051       386,  385,    0,    0,  458,    0,  457,    0,    0,    0,
1052         0,    0,    0,    0,    0,    0,    0,   11,    0,    0,
1053         0,    0,    0,    0,    0,    0,   84,   83,    0,    0,
1054         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1055       241,  240,    0,    0,    0,    0,    0,    0,    0,    0,
1056       432,  431,    0,    0,    0,    0,    0,    0,    0,    0,
1057         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1058         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1059         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1060         0,  462,  461,    0,    0,    0,    0,    0,    0,    0,
1061
1062         0,    0,    0,    0,   36,    0,    0,    0,   35,    0,
1063         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1064         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1065         0,    0,  610,    0,    0,    0,  609,    0,    0,    0,
1066         0,   28,    0,    0,   27,    0,    0,    0,    0,    0,
1067         0,  221,    0,    0,    0,  220,    0,    0,    0,  324,
1068         0,    0,    0,  323,    0,    0,    0,  602,    0,    0,
1069       601,    0,    0,   38,    0,   37,    0,    0,    0,    0,
1070       227,    0,    0,  226,    0,    0,  330,    0,    0,  329,
1071         0,    0,    0,  612,    0,  611,    0,    0,    0,    0,
1072
1073         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1074         0,    0,    0,    0,   40,   39,    0,  197,    0,  196,
1075         0,    0,    0,    0,    0,    0,    0,    0,  614,  613,
1076         0,    0,  199,  198,  225,    0,  224,    0,  328,    0,
1077       327,    0,    0,    0,  223,  222,  326,  325,    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,    0,    0,
1082         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1083
1084         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1085         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1086         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1087         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1088         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1089         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1090         0,    0,    0,    0,    0,    0,    0,   14,    0,    0,
1091         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1092         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1093         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1094
1095         0,    0,    0,    0,    0,   13,    0
1096     } ;
1097
1098 static const YY_CHAR yy_ec[256] =
1099     {   0,
1100         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
1101         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
1102         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1103         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
1104         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
1105        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
1106        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
1107        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
1108        31,   38,   39,   40,   41,   42,   43,   44,   45,   46,
1109        47,    1,   48,    1,   49,    1,   50,   51,   52,   53,
1110
1111        54,   55,   56,   57,   58,   59,   60,   61,   62,   63,
1112        64,   65,   66,   67,   68,   69,   70,   71,   72,   73,
1113        74,   75,    1,    1,    1,    1,    1,    1,    1,    1,
1114         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1115         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1116         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1117         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1118         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1119         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1120         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1121
1122         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1123         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1124         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1125         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1126         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1127         1,    1,    1,    1,    1
1128     } ;
1129
1130 static const YY_CHAR yy_meta[76] =
1131     {   0,
1132         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
1133         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
1134         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
1135         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
1136         5,    5,    5,    5,    5,    5,    1,    1,    5,    9,
1137         9,    9,    9,    9,    9,    5,    5,    5,    5,    5,
1138         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
1139         5,    5,    5,    5,    5
1140     } ;
1141
1142 static const flex_int16_t yy_base[4660] =
1143     {   0,
1144         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
1145        14,   17,   33,   36,   49,   55,   45,   61,  109,  176,
1146        66,   72,   76,   79,   83,  129,  132,  135,  140,  157,
1147       196,  199,  202,  207,  224,  227,  233,  236,  244,  253,
1148       256,  261,  264,  273,  281,  284,  290,  293,  301,  310,
1149       313,  318,  321,  330,  338,  341,  359,  427,  379,  382,
1150       385,  390,  407,  447,  450,  453,  495,  563,  458,  475,
1151       515,  518,  521,  526,  543,  583,  631,  702,  586,  589,
1152       773,  834,  594,  611,  895,  963,  651,  654,  657,  662,
1153       679,  682,  722,  725, 1031, 1099,  728,  733,  750,  753,
1154
1155       793,  796,  799,  804, 1167, 1235,  854,  857,  860,  865,
1156       915,  918,  921,  926, 1303, 1371,  943,  983, 1439, 1508,
1157       986,  989,  994, 1011, 1051, 1054, 1057, 1062, 1577, 1635,
1158      1079, 1119, 1122, 1125, 1130, 1147, 1187, 1190, 1693, 1761,
1159      1193, 1198, 1215, 1255, 1258, 1261, 1266, 1283, 1829, 1899,
1160      1323, 1326, 1969, 2024, 1329, 1334, 1391, 1394, 1397, 1402,
1161      1459, 1462, 2079, 2147, 1465, 1470, 1528, 1531, 1534, 1539,
1162      1597, 1600, 2215, 2273, 1603, 1608, 2331, 2402, 1655, 1658,
1163      2473, 2541, 1661, 1666, 2609, 2677, 1713, 1716, 1719, 1724,
1164      2745, 2816, 1781, 1784, 1787, 1792, 1849, 1852, 1855, 1860,
1165
1166      1877, 1919, 1922, 1925, 1930, 1947, 1989, 1992, 1995, 2000,
1167      2044, 2047, 2887, 2955, 2050, 2055, 2099, 2102, 2105, 2110,
1168      2167, 2170, 3023, 3094, 2173, 2178, 3165, 3233, 2235, 2238,
1169      3301, 3369, 2241, 2246, 2293, 2296, 2299, 2304, 2351, 2354,
1170      3437, 3495, 2357, 2362, 3553, 3622, 2379, 2382, 2422, 2425,
1171      2428, 2433, 2450, 2453, 3691, 3759, 2493, 2496, 2499, 2504,
1172      2521, 2561, 2564, 2567, 3827, 3892,  204, 2583, 3957, 4026,
1173      2572, 2590, 4095, 4162, 2630, 2633, 2636, 2640, 2697, 2700,
1174      2703, 2708, 2765, 2768, 2771, 2776, 2793, 2796, 2836, 2839,
1175      2842, 2847, 2864, 2867, 2907, 2910, 2913, 2918, 2935, 2975,
1176
1177      2978, 2981, 2986, 3003, 3043, 3046, 3049, 3054, 3071, 3074,
1178      4229, 4297, 3114, 3117, 3120, 3125, 3142, 3145, 3185, 3188,
1179         0,    0,11011,14106,14106,   96,  100,   29,   41,14106,
1180       103,   51,14106,14106,11000,14106,14106,10987,14106,11002,
1181     11002,  762,14106,14106,14106,14106,10996,10996,10950,14106,
1182       160,10975,    0,   87,14106,10941,10929,14106,  166, 4361,
1183     10923, 4432, 3142, 4503,  278,   76,10975,   26,  279, 3203,
1184       392,10974,   31,14106,  169,10963,    0,  144,14106,10914,
1185     10909,   81,14106,  347,  154,  188,  204,14106,  414,10956,
1186         0,  268,14106,10905,10910,10913,10907,10900,14106,  417,
1187
1188        16,10914,  325,14106,  420,10943,    0,  305,14106,10912,
1189     14106,  482,  393,14106,  485,10939,    0,  370,14106,10908,
1190     10904,10902,14106,  488,  461,14106,  554,10931,    0,  506,
1191     14106,10882,10875,10879,14106,  622,  541,  469,14106,  685,
1192     10925,    0,  527,14106,10872,10872,14106,  688,  609,  514,
1193     14106,  691,10918,    0,  530,14106,10867,10862,10866,14106,
1194       756,  754,  529,14106,  759,10908,    0,  533,14106,10855,
1195     10873,10873,10855,10871,   81,14106,  823,  865,14106,  885,
1196     10896,    0,  595,14106,  141,10851,10861,  545,10844,   90,
1197       606,10846,14106,  950,10897,  801,14106,  953,10884,    0,
1198
1199       713,14106,10850,14106,  956,10890,  861,14106, 1018,10879,
1200         0,  743,14106,10827,10833,10839,10823,  330,14106, 1021,
1201       295,10828,  862,14106, 1024,10867,    0,  784,14106,10822,
1202     10832,10815,14106, 1083,  929,14106, 1086,10859,    0,  811,
1203     14106,10820,14106, 1089,  616,  219,  867,14106, 1092,10855,
1204         0,  974,14106,10824,10820,10818,   20,14106, 1151,10855,
1205       872,14106, 1154,10846,    0,  997,14106,10805,10809,14106,
1206      1157, 1201,14106, 1160,10841,    0, 1042,14106,10803,10805,
1207     14106, 1222, 1269,14106, 1225,10834,    0, 1110,14106,10801,
1208     10781,14106, 1228, 1334,14106, 1290,10829,    0, 1178,14106,
1209
1210     10773,10771,10778,10786,10788,  398,14106, 1293, 1337, 1338,
1211     14106, 1296,10817,    0, 1246,14106,10778,14106, 1363, 3149,
1212       166, 1356, 1405,  597,  997,14106, 1422,10811,    0, 1314,
1213     14106,10760,10763,10768,10762,10751,14106, 1431,  297, 1005,
1214     14106, 1490,10799,    0, 1335,14106,10765,10765,14106, 1499,
1215      1348,14106, 1559,10794,    0, 1406,14106,10759,10755, 1421,
1216     10757,  796,14106, 1568, 1477,14106, 1625,10786,    0, 1409,
1217     14106,10735,  671,14106, 1628, 1483, 1065,14106, 1683,10782,
1218         0, 1519,14106,10737,10743,14106, 1686, 1546,14106, 1744,
1219     10775,    0, 1588,14106,10725,10727,10737,10715,14106, 1750,
1220
1221     10772, 1133,14106, 1753,10763,    0, 1612,14106,10718,10726,
1222     10714,10719,14106, 1812,  340,10710, 1322,14106, 1818,10751,
1223         0, 1646,14106,10712,10714,10712, 1863,10717,14106, 1821,
1224     10740,    0, 1670,14106,10698,10700,10688,14106, 1886, 1933,
1225     14106, 1889,10734,    0, 1704,14106,10700,10684,14106, 1894,
1226      3207,10682, 3208,10694, 3272, 1416, 1864, 3275, 1345,14106,
1227      1956,10723,    0, 1728,14106,10674,10669,  698,14106, 1959,
1228      1732, 1351, 1964,  866,10663,14106,10717,10706,14106,14106,
1229     14106, 2061,  179,10656,10651,10649,10698,14106,    0, 2643,
1230     10643,10690,10672, 1432,  420,  408,10642,10642,10646,10635,
1231
1232      1947,  555,10629,10630,10628, 2002,10652,  759,  683,10626,
1233     10622,10626, 2057,  558,10614,10611,10613,10637,  861, 2068,
1234     10607,10631,  888,10605,  956, 1024,  830,  944, 1157, 1092,
1235     14106,    0,10595,10614,10610,10595,10634,10597,14106,    0,
1236     10587,10581,10587,10594,10592,10591, 1487,14106,    0,10575,
1237     10585,14106,    0,10571, 3326,10560,10577,14106,    0,10558,
1238     10573,10569,10569,14106,    0,10546,10562,10562,14106,    0,
1239     10539,10558,10554,10550,14106,    0, 3332, 3339,10531,10545,
1240     10541,10539,10537,10535,14106,    0,10537, 3389,10518, 3392,
1241     10511,10517,10514,10519,10519,10501,10516,10511,10509,10494,
1242
1243     10506,14106,    0, 3395,10505,14106,    0,10502,  214, 3399,
1244     10482,10496,10495,10487,10479,14106,    0,10466, 3402, 3457,
1245     10480,14106,    0,10475,10473,14106,    0,10467, 3460,10460,
1246     10474,10473,10461,14106,    0,10450, 3463,10455,14106,    0,
1247      3467,10454, 9827,14106,    0, 9826, 9822, 9823,14106,    0,
1248      9834, 9834, 9818, 3471, 9812, 9826, 9828, 9812, 9814,14106,
1249         0, 9800, 9801, 1498, 1216, 2071, 1225, 1558, 2125,14106,
1250         0, 9801, 9788, 9794, 9804, 9794, 9777,14106,    0, 3515,
1251      9776, 9771,14106,    0, 9771, 3518, 9756, 9778, 9758, 9767,
1252      9764, 9764, 9736,14106,    0, 9733, 9748, 9729, 9722,14106,
1253
1254         0, 9721, 3521, 9716,14106,    0, 9713, 9717, 3525, 9714,
1255      9705,14106,    0, 9709, 3529, 9717, 9694, 9684, 9686,14106,
1256         0, 9686, 3573, 9677,   13, 9673, 9703,14106,    0, 9668,
1257      9657, 9665, 9645,14106,    0, 3576, 9642, 9631, 1616,14106,
1258         0, 9635, 9651, 9637, 9626, 9597, 9651, 9659, 1781, 9602,
1259     14106, 2006,    0, 9598, 9597, 9629, 9624, 9576,14106, 3579,
1260      2197, 9560, 3259, 3582, 2140, 9559, 9570, 9573, 9553, 9566,
1261      9545, 9544, 9538, 9552, 9540,  265, 9547, 9537, 9522, 9507,
1262      9499, 9502, 9514, 9496, 9494, 2263, 9504, 9479, 9492, 9471,
1263      9471, 9486, 9460, 9467, 9450, 9454, 9466, 9452, 2321, 9448,
1264
1265      9430, 2325, 9429, 9419, 9405, 9403, 3585, 3654, 3642, 3662,
1266      3335, 3647, 9409, 9407, 9389, 9395, 9400, 9382, 3651, 3730,
1267      9391, 9373, 3711, 3716, 9384, 3723, 2392, 9377, 3726, 3793,
1268      3782, 3796, 3785, 3788, 3848, 3851, 3854, 3857, 3863, 3912,
1269      3926, 3915, 3921, 3978, 3981, 2460, 3984, 2524, 3987, 3993,
1270      4005, 4057, 4062, 4047, 4068, 1954, 4075, 2593, 9376, 4117,
1271      2662, 4120, 9370, 9352, 9361, 9356, 9340, 9341, 9352, 9350,
1272      9339, 4124, 4127, 4130, 2728, 4182, 4187, 9343, 9333, 9344,
1273      4192, 2799, 9328, 9323, 9291, 4195, 4201,  285, 9294, 4250,
1274      2870, 4253, 3081, 4258, 4264, 9302, 4271, 4317, 9301, 4277,
1275
1276      3153, 9299, 9284, 9270, 4320, 4323, 9284, 4327, 3284, 4331,
1277      4352, 4345, 3357, 9262, 4355, 4367, 9273, 9259, 4358, 4382,
1278      9266,  473, 9249, 4386, 3421, 4389, 9259, 9239, 4394, 4397,
1279      9257, 9233, 4430, 4437, 9227, 9232, 9229, 9222, 9232, 9212,
1280      9219, 9223, 9210, 4440, 4445, 4459, 3604, 9205, 4465, 4468,
1281      9212, 4472, 3673, 4477, 9201, 4500, 9201, 9205, 9207, 4507,
1282      4512, 4518, 4526, 4537, 4546, 4555, 9181, 4577, 3681, 4580,
1283      4583, 9197, 9176, 4586, 3816, 9186, 4589, 4604, 9169, 4608,
1284      3940, 9183, 9181, 4611, 4614,  343, 9178, 4618, 4012, 9172,
1285      9188, 4626, 4636,14106, 9148, 9153, 9152, 4639, 4646, 4649,
1286
1287      4081, 9128, 4658, 4661, 4667, 4673, 4685, 4691, 4694, 4697,
1288      9163,14106,14106,  979, 9117,14106, 9159, 9158, 9105,14106,
1289     14106, 9096, 4148,14106,14106, 9106, 4703, 4716,14106, 4725,
1290      2207, 9094, 9093, 9085, 9080, 9089, 9071, 9060, 9071, 9049,
1291      9056, 9055, 9056, 9046, 9040, 9033,  497, 9048, 9030, 9027,
1292      9039, 9031,  565, 2210, 9020, 9014, 9023, 9009, 8998, 8995,
1293      8991, 8991, 8982, 8975, 8974, 8979, 8960, 8963, 8942, 8925,
1294      8926, 8875, 8845, 4728, 4210, 8840, 8834, 4731, 4284, 8846,
1295      4735, 4740,14106, 4754, 8795, 8767, 4760, 8704, 8694, 8654,
1296      4763, 4766,14106, 4769, 8629, 8629, 4773, 4778,14106, 4788,
1297
1298      8592, 4793,14106,14106, 8550, 4802, 4807,14106, 4810, 4813,
1299      4822, 8505, 8493, 4816, 4837, 4845, 4848,14106, 4851, 4854,
1300      4857, 4872, 4875, 4883, 4886,14106, 4890, 4893, 4896, 8479,
1301      8479, 4905, 4911, 4919, 4923,14106, 4926, 4929,14106,14106,
1302      4938,14106,14106, 4946, 4950, 8486, 8437, 8417, 8409, 4958,
1303      4964,14106, 4967, 8392, 8348, 8255, 4970,14106,14106, 4978,
1304      4986,14106,14106, 4996, 4999, 8148, 8078, 8055, 8059, 8056,
1305      7977, 7979, 7886, 1675, 5007, 5010,14106, 5017, 5020,14106,
1306     14106, 5029, 5032,14106, 5036, 7686, 7689, 5039, 5042,14106,
1307     14106, 7671, 7670, 7665, 5051, 5057,14106, 5060, 7521, 5063,
1308
1309      5066,14106,14106, 5082,14106,14106, 5090, 5093,14106, 5098,
1310      5101, 5104, 5112,14106, 5119, 7433, 5127,14106,14106, 7441,
1311      7430, 7381, 5123, 5138,14106, 5142, 7377, 5145,14106,14106,
1312      5153, 5157,14106, 5161, 5166,14106,14106, 7374, 5176, 5180,
1313     14106, 5183, 5187, 5190, 5195, 5208,14106, 5214, 7350, 7347,
1314         1,   72, 5217,14106,14106, 5227, 5235,   99,  120, 5245,
1315      5248,14106, 5251,  152,  174, 5254, 5257,14106, 5260,  186,
1316       206, 1809,  219,  229, 5279,  257,  277,  289, 5283, 5286,
1317     14106, 5289, 5293,14106,14106,  347, 5309, 5312,14106, 5315,
1318       359, 5318,14106,14106, 5335, 5338, 5346, 5353, 5357,  412,
1319
1320      5365,  487, 5371, 5374,14106, 5378, 5383, 5386, 5397, 5401,
1321       506, 5409, 5415,14106, 5418,  546, 5421,14106,14106, 5429,
1322      5440,14106, 5443,  616,  619, 5448,14106,14106,  666, 5462,
1323      5465,14106, 5469,  644, 5472,14106,14106,  638, 5488, 5491,
1324      5494,14106, 5497,  647, 5500, 5506,14106,14106, 5518,  714,
1325      5521, 5524,14106, 5527,  687, 5532,  688, 5536, 5546,14106,
1326      5550, 5556,14106,14106,  709, 5565, 5569,14106, 5572, 5576,
1327      5584,  702,  737, 5594, 5599,  756, 5607, 5612,14106, 5616,
1328      1456, 5619,14106,14106,  812,  813,  808, 5622,14106,  820,
1329       826,  869,  889,  881,  937,  998, 1010, 2267, 1001, 2603,
1330
1331      1012, 1007, 2670, 1080, 1082, 2737, 1074, 1085, 1091, 1090,
1332      3193, 2740, 1133, 1153, 1141, 1147, 1143, 2946, 1164, 3014,
1333      3263, 1217, 1222, 1224, 3329, 1234, 3430, 3614, 1277, 1294,
1334      1308, 5641,14106,14106, 1333, 1355, 5649,14106,14106, 1344,
1335      5626, 3489, 1373, 5657, 5660, 1368, 1420, 1456, 5668, 1483,
1336      5678, 5671, 1489, 1501, 5682, 5690,14106,14106, 1495, 1516,
1337      5701,14106,14106, 5709, 5712,14106,14106, 5721,14106,14106,
1338      5731, 5734,14106,14106, 1505, 1561, 5743,14106,14106, 5751,
1339      5754,14106,14106, 1541, 1566, 5763, 1547, 5766, 5770, 5773,
1340      5776, 5781, 5800, 5808,14106,14106, 5794, 5816, 5819, 5825,
1341
1342      5828, 5837, 5848, 5851, 5855, 5858, 5861, 5876, 1573, 1576,
1343      5869, 5880, 1617, 5895, 1623, 5899, 1605, 5902, 5906, 5914,
1344      5923, 5934, 5943, 1620, 1629, 1629, 1680, 5946, 1661, 5949,
1345      5952, 5956, 5970, 5975, 1676, 5983, 1685, 5988, 1669, 1681,
1346      5991,14106,14106, 6009, 1701, 6012, 1704, 1696, 6015, 1710,
1347      1734, 1744, 1736, 1745, 6018, 6021, 1735, 1748, 1758, 6036,
1348      6040, 6045, 1762, 6048,14106,14106, 6058, 6064, 6072,14106,
1349     14106, 1768, 6083, 6087, 1773, 6095, 6102,14106,14106, 6110,
1350     14106,14106, 1759, 6118, 1787, 6121, 1803, 1802, 1813, 6124,
1351      1806, 6127, 6130, 6133, 6148, 1810, 6151, 6154, 1819, 1861,
1352
1353      6162, 1822, 6169, 6172, 6181, 6190, 1831, 6193, 6199,14106,
1354     14106, 1861, 1883, 6214,14106,14106, 1867, 6223, 2050, 1921,
1355      6226,14106, 1922,14106,14106, 1888, 1884, 3547, 1901, 1892,
1356      1896, 1931, 1946, 1950, 3752, 1948, 1958, 3876, 1960, 1991,
1357      3884, 3887, 1991, 1992, 3949, 1999, 3952, 2008, 4089, 4051,
1358      2002, 4054, 1998, 2013, 2010, 2056, 2061, 4156, 2055, 2066,
1359      4220, 4223, 6229, 2065, 6232, 4540, 2067, 2065, 2068, 6235,
1360      6246, 6249, 6252, 6255, 6258, 2087, 2077, 6261,14106,14106,
1361      2087, 2085, 2094, 6280, 2124, 6284, 6289, 6303, 2130, 2110,
1362      6306, 6312, 6315, 6333, 6336, 6339, 6342, 6346, 6360, 6365,
1363
1364      6368, 6371, 6379, 6386, 6389, 6393, 6408, 6413, 6416,14106,
1365     14106, 6426, 6431, 6434, 6437, 6440, 6444, 6458, 6462, 6471,
1366      6482, 6492, 6500, 6503, 2136, 2126, 6506,14106,14106, 6514,
1367      6522, 6525, 2135, 2138, 6533, 6536, 6540,14106,14106, 6548,
1368      6553,14106,14106, 6561, 2144, 2128, 2148, 2176, 6568, 2188,
1369      6571, 6574, 6580, 6592, 6596,14106,14106, 2193, 6604, 2200,
1370      6607, 6612, 6625, 2189, 6630, 6633, 2199, 2200, 6643, 2193,
1371      2195, 6648, 6652, 2204, 2193, 2210, 2225, 6655,14106,14106,
1372      2246, 2244, 2240, 6663, 6667, 6672, 6685, 2241, 6688,14106,
1373     14106, 2251, 6698,14106,14106, 2242, 6706, 2248, 6709, 2255,
1374
1375      6712, 6716, 6719, 6737, 6740, 2250, 6743, 6746, 6755,14106,
1376     14106, 6765, 2298, 6769,14106,14106, 2304, 2323, 6777, 2298,
1377      6780, 3323, 3712, 6789, 6792, 6800, 2312, 6803, 6807, 6810,
1378      6814, 6832, 2350, 2370, 2418,14106, 6836, 2317, 6839, 2310,
1379      2311, 2396, 2307, 2310, 6842, 2333, 2339, 2330, 2374, 6845,
1380      2374, 2376, 6854, 6857, 6860, 2391, 6863, 2395, 2378, 2404,
1381      2396, 2467, 2392, 2398, 2409, 2416, 6869, 6872, 2450, 6875,
1382      2457, 2440, 2494, 2535, 6880, 6883, 6891, 6894, 2454, 6902,
1383      2446, 2455, 2457, 2459, 2473, 6905, 2471, 6909,14106,14106,
1384      6924, 2466, 6917, 6927, 6930, 6936, 6948, 6951, 6959, 6962,
1385
1386      6966, 6971, 6984, 6990, 6998, 7002, 7005, 7013, 7020,14106,
1387     14106, 7031, 7034, 7042, 7045,14106,14106, 7053, 7061, 2479,
1388      2489, 2512, 7056, 7074, 7082, 2519, 2529, 7085,14106,14106,
1389      7095, 7100, 2513, 2509, 7108, 7113, 2526, 2548, 7116, 7120,
1390      7128,14106,14106, 2542, 2545, 7136,14106, 7139, 7143, 7146,
1391      2556, 7149, 2592, 2591, 7155,14106, 2586, 7168, 7174,14106,
1392     14106, 7182, 2623, 7187, 2597, 7191,14106,14106, 7206, 7209,
1393      2613, 7220,14106,14106, 2611, 2617, 7230,14106, 2609, 7233,
1394      7236, 7239, 7242, 2625, 7245, 2645, 2647, 2643, 2656, 7251,
1395      7255,14106,14106, 7263,14106, 2652, 7266, 2659, 7270, 2661,
1396
1397      7273, 2670, 7276, 7284, 7295, 7303, 7306, 7309, 7324, 7327,
1398      7331,14106,14106, 7345, 2657, 2671, 2711, 7348, 7351, 2714,
1399      2725, 2754, 2740, 2759, 2746, 2782, 2748, 7354,14106,14106,
1400      7369, 7372, 7375,14106, 7379, 7384, 7400, 7403, 2729, 7411,
1401      2787, 2795, 2786, 7418, 7421, 7430, 2719, 2736, 2752, 2745,
1402      2746, 7436, 7439, 7442, 2769, 7445, 2785, 2785, 2793, 7448,
1403      7451, 7454, 7457, 2792, 2789, 7460, 2805, 2822, 2798, 2811,
1404      7463, 7466, 2814, 7469, 7474, 7477, 2814, 2811, 7480,14106,
1405     14106, 7488,14106,14106, 2829, 7496, 2820, 7499, 7505, 7508,
1406      7511, 7517,14106, 2815, 7529, 2829, 7532, 7536, 7544, 7551,
1407
1408     14106,14106, 7559,14106,14106, 7567, 7574, 7577,14106,14106,
1409      7593,14106,14106, 7601, 7607,14106,14106, 7615, 7620, 7629,
1410     14106,14106, 7637, 7640,14106,14106, 2840, 2857, 2870, 7649,
1411     14106,14106, 7657, 7660, 2870, 2859, 7668,14106,14106, 2876,
1412      7676, 7679, 7682, 2866, 2860, 7685,14106,14106, 2869, 2871,
1413      7694, 7701, 2876, 7705, 7709, 2885, 2876, 2882, 2882, 7723,
1414      7728, 2893, 7731,14106, 2891, 7735,14106,14106, 2885, 2910,
1415      2925, 2925, 7754, 7757, 7765, 7768, 7772, 7775, 7778, 7784,
1416      7787, 7796, 7792, 2924, 7805, 7814, 2942, 7823, 2942, 7826,
1417     14106, 2928, 7831, 7838,14106,14106, 7846, 7853, 7864,14106,
1418
1419     14106, 7872, 7875, 7878, 7886, 2931, 2942, 2954, 7893,14106,
1420      7896, 7899, 2973, 2970, 2971, 2978, 2988, 2985, 2983, 2999,
1421      3019, 3029, 7907, 7914, 7919, 7928,14106,14106, 7939,14106,
1422     14106, 3007, 7947, 7950, 3046, 3062, 7954, 4431, 5301, 7962,
1423      7969, 7972, 2993, 2992, 3002, 7975, 7978, 3008, 7981, 7984,
1424      3005, 7987, 7990, 7993, 3010, 3017, 3032, 7996, 7999, 3021,
1425      3021, 3030, 8002, 8005, 3065, 8008, 8011, 3057, 3068, 3079,
1426      3084, 8016, 8019, 8022, 8025, 8035, 8040, 8043, 8046, 8049,
1427      8053, 8061,14106,14106, 8071, 8075, 8078, 8081, 8084,14106,
1428     14106, 8100, 3080, 3079, 3089, 8103,14106,14106, 8113, 3075,
1429
1430      3089, 8119, 8124, 8132, 8137,14106, 3095, 3104, 3127, 3140,
1431      8144, 8147, 8151, 8156,14106,14106, 8169, 8172, 8175, 8178,
1432      8181, 8200, 8206, 3140, 3148, 3150, 3151, 8209, 8212,14106,
1433     14106, 8220, 8228, 8231, 8239, 8235, 8249, 8253, 8256, 8259,
1434      8271,14106,14106, 8262, 8267,14106, 3158, 3155, 8281,14106,
1435      8286,14106,14106, 8294, 8302,14106,14106, 8313, 3151, 3149,
1436     14106, 8316,14106,14106, 3197, 3184, 3200, 3196, 3223, 3231,
1437      3217, 3243, 3244, 3259, 8324, 8332, 5940, 7566, 3242, 8343,
1438      8346, 3400, 3468, 3235, 3240, 3283, 3235, 3259, 3264, 3299,
1439      3339, 3300, 3307, 8349, 8352, 3304, 3316, 3353, 8355, 8365,
1440
1441      3345, 8368, 3338, 3350, 8371, 8374, 3351, 3350, 3372, 8377,
1442      3354, 3366, 8380, 3370, 8383,14106, 8387, 8390,14106,14106,
1443      8398, 8404, 8412, 8416, 8419, 8422, 8425, 8430, 8443, 8446,
1444      8449, 8452, 8455,14106, 3386, 3373, 3400, 3427, 8458, 8476,
1445      3417, 3426, 8484, 3569, 3572, 8492,14106, 3412, 3415, 8495,
1446      8498, 8501, 8504,14106, 8507, 8525, 3432, 3433, 3450, 8533,
1447      8536, 8539, 8547, 8554, 8560, 8566, 3461, 3467, 8574, 8578,
1448      8581, 8584, 8592,14106,14106, 8587, 8605, 8613, 8617, 8620,
1449     14106, 8623, 8635, 3478, 3478, 3473, 8626,14106, 8631, 3480,
1450      3472, 3509, 3520, 3555, 3542, 3568, 3571, 3566, 3584, 3571,
1451
1452      3613, 8645, 3586, 3590, 3598, 3596, 3604, 3602, 3620, 3687,
1453      3624, 3631, 3655, 8650, 3697, 3717, 3856, 3651, 3664, 3676,
1454      3683, 3684, 3681, 3711, 3734, 3730, 3741, 3740, 3734, 3739,
1455      3756, 3774, 8653, 8656, 3749, 3762, 8659, 3753, 3770, 3788,
1456      8664, 3797, 3809, 8669, 8672, 8675,14106,14106, 8683, 8686,
1457      8694, 8703, 8712,14106, 8715,14106,14106, 8723,14106, 8726,
1458      8731, 8734, 3804, 3811, 8737, 3803, 8746,14106,14106, 3823,
1459      3815, 3870, 3899, 3890, 3889, 3977, 3897, 3861, 8755, 8758,
1460      8761, 8776, 8780, 8789, 8795,14106,14106, 3878, 3884, 3890,
1461      8803, 8808, 8817, 4100, 4120, 8825,14106, 8828, 8831,14106,
1462
1463     14106, 3899, 8839, 8847, 8850, 8858, 8861, 8869,14106, 8872,
1464     14106,14106, 8880, 8888, 8883, 8901, 8909, 4369, 4400, 3928,
1465      8917, 8920, 8923, 8769, 8926, 3963, 3979, 3978, 3991, 4014,
1466      3992, 4001, 4001, 4020, 4053, 8929, 3998, 4010, 4011, 4021,
1467      4026, 4066, 4070, 4087, 4084, 4095, 4115, 4116, 8938, 8944,
1468      4208, 4250, 4269, 4124, 4133, 4126, 4140, 4152, 4158, 4149,
1469      4158, 4171, 4198, 4209, 4214, 4202, 8948, 4219, 8951, 4238,
1470      4242, 4226, 8956, 4272, 4284, 4287, 8959, 8963, 8971, 4338,
1471      4378, 8979,14106,14106, 8987, 8991, 8996, 4277, 8999, 9002,
1472      9006, 9020, 4290, 4298, 4345, 4328, 4352, 4339, 4357, 4355,
1473
1474      4384, 4371, 4366, 9023, 9026, 9034,14106,14106, 9044,14106,
1475     14106, 9052,14106, 4359, 9056, 4369, 9059,14106,14106, 4388,
1476      4391, 4408, 4416, 4423, 4427, 9067, 4428, 9074, 9077, 9086,
1477     14106,14106, 9094,14106,14106, 9102, 4467, 4488, 9110,14106,
1478     14106, 4448, 4451, 4496, 4457, 4470, 4501, 4454, 9118, 9121,
1479      9129, 9132, 9140, 9143, 9147, 9150, 4508, 4492, 4493, 4504,
1480     14106, 4522, 4509, 4507, 4521,14106, 9159, 4499, 4509, 4499,
1481      4513, 4522, 4527, 4526, 4535, 4523, 4537, 4547, 4552, 9165,
1482      9168, 9178,14106, 4603, 4624, 9183, 4535, 4557, 4573, 4626,
1483      4627, 4574, 4567, 4577, 4601, 4646, 4648, 4597, 4613, 9186,
1484
1485      4604, 9189, 4610, 4628, 9192, 4614, 9197, 4616, 9205, 4677,
1486      5169, 4660, 4665, 4672, 4682, 9213, 9216, 9219, 4648, 9222,
1487      9225, 9240,14106,14106, 9248, 9251, 4637, 4648, 4688, 4672,
1488      4684, 4705, 4720, 4700, 4712, 4713, 4704, 9259,14106,14106,
1489      4724, 9267, 9270, 4710, 4742, 4752, 4782, 4751, 4765, 4792,
1490      9285,14106, 4748, 9288,14106,14106, 4777, 4797, 4799, 4807,
1491      4812, 4801, 4802, 4814, 4823, 4829, 4832, 4841, 9296, 9300,
1492      5288, 5442, 9308,14106,14106, 9316, 9319,14106,14106, 4830,
1493      4850, 4874, 4860, 4843, 4879, 4895, 4889, 9327, 4849, 4851,
1494      4881, 4930, 4931, 4884, 4882, 4889, 4905, 4954, 4955, 4914,
1495
1496      9331, 5632, 7129, 4973, 9339, 9342, 9346, 4923, 4914, 4979,
1497     14106,14106, 4933, 4940, 4927, 4995,14106,14106, 4953, 9361,
1498      4938, 9365, 9369, 9372, 4947, 9378, 9381, 4981, 4999, 4983,
1499      4996, 5021, 5047, 5010, 5022, 5052, 5040, 5055, 5044, 9384,
1500      9387,14106, 9390, 5031, 9393,14106,14106, 9409,14106,14106,
1501      9417, 5022, 5062, 5069, 5105, 5073, 5081, 5079, 5125, 5096,
1502      5079, 9420, 9423,14106,14106, 9431, 5103, 5124,14106, 5117,
1503      5127,14106, 5109, 5148, 5137, 5162, 5156, 5166, 5176, 5182,
1504      5169, 5178, 5196, 5200, 5188, 9438, 9442, 5197, 5209, 5178,
1505      5191, 5230, 5241, 5205, 5216, 9450, 5243, 5243,14106, 5245,
1506
1507      5247, 5248,14106, 5249, 9459, 5240, 5231, 5295,14106,14106,
1508      5251, 5253, 5239, 5321,14106,14106, 5278, 5298, 5319, 5282,
1509      5298, 5322, 5338, 5306, 5317, 5373, 9462, 9465, 9474, 9528,
1510      9576, 5316, 5329,14106, 5339, 5339, 5341,14106, 5351, 9484,
1511      5360, 9487, 9493, 5361, 9496, 5420, 5389, 5428, 5368, 5430,
1512      5401, 5439, 5385, 5449, 5416, 5449, 5419, 9499, 9502, 5409,
1513      9505, 9508, 9523, 5427, 5432,14106, 5473, 5445, 5445,14106,
1514      5475, 5425, 9548, 9551, 9570, 9559, 5500, 5512, 5523, 5533,
1515      5482, 5539, 5506, 5546, 5517, 5538, 5558, 5575, 5543, 5559,
1516      5582, 5585, 5559, 9596,14106,14106, 5598, 5567, 5601, 5544,
1517
1518      5608, 5592, 5624, 5566, 9588,14106, 5631, 5605, 5608, 5639,
1519      5616, 5621, 9607, 5589, 5590,14106, 5607, 5601, 5611,14106,
1520      5625, 5681, 5650, 5692, 5632, 5692, 5669, 5700, 5649, 5724,
1521      9610, 5742, 5711, 9630, 9678, 5809, 5669, 5716, 6055, 5676,
1522      5719, 9618, 9641,14106, 5733,14106, 5744,14106, 5752,14106,
1523      5755,14106, 5765,14106, 5766, 9650,14106, 9653, 5716, 9656,
1524      5766, 5798, 9672, 9699, 5767, 5773,14106, 5780, 5782,14106,
1525      5762, 9707,14106,14106, 9715, 5806, 5884,14106,14106,14106,
1526     14106, 5789,14106, 5824,14106, 5846, 5855,14106,14106, 5838,
1527      5871,14106,14106, 5849,14106, 5884,14106, 5885,14106, 5884,
1528
1529     14106, 5885,14106, 5901, 5907,14106, 5919, 5921, 9725,14106,
1530      6451, 5882, 5927, 6442, 5885, 5930,14106, 5935,14106, 5951,
1531     14106, 5952,14106, 5953, 5979, 5982, 6013, 5964, 6063, 5971,
1532      9728,14106, 5929, 5948, 5937, 6002,14106,14106, 5938, 5979,
1533      5967, 6083,14106, 9664, 9690,14106,14106,14106,14106, 5998,
1534      6007, 9731, 9734, 6118, 6026, 6121, 6072, 9737,14106,14106,
1535      6020, 6043, 6038, 6068, 9752, 6139, 6140, 6145, 6169, 9755,
1536      6062, 6065, 6102, 6092, 6130, 6121,14106,14106,14106,14106,
1537     14106,14106,14106,14106,14106, 6112, 6139, 6135, 6198,14106,
1538     14106, 6140, 6159, 6147, 6266,14106,14106,14106,14106,14106,
1539
1540      9758, 6206, 6198, 6212, 9761, 6174, 6171, 6174,14106, 6194,
1541      6195, 6197, 6202,14106, 6222, 6233, 6236, 9764,14106, 9773,
1542      9784, 6239, 6252, 6267, 6261, 6259, 6268, 6282, 6278, 6267,
1543      6314, 6276, 6315, 9792, 9795, 6285, 6294, 6307, 6297, 6292,
1544      6300, 6329, 6319, 9803, 9810, 6314, 6315, 6353, 6338, 6367,
1545      6356, 6335, 6317, 6327,14106, 6350, 6353, 6336, 6340,14106,
1546      6359, 9806, 6393, 6365, 6383, 6354, 6379, 6396, 6414, 6385,
1547      6406, 6464, 6463, 9821, 6460, 6527, 6442, 6448, 6450, 6462,
1548      6460, 6480, 6476, 6489, 6515,14106, 6513,14106, 9829,14106,
1549     14106, 6493, 6512, 6509, 6528, 6523, 6534, 6541, 6550, 9837,
1550
1551     14106,14106, 6579, 6578,14106, 6556,14106, 6558, 6545, 6563,
1552      6534, 6561, 6561, 6579, 6552, 6571, 6640,14106, 6561, 6563,
1553      6570, 6583, 6577, 6576, 6580, 6605,14106,14106, 6650, 6648,
1554      6657, 6651, 6652, 6659, 6667, 6655, 6666, 6673, 6673, 6666,
1555     14106,14106, 6694, 6700, 6701, 6688, 6700, 6706, 6707, 6694,
1556     14106,14106, 6730, 6728, 6687, 6686, 6686, 6708, 6710, 6709,
1557      6709, 6730, 6780, 6736, 6767, 6816, 6770, 6762, 6773, 6819,
1558      6776, 6792, 6815, 6810, 6829, 6816, 6827, 6844, 6855, 6851,
1559      6849, 6866, 6876, 6865, 6873, 6891, 6892, 6886, 6883, 6910,
1560      6912,14106,14106, 6878, 6889, 6940, 6894, 6893, 6904, 6950,
1561
1562      6918, 6970, 6921, 6927,14106, 6977, 6929, 6935,14106, 6986,
1563      6960, 6960, 6975, 6975, 6993, 6983, 7019, 6987, 7005, 7002,
1564      7032, 7001, 7026, 7016, 7055, 7027, 7043, 7034, 7064, 7033,
1565      7024, 7027,14106, 7076, 7035, 7038,14106, 7084, 7087, 7034,
1566      7094,14106, 7044, 7099,14106, 7091, 7099, 7097, 7110, 7138,
1567      7121,14106, 7118, 7151, 7128,14106, 7128, 7161, 7140,14106,
1568      7142, 7172, 7149,14106, 7150, 7135, 7195,14106, 7144, 7197,
1569     14106, 7194, 7142,14106, 7143,14106, 7182, 7196, 7190, 7205,
1570     14106, 7225, 7227,14106, 7236, 7230,14106, 7255, 7249,14106,
1571      7258, 7256, 7217,14106, 7218,14106, 9845, 7288, 7286, 7276,
1572
1573      7308, 7290, 7308, 7276, 7295, 7279, 7298, 7292, 7312, 7295,
1574      7315, 7336, 7336, 9848,14106,14106, 7353,14106, 7352,14106,
1575      7356, 7320, 7357, 7323, 7363, 7340, 7376, 7348,14106,14106,
1576      7379, 7465,14106,14106,14106, 7388,14106, 7387,14106, 7391,
1577     14106, 7391, 7454, 7475,14106,14106,14106,14106, 7497, 7505,
1578      7476, 7523, 7733, 7734, 7396, 7536, 7586, 7634, 7608, 7625,
1579      7636, 7653, 7547, 7655, 7562, 7680, 7670, 7648, 7725, 7697,
1580      7467, 7764, 7538, 7794, 7673, 7552, 7816, 7565, 7744, 7851,
1581      7819, 7863, 7811, 7871, 7904, 7894, 7784, 8010, 7915, 8013,
1582      7406, 7916, 7690, 8046, 7873, 7799, 8020, 7935, 7473, 7996,
1583
1584      7865, 8080, 8099, 8041, 8104, 8076, 8179, 8136, 8227, 8149,
1585      8170, 7793, 8273, 7833, 8038, 7844, 8141, 8069, 8176, 8266,
1586      8178, 8279, 8282, 7700, 8303, 7801, 7841, 8384, 8186, 8385,
1587      8293, 8417, 8451, 8453, 8410, 8418, 8423, 8472, 8259, 8166,
1588      8271, 8290, 8319, 8454, 8505, 8512, 8111, 8312, 8173, 8344,
1589      8533, 8502, 8545, 8534, 7927, 8513, 8471, 8539, 8582, 7716,
1590      8625, 7616, 8585, 9856, 8611, 8280, 9859,14106, 8660, 8691,
1591      8725, 8746, 8748, 8662, 8711, 8722, 8765, 8782, 8796, 8756,
1592      8776, 8767, 8837, 8818, 8826, 8783, 8878, 8849, 8889, 8848,
1593      8859, 8915, 8917, 8683, 8690, 8918, 8964, 8827, 9013, 8966,
1594
1595      8967, 8389, 8590, 9867, 9870,14106,14106, 9890, 9899, 9908,
1596      9917, 9926, 9935, 9944, 9953, 9962, 9971, 9980, 9989, 9998,
1597     10007,10016,10025,10034,10043,10052,10061,10070,10079,10088,
1598     10097,10106,10115,10124,10133,10142,10151,10160,10169,10178,
1599     10187,10196,10205,10214,10223,10232,10241,10250,10259,10268,
1600     10277,10286,10295,10304,10313,10322,10331,10340,10349,10358,
1601     10367,10376,10385,10394,10403,10412,10421,10430,10439,10448,
1602     10457,10466,10475,10484,10493,10502,10509,10516,10523,10530,
1603     10537,10544,10551,10558,10565,10572,10579,10586,10593,10600,
1604     10607,10614,10621,10628,10635,10642,10649,10656,10663,10670,
1605
1606     10677,10684,10691,10698,10705,10712,10719,10728,10735,10740,
1607     10747,10752,10759,10764,10771,10776,10783,10788,10795,10800,
1608     10807,10812,10819,10824,10831,10836,10843,10848,10855,10860,
1609     10867,10872,10879,10884,10891,10896,10903,10908,10915,10920,
1610     10927,10932,10939,10944,10951,10956,10963,10968,10975,10980,
1611     10987,10992,10999,11004,11011,11016,11023,11028,11035,11040,
1612     11047,11052,11059,11064,11071,11076,11083,11088,11095,11100,
1613     11109,11115,11122,11130,11138,11146,11153,11161,11168,11176,
1614     11183,11191,11199,11207,11215,11223,11231,11239,11247,11255,
1615     11262,11270,11278,11285,11293,11300,11308,11315,11323,11330,
1616
1617     11338,11345,11353,11360,11368,11375,11383,11390,11398,11405,
1618     11413,11420,11428,11435,11443,11450,11458,11466,11474,11481,
1619     11489,11496,11504,11511,11519,11526,11534,11541,11549,11556,
1620     11564,11572,11580,11589,11595,11602,11610,11617,11625,11632,
1621     11640,11647,11655,11662,11670,11677,11685,11693,11700,11708,
1622     11715,11723,11730,11738,11746,11753,11761,11769,11777,11785,
1623     11793,11800,11808,11815,11823,11830,11838,11846,11854,11861,
1624     11869,11876,11884,11891,11899,11906,11914,11921,11929,11936,
1625     11944,11951,11959,11966,11974,11981,11989,11997,12005,12012,
1626     12020,12027,12035,12042,12050,12059,12068,12075,12082,12090,
1627
1628     12097,12105,12113,12121,12128,12136,12143,12151,12159,12166,
1629     12174,12181,12189,12197,12205,12213,12220,12228,12236,12244,
1630     12251,12259,12266,12274,12282,12290,12297,12305,12312,12320,
1631     12327,12335,12342,12350,12358,12366,12373,12381,12388,12396,
1632     12403,12411,12418,12426,12433,12441,12448,12456,12463,12471,
1633     12478,12486,12493,12501,12510,12519,12526,12534,12542,12549,
1634     12557,12565,12572,12580,12588,12596,12604,12612,12620,12628,
1635     12636,12644,12652,12660,12667,12675,12683,12691,12698,12706,
1636     12713,12721,12729,12736,12744,12751,12759,12766,12774,12781,
1637     12789,12797,12804,12812,12819,12827,12834,12842,12850,12858,
1638
1639     12865,12873,12880,12888,12895,12903,12910,12918,12926,12934,
1640     12943,12952,12960,12967,12975,12982,12990,12998,13005,13013,
1641     13021,13029,13037,13045,13053,13060,13068,13076,13083,13091,
1642     13099,13106,13113,13121,13129,13136,13144,13151,13159,13167,
1643     13174,13182,13189,13197,13204,13212,13219,13227,13235,13243,
1644     13251,13259,13266,13274,13282,13290,13298,13305,13313,13322,
1645     13331,13338,13346,13354,13362,13369,13377,13385,13393,13401,
1646     13409,13416,13424,13432,13439,13447,13455,13462,13469,13477,
1647     13485,13492,13499,13507,13515,13523,13530,13538,13545,13552,
1648     13560,13568,13576,13583,13591,13598,13606,13615,13624,13631,
1649
1650     13639,13647,13655,13663,13671,13679,13687,13695,13703,13710,
1651     13718,13725,13733,13741,13749,13757,13765,13773,13781,13788,
1652     13796,13804,13812,13820,13827,13834,13842,13850,13857,13865,
1653     13872,13880,13889,13898,13905,13913,13921,13929,13937,13945,
1654     13953,13960,13967,13975,13982,13990,13998,14005,14013,14021,
1655     14028,14035,14042,14051,14060,14069,14078,14087,14096
1656     } ;
1657
1658 static const flex_int16_t yy_def[4660] =
1659     {   0,
1660      4108, 4108, 4109, 4109, 4109, 4109, 4110, 4110, 4111, 4111,
1661      4112, 4112, 4113, 4113, 4113, 4113, 4114, 4114, 4115, 4115,
1662      4116, 4116, 4116, 4116, 4108, 4108, 4116, 4116, 4116, 4116,
1663      4108, 4108, 4116, 4116, 4116, 4116, 4108, 4108, 4116, 4116,
1664      4108, 4108, 4116, 4116, 4116, 4116, 4108, 4108, 4116, 4116,
1665      4108, 4108, 4116, 4116, 4116, 4116, 4117, 4117, 4118, 4118,
1666      4108, 4108, 4118, 4118, 4118, 4118, 4119, 4119, 4120, 4120,
1667      4108, 4108, 4120, 4120, 4120, 4120, 4121, 4121, 4122, 4122,
1668      4123, 4123, 4124, 4124, 4125, 4125, 4126, 4126, 4108, 4108,
1669      4126, 4126, 4126, 4126, 4127, 4127, 4128, 4128, 4108, 4108,
1670
1671      4128, 4128, 4128, 4128, 4129, 4129, 4130, 4130, 4108, 4108,
1672      4130, 4130, 4130, 4130, 4131, 4131, 4132, 4132, 4133, 4133,
1673      4134, 4134, 4108, 4108, 4134, 4134, 4134, 4134, 4135, 4135,
1674      4136, 4136, 4108, 4108, 4136, 4136, 4136, 4136, 4137, 4137,
1675      4138, 4138, 4108, 4108, 4138, 4138, 4138, 4138, 4139, 4139,
1676      4140, 4140, 4141, 4141, 4142, 4142, 4108, 4108, 4142, 4142,
1677      4142, 4142, 4143, 4143, 4144, 4144, 4108, 4108, 4144, 4144,
1678      4144, 4144, 4145, 4145, 4146, 4146, 4147, 4147, 4148, 4148,
1679      4149, 4149, 4150, 4150, 4151, 4151, 4152, 4152, 4108, 4108,
1680      4153, 4153, 4154, 4154, 4154, 4154, 4108, 4108, 4154, 4154,
1681
1682      4154, 4154, 4108, 4108, 4154, 4154, 4108, 4108, 4154, 4154,
1683      4154, 4154, 4155, 4155, 4156, 4156, 4108, 4108, 4156, 4156,
1684      4156, 4156, 4157, 4157, 4158, 4158, 4159, 4159, 4160, 4160,
1685      4161, 4161, 4162, 4162, 4108, 4108, 4162, 4162, 4162, 4162,
1686      4163, 4163, 4164, 4164, 4165, 4165, 4166, 4166, 4108, 4108,
1687      4166, 4166, 4166, 4166, 4167, 4167, 4168, 4168, 4108, 4108,
1688      4168, 4168, 4168, 4168, 4169, 4169, 4170, 4170, 4171, 4171,
1689      4172, 4172, 4173, 4173, 4174, 4174, 4174, 4174, 4108, 4108,
1690      4174, 4174, 4174, 4174, 4108, 4108, 4174, 4174, 4174, 4174,
1691      4108, 4108, 4174, 4174, 4108, 4108, 4174, 4174, 4174, 4174,
1692
1693      4108, 4108, 4174, 4174, 4108, 4108, 4174, 4174, 4174, 4174,
1694      4175, 4175, 4176, 4176, 4108, 4108, 4176, 4176, 4176, 4176,
1695      4108, 4108, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1696      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1697      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1698      4107, 4107, 4177, 4107, 4107, 4177, 4177, 4107, 4107, 4107,
1699       360, 4107,  362, 4107,  364,  362,  363,  362,  363,  364,
1700       370,  369,  362, 4107, 4107, 4107, 4178, 4107, 4107, 4178,
1701      4178, 4178, 4107, 4107,  362,  362,  362, 4107, 4107, 4107,
1702      4179, 4107, 4107, 4179, 4179, 4179, 4179, 4179, 4107, 4107,
1703
1704       362,  362,  362, 4107, 4107, 4107, 4180, 4107, 4107, 4180,
1705      4107, 4107, 4107, 4107, 4107, 4107, 4181, 4107, 4107, 4181,
1706      4181, 4181, 4107, 4107, 4107, 4107, 4107, 4107, 4182, 4107,
1707      4107, 4182, 4182, 4182, 4107, 4107,  362,  362, 4107, 4107,
1708      4107, 4183, 4107, 4107, 4183, 4183, 4107, 4107,  362,  362,
1709      4107, 4107, 4107, 4184, 4107, 4107, 4184, 4184, 4184, 4107,
1710      4107,  362,  362, 4107, 4107, 4107, 4185, 4107, 4107, 4185,
1711      4185, 4185, 4185, 4185, 4185, 4107, 4107, 4107, 4107, 4107,
1712      4107, 4186, 4107, 4107, 4186, 4186, 4186, 4186, 4186, 4186,
1713      4186, 4186, 4107, 4107,  362,  362, 4107, 4107, 4107, 4187,
1714
1715      4107, 4107, 4187, 4107, 4107,  362,  362, 4107, 4107, 4107,
1716      4188, 4107, 4107, 4188, 4188, 4188, 4188, 4188, 4107, 4107,
1717       362,  362,  362, 4107, 4107, 4107, 4189, 4107, 4107, 4189,
1718      4189, 4189, 4107, 4107, 4107, 4107, 4107, 4107, 4190, 4107,
1719      4107, 4190, 4107, 4107,  364,  364,  362, 4107, 4107, 4107,
1720      4191, 4107, 4107, 4191, 4191, 4191, 4191, 4107, 4107,  362,
1721       362, 4107, 4107, 4107, 4192, 4107, 4107, 4192, 4192, 4107,
1722      4107, 4107, 4107, 4107, 4107, 4193, 4107, 4107, 4193, 4193,
1723      4107, 4107, 4107, 4107, 4107, 4107, 4194, 4107, 4107, 4194,
1724      4194, 4107, 4107, 4107, 4107, 4107, 4107, 4195, 4107, 4107,
1725
1726      4195, 4195, 4195, 4195, 4195, 4195, 4107, 4107, 4107, 4107,
1727      4107, 4107, 4107, 4196, 4107, 4107, 4196, 4107, 4107,  364,
1728       620,  362,  362,  362,  362, 4107, 4107, 4107, 4197, 4107,
1729      4107, 4197, 4197, 4197, 4197, 4197, 4107, 4107,  362,  362,
1730      4107, 4107, 4107, 4198, 4107, 4107, 4198, 4198, 4107, 4107,
1731      4107, 4107, 4107, 4107, 4199, 4107, 4107, 4199, 4199, 4199,
1732      4199, 4199, 4107, 4107, 4107, 4107, 4107, 4107, 4200, 4107,
1733      4107, 4200, 4200, 4107, 4107,  362,  362, 4107, 4107, 4107,
1734      4201, 4107, 4107, 4201, 4201, 4107, 4107, 4107, 4107, 4107,
1735      4107, 4202, 4107, 4107, 4202, 4202, 4202, 4202, 4107, 4107,
1736
1737       362,  362, 4107, 4107, 4107, 4203, 4107, 4107, 4203, 4203,
1738      4203, 4203, 4107, 4107,  362,  362,  362, 4107, 4107, 4107,
1739      4204, 4107, 4107, 4204, 4204, 4204, 4107, 4107, 4107, 4107,
1740      4107, 4205, 4107, 4107, 4205, 4205, 4205, 4107, 4107, 4107,
1741      4107, 4107, 4107, 4206, 4107, 4107, 4206, 4206, 4107, 4107,
1742       364,  751,  362,  364,  364,  362,  753,  751,  362, 4107,
1743      4107, 4107, 4207, 4107, 4107, 4207, 4207, 4207, 4107, 4107,
1744       362,  362, 4107, 4208, 4107, 4107, 4107, 4107, 4107, 4107,
1745      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4209, 4209,
1746      4209, 4210, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1747
1748      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1749      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1750      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1751      4107, 4211, 4211, 4211, 4211, 4211, 4212, 4107, 4107, 4213,
1752      4213, 4213, 4213, 4213, 4213, 4214, 4107, 4107, 4215, 4215,
1753      4216, 4107, 4217, 4217, 4217, 4217, 4218, 4107, 4219, 4219,
1754      4219, 4219, 4220, 4107, 4221, 4221, 4221, 4222, 4107, 4223,
1755      4223, 4223, 4223, 4224, 4107, 4225, 4225, 4225, 4225, 4225,
1756      4225, 4225, 4225, 4226, 4107, 4227, 4227, 4227, 4227, 4227,
1757      4227, 4227, 4227, 4227, 4227, 4227, 4227, 4227, 4227, 4227,
1758
1759      4228, 4107, 4229, 4229, 4230, 4107, 4231, 4231, 4231, 4231,
1760      4231, 4231, 4231, 4232, 4107, 4107, 4233, 4233, 4233, 4233,
1761      4234, 4107, 4235, 4235, 4236, 4107, 4237, 4237, 4237, 4237,
1762      4237, 4237, 4238, 4107, 4239, 4239, 4239, 4240, 4107, 4241,
1763      4241, 4241, 4242, 4107, 4243, 4243, 4243, 4244, 4107, 4245,
1764      4245, 4245, 4245, 4245, 4245, 4245, 4245, 4246, 4107, 4107,
1765      4247, 4247, 4248, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1766      4249, 4249, 4249, 4249, 4249, 4249, 4250, 4107, 4251, 4251,
1767      4251, 4252, 4107, 4253, 4253, 4253, 4253, 4253, 4253, 4253,
1768      4253, 4253, 4254, 4107, 4255, 4255, 4255, 4255, 4256, 4107,
1769
1770      4257, 4257, 4257, 4258, 4107, 4259, 4259, 4259, 4259, 4259,
1771      4260, 4107, 4261, 4261, 4261, 4261, 4261, 4262, 4107, 4107,
1772      4263, 4263, 4263, 4263, 4107, 4264, 4107, 4107, 4265, 4265,
1773      4265, 4265, 4266, 4107, 4267, 4267, 4267, 4268, 4107, 4107,
1774      4269, 4269, 4269, 4269, 4269, 4270, 4271, 4107, 4271, 4107,
1775      4107, 4107, 4272, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1776      4107, 4273, 4274, 4274, 4107, 4107, 4107, 4107, 4107, 4107,
1777      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1778      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1779      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1780
1781      4107, 4107, 4107, 4107, 4107, 4107, 4275, 4275, 4275, 4275,
1782      4276, 4276, 4107, 4277, 4277, 4277, 4277, 4277, 4278, 4278,
1783      4107, 4279, 4280, 4280, 4281, 4107, 4107, 4281, 4282, 4282,
1784      4283, 4283, 4283, 4284, 4284, 4285, 4285, 4286, 4286, 4287,
1785      4287, 4287, 4288, 4288, 4107, 4107, 4107, 4107, 4289, 4289,
1786      4289, 4289, 4289, 4290, 4290, 4291, 4107, 4107, 4291, 4107,
1787      4107, 4291, 4291, 4291, 4291, 4291, 4291, 4291, 4291, 4291,
1788      4291, 4292, 4292, 4107, 4107, 4293, 4293, 4294, 4294, 4294,
1789      4107, 4107, 4294, 4294, 4294, 4295, 4295, 4107, 4296, 4107,
1790      4107, 4107, 4107, 4297, 4297, 4298, 4299, 4299, 4300, 4107,
1791
1792      4107, 4300, 4300, 4300, 4301, 4301, 4302, 4107, 4107, 4303,
1793      4303, 4107, 4107, 4304, 4305, 4305, 4306, 4306, 4307, 4307,
1794      4308, 4308, 4308, 4107, 4107, 4308, 4308, 4308, 4309, 4309,
1795      4107, 4310, 4311, 4311, 4107, 4107, 4107, 4107, 4312, 4312,
1796      4312, 4312, 4312, 4313, 4313, 4107, 4107, 4314, 4315, 4315,
1797      4316, 4107, 4107, 4316, 4316, 4316, 4316, 4316, 4316, 4317,
1798      4317, 4318, 4318, 4318, 4319, 4319, 4320, 4107, 4107, 4321,
1799      4321, 4322, 4322, 4107, 4107, 4322, 4323, 4323, 4324, 4107,
1800      4107, 4324, 4324, 4325, 4325, 4107, 4326, 4107, 4107, 4326,
1801      4107, 4327, 4327, 4107, 4328, 4328, 4328, 4329, 4329, 4107,
1802
1803      4107, 4330, 4331, 4331, 4332, 4332, 4332, 4332, 4333, 4333,
1804      4334, 4107, 4107, 4334, 4107, 4107, 4335, 4107, 4107, 4107,
1805      4107, 4107, 4107, 4107, 4107, 4336, 4107, 4337, 4107, 4337,
1806      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1807      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1808      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1809      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1810      4107, 4107, 4107, 4107, 4107, 4338, 4338, 4107, 4107, 4338,
1811      4107, 4339, 4107, 4339, 4107, 4340, 4340, 4340, 4340, 4340,
1812      4107, 4341, 4107, 4341, 4107, 4342, 4107, 4343, 4107, 4343,
1813
1814      4344, 4107, 4107, 4107, 4344, 4107, 4345, 4107, 4345, 4107,
1815      4107, 4346, 4346, 4107, 4107, 4107, 4347, 4107, 4347, 4107,
1816      4107, 4107, 4107, 4107, 4348, 4107, 4348, 4107, 4107, 4349,
1817      4349, 4107, 4107, 4107, 4350, 4107, 4350, 4107, 4107, 4107,
1818      4107, 4107, 4107, 4107, 4107, 4351, 4351, 4351, 4351, 4107,
1819      4352, 4107, 4352, 4353, 4353, 4353, 4107, 4107, 4107, 4353,
1820      4107, 4107, 4107, 4107, 4107, 4353, 4353, 4353, 4353, 4353,
1821      4353, 4353, 4353, 4353, 4107, 4354, 4107, 4354, 4107, 4107,
1822      4107, 4107, 4355, 4107, 4355, 4356, 4356, 4356, 4107, 4107,
1823      4107, 4356, 4356, 4356, 4107, 4357, 4107, 4357, 4107, 4358,
1824
1825      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4359, 4107, 4359,
1826      4360, 4107, 4361, 4107, 4361, 4362, 4107, 4107, 4107, 4362,
1827      4362, 4362, 4107, 4363, 4107, 4363, 4364, 4107, 4107, 4107,
1828      4107, 4365, 4107, 4365, 4107, 4107, 4107, 4366, 4107, 4367,
1829      4107, 4367, 4368, 4368, 4107, 4369, 4107, 4369, 4370, 4370,
1830      4370, 4370, 4107, 4107, 4107, 4107, 4107, 4370, 4370, 4107,
1831      4371, 4107, 4371, 4107, 4372, 4107, 4373, 4107, 4373, 4107,
1832      4107, 4107, 4107, 4374, 4374, 4374, 4374, 4374, 4107, 4375,
1833      4107, 4375, 4107, 4107, 4107, 4376, 4107, 4377, 4107, 4377,
1834      4378, 4107, 4107, 4107, 4107, 4107, 4378, 4107, 4107, 4378,
1835
1836      4378, 4378, 4107, 4379, 4107, 4379, 4107, 4107, 4107, 4107,
1837      4380, 4107, 4381, 4107, 4381, 4382, 4107, 4107, 4107, 4107,
1838      4383, 4107, 4383, 4384, 4384, 4107, 4107, 4107, 4384, 4107,
1839      4385, 4107, 4385, 4386, 4107, 4107, 4107, 4386, 4386, 4107,
1840      4387, 4107, 4387, 4107, 4388, 4107, 4107, 4107, 4388, 4107,
1841      4107, 4389, 4107, 4389, 4390, 4390, 4390, 4107, 4391, 4107,
1842      4391, 4107, 4107, 4107, 4392, 4107, 4393, 4107, 4393, 4107,
1843      4107, 4394, 4394, 4107, 4107, 4394, 4107, 4395, 4107, 4395,
1844      4396, 4397, 4107, 4107, 4107, 4107, 4398, 4107, 4107, 4107,
1845      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1846
1847      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1848      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1849      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1850      4107, 4107, 4107, 4107, 4399, 4399, 4107, 4107, 4107, 4399,
1851      4400, 4107, 4401, 4107, 4107, 4401, 4401, 4401, 4402, 4107,
1852      4403, 4404, 4405, 4405, 4406, 4107, 4107, 4107, 4407, 4407,
1853      4107, 4107, 4107, 4408, 4107, 4107, 4107, 4107, 4107, 4107,
1854      4409, 4107, 4107, 4107, 4410, 4410, 4107, 4107, 4107, 4411,
1855      4107, 4107, 4107, 4412, 4412, 4412, 4412, 4413, 4414, 4414,
1856      4414, 4107, 4107, 4107, 4107, 4107, 4414, 4414, 4414, 4414,
1857
1858      4414, 4414, 4414, 4414, 4414, 4414, 4415, 4416, 4417, 4417,
1859      4107, 4107, 4417, 4417, 4417, 4418, 4107, 4107, 4107, 4419,
1860      4107, 4107, 4420, 4421, 4421, 4421, 4421, 4422, 4423, 4424,
1861      4425, 4426, 4107, 4107, 4427, 4428, 4429, 4429, 4429, 4429,
1862      4107, 4107, 4107, 4429, 4429, 4430, 4107, 4431, 4432, 4107,
1863      4107, 4107, 4107, 4433, 4107, 4107, 4433, 4433, 4433, 4434,
1864      4435, 4436, 4437, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1865      4107, 4437, 4107, 4107, 4437, 4438, 4107, 4107, 4107, 4107,
1866      4107, 4107, 4439, 4440, 4441, 4442, 4443, 4443, 4443, 4444,
1867      4445, 4445, 4107, 4107, 4446, 4107, 4107, 4107, 4447, 4107,
1868
1869      4448, 4449, 4107, 4107, 4449, 4450, 4451, 4452, 4107, 4107,
1870      4107, 4453, 4453, 4107, 4107, 4107, 4453, 4454, 4455, 4456,
1871      4456, 4107, 4456, 4107, 4107, 4457, 4107, 4107, 4107, 4107,
1872      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1873      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1874      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1875      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1876      4107, 4458, 4458, 4458, 4459, 4107, 4460, 4107, 4107, 4107,
1877      4460, 4460, 4460, 4461, 4107, 4107, 4107, 4462, 4463, 4463,
1878      4464, 4465, 4465, 4466, 4467, 4468, 4468, 4469, 4470, 4470,
1879
1880      4107, 4107, 4470, 4471, 4107, 4107, 4472, 4472, 4107, 4107,
1881      4107, 4472, 4472, 4472, 4472, 4472, 4472, 4107, 4107, 4472,
1882      4472, 4472, 4473, 4474, 4475, 4475, 4107, 4107, 4107, 4475,
1883      4107, 4107, 4475, 4475, 4476, 4107, 4107, 4107, 4107, 4477,
1884      4107, 4107, 4107, 4478, 4479, 4479, 4479, 4479, 4480, 4481,
1885      4482, 4107, 4107, 4483, 4107, 4107, 4107, 4484, 4485, 4486,
1886      4107, 4107, 4486, 4486, 4107, 4107, 4486, 4486, 4487, 4107,
1887      4488, 4489, 4107, 4107, 4107, 4107, 4490, 4107, 4107, 4107,
1888      4490, 4490, 4490, 4491, 4107, 4107, 4492, 4493, 4107, 4107,
1889      4107, 4493, 4107, 4107, 4107, 4493, 4494, 4495, 4496, 4497,
1890
1891      4498, 4499, 4499, 4499, 4500, 4501, 4107, 4107, 4107, 4107,
1892      4107, 4502, 4107, 4107, 4107, 4107, 4503, 4107, 4504, 4505,
1893      4107, 4107, 4107, 4107, 4107, 4506, 4507, 4508, 4509, 4509,
1894      4509, 4510, 4511, 4512, 4512, 4107, 4513, 4107, 4107, 4107,
1895      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1896      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1897      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1898      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4514, 4515,
1899      4107, 4516, 4516, 4516, 4516, 4517, 4107, 4107, 4107, 4107,
1900      4518, 4519, 4519, 4520, 4107, 4107, 4107, 4107, 4521, 4522,
1901
1902      4107, 4107, 4107, 4107, 4523, 4107, 4107, 4524, 4107, 4107,
1903      4107, 4107, 4107, 4525, 4107, 4107, 4107, 4107, 4107, 4526,
1904      4526, 4526, 4107, 4107, 4526, 4526, 4526, 4107, 4107, 4107,
1905      4107, 4107, 4526, 4526, 4527, 4528, 4529, 4529, 4107, 4107,
1906      4107, 4107, 4107, 4529, 4529, 4107, 4107, 4107, 4530, 4531,
1907      4532, 4532, 4532, 4532, 4107, 4107, 4533, 4534, 4107, 4107,
1908      4107, 4535, 4536, 4537, 4538, 4107, 4107, 4107, 4107, 4107,
1909      4538, 4107, 4107, 4107, 4538, 4538, 4107, 4107, 4107, 4539,
1910      4540, 4107, 4107, 4107, 4107, 4541, 4541, 4541, 4541, 4542,
1911      4107, 4107, 4107, 4107, 4107, 4543, 4543, 4543, 4544, 4545,
1912
1913      4546, 4547, 4548, 4107, 4107, 4549, 4107, 4107, 4550, 4551,
1914      4107, 4107, 4107, 4552, 4107, 4553, 4107, 4554, 4555, 4107,
1915      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1916      4556, 4557, 4107, 4107, 4107, 4107, 4107, 4107, 4558, 4559,
1917      4560, 4561, 4561, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1918      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1919      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1920      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1921      4107, 4107, 4107, 4107, 4562, 4563, 4107, 4564, 4564, 4564,
1922      4564, 4107, 4107, 4107, 4565, 4566, 4107, 4107, 4567, 4107,
1923
1924      4107, 4107, 4107, 4107, 4107, 4568, 4569, 4107, 4107, 4107,
1925      4107, 4107, 4107, 4570, 4107, 4107, 4107, 4107, 4107, 4107,
1926      4107, 4107, 4571, 4107, 4107, 4107, 4572, 4572, 4572, 4107,
1927      4107, 4107, 4107, 4107, 4572, 4572, 4107, 4107, 4107, 4572,
1928      4572, 4573, 4574, 4575, 4575, 4107, 4107, 4107, 4575, 4575,
1929      4576, 4577, 4578, 4107, 4107, 4578, 4578, 4578, 4579, 4580,
1930      4581, 4582, 4107, 4107, 4583, 4107, 4107, 4107, 4583, 4583,
1931      4583, 4107, 4107, 4107, 4584, 4107, 4107, 4107, 4585, 4585,
1932      4585, 4585, 4586, 4587, 4107, 4107, 4587, 4588, 4589, 4107,
1933      4107, 4590, 4591, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1934
1935      4107, 4592, 4107, 4107, 4593, 4107, 4594, 4107, 4107, 4107,
1936      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1937      4107, 4107, 4595, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1938      4107, 4596, 4597, 4598, 4599, 4599, 4107, 4107, 4107, 4107,
1939      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1940      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1941      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1942      4600, 4601, 4107, 4107, 4107, 4602, 4602, 4602, 4107, 4603,
1943      4604, 4107, 4107, 4107, 4605, 4606, 4607, 4608, 4107, 4107,
1944      4107, 4609, 4610, 4610, 4610, 4107, 4107, 4107, 4610, 4610,
1945
1946      4610, 4107, 4107, 4611, 4107, 4107, 4612, 4612, 4612, 4612,
1947      4613, 4614, 4615, 4107, 4107, 4107, 4615, 4615, 4615, 4616,
1948      4617, 4618, 4619, 4620, 4620, 4620, 4620, 4107, 4107, 4107,
1949      4107, 4621, 4107, 4107, 4107, 4622, 4622, 4622, 4623, 4624,
1950      4107, 4107, 4107, 4624, 4107, 4107, 4625, 4626, 4107, 4107,
1951      4107, 4107, 4107, 4627, 4107, 4107, 4107, 4628, 4107, 4629,
1952      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1953      4107, 4107, 4107, 4107, 4630, 4107, 4107, 4107, 4631, 4632,
1954      4633, 4634, 4634, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1955      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1956
1957      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1958      4107, 4107, 4107, 4635, 4107, 4107, 4107, 4107, 4107, 4107,
1959      4107, 4107, 4636, 4636, 4107, 4637, 4107, 4107, 4638, 4639,
1960      4640, 4641, 4107, 4107, 4642, 4642, 4642, 4642, 4107, 4107,
1961      4642, 4642, 4107, 4107, 4107, 4107, 4107, 4643, 4643, 4643,
1962      4643, 4644, 4107, 4107, 4107, 4107, 4645, 4645, 4645, 4645,
1963      4107, 4107, 4646, 4647, 4107, 4107, 4648, 4648, 4648, 4648,
1964      4107, 4649, 4107, 4107, 4107, 4107, 4107, 4650, 4650, 4107,
1965      4107, 4107, 4107, 4651, 4652, 4653, 4107, 4107, 4628, 4107,
1966      4629, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1967
1968      4107, 4630, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1969      4107, 4107, 4631, 4632, 4633, 4634, 4634, 4107, 4107, 4107,
1970      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1971      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1972      4107, 4107, 4107, 4107, 4635, 4107, 4107, 4107, 4107, 4107,
1973      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4639,
1974      4640, 4641, 4642, 4642, 4642, 4642, 4107, 4107, 4107, 4642,
1975      4642, 4107, 4107, 4107, 4107, 4107, 4107, 4643, 4643, 4107,
1976      4107, 4107, 4107, 4644, 4107, 4107, 4107, 4645, 4645, 4645,
1977      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4647, 4107, 4107,
1978
1979      4107, 4648, 4648, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1980      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4651,
1981      4652, 4653, 4628, 4107, 4629, 4107, 4107, 4107, 4107, 4107,
1982      4107, 4107, 4107, 4107, 4107, 4630, 4107, 4107, 4107, 4107,
1983      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4631, 4632,
1984      4633, 4634, 4634, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1985      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1986      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1987      4107, 4107, 4107, 4107, 4639, 4640, 4641, 4642, 4642, 4107,
1988      4107, 4642, 4642, 4642, 4107, 4107, 4107, 4107, 4107, 4107,
1989
1990      4107, 4107, 4643, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1991      4107, 4107, 4107, 4645, 4645, 4645, 4107, 4107, 4107, 4107,
1992      4107, 4107, 4107, 4107, 4107, 4647, 4648, 4107, 4107, 4107,
1993      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1994      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4651, 4107, 4107,
1995      4107, 4107, 4628, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1996      4107, 4107, 4107, 4107, 4107, 4107, 4630, 4107, 4107, 4107,
1997      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
1998      4107, 4107, 4107, 4633, 4634, 4634, 4107, 4107, 4107, 4107,
1999      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2000
2001      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2002      4107, 4107, 4107, 4107, 4107, 4639, 4640, 4641, 4642, 4107,
2003      4107, 4107, 4107, 4107, 4107, 4107, 4642, 4642, 4107, 4107,
2004      4107, 4107, 4107, 4107, 4107, 4107, 4643, 4107, 4107, 4107,
2005      4645, 4107, 4107, 4645, 4107, 4107, 4107, 4107, 4107, 4107,
2006      4107, 4107, 4648, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2007      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4651, 4107,
2008      4107, 4107, 4107, 4107, 4107, 4628, 4107, 4107, 4107, 4107,
2009      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4630, 4107, 4107,
2010      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2011
2012      4107, 4107, 4107, 4633, 4634, 4634, 4634, 4107, 4107, 4107,
2013      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2014      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2015      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4639,
2016      4107, 4107, 4641, 4642, 4107, 4107, 4107, 4107, 4107, 4107,
2017      4642, 4642, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2018      4643, 4645, 4107, 4107, 4107, 4645, 4107, 4107, 4107, 4107,
2019      4107, 4107, 4648, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2020      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2021      4107, 4107, 4107, 4107, 4107, 4628, 4107, 4107, 4107, 4107,
2022
2023      4107, 4107, 4107, 4107, 4630, 4107, 4107, 4107, 4107, 4107,
2024      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2025      4107, 4107, 4107, 4107, 4107, 4633, 4634, 4634, 4634, 4654,
2026      4655, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2027      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2028      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4639, 4641, 4642,
2029      4107, 4107, 4642, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2030      4107, 4643, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2031      4648, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2032      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2033
2034      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2035      4107, 4107, 4630, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2036      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4633,
2037      4634, 4656, 4657, 4654, 4655, 4107, 4107, 4107, 4107, 4107,
2038      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2039      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4641, 4642, 4107,
2040      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2041      4643, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2042      4107, 4648, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2043      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2044
2045      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2046      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2047      4107, 4107, 4107, 4107, 4633, 4656, 4634, 4658, 4657, 4659,
2048      4634, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2049      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2050      4107, 4641, 4642, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2051      4107, 4107, 4107, 4107, 4643, 4107, 4107, 4107, 4107, 4648,
2052      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2053      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2054      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2055
2056      4633, 4658, 4107, 4659, 4634, 4107, 4107, 4107, 4107, 4107,
2057      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2058      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2059      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2060      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2061      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2062      4107, 4633, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2063      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2064      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2065      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2066
2067      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2068      4107, 4107, 4107, 4107, 4107, 4107, 4633, 4107, 4107, 4107,
2069      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2070      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2071      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2072      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2073      4107, 4107, 4633, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2074      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2075      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2076      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2077
2078      4107, 4633, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2079      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2080      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2081      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4633, 4107,
2082      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2083      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2084      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2085      4107, 4633, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2086      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2087      4107, 4107, 4107, 4107, 4107, 4107, 4633, 4107, 4107, 4107,
2088
2089      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2090      4107, 4107, 4107, 4633, 4107, 4107, 4107, 4107, 4107, 4107,
2091      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2092      4633, 4633, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2093      4107, 4107, 4633, 4633, 4107, 4107, 4107, 4107, 4633, 4633,
2094      4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633,
2095      4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633,
2096      4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633,
2097      4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633,
2098      4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633,
2099
2100      4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633,
2101      4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633,
2102      4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633,
2103      4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633,
2104      4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633,
2105      4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633,
2106      4633, 4633, 4633, 4633, 4633, 4633, 4633, 4107, 4633, 4633,
2107      4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633,
2108      4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633,
2109      4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633,
2110
2111      4633, 4633, 4633, 4633, 4633, 4107,    0, 4107, 4107, 4107,
2112      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2113      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2114      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2115      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2116      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2117      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2118      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2119      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2120      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2121
2122      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2123      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2124      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2125      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2126      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2127      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2128      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2129      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2130      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2131      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2132
2133      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2134      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2135      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2136      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2137      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2138      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2139      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2140      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2141      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2142      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2143
2144      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2145      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2146      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2147      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2148      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2149      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2150      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2151      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2152      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2153      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2154
2155      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2156      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2157      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2158      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2159      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2160      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2161      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2162      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2163      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2164      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2165
2166      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2167      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2168      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2169      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2170      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2171      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107
2172     } ;
2173
2174 static const flex_int16_t yy_nxt[14182] =
2175     {   0,
2176      4107,  326,  327,  326,  326,  327,  326,  326,  327,  326,
2177       326,  327,  326,  331,  327,  331,  337,  328,  334,  337,
2178       328,  334, 1048,  329, 4107,  335,  329,  846,  335,  332,
2179       331,  327,  331,  774,  338,  340,  341,  338,  340,  341,
2180       342,  343,  792,  342,  343,  774,  332,  347,  348,  775,
2181       344,  340,  341,  344,  345,  777,  342,  340,  341, 1291,
2182       345,  776,  342,  347,  348,  847,  344,  359,  327,  359,
2183      1839,  776,  344,  359,  327,  359,  931,  359,  327,  359,
2184       359,  327,  359,  360,  327,  327,  327,  792,  932,  360,
2185       820,  777,  349,  361,  804,  820,  361,  773,  773,  773,
2186
2187       362,  773,  773,  773,  773,  773,  773,  776,  349,  350,
2188       351,  327,  351,  350,  350,  350,  350,  350,  350,  350,
2189       352,  350,  350,  350, 1840,  350,  354,  350,  355,  350,
2190       327,  327,  327,  359,  327,  359,  359,  327,  359,  895,
2191       820,  359,  327,  359,  804,  882,  362,  835,  777,  360,
2192       883, 1844,  360,  896,  836,  350,  350,  363,  359,  327,
2193       359,  773,  773,  773,  776,  837,  356,  773,  773,  773,
2194       773,  773,  773, 1845,  363,  357,  350,  351,  327,  351,
2195       350,  350,  350,  350,  350,  350,  350,  352,  350,  350,
2196       350,  887,  350,  354,  350,  355,  350,  327,  327,  327,
2197
2198       327,  327,  327,  359,  327,  359,  340,  341,  359,  327,
2199       359,  342,  888,  364,  838,  837,  364,  796,  820,  365,
2200      1847,  727,  350,  350,  365,  359,  327,  359,  359,  327,
2201       359, 1848,  814,  356,  327,  327,  327,  327,  327,  327,
2202      1054,  366,  357, 1055,  366,  359,  327,  359,  838, 1850,
2203       367,  728,  820,  367,  359,  327,  359,  327,  327,  327,
2204      1851,  363,  327,  327,  327,  359,  327,  359,  820,  808,
2205       363, 1853,  777,  368,  359,  327,  359, 1179,  368,  812,
2206      1180,  366,  359,  327,  359,  359,  327,  359,  776,  792,
2207       366,  327,  327,  327,  327,  327,  327, 1854,  369,  793,
2208
2209       807,  369,  359,  327,  359, 1857,  914,  370,  977,  777,
2210       370,  359,  327,  359,  327,  327,  327, 1343,  371,  327,
2211       327,  327,  359,  327,  359,  776, 1858,  371,  825,  826,
2212       372,  359,  327,  359, 1344,  372,  846, 1343,  369,  359,
2213       327,  359,  359,  327,  359,  827,  847,  369,  773,  773,
2214       773, 1018,  805,  817, 1499,  373,  915, 1859,  373,  374,
2215       375,  327,  375,  374,  374,  374,  374,  374,  374,  374,
2216       376,  374,  374,  374,  777,  374,  378,  374,  379,  374,
2217       384,  327,  384,  384,  327,  384,  327,  327,  327,  820,
2218       776,  327,  327,  327,  912, 1644,  385,  777,  913,  385,
2219
2220      1861, 1019,  386,  792,  851,  374,  374,  386,  384,  327,
2221       384,  380, 1344,  776,  381,  773,  773,  773,  773,  773,
2222       773,  773,  773,  773,  385, 1863,  382,  374,  375,  327,
2223       375,  374,  374,  374,  374,  374,  374,  374,  376,  374,
2224       374,  374,  830,  374,  378,  374,  379,  374,  384,  327,
2225       384,  384,  327,  384,  384,  327,  384, 1070,  802,  400,
2226       327,  400,  956, 1872,  385,  777,  957,  387, 1071, 1068,
2227       387, 1072,  857,  374,  374,  401,  400,  327,  400,  380,
2228       863,  776,  381,  773,  773,  773,  773,  773,  773,  773,
2229       773,  773,  401, 1069,  382,  388,  389,  327,  389,  388,
2230
2231       388,  388,  388,  388,  388,  388,  390,  388,  388,  388,
2232       777,  388,  392,  388,  393,  388,  327,  327,  327,  327,
2233       327,  327,  400,  327,  400,  868,  776,  400,  327,  400,
2234      1550,  777,  402,  820,  777,  402, 1551,  777,  401, 1875,
2235       874,  388,  388,  401,  400,  327,  400,  776, 1705,  394,
2236       776,  395,  863,  776,  396,  773,  773,  773,  397, 1883,
2237       403, 1706,  398,  388,  389,  327,  389,  388,  388,  388,
2238       388,  388,  388,  388,  390,  388,  388,  388,  820,  388,
2239       392,  388,  393,  388,  400,  327,  400,  412,  327,  412,
2240       412,  327,  412,  820,  891,  424,  327,  424, 1885,  777,
2241
2242       403,  838,  892,  413, 1080,  820,  413, 1080,  893,  388,
2243       388,  425,  424,  327,  424,  776, 1705,  394, 1081,  395,
2244       868, 1095,  396,  773,  773,  773,  397,  925,  425, 1712,
2245       398,  404,  405,  327,  405,  404,  404,  404,  404,  404,
2246       404,  404,  406,  404,  404,  404,  964,  404,  408,  404,
2247       409,  404,  436,  327,  436,  436,  327,  436,  327,  327,
2248       327,  969,  897,  327,  327,  327,  808, 1887,  437,  838,
2249       898,  437, 1888,  820,  386,  899,  812,  404,  404,  386,
2250       436,  327,  436,  436,  327,  436,  773,  773,  773,  773,
2251       773,  773,  773,  773,  773, 1889,  437, 1891, 1892,  437,
2252
2253      1896,  410,  404,  405,  327,  405,  404,  404,  404,  404,
2254       404,  404,  404,  406,  404,  404,  404,  777,  404,  408,
2255       404,  409,  404,  436,  327,  436,  436,  327,  436,  448,
2256       327,  448, 1089,  776,  448,  327,  448,  997, 1900,  438,
2257      1902, 1905,  438, 1090,  998,  449, 1072,  777,  404,  404,
2258       449,  327,  327,  327,  327,  327,  327,  773,  773,  773,
2259       773,  773,  773,  776, 1044,  874, 1907,  386,  782, 1912,
2260       386, 1045,  410,  414,  415,  327,  415,  414,  414,  414,
2261       414,  414,  414,  414,  416,  414,  414,  414,  777,  414,
2262       418,  414,  419,  414,  448,  327,  448,  448,  327,  448,
2263
2264       448,  327,  448, 1913,  776,  448,  327,  448, 1087, 1917,
2265       449,  783,  901,  449,  838,  777,  450,  784,  820,  414,
2266       414,  450,  785,  420,  773,  773,  773,  786, 1924, 1925,
2267       421,  776, 1088,  422,  414,  415,  327,  415,  414,  414,
2268       414,  414,  414,  414,  414,  416,  414,  414,  414,  991,
2269       414,  418,  414,  419,  414,  461,  327,  461,  461,  327,
2270       461,  327,  327,  327,  992,  820,  327,  327,  327,  777,
2271      1926,  462,  905,  914,  462, 1048,  884,  386,  925, 1080,
2272       414,  414,  386,  933,  420,  776,  773,  773,  773, 1927,
2273      1049,  421, 1928, 1105,  422,  426,  427,  327,  427,  426,
2274
2275       426,  426,  426,  426,  426,  426,  428,  426,  426,  426,
2276      1087,  426,  430,  426,  431,  426,  461,  327,  461,  461,
2277       327,  461,  461,  327,  461,  820,  820,  461,  327,  461,
2278      1929,  820,  462,  777, 1100,  462,  820, 1068,  463, 1930,
2279       921,  426,  426,  463,  477,  327,  477,  432, 1931,  776,
2280       433,  773,  773,  773,  773,  773,  773,  773,  773,  773,
2281       478, 1088,  434,  426,  427,  327,  427,  426,  426,  426,
2282       426,  426,  426,  426,  428,  426,  426,  426,  777,  426,
2283       430,  426,  431,  426,  477,  327,  477,  494,  327,  494,
2284       494,  327,  494, 1070,  776,  327,  327,  327, 1312, 1932,
2285
2286       478,  777, 1681,  495, 1090, 1068,  495, 1072,  963,  426,
2287       426,  362,  327,  327,  327,  432,  977,  776,  433,  773,
2288       773,  773,  773,  773,  773,  773,  773,  773,  362, 1100,
2289       434,  439,  440,  327,  440,  439,  439,  439,  439,  439,
2290       439,  439,  441,  439,  439,  439,  777,  439,  443,  439,
2291       444,  439,  494,  327,  494,  494,  327,  494,  494,  327,
2292       494,  820,  776,  494,  327,  494, 1933, 1934,  495,  820,
2293      1937,  495, 1940, 1087,  496, 1941,  999,  439,  439,  496,
2294       505,  327,  505,  445,  773,  773,  773,  773,  773,  773,
2295       773,  773,  773,  773,  773,  773,  506, 1104,  446,  439,
2296
2297       440,  327,  440,  439,  439,  439,  439,  439,  439,  439,
2298       441,  439,  439,  439,  777,  439,  443,  439,  444,  439,
2299       505,  327,  505,  327,  327,  327,  327,  327,  327,  820,
2300       776,  505,  327,  505, 1943, 1944,  506, 1946, 1947,  362,
2301      1948, 1068,  362, 1949, 1011,  439,  439,  506,  505,  327,
2302       505,  445,  773,  773,  773,  773,  773,  773,  773,  773,
2303       773,  773,  773,  773,  506, 1104,  446,  451,  452,  327,
2304       452,  451,  451,  451,  451,  451,  451,  451,  453,  451,
2305       451,  451,  777,  451,  455,  451,  456,  451,  505,  327,
2306       505,  505,  327,  505,  520,  327,  520,  820,  776,  520,
2307
2308       327,  520, 1953, 1954,  507,  777, 1080,  507, 1955, 1956,
2309       521, 1957,  938,  451,  451,  521,  327,  327,  327,  457,
2310      1106,  776,  458,  773,  773,  773,  773,  773,  773,  773,
2311       773,  773,  522, 1960,  459,  451,  452,  327,  452,  451,
2312       451,  451,  451,  451,  451,  451,  453,  451,  451,  451,
2313       777,  451,  455,  451,  456,  451,  327,  327,  327,  520,
2314       327,  520,  520,  327,  520, 1070,  776,  520,  327,  520,
2315      1963, 1964,  522,  777, 1238,  521, 1071, 1965,  521, 1236,
2316       943,  451,  451,  523,  520,  327,  520,  457, 1095,  776,
2317       458,  773,  773,  773,  773,  773,  773,  773,  773,  773,
2318
2319       523, 1968,  459,  464,  465,  327,  465,  464,  464,  464,
2320       464,  464,  464,  464,  466,  464,  464,  464,  777,  464,
2321       468,  464,  469,  464,  534,  327,  534,  534,  327,  534,
2322       544,  327,  544, 1018,  776,  544,  327,  544,  777,  777,
2323       535,  777,  777,  535, 1969,  948,  545, 1970,  958,  464,
2324       464,  545,  777,  470,  776,  776, 1038,  776,  776,  982,
2325       471, 1971, 1046,  472,  773,  773,  773,  473,  776,  474,
2326       475,  464,  465,  327,  465,  464,  464,  464,  464,  464,
2327       464,  464,  466,  464,  464,  464,  820,  464,  468,  464,
2328       469,  464,  327,  327,  327,  327,  327,  327,  544,  327,
2329
2330       544, 1972,  959,  544,  327,  544, 1973,  968,  546,  820,
2331       777,  546, 1974,  777,  545,  820,  963,  464,  464,  545,
2332       820,  470,  967,  773,  773,  773,  776, 1038,  471,  776,
2333      1977,  472,  773,  773,  773,  473, 1981,  474,  475,  479,
2334       480,  327,  480,  479,  479,  479,  479,  479,  479,  479,
2335       481,  479,  479,  479,  964,  479,  483,  479,  484,  479,
2336       544,  327,  544,  544,  327,  544,  559,  327,  559,  969,
2337       987,  559,  327,  559,  988, 1312,  547, 1982,  989,  547,
2338       820,  777,  560, 1066,  804,  479,  479,  560,  993,  485,
2339       486,  773,  773,  773,  999, 1919,  487,  776, 1067,  488,
2340
2341       773,  773,  773,  489, 1983,  490,  491,  492,  479,  480,
2342       327,  480,  479,  479,  479,  479,  479,  479,  479,  481,
2343       479,  479,  479,  777,  479,  483,  479,  484,  479,  327,
2344       327,  327,  327,  327,  327,  559,  327,  559, 1066,  776,
2345       559,  327,  559,  838, 1985,  362, 1989,  820,  362, 1235,
2346       777,  560, 1990, 1121,  479,  479,  560, 1004,  485,  486,
2347       773,  773,  773, 1992, 1067,  487,  776, 1993,  488,  773,
2348       773,  773,  489, 1996,  490,  491,  492,  497,  498,  327,
2349       498,  497,  497,  497,  497,  497,  497,  497,  499,  497,
2350       497,  497,  777,  497,  501,  497,  502,  497,  559,  327,
2351
2352       559,  559,  327,  559,  571,  327,  571, 1089,  776,  571,
2353       327,  571, 1997, 1999,  561, 2000,  777,  561, 1090, 2003,
2354       572, 1236, 2025,  497,  497,  572,  773,  773,  773,  773,
2355       773,  773,  776, 2026,  503,  497,  498,  327,  498,  497,
2356       497,  497,  497,  497,  497,  497,  499,  497,  497,  497,
2357       777,  497,  501,  497,  502,  497,  582,  327,  582,  582,
2358       327,  582,  593,  327,  593, 1089,  776,  593,  327,  593,
2359      2030, 2034,  583, 2036,  777,  583, 1071, 2045,  594, 1072,
2360      2046,  497,  497,  594,  773,  773,  773,  773,  773,  773,
2361       776, 2047,  503,  508,  509,  327,  509,  508,  508,  508,
2362
2363       508,  508,  508,  508,  510,  508,  508,  508,  777,  508,
2364       512,  508,  513,  508,  608,  327,  608,  608,  327,  608,
2365       327,  327,  327, 1805,  776,  327,  327,  327, 2048, 2050,
2366       609, 2058,  777,  609, 2060, 1806,  610, 2063, 2064,  508,
2367       508,  610,  514, 1046,  515,  773,  773,  773,  776, 2068,
2368       516,  773,  773,  773,  773,  773,  773,  517, 2070, 2071,
2369       518,  508,  509,  327,  509,  508,  508,  508,  508,  508,
2370       508,  508,  510,  508,  508,  508, 2073,  508,  512,  508,
2371       513,  508,  619,  327,  619,  619,  327,  619,  619,  327,
2372       619, 2074,  838,  619,  327,  619,  820, 2075,  620, 2076,
2373
2374      1312,  620, 2077, 2081,  621, 2082, 2083,  508,  508,  621,
2375       514, 2088,  515,  773,  773,  773, 1314, 2092,  516,  773,
2376       773,  773,  773,  773,  773,  517, 2096, 2098,  518,  524,
2377       525,  327,  525,  524,  524,  524,  524,  524,  524,  524,
2378       526,  524,  524,  524, 2100,  524,  528,  524,  529,  524,
2379       327,  327,  327,  327,  327,  327,  619,  327,  619, 2102,
2380      1852,  619,  327,  619, 2103, 2104,  622, 1025, 2106,  622,
2381      2113, 2117,  620, 1712, 1026,  524,  524,  620,  619,  327,
2382       619,  530, 2118,  776, 2120,  807,  531,  773,  773,  773,
2383       773,  773,  773, 2127,  623,  773,  773,  773,  532,  524,
2384
2385       525,  327,  525,  524,  524,  524,  524,  524,  524,  524,
2386       526,  524,  524,  524,  826,  524,  528,  524,  529,  524,
2387       619,  327,  619,  327,  327,  327,  327,  327,  327, 2129,
2388       827,  619,  327,  619, 2130, 2131,  623,  777,  817,  546,
2389      1922, 2136,  546, 2137, 1033,  524,  524,  621,  619,  327,
2390       619,  530, 2138,  776, 2140, 2141,  531,  773,  773,  773,
2391       773,  773,  773, 2142,  621,  773,  773,  773,  532,  536,
2392       537,  327,  537,  536,  536,  536,  536,  536,  536,  536,
2393       538,  536,  536,  536, 2143,  536,  540,  536,  541,  536,
2394       327,  327,  327,  327,  327,  327,  619,  327,  619, 2144,
2395
2396      1077,  619,  327,  619, 1454, 2145,  624, 1078, 2146,  624,
2397      2147, 2148,  623, 1079, 1455,  536,  536,  623, 1052, 1052,
2398      1052, 1456, 1316,  542,  536,  537,  327,  537,  536,  536,
2399       536,  536,  536,  536,  536,  538,  536,  536,  536, 2149,
2400       536,  540,  536,  541,  536,  619,  327,  619,  619,  327,
2401       619,  638,  327,  638, 2151, 1077,  638,  327,  638, 2152,
2402      2153,  625, 1078, 2156,  625, 2159, 2160,  639, 1085, 1312,
2403       536,  536,  639, 1052, 1052, 1052, 2161, 2162,  542,  548,
2404       549,  327,  549,  548,  548,  548,  548,  548,  548,  548,
2405       550,  548,  548,  548, 2133,  548,  552,  548,  553,  548,
2406
2407       327,  327,  327,  327,  327,  327,  638,  327,  638, 2163,
2408      1094,  638,  327,  638, 2164, 2165,  402, 1078, 2166,  402,
2409      2169, 1094,  639, 1079, 1077,  548,  548,  639, 1078,  554,
2410      2172, 1078, 2173, 1053, 1085, 2174,  555, 1237, 2181,  556,
2411      2182, 1331, 1331, 1331, 2183, 2184,  557,  548,  549,  327,
2412       549,  548,  548,  548,  548,  548,  548,  548,  550,  548,
2413       548,  548, 2185,  548,  552,  548,  553,  548,  638,  327,
2414       638,  638,  327,  638,  650,  327,  650, 2187, 1094,  650,
2415       327,  650, 2192, 2193,  640, 1078, 2237,  640, 2238, 2244,
2416       651, 1237, 2245,  548,  548,  651, 2251,  554, 1323, 1323,
2417
2418      1323, 2252, 1324, 2253,  555, 1325, 1332,  556, 1331, 1331,
2419      1331, 1354, 1354, 1354,  557,  562,  563,  327,  563,  562,
2420       562,  562,  562,  562,  562,  562,  564,  562,  562,  562,
2421      2254,  562,  566,  562,  567,  562,  664,  327,  664,  664,
2422       327,  664,  675,  327,  675, 2257, 2263,  675,  327,  675,
2423      2265, 2271,  665, 2275, 2276,  665, 2279, 2280,  676, 2283,
2424      2284,  562,  562,  676, 1354, 1354, 1354,  568, 1935, 1935,
2425      1935, 2285,  569,  562,  563,  327,  563,  562,  562,  562,
2426       562,  562,  562,  562,  564,  562,  562,  562, 2286,  562,
2427       566,  562,  567,  562,  327,  327,  327,  327,  327,  327,
2428
2429       675,  327,  675, 2287, 2288,  675,  327,  675, 2289, 2296,
2430       386, 2297, 2298,  386, 2300, 1936,  676, 2302, 2310,  562,
2431       562,  676, 1354, 1354, 1354,  568, 1331, 1331, 1331, 1355,
2432       569,  573,  574,  327,  574,  573,  573,  573,  573,  573,
2433       573,  573,  575,  573,  573,  573, 2315,  573,  577,  573,
2434       578,  573,  675,  327,  675,  675,  327,  675,  687,  327,
2435       687, 2316, 2317,  687,  327,  687, 2319, 2332,  677, 1312,
2436      2346,  677, 2347, 2348,  688, 2352, 2353,  573,  573,  688,
2437       700,  327,  700,  700,  327,  700, 2341, 1332,  579, 1922,
2438      2355, 1355, 2356, 1402, 1402, 1402,  701, 1403, 2357,  701,
2439
2440      1404,  580,  573,  574,  327,  574,  573,  573,  573,  573,
2441       573,  573,  573,  575,  573,  573,  573, 2349,  573,  577,
2442       573,  578,  573,  327,  327,  327,  327,  327,  327,  700,
2443       327,  700, 2342, 2350,  700,  327,  700, 1922, 2358,  362,
2444      2359, 2351,  362, 2360, 2363,  701, 2364, 2365,  573,  573,
2445       701,  700,  327,  700,  700,  327,  700, 2366, 2367,  579,
2446      2371, 1438, 1438, 1438, 2372, 1439, 2373,  702, 1440, 2374,
2447       702, 2343,  580,  584,  585,  327,  585,  584,  584,  584,
2448       584,  584,  584,  584,  586,  584,  584,  584, 2368,  584,
2449       588,  584,  589,  584,  714,  327,  714,  714,  327,  714,
2450
2451       327,  327,  327, 2376, 2369,  327,  327,  327, 2377, 2378,
2452       715, 2385, 2370,  715, 2387, 2349,  716, 2388, 2389,  584,
2453       584,  716,  714,  327,  714, 1441, 1441, 1441, 2390, 1442,
2454      2391, 2369, 1443, 2394, 2396,  590, 2427, 2428,  715, 2351,
2455       591,  584,  585,  327,  585,  584,  584,  584,  584,  584,
2456       584,  584,  586,  584,  584,  584, 2368,  584,  588,  584,
2457       589,  584,  714,  327,  714,  714,  327,  714,  714,  327,
2458       714, 2429, 2350,  739,  327,  739, 2435, 2436,  715, 2440,
2459      2370,  717, 2441, 2444,  717,  340,  341,  584,  584,  740,
2460       342,  739,  327,  739, 1457, 1457, 1457, 2445, 1458, 2449,
2461
2462       727, 1459, 2450,  590, 1938, 1938, 1938,  740,  591,  595,
2463       596,  327,  596,  595,  595,  595,  595,  595,  595,  595,
2464       597,  595,  595,  595, 2453,  595,  599,  595,  600,  595,
2465       728,  750,  327,  750,  750,  327,  750,  750,  327,  750,
2466      2457,  750,  327,  750, 1060, 1060, 1060,  751, 2458, 2459,
2467       751, 1939, 2462,  752, 2465,  595,  595,  752,  601,  602,
2468       603, 1061, 2469, 1461, 1461, 1461,  604, 1462, 2470,  605,
2469      1463, 1942, 1942, 1942, 2471, 2472,  606,  595,  596,  327,
2470       596,  595,  595,  595,  595,  595,  595,  595,  597,  595,
2471       595,  595, 2477,  595,  599,  595,  600,  595,  327,  327,
2472
2473       327,  327,  327,  327,  750,  327,  750, 2479, 2480,  750,
2474       327,  750, 2481, 2482,  362, 2484, 2487,  362, 2489, 2492,
2475       751, 2506, 2507,  595,  595,  751,  601,  602,  603, 1479,
2476      1479, 1479, 2508, 1480,  604, 2513, 1481,  605, 1945, 1945,
2477      1945, 1952, 1952, 1952,  606,  611,  612,  327,  612,  611,
2478       611,  611,  611,  611,  611,  611,  613,  611,  611,  611,
2479      2514,  611,  615,  611,  616,  611,  750,  327,  750,  750,
2480       327,  750,  327,  327,  327, 2515, 2517,  327,  327,  327,
2481      2518, 2519,  753, 2516, 2522,  753, 2532, 2541,  754, 2542,
2482      2543,  611,  611,  754,  750,  327,  750,  750,  327,  750,
2483
2484      1489, 1489, 1489, 2520, 1490, 1922, 1312, 1491, 2544, 2545,
2485       755, 2521, 2534,  755, 1922,  617,  611,  612,  327,  612,
2486       611,  611,  611,  611,  611,  611,  611,  613,  611,  611,
2487       611, 2548,  611,  615,  611,  616,  611,  750,  327,  750,
2488       750,  327,  750,  327,  327,  327, 2535, 2550,  327,  327,
2489       327, 2551, 2536,  756, 2552, 2556,  756, 2557, 2559,  367,
2490      2560, 2561,  611,  611,  367,  750,  327,  750,  750,  327,
2491       750, 1501, 1501, 1501, 2562, 1502, 2565, 2569, 1503, 2570,
2492      2571,  753, 2573, 2579,  753, 2581,  617,  626,  627,  327,
2493       627,  626,  626,  626,  626,  626,  626,  626,  628,  626,
2494
2495       626,  626, 2593,  626,  630,  626,  631,  626,  327,  327,
2496       327,  327,  327,  327,  750,  327,  750, 2594, 2595,  750,
2497       327,  750, 2599, 2600,  368, 2601, 2607,  368, 2608, 2609,
2498       756, 2610, 2613,  626,  626,  756,  750,  327,  750, 2617,
2499      2618,  632, 2619,  633, 2620, 2623,  634, 1958, 1958, 1958,
2500       635, 2624,  757, 2625,  636,  626,  627,  327,  627,  626,
2501       626,  626,  626,  626,  626,  626,  628,  626,  626,  626,
2502      2626,  626,  630,  626,  631,  626,  750,  327,  750,  327,
2503       327,  327,  327,  327,  327, 2627, 2628,  750,  327,  750,
2504      2640, 2644,  757, 2647, 1959,  370, 2648, 2659,  370, 2660,
2505
2506      2661,  626,  626,  758,  750,  327,  750, 2665, 2666,  632,
2507      2667,  633, 2668, 2669,  634, 1961, 1961, 1961,  635, 2670,
2508       758, 2671,  636,  641,  642,  327,  642,  641,  641,  641,
2509       641,  641,  641,  641,  643,  641,  641,  641, 2672,  641,
2510       645,  641,  646,  641,  327,  327,  327,  327,  327,  327,
2511       750,  327,  750, 2673, 2674,  750,  327,  750, 2679, 2696,
2512       372, 2697, 1939,  372, 2698, 1922,  757, 2699, 2701,  641,
2513       641,  757,  750,  327,  750,  750,  327,  750, 2703, 2704,
2514       647, 1922, 1504, 1504, 1504, 2705, 1505, 2707,  759, 1506,
2515      2708,  759, 2709,  648,  641,  642,  327,  642,  641,  641,
2516
2517       641,  641,  641,  641,  641,  643,  641,  641,  641, 2682,
2518       641,  645,  641,  646,  641,  770,  327,  770,  770,  327,
2519       770,  327,  327,  327, 2710, 2711,  327,  327,  327, 2683,
2520      2712,  771, 2713, 2714,  771, 2735, 2736,  386, 2741, 2737,
2521       641,  641,  386,  770,  327,  770,  770,  327,  770, 2738,
2522      2742,  647, 2748,  792, 1517, 1517, 1517, 2749, 1518,  771,
2523       963, 1519,  771,  818,  648,  652,  653,  327,  653,  652,
2524       652,  652,  652,  652,  652,  652,  654,  652,  652,  652,
2525      2750,  652,  656,  652,  657,  652,  770,  327,  770,  770,
2526       327,  770,  819, 2751, 1950, 1950, 1950, 2767,  964,  808,
2527
2528       965, 2768,  772, 2769, 2770,  772,  820, 2785, 2786,  812,
2529       804,  652,  652,  966, 2790,  967,  821, 2791, 1038, 1038,
2530       658, 2792,  659, 2793,  807, 2794,  660, 2795,  793,  818,
2531      1951,  661,  662,  652,  653,  327,  653,  652,  652,  652,
2532       652,  652,  652,  652,  654,  652,  652,  652, 2796,  652,
2533       656,  652,  657,  652,  828, 2797, 2798,  795,  819,  797,
2534      1327, 1327, 1327,  797, 1962, 1962, 1962,  820, 2799,  829,
2535       803,  801,  820,  802,  803, 2800,  804,  817, 1329,  652,
2536       652,  805,  821, 1038, 2801, 1528, 1528, 1528,  658, 1529,
2537       659, 2813, 1530,  793,  660, 2818,  807, 2819, 2822,  661,
2538
2539       662,  666,  667,  327,  667,  666,  666,  666,  666,  666,
2540       666,  666,  668,  666,  666,  666, 2823,  666,  670,  666,
2541       671,  666,  825, 1039, 2824,  830,  828, 1126, 1126, 1126,
2542      1966, 1966, 1966, 1145, 1145, 1145, 1381, 1381, 1381,  820,
2543      1147, 1147, 1147, 2820, 1127, 2320,  805,  666,  666,  817,
2544      1146, 2321, 2821,  672, 1383, 2322, 2825, 1148, 1535, 1535,
2545      1535, 2323, 1536, 2828, 2829, 1537, 1967, 2830,  673,  666,
2546       667,  327,  667,  666,  666,  666,  666,  666,  666,  666,
2547       668,  666,  666,  666, 2831,  666,  670,  666,  671,  666,
2548      1157, 1157, 1157, 1160, 1160, 1160, 1174, 1174, 1174, 2826,
2549
2550      1181, 1181, 1181, 1190, 1190, 1190, 2832, 1158, 2827, 2834,
2551      1161, 2835, 2836, 1175, 2838,  666,  666, 1182, 2839, 1922,
2552      1191,  672, 1553, 1553, 1553, 2840, 1554, 2842, 2843, 1555,
2553      2845, 1966, 1966, 1966, 2863, 2864,  673,  678,  679,  327,
2554       679,  678,  678,  678,  678,  678,  678,  678,  680,  678,
2555       678,  678, 2816,  678,  682,  678,  683,  678, 1192, 1192,
2556      1192, 1200, 1200, 1200, 1208, 1208, 1208, 1951, 1212, 1212,
2557      1212, 2865, 1224, 1224, 1224, 1193, 2866, 2870, 1201, 2871,
2558      2878, 1209, 2879,  678,  678, 1213, 2888, 1922,  684, 1225,
2559      1961, 1961, 1961, 2889,  685,  678,  679,  327,  679,  678,
2560
2561       678,  678,  678,  678,  678,  678,  680,  678,  678,  678,
2562      2890,  678,  682,  678,  683,  678, 1246, 1246, 1246, 1252,
2563      1252, 1252, 1268, 1268, 1268, 2817, 1274, 1274, 1274, 2902,
2564      1280, 1280, 1280, 1247, 2903, 2920, 1253, 1976, 2921, 1269,
2565      2922,  678,  678, 1275, 2924, 2925,  684, 1281, 2139, 2139,
2566      2139, 2926,  685,  689,  690,  327,  690,  689,  689,  689,
2567       689,  689,  689,  689,  691,  689,  689,  689, 2927,  689,
2568       693,  689,  694,  689, 1288, 1288, 1288, 1300, 1300, 1300,
2569      1060, 1060, 1060, 1327, 1327, 1327, 1374, 1374, 1374, 2928,
2570      2929, 1289, 2930, 2872, 1301, 2873, 2875, 1061, 2876,  689,
2571
2572       689, 1329,  695, 1375,  696, 1583, 1583, 1583, 2874, 1584,
2573       697, 2877, 1585, 2931, 2932, 1950, 1950, 1950, 2933, 2934,
2574      1330,  698,  689,  690,  327,  690,  689,  689,  689,  689,
2575       689,  689,  689,  691,  689,  689,  689, 2935,  689,  693,
2576       689,  694,  689, 1378, 1378, 1378, 2937, 2938, 1381, 1381,
2577      1381, 1967, 1391, 1391, 1391, 4107, 4107, 4107, 2939, 2941,
2578      1379, 2942, 2943, 4107, 4107, 4107, 1383, 2940,  689,  689,
2579      1393,  695, 4107,  696, 1592, 1592, 1592, 2944, 1593,  697,
2580      4107, 1594, 1617, 1617, 1617, 1384, 1618, 2947, 2948, 1619,
2581       698,  703,  704,  327,  704,  703,  703,  703,  703,  703,
2582
2583       703,  703,  705,  703,  703,  703, 1376,  703,  707,  703,
2584       708,  703, 1397, 1397, 1397, 2949, 1312, 1397, 1397, 1397,
2585      2954, 1377, 2955, 1380, 1126, 1126, 1126, 1406, 1406, 1406,
2586      1399, 1391, 1391, 1391, 2324, 1399, 1922,  703,  703, 2956,
2587      2325, 1127,  709, 2957, 2326, 1408, 2958, 2945,  710, 1393,
2588      2327, 2959,  711, 1935, 1935, 1935, 2946, 2951,  712,  703,
2589       704,  327,  704,  703,  703,  703,  703,  703,  703,  703,
2590       705,  703,  703,  703, 2952,  703,  707,  703,  708,  703,
2591      2960, 1394, 1400, 1410, 1410, 1410, 1414, 1414, 1414, 1416,
2592      1416, 1416, 2961, 2962, 1406, 1406, 1406, 4107, 4107, 4107,
2593
2594      1411, 2963, 2964, 1415, 2965,  703,  703, 1418, 2966, 2967,
2595       709, 2968, 1408, 2970, 4107, 2971,  710, 1626, 1626, 1626,
2596       711, 1627, 2972, 2973, 1628, 2974,  712,  718,  719,  327,
2597       719,  718,  718,  718,  718,  718,  718,  718,  720,  718,
2598       718,  718, 1409,  718,  722,  718,  723,  718, 1412, 1416,
2599      1416, 1416, 1420, 1420, 1420, 1422, 1422, 1422, 1424, 1424,
2600      1424, 2975, 2976, 1413, 1424, 1424, 1424, 1418, 2988, 1421,
2601      2989, 2992, 1423,  718,  718, 1922, 1426, 1938, 1938, 1938,
2602      2993,  724, 1426, 2994,  725, 2150, 2150, 2150, 1942, 1942,
2603      1942,  726,  718,  719,  327,  719,  718,  718,  718,  718,
2604
2605       718,  718,  718,  720,  718,  718,  718, 2995,  718,  722,
2606       718,  723,  718, 1428, 1428, 1428, 1432, 1432, 1432, 2953,
2607      2996, 1419, 1434, 1434, 1434, 2998, 2999, 4107, 4107, 4107,
2608      1429, 2997, 3002, 1433, 3003, 3014, 1427, 3015,  718,  718,
2609      1436, 1635, 1635, 1635, 4107, 1636,  724, 3016, 1637,  725,
2610      1945, 1945, 1945, 2154, 2154, 2154,  726,  729,  730,  327,
2611       730,  729,  729,  729,  729,  729,  729,  729,  731,  729,
2612       729,  729, 3027,  729,  733,  729,  734,  729, 1430, 1434,
2613      1434, 1434, 1145, 1145, 1145, 1147, 1147, 1147, 1444, 1444,
2614      1444, 3048, 3057, 1431, 4107, 4107, 4107, 1436, 3000, 1146,
2615
2616      3058, 3059, 1148,  729,  729, 1445, 4107, 4107, 4107, 3001,
2617       735, 4107, 3060, 1646, 1646, 1646,  736, 1647, 2155, 3061,
2618      1648, 3062, 3063, 4107, 3064,  737,  729,  730,  327,  730,
2619       729,  729,  729,  729,  729,  729,  729,  731,  729,  729,
2620       729, 3065,  729,  733,  729,  734,  729, 1446, 1450, 1450,
2621      1450, 1437, 1950, 1950, 1950, 1952, 1952, 1952, 4107, 4107,
2622      4107, 3066, 1447, 4107, 4107, 4107, 1452, 3068, 3069, 1450,
2623      1450, 1450,  729,  729, 3070, 4107, 1157, 1157, 1157,  735,
2624      4107, 3071, 1662, 1662, 1662,  736, 1663, 1452, 3072, 1664,
2625      2157, 2157, 2157, 1158,  737,  741,  742,  327,  742,  741,
2626
2627       741,  741,  741,  741,  741,  741,  743,  741,  741,  741,
2628      1448,  741,  745,  741,  746,  741, 1449, 1453, 1160, 1160,
2629      1160, 1464, 1464, 1464, 3020, 1475, 1475, 1475, 1475, 1475,
2630      1475, 1174, 1174, 1174, 3021, 1161, 3073, 2158, 1465, 3074,
2631      3022,  741,  741, 1477, 3023, 3075, 1477, 3076, 1175, 1323,
2632      1323, 1323,  747, 1324, 3024, 3077, 1325, 1958, 1958, 1958,
2633      3025,  748,  741,  742,  327,  742,  741,  741,  741,  741,
2634       741,  741,  741,  743,  741,  741,  741, 3078,  741,  745,
2635       741,  746,  741, 1482, 1482, 1482, 3079, 1478, 1482, 1482,
2636      1482, 3087, 3088, 1181, 1181, 1181, 1495, 1495, 1495, 3089,
2637
2638      3090, 1484, 1495, 1495, 1495, 3091, 1484, 3092,  741,  741,
2639      1182, 1732, 1732, 1732, 1497, 1733, 3093, 3094, 1734,  747,
2640      1497, 1961, 1961, 1961, 1962, 1962, 1962, 1312,  748,  760,
2641       761,  327,  761,  760,  760,  760,  760,  760,  760,  760,
2642       762,  760,  760,  760, 3095,  760,  764,  760,  765,  760,
2643      1485, 1190, 1190, 1190, 1192, 1192, 1192, 3084, 3096, 1507,
2644      1507, 1507, 3097, 3098, 1498, 1507, 1507, 1507, 1191, 1922,
2645      3099, 1193, 1512, 1512, 1512,  760,  760, 1509, 1200, 1200,
2646      1200,  766, 3101, 1509,  767, 1737, 1737, 1737, 1922, 1738,
2647      1514, 3102, 1739, 3103, 3104, 1201,  768,  760,  761,  327,
2648
2649       761,  760,  760,  760,  760,  760,  760,  760,  762,  760,
2650       760,  760, 3085,  760,  764,  760,  765,  760, 1512, 1512,
2651      1512, 1523, 1523, 1523, 1523, 1523, 1523, 1510, 1208, 1208,
2652      1208, 3086, 1531, 1531, 1531, 3106, 1514, 3107, 3108, 1525,
2653      3119, 3127, 1525,  760,  760, 1209, 1212, 1212, 1212,  766,
2654      1533, 3128,  767, 1531, 1531, 1531, 1539, 1539, 1539, 1545,
2655      1545, 1545, 3112, 1213,  768,  777, 3129, 3130, 1539, 1539,
2656      1539, 1533,  792, 3131, 1541, 3113, 3132, 1547, 3133, 1515,
2657      1526,  776,  793, 1545, 1545, 1545, 1541, 1224, 1224, 1224,
2658      1556, 1556, 1556, 3042, 3134, 1560, 1560, 1560, 1560, 1560,
2659
2660      1560, 1547, 3114, 3043, 1225, 3135, 3044, 1557, 3136, 1534,
2661       794,  795,  796, 1562, 3137, 3115, 1562,  797,  798, 3141,
2662      3144,  799,  800, 3145, 3045,  801, 3146,  802,  803,  804,
2663      1542, 1566, 1566, 1566, 3046,  805,  777, 3047, 1566, 1566,
2664      1566, 1579, 1579, 1579, 3147, 1548, 1579, 1579, 1579, 1568,
2665      1563, 3148,  776,  807, 2684, 2685, 1568, 2686, 3149, 1581,
2666      1246, 1246, 1246, 3150, 1581, 2687, 1587, 1587, 1587, 1587,
2667      1587, 1587, 2688, 1252, 1252, 1252, 3153, 1247, 1595, 1595,
2668      1595,  794,  808,  809, 1589, 3161, 3162, 1589,  810,  811,
2669      1253, 3157,  812,  800, 3165, 1596,  813, 1569,  814,  815,
2670
2671       816, 1598, 1598, 1598, 3158, 3166,  817,  777, 1603, 1603,
2672      1603, 1582, 3159, 1603, 1603, 1603, 3169, 3163, 1599, 1607,
2673      1607, 1607, 3167,  776,  822, 3160, 1605, 1609, 1609, 1609,
2674      3164, 1605, 3180, 3181, 1590, 3168, 1608, 3182, 4107, 4107,
2675      4107, 1966, 1966, 1966, 1610, 3183, 3184, 1612, 1612, 1612,
2676      3185, 3186,  794,  823,  796, 4107, 1612, 1612, 1612,  810,
2677       798, 1606, 3187,  799,  800, 1614, 3189,  806, 3190,  814,
2678       815,  804, 3191, 3192, 1614, 3193, 3194,  824, 1268, 1268,
2679      1268, 1620, 1620, 1620, 1620, 1620, 1620, 1274, 1274, 1274,
2680      1630, 1630, 1630, 3195, 3196, 1269, 3197, 3198, 1611, 1622,
2681
2682      3199, 3200, 1622, 3208, 1275, 1630, 1630, 1630, 1632, 1280,
2683      1280, 1280, 1640, 1640, 1640, 1640, 1640, 1640, 1615, 1288,
2684      1288, 1288, 1312, 1632, 3209, 3210, 1281, 1651, 1651, 1651,
2685      1642, 3211, 3212, 1642, 3213, 3214, 1289, 1651, 1651, 1651,
2686      1658, 1658, 1658, 1922, 3215, 1653, 1623, 1658, 1658, 1658,
2687      1300, 1300, 1300, 3216, 3217, 1653, 3218, 3219, 1660, 1666,
2688      1666, 1666, 1666, 1666, 1666, 1660, 3220, 1301, 1670, 1670,
2689      1670, 3204, 1633, 3221, 4107, 4107, 4107, 1668, 3223, 3205,
2690      1668, 3224, 1643, 3225, 3227, 1671, 1674, 1674, 1674, 3236,
2691      3237, 4107, 4107, 4107, 4107, 1677, 1677, 1677, 1677, 1677,
2692
2693      1677, 3238, 1654, 1675, 1327, 1327, 1327, 3239, 3244, 4107,
2694      3251, 3228, 1661, 1679, 3252, 3253, 1679, 1327, 1327, 1327,
2695      3254, 3229, 1329, 3255, 1669, 1672, 1688, 1688, 1688, 1374,
2696      1374, 1374, 1378, 1378, 1378, 1329, 1381, 1381, 1381, 3230,
2697      1673, 1381, 1381, 1381, 1689, 3256, 1375, 3257, 3258, 1379,
2698      3231, 3259, 1676, 3260, 1383, 1381, 1381, 1381, 3261, 1383,
2699      1680, 1744, 1744, 1744, 1391, 1391, 1391, 1391, 1391, 1391,
2700      1391, 1391, 1391, 1383, 1397, 1397, 1397, 3262, 1745, 1397,
2701      1397, 1397, 1393, 3266, 3267, 1393, 3268, 3269, 1393, 1397,
2702      1397, 1397, 1399, 3270, 1402, 1402, 1402, 1399, 1403, 3271,
2703
2704      3272, 1404, 3273, 1406, 1406, 1406, 3274, 1399, 1406, 1406,
2705      1406, 1406, 1406, 1406, 1410, 1410, 1410, 1414, 1414, 1414,
2706      1741, 1408, 3275, 1756, 1756, 1756, 1408, 1757, 3276, 1408,
2707      1758, 1411, 3277, 3278, 1415, 3279, 3280, 1749, 1761, 1761,
2708      1761, 3281, 1762, 1752, 3282, 1763, 1416, 1416, 1416, 1416,
2709      1416, 1416, 1416, 1416, 1416, 1420, 1420, 1420, 1765, 1765,
2710      1765, 1755, 1766, 3283, 1418, 1767, 3284, 1418, 3285, 3297,
2711      1418, 3298, 1421, 1422, 1422, 1422, 1768, 1768, 1768, 3299,
2712      1769, 3300, 3301, 1770, 1424, 1424, 1424, 1424, 1424, 1424,
2713      1423, 1424, 1424, 1424, 1428, 1428, 1428, 1772, 1772, 1772,
2714
2715      3302, 1773, 1426, 3303, 1774, 1426, 1432, 1432, 1432, 1426,
2716      3304, 1429, 1777, 1777, 1777, 1764, 1778, 3306, 3307, 1779,
2717      1434, 1434, 1434, 1433, 1434, 1434, 1434, 1434, 1434, 1434,
2718      1438, 1438, 1438, 3308, 1439, 3309, 3310, 1440, 1436, 1441,
2719      1441, 1441, 1436, 1442, 3311, 1436, 1443, 1444, 1444, 1444,
2720      3312, 1781, 1781, 1781, 1771, 1782, 3313, 3314, 1783, 1450,
2721      1450, 1450, 3315, 3316, 1445, 1450, 1450, 1450, 1450, 1450,
2722      1450, 1457, 1457, 1457, 3317, 1458, 3332, 1452, 1459, 1792,
2723      1792, 1792, 3333, 1452, 3334, 3335, 1452, 1461, 1461, 1461,
2724      1780, 1462, 1312, 3336, 1463, 3337, 1793, 1464, 1464, 1464,
2725
2726      1794, 1794, 1794, 3338, 1795, 3339, 3341, 1796, 1475, 1475,
2727      1475, 1475, 1475, 1475, 1465, 3344, 3346, 1788, 1475, 1475,
2728      1475, 1479, 1479, 1479, 3347, 1480, 1477, 3326, 1481, 1477,
2729      1482, 1482, 1482, 1482, 1482, 1482, 1477, 1482, 1482, 1482,
2730      1811, 1811, 1811, 1489, 1489, 1489, 3348, 1490, 1484, 3349,
2731      1491, 1484, 1495, 1495, 1495, 1484, 3350, 1812, 1495, 1495,
2732      1495, 1495, 1495, 1495, 1818, 1818, 1818, 1501, 1501, 1501,
2733      1497, 1502, 3351, 3352, 1503, 3353, 1497, 3354, 3355, 1497,
2734      3356, 1819, 3357, 1504, 1504, 1504, 1807, 1505, 3360, 3363,
2735      1506, 1507, 1507, 1507, 1507, 1507, 1507, 3364, 1808, 1507,
2736
2737      1507, 1507, 1821, 1821, 1821, 1512, 1512, 1512, 3365, 1509,
2738      3366, 3367, 1509, 1512, 1512, 1512, 3368, 1509, 3369, 1822,
2739      1512, 1512, 1512, 1514, 1523, 1523, 1523, 1816, 1517, 1517,
2740      1517, 1514, 1518, 3370, 3371, 1519, 3372, 3377, 1514, 1523,
2741      1523, 1523, 1525, 1523, 1523, 1523, 1528, 1528, 1528, 3378,
2742      1529, 3379, 3380, 1530, 1531, 1531, 1531, 1525, 1531, 1531,
2743      1531, 1525, 1531, 1531, 1531, 1820, 3381, 1535, 1535, 1535,
2744      1823, 1536, 1533, 3382, 1537, 3383, 1533, 1539, 1539, 1539,
2745      1533, 1539, 1539, 1539, 1539, 1539, 1539, 3384, 1833, 1833,
2746      1833, 4107, 4107, 4107, 3385, 1541, 1545, 1545, 1545, 1541,
2747
2748      3386, 3387, 1541, 3232, 1828, 1834, 3388, 3389, 4107, 1545,
2749      1545, 1545, 3390, 3233, 1547, 1545, 1545, 1545, 1553, 1553,
2750      1553, 3391, 1554, 1830, 3392, 1555, 3393, 1547, 1556, 1556,
2751      1556, 3234, 3397, 1547, 3398, 1832, 1841, 1841, 1841, 1835,
2752      1842, 3399, 3235, 1843, 3400, 1557, 1560, 1560, 1560, 1560,
2753      1560, 1560, 1560, 1560, 1560, 1566, 1566, 1566, 1566, 1566,
2754      1566, 1566, 1566, 1566, 1562, 3401, 3402, 1562, 3403, 3404,
2755      1562, 3407, 3408, 1568, 3409, 3410, 1568, 3411, 3412, 1568,
2756      1855, 1855, 1855, 1836, 1579, 1579, 1579, 1579, 1579, 1579,
2757      1579, 1579, 1579, 3414, 1583, 1583, 1583, 1856, 1584, 3415,
2758
2759      3416, 1585, 1581, 3417, 1846, 1581, 3418, 3419, 1581, 1849,
2760      1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1592,
2761      1592, 1592, 3288, 1593, 2689, 2690, 1594, 2691, 1589, 3420,
2762      3421, 1589, 3289, 3422, 1589, 2692, 1595, 1595, 1595, 1864,
2763      1864, 1864, 2693, 1865, 3423, 3424, 1866, 1867, 1867, 1867,
2764      3290, 3425, 1860, 1596, 1598, 1598, 1598, 3426, 1869, 1869,
2765      1869, 3291, 1870, 3427, 1868, 1871, 1873, 1873, 1873, 3428,
2766      3429, 1599, 1603, 1603, 1603, 1603, 1603, 1603, 1862, 1603,
2767      1603, 1603, 3436, 1874, 1607, 1607, 1607, 1877, 1877, 1877,
2768      1605, 1878, 1312, 1605, 1879, 3437, 3438, 1605, 1609, 1609,
2769
2770      1609, 1608, 1880, 1880, 1880, 3439, 1881, 3440, 3441, 1882,
2771      1612, 1612, 1612, 3442, 3443, 1610, 1612, 1612, 1612, 1612,
2772      1612, 1612, 1617, 1617, 1617, 3444, 1618, 3445, 1614, 1619,
2773      1620, 1620, 1620, 3446, 1614, 3447, 3430, 1614, 3448, 3449,
2774      1876, 1620, 1620, 1620, 1620, 1620, 1620, 3450, 1622, 1626,
2775      1626, 1626, 3451, 1627, 3452, 3453, 1628, 3454, 3455, 1622,
2776      3459, 3465, 1622, 1630, 1630, 1630, 1630, 1630, 1630, 3466,
2777      1630, 1630, 1630, 1635, 1635, 1635, 3292, 1636, 3467, 3468,
2778      1637, 1632, 3469, 3470, 1632, 3471, 3293, 1884, 1632, 1893,
2779      1893, 1893, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640,
2780
2781      1640, 1897, 1897, 1897, 3294, 3478, 1894, 1646, 1646, 1646,
2782      1642, 1647, 1886, 1642, 1648, 3295, 1642, 3479, 1898, 4107,
2783      4107, 4107, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651,
2784      1651, 3480, 1890, 1903, 1903, 1903, 4107, 1658, 1658, 1658,
2785      1653, 3481, 3482, 1653, 3483, 3484, 1653, 1658, 1658, 1658,
2786      1904, 1658, 1658, 1658, 3485, 1660, 3486, 1662, 1662, 1662,
2787      1895, 1663, 3487, 3488, 1664, 1660, 1666, 1666, 1666, 1660,
2788      1666, 1666, 1666, 1666, 1666, 1666, 1901, 1670, 1670, 1670,
2789      3489, 1899, 3490, 3491, 1668, 1909, 1909, 1909, 1668, 1910,
2790      3492, 1668, 1911, 3493, 1671, 1674, 1674, 1674, 3494, 1906,
2791
2792      1914, 1914, 1914, 3495, 1915, 3496, 3497, 1916, 1677, 1677,
2793      1677, 3498, 1675, 1677, 1677, 1677, 3499, 1677, 1677, 1677,
2794      1921, 1921, 1921, 1688, 1688, 1688, 1679, 1381, 1381, 1381,
2795      3500, 1679, 3501, 3502, 1908, 1679, 3503, 3504, 1922, 1923,
2796      3505, 1689, 1732, 1732, 1732, 1383, 1733, 3506, 3507, 1734,
2797      1737, 1737, 1737, 3508, 1738, 3511, 3512, 1739, 1744, 1744,
2798      1744, 1978, 1978, 1978, 3513, 1979, 3318, 3514, 1980, 1391,
2799      1391, 1391, 1397, 1397, 1397, 1745, 3319, 3515, 1918, 1986,
2800      1986, 1986, 3516, 1406, 1406, 1406, 3517, 1393, 3518, 1975,
2801      1399, 1756, 1756, 1756, 3320, 1757, 1987, 3519, 1758, 3520,
2802
2803      3521, 1408, 1761, 1761, 1761, 3321, 1762, 3522, 3523, 1763,
2804      1416, 1416, 1416, 1765, 1765, 1765, 3524, 1766, 3536, 3527,
2805      1767, 3537, 1768, 1768, 1768, 3542, 1769, 3543, 1418, 1770,
2806      3530, 1984, 1424, 1424, 1424, 1772, 1772, 1772, 3546, 1773,
2807      1988, 1991, 1774, 1312, 1777, 1777, 1777, 3527, 1778, 3547,
2808      1426, 1779, 1434, 1434, 1434, 1781, 1781, 1781, 1994, 1782,
2809      3548, 3528, 1783, 3549, 2001, 2001, 2001, 1450, 1450, 1450,
2810      1436, 2005, 2005, 2005, 4107, 4107, 4107, 4107, 4107, 4107,
2811      1995, 2002, 1792, 1792, 1792, 1452, 3550, 3551, 2006, 3553,
2812      3525, 4107, 3554, 3561, 4107, 4107, 4107, 4107, 3562, 1793,
2813
2814      1998, 2009, 2009, 2009, 3555, 2010, 3563, 3564, 2011, 1794,
2815      1794, 1794, 4107, 1795, 3532, 3565, 1796, 4107, 4107, 4107,
2816      4107, 4107, 4107, 2004, 3556, 2008, 4107, 4107, 4107, 4107,
2817      4107, 4107, 3566, 3533, 4107, 3534, 3557, 4107, 4107, 4107,
2818      4107, 2007, 3570, 4107, 3567, 3571, 4107, 2012, 3535, 2018,
2819      2018, 2018, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
2820      4107, 4107, 1475, 1475, 1475, 2013, 2019, 3572, 3573, 4107,
2821      1811, 1811, 1811, 4107, 2015, 3574, 4107, 1482, 1482, 1482,
2822      1477, 2027, 2027, 2027, 3575, 2028, 3576, 1812, 2029, 3577,
2823      3578, 2014, 3579, 3580, 2016, 1484, 2031, 2031, 2031, 2017,
2824
2825      1495, 1495, 1495, 1818, 1818, 1818, 3581, 2037, 2037, 2037,
2826      3568, 2038, 3582, 2032, 2039, 1507, 1507, 1507, 1497, 2021,
2827      1819, 2022, 3569, 2020, 1821, 1821, 1821, 3583, 2023, 3584,
2828      2024, 3589, 3590, 1509, 3595, 2041, 2041, 2041, 3596, 2042,
2829      3597, 1822, 2043, 2033, 1512, 1512, 1512, 1523, 1523, 1523,
2830      1531, 1531, 1531, 2052, 2052, 2052, 3598, 1539, 1539, 1539,
2831      3599, 3600, 1514, 2803, 2804, 1525, 2805, 2035, 1533, 3603,
2832      2053, 1833, 1833, 1833, 2806, 1541, 2055, 2055, 2055, 3603,
2833      2056, 2807, 2040, 2057, 1545, 1545, 1545, 3527, 1834, 2061,
2834      2061, 2061, 1841, 1841, 1841, 3606, 1842, 3607, 1312, 1843,
2835
2836      3608, 3528, 1547, 2044, 3611, 2049, 2062, 3609, 2051, 2054,
2837      2065, 2065, 2065, 1560, 1560, 1560, 1566, 1566, 1566, 1855,
2838      1855, 1855, 2078, 2078, 2078, 3610, 2079, 2066, 3612, 2080,
2839      3613, 1562, 1922, 1923, 1568, 3616, 1856, 1579, 1579, 1579,
2840      3601, 2085, 2085, 2085, 3617, 2059, 1587, 1587, 1587, 1864,
2841      1864, 1864, 3630, 1865, 3624, 1581, 1866, 2067, 2086, 1867,
2842      1867, 1867, 3625, 3538, 1589, 2089, 2089, 2089, 3631, 2090,
2843      3632, 3527, 2091, 1869, 1869, 1869, 1868, 1870, 2069, 3539,
2844      1871, 3540, 3530, 2072, 1873, 1873, 1873, 2084, 2093, 2093,
2845      2093, 3614, 2094, 3633, 3541, 2095, 1603, 1603, 1603, 3646,
2846
2847      3628, 1874, 3647, 1877, 1877, 1877, 3615, 1878, 3629, 2087,
2848      1879, 1880, 1880, 1880, 1605, 1881, 3648, 3649, 1882, 1612,
2849      1612, 1612, 1620, 1620, 1620, 1630, 1630, 1630, 2107, 2107,
2850      2107, 1893, 1893, 1893, 2109, 2109, 2109, 1614, 2110, 3622,
2851      1622, 2111, 3626, 1632, 3650, 2108, 3651, 2097, 1894, 1640,
2852      1640, 1640, 1897, 1897, 1897, 2114, 2114, 2114, 3623, 2115,
2853      3636, 3627, 2116, 1651, 1651, 1651, 3640, 1642, 3638, 1898,
2854      1903, 1903, 1903, 2121, 2121, 2121, 3639, 2122, 3652, 3637,
2855      2123, 1653, 2124, 2124, 2124, 3641, 2099, 1904, 3653, 2101,
2856      2105, 1658, 1658, 1658, 1666, 1666, 1666, 3642, 3654, 2125,
2857
2858      1909, 1909, 1909, 3655, 1910, 3643, 3657, 1911, 3658, 1660,
2859      3659, 3603, 1668, 2119, 2112, 1914, 1914, 1914, 3663, 1915,
2860      3603, 3656, 1916, 3664, 1677, 1677, 1677, 1921, 1921, 1921,
2861      2167, 2167, 2167, 2170, 2170, 2170, 2154, 2154, 2154, 3665,
2862      3666, 2126, 1679, 3667, 3668, 1922, 2128, 2167, 2167, 2167,
2863      2175, 2175, 2175, 2177, 2177, 2177, 4107, 4107, 4107, 1381,
2864      1381, 1381, 1978, 1978, 1978, 3669, 1979, 2176, 3670, 1980,
2865      2178, 3671, 3672, 4107, 3660, 3673, 2132, 1383, 3677, 2134,
2866      2171, 1391, 1391, 1391, 3678, 1986, 1986, 1986, 3679, 3661,
2867      2188, 2188, 2188, 3680, 2189, 2168, 2135, 2190, 3681, 1393,
2868
2869      3682, 2168, 1987, 3683, 1397, 1397, 1397, 1406, 1406, 1406,
2870      3684, 3685, 2155, 2195, 2195, 2195, 2197, 2197, 2197, 3686,
2871      3687, 2179, 1399, 3688, 3692, 1408, 3693, 2180, 3694, 3695,
2872      2196, 3696, 3697, 2198, 1416, 1416, 1416, 1424, 1424, 1424,
2873      2201, 2201, 2201, 2203, 2203, 2203, 2186, 1434, 1434, 1434,
2874      3698, 3699, 1418, 3703, 3704, 1426, 2194, 2202, 3705, 3706,
2875      2204, 2206, 2206, 2206, 2191, 1436, 4107, 4107, 4107, 2001,
2876      2001, 2001, 2209, 2209, 2209, 3707, 2210, 3708, 2207, 2211,
2877      2212, 2212, 2212, 4107, 3709, 3710, 2002, 1450, 1450, 1450,
2878      2005, 2005, 2005, 3711, 2215, 2215, 2215, 2213, 2216, 3712,
2879
2880      2199, 2217, 3713, 2200, 3714, 1452, 3715, 2006, 3716, 2218,
2881      2218, 2218, 3718, 2205, 4107, 4107, 4107, 2009, 2009, 2009,
2882      3719, 2010, 3720, 3721, 2011, 2208, 2219, 4107, 4107, 4107,
2883      3722, 4107, 4107, 4107, 4107, 2223, 2223, 2223, 4107, 4107,
2884      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 2214, 4107,
2885      3591, 3723, 2224, 3724, 3725, 4107, 3585, 3726, 4107, 2018,
2886      2018, 2018, 4107, 2228, 2228, 2228, 3592, 2229, 3593, 3727,
2887      2230, 3728, 2231, 2231, 2231, 3586, 2019, 3587, 3733, 2220,
2888      3734, 3594, 2222, 4107, 4107, 4107, 3729, 3735, 2226, 2232,
2889      3588, 3736, 2221, 4107, 4107, 4107, 3737, 2225, 3730, 2227,
2890
2891      4107, 1475, 1475, 1475, 1482, 1482, 1482, 2027, 2027, 2027,
2892      4107, 2028, 3738, 3739, 2029, 2239, 2239, 2239, 3740, 1477,
2893      3741, 3742, 1484, 2031, 2031, 2031, 2241, 2241, 2241, 3743,
2894      2242, 2233, 2240, 2243, 2246, 2246, 2246, 2248, 2248, 2248,
2895      2032, 2037, 2037, 2037, 3744, 2038, 3745, 2234, 2039, 1507,
2896      1507, 1507, 2247, 3731, 2041, 2041, 2041, 3746, 2042, 3747,
2897      2236, 2043, 1512, 1512, 1512, 3732, 3748, 1509, 2235, 2255,
2898      2255, 2255, 1531, 1531, 1531, 2052, 2052, 2052, 3749, 3750,
2899      1514, 2259, 2259, 2259, 3751, 2260, 3752, 2256, 2261, 3753,
2900      1533, 3754, 2053, 1539, 1539, 1539, 2249, 2055, 2055, 2055,
2901
2902      3755, 2056, 3756, 3757, 2057, 1545, 1545, 1545, 2061, 2061,
2903      2061, 1541, 3758, 2266, 2266, 2266, 3759, 2267, 3760, 2258,
2904      2268, 3761, 3762, 1547, 3764, 2062, 2269, 2269, 2269, 3765,
2905      2250, 2065, 2065, 2065, 2272, 2272, 2272, 3766, 2273, 3767,
2906      3768, 2274, 3769, 2270, 2277, 2277, 2277, 3770, 2066, 1566,
2907      1566, 1566, 2262, 2282, 2282, 2282, 2078, 2078, 2078, 1312,
2908      2079, 3771, 2278, 2080, 1579, 1579, 1579, 1568, 2085, 2085,
2909      2085, 3772, 2264, 2291, 2291, 2291, 3773, 2292, 3774, 3775,
2910      2293, 3776, 1581, 3777, 3763, 2086, 2294, 2294, 2294, 2089,
2911      2089, 2089, 3778, 2090, 3779, 3780, 2091, 3781, 3782, 2093,
2912
2913      2093, 2093, 2281, 2094, 2295, 3783, 2095, 1603, 1603, 1603,
2914      1612, 1612, 1612, 1620, 1620, 1620, 2290, 2304, 2304, 2304,
2915      4107, 4107, 4107, 3784, 3785, 1605, 3786, 3787, 1614, 3788,
2916      3789, 1622, 3790, 3791, 2305, 3792, 3793, 4107, 2307, 2307,
2917      2307, 1630, 1630, 1630, 2107, 2107, 2107, 2311, 2311, 2311,
2918      3794, 2312, 3795, 3796, 2313, 2308, 2109, 2109, 2109, 1632,
2919      2110, 2108, 2301, 2111, 3797, 2303, 1640, 1640, 1640, 2299,
2920      2114, 2114, 2114, 3798, 2115, 3799, 3800, 2116, 1651, 1651,
2921      1651, 2121, 2121, 2121, 1642, 2122, 3801, 2306, 2123, 2309,
2922      2124, 2124, 2124, 2328, 2328, 2328, 1653, 2329, 3803, 1312,
2923
2924      2330, 1658, 1658, 1658, 2333, 2333, 2333, 2125, 2335, 2335,
2925      2335, 2337, 2337, 2337, 2314, 4107, 4107, 4107, 3802, 1660,
2926      3804, 3805, 2334, 3806, 3807, 2336, 3808, 3809, 2338, 3810,
2927      2318, 3811, 4107, 1677, 1677, 1677, 3812, 2344, 2344, 2344,
2928      2139, 2139, 2139, 2354, 2354, 2354, 2150, 2150, 2150, 3813,
2929      3814, 1679, 3815, 2331, 2345, 2361, 2361, 2361, 2154, 2154,
2930      2154, 2362, 2362, 2362, 2157, 2157, 2157, 3816, 3817, 2340,
2931      2167, 2167, 2167, 2375, 2375, 2375, 2170, 2170, 2170, 3818,
2932      2339, 2175, 2175, 2175, 2379, 2379, 2379, 3819, 2380, 3820,
2933      3821, 2381, 2177, 2177, 2177, 2382, 2382, 2382, 2176, 2383,
2934
2935      3822, 3823, 2384, 1381, 1381, 1381, 2392, 2392, 2392, 2178,
2936      2188, 2188, 2188, 3824, 2189, 3825, 3826, 2190, 2397, 2397,
2937      2397, 1383, 3827, 3828, 2393, 1397, 1397, 1397, 1406, 1406,
2938      1406, 2195, 2195, 2195, 3829, 2398, 3830, 2400, 2400, 2400,
2939      3831, 2401, 3832, 1399, 2402, 3833, 1408, 3834, 2196, 2197,
2940      2197, 2197, 2403, 2403, 2403, 3835, 2404, 3836, 3837, 2405,
2941      1416, 1416, 1416, 1424, 1424, 1424, 2198, 2201, 2201, 2201,
2942      2386, 3838, 2408, 2408, 2408, 3840, 2409, 2395, 1418, 2410,
2943      3841, 1426, 3842, 3843, 2202, 2203, 2203, 2203, 3844, 1312,
2944      2399, 2411, 2411, 2411, 3845, 2412, 3846, 3847, 2413, 1434,
2945
2946      1434, 1434, 2204, 2206, 2206, 2206, 2415, 2415, 2415, 3839,
2947      2416, 3848, 3849, 2417, 2418, 2418, 2418, 1436, 3850, 3851,
2948      2207, 2209, 2209, 2209, 3852, 2210, 2406, 3853, 2211, 2407,
2949      3854, 2419, 2212, 2212, 2212, 2420, 2420, 2420, 3855, 2421,
2950      3856, 3857, 2422, 1450, 1450, 1450, 2215, 2215, 2215, 2213,
2951      2216, 3858, 3859, 2217, 2218, 2218, 2218, 2223, 2223, 2223,
2952      3860, 1452, 2424, 2424, 2424, 2414, 2425, 3861, 3862, 2426,
2953      3863, 2219, 3864, 3865, 2224, 2430, 2430, 2430, 3866, 2431,
2954      3867, 3868, 2432, 2433, 2433, 2433, 2228, 2228, 2228, 3869,
2955      2229, 3870, 3871, 2230, 3873, 2423, 2231, 2231, 2231, 3874,
2956
2957      2434, 2437, 2437, 2437, 3875, 2438, 1312, 3876, 2439, 1475,
2958      1475, 1475, 3872, 2232, 1482, 1482, 1482, 2239, 2239, 2239,
2959      3877, 2446, 2446, 2446, 3878, 2447, 3879, 1477, 2448, 2241,
2960      2241, 2241, 1484, 2242, 2240, 3880, 2243, 2246, 2246, 2246,
2961      2248, 2248, 2248, 3881, 1507, 1507, 1507, 1512, 1512, 1512,
2962      2454, 2454, 2454, 3882, 3883, 2247, 2255, 2255, 2255, 3884,
2963      3885, 2442, 1509, 3322, 3886, 1514, 3887, 2455, 2443, 1531,
2964      1531, 1531, 3888, 3323, 2256, 2259, 2259, 2259, 3889, 2260,
2965      3890, 3891, 2261, 1539, 1539, 1539, 3892, 1533, 2463, 2463,
2966      2463, 3324, 2266, 2266, 2266, 3893, 2267, 2456, 2452, 2268,
2967
2968      3894, 1541, 3325, 2451, 3895, 3896, 2464, 2269, 2269, 2269,
2969      2466, 2466, 2466, 1312, 2467, 3898, 3899, 2468, 3900, 2460,
2970      3901, 2272, 2272, 2272, 2270, 2273, 3902, 3897, 2274, 3903,
2971      2461, 2277, 2277, 2277, 2473, 2473, 2473, 1566, 1566, 1566,
2972      2282, 2282, 2282, 2476, 2476, 2476, 2478, 2478, 2478, 2278,
2973      3904, 2474, 1579, 1579, 1579, 1568, 2291, 2291, 2291, 3905,
2974      2292, 3906, 3907, 2293, 2294, 2294, 2294, 2485, 2485, 2485,
2975      1581, 1603, 1603, 1603, 2490, 2490, 2490, 1620, 1620, 1620,
2976      3908, 3909, 2295, 3910, 2486, 2304, 2304, 2304, 3911, 1605,
2977      3912, 3913, 2491, 3915, 3916, 1622, 2494, 2494, 2494, 2475,
2978
2979      2495, 3917, 2305, 2496, 2497, 2497, 2497, 2307, 2307, 2307,
2980      2499, 2499, 2499, 3918, 2500, 3919, 3920, 2501, 2483, 3921,
2981      3922, 2498, 3923, 3924, 2308, 1630, 1630, 1630, 2503, 2503,
2982      2503, 2488, 2311, 2311, 2311, 3925, 2312, 3926, 3927, 2313,
2983      3928, 3929, 2493, 1632, 3930, 2504, 1640, 1640, 1640, 2509,
2984      2509, 2509, 2511, 2511, 2511, 2328, 2328, 2328, 3933, 2329,
2985      3934, 3935, 2330, 3936, 1642, 3937, 3938, 2510, 3939, 2512,
2986      1658, 1658, 1658, 2524, 2524, 2524, 2333, 2333, 2333, 2502,
2987      2335, 2335, 2335, 3940, 3941, 2526, 2526, 2526, 1660, 2527,
2988      2525, 3942, 2528, 3945, 2334, 3946, 3947, 2336, 1312, 3948,
2989
2990      2505, 2337, 2337, 2337, 2529, 2529, 2529, 3959, 2530, 1838,
2991      1837, 2531, 1677, 1677, 1677, 1312, 3995, 2523, 2338, 2344,
2992      2344, 2344, 2537, 2537, 2537, 1312, 2538, 1831, 1829, 2539,
2993      1679, 2540, 2540, 2540, 1827, 3943, 2345, 2546, 2546, 2546,
2994      2547, 2547, 2547, 2354, 2354, 2354, 2549, 2549, 2549, 2553,
2995      2553, 2553, 2361, 2361, 2361, 2362, 2362, 2362, 2554, 2554,
2996      2554, 2558, 2558, 2558, 2563, 2563, 2563, 2564, 2564, 2564,
2997      2566, 2566, 2566, 1312, 2533, 2375, 2375, 2375, 2567, 2567,
2998      2567, 2379, 2379, 2379, 1312, 2380, 1312, 1826, 2381, 2382,
2999      2382, 2382, 1312, 2383, 1312, 1312, 2384, 1381, 1381, 1381,
3000
3001      2574, 2574, 2574, 1825, 1824, 2555, 4107, 4107, 4107, 4107,
3002      4107, 4107, 4107, 4107, 4107, 1383, 1312, 2575, 2392, 2392,
3003      2392, 3944, 3949, 4107, 1312, 2568, 4107, 4003, 3975, 4107,
3004      1397, 1397, 1397, 2397, 2397, 2397, 2393, 2582, 2582, 2582,
3005      3953, 2583, 1312, 3950, 2584, 1406, 1406, 1406, 1399, 2572,
3006      2398, 3960, 2400, 2400, 2400, 1312, 2401, 1312, 2576, 2402,
3007      2403, 2403, 2403, 1408, 2404, 3951, 1312, 2405, 1416, 1416,
3008      1416, 1312, 2578, 3952, 2577, 1424, 1424, 1424, 2408, 2408,
3009      2408, 1312, 2409, 1817, 1312, 2410, 1418, 3954, 2586, 2808,
3010      2809, 2580, 2810, 1426, 2411, 2411, 2411, 3961, 2412, 3977,
3011
3012      2811, 2413, 1434, 1434, 1434, 1312, 2585, 2812, 2415, 2415,
3013      2415, 2587, 2416, 3980, 3967, 2417, 2418, 2418, 2418, 3963,
3014      1436, 2589, 2589, 2589, 4064, 2590, 3982, 1312, 2591, 3969,
3015      2420, 2420, 2420, 2419, 2421, 1312, 3964, 2422, 1450, 1450,
3016      1450, 2424, 2424, 2424, 1312, 2425, 2588, 3965, 2426, 3962,
3017      2430, 2430, 2430, 1312, 2431, 1312, 1452, 2432, 2433, 2433,
3018      2433, 2596, 2596, 2596, 3966, 2597, 3968, 1312, 2598, 2437,
3019      2437, 2437, 1312, 2438, 1312, 2434, 2439, 2602, 2602, 2602,
3020      1475, 1475, 1475, 2605, 2605, 2605, 2446, 2446, 2446, 1312,
3021      2447, 3970, 1312, 2448, 2603, 1507, 1507, 1507, 1477, 1312,
3022
3023      3997, 2606, 1512, 1512, 1512, 2592, 2454, 2454, 2454, 1312,
3024      2614, 2614, 2614, 1509, 2615, 3972, 1312, 2616, 1815, 1312,
3025      1514, 4064, 1814, 2455, 1531, 1531, 1531, 3971, 3979, 1539,
3026      1539, 1539, 2463, 2463, 2463, 1312, 2466, 2466, 2466, 1813,
3027      2467, 1810, 1533, 2468, 1312, 2604, 1809, 1541, 3955, 3957,
3028      2464, 2611, 1312, 1312, 2612, 2473, 2473, 2473, 2629, 2629,
3029      2629, 4028, 2630, 1312, 3974, 2631, 1566, 1566, 1566, 2476,
3030      2476, 2476, 2474, 2633, 2633, 2633, 2478, 2478, 2478, 2634,
3031      2634, 2634, 3973, 1312, 1568, 4107, 4107, 4107, 4107, 4107,
3032      4107, 2621, 2622, 1579, 1579, 1579, 2635, 4107, 4107, 4107,
3033
3034      3956, 3958, 4107, 1312, 4016, 4107, 2485, 2485, 2485, 4000,
3035      3983, 1581, 1312, 1312, 4107, 2641, 2641, 2641, 1312, 2642,
3036      1312, 3976, 2643, 2486, 2645, 2645, 2645, 2490, 2490, 2490,
3037      1312, 2632, 2649, 2649, 2649, 1312, 3991, 2636, 1312, 2494,
3038      2494, 2494, 2646, 2495, 4018, 2491, 2496, 2497, 2497, 2497,
3039      2650, 3978, 1312, 2637, 2651, 2651, 2651, 2638, 2652, 2639,
3040      1312, 2653, 4030, 1312, 2498, 2499, 2499, 2499, 3987, 2500,
3041      1312, 3981, 2501, 1630, 1630, 1630, 2503, 2503, 2503, 2655,
3042      2655, 2655, 1312, 2656, 1312, 3985, 2657, 1640, 1640, 1640,
3043      1312, 1632, 1312, 2504, 2509, 2509, 2509, 2511, 2511, 2511,
3044
3045      2662, 2662, 2662, 4031, 2663, 1642, 3984, 2664, 1658, 1658,
3046      1658, 4020, 2510, 1312, 2512, 2524, 2524, 2524, 3986, 4005,
3047      2676, 2676, 2676, 1312, 2677, 2654, 1660, 2678, 3999, 2526,
3048      2526, 2526, 2525, 2527, 1312, 1312, 2528, 3988, 4059, 2658,
3049      2529, 2529, 2529, 1804, 2530, 4002, 1312, 2531, 1677, 1677,
3050      1677, 2681, 2681, 2681, 1312, 2537, 2537, 2537, 2675, 2538,
3051      3990, 3989, 2539, 2540, 2540, 2540, 1679, 3993, 3996, 1312,
3052      2694, 2694, 2694, 2695, 2695, 2695, 2546, 2546, 2546, 2547,
3053      2547, 2547, 2549, 2549, 2549, 2700, 2700, 2700, 2702, 2702,
3054      2702, 2553, 2553, 2553, 2554, 2554, 2554, 2558, 2558, 2558,
3055
3056      2706, 2706, 2706, 2563, 2563, 2563, 2564, 2564, 2564, 2566,
3057      2566, 2566, 2567, 2567, 2567, 1312, 2680, 2715, 2715, 2715,
3058      2717, 2717, 2717, 2574, 2574, 2574, 2718, 2718, 2718, 1312,
3059      2719, 1803, 1312, 2720, 1802, 2716, 2721, 2721, 2721, 1312,
3060      2575, 4107, 4107, 4107, 4107, 4107, 4107, 2725, 2725, 2725,
3061      1397, 1397, 1397, 2722, 2727, 2727, 2727, 1312, 4107, 4004,
3062      1312, 4107, 2582, 2582, 2582, 1312, 2583, 3992, 1399, 2584,
3063      3994, 2728, 1406, 1406, 1406, 4001, 1416, 1416, 1416, 1424,
3064      1424, 1424, 1434, 1434, 1434, 2589, 2589, 2589, 1312, 2590,
3065      1408, 4019, 2591, 2723, 1418, 1312, 2724, 1426, 3998, 1312,
3066
3067      1436, 2733, 2733, 2733, 2596, 2596, 2596, 4008, 2597, 1801,
3068      1800, 2598, 1799, 2730, 2739, 2739, 2739, 2726, 1312, 2734,
3069      2602, 2602, 2602, 1312, 2729, 2743, 2743, 2743, 1798, 2744,
3070      1312, 2740, 2745, 2746, 2746, 2746, 4022, 2603, 2605, 2605,
3071      2605, 2731, 4010, 4006, 2732, 1507, 1507, 1507, 2753, 2753,
3072      2753, 2747, 2755, 2755, 2755, 1312, 2606, 2614, 2614, 2614,
3073      1312, 2615, 4007, 1509, 2616, 4051, 2754, 4009, 1312, 2756,
3074      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 2761,
3075      2761, 2761, 1531, 1531, 1531, 1312, 4023, 4107, 4025, 1312,
3076      4107, 4012, 1312, 4107, 4021, 1312, 2762, 1312, 1312, 2757,
3077
3078      1533, 1539, 1539, 1539, 4014, 1312, 2752, 2765, 2765, 2765,
3079      2771, 2771, 2771, 2629, 2629, 2629, 1797, 2630, 4044, 1541,
3080      2631, 1566, 1566, 1566, 2766, 4015, 2758, 4053, 2760, 2633,
3081      2633, 2633, 2634, 2634, 2634, 2759, 2776, 2776, 2776, 1568,
3082      2773, 2773, 2773, 2763, 2774, 4011, 1312, 2775, 4033, 2635,
3083      4107, 4107, 4107, 2777, 4107, 4107, 4107, 2780, 2780, 2780,
3084      2782, 2782, 2782, 4107, 4107, 4107, 2764, 4107, 2645, 2645,
3085      2645, 4107, 2641, 2641, 2641, 2781, 2642, 2783, 1312, 2643,
3086      4107, 2772, 2649, 2649, 2649, 1312, 2646, 2651, 2651, 2651,
3087      1312, 2652, 1312, 4013, 2653, 2787, 2787, 2787, 1312, 1312,
3088
3089      2650, 1312, 2778, 2655, 2655, 2655, 2779, 2656, 4043, 1312,
3090      2657, 1791, 1312, 2788, 1640, 1640, 1640, 2662, 2662, 2662,
3091      4045, 2663, 1312, 4024, 2664, 1658, 1658, 1658, 4017, 4047,
3092      2784, 1312, 1642, 2676, 2676, 2676, 4026, 2677, 1312, 4027,
3093      2678, 4070, 4046, 1660, 1677, 1677, 1677, 2681, 2681, 2681,
3094      2694, 2694, 2694, 2695, 2695, 2695, 2833, 2833, 2833, 4035,
3095      4029, 2789, 1679, 1312, 4052, 1312, 2700, 2700, 2700, 2702,
3096      2702, 2702, 2837, 2837, 2837, 2706, 2706, 2706, 2841, 2841,
3097      2841, 2844, 2844, 2844, 2715, 2715, 2715, 2802, 2717, 2717,
3098      2717, 2718, 2718, 2718, 4104, 2719, 4054, 1790, 2720, 2721,
3099
3100      2721, 2721, 2716, 1312, 1312, 2846, 2846, 2846, 1312, 2847,
3101      2815, 2814, 2848, 2849, 2849, 2849, 2722, 2851, 2851, 2851,
3102      2725, 2725, 2725, 2853, 2853, 2853, 2727, 2727, 2727, 1312,
3103      2850, 2855, 2855, 2855, 2852, 2856, 1312, 1312, 2857, 4032,
3104      4034, 2854, 1312, 2728, 2858, 2858, 2858, 1416, 1416, 1416,
3105      1424, 1424, 1424, 1434, 1434, 1434, 2733, 2733, 2733, 2739,
3106      2739, 2739, 2859, 1789, 4048, 1418, 1787, 4039, 1426, 1786,
3107      1312, 1436, 1312, 1312, 2734, 4040, 2740, 2867, 2867, 2867,
3108      4041, 2868, 4061, 4036, 2869, 2743, 2743, 2743, 1785, 2744,
3109      1312, 1312, 2745, 2746, 2746, 2746, 2880, 2880, 2880, 2882,
3110
3111      2882, 2882, 1507, 1507, 1507, 2753, 2753, 2753, 2755, 2755,
3112      2755, 2747, 2860, 2881, 2862, 4049, 2883, 4037, 2861, 4038,
3113      1509, 1312, 4050, 2754, 1312, 2756, 2885, 2885, 2885, 4042,
3114      2886, 1312, 1312, 2887, 2891, 2891, 2891, 2761, 2761, 2761,
3115      2893, 2893, 2893, 1784, 2894, 1776, 1775, 2895, 2896, 2896,
3116      2896, 2892, 1312, 1312, 2762, 1539, 1539, 1539, 1312, 1760,
3117      2884, 2765, 2765, 2765, 1312, 4060, 2897, 2899, 2899, 2899,
3118      4056, 2900, 1759, 1541, 2901, 2904, 2904, 2904, 2766, 2906,
3119      2906, 2906, 2771, 2771, 2771, 2908, 2908, 2908, 2776, 2776,
3120      2776, 4062, 2905, 2773, 2773, 2773, 2907, 2774, 4104, 4055,
3121
3122      2775, 1312, 4058, 2909, 1312, 2777, 2910, 2910, 2910, 1312,
3123      2911, 4057, 1754, 2912, 2913, 2913, 2913, 2898, 2915, 2915,
3124      2915, 2780, 2780, 2780, 2782, 2782, 2782, 2787, 2787, 2787,
3125      1312, 2914, 1640, 1640, 1640, 2916, 2917, 2917, 2917, 2781,
3126      2918, 2783, 4066, 2919, 1312, 2788, 1658, 1658, 1658, 4063,
3127      1642, 1677, 1677, 1677, 2833, 2833, 2833, 2969, 2969, 2969,
3128      2837, 2837, 2837, 1753, 1660, 2841, 2841, 2841, 4069, 1679,
3129      2844, 2844, 2844, 2977, 2977, 2977, 2846, 2846, 2846, 1312,
3130      2847, 1312, 1751, 2848, 2849, 2849, 2849, 2979, 2979, 2979,
3131      2978, 2980, 4065, 4096, 2981, 2851, 2851, 2851, 1750, 2923,
3132
3133      4097, 2850, 1312, 2950, 2982, 2982, 2982, 2936, 2983, 1312,
3134      1312, 2984, 2852, 2853, 2853, 2853, 2855, 2855, 2855, 4076,
3135      2856, 4071, 1748, 2857, 2858, 2858, 2858, 1416, 1416, 1416,
3136      1312, 2854, 1424, 1424, 1424, 1434, 1434, 1434, 2990, 2990,
3137      2990, 1312, 2859, 1747, 1312, 1418, 4072, 2867, 2867, 2867,
3138      1426, 2868, 1746, 1436, 2869, 2991, 3004, 3004, 3004, 2880,
3139      2880, 2880, 3006, 3006, 3006, 1312, 3007, 1312, 4077, 3008,
3140      3054, 3054, 3054, 3005, 4078, 1312, 2881, 2882, 2882, 2882,
3141      4073, 3009, 3009, 3009, 1312, 3010, 1312, 2987, 3011, 2985,
3142      3012, 3012, 3012, 4080, 2883, 1312, 2885, 2885, 2885, 2986,
3143
3144      2886, 1312, 1312, 2887, 2891, 2891, 2891, 4081, 3013, 3017,
3145      3017, 3017, 4074, 3018, 4075, 1312, 3019, 4079, 2893, 2893,
3146      2893, 2892, 2894, 4082, 4084, 2895, 2896, 2896, 2896, 1539,
3147      1539, 1539, 2899, 2899, 2899, 1743, 2900, 1312, 4088, 2901,
3148      3028, 3028, 3028, 4083, 2897, 1312, 1312, 1541, 2904, 2904,
3149      2904, 3030, 3030, 3030, 1742, 3031, 1312, 3029, 3032, 2906,
3150      2906, 2906, 3033, 3033, 3033, 2905, 3034, 1312, 1312, 3035,
3151      2908, 2908, 2908, 2910, 2910, 2910, 2907, 2911, 1312, 4086,
3152      2912, 2913, 2913, 2913, 2915, 2915, 2915, 4087, 2909, 3036,
3153      3036, 3036, 3026, 3037, 4085, 4100, 3038, 1312, 2914, 1740,
3154
3155      1736, 2916, 3039, 3039, 3039, 4092, 3040, 1735, 1312, 3041,
3156      2917, 2917, 2917, 1731, 2918, 4090, 4093, 2919, 3049, 3049,
3157      3049, 3051, 3051, 3051, 1640, 1640, 1640, 3055, 3055, 3055,
3158      1658, 1658, 1658, 4089, 1312, 3050, 1312, 1312, 3052, 3080,
3159      3080, 3080, 1642, 1730, 3056, 3082, 3082, 3082, 1660, 3100,
3160      3100, 3100, 2969, 2969, 2969, 4091, 3081, 3105, 3105, 3105,
3161      2977, 2977, 2977, 3083, 3109, 3109, 3109, 4094, 3110, 4095,
3162      4098, 3111, 2979, 2979, 2979, 1729, 2980, 2978, 1728, 2981,
3163      2982, 2982, 2982, 1312, 2983, 1312, 1312, 2984, 1416, 1416,
3164      1416, 3067, 1424, 1424, 1424, 1727, 3053, 1434, 1434, 1434,
3165
3166      3120, 3120, 3120, 2990, 2990, 2990, 1418, 3122, 3122, 3122,
3167      1426, 3123, 1726, 1725, 3124, 1436, 4099, 3121, 4102, 4103,
3168      2991, 3125, 3125, 3125, 3004, 3004, 3004, 3138, 3138, 3138,
3169      1724, 3139, 1312, 3118, 3140, 3006, 3006, 3006, 3126, 3007,
3170      1723, 3005, 3008, 1722, 3117, 3009, 3009, 3009, 1721, 3010,
3171      1720, 1719, 3011, 3012, 3012, 3012, 3116, 3142, 3142, 3142,
3172      3017, 3017, 3017, 1718, 3018, 1717, 1716, 3019, 3151, 3151,
3173      3151, 3013, 1715, 1714, 3143, 3028, 3028, 3028, 3154, 3154,
3174      3154, 4101, 3155, 1713, 1711, 3156, 3152, 3030, 3030, 3030,
3175      1710, 3031, 3029, 1709, 3032, 3033, 3033, 3033, 1708, 3034,
3176
3177      1707, 1704, 3035, 3036, 3036, 3036, 1703, 3037, 1702, 1701,
3178      3038, 3039, 3039, 3039, 1700, 3040, 1699, 1698, 3041, 3049,
3179      3049, 3049, 3170, 3170, 3170, 1697, 3171, 1696, 1695, 3172,
3180      3051, 3051, 3051, 3173, 3173, 3173, 3050, 3174, 1694, 1693,
3181      3175, 1640, 1640, 1640, 3054, 3054, 3054, 3052, 3055, 3055,
3182      3055, 3177, 3177, 3177, 1692, 3178, 1691, 1690, 3179, 1642,
3183      1658, 1658, 1658, 1687, 1686, 3056, 3080, 3080, 3080, 3201,
3184      3201, 3201, 1685, 3202, 1684, 1683, 3203, 1682, 1660, 3082,
3185      3082, 3082, 1312, 3081, 3206, 3206, 3206, 3100, 3100, 3100,
3186      3222, 3222, 3222, 3105, 3105, 3105, 1665, 3083, 3226, 3226,
3187
3188      3226, 3207, 1922, 1657, 3176, 1656, 3109, 3109, 3109, 1655,
3189      3110, 1650, 3188, 3111, 1416, 1416, 1416, 3241, 3241, 3241,
3190      1434, 1434, 1434, 3120, 3120, 3120, 3245, 3245, 3245, 1649,
3191      3246, 1645, 1418, 3247, 1639, 3242, 1638, 1634, 1436, 1629,
3192      3121, 3122, 3122, 3122, 1625, 3123, 1624, 1616, 3124, 3125,
3193      3125, 3125, 3248, 3248, 3248, 1602, 3249, 1601, 1600, 3250,
3194      3138, 3138, 3138, 1597, 3139, 1591, 3126, 3140, 3142, 3142,
3195      3142, 3263, 3263, 3263, 1586, 3264, 1578, 1577, 3265, 1576,
3196      1575, 3240, 3243, 1574, 1573, 3143, 3151, 3151, 3151, 3154,
3197      3154, 3154, 1572, 3155, 1571, 1570, 3156, 3286, 3286, 3286,
3198
3199      1565, 3170, 3170, 3170, 3152, 3171, 1564, 1559, 3172, 3173,
3200      3173, 3173, 1558, 3174, 3287, 1552, 3175, 1640, 1640, 1640,
3201      3177, 3177, 3177, 1549, 3178, 1544, 1543, 3179, 1658, 1658,
3202      1658, 1538, 3201, 3201, 3201, 1642, 3202, 1527, 1522, 3203,
3203      3327, 3327, 3327, 3206, 3206, 3206, 1660, 3329, 3329, 3329,
3204      1521, 3330, 1520, 1516, 3331, 1511, 1500, 3328, 1922, 1494,
3205      3207, 1922, 3340, 3340, 3340, 1922, 3222, 3222, 3222, 3296,
3206      3342, 3342, 3342, 3343, 3343, 3343, 1493, 1492, 3305, 3226,
3207      3226, 3226, 3345, 3345, 3345, 1416, 1416, 1416, 3241, 3241,
3208      3241, 1434, 1434, 1434, 3245, 3245, 3245, 1488, 3246, 1487,
3209
3210      1486, 3247, 1474, 1418, 1473, 1472, 3242, 1471, 1470, 1436,
3211      3248, 3248, 3248, 1469, 3249, 1468, 1467, 3250, 3361, 3361,
3212      3361, 3373, 3373, 3373, 3263, 3263, 3263, 1466, 3264, 1460,
3213      1405, 3265, 3375, 3375, 3375, 3362, 1401, 3358, 3374, 3286,
3214      3286, 3286, 1396, 3394, 3394, 3394, 1395, 3395, 1390, 3376,
3215      3396, 3405, 3405, 3405, 1389, 1388, 3287, 1387, 1386, 3359,
3216      1658, 1658, 1658, 3327, 3327, 3327, 3431, 3431, 3431, 3406,
3217      3432, 1385, 1373, 3433, 1372, 3329, 3329, 3329, 1660, 3330,
3218      3328, 1922, 3331, 1371, 1922, 3340, 3340, 3340, 3342, 3342,
3219      3342, 1370, 1369, 1922, 3343, 3343, 3343, 3345, 3345, 3345,
3220
3221      3456, 3456, 3456, 1434, 1434, 1434, 3361, 3361, 3361, 3460,
3222      3460, 3460, 1368, 3461, 1367, 1366, 3462, 1365, 3457, 1364,
3223      1363, 1436, 1362, 3362, 3463, 3463, 3463, 3413, 1920, 1920,
3224      1920, 1920, 1920, 1920, 1920, 1920, 1920, 1361, 1360, 1920,
3225      1359, 3464, 1358, 1357, 1920, 1920, 1920, 1922, 1920, 3373,
3226      3373, 3373, 3472, 3472, 3472, 1356, 3473, 1353, 1352, 3474,
3227      3475, 3475, 3475, 1351, 3476, 1350, 3374, 3477, 1349, 1348,
3228      3458, 3375, 3375, 3375, 1920, 1920, 1920, 1920, 1920, 1920,
3229      1920, 1920, 1920, 1920, 1920, 1347, 1346, 1920, 3376, 3405,
3230      3405, 3405, 1920, 1920, 1920, 1922, 1920, 3394, 3394, 3394,
3231
3232      1345, 3395, 1342, 1341, 3396, 1340, 1339, 3406, 3509, 3509,
3233      3509, 3431, 3431, 3431, 1338, 3432, 1337, 1336, 3433, 3544,
3234      3544, 3544, 1920, 1920, 1335, 1334, 3510, 1333, 1326, 1922,
3235      1920, 1920, 1920, 1920, 1920, 3531, 1920, 1920, 1920, 1322,
3236      1321, 1920, 3545, 3545, 3545, 1320, 1920, 1920, 1920, 1922,
3237      1920, 3456, 3456, 3456, 1434, 1434, 1434, 3460, 3460, 3460,
3238      1319, 3461, 1318, 1315, 3462, 3544, 3544, 3544, 1313, 3457,
3239      1312, 1310, 1436, 3463, 3463, 3463, 1920, 1920, 1920, 1920,
3240      1920, 1920, 1920, 1920, 1920, 1920, 3531, 1308, 1307, 1920,
3241      3464, 3545, 3545, 3545, 1920, 1920, 1920, 1922, 1920, 1306,
3242
3243      3558, 3558, 3558, 1305, 3559, 1304, 3552, 3560, 3472, 3472,
3244      3472, 1302, 3473, 1299, 1297, 3474, 3475, 3475, 3475, 1296,
3245      3476, 1295, 1294, 3477, 1920, 1920, 3509, 3509, 3509, 3605,
3246      3605, 3605, 3618, 3618, 3618, 3620, 3620, 3620, 3558, 3558,
3247      3558, 1293, 3559, 1290, 3510, 3560, 1287, 1922, 1923, 1286,
3248      3619, 1285, 3621, 3634, 3634, 3634, 3644, 3644, 3644, 3662,
3249      3662, 3662, 3605, 3605, 3605, 3618, 3618, 3618, 1283, 1282,
3250      3635, 1279, 1278, 3645, 3620, 3620, 3620, 1312, 1276, 1273,
3251      1922, 1272, 1271, 3619, 1267, 3674, 3674, 3674, 1266, 3675,
3252      1264, 3621, 3676, 3634, 3634, 3634, 3689, 3689, 3689, 1263,
3253
3254      3690, 1262, 1261, 3691, 3644, 3644, 3644, 3662, 3662, 3662,
3255      3635, 3700, 3700, 3700, 2134, 3701, 1259, 1258, 3702, 1257,
3256      1256, 3645, 3674, 3674, 3674, 1312, 3675, 1255, 1254, 3676,
3257      3689, 3689, 3689, 1251, 3690, 1250, 1248, 3691, 3700, 3700,
3258      3700, 1245, 3701, 1243, 3717, 3702, 3914, 3914, 3914, 3914,
3259      3914, 3914, 1242, 3931, 1241, 1240, 3932, 4067, 4067, 4067,
3260      4067, 4067, 4067, 1239, 1312, 1234, 1232, 1312, 4105, 4105,
3261      4105, 4105, 4105, 4105, 1231, 4068, 1230, 1228, 4068, 1227,
3262      1226, 1223, 1222, 1221, 1220, 1218, 4106, 1217, 1216, 4106,
3263       324,  324,  324,  324,  324,  324,  324,  324,  324,  325,
3264
3265       325,  325,  325,  325,  325,  325,  325,  325,  330,  330,
3266       330,  330,  330,  330,  330,  330,  330,  333,  333,  333,
3267       333,  333,  333,  333,  333,  333,  336,  336,  336,  336,
3268       336,  336,  336,  336,  336,  339,  339,  339,  339,  339,
3269       339,  339,  339,  339,  346,  346,  346,  346,  346,  346,
3270       346,  346,  346,  353,  353,  353,  353,  353,  353,  353,
3271       353,  353,  358,  358,  358,  358,  358,  358,  358,  358,
3272       358,  377,  377,  377,  377,  377,  377,  377,  377,  377,
3273       383,  383,  383,  383,  383,  383,  383,  383,  383,  391,
3274       391,  391,  391,  391,  391,  391,  391,  391,  399,  399,
3275
3276       399,  399,  399,  399,  399,  399,  399,  407,  407,  407,
3277       407,  407,  407,  407,  407,  407,  411,  411,  411,  411,
3278       411,  411,  411,  411,  411,  417,  417,  417,  417,  417,
3279       417,  417,  417,  417,  423,  423,  423,  423,  423,  423,
3280       423,  423,  423,  429,  429,  429,  429,  429,  429,  429,
3281       429,  429,  435,  435,  435,  435,  435,  435,  435,  435,
3282       435,  442,  442,  442,  442,  442,  442,  442,  442,  442,
3283       447,  447,  447,  447,  447,  447,  447,  447,  447,  454,
3284       454,  454,  454,  454,  454,  454,  454,  454,  460,  460,
3285       460,  460,  460,  460,  460,  460,  460,  467,  467,  467,
3286
3287       467,  467,  467,  467,  467,  467,  476,  476,  476,  476,
3288       476,  476,  476,  476,  476,  482,  482,  482,  482,  482,
3289       482,  482,  482,  482,  493,  493,  493,  493,  493,  493,
3290       493,  493,  493,  500,  500,  500,  500,  500,  500,  500,
3291       500,  500,  504,  504,  504,  504,  504,  504,  504,  504,
3292       504,  511,  511,  511,  511,  511,  511,  511,  511,  511,
3293       519,  519,  519,  519,  519,  519,  519,  519,  519,  527,
3294       527,  527,  527,  527,  527,  527,  527,  527,  533,  533,
3295       533,  533,  533,  533,  533,  533,  533,  539,  539,  539,
3296       539,  539,  539,  539,  539,  539,  543,  543,  543,  543,
3297
3298       543,  543,  543,  543,  543,  551,  551,  551,  551,  551,
3299       551,  551,  551,  551,  558,  558,  558,  558,  558,  558,
3300       558,  558,  558,  565,  565,  565,  565,  565,  565,  565,
3301       565,  565,  570,  570,  570,  570,  570,  570,  570,  570,
3302       570,  576,  576,  576,  576,  576,  576,  576,  576,  576,
3303       581,  581,  581,  581,  581,  581,  581,  581,  581,  587,
3304       587,  587,  587,  587,  587,  587,  587,  587,  592,  592,
3305       592,  592,  592,  592,  592,  592,  592,  598,  598,  598,
3306       598,  598,  598,  598,  598,  598,  607,  607,  607,  607,
3307       607,  607,  607,  607,  607,  614,  614,  614,  614,  614,
3308
3309       614,  614,  614,  614,  618,  618,  618,  618,  618,  618,
3310       618,  618,  618,  629,  629,  629,  629,  629,  629,  629,
3311       629,  629,  637,  637,  637,  637,  637,  637,  637,  637,
3312       637,  644,  644,  644,  644,  644,  644,  644,  644,  644,
3313       649,  649,  649,  649,  649,  649,  649,  649,  649,  655,
3314       655,  655,  655,  655,  655,  655,  655,  655,  663,  663,
3315       663,  663,  663,  663,  663,  663,  663,  669,  669,  669,
3316       669,  669,  669,  669,  669,  669,  674,  674,  674,  674,
3317       674,  674,  674,  674,  674,  681,  681,  681,  681,  681,
3318       681,  681,  681,  681,  686,  686,  686,  686,  686,  686,
3319
3320       686,  686,  686,  692,  692,  692,  692,  692,  692,  692,
3321       692,  692,  699,  699,  699,  699,  699,  699,  699,  699,
3322       699,  706,  706,  706,  706,  706,  706,  706,  706,  706,
3323       713,  713,  713,  713,  713,  713,  713,  713,  713,  721,
3324       721,  721,  721,  721,  721,  721,  721,  721,  339,  339,
3325       339,  339,  339,  339,  339,  339,  339,  732,  732,  732,
3326       732,  732,  732,  732,  732,  732,  738,  738,  738,  738,
3327       738,  738,  738,  738,  738,  744,  744,  744,  744,  744,
3328       744,  744,  744,  744,  749,  749,  749,  749,  749,  749,
3329       749,  749,  749,  763,  763,  763,  763,  763,  763,  763,
3330
3331       763,  763,  769,  769,  769,  769,  769,  769,  769,  769,
3332       769,  789,  789,  789, 1214, 1211, 1207,  789,  832,  832,
3333       832, 1206, 1204, 1203,  832,  840,  840,  840, 1202, 1199,
3334      1198,  840,  849,  849,  849, 1196, 1195, 1189,  849,  853,
3335       853,  853, 1188, 1187, 1185,  853,  859,  859,  859, 1184,
3336      1183, 1178,  859,  865,  865,  865, 1177, 1173, 1171,  865,
3337       870,  870,  870, 1170, 1169, 1168,  870,  876,  876,  876,
3338      1167, 1166, 1165,  876,  886,  886,  886, 1164, 1163, 1162,
3339       886,  903,  903,  903, 1159, 1156, 1155,  903,  907,  907,
3340       907, 1153, 1152, 1151,  907,  917,  917,  917, 1150, 1149,
3341
3342      1144,  917,  923,  923,  923, 1142, 1141, 1140,  923,  927,
3343       927,  927, 1139, 1137, 1136,  927,  935,  935,  935, 1135,
3344      1133, 1132,  935,  940,  940,  940, 1131, 1130, 1128,  940,
3345       945,  945,  945, 1125, 1124, 1122,  945,  950,  950,  950,
3346      1120, 1118, 1117,  950,  961,  961,  961, 1116, 1115, 1114,
3347       961,  971,  971,  971, 1113, 1112, 1110,  971,  979,  979,
3348       979, 1109, 1108, 1107,  979,  984,  984,  984, 1103, 1102,
3349      1101,  984,  995,  995,  995, 1099, 1098, 1097,  995, 1001,
3350      1001, 1001, 1096, 1093, 1092, 1001, 1006, 1006, 1006, 1091,
3351      1086, 1084, 1006, 1013, 1013, 1013, 1083, 1082, 1076, 1013,
3352
3353      1021, 1021, 1021, 1075, 1074, 1073, 1021, 1029, 1029, 1029,
3354      1065, 1064, 1062, 1029, 1035, 1035, 1035, 1059, 1058, 1057,
3355      1035, 1041, 1041, 1041, 1056, 1051, 1048, 1041, 1047, 1047,
3356      1047, 1047, 1047, 1047, 1047, 1050, 1047,  789,  789,  789,
3357      1043, 1042, 1040,  789, 1063, 1039,  806, 1037, 1063,  832,
3358       832,  832, 1036, 1034, 1032,  832, 1111, 1031, 1030, 1028,
3359      1111,  840,  840,  840, 1027, 1024, 1023,  840, 1119, 1022,
3360      1020, 1019, 1119,  849,  849,  849, 1017, 1016, 1015,  849,
3361      1123, 1014, 1012, 1011, 1123,  853,  853,  853, 1010, 1009,
3362      1008,  853, 1129, 1007, 1005, 1003, 1129,  859,  859,  859,
3363
3364      1002, 1000,  996,  859, 1134,  994,  990,  986, 1134,  865,
3365       865,  865,  985,  983,  981,  865, 1138,  980,  978,  976,
3366      1138,  870,  870,  870,  975,  974,  973,  870, 1143,  972,
3367       970,  962, 1143,  876,  876,  876,  960,  955,  954,  876,
3368      1154,  953,  952,  951, 1154,  886,  886,  886,  949,  947,
3369       946,  886, 1172,  944,  942,  941, 1172,  903,  903,  903,
3370       939,  937,  936,  903, 1176,  934,  933,  930, 1176,  907,
3371       907,  907,  929,  928,  926,  907, 1186,  924,  922,  920,
3372      1186,  917,  917,  917,  919,  918,  916,  917, 1194,  915,
3373       911,  910, 1194,  923,  923,  923,  909,  908,  906,  923,
3374
3375      1197,  905,  904,  902, 1197,  927,  927,  927,  901,  900,
3376       894,  927, 1205,  890,  889,  885, 1205,  935,  935,  935,
3377       881,  880,  879,  935, 1210,  878,  877,  875, 1210,  940,
3378       940,  940,  873,  872,  871,  940, 1215,  869,  867,  866,
3379      1215,  945,  945,  945,  864,  862,  861,  945, 1219,  860,
3380       858,  856, 1219,  950,  950,  950,  855,  854,  852,  950,
3381      1229,  850,  848,  847, 1229,  961,  961,  961,  845,  844,
3382       843,  961, 1233,  842,  841,  839, 1233,  971,  971,  971,
3383       834,  833,  831,  971, 1244, 4107, 4107,  806, 1244,  979,
3384       979,  979,  791,  790,  788,  979, 1249,  787,  781,  780,
3385
3386      1249,  984,  984,  984,  781,  780,  779,  984, 1260,  778,
3387      4107, 4107, 1260,  995,  995,  995, 4107, 4107, 4107,  995,
3388      1265, 4107, 4107, 4107, 1265, 1001, 1001, 1001, 4107, 4107,
3389      4107, 1001, 1270, 4107, 4107, 4107, 1270, 1006, 1006, 1006,
3390      4107, 4107, 4107, 1006, 1277, 4107, 4107, 4107, 1277, 1013,
3391      1013, 1013, 4107, 4107, 4107, 1013, 1284, 4107, 4107, 4107,
3392      1284, 1021, 1021, 1021, 4107, 4107, 4107, 1021, 1292, 4107,
3393      4107, 4107, 1292, 1029, 1029, 1029, 4107, 4107, 4107, 1029,
3394      1298, 4107, 4107, 4107, 1298, 1035, 1035, 1035, 4107, 4107,
3395      4107, 1035, 1303, 4107, 4107, 4107, 1303, 1041, 1041, 1041,
3396
3397      4107, 4107, 4107, 1041, 1309, 4107, 4107, 4107, 1309, 1311,
3398      1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1317, 4107,
3399      4107, 4107, 4107, 1317,  789,  789,  789, 4107, 4107, 4107,
3400       789, 1328, 1328, 1328, 1328, 4107, 4107, 1328, 1328,  832,
3401       832,  832,  832, 4107,  832, 4107,  832, 1382, 1382, 1382,
3402      1382, 4107, 4107, 1382, 1382,  840,  840,  840, 4107, 4107,
3403      4107,  840, 1392, 1392, 1392, 1392, 4107, 4107, 1392, 1392,
3404       849,  849,  849, 4107, 4107, 4107,  849, 1398, 1398, 1398,
3405      1398, 4107, 4107, 1398, 1398,  853,  853,  853, 4107, 4107,
3406      4107,  853, 1407, 1407, 1407, 1407, 4107, 4107, 1407, 1407,
3407
3408       859,  859,  859,  859, 4107,  859, 4107,  859, 1417, 1417,
3409      1417, 1417, 4107, 4107, 1417, 1417,  865,  865,  865,  865,
3410      4107,  865, 4107,  865, 1425, 1425, 1425, 1425, 4107, 4107,
3411      1425, 1425,  870,  870,  870,  870, 4107,  870, 4107,  870,
3412      1435, 1435, 1435, 1435, 4107, 4107, 1435, 1435,  876,  876,
3413       876,  876, 4107,  876, 4107,  876, 1451, 1451, 1451, 1451,
3414      4107, 4107, 1451, 1451,  886,  886,  886, 4107, 4107, 4107,
3415       886, 1476, 1476, 1476, 1476, 4107, 4107, 1476, 1476, 1483,
3416      1483, 1483, 1483, 4107, 4107, 1483, 1483,  907,  907,  907,
3417      4107, 4107, 4107,  907, 1496, 1496, 1496, 1496, 4107, 4107,
3418
3419      1496, 1496,  917,  917,  917, 4107, 4107, 4107,  917, 1508,
3420      1508, 1508, 1508, 4107, 4107, 1508, 1508,  923,  923,  923,
3421      4107, 4107, 4107,  923, 1513, 1513, 1513, 1513, 4107, 4107,
3422      1513, 1513,  927,  927,  927, 4107, 4107, 4107,  927, 1524,
3423      1524, 1524, 1524, 4107, 4107, 1524, 1524,  935,  935,  935,
3424      4107, 4107, 4107,  935, 1532, 1532, 1532, 1532, 4107, 4107,
3425      1532, 1532,  940,  940,  940, 4107, 4107, 4107,  940, 1540,
3426      1540, 1540, 1540, 4107, 4107, 1540, 1540,  945,  945,  945,
3427      4107, 4107, 4107,  945, 1546, 1546, 1546, 1546, 4107, 4107,
3428      1546, 1546,  950,  950,  950, 4107, 4107, 4107,  950, 1561,
3429
3430      1561, 1561, 1561, 4107, 4107, 1561, 1561,  961,  961,  961,
3431      4107, 4107, 4107,  961, 1567, 1567, 1567, 1567, 4107, 4107,
3432      1567, 1567,  971,  971,  971, 4107, 4107, 4107,  971, 1580,
3433      1580, 1580, 1580, 4107, 4107, 1580, 1580,  979,  979,  979,
3434      4107, 4107, 4107,  979, 1588, 1588, 1588, 1588, 4107, 4107,
3435      1588, 1588,  984,  984,  984, 4107, 4107, 4107,  984, 1604,
3436      1604, 1604, 1604, 4107, 4107, 1604, 1604,  995,  995,  995,
3437       995, 4107,  995, 4107,  995, 1613, 1613, 1613, 1613, 4107,
3438      4107, 1613, 1613, 1001, 1001, 1001, 4107, 4107, 4107, 1001,
3439      1621, 1621, 1621, 1621, 4107, 4107, 1621, 1621, 1006, 1006,
3440
3441      1006, 4107, 4107, 4107, 1006, 1631, 1631, 1631, 1631, 4107,
3442      4107, 1631, 1631, 1013, 1013, 1013, 4107, 4107, 4107, 1013,
3443      1641, 1641, 1641, 1641, 4107, 4107, 1641, 1641, 1021, 1021,
3444      1021, 4107, 4107, 4107, 1021, 1652, 1652, 1652, 1652, 4107,
3445      4107, 1652, 1652, 1029, 1029, 1029, 4107, 4107, 4107, 1029,
3446      1659, 1659, 1659, 1659, 4107, 4107, 1659, 1659, 1035, 1035,
3447      1035, 4107, 4107, 4107, 1035, 1667, 1667, 1667, 1667, 4107,
3448      4107, 1667, 1667, 1041, 1041, 1041, 1041, 4107, 1041, 4107,
3449      1041, 1678, 1678, 1678, 1678, 4107, 4107, 1678, 1678, 1311,
3450      1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1317, 4107,
3451
3452      1317, 4107, 4107, 1317,  789,  789,  789, 4107, 4107, 4107,
3453       789, 1328, 1328, 1328, 1328, 4107, 4107, 1328, 1328,  832,
3454       832,  832, 4107, 4107, 4107,  832, 1382, 1382, 1382, 1382,
3455      4107, 4107, 1382, 1382,  840,  840,  840, 4107, 4107, 4107,
3456       840, 1392, 1392, 1392, 1392, 4107, 4107, 1392, 1392,  849,
3457       849,  849, 4107, 4107, 4107,  849, 1398, 1398, 1398, 1398,
3458      4107, 4107, 1398, 1398,  853,  853,  853, 4107, 4107, 4107,
3459       853, 1407, 1407, 1407, 1407, 4107, 4107, 1407, 1407,  859,
3460       859,  859, 4107, 4107, 4107,  859, 1417, 1417, 1417, 1417,
3461      4107, 4107, 1417, 1417, 1425, 1425, 1425, 1425, 4107, 4107,
3462
3463      1425, 1425,  870,  870,  870, 4107, 4107, 4107,  870, 1435,
3464      1435, 1435, 1435, 4107, 4107, 1435, 1435,  876,  876,  876,
3465      4107, 4107, 4107,  876, 1451, 1451, 1451, 1451, 4107, 4107,
3466      1451, 1451,  886,  886,  886, 4107, 4107, 4107,  886, 1476,
3467      1476, 1476, 1476, 4107, 4107, 1476, 1476, 1483, 1483, 1483,
3468      1483, 4107, 4107, 1483, 1483,  907,  907,  907, 4107, 4107,
3469      4107,  907, 1496, 1496, 1496, 1496, 4107, 4107, 1496, 1496,
3470       917,  917,  917,  917, 4107,  917, 4107,  917, 1508, 1508,
3471      1508, 1508, 4107, 4107, 1508, 1508,  923,  923,  923,  923,
3472      4107,  923, 4107,  923, 1513, 1513, 1513, 1513, 4107, 4107,
3473
3474      1513, 1513,  927,  927,  927, 4107, 4107, 4107,  927, 1524,
3475      1524, 1524, 1524, 4107, 4107, 1524, 1524,  935,  935,  935,
3476      4107, 4107, 4107,  935, 1532, 1532, 1532, 1532, 4107, 4107,
3477      1532, 1532,  940,  940,  940, 4107, 4107, 4107,  940, 1540,
3478      1540, 1540, 1540, 4107, 4107, 1540, 1540,  945,  945,  945,
3479       945, 4107,  945, 4107,  945, 1546, 1546, 1546, 1546, 4107,
3480      4107, 1546, 1546,  950,  950,  950, 4107, 4107, 4107,  950,
3481      1561, 1561, 1561, 1561, 4107, 4107, 1561, 1561,  961,  961,
3482       961, 4107, 4107, 4107,  961, 1567, 1567, 1567, 1567, 4107,
3483      4107, 1567, 1567,  971,  971,  971, 4107, 4107, 4107,  971,
3484
3485      1580, 1580, 1580, 1580, 4107, 4107, 1580, 1580,  979,  979,
3486       979, 4107, 4107, 4107,  979, 1588, 1588, 1588, 1588, 4107,
3487      4107, 1588, 1588,  984,  984,  984, 4107, 4107, 4107,  984,
3488      1604, 1604, 1604, 1604, 4107, 4107, 1604, 1604,  995,  995,
3489       995, 4107, 4107, 4107,  995, 1613, 1613, 1613, 1613, 4107,
3490      4107, 1613, 1613, 1001, 1001, 1001, 4107, 4107, 4107, 1001,
3491      1621, 1621, 1621, 1621, 4107, 4107, 1621, 1621, 1006, 1006,
3492      1006, 4107, 4107, 4107, 1006, 1631, 1631, 1631, 1631, 4107,
3493      4107, 1631, 1631, 1013, 1013, 1013, 4107, 4107, 4107, 1013,
3494      1641, 1641, 1641, 1641, 4107, 4107, 1641, 1641, 1021, 1021,
3495
3496      1021, 1021, 4107, 1021, 4107, 1021, 1652, 1652, 1652, 1652,
3497      4107, 4107, 1652, 1652, 1029, 1029, 1029, 4107, 4107, 4107,
3498      1029, 1659, 1659, 1659, 1659, 4107, 4107, 1659, 1659, 1035,
3499      1035, 1035, 4107, 4107, 4107, 1035, 1667, 1667, 1667, 1667,
3500      4107, 4107, 1667, 1667, 1041, 1041, 1041, 4107, 4107, 4107,
3501      1041, 1678, 1678, 1678, 1678, 4107, 4107, 1678, 1678, 1311,
3502      1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1920, 1920,
3503      1920, 1920, 1920, 1920, 1920, 1920, 1920,  789,  789,  789,
3504      4107, 4107, 4107,  789,  832,  832,  832, 4107, 4107, 4107,
3505       832, 1382, 1382, 1382, 1382, 4107, 4107, 1382, 1382,  840,
3506
3507       840,  840, 4107, 4107, 4107,  840, 1392, 1392, 1392, 1392,
3508      4107, 4107, 1392, 1392,  849,  849,  849,  849, 4107,  849,
3509      4107,  849, 1398, 1398, 1398, 1398, 4107, 4107, 1398, 1398,
3510       853,  853,  853, 4107, 4107, 4107,  853, 1407, 1407, 1407,
3511      1407, 4107, 4107, 1407, 1407,  859,  859,  859, 4107, 4107,
3512      4107,  859, 1417, 1417, 1417, 1417, 4107, 4107, 1417, 1417,
3513      1425, 1425, 1425, 1425, 4107, 4107, 1425, 1425,  870,  870,
3514       870, 4107, 4107, 4107,  870, 1435, 1435, 1435, 1435, 4107,
3515      4107, 1435, 1435,  876,  876,  876, 4107, 4107, 4107,  876,
3516      1451, 1451, 1451, 1451, 4107, 4107, 1451, 1451,  886,  886,
3517
3518       886,  886, 4107,  886, 4107,  886, 1476, 1476, 1476, 1476,
3519      4107, 4107, 1476, 1476, 1483, 1483, 1483, 1483, 4107, 4107,
3520      1483, 1483,  907,  907,  907, 4107, 4107, 4107,  907, 1496,
3521      1496, 1496, 1496, 4107, 4107, 1496, 1496, 1508, 1508, 1508,
3522      1508, 4107, 4107, 1508, 1508, 1513, 1513, 1513, 1513, 4107,
3523      4107, 1513, 1513,  927,  927,  927, 4107, 4107, 4107,  927,
3524      1524, 1524, 1524, 1524, 4107, 4107, 1524, 1524,  935,  935,
3525       935, 4107, 4107, 4107,  935, 1532, 1532, 1532, 1532, 4107,
3526      4107, 1532, 1532,  940,  940,  940,  940, 4107,  940, 4107,
3527       940, 1540, 1540, 1540, 1540, 4107, 4107, 1540, 1540,  945,
3528
3529       945,  945, 4107, 4107, 4107,  945, 1546, 1546, 1546, 1546,
3530      4107, 4107, 1546, 1546,  950,  950,  950, 4107, 4107, 4107,
3531       950, 1561, 1561, 1561, 1561, 4107, 4107, 1561, 1561,  961,
3532       961,  961, 4107, 4107, 4107,  961, 1567, 1567, 1567, 1567,
3533      4107, 4107, 1567, 1567,  971,  971,  971, 4107, 4107, 4107,
3534       971, 1580, 1580, 1580, 1580, 4107, 4107, 1580, 1580,  979,
3535       979,  979,  979, 4107,  979, 4107,  979, 1588, 1588, 1588,
3536      1588, 4107, 4107, 1588, 1588,  984,  984,  984, 4107, 4107,
3537      4107,  984, 1604, 1604, 1604, 1604, 4107, 4107, 1604, 1604,
3538       995,  995,  995, 4107, 4107, 4107,  995, 1613, 1613, 1613,
3539
3540      1613, 4107, 4107, 1613, 1613, 1001, 1001, 1001, 4107, 4107,
3541      4107, 1001, 1621, 1621, 1621, 1621, 4107, 4107, 1621, 1621,
3542      1006, 1006, 1006, 4107, 4107, 4107, 1006, 1631, 1631, 1631,
3543      1631, 4107, 4107, 1631, 1631, 1013, 1013, 1013, 4107, 4107,
3544      4107, 1013, 1641, 1641, 1641, 1641, 4107, 4107, 1641, 1641,
3545      1021, 1021, 1021, 4107, 4107, 4107, 1021, 1652, 1652, 1652,
3546      1652, 4107, 4107, 1652, 1652, 1029, 1029, 1029, 4107, 4107,
3547      4107, 1029, 1659, 1659, 1659, 1659, 4107, 4107, 1659, 1659,
3548      1035, 1035, 1035, 4107, 4107, 4107, 1035, 1667, 1667, 1667,
3549      1667, 4107, 4107, 1667, 1667, 1041, 1041, 1041, 4107, 4107,
3550
3551      4107, 1041, 1678, 1678, 1678, 1678, 4107, 4107, 1678, 1678,
3552      1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1920,
3553      1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920,  789,  789,
3554       789, 4107, 4107, 4107,  789,  832,  832,  832,  832, 4107,
3555       832, 4107,  832, 1382, 1382, 1382, 1382, 4107, 4107, 1382,
3556      1382,  840,  840,  840, 4107, 4107, 4107,  840, 1392, 1392,
3557      1392, 1392, 4107, 4107, 1392, 1392, 1398, 1398, 1398, 1398,
3558      4107, 4107, 1398, 1398,  853,  853,  853, 4107, 4107, 4107,
3559       853, 1407, 1407, 1407, 1407, 4107, 4107, 1407, 1407,  859,
3560       859,  859,  859, 4107,  859, 4107,  859, 1417, 1417, 1417,
3561
3562      1417, 4107, 4107, 1417, 1417, 1425, 1425, 1425, 1425, 4107,
3563      4107, 1425, 1425,  870,  870,  870,  870, 4107,  870, 4107,
3564       870, 1435, 1435, 1435, 1435, 4107, 4107, 1435, 1435,  876,
3565       876,  876,  876, 4107,  876, 4107,  876, 1451, 1451, 1451,
3566      1451, 4107, 4107, 1451, 1451,  886,  886,  886,  886, 4107,
3567       886, 4107,  886, 1476, 1476, 1476, 1476, 4107, 4107, 1476,
3568      1476, 1483, 1483, 1483, 1483, 4107, 4107, 1483, 1483,  907,
3569       907,  907, 4107, 4107, 4107,  907, 1496, 1496, 1496, 1496,
3570      4107, 4107, 1496, 1496, 1508, 1508, 1508, 1508, 4107, 4107,
3571      1508, 1508, 1513, 1513, 1513, 1513, 4107, 4107, 1513, 1513,
3572
3573       927,  927,  927, 4107, 4107, 4107,  927, 1524, 1524, 1524,
3574      1524, 4107, 4107, 1524, 1524,  935,  935,  935, 4107, 4107,
3575      4107,  935, 1532, 1532, 1532, 1532, 4107, 4107, 1532, 1532,
3576      1540, 1540, 1540, 1540, 4107, 4107, 1540, 1540,  945,  945,
3577       945, 4107, 4107, 4107,  945, 1546, 1546, 1546, 1546, 4107,
3578      4107, 1546, 1546,  950,  950,  950, 4107, 4107, 4107,  950,
3579      1561, 1561, 1561, 1561, 4107, 4107, 1561, 1561,  961,  961,
3580       961, 4107, 4107, 4107,  961, 1567, 1567, 1567, 1567, 4107,
3581      4107, 1567, 1567,  971,  971,  971, 4107, 4107, 4107,  971,
3582      1580, 1580, 1580, 1580, 4107, 4107, 1580, 1580, 1588, 1588,
3583
3584      1588, 1588, 4107, 4107, 1588, 1588,  984,  984,  984, 4107,
3585      4107, 4107,  984, 1604, 1604, 1604, 1604, 4107, 4107, 1604,
3586      1604,  995,  995,  995, 4107, 4107, 4107,  995, 1613, 1613,
3587      1613, 1613, 4107, 4107, 1613, 1613, 1001, 1001, 1001, 4107,
3588      4107, 4107, 1001, 1621, 1621, 1621, 1621, 4107, 4107, 1621,
3589      1621, 1006, 1006, 1006, 1006, 4107, 1006, 4107, 1006, 1631,
3590      1631, 1631, 1631, 4107, 4107, 1631, 1631, 1013, 1013, 1013,
3591      4107, 4107, 4107, 1013, 1641, 1641, 1641, 1641, 4107, 4107,
3592      1641, 1641, 1021, 1021, 1021, 4107, 4107, 4107, 1021, 1652,
3593      1652, 1652, 1652, 4107, 4107, 1652, 1652, 1029, 1029, 1029,
3594
3595      4107, 4107, 4107, 1029, 1659, 1659, 1659, 1659, 4107, 4107,
3596      1659, 1659, 1035, 1035, 1035, 4107, 4107, 4107, 1035, 1667,
3597      1667, 1667, 1667, 4107, 4107, 1667, 1667, 1041, 1041, 1041,
3598      1041, 4107, 1041, 4107, 1041, 1678, 1678, 1678, 1678, 4107,
3599      4107, 1678, 1678, 1311, 1311, 1311, 1311, 1311, 1311, 1311,
3600      1311, 1311, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920,
3601      1920,  789,  789,  789,  789, 4107,  789, 4107,  789,  832,
3602       832,  832, 4107, 4107, 4107,  832, 1382, 1382, 1382, 1382,
3603      4107, 4107, 1382, 1382,  840,  840,  840, 4107, 4107, 4107,
3604       840, 1392, 1392, 1392, 1392, 4107, 4107, 1392, 1392, 1398,
3605
3606      1398, 1398, 1398, 4107, 4107, 1398, 1398,  853,  853,  853,
3607      4107, 4107, 4107,  853, 1407, 1407, 1407, 1407, 4107, 4107,
3608      1407, 1407, 1417, 1417, 1417, 1417, 4107, 4107, 1417, 1417,
3609      1425, 1425, 1425, 1425, 4107, 4107, 1425, 1425, 1435, 1435,
3610      1435, 1435, 4107, 4107, 1435, 1435,  876,  876,  876,  876,
3611      4107,  876, 4107,  876, 1451, 1451, 1451, 1451, 4107, 4107,
3612      1451, 1451,  886,  886,  886, 4107, 4107, 4107,  886, 1476,
3613      1476, 1476, 1476, 4107, 4107, 1476, 1476, 1483, 1483, 1483,
3614      1483, 4107, 4107, 1483, 1483,  907,  907,  907, 4107, 4107,
3615      4107,  907, 1508, 1508, 1508, 1508, 4107, 4107, 1508, 1508,
3616
3617      1513, 1513, 1513, 1513, 4107, 4107, 1513, 1513,  927,  927,
3618       927, 4107, 4107, 4107,  927,  935,  935,  935, 4107, 4107,
3619      4107,  935, 1532, 1532, 1532, 1532, 4107, 4107, 1532, 1532,
3620      1540, 1540, 1540, 1540, 4107, 4107, 1540, 1540,  945,  945,
3621       945, 4107, 4107, 4107,  945, 1546, 1546, 1546, 1546, 4107,
3622      4107, 1546, 1546,  950,  950,  950, 4107, 4107, 4107,  950,
3623       961,  961,  961,  961, 4107,  961, 4107,  961, 1567, 1567,
3624      1567, 1567, 4107, 4107, 1567, 1567,  971,  971,  971, 4107,
3625      4107, 4107,  971, 1580, 1580, 1580, 1580, 4107, 4107, 1580,
3626      1580,  984,  984,  984, 4107, 4107, 4107,  984, 1604, 1604,
3627
3628      1604, 1604, 4107, 4107, 1604, 1604,  995,  995,  995, 4107,
3629      4107, 4107,  995, 1613, 1613, 1613, 1613, 4107, 4107, 1613,
3630      1613, 1001, 1001, 1001, 4107, 4107, 4107, 1001, 1621, 1621,
3631      1621, 1621, 4107, 4107, 1621, 1621, 1006, 1006, 1006, 1006,
3632      4107, 1006, 4107, 1006, 1631, 1631, 1631, 1631, 4107, 4107,
3633      1631, 1631, 1013, 1013, 1013, 1013, 4107, 1013, 4107, 1013,
3634      1641, 1641, 1641, 1641, 4107, 4107, 1641, 1641, 1021, 1021,
3635      1021, 4107, 4107, 4107, 1021, 1652, 1652, 1652, 1652, 4107,
3636      4107, 1652, 1652, 1029, 1029, 1029, 1029, 4107, 1029, 4107,
3637      1029, 1659, 1659, 1659, 1659, 4107, 4107, 1659, 1659, 1035,
3638
3639      1035, 1035, 1035, 4107, 1035, 4107, 1035, 1041, 1041, 1041,
3640      4107, 4107, 4107, 1041, 1678, 1678, 1678, 1678, 4107, 4107,
3641      1678, 1678, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311,
3642      1311, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920,
3643       832,  832,  832, 4107, 4107, 4107,  832, 1382, 1382, 1382,
3644      1382, 4107, 4107, 1382, 1382,  840,  840,  840,  840, 4107,
3645       840, 4107,  840, 1398, 1398, 1398, 1398, 4107, 4107, 1398,
3646      1398,  853,  853,  853, 4107, 4107, 4107,  853, 1407, 1407,
3647      1407, 1407, 4107, 4107, 1407, 1407, 1417, 1417, 1417, 1417,
3648      4107, 4107, 1417, 1417, 1425, 1425, 1425, 1425, 4107, 4107,
3649
3650      1425, 1425, 1435, 1435, 1435, 1435, 4107, 4107, 1435, 1435,
3651      1451, 1451, 1451, 1451, 4107, 4107, 1451, 1451,  886,  886,
3652       886, 4107, 4107, 4107,  886, 1476, 1476, 1476, 1476, 4107,
3653      4107, 1476, 1476, 1483, 1483, 1483, 1483, 4107, 4107, 1483,
3654      1483,  907,  907,  907, 4107, 4107, 4107,  907, 1508, 1508,
3655      1508, 1508, 4107, 4107, 1508, 1508, 1513, 1513, 1513, 1513,
3656      4107, 4107, 1513, 1513,  927,  927,  927, 4107, 4107, 4107,
3657       927,  935,  935,  935, 4107, 4107, 4107,  935, 1532, 1532,
3658      1532, 1532, 4107, 4107, 1532, 1532, 1540, 1540, 1540, 1540,
3659      4107, 4107, 1540, 1540,  945,  945,  945, 4107, 4107, 4107,
3660
3661       945,  950,  950,  950, 4107, 4107, 4107,  950, 1567, 1567,
3662      1567, 1567, 4107, 4107, 1567, 1567,  971,  971,  971,  971,
3663      4107,  971, 4107,  971, 1580, 1580, 1580, 1580, 4107, 4107,
3664      1580, 1580,  984,  984,  984, 4107, 4107, 4107,  984, 1604,
3665      1604, 1604, 1604, 4107, 4107, 1604, 1604,  995,  995,  995,
3666      4107, 4107, 4107,  995, 1001, 1001, 1001, 4107, 4107, 4107,
3667      1001, 1621, 1621, 1621, 1621, 4107, 4107, 1621, 1621, 1631,
3668      1631, 1631, 1631, 4107, 4107, 1631, 1631, 1641, 1641, 1641,
3669      1641, 4107, 4107, 1641, 1641, 1021, 1021, 1021, 4107, 4107,
3670      4107, 1021, 1659, 1659, 1659, 1659, 4107, 4107, 1659, 1659,
3671
3672      1041, 1041, 1041, 4107, 4107, 4107, 1041, 1678, 1678, 1678,
3673      1678, 4107, 4107, 1678, 1678, 1311, 1311, 1311, 1311, 1311,
3674      1311, 1311, 1311, 1311, 1920, 1920, 1920, 1920, 1920, 1920,
3675      1920, 1920, 1920,  832,  832,  832, 4107, 4107, 4107,  832,
3676      1382, 1382, 1382, 1382, 4107, 4107, 1382, 1382,  840,  840,
3677       840,  840, 4107,  840, 4107,  840, 1398, 1398, 1398, 1398,
3678      4107, 4107, 1398, 1398,  853,  853,  853,  853, 4107,  853,
3679      4107,  853, 1407, 1407, 1407, 1407, 4107, 4107, 1407, 1407,
3680      1417, 1417, 1417, 1417, 4107, 4107, 1417, 1417, 1425, 1425,
3681      1425, 1425, 4107, 4107, 1425, 1425, 1435, 1435, 1435, 1435,
3682
3683      4107, 4107, 1435, 1435, 1451, 1451, 1451, 1451, 4107, 4107,
3684      1451, 1451,  886,  886,  886, 4107, 4107, 4107,  886, 1476,
3685      1476, 1476, 1476, 4107, 4107, 1476, 1476,  907,  907,  907,
3686      4107, 4107, 4107,  907, 1508, 1508, 1508, 1508, 4107, 4107,
3687      1508, 1508, 1513, 1513, 1513, 1513, 4107, 4107, 1513, 1513,
3688       927,  927,  927,  927, 4107,  927, 4107,  927,  935,  935,
3689       935,  935, 4107,  935, 4107,  935, 1532, 1532, 1532, 1532,
3690      4107, 4107, 1532, 1532, 1540, 1540, 1540, 1540, 4107, 4107,
3691      1540, 1540,  945,  945,  945,  945, 4107,  945, 4107,  945,
3692       950,  950,  950, 4107, 4107, 4107,  950, 1567, 1567, 1567,
3693
3694      1567, 4107, 4107, 1567, 1567,  971,  971,  971,  971, 4107,
3695       971, 4107,  971, 1580, 1580, 1580, 1580, 4107, 4107, 1580,
3696      1580,  984,  984,  984,  984, 4107,  984, 4107,  984,  995,
3697       995,  995, 4107, 4107, 4107,  995, 1001, 1001, 1001, 4107,
3698      4107, 4107, 1001, 1631, 1631, 1631, 1631, 4107, 4107, 1631,
3699      1631, 1641, 1641, 1641, 1641, 4107, 4107, 1641, 1641, 1021,
3700      1021, 1021, 4107, 4107, 4107, 1021, 1659, 1659, 1659, 1659,
3701      4107, 4107, 1659, 1659, 1041, 1041, 1041, 4107, 4107, 4107,
3702      1041, 1678, 1678, 1678, 1678, 4107, 4107, 1678, 1678, 1311,
3703      1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1920, 1920,
3704
3705      1920, 1920, 1920, 1920, 1920, 1920, 1920,  832,  832,  832,
3706      4107, 4107, 4107,  832,  840,  840,  840,  840, 4107,  840,
3707      4107,  840, 1398, 1398, 1398, 1398, 4107, 4107, 1398, 1398,
3708      1407, 1407, 1407, 1407, 4107, 4107, 1407, 1407, 1417, 1417,
3709      1417, 1417, 4107, 4107, 1417, 1417, 1425, 1425, 1425, 1425,
3710      4107, 4107, 1425, 1425, 1435, 1435, 1435, 1435, 4107, 4107,
3711      1435, 1435,  886,  886,  886, 4107, 4107, 4107,  886,  907,
3712       907,  907, 4107, 4107, 4107,  907, 1508, 1508, 1508, 1508,
3713      4107, 4107, 1508, 1508,  927,  927,  927, 4107, 4107, 4107,
3714       927, 1532, 1532, 1532, 1532, 4107, 4107, 1532, 1532, 1540,
3715
3716      1540, 1540, 1540, 4107, 4107, 1540, 1540,  950,  950,  950,
3717      4107, 4107, 4107,  950, 1567, 1567, 1567, 1567, 4107, 4107,
3718      1567, 1567,  971,  971,  971,  971, 4107,  971, 4107,  971,
3719       984,  984,  984, 4107, 4107, 4107,  984,  995,  995,  995,
3720      4107, 4107, 4107,  995, 1001, 1001, 1001, 4107, 4107, 4107,
3721      1001, 3434, 3434, 3434, 3434, 3434, 3434, 3434, 3434, 3434,
3722      3435, 3435, 3435, 3435, 3435, 3435, 3435, 3435, 3435, 3526,
3723      3526, 3526, 3526, 3526, 3526, 3526, 3526, 3526, 3529, 3529,
3724      3529, 3529, 3529, 3529, 3529, 3529, 3529, 3602, 3602, 3602,
3725      3602, 3602, 3602, 3602, 3602, 3602, 3604, 3604, 3604, 3604,
3726
3727      3604, 3604, 3604, 3604, 3604,  323, 4107, 4107, 4107, 4107,
3728      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
3729      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
3730      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
3731      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
3732      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
3733      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
3734      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
3735      4107
3736     } ;
3737
3738 static const flex_int16_t yy_chk[14182] =
3739     {   0,
3740         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
3741         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
3742         4,   10, 1025,    5,    0,    9,    6,  401,   10,    7,
3743         8,    8,    8,  328,   11,   13,   13,   12,   14,   14,
3744        13,   13,  373,   14,   14,  329,    8,   17,   17,  328,
3745        13,   15,   15,   14,   15,  332,   15,   16,   16, 1025,
3746        16,  329,   16,   18,   18,  401,   15,   21,   21,   21,
3747      1551,  332,   16,   22,   22,   22,  557,   23,   23,   23,
3748        24,   24,   24,   21,   25,   25,   25,  366,  557,   22,
3749       368,  354,   17,   23,  368,  373,   24,  326,  326,  326,
3750
3751        25,  327,  327,  327,  331,  331,  331,  354,   18,   19,
3752        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
3753        19,   19,   19,   19, 1552,   19,   19,   19,   19,   19,
3754        26,   26,   26,   27,   27,   27,   28,   28,   28,  490,
3755       366,   29,   29,   29,  366,  475,   26,  382,  378,   27,
3756       475, 1558,   28,  490,  382,   19,   19,   29,   30,   30,
3757        30,  351,  351,  351,  378,  385,   19,  359,  359,  359,
3758       375,  375,  375, 1559,   30,   19,   20,   20,   20,   20,
3759        20,   20,   20,   20,   20,   20,   20,   20,   20,   20,
3760        20,  485,   20,   20,   20,   20,   20,   31,   31,   31,
3761
3762        32,   32,   32,   33,   33,   33,  267,  267,   34,   34,
3763        34,  267,  485,   31,  385,  387,   32,  621,  385,   33,
3764      1564,  267,   20,   20,   34,   35,   35,   35,   36,   36,
3765        36, 1565,  621,   20,   37,   37,   37,   38,   38,   38,
3766       783,   35,   20,  783,   36,   39,   39,   39,  386, 1570,
3767        37,  267,  386,   38,   40,   40,   40,   41,   41,   41,
3768      1571,   39,   42,   42,   42,   43,   43,   43,  387,  546,
3769        40, 1573,  392,   41,   44,   44,   44,  909,   42,  546,
3770       909,   43,   45,   45,   45,   46,   46,   46,  392,  365,
3771        44,   47,   47,   47,   48,   48,   48, 1574,   45,  365,
3772
3773       369,   46,   49,   49,   49, 1576,  521,   47,  639,  408,
3774        48,   50,   50,   50,   51,   51,   51, 1076,   49,   52,
3775        52,   52,   53,   53,   53,  408, 1577,   50,  365,  369,
3776        51,   54,   54,   54, 1076,   52,  403, 1188,   53,   55,
3777        55,   55,   56,   56,   56,  369,  639,   54,  384,  384,
3778       384,  715,  365,  369, 1188,   55,  521, 1578,   56,   57,
3779        57,   57,   57,   57,   57,   57,   57,   57,   57,   57,
3780        57,   57,   57,   57,  418,   57,   57,   57,   57,   57,
3781        59,   59,   59,   60,   60,   60,   61,   61,   61,  403,
3782       418,   62,   62,   62,  518, 1286,   59,  413,  518,   60,
3783
3784      1586,  715,   61,  371,  413,   57,   57,   62,   63,   63,
3785        63,   57, 1286,  413,   57,  389,  389,  389,  400,  400,
3786       400,  405,  405,  405,   63, 1591,   57,   58,   58,   58,
3787        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
3788        58,   58,  371,   58,   58,   58,   58,   58,   64,   64,
3789        64,   65,   65,   65,   66,   66,   66,  796,  371,   69,
3790        69,   69,  606, 1600,   64,  425,  606,   65,  796,  795,
3791        66,  796,  425,   58,   58,   69,   70,   70,   70,   58,
3792       438,  425,   58,  412,  412,  412,  415,  415,  415,  424,
3793       424,  424,   70,  795,   58,   67,   67,   67,   67,   67,
3794
3795        67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
3796       430,   67,   67,   67,   67,   67,   71,   71,   71,   72,
3797        72,   72,   73,   73,   73,  450,  430,   74,   74,   74,
3798      1222,  443,   71,  438,  455,   72, 1222,  468,   73, 1602,
3799       463,   67,   67,   74,   75,   75,   75,  443, 1347,   67,
3800       455,   67,  437,  468,   67,  427,  427,  427,   67, 1611,
3801        75, 1347,   67,   68,   68,   68,   68,   68,   68,   68,
3802        68,   68,   68,   68,   68,   68,   68,   68,  450,   68,
3803        68,   68,   68,   68,   76,   76,   76,   79,   79,   79,
3804        80,   80,   80,  463,  488,   83,   83,   83, 1616,  483,
3805
3806        76,  437,  488,   79,  802,  437,   80,  814,  488,   68,
3807        68,   83,   84,   84,   84,  483, 1353,   68,  802,   68,
3808       449,  814,   68,  436,  436,  436,   68,  545,   84, 1353,
3809        68,   77,   77,   77,   77,   77,   77,   77,   77,   77,
3810        77,   77,   77,   77,   77,   77,  624,   77,   77,   77,
3811        77,   77,   87,   87,   87,   88,   88,   88,   89,   89,
3812        89,  624,  491,   90,   90,   90,  545, 1624,   87,  449,
3813       491,   88, 1625,  449,   89,  491,  545,   77,   77,   90,
3814        91,   91,   91,   92,   92,   92,  440,  440,  440,  448,
3815       448,  448,  452,  452,  452, 1629,   91, 1634, 1638,   92,
3816
3817      1644,   77,   78,   78,   78,   78,   78,   78,   78,   78,
3818        78,   78,   78,   78,   78,   78,   78,  501,   78,   78,
3819        78,   78,   78,   93,   93,   93,   94,   94,   94,   97,
3820        97,   97,  809,  501,   98,   98,   98,  673, 1650,   93,
3821      1655, 1657,   94,  809,  673,   97,  809,  512,   78,   78,
3822        98,   99,   99,   99,  100,  100,  100,  461,  461,  461,
3823       465,  465,  465,  512,  768,  462, 1665,   99,  342, 1672,
3824       100,  768,   78,   81,   81,   81,   81,   81,   81,   81,
3825        81,   81,   81,   81,   81,   81,   81,   81,  528,   81,
3826        81,   81,   81,   81,  101,  101,  101,  102,  102,  102,
3827
3828       103,  103,  103, 1673,  528,  104,  104,  104,  808, 1676,
3829       101,  342,  496,  102,  462,  540,  103,  342,  462,   81,
3830        81,  104,  342,   81,  477,  477,  477,  342, 1685, 1686,
3831        81,  540,  808,   81,   82,   82,   82,   82,   82,   82,
3832        82,   82,   82,   82,   82,   82,   82,   82,   82,  662,
3833        82,   82,   82,   82,   82,  107,  107,  107,  108,  108,
3834       108,  109,  109,  109,  662,  496,  110,  110,  110,  478,
3835      1687,  107,  507,  523,  108,  774,  478,  109,  547,  827,
3836        82,   82,  110,  561,   82,  478,  480,  480,  480, 1690,
3837       774,   82, 1691,  827,   82,   85,   85,   85,   85,   85,
3838
3839        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
3840       819,   85,   85,   85,   85,   85,  111,  111,  111,  112,
3841       112,  112,  113,  113,  113,  507,  523,  114,  114,  114,
3842      1692,  547,  111,  535,  819,  112,  561,  823,  113, 1693,
3843       535,   85,   85,  114,  117,  117,  117,   85, 1694,  535,
3844        85,  494,  494,  494,  498,  498,  498,  505,  505,  505,
3845       117,  823,   85,   86,   86,   86,   86,   86,   86,   86,
3846        86,   86,   86,   86,   86,   86,   86,   86,  552,   86,
3847        86,   86,   86,   86,  118,  118,  118,  121,  121,  121,
3848       122,  122,  122,  828,  552,  123,  123,  123, 1314, 1695,
3849
3850       118,  566, 1314,  121,  828,  825,  122,  828,  625,   86,
3851        86,  123,  124,  124,  124,   86,  640,  566,   86,  509,
3852       509,  509,  520,  520,  520,  525,  525,  525,  124,  825,
3853        86,   95,   95,   95,   95,   95,   95,   95,   95,   95,
3854        95,   95,   95,   95,   95,   95,  577,   95,   95,   95,
3855        95,   95,  125,  125,  125,  126,  126,  126,  127,  127,
3856       127,  625,  577,  128,  128,  128, 1696, 1697,  125,  640,
3857      1699,  126, 1701,  826,  127, 1702,  677,   95,   95,  128,
3858       131,  131,  131,   95,  534,  534,  534,  537,  537,  537,
3859       544,  544,  544,  549,  549,  549,  131,  826,   95,   96,
3860
3861        96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
3862        96,   96,   96,   96,  588,   96,   96,   96,   96,   96,
3863       132,  132,  132,  133,  133,  133,  134,  134,  134,  677,
3864       588,  135,  135,  135, 1704, 1705,  132, 1707, 1708,  133,
3865      1709,  830,  134, 1710,  702,   96,   96,  135,  136,  136,
3866       136,   96,  559,  559,  559,  563,  563,  563,  571,  571,
3867       571,  574,  574,  574,  136,  830,   96,  105,  105,  105,
3868       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
3869       105,  105,  599,  105,  105,  105,  105,  105,  137,  137,
3870       137,  138,  138,  138,  141,  141,  141,  702,  599,  142,
3871
3872       142,  142, 1713, 1714,  137,  572,  829,  138, 1715, 1716,
3873       141, 1717,  572,  105,  105,  142,  143,  143,  143,  105,
3874       829,  572,  105,  582,  582,  582,  585,  585,  585,  593,
3875       593,  593,  143, 1719,  105,  106,  106,  106,  106,  106,
3876       106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
3877       615,  106,  106,  106,  106,  106,  144,  144,  144,  145,
3878       145,  145,  146,  146,  146,  965,  615,  147,  147,  147,
3879      1722, 1723,  144,  583,  967,  145,  965, 1724,  146,  965,
3880       583,  106,  106,  147,  148,  148,  148,  106,  967,  583,
3881       106,  596,  596,  596,  608,  608,  608,  612,  612,  612,
3882
3883       148, 1726,  106,  115,  115,  115,  115,  115,  115,  115,
3884       115,  115,  115,  115,  115,  115,  115,  115,  630,  115,
3885       115,  115,  115,  115,  151,  151,  151,  152,  152,  152,
3886       155,  155,  155,  717,  630,  156,  156,  156,  594,  645,
3887       151,  609,  610,  152, 1729,  594,  155, 1730,  609,  115,
3888       115,  156,  651,  115,  594,  645,  759,  609,  610,  651,
3889       115, 1731,  772,  115,  619,  619,  619,  115,  651,  115,
3890       115,  116,  116,  116,  116,  116,  116,  116,  116,  116,
3891       116,  116,  116,  116,  116,  116,  717,  116,  116,  116,
3892       116,  116,  157,  157,  157,  158,  158,  158,  159,  159,
3893
3894       159, 1735,  610,  160,  160,  160, 1736,  622,  157,  759,
3895       656,  158, 1740,  670,  159,  772,  623,  116,  116,  160,
3896       622,  116,  622,  627,  627,  627,  656,  756,  116,  670,
3897      1743,  116,  638,  638,  638,  116, 1746,  116,  116,  119,
3898       119,  119,  119,  119,  119,  119,  119,  119,  119,  119,
3899       119,  119,  119,  119,  623,  119,  119,  119,  119,  119,
3900       161,  161,  161,  162,  162,  162,  165,  165,  165,  623,
3901       660,  166,  166,  166,  660, 1681,  161, 1747,  660,  162,
3902       756,  665,  165,  794,  756,  119,  119,  166,  665,  119,
3903       119,  642,  642,  642,  676, 1681,  119,  665,  794,  119,
3904
3905       650,  650,  650,  119, 1748,  119,  119,  119,  120,  120,
3906       120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
3907       120,  120,  120,  682,  120,  120,  120,  120,  120,  167,
3908       167,  167,  168,  168,  168,  169,  169,  169,  847,  682,
3909       170,  170,  170,  676, 1750,  167, 1753,  676,  168,  964,
3910       688,  169, 1754,  847,  120,  120,  170,  688,  120,  120,
3911       653,  653,  653, 1759,  964,  120,  688, 1760,  120,  664,
3912       664,  664,  120, 1775,  120,  120,  120,  129,  129,  129,
3913       129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
3914       129,  129,  693,  129,  129,  129,  129,  129,  171,  171,
3915
3916       171,  172,  172,  172,  175,  175,  175,  968,  693,  176,
3917       176,  176, 1776, 1784,  171, 1785,  707,  172,  968, 1787,
3918       175,  968, 1809,  129,  129,  176,  667,  667,  667,  675,
3919       675,  675,  707, 1810,  129,  130,  130,  130,  130,  130,
3920       130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
3921       722,  130,  130,  130,  130,  130,  179,  179,  179,  180,
3922       180,  180,  183,  183,  183, 1039,  722,  184,  184,  184,
3923      1813, 1815,  179, 1817,  733,  180, 1039, 1824,  183, 1039,
3924      1825,  130,  130,  184,  679,  679,  679,  687,  687,  687,
3925       733, 1826,  130,  139,  139,  139,  139,  139,  139,  139,
3926
3927       139,  139,  139,  139,  139,  139,  139,  139,  745,  139,
3928       139,  139,  139,  139,  187,  187,  187,  188,  188,  188,
3929       189,  189,  189, 1474,  745,  190,  190,  190, 1827, 1829,
3930       187, 1835,  764,  188, 1837, 1474,  189, 1839, 1840,  139,
3931       139,  190,  139,  771,  139,  690,  690,  690,  764, 1845,
3932       139,  700,  700,  700,  704,  704,  704,  139, 1847, 1848,
3933       139,  140,  140,  140,  140,  140,  140,  140,  140,  140,
3934       140,  140,  140,  140,  140,  140, 1850,  140,  140,  140,
3935       140,  140,  193,  193,  193,  194,  194,  194,  195,  195,
3936       195, 1851,  771,  196,  196,  196,  771, 1852,  193, 1853,
3937
3938      1049,  194, 1854, 1857,  195, 1858, 1859,  140,  140,  196,
3939       140, 1863,  140,  714,  714,  714, 1049, 1872,  140,  719,
3940       719,  719,  730,  730,  730,  140, 1875, 1883,  140,  149,
3941       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3942       149,  149,  149,  149, 1885,  149,  149,  149,  149,  149,
3943       197,  197,  197,  198,  198,  198,  199,  199,  199, 1887,
3944      1572,  200,  200,  200, 1888, 1889,  197,  727, 1891,  198,
3945      1896, 1899,  199, 1572,  727,  149,  149,  200,  201,  201,
3946       201,  149, 1900,  727, 1902,  757,  149,  739,  739,  739,
3947       742,  742,  742, 1907,  201,  750,  750,  750,  149,  150,
3948
3949       150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
3950       150,  150,  150,  150,  757,  150,  150,  150,  150,  150,
3951       202,  202,  202,  203,  203,  203,  204,  204,  204, 1912,
3952       757,  205,  205,  205, 1913, 1917,  202,  740,  757,  203,
3953      1920, 1923,  204, 1926,  740,  150,  150,  205,  206,  206,
3954       206,  150, 1927,  740, 1929, 1930,  150,  761,  761,  761,
3955       770,  770,  770, 1931,  206,  773,  773,  773,  150,  153,
3956       153,  153,  153,  153,  153,  153,  153,  153,  153,  153,
3957       153,  153,  153,  153, 1932,  153,  153,  153,  153,  153,
3958       207,  207,  207,  208,  208,  208,  209,  209,  209, 1933,
3959
3960       801,  210,  210,  210, 1156, 1934,  207,  801, 1936,  208,
3961      1937, 1939,  209,  801, 1156,  153,  153,  210, 1052, 1052,
3962      1052, 1156, 1052,  153,  154,  154,  154,  154,  154,  154,
3963       154,  154,  154,  154,  154,  154,  154,  154,  154, 1940,
3964       154,  154,  154,  154,  154,  211,  211,  211,  212,  212,
3965       212,  215,  215,  215, 1943,  806,  216,  216,  216, 1944,
3966      1946,  211,  806, 1948,  212, 1951, 1953,  215,  806, 1919,
3967       154,  154,  216,  782,  782,  782, 1954, 1955,  154,  163,
3968       163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
3969       163,  163,  163,  163, 1919,  163,  163,  163,  163,  163,
3970
3971       217,  217,  217,  218,  218,  218,  219,  219,  219, 1956,
3972       813,  220,  220,  220, 1957, 1959,  217,  813, 1960,  218,
3973      1964,  820,  219,  813,  966,  163,  163,  220,  820,  163,
3974      1967,  966, 1968,  782,  820, 1969,  163,  966, 1976,  163,
3975      1977, 1065, 1065, 1065, 1981, 1982,  163,  164,  164,  164,
3976       164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
3977       164,  164, 1983,  164,  164,  164,  164,  164,  221,  221,
3978       221,  222,  222,  222,  225,  225,  225, 1985,  969,  226,
3979       226,  226, 1989, 1990,  221,  969, 2025,  222, 2026, 2033,
3980       225,  969, 2034,  164,  164,  226, 2045,  164, 1061, 1061,
3981
3982      1061, 2046, 1061, 2047,  164, 1061, 1065,  164, 1331, 1331,
3983      1331, 1354, 1354, 1354,  164,  173,  173,  173,  173,  173,
3984       173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
3985      2048,  173,  173,  173,  173,  173,  229,  229,  229,  230,
3986       230,  230,  233,  233,  233, 2050, 2058,  234,  234,  234,
3987      2060, 2064,  229, 2067, 2068,  230, 2070, 2071,  233, 2074,
3988      2075,  173,  173,  234, 1086, 1086, 1086,  173, 1698, 1698,
3989      1698, 2076,  173,  174,  174,  174,  174,  174,  174,  174,
3990       174,  174,  174,  174,  174,  174,  174,  174, 2077,  174,
3991       174,  174,  174,  174,  235,  235,  235,  236,  236,  236,
3992
3993       237,  237,  237, 2081, 2082,  238,  238,  238, 2083, 2088,
3994       235, 2092, 2096,  236, 2098, 1698,  237, 2100, 2106,  174,
3995       174,  238, 1099, 1099, 1099,  174, 1102, 1102, 1102, 1086,
3996       174,  177,  177,  177,  177,  177,  177,  177,  177,  177,
3997       177,  177,  177,  177,  177,  177, 2113,  177,  177,  177,
3998       177,  177,  239,  239,  239,  240,  240,  240,  243,  243,
3999       243, 2117, 2118,  244,  244,  244, 2120, 2127,  239, 2133,
4000      2138,  240, 2140, 2141,  243, 2143, 2144,  177,  177,  244,
4001       247,  247,  247,  248,  248,  248, 2133, 1099,  177, 2134,
4002      2146, 1102, 2147, 1127, 1127, 1127,  247, 1127, 2148,  248,
4003
4004      1127,  177,  178,  178,  178,  178,  178,  178,  178,  178,
4005       178,  178,  178,  178,  178,  178,  178, 2142,  178,  178,
4006       178,  178,  178,  249,  249,  249,  250,  250,  250,  251,
4007       251,  251, 2134, 2142,  252,  252,  252, 2135, 2149,  249,
4008      2151, 2142,  250, 2152, 2156,  251, 2158, 2159,  178,  178,
4009       252,  253,  253,  253,  254,  254,  254, 2160, 2161,  178,
4010      2163, 1146, 1146, 1146, 2164, 1146, 2165,  253, 1146, 2166,
4011       254, 2135,  178,  181,  181,  181,  181,  181,  181,  181,
4012       181,  181,  181,  181,  181,  181,  181,  181, 2162,  181,
4013       181,  181,  181,  181,  257,  257,  257,  258,  258,  258,
4014
4015       259,  259,  259, 2169, 2162,  260,  260,  260, 2171, 2172,
4016       257, 2179, 2162,  258, 2181, 2173,  259, 2182, 2183,  181,
4017       181,  260,  261,  261,  261, 1148, 1148, 1148, 2184, 1148,
4018      2185, 2173, 1148, 2187, 2192,  181, 2220, 2221,  261, 2173,
4019       181,  182,  182,  182,  182,  182,  182,  182,  182,  182,
4020       182,  182,  182,  182,  182,  182, 2174,  182,  182,  182,
4021       182,  182,  262,  262,  262,  263,  263,  263,  264,  264,
4022       264, 2222, 2174,  271,  271,  271, 2226, 2227,  262, 2233,
4023      2174,  263, 2234, 2237,  264,  268,  268,  182,  182,  271,
4024       268,  272,  272,  272, 1158, 1158, 1158, 2238, 1158, 2244,
4025
4026       268, 1158, 2245,  182, 1700, 1700, 1700,  272,  182,  185,
4027       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
4028       185,  185,  185,  185, 2251,  185,  185,  185,  185,  185,
4029       268,  275,  275,  275,  276,  276,  276,  277,  277,  277,
4030      2253,  278,  278,  278,  790,  790,  790,  275, 2254, 2257,
4031       276, 1700, 2263,  277, 2265,  185,  185,  278,  185,  185,
4032       185,  790, 2271, 1161, 1161, 1161,  185, 1161, 2275,  185,
4033      1161, 1703, 1703, 1703, 2276, 2279,  185,  186,  186,  186,
4034       186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
4035       186,  186, 2284,  186,  186,  186,  186,  186,  279,  279,
4036
4037       279,  280,  280,  280,  281,  281,  281, 2286, 2287,  282,
4038       282,  282, 2288, 2289,  279, 2296, 2298,  280, 2300, 2302,
4039       281, 2315, 2316,  186,  186,  282,  186,  186,  186, 1175,
4040      1175, 1175, 2317, 1175,  186, 2320, 1175,  186, 1706, 1706,
4041      1706, 1712, 1712, 1712,  186,  191,  191,  191,  191,  191,
4042       191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
4043      2321,  191,  191,  191,  191,  191,  283,  283,  283,  284,
4044       284,  284,  285,  285,  285, 2322, 2323,  286,  286,  286,
4045      2324, 2325,  283, 2322, 2327,  284, 2339, 2347,  285, 2348,
4046      2349,  191,  191,  286,  287,  287,  287,  288,  288,  288,
4047
4048      1182, 1182, 1182, 2326, 1182, 2343, 2341, 1182, 2350, 2351,
4049       287, 2326, 2341,  288, 2342,  191,  192,  192,  192,  192,
4050       192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
4051       192, 2355,  192,  192,  192,  192,  192,  289,  289,  289,
4052       290,  290,  290,  291,  291,  291, 2342, 2357,  292,  292,
4053       292, 2358, 2343,  289, 2359, 2364,  290, 2365, 2367,  291,
4054      2368, 2369,  192,  192,  292,  293,  293,  293,  294,  294,
4055       294, 1191, 1191, 1191, 2370, 1191, 2373, 2377, 1191, 2378,
4056      2385,  293, 2387, 2394,  294, 2396,  192,  213,  213,  213,
4057       213,  213,  213,  213,  213,  213,  213,  213,  213,  213,
4058
4059       213,  213, 2427,  213,  213,  213,  213,  213,  295,  295,
4060       295,  296,  296,  296,  297,  297,  297, 2428, 2429,  298,
4061       298,  298, 2435, 2436,  295, 2440, 2444,  296, 2445, 2449,
4062       297, 2450, 2453,  213,  213,  298,  299,  299,  299, 2456,
4063      2457,  213, 2458,  213, 2459, 2462,  213, 1718, 1718, 1718,
4064       213, 2465,  299, 2469,  213,  214,  214,  214,  214,  214,
4065       214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
4066      2470,  214,  214,  214,  214,  214,  300,  300,  300,  301,
4067       301,  301,  302,  302,  302, 2471, 2472,  303,  303,  303,
4068      2484, 2487,  300, 2489, 1718,  301, 2492, 2506,  302, 2507,
4069
4070      2508,  214,  214,  303,  304,  304,  304, 2513, 2514,  214,
4071      2515,  214, 2516, 2517,  214, 1720, 1720, 1720,  214, 2518,
4072       304, 2519,  214,  223,  223,  223,  223,  223,  223,  223,
4073       223,  223,  223,  223,  223,  223,  223,  223, 2520,  223,
4074       223,  223,  223,  223,  305,  305,  305,  306,  306,  306,
4075       307,  307,  307, 2521, 2522,  308,  308,  308, 2532, 2543,
4076       305, 2544, 1720,  306, 2545, 2535,  307, 2548, 2551,  223,
4077       223,  308,  309,  309,  309,  310,  310,  310, 2555, 2556,
4078       223, 2536, 1193, 1193, 1193, 2557, 1193, 2560,  309, 1193,
4079      2561,  310, 2562,  223,  224,  224,  224,  224,  224,  224,
4080
4081       224,  224,  224,  224,  224,  224,  224,  224,  224, 2535,
4082       224,  224,  224,  224,  224,  313,  313,  313,  314,  314,
4083       314,  315,  315,  315, 2565, 2568,  316,  316,  316, 2536,
4084      2569,  313, 2570, 2571,  314, 2593, 2594,  315, 2600, 2595,
4085       224,  224,  316,  317,  317,  317,  318,  318,  318, 2595,
4086      2601,  224, 2607,  363, 1201, 1201, 1201, 2608, 1201,  317,
4087       620, 1201,  318,  363,  224,  227,  227,  227,  227,  227,
4088       227,  227,  227,  227,  227,  227,  227,  227,  227,  227,
4089      2609,  227,  227,  227,  227,  227,  319,  319,  319,  320,
4090       320,  320,  363, 2610, 1711, 1711, 1711, 2624,  620,  620,
4091
4092       620, 2625,  319, 2626, 2627,  320,  363, 2647, 2648,  620,
4093       363,  227,  227,  620, 2659,  620,  363, 2660,  751,  753,
4094       227, 2665,  227, 2666,  370, 2667,  227, 2668,  751,  753,
4095      1711,  227,  227,  228,  228,  228,  228,  228,  228,  228,
4096       228,  228,  228,  228,  228,  228,  228,  228, 2669,  228,
4097       228,  228,  228,  228,  370, 2670, 2671,  751,  753,  370,
4098      1063, 1063, 1063,  751, 1721, 1721, 1721,  370, 2672,  370,
4099       370,  751,  753,  751,  751, 2673,  753,  370, 1063,  228,
4100       228,  751,  753,  755, 2674, 1209, 1209, 1209,  228, 1209,
4101       228, 2679, 1209,  755,  228, 2684,  758, 2685, 2687,  228,
4102
4103       228,  231,  231,  231,  231,  231,  231,  231,  231,  231,
4104       231,  231,  231,  231,  231,  231, 2688,  231,  231,  231,
4105       231,  231,  755,  755, 2689,  758,  758,  855,  855,  855,
4106      1725, 1725, 1725,  877,  877,  877, 1111, 1111, 1111,  758,
4107       878,  878,  878, 2686,  855, 2122,  755,  231,  231,  758,
4108       877, 2122, 2686,  231, 1111, 2122, 2690,  878, 1213, 1213,
4109      1213, 2122, 1213, 2692, 2693, 1213, 1725, 2696,  231,  232,
4110       232,  232,  232,  232,  232,  232,  232,  232,  232,  232,
4111       232,  232,  232,  232, 2697,  232,  232,  232,  232,  232,
4112       888,  888,  888,  890,  890,  890,  904,  904,  904, 2691,
4113
4114       910,  910,  910,  919,  919,  919, 2698,  888, 2691, 2701,
4115       890, 2703, 2704,  904, 2707,  232,  232,  910, 2708, 2682,
4116       919,  232, 1225, 1225, 1225, 2709, 1225, 2711, 2712, 1225,
4117      2714, 1727, 1727, 1727, 2735, 2736,  232,  241,  241,  241,
4118       241,  241,  241,  241,  241,  241,  241,  241,  241,  241,
4119       241,  241, 2682,  241,  241,  241,  241,  241,  920,  920,
4120       920,  929,  929,  929,  937,  937,  937, 1727,  941,  941,
4121       941, 2737,  954,  954,  954,  920, 2738, 2741,  929, 2742,
4122      2748,  937, 2749,  241,  241,  941, 2757, 2683,  241,  954,
4123      1742, 1742, 1742, 2758,  241,  242,  242,  242,  242,  242,
4124
4125       242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
4126      2759,  242,  242,  242,  242,  242,  980,  980,  980,  986,
4127       986,  986, 1003, 1003, 1003, 2683, 1009, 1009, 1009, 2767,
4128      1015, 1015, 1015,  980, 2768, 2784,  986, 1742, 2785, 1003,
4129      2786,  242,  242, 1009, 2790, 2791,  242, 1015, 1928, 1928,
4130      1928, 2792,  242,  245,  245,  245,  245,  245,  245,  245,
4131       245,  245,  245,  245,  245,  245,  245,  245, 2793,  245,
4132       245,  245,  245,  245, 1023, 1023, 1023, 1036, 1036, 1036,
4133      1060, 1060, 1060, 1064, 1064, 1064, 1107, 1107, 1107, 2794,
4134      2795, 1023, 2796, 2744, 1036, 2744, 2745, 1060, 2745,  245,
4135
4136       245, 1064,  245, 1107,  245, 1247, 1247, 1247, 2744, 1247,
4137       245, 2745, 1247, 2797, 2798, 1728, 1728, 1728, 2799, 2800,
4138      1064,  245,  246,  246,  246,  246,  246,  246,  246,  246,
4139       246,  246,  246,  246,  246,  246,  246, 2801,  246,  246,
4140       246,  246,  246, 1109, 1109, 1109, 2803, 2804, 1112, 1112,
4141      1112, 1728, 1119, 1119, 1119, 1108, 1108, 1108, 2805, 2806,
4142      1109, 2807, 2808, 1110, 1110, 1110, 1112, 2805,  246,  246,
4143      1119,  246, 1108,  246, 1253, 1253, 1253, 2809, 1253,  246,
4144      1110, 1253, 1269, 1269, 1269, 1112, 1269, 2811, 2812, 1269,
4145       246,  255,  255,  255,  255,  255,  255,  255,  255,  255,
4146
4147       255,  255,  255,  255,  255,  255, 1108,  255,  255,  255,
4148       255,  255, 1123, 1123, 1123, 2813, 2815, 1124, 1124, 1124,
4149      2818, 1108, 2819, 1110, 1126, 1126, 1126, 1129, 1129, 1129,
4150      1123, 1120, 1120, 1120, 2123, 1124, 2816,  255,  255, 2820,
4151      2123, 1126,  255, 2821, 2123, 1129, 2822, 2810,  255, 1120,
4152      2123, 2823,  255, 1935, 1935, 1935, 2810, 2815,  255,  256,
4153       256,  256,  256,  256,  256,  256,  256,  256,  256,  256,
4154       256,  256,  256,  256, 2816,  256,  256,  256,  256,  256,
4155      2824, 1120, 1124, 1131, 1131, 1131, 1133, 1133, 1133, 1134,
4156      1134, 1134, 2825, 2826, 1130, 1130, 1130, 1132, 1132, 1132,
4157
4158      1131, 2827, 2828, 1133, 2829,  256,  256, 1134, 2830, 2831,
4159       256, 2832, 1130, 2835, 1132, 2836,  256, 1275, 1275, 1275,
4160       256, 1275, 2838, 2839, 1275, 2840,  256,  265,  265,  265,
4161       265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
4162       265,  265, 1130,  265,  265,  265,  265,  265, 1132, 1135,
4163      1135, 1135, 1136, 1136, 1136, 1137, 1137, 1137, 1138, 1138,
4164      1138, 2842, 2843, 1132, 1139, 1139, 1139, 1135, 2863, 1136,
4165      2864, 2866, 1137,  265,  265, 2817, 1138, 1938, 1938, 1938,
4166      2870,  265, 1139, 2871,  265, 1941, 1941, 1941, 1942, 1942,
4167      1942,  265,  266,  266,  266,  266,  266,  266,  266,  266,
4168
4169       266,  266,  266,  266,  266,  266,  266, 2872,  266,  266,
4170       266,  266,  266, 1140, 1140, 1140, 1142, 1142, 1142, 2817,
4171      2873, 1135, 1143, 1143, 1143, 2874, 2875, 1141, 1141, 1141,
4172      1140, 2873, 2877, 1142, 2878, 2888, 1139, 2889,  266,  266,
4173      1143, 1281, 1281, 1281, 1141, 1281,  266, 2890, 1281,  266,
4174      1945, 1945, 1945, 1947, 1947, 1947,  266,  269,  269,  269,
4175       269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
4176       269,  269, 2902,  269,  269,  269,  269,  269, 1141, 1144,
4177      1144, 1144, 1145, 1145, 1145, 1147, 1147, 1147, 1149, 1149,
4178      1149, 2920, 2926, 1141, 1150, 1150, 1150, 1144, 2876, 1145,
4179
4180      2927, 2928, 1147,  269,  269, 1149, 1151, 1151, 1151, 2876,
4181       269, 1150, 2929, 1289, 1289, 1289,  269, 1289, 1947, 2930,
4182      1289, 2931, 2932, 1151, 2933,  269,  270,  270,  270,  270,
4183       270,  270,  270,  270,  270,  270,  270,  270,  270,  270,
4184       270, 2934,  270,  270,  270,  270,  270, 1150, 1154, 1154,
4185      1154, 1144, 1950, 1950, 1950, 1952, 1952, 1952, 1152, 1152,
4186      1152, 2935, 1151, 1153, 1153, 1153, 1154, 2937, 2938, 1155,
4187      1155, 1155,  270,  270, 2939, 1152, 1157, 1157, 1157,  270,
4188      1153, 2940, 1301, 1301, 1301,  270, 1301, 1155, 2941, 1301,
4189      1949, 1949, 1949, 1157,  270,  273,  273,  273,  273,  273,
4190
4191       273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
4192      1152,  273,  273,  273,  273,  273, 1153, 1155, 1160, 1160,
4193      1160, 1162, 1162, 1162, 2894, 1172, 1172, 1172, 1173, 1173,
4194      1173, 1174, 1174, 1174, 2894, 1160, 2942, 1949, 1162, 2943,
4195      2894,  273,  273, 1172, 2895, 2944, 1173, 2945, 1174, 1323,
4196      1323, 1323,  273, 1323, 2895, 2946, 1323, 1958, 1958, 1958,
4197      2895,  273,  274,  274,  274,  274,  274,  274,  274,  274,
4198       274,  274,  274,  274,  274,  274,  274, 2947,  274,  274,
4199       274,  274,  274, 1176, 1176, 1176, 2948, 1173, 1177, 1177,
4200      1177, 2954, 2955, 1181, 1181, 1181, 1186, 1186, 1186, 2956,
4201
4202      2957, 1176, 1187, 1187, 1187, 2958, 1177, 2959,  274,  274,
4203      1181, 1375, 1375, 1375, 1186, 1375, 2960, 2961, 1375,  274,
4204      1187, 1961, 1961, 1961, 1962, 1962, 1962, 2951,  274,  311,
4205       311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
4206       311,  311,  311,  311, 2962,  311,  311,  311,  311,  311,
4207      1177, 1190, 1190, 1190, 1192, 1192, 1192, 2951, 2963, 1194,
4208      1194, 1194, 2964, 2965, 1187, 1195, 1195, 1195, 1190, 2952,
4209      2966, 1192, 1197, 1197, 1197,  311,  311, 1194, 1200, 1200,
4210      1200,  311, 2968, 1195,  311, 1379, 1379, 1379, 2953, 1379,
4211      1197, 2970, 1379, 2971, 2972, 1200,  311,  312,  312,  312,
4212
4213       312,  312,  312,  312,  312,  312,  312,  312,  312,  312,
4214       312,  312, 2952,  312,  312,  312,  312,  312, 1198, 1198,
4215      1198, 1205, 1205, 1205, 1206, 1206, 1206, 1195, 1208, 1208,
4216      1208, 2953, 1210, 1210, 1210, 2974, 1198, 2975, 2976, 1205,
4217      2988, 2993, 1206,  312,  312, 1208, 1212, 1212, 1212,  312,
4218      1210, 2994,  312, 1211, 1211, 1211, 1215, 1215, 1215, 1219,
4219      1219, 1219, 2980, 1212,  312,  360, 2995, 2996, 1216, 1216,
4220      1216, 1211,  360, 2997, 1215, 2980, 2998, 1219, 2999, 1198,
4221      1206,  360,  360, 1220, 1220, 1220, 1216, 1224, 1224, 1224,
4222      1226, 1226, 1226, 2918, 3000, 1229, 1229, 1229, 1230, 1230,
4223
4224      1230, 1220, 2981, 2918, 1224, 3001, 2918, 1226, 3002, 1211,
4225       360,  360,  360, 1229, 3003, 2981, 1230,  360,  360, 3014,
4226      3016,  360,  360, 3020, 2919,  360, 3021,  360,  360,  360,
4227      1216, 1233, 1233, 1233, 2919,  360,  362, 2919, 1234, 1234,
4228      1234, 1244, 1244, 1244, 3022, 1220, 1245, 1245, 1245, 1233,
4229      1230, 3023,  362,  362, 2538, 2538, 1234, 2538, 3024, 1244,
4230      1246, 1246, 1246, 3025, 1245, 2538, 1249, 1249, 1249, 1250,
4231      1250, 1250, 2538, 1252, 1252, 1252, 3027, 1246, 1254, 1254,
4232      1254,  362,  362,  362, 1249, 3042, 3043, 1250,  362,  362,
4233      1252, 3037,  362,  362, 3045, 1254,  362, 1234,  362,  362,
4234
4235       362, 1256, 1256, 1256, 3037, 3046,  362,  364, 1260, 1260,
4236      1260, 1245, 3038, 1261, 1261, 1261, 3048, 3044, 1256, 1262,
4237      1262, 1262, 3047,  364,  364, 3038, 1260, 1263, 1263, 1263,
4238      3044, 1261, 3057, 3058, 1250, 3047, 1262, 3059, 1264, 1264,
4239      1264, 1966, 1966, 1966, 1263, 3060, 3062, 1265, 1265, 1265,
4240      3063, 3064,  364,  364,  364, 1264, 1266, 1266, 1266,  364,
4241       364, 1261, 3065,  364,  364, 1265, 3068,  364, 3069,  364,
4242       364,  364, 3070, 3071, 1266, 3072, 3073,  364, 1268, 1268,
4243      1268, 1270, 1270, 1270, 1271, 1271, 1271, 1274, 1274, 1274,
4244      1277, 1277, 1277, 3074, 3075, 1268, 3076, 3077, 1264, 1270,
4245
4246      3078, 3079, 1271, 3087, 1274, 1278, 1278, 1278, 1277, 1280,
4247      1280, 1280, 1284, 1284, 1284, 1285, 1285, 1285, 1266, 1288,
4248      1288, 1288, 3084, 1278, 3088, 3089, 1280, 1292, 1292, 1292,
4249      1284, 3090, 3091, 1285, 3092, 3093, 1288, 1293, 1293, 1293,
4250      1298, 1298, 1298, 3085, 3094, 1292, 1271, 1299, 1299, 1299,
4251      1300, 1300, 1300, 3095, 3096, 1293, 3097, 3098, 1298, 1303,
4252      1303, 1303, 1304, 1304, 1304, 1299, 3099, 1300, 1305, 1305,
4253      1305, 3084, 1278, 3101, 1306, 1306, 1306, 1303, 3103, 3085,
4254      1304, 3104, 1285, 3106, 3108, 1305, 1307, 1307, 1307, 3112,
4255      3113, 1306, 1308, 1308, 1308, 1309, 1309, 1309, 1310, 1310,
4256
4257      1310, 3114, 1293, 1307, 1327, 1327, 1327, 3115, 3119, 1308,
4258      3127, 3110, 1299, 1309, 3128, 3129, 1310, 1328, 1328, 1328,
4259      3130, 3110, 1327, 3131, 1304, 1306, 1330, 1330, 1330, 1374,
4260      1374, 1374, 1378, 1378, 1378, 1328, 1381, 1381, 1381, 3110,
4261      1306, 1382, 1382, 1382, 1330, 3132, 1374, 3133, 3134, 1378,
4262      3110, 3135, 1308, 3136, 1381, 1384, 1384, 1384, 3137, 1382,
4263      1310, 1387, 1387, 1387, 1391, 1391, 1391, 1392, 1392, 1392,
4264      1394, 1394, 1394, 1384, 1397, 1397, 1397, 3141, 1387, 1398,
4265      1398, 1398, 1391, 3144, 3145, 1392, 3146, 3147, 1394, 1400,
4266      1400, 1400, 1397, 3148, 1402, 1402, 1402, 1398, 1402, 3149,
4267
4268      3150, 1402, 3153, 1406, 1406, 1406, 3157, 1400, 1407, 1407,
4269      1407, 1409, 1409, 1409, 1410, 1410, 1410, 1414, 1414, 1414,
4270      1384, 1406, 3158, 1411, 1411, 1411, 1407, 1411, 3159, 1409,
4271      1411, 1410, 3160, 3161, 1414, 3162, 3163, 1394, 1415, 1415,
4272      1415, 3164, 1415, 1400, 3165, 1415, 1416, 1416, 1416, 1417,
4273      1417, 1417, 1419, 1419, 1419, 1420, 1420, 1420, 1421, 1421,
4274      1421, 1409, 1421, 3166, 1416, 1421, 3167, 1417, 3168, 3180,
4275      1419, 3181, 1420, 1422, 1422, 1422, 1423, 1423, 1423, 3182,
4276      1423, 3183, 3184, 1423, 1424, 1424, 1424, 1425, 1425, 1425,
4277      1422, 1427, 1427, 1427, 1428, 1428, 1428, 1429, 1429, 1429,
4278
4279      3185, 1429, 1424, 3186, 1429, 1425, 1432, 1432, 1432, 1427,
4280      3187, 1428, 1433, 1433, 1433, 1419, 1433, 3189, 3190, 1433,
4281      1434, 1434, 1434, 1432, 1435, 1435, 1435, 1437, 1437, 1437,
4282      1438, 1438, 1438, 3191, 1438, 3192, 3193, 1438, 1434, 1441,
4283      1441, 1441, 1435, 1441, 3194, 1437, 1441, 1444, 1444, 1444,
4284      3195, 1445, 1445, 1445, 1427, 1445, 3196, 3197, 1445, 1450,
4285      1450, 1450, 3198, 3199, 1444, 1451, 1451, 1451, 1453, 1453,
4286      1453, 1457, 1457, 1457, 3200, 1457, 3208, 1450, 1457, 1460,
4287      1460, 1460, 3209, 1451, 3210, 3213, 1453, 1461, 1461, 1461,
4288      1437, 1461, 3204, 3214, 1461, 3215, 1460, 1464, 1464, 1464,
4289
4290      1465, 1465, 1465, 3216, 1465, 3219, 3221, 1465, 1475, 1475,
4291      1475, 1476, 1476, 1476, 1464, 3225, 3228, 1453, 1478, 1478,
4292      1478, 1479, 1479, 1479, 3229, 1479, 1475, 3204, 1479, 1476,
4293      1482, 1482, 1482, 1483, 1483, 1483, 1478, 1485, 1485, 1485,
4294      1488, 1488, 1488, 1489, 1489, 1489, 3230, 1489, 1482, 3231,
4295      1489, 1483, 1495, 1495, 1495, 1485, 3232, 1488, 1496, 1496,
4296      1496, 1498, 1498, 1498, 1500, 1500, 1500, 1501, 1501, 1501,
4297      1495, 1501, 3233, 3234, 1501, 3235, 1496, 3236, 3237, 1498,
4298      3238, 1500, 3239, 1504, 1504, 1504, 1478, 1504, 3244, 3252,
4299      1504, 1507, 1507, 1507, 1508, 1508, 1508, 3253, 1485, 1510,
4300
4301      1510, 1510, 1511, 1511, 1511, 1512, 1512, 1512, 3254, 1507,
4302      3255, 3256, 1508, 1513, 1513, 1513, 3257, 1510, 3258, 1511,
4303      1515, 1515, 1515, 1512, 1523, 1523, 1523, 1498, 1517, 1517,
4304      1517, 1513, 1517, 3259, 3260, 1517, 3261, 3267, 1515, 1524,
4305      1524, 1524, 1523, 1526, 1526, 1526, 1528, 1528, 1528, 3268,
4306      1528, 3270, 3271, 1528, 1531, 1531, 1531, 1524, 1532, 1532,
4307      1532, 1526, 1534, 1534, 1534, 1510, 3273, 1535, 1535, 1535,
4308      1515, 1535, 1531, 3274, 1535, 3275, 1532, 1539, 1539, 1539,
4309      1534, 1540, 1540, 1540, 1542, 1542, 1542, 3276, 1543, 1543,
4310      1543, 1544, 1544, 1544, 3277, 1539, 1545, 1545, 1545, 1540,
4311
4312      3278, 3279, 1542, 3111, 1526, 1543, 3280, 3281, 1544, 1546,
4313      1546, 1546, 3282, 3111, 1545, 1548, 1548, 1548, 1553, 1553,
4314      1553, 3283, 1553, 1534, 3284, 1553, 3285, 1546, 1556, 1556,
4315      1556, 3111, 3288, 1548, 3289, 1542, 1557, 1557, 1557, 1544,
4316      1557, 3290, 3111, 1557, 3291, 1556, 1560, 1560, 1560, 1561,
4317      1561, 1561, 1563, 1563, 1563, 1566, 1566, 1566, 1567, 1567,
4318      1567, 1569, 1569, 1569, 1560, 3292, 3293, 1561, 3294, 3295,
4319      1563, 3297, 3298, 1566, 3300, 3301, 1567, 3302, 3304, 1569,
4320      1575, 1575, 1575, 1548, 1579, 1579, 1579, 1580, 1580, 1580,
4321      1582, 1582, 1582, 3306, 1583, 1583, 1583, 1575, 1583, 3307,
4322
4323      3308, 1583, 1579, 3311, 1563, 1580, 3312, 3313, 1582, 1569,
4324      1587, 1587, 1587, 1588, 1588, 1588, 1590, 1590, 1590, 1592,
4325      1592, 1592, 3171, 1592, 2539, 2539, 1592, 2539, 1587, 3314,
4326      3317, 1588, 3171, 3318, 1590, 2539, 1595, 1595, 1595, 1596,
4327      1596, 1596, 2539, 1596, 3319, 3320, 1596, 1597, 1597, 1597,
4328      3171, 3321, 1582, 1595, 1598, 1598, 1598, 3322, 1599, 1599,
4329      1599, 3171, 1599, 3323, 1597, 1599, 1601, 1601, 1601, 3324,
4330      3325, 1598, 1603, 1603, 1603, 1604, 1604, 1604, 1590, 1606,
4331      1606, 1606, 3332, 1601, 1607, 1607, 1607, 1608, 1608, 1608,
4332      1603, 1608, 3326, 1604, 1608, 3333, 3335, 1606, 1609, 1609,
4333
4334      1609, 1607, 1610, 1610, 1610, 3336, 1610, 3337, 3339, 1610,
4335      1612, 1612, 1612, 3341, 3344, 1609, 1613, 1613, 1613, 1615,
4336      1615, 1615, 1617, 1617, 1617, 3346, 1617, 3347, 1612, 1617,
4337      1620, 1620, 1620, 3348, 1613, 3349, 3326, 1615, 3350, 3351,
4338      1606, 1621, 1621, 1621, 1623, 1623, 1623, 3352, 1620, 1626,
4339      1626, 1626, 3353, 1626, 3354, 3355, 1626, 3356, 3357, 1621,
4340      3360, 3364, 1623, 1630, 1630, 1630, 1631, 1631, 1631, 3365,
4341      1633, 1633, 1633, 1635, 1635, 1635, 3172, 1635, 3367, 3368,
4342      1635, 1630, 3369, 3371, 1631, 3372, 3172, 1615, 1633, 1639,
4343      1639, 1639, 1640, 1640, 1640, 1641, 1641, 1641, 1643, 1643,
4344
4345      1643, 1645, 1645, 1645, 3172, 3377, 1639, 1646, 1646, 1646,
4346      1640, 1646, 1623, 1641, 1646, 3172, 1643, 3378, 1645, 1649,
4347      1649, 1649, 1651, 1651, 1651, 1652, 1652, 1652, 1654, 1654,
4348      1654, 3379, 1633, 1656, 1656, 1656, 1649, 1658, 1658, 1658,
4349      1651, 3380, 3381, 1652, 3382, 3383, 1654, 1659, 1659, 1659,
4350      1656, 1661, 1661, 1661, 3384, 1658, 3385, 1662, 1662, 1662,
4351      1643, 1662, 3386, 3387, 1662, 1659, 1666, 1666, 1666, 1661,
4352      1667, 1667, 1667, 1669, 1669, 1669, 1654, 1670, 1670, 1670,
4353      3388, 1649, 3389, 3390, 1666, 1671, 1671, 1671, 1667, 1671,
4354      3391, 1669, 1671, 3392, 1670, 1674, 1674, 1674, 3393, 1661,
4355
4356      1675, 1675, 1675, 3397, 1675, 3398, 3399, 1675, 1677, 1677,
4357      1677, 3400, 1674, 1678, 1678, 1678, 3401, 1680, 1680, 1680,
4358      1682, 1682, 1682, 1688, 1688, 1688, 1677, 1741, 1741, 1741,
4359      3402, 1678, 3403, 3404, 1669, 1680, 3407, 3408, 1682, 1682,
4360      3409, 1688, 1732, 1732, 1732, 1741, 1732, 3410, 3411, 1732,
4361      1737, 1737, 1737, 3412, 1737, 3414, 3415, 1737, 1744, 1744,
4362      1744, 1745, 1745, 1745, 3417, 1745, 3202, 3418, 1745, 1749,
4363      1749, 1749, 1752, 1752, 1752, 1744, 3202, 3419, 1680, 1751,
4364      1751, 1751, 3421, 1755, 1755, 1755, 3422, 1749, 3423, 1741,
4365      1752, 1756, 1756, 1756, 3202, 1756, 1751, 3424, 1756, 3425,
4366
4367      3426, 1755, 1761, 1761, 1761, 3202, 1761, 3427, 3428, 1761,
4368      1764, 1764, 1764, 1765, 1765, 1765, 3429, 1765, 3437, 3433,
4369      1765, 3438, 1768, 1768, 1768, 3440, 1768, 3441, 1764, 1768,
4370      3433, 1749, 1771, 1771, 1771, 1772, 1772, 1772, 3445, 1772,
4371      1752, 1755, 1772, 3430, 1777, 1777, 1777, 3432, 1777, 3447,
4372      1771, 1777, 1780, 1780, 1780, 1781, 1781, 1781, 1764, 1781,
4373      3449, 3432, 1781, 3451, 1786, 1786, 1786, 1788, 1788, 1788,
4374      1780, 1789, 1789, 1789, 1790, 1790, 1790, 1791, 1791, 1791,
4375      1771, 1786, 1792, 1792, 1792, 1788, 3453, 3455, 1789, 3459,
4376      3430, 1790, 3461, 3465, 1791, 1797, 1797, 1797, 3466, 1792,
4377
4378      1780, 1793, 1793, 1793, 3461, 1793, 3468, 3469, 1793, 1794,
4379      1794, 1794, 1797, 1794, 3436, 3471, 1794, 1798, 1798, 1798,
4380      1799, 1799, 1799, 1788, 3462, 1791, 1800, 1800, 1800, 1801,
4381      1801, 1801, 3476, 3436, 1798, 3436, 3462, 1799, 1802, 1802,
4382      1802, 1790, 3482, 1800, 3476, 3484, 1801, 1797, 3436, 1803,
4383      1803, 1803, 1804, 1804, 1804, 1802, 1805, 1805, 1805, 1806,
4384      1806, 1806, 1807, 1807, 1807, 1798, 1803, 3486, 3487, 1804,
4385      1811, 1811, 1811, 1805, 1800, 3490, 1806, 1808, 1808, 1808,
4386      1807, 1812, 1812, 1812, 3491, 1812, 3494, 1811, 1812, 3496,
4387      3498, 1799, 3500, 3502, 1801, 1808, 1814, 1814, 1814, 1802,
4388
4389      1816, 1816, 1816, 1818, 1818, 1818, 3504, 1819, 1819, 1819,
4390      3477, 1819, 3505, 1814, 1819, 1820, 1820, 1820, 1816, 1805,
4391      1818, 1806, 3477, 1804, 1821, 1821, 1821, 3507, 1807, 3508,
4392      1808, 3512, 3513, 1820, 3515, 1822, 1822, 1822, 3516, 1822,
4393      3518, 1821, 1822, 1814, 1823, 1823, 1823, 1828, 1828, 1828,
4394      1830, 1830, 1830, 1831, 1831, 1831, 3520, 1832, 1832, 1832,
4395      3522, 3524, 1823, 2677, 2677, 1828, 2677, 1816, 1830, 3528,
4396      1831, 1833, 1833, 1833, 2677, 1832, 1834, 1834, 1834, 3530,
4397      1834, 2677, 1820, 1834, 1836, 1836, 1836, 3526, 1833, 1838,
4398      1838, 1838, 1841, 1841, 1841, 3533, 1841, 3534, 3525, 1841,
4399
4400      3535, 3526, 1836, 1823, 3539, 1828, 1838, 3536, 1830, 1832,
4401      1844, 1844, 1844, 1846, 1846, 1846, 1849, 1849, 1849, 1855,
4402      1855, 1855, 1856, 1856, 1856, 3536, 1856, 1844, 3540, 1856,
4403      3541, 1846, 3527, 3527, 1849, 3550, 1855, 1860, 1860, 1860,
4404      3525, 1861, 1861, 1861, 3551, 1836, 1862, 1862, 1862, 1864,
4405      1864, 1864, 3561, 1864, 3555, 1860, 1864, 1844, 1861, 1867,
4406      1867, 1867, 3555, 3439, 1862, 1868, 1868, 1868, 3562, 1868,
4407      3563, 3529, 1868, 1869, 1869, 1869, 1867, 1869, 1846, 3439,
4408      1869, 3439, 3529, 1849, 1873, 1873, 1873, 1860, 1874, 1874,
4409      1874, 3542, 1874, 3564, 3439, 1874, 1876, 1876, 1876, 3571,
4410
4411      3557, 1873, 3572, 1877, 1877, 1877, 3542, 1877, 3557, 1862,
4412      1877, 1880, 1880, 1880, 1876, 1880, 3573, 3574, 1880, 1884,
4413      1884, 1884, 1886, 1886, 1886, 1890, 1890, 1890, 1892, 1892,
4414      1892, 1893, 1893, 1893, 1894, 1894, 1894, 1884, 1894, 3554,
4415      1886, 1894, 3556, 1890, 3575, 1892, 3576, 1876, 1893, 1895,
4416      1895, 1895, 1897, 1897, 1897, 1898, 1898, 1898, 3554, 1898,
4417      3566, 3556, 1898, 1901, 1901, 1901, 3568, 1895, 3567, 1897,
4418      1903, 1903, 1903, 1904, 1904, 1904, 3567, 1904, 3586, 3566,
4419      1904, 1901, 1905, 1905, 1905, 3568, 1884, 1903, 3587, 1886,
4420      1890, 1906, 1906, 1906, 1908, 1908, 1908, 3569, 3588, 1905,
4421
4422      1909, 1909, 1909, 3589, 1909, 3569, 3592, 1909, 3593, 1906,
4423      3594, 3602, 1908, 1901, 1895, 1914, 1914, 1914, 3603, 1914,
4424      3604, 3589, 1914, 3606, 1918, 1918, 1918, 1921, 1921, 1921,
4425      1963, 1963, 1963, 1965, 1965, 1965, 1970, 1970, 1970, 3607,
4426      3608, 1906, 1918, 3610, 3611, 1921, 1908, 1971, 1971, 1971,
4427      1972, 1972, 1972, 1973, 1973, 1973, 1974, 1974, 1974, 1975,
4428      1975, 1975, 1978, 1978, 1978, 3612, 1978, 1972, 3613, 1978,
4429      1973, 3615, 3616, 1974, 3595, 3617, 1918, 1975, 3622, 1921,
4430      1965, 1984, 1984, 1984, 3623, 1986, 1986, 1986, 3624, 3595,
4431      1987, 1987, 1987, 3625, 1987, 1963, 1921, 1987, 3626, 1984,
4432
4433      3627, 1970, 1986, 3628, 1988, 1988, 1988, 1991, 1991, 1991,
4434      3629, 3630, 1971, 1992, 1992, 1992, 1993, 1993, 1993, 3631,
4435      3632, 1974, 1988, 3633, 3636, 1991, 3637, 1975, 3638, 3639,
4436      1992, 3640, 3641, 1993, 1994, 1994, 1994, 1995, 1995, 1995,
4437      1996, 1996, 1996, 1997, 1997, 1997, 1984, 1998, 1998, 1998,
4438      3642, 3643, 1994, 3646, 3647, 1995, 1991, 1996, 3648, 3649,
4439      1997, 1999, 1999, 1999, 1988, 1998, 2000, 2000, 2000, 2001,
4440      2001, 2001, 2002, 2002, 2002, 3650, 2002, 3651, 1999, 2002,
4441      2003, 2003, 2003, 2000, 3652, 3653, 2001, 2004, 2004, 2004,
4442      2005, 2005, 2005, 3654, 2006, 2006, 2006, 2003, 2006, 3656,
4443
4444      1994, 2006, 3657, 1995, 3658, 2004, 3659, 2005, 3661, 2007,
4445      2007, 2007, 3663, 1998, 2008, 2008, 2008, 2009, 2009, 2009,
4446      3664, 2009, 3665, 3666, 2009, 2000, 2007, 2012, 2012, 2012,
4447      3667, 2008, 2013, 2013, 2013, 2014, 2014, 2014, 2015, 2015,
4448      2015, 2016, 2016, 2016, 2012, 2017, 2017, 2017, 2004, 2013,
4449      3514, 3668, 2014, 3669, 3670, 2015, 3511, 3671, 2016, 2018,
4450      2018, 2018, 2017, 2019, 2019, 2019, 3514, 2019, 3514, 3672,
4451      2019, 3673, 2020, 2020, 2020, 3511, 2018, 3511, 3677, 2008,
4452      3678, 3514, 2013, 2021, 2021, 2021, 3675, 3679, 2016, 2020,
4453      3511, 3680, 2012, 2022, 2022, 2022, 3681, 2015, 3675, 2017,
4454
4455      2021, 2023, 2023, 2023, 2024, 2024, 2024, 2027, 2027, 2027,
4456      2022, 2027, 3682, 3683, 2027, 2030, 2030, 2030, 3684, 2023,
4457      3685, 3687, 2024, 2031, 2031, 2031, 2032, 2032, 2032, 3692,
4458      2032, 2021, 2030, 2032, 2035, 2035, 2035, 2036, 2036, 2036,
4459      2031, 2037, 2037, 2037, 3693, 2037, 3694, 2022, 2037, 2040,
4460      2040, 2040, 2035, 3676, 2041, 2041, 2041, 3695, 2041, 3696,
4461      2024, 2041, 2044, 2044, 2044, 3676, 3697, 2040, 2023, 2049,
4462      2049, 2049, 2051, 2051, 2051, 2052, 2052, 2052, 3698, 3699,
4463      2044, 2053, 2053, 2053, 3703, 2053, 3704, 2049, 2053, 3706,
4464      2051, 3708, 2052, 2054, 2054, 2054, 2040, 2055, 2055, 2055,
4465
4466      3709, 2055, 3710, 3711, 2055, 2059, 2059, 2059, 2061, 2061,
4467      2061, 2054, 3712, 2062, 2062, 2062, 3713, 2062, 3714, 2051,
4468      2062, 3715, 3716, 2059, 3719, 2061, 2063, 2063, 2063, 3720,
4469      2044, 2065, 2065, 2065, 2066, 2066, 2066, 3721, 2066, 3722,
4470      3723, 2066, 3724, 2063, 2069, 2069, 2069, 3725, 2065, 2072,
4471      2072, 2072, 2054, 2073, 2073, 2073, 2078, 2078, 2078, 3717,
4472      2078, 3726, 2069, 2078, 2084, 2084, 2084, 2072, 2085, 2085,
4473      2085, 3729, 2059, 2086, 2086, 2086, 3730, 2086, 3731, 3732,
4474      2086, 3733, 2084, 3734, 3717, 2085, 2087, 2087, 2087, 2089,
4475      2089, 2089, 3735, 2089, 3736, 3737, 2089, 3738, 3739, 2093,
4476
4477      2093, 2093, 2072, 2093, 2087, 3740, 2093, 2097, 2097, 2097,
4478      2099, 2099, 2099, 2101, 2101, 2101, 2084, 2102, 2102, 2102,
4479      2103, 2103, 2103, 3743, 3744, 2097, 3745, 3746, 2099, 3747,
4480      3748, 2101, 3749, 3750, 2102, 3753, 3754, 2103, 2104, 2104,
4481      2104, 2105, 2105, 2105, 2107, 2107, 2107, 2108, 2108, 2108,
4482      3755, 2108, 3756, 3757, 2108, 2104, 2109, 2109, 2109, 2105,
4483      2109, 2107, 2099, 2109, 3758, 2101, 2112, 2112, 2112, 2097,
4484      2114, 2114, 2114, 3759, 2114, 3760, 3761, 2114, 2119, 2119,
4485      2119, 2121, 2121, 2121, 2112, 2121, 3762, 2103, 2121, 2105,
4486      2124, 2124, 2124, 2125, 2125, 2125, 2119, 2125, 3764, 3763,
4487
4488      2125, 2126, 2126, 2126, 2128, 2128, 2128, 2124, 2129, 2129,
4489      2129, 2130, 2130, 2130, 2112, 2131, 2131, 2131, 3763, 2126,
4490      3765, 3766, 2128, 3767, 3768, 2129, 3769, 3770, 2130, 3771,
4491      2119, 3772, 2131, 2132, 2132, 2132, 3773, 2137, 2137, 2137,
4492      2139, 2139, 2139, 2145, 2145, 2145, 2150, 2150, 2150, 3774,
4493      3775, 2132, 3776, 2126, 2137, 2153, 2153, 2153, 2154, 2154,
4494      2154, 2155, 2155, 2155, 2157, 2157, 2157, 3777, 3778, 2132,
4495      2167, 2167, 2167, 2168, 2168, 2168, 2170, 2170, 2170, 3779,
4496      2131, 2175, 2175, 2175, 2176, 2176, 2176, 3780, 2176, 3781,
4497      3782, 2176, 2177, 2177, 2177, 2178, 2178, 2178, 2175, 2178,
4498
4499      3783, 3784, 2178, 2180, 2180, 2180, 2186, 2186, 2186, 2177,
4500      2188, 2188, 2188, 3785, 2188, 3786, 3787, 2188, 2193, 2193,
4501      2193, 2180, 3788, 3789, 2186, 2191, 2191, 2191, 2194, 2194,
4502      2194, 2195, 2195, 2195, 3790, 2193, 3791, 2196, 2196, 2196,
4503      3794, 2196, 3795, 2191, 2196, 3796, 2194, 3797, 2195, 2197,
4504      2197, 2197, 2198, 2198, 2198, 3798, 2198, 3799, 3800, 2198,
4505      2199, 2199, 2199, 2200, 2200, 2200, 2197, 2201, 2201, 2201,
4506      2180, 3801, 2202, 2202, 2202, 3803, 2202, 2191, 2199, 2202,
4507      3804, 2200, 3806, 3807, 2201, 2203, 2203, 2203, 3808, 3802,
4508      2194, 2204, 2204, 2204, 3810, 2204, 3811, 3812, 2204, 2205,
4509
4510      2205, 2205, 2203, 2206, 2206, 2206, 2207, 2207, 2207, 3802,
4511      2207, 3813, 3814, 2207, 2208, 2208, 2208, 2205, 3815, 3816,
4512      2206, 2209, 2209, 2209, 3817, 2209, 2199, 3818, 2209, 2200,
4513      3819, 2208, 2212, 2212, 2212, 2213, 2213, 2213, 3820, 2213,
4514      3821, 3822, 2213, 2214, 2214, 2214, 2215, 2215, 2215, 2212,
4515      2215, 3823, 3824, 2215, 2218, 2218, 2218, 2223, 2223, 2223,
4516      3825, 2214, 2219, 2219, 2219, 2205, 2219, 3826, 3827, 2219,
4517      3828, 2218, 3829, 3830, 2223, 2224, 2224, 2224, 3831, 2224,
4518      3832, 3834, 2224, 2225, 2225, 2225, 2228, 2228, 2228, 3835,
4519      2228, 3836, 3838, 2228, 3840, 2214, 2231, 2231, 2231, 3841,
4520
4521      2225, 2232, 2232, 2232, 3843, 2232, 3839, 3844, 2232, 2235,
4522      2235, 2235, 3839, 2231, 2236, 2236, 2236, 2239, 2239, 2239,
4523      3846, 2240, 2240, 2240, 3847, 2240, 3848, 2235, 2240, 2241,
4524      2241, 2241, 2236, 2241, 2239, 3849, 2241, 2246, 2246, 2246,
4525      2248, 2248, 2248, 3850, 2249, 2249, 2249, 2250, 2250, 2250,
4526      2252, 2252, 2252, 3851, 3853, 2246, 2255, 2255, 2255, 3854,
4527      3855, 2235, 2249, 3203, 3857, 2250, 3858, 2252, 2236, 2258,
4528      2258, 2258, 3859, 3203, 2255, 2259, 2259, 2259, 3861, 2259,
4529      3862, 3863, 2259, 2262, 2262, 2262, 3865, 2258, 2264, 2264,
4530      2264, 3203, 2266, 2266, 2266, 3866, 2266, 2252, 2250, 2266,
4531
4532      3867, 2262, 3203, 2249, 3869, 3870, 2264, 2269, 2269, 2269,
4533      2270, 2270, 2270, 3872, 2270, 3873, 3875, 2270, 3877, 2258,
4534      3878, 2272, 2272, 2272, 2269, 2272, 3879, 3872, 2272, 3880,
4535      2262, 2277, 2277, 2277, 2280, 2280, 2280, 2281, 2281, 2281,
4536      2282, 2282, 2282, 2283, 2283, 2283, 2285, 2285, 2285, 2277,
4537      3882, 2280, 2290, 2290, 2290, 2281, 2291, 2291, 2291, 3883,
4538      2291, 3885, 3886, 2291, 2294, 2294, 2294, 2297, 2297, 2297,
4539      2290, 2299, 2299, 2299, 2301, 2301, 2301, 2303, 2303, 2303,
4540      3888, 3889, 2294, 3891, 2297, 2304, 2304, 2304, 3892, 2299,
4541      3893, 3895, 2301, 3898, 3899, 2303, 2305, 2305, 2305, 2281,
4542
4543      2305, 3900, 2304, 2305, 2306, 2306, 2306, 2307, 2307, 2307,
4544      2308, 2308, 2308, 3901, 2308, 3902, 3903, 2308, 2290, 3904,
4545      3905, 2306, 3906, 3907, 2307, 2309, 2309, 2309, 2310, 2310,
4546      2310, 2299, 2311, 2311, 2311, 3908, 2311, 3909, 3910, 2311,
4547      3911, 3912, 2303, 2309, 3913, 2310, 2314, 2314, 2314, 2318,
4548      2318, 2318, 2319, 2319, 2319, 2328, 2328, 2328, 3917, 2328,
4549      3919, 3921, 2328, 3922, 2314, 3923, 3924, 2318, 3925, 2319,
4550      2331, 2331, 2331, 2332, 2332, 2332, 2333, 2333, 2333, 2309,
4551      2335, 2335, 2335, 3926, 3927, 2336, 2336, 2336, 2331, 2336,
4552      2332, 3928, 2336, 3936, 2333, 3938, 3940, 2335, 3931, 3942,
4553
4554      2314, 2337, 2337, 2337, 2338, 2338, 2338, 3955, 2338, 1550,
4555      1549, 2338, 2340, 2340, 2340, 3955, 3991, 2331, 2337, 2344,
4556      2344, 2344, 2345, 2345, 2345, 3991, 2345, 1538, 1527, 2345,
4557      2340, 2346, 2346, 2346, 1522, 3931, 2344, 2352, 2352, 2352,
4558      2353, 2353, 2353, 2354, 2354, 2354, 2356, 2356, 2356, 2360,
4559      2360, 2360, 2361, 2361, 2361, 2362, 2362, 2362, 2363, 2363,
4560      2363, 2366, 2366, 2366, 2371, 2371, 2371, 2372, 2372, 2372,
4561      2374, 2374, 2374, 3943, 2340, 2375, 2375, 2375, 2376, 2376,
4562      2376, 2379, 2379, 2379, 3932, 2379, 3971, 1521, 2379, 2382,
4563      2382, 2382, 3999, 2382, 3944, 3951, 2382, 2386, 2386, 2386,
4564
4565      2388, 2388, 2388, 1520, 1516, 2363, 2389, 2389, 2389, 2390,
4566      2390, 2390, 2391, 2391, 2391, 2386, 3949, 2388, 2392, 2392,
4567      2392, 3932, 3943, 2389, 3950, 2376, 2390, 3999, 3971, 2391,
4568      2395, 2395, 2395, 2397, 2397, 2397, 2392, 2398, 2398, 2398,
4569      3951, 2398, 3952, 3944, 2398, 2399, 2399, 2399, 2395, 2386,
4570      2397, 3956, 2400, 2400, 2400, 3956, 2400, 3973, 2389, 2400,
4571      2403, 2403, 2403, 2399, 2403, 3949, 3963, 2403, 2406, 2406,
4572      2406, 3976, 2391, 3950, 2390, 2407, 2407, 2407, 2408, 2408,
4573      2408, 3965, 2408, 1499, 3978, 2408, 2406, 3952, 2406, 2678,
4574      2678, 2395, 2678, 2407, 2411, 2411, 2411, 3957, 2411, 3973,
4575
4576      2678, 2411, 2414, 2414, 2414, 3957, 2399, 2678, 2415, 2415,
4577      2415, 2407, 2415, 3976, 3963, 2415, 2418, 2418, 2418, 3959,
4578      2414, 2419, 2419, 2419, 4062, 2419, 3978, 3959, 2419, 3965,
4579      2420, 2420, 2420, 2418, 2420, 4062, 3960, 2420, 2423, 2423,
4580      2423, 2424, 2424, 2424, 3960, 2424, 2414, 3961, 2424, 3958,
4581      2430, 2430, 2430, 3958, 2430, 3961, 2423, 2430, 2433, 2433,
4582      2433, 2434, 2434, 2434, 3962, 2434, 3964, 3968, 2434, 2437,
4583      2437, 2437, 3962, 2437, 3964, 2433, 2437, 2441, 2441, 2441,
4584      2442, 2442, 2442, 2443, 2443, 2443, 2446, 2446, 2446, 3967,
4585      2446, 3966, 3975, 2446, 2441, 2451, 2451, 2451, 2442, 3966,
4586
4587      3993, 2443, 2452, 2452, 2452, 2423, 2454, 2454, 2454, 3993,
4588      2455, 2455, 2455, 2451, 2455, 3968, 3970, 2455, 1494, 4024,
4589      2452, 4060, 1493, 2454, 2460, 2460, 2460, 3967, 3975, 2461,
4590      2461, 2461, 2463, 2463, 2463, 4060, 2466, 2466, 2466, 1492,
4591      2466, 1487, 2460, 2466, 3969, 2442, 1486, 2461, 3953, 3954,
4592      2463, 2451, 3953, 3954, 2452, 2473, 2473, 2473, 2474, 2474,
4593      2474, 4024, 2474, 3979, 3970, 2474, 2475, 2475, 2475, 2476,
4594      2476, 2476, 2473, 2477, 2477, 2477, 2478, 2478, 2478, 2479,
4595      2479, 2479, 3969, 3972, 2475, 2480, 2480, 2480, 2481, 2481,
4596      2481, 2460, 2461, 2483, 2483, 2483, 2479, 2482, 2482, 2482,
4597
4598      3953, 3954, 2480, 3987, 4012, 2481, 2485, 2485, 2485, 3996,
4599      3979, 2483, 4012, 3974, 2482, 2486, 2486, 2486, 3996, 2486,
4600      4026, 3972, 2486, 2485, 2488, 2488, 2488, 2490, 2490, 2490,
4601      3983, 2475, 2493, 2493, 2493, 3977, 3987, 2480, 3981, 2494,
4602      2494, 2494, 2488, 2494, 4014, 2490, 2494, 2497, 2497, 2497,
4603      2493, 3974, 4014, 2481, 2498, 2498, 2498, 2482, 2498, 2483,
4604      4027, 2498, 4026, 4016, 2497, 2499, 2499, 2499, 3983, 2499,
4605      3980, 3977, 2499, 2502, 2502, 2502, 2503, 2503, 2503, 2504,
4606      2504, 2504, 3982, 2504, 4001, 3981, 2504, 2505, 2505, 2505,
4607      3984, 2502, 3995, 2503, 2509, 2509, 2509, 2511, 2511, 2511,
4608
4609      2512, 2512, 2512, 4027, 2512, 2505, 3980, 2512, 2523, 2523,
4610      2523, 4016, 2509, 3986, 2511, 2524, 2524, 2524, 3982, 4001,
4611      2525, 2525, 2525, 3985, 2525, 2502, 2523, 2525, 3995, 2526,
4612      2526, 2526, 2524, 2526, 3989, 3992, 2526, 3984, 4055, 2505,
4613      2529, 2529, 2529, 1473, 2529, 3998, 4055, 2529, 2533, 2533,
4614      2533, 2534, 2534, 2534, 3998, 2537, 2537, 2537, 2523, 2537,
4615      3986, 3985, 2537, 2540, 2540, 2540, 2533, 3989, 3992, 2534,
4616      2541, 2541, 2541, 2542, 2542, 2542, 2546, 2546, 2546, 2547,
4617      2547, 2547, 2549, 2549, 2549, 2550, 2550, 2550, 2552, 2552,
4618      2552, 2553, 2553, 2553, 2554, 2554, 2554, 2558, 2558, 2558,
4619
4620      2559, 2559, 2559, 2563, 2563, 2563, 2564, 2564, 2564, 2566,
4621      2566, 2566, 2567, 2567, 2567, 4000, 2533, 2572, 2572, 2572,
4622      2573, 2573, 2573, 2574, 2574, 2574, 2575, 2575, 2575, 3988,
4623      2575, 1472, 3990, 2575, 1471, 2572, 2576, 2576, 2576, 3997,
4624      2574, 2577, 2577, 2577, 2578, 2578, 2578, 2579, 2579, 2579,
4625      2580, 2580, 2580, 2576, 2581, 2581, 2581, 4015, 2577, 4000,
4626      4004, 2578, 2582, 2582, 2582, 3994, 2582, 3988, 2580, 2582,
4627      3990, 2581, 2585, 2585, 2585, 3997, 2586, 2586, 2586, 2587,
4628      2587, 2587, 2588, 2588, 2588, 2589, 2589, 2589, 4018, 2589,
4629      2585, 4015, 2589, 2577, 2586, 4006, 2578, 2587, 3994, 4002,
4630
4631      2588, 2592, 2592, 2592, 2596, 2596, 2596, 4004, 2596, 1470,
4632      1469, 2596, 1468, 2586, 2599, 2599, 2599, 2580, 4003, 2592,
4633      2602, 2602, 2602, 4005, 2585, 2603, 2603, 2603, 1467, 2603,
4634      4047, 2599, 2603, 2604, 2604, 2604, 4018, 2602, 2605, 2605,
4635      2605, 2587, 4006, 4002, 2588, 2611, 2611, 2611, 2612, 2612,
4636      2612, 2604, 2613, 2613, 2613, 4008, 2605, 2614, 2614, 2614,
4637      4017, 2614, 4003, 2611, 2614, 4047, 2612, 4005, 4010, 2613,
4638      2617, 2617, 2617, 2618, 2618, 2618, 2619, 2619, 2619, 2620,
4639      2620, 2620, 2621, 2621, 2621, 4040, 4019, 2617, 4021, 4011,
4640      2618, 4008, 4049, 2619, 4017, 4019, 2620, 4021, 4007, 2613,
4641
4642      2621, 2622, 2622, 2622, 4010, 4029, 2611, 2623, 2623, 2623,
4643      2628, 2628, 2628, 2629, 2629, 2629, 1466, 2629, 4040, 2622,
4644      2629, 2632, 2632, 2632, 2623, 4011, 2617, 4049, 2619, 2633,
4645      2633, 2633, 2634, 2634, 2634, 2618, 2636, 2636, 2636, 2632,
4646      2635, 2635, 2635, 2621, 2635, 4007, 4009, 2635, 4029, 2634,
4647      2637, 2637, 2637, 2636, 2638, 2638, 2638, 2639, 2639, 2639,
4648      2640, 2640, 2640, 2644, 2644, 2644, 2622, 2637, 2645, 2645,
4649      2645, 2638, 2641, 2641, 2641, 2639, 2641, 2640, 4039, 2641,
4650      2644, 2632, 2649, 2649, 2649, 4020, 2645, 2651, 2651, 2651,
4651      4041, 2651, 4013, 4009, 2651, 2654, 2654, 2654, 4022, 4066,
4652
4653      2649, 4023, 2637, 2655, 2655, 2655, 2638, 2655, 4039, 4042,
4654      2655, 1456, 4031, 2654, 2658, 2658, 2658, 2662, 2662, 2662,
4655      4041, 2662, 4025, 4020, 2662, 2675, 2675, 2675, 4013, 4043,
4656      2644, 4048, 2658, 2676, 2676, 2676, 4022, 2676, 4043, 4023,
4657      2676, 4066, 4042, 2675, 2680, 2680, 2680, 2681, 2681, 2681,
4658      2694, 2694, 2694, 2695, 2695, 2695, 2699, 2699, 2699, 4031,
4659      4025, 2658, 2680, 4050, 4048, 2681, 2700, 2700, 2700, 2702,
4660      2702, 2702, 2705, 2705, 2705, 2706, 2706, 2706, 2710, 2710,
4661      2710, 2713, 2713, 2713, 2715, 2715, 2715, 2675, 2717, 2717,
4662      2717, 2718, 2718, 2718, 4102, 2718, 4050, 1455, 2718, 2721,
4663
4664      2721, 2721, 2715, 4028, 4030, 2722, 2722, 2722, 4102, 2722,
4665      2681, 2680, 2722, 2723, 2723, 2723, 2721, 2724, 2724, 2724,
4666      2725, 2725, 2725, 2726, 2726, 2726, 2727, 2727, 2727, 4035,
4667      2723, 2728, 2728, 2728, 2724, 2728, 4032, 4036, 2728, 4028,
4668      4030, 2726, 4037, 2727, 2729, 2729, 2729, 2730, 2730, 2730,
4669      2731, 2731, 2731, 2732, 2732, 2732, 2733, 2733, 2733, 2739,
4670      2739, 2739, 2729, 1454, 4044, 2730, 1449, 4035, 2731, 1448,
4671      4033, 2732, 4034, 4044, 2733, 4036, 2739, 2740, 2740, 2740,
4672      4037, 2740, 4057, 4032, 2740, 2743, 2743, 2743, 1447, 2743,
4673      4057, 4038, 2743, 2746, 2746, 2746, 2750, 2750, 2750, 2751,
4674
4675      2751, 2751, 2752, 2752, 2752, 2753, 2753, 2753, 2755, 2755,
4676      2755, 2746, 2730, 2750, 2732, 4045, 2751, 4033, 2731, 4034,
4677      2752, 4052, 4046, 2753, 4045, 2755, 2756, 2756, 2756, 4038,
4678      2756, 4046, 4056, 2756, 2760, 2760, 2760, 2761, 2761, 2761,
4679      2762, 2762, 2762, 1446, 2762, 1431, 1430, 2762, 2763, 2763,
4680      2763, 2760, 4051, 4054, 2761, 2764, 2764, 2764, 4058, 1413,
4681      2752, 2765, 2765, 2765, 4053, 4056, 2763, 2766, 2766, 2766,
4682      4052, 2766, 1412, 2764, 2766, 2769, 2769, 2769, 2765, 2770,
4683      2770, 2770, 2771, 2771, 2771, 2772, 2772, 2772, 2776, 2776,
4684      2776, 4058, 2769, 2773, 2773, 2773, 2770, 2773, 4103, 4051,
4685
4686      2773, 4059, 4054, 2772, 4063, 2776, 2777, 2777, 2777, 4103,
4687      2777, 4053, 1405, 2777, 2778, 2778, 2778, 2764, 2779, 2779,
4688      2779, 2780, 2780, 2780, 2782, 2782, 2782, 2787, 2787, 2787,
4689      4065, 2778, 2789, 2789, 2789, 2779, 2783, 2783, 2783, 2780,
4690      2783, 2782, 4063, 2783, 4061, 2787, 2802, 2802, 2802, 4059,
4691      2789, 2814, 2814, 2814, 2833, 2833, 2833, 2834, 2834, 2834,
4692      2837, 2837, 2837, 1401, 2802, 2841, 2841, 2841, 4065, 2814,
4693      2844, 2844, 2844, 2845, 2845, 2845, 2846, 2846, 2846, 4069,
4694      2846, 4074, 1396, 2846, 2849, 2849, 2849, 2850, 2850, 2850,
4695      2845, 2850, 4061, 4094, 2850, 2851, 2851, 2851, 1395, 2789,
4696
4697      4095, 2849, 4094, 2814, 2852, 2852, 2852, 2802, 2852, 4095,
4698      4070, 2852, 2851, 2853, 2853, 2853, 2855, 2855, 2855, 4074,
4699      2855, 4069, 1390, 2855, 2858, 2858, 2858, 2860, 2860, 2860,
4700      4075, 2853, 2861, 2861, 2861, 2862, 2862, 2862, 2865, 2865,
4701      2865, 4076, 2858, 1389, 4071, 2860, 4070, 2867, 2867, 2867,
4702      2861, 2867, 1388, 2862, 2867, 2865, 2879, 2879, 2879, 2880,
4703      2880, 2880, 2881, 2881, 2881, 4072, 2881, 4073, 4075, 2881,
4704      2924, 2924, 2924, 2879, 4076, 4080, 2880, 2882, 2882, 2882,
4705      4071, 2883, 2883, 2883, 4077, 2883, 4082, 2862, 2883, 2860,
4706      2884, 2884, 2884, 4078, 2882, 4081, 2885, 2885, 2885, 2861,
4707
4708      2885, 4078, 4086, 2885, 2891, 2891, 2891, 4079, 2884, 2892,
4709      2892, 2892, 4072, 2892, 4073, 4079, 2892, 4077, 2893, 2893,
4710      2893, 2891, 2893, 4080, 4082, 2893, 2896, 2896, 2896, 2898,
4711      2898, 2898, 2899, 2899, 2899, 1386, 2899, 4084, 4086, 2899,
4712      2903, 2903, 2903, 4081, 2896, 4085, 4098, 2898, 2904, 2904,
4713      2904, 2905, 2905, 2905, 1385, 2905, 4083, 2903, 2905, 2906,
4714      2906, 2906, 2907, 2907, 2907, 2904, 2907, 4090, 4088, 2907,
4715      2908, 2908, 2908, 2910, 2910, 2910, 2906, 2910, 4091, 4084,
4716      2910, 2913, 2913, 2913, 2915, 2915, 2915, 4085, 2908, 2914,
4717      2914, 2914, 2898, 2914, 4083, 4098, 2914, 4087, 2913, 1380,
4718
4719      1377, 2915, 2916, 2916, 2916, 4090, 2916, 1376, 4089, 2916,
4720      2917, 2917, 2917, 1373, 2917, 4088, 4091, 2917, 2921, 2921,
4721      2921, 2922, 2922, 2922, 2923, 2923, 2923, 2925, 2925, 2925,
4722      2936, 2936, 2936, 4087, 4092, 2921, 4093, 4096, 2922, 2949,
4723      2949, 2949, 2923, 1372, 2925, 2950, 2950, 2950, 2936, 2967,
4724      2967, 2967, 2969, 2969, 2969, 4089, 2949, 2973, 2973, 2973,
4725      2977, 2977, 2977, 2950, 2978, 2978, 2978, 4092, 2978, 4093,
4726      4096, 2978, 2979, 2979, 2979, 1371, 2979, 2977, 1370, 2979,
4727      2982, 2982, 2982, 4097, 2982, 4100, 4101, 2982, 2985, 2985,
4728      2985, 2936, 2986, 2986, 2986, 1369, 2923, 2987, 2987, 2987,
4729
4730      2989, 2989, 2989, 2990, 2990, 2990, 2985, 2991, 2991, 2991,
4731      2986, 2991, 1368, 1367, 2991, 2987, 4097, 2989, 4100, 4101,
4732      2990, 2992, 2992, 2992, 3004, 3004, 3004, 3005, 3005, 3005,
4733      1366, 3005, 4099, 2987, 3005, 3006, 3006, 3006, 2992, 3006,
4734      1365, 3004, 3006, 1364, 2986, 3009, 3009, 3009, 1363, 3009,
4735      1362, 1361, 3009, 3012, 3012, 3012, 2985, 3015, 3015, 3015,
4736      3017, 3017, 3017, 1360, 3017, 1359, 1358, 3017, 3026, 3026,
4737      3026, 3012, 1357, 1356, 3015, 3028, 3028, 3028, 3029, 3029,
4738      3029, 4099, 3029, 1355, 1352, 3029, 3026, 3030, 3030, 3030,
4739      1351, 3030, 3028, 1350, 3030, 3033, 3033, 3033, 1349, 3033,
4740
4741      1348, 1346, 3033, 3036, 3036, 3036, 1345, 3036, 1344, 1343,
4742      3036, 3039, 3039, 3039, 1342, 3039, 1341, 1340, 3039, 3049,
4743      3049, 3049, 3050, 3050, 3050, 1339, 3050, 1338, 1337, 3050,
4744      3051, 3051, 3051, 3052, 3052, 3052, 3049, 3052, 1336, 1335,
4745      3052, 3053, 3053, 3053, 3054, 3054, 3054, 3051, 3055, 3055,
4746      3055, 3056, 3056, 3056, 1334, 3056, 1333, 1332, 3056, 3053,
4747      3067, 3067, 3067, 1326, 1322, 3055, 3080, 3080, 3080, 3081,
4748      3081, 3081, 1319, 3081, 1318, 1317, 3081, 1315, 3067, 3082,
4749      3082, 3082, 1311, 3080, 3086, 3086, 3086, 3100, 3100, 3100,
4750      3102, 3102, 3102, 3105, 3105, 3105, 1302, 3082, 3107, 3107,
4751
4752      3107, 3086, 3086, 1297, 3053, 1296, 3109, 3109, 3109, 1295,
4753      3109, 1291, 3067, 3109, 3116, 3116, 3116, 3117, 3117, 3117,
4754      3118, 3118, 3118, 3120, 3120, 3120, 3121, 3121, 3121, 1290,
4755      3121, 1287, 3116, 3121, 1283, 3117, 1282, 1279, 3118, 1276,
4756      3120, 3122, 3122, 3122, 1273, 3122, 1272, 1267, 3122, 3125,
4757      3125, 3125, 3126, 3126, 3126, 1259, 3126, 1258, 1257, 3126,
4758      3138, 3138, 3138, 1255, 3138, 1251, 3125, 3138, 3142, 3142,
4759      3142, 3143, 3143, 3143, 1248, 3143, 1243, 1242, 3143, 1241,
4760      1240, 3116, 3118, 1239, 1238, 3142, 3151, 3151, 3151, 3154,
4761      3154, 3154, 1237, 3154, 1236, 1235, 3154, 3169, 3169, 3169,
4762
4763      1232, 3170, 3170, 3170, 3151, 3170, 1231, 1228, 3170, 3173,
4764      3173, 3173, 1227, 3173, 3169, 1223, 3173, 3176, 3176, 3176,
4765      3177, 3177, 3177, 1221, 3177, 1218, 1217, 3177, 3188, 3188,
4766      3188, 1214, 3201, 3201, 3201, 3176, 3201, 1207, 1204, 3201,
4767      3205, 3205, 3205, 3206, 3206, 3206, 3188, 3207, 3207, 3207,
4768      1203, 3207, 1202, 1199, 3207, 1196, 1189, 3205, 3205, 1185,
4769      3206, 3206, 3220, 3220, 3220, 3207, 3222, 3222, 3222, 3176,
4770      3223, 3223, 3223, 3224, 3224, 3224, 1184, 1183, 3188, 3226,
4771      3226, 3226, 3227, 3227, 3227, 3240, 3240, 3240, 3241, 3241,
4772      3241, 3243, 3243, 3243, 3245, 3245, 3245, 1180, 3245, 1179,
4773
4774      1178, 3245, 1171, 3240, 1170, 1169, 3241, 1168, 1167, 3243,
4775      3248, 3248, 3248, 1166, 3248, 1165, 1164, 3248, 3251, 3251,
4776      3251, 3262, 3262, 3262, 3263, 3263, 3263, 1163, 3263, 1159,
4777      1128, 3263, 3266, 3266, 3266, 3251, 1125, 3240, 3262, 3286,
4778      3286, 3286, 1122, 3287, 3287, 3287, 1121, 3287, 1118, 3266,
4779      3287, 3296, 3296, 3296, 1117, 1116, 3286, 1115, 1114, 3243,
4780      3305, 3305, 3305, 3327, 3327, 3327, 3328, 3328, 3328, 3296,
4781      3328, 1113, 1106, 3328, 1105, 3329, 3329, 3329, 3305, 3329,
4782      3327, 3327, 3329, 1104, 3328, 3340, 3340, 3340, 3342, 3342,
4783      3342, 1103, 1101, 3329, 3343, 3343, 3343, 3345, 3345, 3345,
4784
4785      3358, 3358, 3358, 3359, 3359, 3359, 3361, 3361, 3361, 3362,
4786      3362, 3362, 1100, 3362, 1098, 1097, 3362, 1096, 3358, 1095,
4787      1094, 3359, 1093, 3361, 3363, 3363, 3363, 3305, 3330, 3330,
4788      3330, 3330, 3330, 3330, 3330, 3330, 3330, 1092, 1091, 3330,
4789      1090, 3363, 1089, 1088, 3330, 3330, 3330, 3330, 3330, 3373,
4790      3373, 3373, 3374, 3374, 3374, 1087, 3374, 1085, 1084, 3374,
4791      3376, 3376, 3376, 1083, 3376, 1082, 3373, 3376, 1081, 1080,
4792      3359, 3375, 3375, 3375, 3330, 3330, 3331, 3331, 3331, 3331,
4793      3331, 3331, 3331, 3331, 3331, 1079, 1078, 3331, 3375, 3405,
4794      3405, 3405, 3331, 3331, 3331, 3331, 3331, 3394, 3394, 3394,
4795
4796      1077, 3394, 1075, 1074, 3394, 1073, 1072, 3405, 3413, 3413,
4797      3413, 3431, 3431, 3431, 1071, 3431, 1070, 1069, 3431, 3442,
4798      3442, 3442, 3331, 3331, 1068, 1067, 3413, 1066, 1062, 3431,
4799      3434, 3434, 3434, 3434, 3434, 3434, 3434, 3434, 3434, 1058,
4800      1057, 3434, 3443, 3443, 3443, 1056, 3434, 3434, 3434, 3434,
4801      3434, 3456, 3456, 3456, 3458, 3458, 3458, 3460, 3460, 3460,
4802      1055, 3460, 1054, 1050, 3460, 3544, 3544, 3544, 1048, 3456,
4803      1047, 1046, 3458, 3463, 3463, 3463, 3434, 3434, 3435, 3435,
4804      3435, 3435, 3435, 3435, 3435, 3435, 3435, 1045, 1044, 3435,
4805      3463, 3545, 3545, 3545, 3435, 3435, 3435, 3435, 3435, 1043,
4806
4807      3464, 3464, 3464, 1042, 3464, 1038, 3458, 3464, 3472, 3472,
4808      3472, 1037, 3472, 1033, 1032, 3472, 3475, 3475, 3475, 1031,
4809      3475, 1030, 1027, 3475, 3435, 3435, 3509, 3509, 3509, 3531,
4810      3531, 3531, 3552, 3552, 3552, 3553, 3553, 3553, 3558, 3558,
4811      3558, 1026, 3558, 1024, 3509, 3558, 1022, 3531, 3531, 1019,
4812      3552, 1018, 3553, 3565, 3565, 3565, 3570, 3570, 3570, 3601,
4813      3601, 3601, 3605, 3605, 3605, 3618, 3618, 3618, 1017, 1016,
4814      3565, 1014, 1011, 3570, 3620, 3620, 3620, 3601, 1010, 1008,
4815      3605, 1007, 1004, 3618, 1002, 3621, 3621, 3621,  999, 3621,
4816       998, 3620, 3621, 3634, 3634, 3634, 3635, 3635, 3635,  997,
4817
4818      3635,  996,  993, 3635, 3644, 3644, 3644, 3662, 3662, 3662,
4819      3634, 3645, 3645, 3645, 3605, 3645,  992,  991, 3645,  990,
4820       989, 3644, 3674, 3674, 3674, 3662, 3674,  988,  987, 3674,
4821      3689, 3689, 3689,  985, 3689,  982,  981, 3689, 3700, 3700,
4822      3700,  977, 3700,  976, 3662, 3700, 3897, 3897, 3897, 3914,
4823      3914, 3914,  975, 3914,  974,  973, 3914, 4064, 4064, 4064,
4824      4067, 4067, 4067,  972, 3897,  963,  962, 3914, 4104, 4104,
4825      4104, 4105, 4105, 4105,  959, 4064,  958,  957, 4067,  956,
4826       955,  953,  952,  951,  948,  947, 4104,  946,  943, 4105,
4827      4108, 4108, 4108, 4108, 4108, 4108, 4108, 4108, 4108, 4109,
4828
4829      4109, 4109, 4109, 4109, 4109, 4109, 4109, 4109, 4110, 4110,
4830      4110, 4110, 4110, 4110, 4110, 4110, 4110, 4111, 4111, 4111,
4831      4111, 4111, 4111, 4111, 4111, 4111, 4112, 4112, 4112, 4112,
4832      4112, 4112, 4112, 4112, 4112, 4113, 4113, 4113, 4113, 4113,
4833      4113, 4113, 4113, 4113, 4114, 4114, 4114, 4114, 4114, 4114,
4834      4114, 4114, 4114, 4115, 4115, 4115, 4115, 4115, 4115, 4115,
4835      4115, 4115, 4116, 4116, 4116, 4116, 4116, 4116, 4116, 4116,
4836      4116, 4117, 4117, 4117, 4117, 4117, 4117, 4117, 4117, 4117,
4837      4118, 4118, 4118, 4118, 4118, 4118, 4118, 4118, 4118, 4119,
4838      4119, 4119, 4119, 4119, 4119, 4119, 4119, 4119, 4120, 4120,
4839
4840      4120, 4120, 4120, 4120, 4120, 4120, 4120, 4121, 4121, 4121,
4841      4121, 4121, 4121, 4121, 4121, 4121, 4122, 4122, 4122, 4122,
4842      4122, 4122, 4122, 4122, 4122, 4123, 4123, 4123, 4123, 4123,
4843      4123, 4123, 4123, 4123, 4124, 4124, 4124, 4124, 4124, 4124,
4844      4124, 4124, 4124, 4125, 4125, 4125, 4125, 4125, 4125, 4125,
4845      4125, 4125, 4126, 4126, 4126, 4126, 4126, 4126, 4126, 4126,
4846      4126, 4127, 4127, 4127, 4127, 4127, 4127, 4127, 4127, 4127,
4847      4128, 4128, 4128, 4128, 4128, 4128, 4128, 4128, 4128, 4129,
4848      4129, 4129, 4129, 4129, 4129, 4129, 4129, 4129, 4130, 4130,
4849      4130, 4130, 4130, 4130, 4130, 4130, 4130, 4131, 4131, 4131,
4850
4851      4131, 4131, 4131, 4131, 4131, 4131, 4132, 4132, 4132, 4132,
4852      4132, 4132, 4132, 4132, 4132, 4133, 4133, 4133, 4133, 4133,
4853      4133, 4133, 4133, 4133, 4134, 4134, 4134, 4134, 4134, 4134,
4854      4134, 4134, 4134, 4135, 4135, 4135, 4135, 4135, 4135, 4135,
4855      4135, 4135, 4136, 4136, 4136, 4136, 4136, 4136, 4136, 4136,
4856      4136, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
4857      4138, 4138, 4138, 4138, 4138, 4138, 4138, 4138, 4138, 4139,
4858      4139, 4139, 4139, 4139, 4139, 4139, 4139, 4139, 4140, 4140,
4859      4140, 4140, 4140, 4140, 4140, 4140, 4140, 4141, 4141, 4141,
4860      4141, 4141, 4141, 4141, 4141, 4141, 4142, 4142, 4142, 4142,
4861
4862      4142, 4142, 4142, 4142, 4142, 4143, 4143, 4143, 4143, 4143,
4863      4143, 4143, 4143, 4143, 4144, 4144, 4144, 4144, 4144, 4144,
4864      4144, 4144, 4144, 4145, 4145, 4145, 4145, 4145, 4145, 4145,
4865      4145, 4145, 4146, 4146, 4146, 4146, 4146, 4146, 4146, 4146,
4866      4146, 4147, 4147, 4147, 4147, 4147, 4147, 4147, 4147, 4147,
4867      4148, 4148, 4148, 4148, 4148, 4148, 4148, 4148, 4148, 4149,
4868      4149, 4149, 4149, 4149, 4149, 4149, 4149, 4149, 4150, 4150,
4869      4150, 4150, 4150, 4150, 4150, 4150, 4150, 4151, 4151, 4151,
4870      4151, 4151, 4151, 4151, 4151, 4151, 4152, 4152, 4152, 4152,
4871      4152, 4152, 4152, 4152, 4152, 4153, 4153, 4153, 4153, 4153,
4872
4873      4153, 4153, 4153, 4153, 4154, 4154, 4154, 4154, 4154, 4154,
4874      4154, 4154, 4154, 4155, 4155, 4155, 4155, 4155, 4155, 4155,
4875      4155, 4155, 4156, 4156, 4156, 4156, 4156, 4156, 4156, 4156,
4876      4156, 4157, 4157, 4157, 4157, 4157, 4157, 4157, 4157, 4157,
4877      4158, 4158, 4158, 4158, 4158, 4158, 4158, 4158, 4158, 4159,
4878      4159, 4159, 4159, 4159, 4159, 4159, 4159, 4159, 4160, 4160,
4879      4160, 4160, 4160, 4160, 4160, 4160, 4160, 4161, 4161, 4161,
4880      4161, 4161, 4161, 4161, 4161, 4161, 4162, 4162, 4162, 4162,
4881      4162, 4162, 4162, 4162, 4162, 4163, 4163, 4163, 4163, 4163,
4882      4163, 4163, 4163, 4163, 4164, 4164, 4164, 4164, 4164, 4164,
4883
4884      4164, 4164, 4164, 4165, 4165, 4165, 4165, 4165, 4165, 4165,
4885      4165, 4165, 4166, 4166, 4166, 4166, 4166, 4166, 4166, 4166,
4886      4166, 4167, 4167, 4167, 4167, 4167, 4167, 4167, 4167, 4167,
4887      4168, 4168, 4168, 4168, 4168, 4168, 4168, 4168, 4168, 4169,
4888      4169, 4169, 4169, 4169, 4169, 4169, 4169, 4169, 4170, 4170,
4889      4170, 4170, 4170, 4170, 4170, 4170, 4170, 4171, 4171, 4171,
4890      4171, 4171, 4171, 4171, 4171, 4171, 4172, 4172, 4172, 4172,
4891      4172, 4172, 4172, 4172, 4172, 4173, 4173, 4173, 4173, 4173,
4892      4173, 4173, 4173, 4173, 4174, 4174, 4174, 4174, 4174, 4174,
4893      4174, 4174, 4174, 4175, 4175, 4175, 4175, 4175, 4175, 4175,
4894
4895      4175, 4175, 4176, 4176, 4176, 4176, 4176, 4176, 4176, 4176,
4896      4176, 4177, 4177, 4177,  942,  938,  936, 4177, 4178, 4178,
4897      4178,  933,  932,  931, 4178, 4179, 4179, 4179,  930,  928,
4898       925, 4179, 4180, 4180, 4180,  924,  921,  918, 4180, 4181,
4899      4181, 4181,  915,  914,  913, 4181, 4182, 4182, 4182,  912,
4900       911,  908, 4182, 4183, 4183, 4183,  905,  901,  900, 4183,
4901      4184, 4184, 4184,  899,  898,  897, 4184, 4185, 4185, 4185,
4902       896,  895,  894, 4185, 4186, 4186, 4186,  893,  892,  891,
4903      4186, 4187, 4187, 4187,  889,  887,  884, 4187, 4188, 4188,
4904      4188,  883,  882,  881, 4188, 4189, 4189, 4189,  880,  879,
4905
4906       874, 4189, 4190, 4190, 4190,  873,  872,  871, 4190, 4191,
4907      4191, 4191,  868,  867,  866, 4191, 4192, 4192, 4192,  863,
4908       862,  861, 4192, 4193, 4193, 4193,  860,  857,  856, 4193,
4909      4194, 4194, 4194,  854,  851,  850, 4194, 4195, 4195, 4195,
4910       846,  845,  844, 4195, 4196, 4196, 4196,  843,  842,  841,
4911      4196, 4197, 4197, 4197,  838,  837,  836, 4197, 4198, 4198,
4912      4198,  835,  834,  833, 4198, 4199, 4199, 4199,  824,  822,
4913       821, 4199, 4200, 4200, 4200,  818,  817,  816, 4200, 4201,
4914      4201, 4201,  815,  812,  811, 4201, 4202, 4202, 4202,  810,
4915       807,  805, 4202, 4203, 4203, 4203,  804,  803,  800, 4203,
4916
4917      4204, 4204, 4204,  799,  798,  797, 4204, 4205, 4205, 4205,
4918       793,  792,  791, 4205, 4206, 4206, 4206,  787,  786,  785,
4919      4206, 4207, 4207, 4207,  784,  778,  777, 4207, 4208, 4208,
4920      4208, 4208, 4208, 4208, 4208,  775, 4208, 4209, 4209, 4209,
4921       767,  766,  762, 4209, 4210,  754,  752,  748, 4210, 4211,
4922      4211, 4211,  747,  743,  737, 4211, 4212,  736,  735,  731,
4923      4212, 4213, 4213, 4213,  728,  726,  725, 4213, 4214,  724,
4924       720,  716, 4214, 4215, 4215, 4215,  712,  711,  710, 4215,
4925      4216,  709,  705,  701, 4216, 4217, 4217, 4217,  698,  697,
4926       696, 4217, 4218,  695,  691,  685, 4218, 4219, 4219, 4219,
4927
4928       684,  680,  672, 4219, 4220,  668,  661,  659, 4220, 4221,
4929      4221, 4221,  658,  654,  648, 4221, 4222,  647,  643,  636,
4930      4222, 4223, 4223, 4223,  635,  634,  633, 4223, 4224,  632,
4931       628,  617, 4224, 4225, 4225, 4225,  613,  605,  604, 4225,
4932      4226,  603,  602,  601, 4226, 4227, 4227, 4227,  597,  591,
4933       590, 4227, 4228,  586,  580,  579, 4228, 4229, 4229, 4229,
4934       575,  569,  568, 4229, 4230,  564,  560,  556, 4230, 4231,
4935      4231, 4231,  555,  554,  550, 4231, 4232,  542,  538,  532,
4936      4232, 4233, 4233, 4233,  531,  530,  526, 4233, 4234,  522,
4937       517,  516, 4234, 4235, 4235, 4235,  515,  514,  510, 4235,
4938
4939      4236,  506,  503,  499, 4236, 4237, 4237, 4237,  495,  492,
4940       489, 4237, 4238,  487,  486,  481, 4238, 4239, 4239, 4239,
4941       474,  473,  472, 4239, 4240,  471,  470,  466, 4240, 4241,
4942      4241, 4241,  459,  458,  457, 4241, 4242,  453,  446,  445,
4943      4242, 4243, 4243, 4243,  441,  434,  433, 4243, 4244,  432,
4944       428,  422, 4244, 4245, 4245, 4245,  421,  420,  416, 4245,
4945      4246,  410,  406,  402, 4246, 4247, 4247, 4247,  398,  397,
4946       396, 4247, 4248,  395,  394,  390, 4248, 4249, 4249, 4249,
4947       381,  380,  376, 4249, 4250,  372,  367,  361, 4250, 4251,
4948      4251, 4251,  357,  356,  352, 4251, 4252,  349,  348,  347,
4949
4950      4252, 4253, 4253, 4253,  341,  340,  338, 4253, 4254,  335,
4951       323,    0, 4254, 4255, 4255, 4255,    0,    0,    0, 4255,
4952      4256,    0,    0,    0, 4256, 4257, 4257, 4257,    0,    0,
4953         0, 4257, 4258,    0,    0,    0, 4258, 4259, 4259, 4259,
4954         0,    0,    0, 4259, 4260,    0,    0,    0, 4260, 4261,
4955      4261, 4261,    0,    0,    0, 4261, 4262,    0,    0,    0,
4956      4262, 4263, 4263, 4263,    0,    0,    0, 4263, 4264,    0,
4957         0,    0, 4264, 4265, 4265, 4265,    0,    0,    0, 4265,
4958      4266,    0,    0,    0, 4266, 4267, 4267, 4267,    0,    0,
4959         0, 4267, 4268,    0,    0,    0, 4268, 4269, 4269, 4269,
4960
4961         0,    0,    0, 4269, 4270,    0,    0,    0, 4270, 4271,
4962      4271, 4271, 4271, 4271, 4271, 4271, 4271, 4271, 4272,    0,
4963         0,    0,    0, 4272, 4273, 4273, 4273,    0,    0,    0,
4964      4273, 4274, 4274, 4274, 4274,    0,    0, 4274, 4274, 4275,
4965      4275, 4275, 4275,    0, 4275,    0, 4275, 4276, 4276, 4276,
4966      4276,    0,    0, 4276, 4276, 4277, 4277, 4277,    0,    0,
4967         0, 4277, 4278, 4278, 4278, 4278,    0,    0, 4278, 4278,
4968      4279, 4279, 4279,    0,    0,    0, 4279, 4280, 4280, 4280,
4969      4280,    0,    0, 4280, 4280, 4281, 4281, 4281,    0,    0,
4970         0, 4281, 4282, 4282, 4282, 4282,    0,    0, 4282, 4282,
4971
4972      4283, 4283, 4283, 4283,    0, 4283,    0, 4283, 4284, 4284,
4973      4284, 4284,    0,    0, 4284, 4284, 4285, 4285, 4285, 4285,
4974         0, 4285,    0, 4285, 4286, 4286, 4286, 4286,    0,    0,
4975      4286, 4286, 4287, 4287, 4287, 4287,    0, 4287,    0, 4287,
4976      4288, 4288, 4288, 4288,    0,    0, 4288, 4288, 4289, 4289,
4977      4289, 4289,    0, 4289,    0, 4289, 4290, 4290, 4290, 4290,
4978         0,    0, 4290, 4290, 4291, 4291, 4291,    0,    0,    0,
4979      4291, 4292, 4292, 4292, 4292,    0,    0, 4292, 4292, 4293,
4980      4293, 4293, 4293,    0,    0, 4293, 4293, 4294, 4294, 4294,
4981         0,    0,    0, 4294, 4295, 4295, 4295, 4295,    0,    0,
4982
4983      4295, 4295, 4296, 4296, 4296,    0,    0,    0, 4296, 4297,
4984      4297, 4297, 4297,    0,    0, 4297, 4297, 4298, 4298, 4298,
4985         0,    0,    0, 4298, 4299, 4299, 4299, 4299,    0,    0,
4986      4299, 4299, 4300, 4300, 4300,    0,    0,    0, 4300, 4301,
4987      4301, 4301, 4301,    0,    0, 4301, 4301, 4302, 4302, 4302,
4988         0,    0,    0, 4302, 4303, 4303, 4303, 4303,    0,    0,
4989      4303, 4303, 4304, 4304, 4304,    0,    0,    0, 4304, 4305,
4990      4305, 4305, 4305,    0,    0, 4305, 4305, 4306, 4306, 4306,
4991         0,    0,    0, 4306, 4307, 4307, 4307, 4307,    0,    0,
4992      4307, 4307, 4308, 4308, 4308,    0,    0,    0, 4308, 4309,
4993
4994      4309, 4309, 4309,    0,    0, 4309, 4309, 4310, 4310, 4310,
4995         0,    0,    0, 4310, 4311, 4311, 4311, 4311,    0,    0,
4996      4311, 4311, 4312, 4312, 4312,    0,    0,    0, 4312, 4313,
4997      4313, 4313, 4313,    0,    0, 4313, 4313, 4314, 4314, 4314,
4998         0,    0,    0, 4314, 4315, 4315, 4315, 4315,    0,    0,
4999      4315, 4315, 4316, 4316, 4316,    0,    0,    0, 4316, 4317,
5000      4317, 4317, 4317,    0,    0, 4317, 4317, 4318, 4318, 4318,
5001      4318,    0, 4318,    0, 4318, 4319, 4319, 4319, 4319,    0,
5002         0, 4319, 4319, 4320, 4320, 4320,    0,    0,    0, 4320,
5003      4321, 4321, 4321, 4321,    0,    0, 4321, 4321, 4322, 4322,
5004
5005      4322,    0,    0,    0, 4322, 4323, 4323, 4323, 4323,    0,
5006         0, 4323, 4323, 4324, 4324, 4324,    0,    0,    0, 4324,
5007      4325, 4325, 4325, 4325,    0,    0, 4325, 4325, 4326, 4326,
5008      4326,    0,    0,    0, 4326, 4327, 4327, 4327, 4327,    0,
5009         0, 4327, 4327, 4328, 4328, 4328,    0,    0,    0, 4328,
5010      4329, 4329, 4329, 4329,    0,    0, 4329, 4329, 4330, 4330,
5011      4330,    0,    0,    0, 4330, 4331, 4331, 4331, 4331,    0,
5012         0, 4331, 4331, 4332, 4332, 4332, 4332,    0, 4332,    0,
5013      4332, 4333, 4333, 4333, 4333,    0,    0, 4333, 4333, 4334,
5014      4334, 4334, 4334, 4334, 4334, 4334, 4334, 4334, 4335,    0,
5015
5016      4335,    0,    0, 4335, 4336, 4336, 4336,    0,    0,    0,
5017      4336, 4337, 4337, 4337, 4337,    0,    0, 4337, 4337, 4338,
5018      4338, 4338,    0,    0,    0, 4338, 4339, 4339, 4339, 4339,
5019         0,    0, 4339, 4339, 4340, 4340, 4340,    0,    0,    0,
5020      4340, 4341, 4341, 4341, 4341,    0,    0, 4341, 4341, 4342,
5021      4342, 4342,    0,    0,    0, 4342, 4343, 4343, 4343, 4343,
5022         0,    0, 4343, 4343, 4344, 4344, 4344,    0,    0,    0,
5023      4344, 4345, 4345, 4345, 4345,    0,    0, 4345, 4345, 4346,
5024      4346, 4346,    0,    0,    0, 4346, 4347, 4347, 4347, 4347,
5025         0,    0, 4347, 4347, 4348, 4348, 4348, 4348,    0,    0,
5026
5027      4348, 4348, 4349, 4349, 4349,    0,    0,    0, 4349, 4350,
5028      4350, 4350, 4350,    0,    0, 4350, 4350, 4351, 4351, 4351,
5029         0,    0,    0, 4351, 4352, 4352, 4352, 4352,    0,    0,
5030      4352, 4352, 4353, 4353, 4353,    0,    0,    0, 4353, 4354,
5031      4354, 4354, 4354,    0,    0, 4354, 4354, 4355, 4355, 4355,
5032      4355,    0,    0, 4355, 4355, 4356, 4356, 4356,    0,    0,
5033         0, 4356, 4357, 4357, 4357, 4357,    0,    0, 4357, 4357,
5034      4358, 4358, 4358, 4358,    0, 4358,    0, 4358, 4359, 4359,
5035      4359, 4359,    0,    0, 4359, 4359, 4360, 4360, 4360, 4360,
5036         0, 4360,    0, 4360, 4361, 4361, 4361, 4361,    0,    0,
5037
5038      4361, 4361, 4362, 4362, 4362,    0,    0,    0, 4362, 4363,
5039      4363, 4363, 4363,    0,    0, 4363, 4363, 4364, 4364, 4364,
5040         0,    0,    0, 4364, 4365, 4365, 4365, 4365,    0,    0,
5041      4365, 4365, 4366, 4366, 4366,    0,    0,    0, 4366, 4367,
5042      4367, 4367, 4367,    0,    0, 4367, 4367, 4368, 4368, 4368,
5043      4368,    0, 4368,    0, 4368, 4369, 4369, 4369, 4369,    0,
5044         0, 4369, 4369, 4370, 4370, 4370,    0,    0,    0, 4370,
5045      4371, 4371, 4371, 4371,    0,    0, 4371, 4371, 4372, 4372,
5046      4372,    0,    0,    0, 4372, 4373, 4373, 4373, 4373,    0,
5047         0, 4373, 4373, 4374, 4374, 4374,    0,    0,    0, 4374,
5048
5049      4375, 4375, 4375, 4375,    0,    0, 4375, 4375, 4376, 4376,
5050      4376,    0,    0,    0, 4376, 4377, 4377, 4377, 4377,    0,
5051         0, 4377, 4377, 4378, 4378, 4378,    0,    0,    0, 4378,
5052      4379, 4379, 4379, 4379,    0,    0, 4379, 4379, 4380, 4380,
5053      4380,    0,    0,    0, 4380, 4381, 4381, 4381, 4381,    0,
5054         0, 4381, 4381, 4382, 4382, 4382,    0,    0,    0, 4382,
5055      4383, 4383, 4383, 4383,    0,    0, 4383, 4383, 4384, 4384,
5056      4384,    0,    0,    0, 4384, 4385, 4385, 4385, 4385,    0,
5057         0, 4385, 4385, 4386, 4386, 4386,    0,    0,    0, 4386,
5058      4387, 4387, 4387, 4387,    0,    0, 4387, 4387, 4388, 4388,
5059
5060      4388, 4388,    0, 4388,    0, 4388, 4389, 4389, 4389, 4389,
5061         0,    0, 4389, 4389, 4390, 4390, 4390,    0,    0,    0,
5062      4390, 4391, 4391, 4391, 4391,    0,    0, 4391, 4391, 4392,
5063      4392, 4392,    0,    0,    0, 4392, 4393, 4393, 4393, 4393,
5064         0,    0, 4393, 4393, 4394, 4394, 4394,    0,    0,    0,
5065      4394, 4395, 4395, 4395, 4395,    0,    0, 4395, 4395, 4396,
5066      4396, 4396, 4396, 4396, 4396, 4396, 4396, 4396, 4397, 4397,
5067      4397, 4397, 4397, 4397, 4397, 4397, 4397, 4398, 4398, 4398,
5068         0,    0,    0, 4398, 4399, 4399, 4399,    0,    0,    0,
5069      4399, 4400, 4400, 4400, 4400,    0,    0, 4400, 4400, 4401,
5070
5071      4401, 4401,    0,    0,    0, 4401, 4402, 4402, 4402, 4402,
5072         0,    0, 4402, 4402, 4403, 4403, 4403, 4403,    0, 4403,
5073         0, 4403, 4404, 4404, 4404, 4404,    0,    0, 4404, 4404,
5074      4405, 4405, 4405,    0,    0,    0, 4405, 4406, 4406, 4406,
5075      4406,    0,    0, 4406, 4406, 4407, 4407, 4407,    0,    0,
5076         0, 4407, 4408, 4408, 4408, 4408,    0,    0, 4408, 4408,
5077      4409, 4409, 4409, 4409,    0,    0, 4409, 4409, 4410, 4410,
5078      4410,    0,    0,    0, 4410, 4411, 4411, 4411, 4411,    0,
5079         0, 4411, 4411, 4412, 4412, 4412,    0,    0,    0, 4412,
5080      4413, 4413, 4413, 4413,    0,    0, 4413, 4413, 4414, 4414,
5081
5082      4414, 4414,    0, 4414,    0, 4414, 4415, 4415, 4415, 4415,
5083         0,    0, 4415, 4415, 4416, 4416, 4416, 4416,    0,    0,
5084      4416, 4416, 4417, 4417, 4417,    0,    0,    0, 4417, 4418,
5085      4418, 4418, 4418,    0,    0, 4418, 4418, 4419, 4419, 4419,
5086      4419,    0,    0, 4419, 4419, 4420, 4420, 4420, 4420,    0,
5087         0, 4420, 4420, 4421, 4421, 4421,    0,    0,    0, 4421,
5088      4422, 4422, 4422, 4422,    0,    0, 4422, 4422, 4423, 4423,
5089      4423,    0,    0,    0, 4423, 4424, 4424, 4424, 4424,    0,
5090         0, 4424, 4424, 4425, 4425, 4425, 4425,    0, 4425,    0,
5091      4425, 4426, 4426, 4426, 4426,    0,    0, 4426, 4426, 4427,
5092
5093      4427, 4427,    0,    0,    0, 4427, 4428, 4428, 4428, 4428,
5094         0,    0, 4428, 4428, 4429, 4429, 4429,    0,    0,    0,
5095      4429, 4430, 4430, 4430, 4430,    0,    0, 4430, 4430, 4431,
5096      4431, 4431,    0,    0,    0, 4431, 4432, 4432, 4432, 4432,
5097         0,    0, 4432, 4432, 4433, 4433, 4433,    0,    0,    0,
5098      4433, 4434, 4434, 4434, 4434,    0,    0, 4434, 4434, 4435,
5099      4435, 4435, 4435,    0, 4435,    0, 4435, 4436, 4436, 4436,
5100      4436,    0,    0, 4436, 4436, 4437, 4437, 4437,    0,    0,
5101         0, 4437, 4438, 4438, 4438, 4438,    0,    0, 4438, 4438,
5102      4439, 4439, 4439,    0,    0,    0, 4439, 4440, 4440, 4440,
5103
5104      4440,    0,    0, 4440, 4440, 4441, 4441, 4441,    0,    0,
5105         0, 4441, 4442, 4442, 4442, 4442,    0,    0, 4442, 4442,
5106      4443, 4443, 4443,    0,    0,    0, 4443, 4444, 4444, 4444,
5107      4444,    0,    0, 4444, 4444, 4445, 4445, 4445,    0,    0,
5108         0, 4445, 4446, 4446, 4446, 4446,    0,    0, 4446, 4446,
5109      4447, 4447, 4447,    0,    0,    0, 4447, 4448, 4448, 4448,
5110      4448,    0,    0, 4448, 4448, 4449, 4449, 4449,    0,    0,
5111         0, 4449, 4450, 4450, 4450, 4450,    0,    0, 4450, 4450,
5112      4451, 4451, 4451,    0,    0,    0, 4451, 4452, 4452, 4452,
5113      4452,    0,    0, 4452, 4452, 4453, 4453, 4453,    0,    0,
5114
5115         0, 4453, 4454, 4454, 4454, 4454,    0,    0, 4454, 4454,
5116      4455, 4455, 4455, 4455, 4455, 4455, 4455, 4455, 4455, 4456,
5117      4456, 4456, 4456, 4456, 4456, 4456, 4456, 4456, 4457, 4457,
5118      4457,    0,    0,    0, 4457, 4458, 4458, 4458, 4458,    0,
5119      4458,    0, 4458, 4459, 4459, 4459, 4459,    0,    0, 4459,
5120      4459, 4460, 4460, 4460,    0,    0,    0, 4460, 4461, 4461,
5121      4461, 4461,    0,    0, 4461, 4461, 4462, 4462, 4462, 4462,
5122         0,    0, 4462, 4462, 4463, 4463, 4463,    0,    0,    0,
5123      4463, 4464, 4464, 4464, 4464,    0,    0, 4464, 4464, 4465,
5124      4465, 4465, 4465,    0, 4465,    0, 4465, 4466, 4466, 4466,
5125
5126      4466,    0,    0, 4466, 4466, 4467, 4467, 4467, 4467,    0,
5127         0, 4467, 4467, 4468, 4468, 4468, 4468,    0, 4468,    0,
5128      4468, 4469, 4469, 4469, 4469,    0,    0, 4469, 4469, 4470,
5129      4470, 4470, 4470,    0, 4470,    0, 4470, 4471, 4471, 4471,
5130      4471,    0,    0, 4471, 4471, 4472, 4472, 4472, 4472,    0,
5131      4472,    0, 4472, 4473, 4473, 4473, 4473,    0,    0, 4473,
5132      4473, 4474, 4474, 4474, 4474,    0,    0, 4474, 4474, 4475,
5133      4475, 4475,    0,    0,    0, 4475, 4476, 4476, 4476, 4476,
5134         0,    0, 4476, 4476, 4477, 4477, 4477, 4477,    0,    0,
5135      4477, 4477, 4478, 4478, 4478, 4478,    0,    0, 4478, 4478,
5136
5137      4479, 4479, 4479,    0,    0,    0, 4479, 4480, 4480, 4480,
5138      4480,    0,    0, 4480, 4480, 4481, 4481, 4481,    0,    0,
5139         0, 4481, 4482, 4482, 4482, 4482,    0,    0, 4482, 4482,
5140      4483, 4483, 4483, 4483,    0,    0, 4483, 4483, 4484, 4484,
5141      4484,    0,    0,    0, 4484, 4485, 4485, 4485, 4485,    0,
5142         0, 4485, 4485, 4486, 4486, 4486,    0,    0,    0, 4486,
5143      4487, 4487, 4487, 4487,    0,    0, 4487, 4487, 4488, 4488,
5144      4488,    0,    0,    0, 4488, 4489, 4489, 4489, 4489,    0,
5145         0, 4489, 4489, 4490, 4490, 4490,    0,    0,    0, 4490,
5146      4491, 4491, 4491, 4491,    0,    0, 4491, 4491, 4492, 4492,
5147
5148      4492, 4492,    0,    0, 4492, 4492, 4493, 4493, 4493,    0,
5149         0,    0, 4493, 4494, 4494, 4494, 4494,    0,    0, 4494,
5150      4494, 4495, 4495, 4495,    0,    0,    0, 4495, 4496, 4496,
5151      4496, 4496,    0,    0, 4496, 4496, 4497, 4497, 4497,    0,
5152         0,    0, 4497, 4498, 4498, 4498, 4498,    0,    0, 4498,
5153      4498, 4499, 4499, 4499, 4499,    0, 4499,    0, 4499, 4500,
5154      4500, 4500, 4500,    0,    0, 4500, 4500, 4501, 4501, 4501,
5155         0,    0,    0, 4501, 4502, 4502, 4502, 4502,    0,    0,
5156      4502, 4502, 4503, 4503, 4503,    0,    0,    0, 4503, 4504,
5157      4504, 4504, 4504,    0,    0, 4504, 4504, 4505, 4505, 4505,
5158
5159         0,    0,    0, 4505, 4506, 4506, 4506, 4506,    0,    0,
5160      4506, 4506, 4507, 4507, 4507,    0,    0,    0, 4507, 4508,
5161      4508, 4508, 4508,    0,    0, 4508, 4508, 4509, 4509, 4509,
5162      4509,    0, 4509,    0, 4509, 4510, 4510, 4510, 4510,    0,
5163         0, 4510, 4510, 4511, 4511, 4511, 4511, 4511, 4511, 4511,
5164      4511, 4511, 4512, 4512, 4512, 4512, 4512, 4512, 4512, 4512,
5165      4512, 4513, 4513, 4513, 4513,    0, 4513,    0, 4513, 4514,
5166      4514, 4514,    0,    0,    0, 4514, 4515, 4515, 4515, 4515,
5167         0,    0, 4515, 4515, 4516, 4516, 4516,    0,    0,    0,
5168      4516, 4517, 4517, 4517, 4517,    0,    0, 4517, 4517, 4518,
5169
5170      4518, 4518, 4518,    0,    0, 4518, 4518, 4519, 4519, 4519,
5171         0,    0,    0, 4519, 4520, 4520, 4520, 4520,    0,    0,
5172      4520, 4520, 4521, 4521, 4521, 4521,    0,    0, 4521, 4521,
5173      4522, 4522, 4522, 4522,    0,    0, 4522, 4522, 4523, 4523,
5174      4523, 4523,    0,    0, 4523, 4523, 4524, 4524, 4524, 4524,
5175         0, 4524,    0, 4524, 4525, 4525, 4525, 4525,    0,    0,
5176      4525, 4525, 4526, 4526, 4526,    0,    0,    0, 4526, 4527,
5177      4527, 4527, 4527,    0,    0, 4527, 4527, 4528, 4528, 4528,
5178      4528,    0,    0, 4528, 4528, 4529, 4529, 4529,    0,    0,
5179         0, 4529, 4530, 4530, 4530, 4530,    0,    0, 4530, 4530,
5180
5181      4531, 4531, 4531, 4531,    0,    0, 4531, 4531, 4532, 4532,
5182      4532,    0,    0,    0, 4532, 4533, 4533, 4533,    0,    0,
5183         0, 4533, 4534, 4534, 4534, 4534,    0,    0, 4534, 4534,
5184      4535, 4535, 4535, 4535,    0,    0, 4535, 4535, 4536, 4536,
5185      4536,    0,    0,    0, 4536, 4537, 4537, 4537, 4537,    0,
5186         0, 4537, 4537, 4538, 4538, 4538,    0,    0,    0, 4538,
5187      4539, 4539, 4539, 4539,    0, 4539,    0, 4539, 4540, 4540,
5188      4540, 4540,    0,    0, 4540, 4540, 4541, 4541, 4541,    0,
5189         0,    0, 4541, 4542, 4542, 4542, 4542,    0,    0, 4542,
5190      4542, 4543, 4543, 4543,    0,    0,    0, 4543, 4544, 4544,
5191
5192      4544, 4544,    0,    0, 4544, 4544, 4545, 4545, 4545,    0,
5193         0,    0, 4545, 4546, 4546, 4546, 4546,    0,    0, 4546,
5194      4546, 4547, 4547, 4547,    0,    0,    0, 4547, 4548, 4548,
5195      4548, 4548,    0,    0, 4548, 4548, 4549, 4549, 4549, 4549,
5196         0, 4549,    0, 4549, 4550, 4550, 4550, 4550,    0,    0,
5197      4550, 4550, 4551, 4551, 4551, 4551,    0, 4551,    0, 4551,
5198      4552, 4552, 4552, 4552,    0,    0, 4552, 4552, 4553, 4553,
5199      4553,    0,    0,    0, 4553, 4554, 4554, 4554, 4554,    0,
5200         0, 4554, 4554, 4555, 4555, 4555, 4555,    0, 4555,    0,
5201      4555, 4556, 4556, 4556, 4556,    0,    0, 4556, 4556, 4557,
5202
5203      4557, 4557, 4557,    0, 4557,    0, 4557, 4558, 4558, 4558,
5204         0,    0,    0, 4558, 4559, 4559, 4559, 4559,    0,    0,
5205      4559, 4559, 4560, 4560, 4560, 4560, 4560, 4560, 4560, 4560,
5206      4560, 4561, 4561, 4561, 4561, 4561, 4561, 4561, 4561, 4561,
5207      4562, 4562, 4562,    0,    0,    0, 4562, 4563, 4563, 4563,
5208      4563,    0,    0, 4563, 4563, 4564, 4564, 4564, 4564,    0,
5209      4564,    0, 4564, 4565, 4565, 4565, 4565,    0,    0, 4565,
5210      4565, 4566, 4566, 4566,    0,    0,    0, 4566, 4567, 4567,
5211      4567, 4567,    0,    0, 4567, 4567, 4568, 4568, 4568, 4568,
5212         0,    0, 4568, 4568, 4569, 4569, 4569, 4569,    0,    0,
5213
5214      4569, 4569, 4570, 4570, 4570, 4570,    0,    0, 4570, 4570,
5215      4571, 4571, 4571, 4571,    0,    0, 4571, 4571, 4572, 4572,
5216      4572,    0,    0,    0, 4572, 4573, 4573, 4573, 4573,    0,
5217         0, 4573, 4573, 4574, 4574, 4574, 4574,    0,    0, 4574,
5218      4574, 4575, 4575, 4575,    0,    0,    0, 4575, 4576, 4576,
5219      4576, 4576,    0,    0, 4576, 4576, 4577, 4577, 4577, 4577,
5220         0,    0, 4577, 4577, 4578, 4578, 4578,    0,    0,    0,
5221      4578, 4579, 4579, 4579,    0,    0,    0, 4579, 4580, 4580,
5222      4580, 4580,    0,    0, 4580, 4580, 4581, 4581, 4581, 4581,
5223         0,    0, 4581, 4581, 4582, 4582, 4582,    0,    0,    0,
5224
5225      4582, 4583, 4583, 4583,    0,    0,    0, 4583, 4584, 4584,
5226      4584, 4584,    0,    0, 4584, 4584, 4585, 4585, 4585, 4585,
5227         0, 4585,    0, 4585, 4586, 4586, 4586, 4586,    0,    0,
5228      4586, 4586, 4587, 4587, 4587,    0,    0,    0, 4587, 4588,
5229      4588, 4588, 4588,    0,    0, 4588, 4588, 4589, 4589, 4589,
5230         0,    0,    0, 4589, 4590, 4590, 4590,    0,    0,    0,
5231      4590, 4591, 4591, 4591, 4591,    0,    0, 4591, 4591, 4592,
5232      4592, 4592, 4592,    0,    0, 4592, 4592, 4593, 4593, 4593,
5233      4593,    0,    0, 4593, 4593, 4594, 4594, 4594,    0,    0,
5234         0, 4594, 4595, 4595, 4595, 4595,    0,    0, 4595, 4595,
5235
5236      4596, 4596, 4596,    0,    0,    0, 4596, 4597, 4597, 4597,
5237      4597,    0,    0, 4597, 4597, 4598, 4598, 4598, 4598, 4598,
5238      4598, 4598, 4598, 4598, 4599, 4599, 4599, 4599, 4599, 4599,
5239      4599, 4599, 4599, 4600, 4600, 4600,    0,    0,    0, 4600,
5240      4601, 4601, 4601, 4601,    0,    0, 4601, 4601, 4602, 4602,
5241      4602, 4602,    0, 4602,    0, 4602, 4603, 4603, 4603, 4603,
5242         0,    0, 4603, 4603, 4604, 4604, 4604, 4604,    0, 4604,
5243         0, 4604, 4605, 4605, 4605, 4605,    0,    0, 4605, 4605,
5244      4606, 4606, 4606, 4606,    0,    0, 4606, 4606, 4607, 4607,
5245      4607, 4607,    0,    0, 4607, 4607, 4608, 4608, 4608, 4608,
5246
5247         0,    0, 4608, 4608, 4609, 4609, 4609, 4609,    0,    0,
5248      4609, 4609, 4610, 4610, 4610,    0,    0,    0, 4610, 4611,
5249      4611, 4611, 4611,    0,    0, 4611, 4611, 4612, 4612, 4612,
5250         0,    0,    0, 4612, 4613, 4613, 4613, 4613,    0,    0,
5251      4613, 4613, 4614, 4614, 4614, 4614,    0,    0, 4614, 4614,
5252      4615, 4615, 4615, 4615,    0, 4615,    0, 4615, 4616, 4616,
5253      4616, 4616,    0, 4616,    0, 4616, 4617, 4617, 4617, 4617,
5254         0,    0, 4617, 4617, 4618, 4618, 4618, 4618,    0,    0,
5255      4618, 4618, 4619, 4619, 4619, 4619,    0, 4619,    0, 4619,
5256      4620, 4620, 4620,    0,    0,    0, 4620, 4621, 4621, 4621,
5257
5258      4621,    0,    0, 4621, 4621, 4622, 4622, 4622, 4622,    0,
5259      4622,    0, 4622, 4623, 4623, 4623, 4623,    0,    0, 4623,
5260      4623, 4624, 4624, 4624, 4624,    0, 4624,    0, 4624, 4625,
5261      4625, 4625,    0,    0,    0, 4625, 4626, 4626, 4626,    0,
5262         0,    0, 4626, 4627, 4627, 4627, 4627,    0,    0, 4627,
5263      4627, 4628, 4628, 4628, 4628,    0,    0, 4628, 4628, 4629,
5264      4629, 4629,    0,    0,    0, 4629, 4630, 4630, 4630, 4630,
5265         0,    0, 4630, 4630, 4631, 4631, 4631,    0,    0,    0,
5266      4631, 4632, 4632, 4632, 4632,    0,    0, 4632, 4632, 4633,
5267      4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633, 4634, 4634,
5268
5269      4634, 4634, 4634, 4634, 4634, 4634, 4634, 4635, 4635, 4635,
5270         0,    0,    0, 4635, 4636, 4636, 4636, 4636,    0, 4636,
5271         0, 4636, 4637, 4637, 4637, 4637,    0,    0, 4637, 4637,
5272      4638, 4638, 4638, 4638,    0,    0, 4638, 4638, 4639, 4639,
5273      4639, 4639,    0,    0, 4639, 4639, 4640, 4640, 4640, 4640,
5274         0,    0, 4640, 4640, 4641, 4641, 4641, 4641,    0,    0,
5275      4641, 4641, 4642, 4642, 4642,    0,    0,    0, 4642, 4643,
5276      4643, 4643,    0,    0,    0, 4643, 4644, 4644, 4644, 4644,
5277         0,    0, 4644, 4644, 4645, 4645, 4645,    0,    0,    0,
5278      4645, 4646, 4646, 4646, 4646,    0,    0, 4646, 4646, 4647,
5279
5280      4647, 4647, 4647,    0,    0, 4647, 4647, 4648, 4648, 4648,
5281         0,    0,    0, 4648, 4649, 4649, 4649, 4649,    0,    0,
5282      4649, 4649, 4650, 4650, 4650, 4650,    0, 4650,    0, 4650,
5283      4651, 4651, 4651,    0,    0,    0, 4651, 4652, 4652, 4652,
5284         0,    0,    0, 4652, 4653, 4653, 4653,    0,    0,    0,
5285      4653, 4654, 4654, 4654, 4654, 4654, 4654, 4654, 4654, 4654,
5286      4655, 4655, 4655, 4655, 4655, 4655, 4655, 4655, 4655, 4656,
5287      4656, 4656, 4656, 4656, 4656, 4656, 4656, 4656, 4657, 4657,
5288      4657, 4657, 4657, 4657, 4657, 4657, 4657, 4658, 4658, 4658,
5289      4658, 4658, 4658, 4658, 4658, 4658, 4659, 4659, 4659, 4659,
5290
5291      4659, 4659, 4659, 4659, 4659, 4107, 4107, 4107, 4107, 4107,
5292      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
5293      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
5294      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
5295      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
5296      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
5297      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
5298      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107,
5299      4107
5300     } ;
5301
5302 /* Table of booleans, true if rule could match eol. */
5303 static const flex_int32_t yy_rule_can_match_eol[669] =
5304     {   0,
5305 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 
5306     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5307     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5308     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
5309     1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 
5310     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
5311     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
5312     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5313     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5314     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5315     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5316     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5317     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
5318     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
5319     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
5320     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5321     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
5322     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
5323     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
5324     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5325     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
5326     0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
5327     1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 
5328     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
5329     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5330     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
5331     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
5332     1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 
5333     1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5334     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5335     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
5336     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5337     0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 
5338     0, 0, 0, 1, 0, 0, 0, 1, 0,     };
5339
5340 static yy_state_type yy_last_accepting_state;
5341 static char *yy_last_accepting_cpos;
5342
5343 extern int yy_flex_debug;
5344 int yy_flex_debug = 0;
5345
5346 /* The intent behind this definition is that it'll catch
5347  * any uses of REJECT which flex missed.
5348  */
5349 #define REJECT reject_used_but_not_detected
5350 #define yymore() yymore_used_but_not_detected
5351 #define YY_MORE_ADJ 0
5352 #define YY_RESTORE_YY_MORE_OFFSET
5353 char *yytext;
5354 /* Validating XML processor for src/surf/xml/simgrid.dtd.
5355  *
5356  * This program was generated with the FleXML XML processor generator.
5357  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
5358  * FleXML is Copyright (C) 2003-2013 Martin Quinson.  All rights reserved.
5359  * (1.9.6).
5360  * 
5361  * There are two, intertwined parts to this program, part A and part B.
5362  *
5363  * Part A
5364  * ------
5365  * 
5366  * Some parts, here collectively called "Part A", are found in the 
5367  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
5368  * and Copyright (C) 2003-2013 Martin Quinson. All rights reserved.
5369  *
5370  * You can redistribute, use, perform, display and/or modify "Part A"
5371  * provided the following two conditions hold:
5372  *
5373  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
5374  *    FleXML; without even the implied warranty of MERCHANTABILITY or
5375  *    FITNESS FOR A PARTICULAR PURPOSE.
5376  *
5377  * 2. The program distribution conditions do not in any way affect the
5378  *    distribution conditions of the FleXML system used to generate this
5379  *    file or any version of FleXML derived from that system.
5380  *
5381  * Notice that these are explicit rights granted to you for files
5382  * generated by the FleXML system.  For your rights in connection with
5383  * the FleXML system itself please consult the GNU General Public License.
5384  * 
5385  * Part B
5386  * ------
5387  * 
5388  * The other parts, here collectively called "Part B", and which came 
5389  * from the DTD used by FleXML to generate this program, can be 
5390  * distributed (or not, as the case may be) under the terms of whoever
5391  * wrote them, provided these terms respect and obey the two conditions 
5392  * above under the heading "Part A".
5393  *
5394  * The author of and contributors to FleXML specifically disclaim
5395  * any copyright interest in "Part B", unless "Part B" was written 
5396  * by the author of or contributors to FleXML.
5397  * 
5398  */
5399
5400 /* Version strings. */
5401 const char surfxml_flexml_version[] = "1.9.6";
5402
5403 /* ANSI headers. */
5404 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
5405 #include <stdio.h>
5406 #include <string.h>
5407 #include <assert.h>
5408 #include <stdarg.h>
5409 #include <ctype.h>
5410      
5411 #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
5412 # ifndef __STRICT_ANSI__
5413 #  include <io.h>
5414 #  include <process.h>
5415 # endif
5416 #else
5417 # include <unistd.h>
5418 #endif
5419      
5420 #ifndef FLEXML_INDEXSTACKSIZE
5421 #define FLEXML_INDEXSTACKSIZE 1000
5422 #endif
5423
5424 /* Generated definitions. */
5425 #define FLEXML_yylineno
5426 #ifndef FLEXML_BUFFERSTACKSIZE
5427 #define FLEXML_BUFFERSTACKSIZE 1000000
5428 #endif
5429 #define FLEXML_NEED_BUFFERLIT
5430
5431 /* XML processor api. */
5432 /* FleXML-provided data. */
5433 int surfxml_pcdata_ix;
5434 extern char *surfxml_bufferstack;
5435 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
5436 AT_surfxml_AS_id AX_surfxml_AS_id;
5437 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
5438 short int surfxml_AS_id_isset;
5439 AT_surfxml_AS_routing AX_surfxml_AS_routing;
5440 #define A_surfxml_AS_routing AX_surfxml_AS_routing
5441 short int surfxml_AS_routing_isset;
5442 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
5443 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
5444 short int surfxml_ASroute_dst_isset;
5445 AT_surfxml_ASroute_gw___dst AX_surfxml_ASroute_gw___dst;
5446 #define A_surfxml_ASroute_gw___dst (surfxml_bufferstack + AX_surfxml_ASroute_gw___dst)
5447 short int surfxml_ASroute_gw___dst_isset;
5448 AT_surfxml_ASroute_gw___src AX_surfxml_ASroute_gw___src;
5449 #define A_surfxml_ASroute_gw___src (surfxml_bufferstack + AX_surfxml_ASroute_gw___src)
5450 short int surfxml_ASroute_gw___src_isset;
5451 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
5452 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
5453 short int surfxml_ASroute_src_isset;
5454 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
5455 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
5456 short int surfxml_ASroute_symmetrical_isset;
5457 AT_surfxml_actor_function AX_surfxml_actor_function;
5458 #define A_surfxml_actor_function (surfxml_bufferstack + AX_surfxml_actor_function)
5459 short int surfxml_actor_function_isset;
5460 AT_surfxml_actor_host AX_surfxml_actor_host;
5461 #define A_surfxml_actor_host (surfxml_bufferstack + AX_surfxml_actor_host)
5462 short int surfxml_actor_host_isset;
5463 AT_surfxml_actor_kill___time AX_surfxml_actor_kill___time;
5464 #define A_surfxml_actor_kill___time (surfxml_bufferstack + AX_surfxml_actor_kill___time)
5465 short int surfxml_actor_kill___time_isset;
5466 AT_surfxml_actor_on___failure AX_surfxml_actor_on___failure;
5467 #define A_surfxml_actor_on___failure AX_surfxml_actor_on___failure
5468 short int surfxml_actor_on___failure_isset;
5469 AT_surfxml_actor_start___time AX_surfxml_actor_start___time;
5470 #define A_surfxml_actor_start___time (surfxml_bufferstack + AX_surfxml_actor_start___time)
5471 short int surfxml_actor_start___time_isset;
5472 AT_surfxml_argument_value AX_surfxml_argument_value;
5473 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
5474 short int surfxml_argument_value_isset;
5475 AT_surfxml_backbone_bandwidth AX_surfxml_backbone_bandwidth;
5476 #define A_surfxml_backbone_bandwidth (surfxml_bufferstack + AX_surfxml_backbone_bandwidth)
5477 short int surfxml_backbone_bandwidth_isset;
5478 AT_surfxml_backbone_id AX_surfxml_backbone_id;
5479 #define A_surfxml_backbone_id (surfxml_bufferstack + AX_surfxml_backbone_id)
5480 short int surfxml_backbone_id_isset;
5481 AT_surfxml_backbone_latency AX_surfxml_backbone_latency;
5482 #define A_surfxml_backbone_latency (surfxml_bufferstack + AX_surfxml_backbone_latency)
5483 short int surfxml_backbone_latency_isset;
5484 AT_surfxml_bypassASroute_dst AX_surfxml_bypassASroute_dst;
5485 #define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
5486 short int surfxml_bypassASroute_dst_isset;
5487 AT_surfxml_bypassASroute_gw___dst AX_surfxml_bypassASroute_gw___dst;
5488 #define A_surfxml_bypassASroute_gw___dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___dst)
5489 short int surfxml_bypassASroute_gw___dst_isset;
5490 AT_surfxml_bypassASroute_gw___src AX_surfxml_bypassASroute_gw___src;
5491 #define A_surfxml_bypassASroute_gw___src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___src)
5492 short int surfxml_bypassASroute_gw___src_isset;
5493 AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src;
5494 #define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
5495 short int surfxml_bypassASroute_src_isset;
5496 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
5497 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
5498 short int surfxml_bypassRoute_dst_isset;
5499 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
5500 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
5501 short int surfxml_bypassRoute_src_isset;
5502 AT_surfxml_bypassZoneRoute_dst AX_surfxml_bypassZoneRoute_dst;
5503 #define A_surfxml_bypassZoneRoute_dst (surfxml_bufferstack + AX_surfxml_bypassZoneRoute_dst)
5504 short int surfxml_bypassZoneRoute_dst_isset;
5505 AT_surfxml_bypassZoneRoute_gw___dst AX_surfxml_bypassZoneRoute_gw___dst;
5506 #define A_surfxml_bypassZoneRoute_gw___dst (surfxml_bufferstack + AX_surfxml_bypassZoneRoute_gw___dst)
5507 short int surfxml_bypassZoneRoute_gw___dst_isset;
5508 AT_surfxml_bypassZoneRoute_gw___src AX_surfxml_bypassZoneRoute_gw___src;
5509 #define A_surfxml_bypassZoneRoute_gw___src (surfxml_bufferstack + AX_surfxml_bypassZoneRoute_gw___src)
5510 short int surfxml_bypassZoneRoute_gw___src_isset;
5511 AT_surfxml_bypassZoneRoute_src AX_surfxml_bypassZoneRoute_src;
5512 #define A_surfxml_bypassZoneRoute_src (surfxml_bufferstack + AX_surfxml_bypassZoneRoute_src)
5513 short int surfxml_bypassZoneRoute_src_isset;
5514 AT_surfxml_cabinet_bw AX_surfxml_cabinet_bw;
5515 #define A_surfxml_cabinet_bw (surfxml_bufferstack + AX_surfxml_cabinet_bw)
5516 short int surfxml_cabinet_bw_isset;
5517 AT_surfxml_cabinet_id AX_surfxml_cabinet_id;
5518 #define A_surfxml_cabinet_id (surfxml_bufferstack + AX_surfxml_cabinet_id)
5519 short int surfxml_cabinet_id_isset;
5520 AT_surfxml_cabinet_lat AX_surfxml_cabinet_lat;
5521 #define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat)
5522 short int surfxml_cabinet_lat_isset;
5523 AT_surfxml_cabinet_prefix AX_surfxml_cabinet_prefix;
5524 #define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix)
5525 short int surfxml_cabinet_prefix_isset;
5526 AT_surfxml_cabinet_radical AX_surfxml_cabinet_radical;
5527 #define A_surfxml_cabinet_radical (surfxml_bufferstack + AX_surfxml_cabinet_radical)
5528 short int surfxml_cabinet_radical_isset;
5529 AT_surfxml_cabinet_speed AX_surfxml_cabinet_speed;
5530 #define A_surfxml_cabinet_speed (surfxml_bufferstack + AX_surfxml_cabinet_speed)
5531 short int surfxml_cabinet_speed_isset;
5532 AT_surfxml_cabinet_suffix AX_surfxml_cabinet_suffix;
5533 #define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix)
5534 short int surfxml_cabinet_suffix_isset;
5535 AT_surfxml_cluster_bb___bw AX_surfxml_cluster_bb___bw;
5536 #define A_surfxml_cluster_bb___bw (surfxml_bufferstack + AX_surfxml_cluster_bb___bw)
5537 short int surfxml_cluster_bb___bw_isset;
5538 AT_surfxml_cluster_bb___lat AX_surfxml_cluster_bb___lat;
5539 #define A_surfxml_cluster_bb___lat (surfxml_bufferstack + AX_surfxml_cluster_bb___lat)
5540 short int surfxml_cluster_bb___lat_isset;
5541 AT_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy;
5542 #define A_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy
5543 short int surfxml_cluster_bb___sharing___policy_isset;
5544 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
5545 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
5546 short int surfxml_cluster_bw_isset;
5547 AT_surfxml_cluster_core AX_surfxml_cluster_core;
5548 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
5549 short int surfxml_cluster_core_isset;
5550 AT_surfxml_cluster_id AX_surfxml_cluster_id;
5551 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
5552 short int surfxml_cluster_id_isset;
5553 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
5554 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
5555 short int surfxml_cluster_lat_isset;
5556 AT_surfxml_cluster_limiter___link AX_surfxml_cluster_limiter___link;
5557 #define A_surfxml_cluster_limiter___link (surfxml_bufferstack + AX_surfxml_cluster_limiter___link)
5558 short int surfxml_cluster_limiter___link_isset;
5559 AT_surfxml_cluster_loopback___bw AX_surfxml_cluster_loopback___bw;
5560 #define A_surfxml_cluster_loopback___bw (surfxml_bufferstack + AX_surfxml_cluster_loopback___bw)
5561 short int surfxml_cluster_loopback___bw_isset;
5562 AT_surfxml_cluster_loopback___lat AX_surfxml_cluster_loopback___lat;
5563 #define A_surfxml_cluster_loopback___lat (surfxml_bufferstack + AX_surfxml_cluster_loopback___lat)
5564 short int surfxml_cluster_loopback___lat_isset;
5565 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
5566 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
5567 short int surfxml_cluster_prefix_isset;
5568 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
5569 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
5570 short int surfxml_cluster_radical_isset;
5571 AT_surfxml_cluster_router___id AX_surfxml_cluster_router___id;
5572 #define A_surfxml_cluster_router___id (surfxml_bufferstack + AX_surfxml_cluster_router___id)
5573 short int surfxml_cluster_router___id_isset;
5574 AT_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy;
5575 #define A_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy
5576 short int surfxml_cluster_sharing___policy_isset;
5577 AT_surfxml_cluster_speed AX_surfxml_cluster_speed;
5578 #define A_surfxml_cluster_speed (surfxml_bufferstack + AX_surfxml_cluster_speed)
5579 short int surfxml_cluster_speed_isset;
5580 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
5581 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
5582 short int surfxml_cluster_suffix_isset;
5583 AT_surfxml_cluster_topo___parameters AX_surfxml_cluster_topo___parameters;
5584 #define A_surfxml_cluster_topo___parameters (surfxml_bufferstack + AX_surfxml_cluster_topo___parameters)
5585 short int surfxml_cluster_topo___parameters_isset;
5586 AT_surfxml_cluster_topology AX_surfxml_cluster_topology;
5587 #define A_surfxml_cluster_topology AX_surfxml_cluster_topology
5588 short int surfxml_cluster_topology_isset;
5589 AT_surfxml_config_id AX_surfxml_config_id;
5590 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
5591 short int surfxml_config_id_isset;
5592 AT_surfxml_host_availability___file AX_surfxml_host_availability___file;
5593 #define A_surfxml_host_availability___file (surfxml_bufferstack + AX_surfxml_host_availability___file)
5594 short int surfxml_host_availability___file_isset;
5595 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
5596 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
5597 short int surfxml_host_coordinates_isset;
5598 AT_surfxml_host_core AX_surfxml_host_core;
5599 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
5600 short int surfxml_host_core_isset;
5601 AT_surfxml_host_id AX_surfxml_host_id;
5602 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
5603 short int surfxml_host_id_isset;
5604 AT_surfxml_host_pstate AX_surfxml_host_pstate;
5605 #define A_surfxml_host_pstate (surfxml_bufferstack + AX_surfxml_host_pstate)
5606 short int surfxml_host_pstate_isset;
5607 AT_surfxml_host_speed AX_surfxml_host_speed;
5608 #define A_surfxml_host_speed (surfxml_bufferstack + AX_surfxml_host_speed)
5609 short int surfxml_host_speed_isset;
5610 AT_surfxml_host_speed___file AX_surfxml_host_speed___file;
5611 #define A_surfxml_host_speed___file (surfxml_bufferstack + AX_surfxml_host_speed___file)
5612 short int surfxml_host_speed___file_isset;
5613 AT_surfxml_host_state___file AX_surfxml_host_state___file;
5614 #define A_surfxml_host_state___file (surfxml_bufferstack + AX_surfxml_host_state___file)
5615 short int surfxml_host_state___file_isset;
5616 AT_surfxml_host___link_down AX_surfxml_host___link_down;
5617 #define A_surfxml_host___link_down (surfxml_bufferstack + AX_surfxml_host___link_down)
5618 short int surfxml_host___link_down_isset;
5619 AT_surfxml_host___link_id AX_surfxml_host___link_id;
5620 #define A_surfxml_host___link_id (surfxml_bufferstack + AX_surfxml_host___link_id)
5621 short int surfxml_host___link_id_isset;
5622 AT_surfxml_host___link_up AX_surfxml_host___link_up;
5623 #define A_surfxml_host___link_up (surfxml_bufferstack + AX_surfxml_host___link_up)
5624 short int surfxml_host___link_up_isset;
5625 AT_surfxml_include_file AX_surfxml_include_file;
5626 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
5627 short int surfxml_include_file_isset;
5628 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
5629 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
5630 short int surfxml_link_bandwidth_isset;
5631 AT_surfxml_link_bandwidth___file AX_surfxml_link_bandwidth___file;
5632 #define A_surfxml_link_bandwidth___file (surfxml_bufferstack + AX_surfxml_link_bandwidth___file)
5633 short int surfxml_link_bandwidth___file_isset;
5634 AT_surfxml_link_id AX_surfxml_link_id;
5635 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
5636 short int surfxml_link_id_isset;
5637 AT_surfxml_link_latency AX_surfxml_link_latency;
5638 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
5639 short int surfxml_link_latency_isset;
5640 AT_surfxml_link_latency___file AX_surfxml_link_latency___file;
5641 #define A_surfxml_link_latency___file (surfxml_bufferstack + AX_surfxml_link_latency___file)
5642 short int surfxml_link_latency___file_isset;
5643 AT_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy;
5644 #define A_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy
5645 short int surfxml_link_sharing___policy_isset;
5646 AT_surfxml_link_state___file AX_surfxml_link_state___file;
5647 #define A_surfxml_link_state___file (surfxml_bufferstack + AX_surfxml_link_state___file)
5648 short int surfxml_link_state___file_isset;
5649 AT_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction;
5650 #define A_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction
5651 short int surfxml_link___ctn_direction_isset;
5652 AT_surfxml_link___ctn_id AX_surfxml_link___ctn_id;
5653 #define A_surfxml_link___ctn_id (surfxml_bufferstack + AX_surfxml_link___ctn_id)
5654 short int surfxml_link___ctn_id_isset;
5655 AT_surfxml_model___prop_id AX_surfxml_model___prop_id;
5656 #define A_surfxml_model___prop_id (surfxml_bufferstack + AX_surfxml_model___prop_id)
5657 short int surfxml_model___prop_id_isset;
5658 AT_surfxml_model___prop_value AX_surfxml_model___prop_value;
5659 #define A_surfxml_model___prop_value (surfxml_bufferstack + AX_surfxml_model___prop_value)
5660 short int surfxml_model___prop_value_isset;
5661 AT_surfxml_mount_name AX_surfxml_mount_name;
5662 #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
5663 short int surfxml_mount_name_isset;
5664 AT_surfxml_mount_storageId AX_surfxml_mount_storageId;
5665 #define A_surfxml_mount_storageId (surfxml_bufferstack + AX_surfxml_mount_storageId)
5666 short int surfxml_mount_storageId_isset;
5667 AT_surfxml_peer_availability___file AX_surfxml_peer_availability___file;
5668 #define A_surfxml_peer_availability___file (surfxml_bufferstack + AX_surfxml_peer_availability___file)
5669 short int surfxml_peer_availability___file_isset;
5670 AT_surfxml_peer_bw___in AX_surfxml_peer_bw___in;
5671 #define A_surfxml_peer_bw___in (surfxml_bufferstack + AX_surfxml_peer_bw___in)
5672 short int surfxml_peer_bw___in_isset;
5673 AT_surfxml_peer_bw___out AX_surfxml_peer_bw___out;
5674 #define A_surfxml_peer_bw___out (surfxml_bufferstack + AX_surfxml_peer_bw___out)
5675 short int surfxml_peer_bw___out_isset;
5676 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
5677 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
5678 short int surfxml_peer_coordinates_isset;
5679 AT_surfxml_peer_id AX_surfxml_peer_id;
5680 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
5681 short int surfxml_peer_id_isset;
5682 AT_surfxml_peer_lat AX_surfxml_peer_lat;
5683 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
5684 short int surfxml_peer_lat_isset;
5685 AT_surfxml_peer_speed AX_surfxml_peer_speed;
5686 #define A_surfxml_peer_speed (surfxml_bufferstack + AX_surfxml_peer_speed)
5687 short int surfxml_peer_speed_isset;
5688 AT_surfxml_peer_speed___file AX_surfxml_peer_speed___file;
5689 #define A_surfxml_peer_speed___file (surfxml_bufferstack + AX_surfxml_peer_speed___file)
5690 short int surfxml_peer_speed___file_isset;
5691 AT_surfxml_peer_state___file AX_surfxml_peer_state___file;
5692 #define A_surfxml_peer_state___file (surfxml_bufferstack + AX_surfxml_peer_state___file)
5693 short int surfxml_peer_state___file_isset;
5694 AT_surfxml_platform_version AX_surfxml_platform_version;
5695 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
5696 short int surfxml_platform_version_isset;
5697 AT_surfxml_process_function AX_surfxml_process_function;
5698 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
5699 short int surfxml_process_function_isset;
5700 AT_surfxml_process_host AX_surfxml_process_host;
5701 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
5702 short int surfxml_process_host_isset;
5703 AT_surfxml_process_kill___time AX_surfxml_process_kill___time;
5704 #define A_surfxml_process_kill___time (surfxml_bufferstack + AX_surfxml_process_kill___time)
5705 short int surfxml_process_kill___time_isset;
5706 AT_surfxml_process_on___failure AX_surfxml_process_on___failure;
5707 #define A_surfxml_process_on___failure AX_surfxml_process_on___failure
5708 short int surfxml_process_on___failure_isset;
5709 AT_surfxml_process_start___time AX_surfxml_process_start___time;
5710 #define A_surfxml_process_start___time (surfxml_bufferstack + AX_surfxml_process_start___time)
5711 short int surfxml_process_start___time_isset;
5712 AT_surfxml_prop_id AX_surfxml_prop_id;
5713 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
5714 short int surfxml_prop_id_isset;
5715 AT_surfxml_prop_value AX_surfxml_prop_value;
5716 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
5717 short int surfxml_prop_value_isset;
5718 AT_surfxml_random_generator AX_surfxml_random_generator;
5719 #define A_surfxml_random_generator AX_surfxml_random_generator
5720 short int surfxml_random_generator_isset;
5721 AT_surfxml_random_id AX_surfxml_random_id;
5722 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
5723 short int surfxml_random_id_isset;
5724 AT_surfxml_random_max AX_surfxml_random_max;
5725 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
5726 short int surfxml_random_max_isset;
5727 AT_surfxml_random_mean AX_surfxml_random_mean;
5728 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
5729 short int surfxml_random_mean_isset;
5730 AT_surfxml_random_min AX_surfxml_random_min;
5731 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
5732 short int surfxml_random_min_isset;
5733 AT_surfxml_random_radical AX_surfxml_random_radical;
5734 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
5735 short int surfxml_random_radical_isset;
5736 AT_surfxml_random_seed AX_surfxml_random_seed;
5737 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
5738 short int surfxml_random_seed_isset;
5739 AT_surfxml_random_std___deviation AX_surfxml_random_std___deviation;
5740 #define A_surfxml_random_std___deviation (surfxml_bufferstack + AX_surfxml_random_std___deviation)
5741 short int surfxml_random_std___deviation_isset;
5742 AT_surfxml_route_dst AX_surfxml_route_dst;
5743 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
5744 short int surfxml_route_dst_isset;
5745 AT_surfxml_route_src AX_surfxml_route_src;
5746 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
5747 short int surfxml_route_src_isset;
5748 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
5749 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
5750 short int surfxml_route_symmetrical_isset;
5751 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
5752 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
5753 short int surfxml_router_coordinates_isset;
5754 AT_surfxml_router_id AX_surfxml_router_id;
5755 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
5756 short int surfxml_router_id_isset;
5757 AT_surfxml_storage_attach AX_surfxml_storage_attach;
5758 #define A_surfxml_storage_attach (surfxml_bufferstack + AX_surfxml_storage_attach)
5759 short int surfxml_storage_attach_isset;
5760 AT_surfxml_storage_content AX_surfxml_storage_content;
5761 #define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
5762 short int surfxml_storage_content_isset;
5763 AT_surfxml_storage_id AX_surfxml_storage_id;
5764 #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
5765 short int surfxml_storage_id_isset;
5766 AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
5767 #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
5768 short int surfxml_storage_typeId_isset;
5769 AT_surfxml_storage___type_content AX_surfxml_storage___type_content;
5770 #define A_surfxml_storage___type_content (surfxml_bufferstack + AX_surfxml_storage___type_content)
5771 short int surfxml_storage___type_content_isset;
5772 AT_surfxml_storage___type_id AX_surfxml_storage___type_id;
5773 #define A_surfxml_storage___type_id (surfxml_bufferstack + AX_surfxml_storage___type_id)
5774 short int surfxml_storage___type_id_isset;
5775 AT_surfxml_storage___type_model AX_surfxml_storage___type_model;
5776 #define A_surfxml_storage___type_model (surfxml_bufferstack + AX_surfxml_storage___type_model)
5777 short int surfxml_storage___type_model_isset;
5778 AT_surfxml_storage___type_size AX_surfxml_storage___type_size;
5779 #define A_surfxml_storage___type_size (surfxml_bufferstack + AX_surfxml_storage___type_size)
5780 short int surfxml_storage___type_size_isset;
5781 AT_surfxml_trace_file AX_surfxml_trace_file;
5782 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
5783 short int surfxml_trace_file_isset;
5784 AT_surfxml_trace_id AX_surfxml_trace_id;
5785 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
5786 short int surfxml_trace_id_isset;
5787 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
5788 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
5789 short int surfxml_trace_periodicity_isset;
5790 AT_surfxml_trace___connect_element AX_surfxml_trace___connect_element;
5791 #define A_surfxml_trace___connect_element (surfxml_bufferstack + AX_surfxml_trace___connect_element)
5792 short int surfxml_trace___connect_element_isset;
5793 AT_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind;
5794 #define A_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind
5795 short int surfxml_trace___connect_kind_isset;
5796 AT_surfxml_trace___connect_trace AX_surfxml_trace___connect_trace;
5797 #define A_surfxml_trace___connect_trace (surfxml_bufferstack + AX_surfxml_trace___connect_trace)
5798 short int surfxml_trace___connect_trace_isset;
5799 AT_surfxml_zone_id AX_surfxml_zone_id;
5800 #define A_surfxml_zone_id (surfxml_bufferstack + AX_surfxml_zone_id)
5801 short int surfxml_zone_id_isset;
5802 AT_surfxml_zone_routing AX_surfxml_zone_routing;
5803 #define A_surfxml_zone_routing AX_surfxml_zone_routing
5804 short int surfxml_zone_routing_isset;
5805 AT_surfxml_zoneRoute_dst AX_surfxml_zoneRoute_dst;
5806 #define A_surfxml_zoneRoute_dst (surfxml_bufferstack + AX_surfxml_zoneRoute_dst)
5807 short int surfxml_zoneRoute_dst_isset;
5808 AT_surfxml_zoneRoute_gw___dst AX_surfxml_zoneRoute_gw___dst;
5809 #define A_surfxml_zoneRoute_gw___dst (surfxml_bufferstack + AX_surfxml_zoneRoute_gw___dst)
5810 short int surfxml_zoneRoute_gw___dst_isset;
5811 AT_surfxml_zoneRoute_gw___src AX_surfxml_zoneRoute_gw___src;
5812 #define A_surfxml_zoneRoute_gw___src (surfxml_bufferstack + AX_surfxml_zoneRoute_gw___src)
5813 short int surfxml_zoneRoute_gw___src_isset;
5814 AT_surfxml_zoneRoute_src AX_surfxml_zoneRoute_src;
5815 #define A_surfxml_zoneRoute_src (surfxml_bufferstack + AX_surfxml_zoneRoute_src)
5816 short int surfxml_zoneRoute_src_isset;
5817 AT_surfxml_zoneRoute_symmetrical AX_surfxml_zoneRoute_symmetrical;
5818 #define A_surfxml_zoneRoute_symmetrical AX_surfxml_zoneRoute_symmetrical
5819 short int surfxml_zoneRoute_symmetrical_isset;
5820
5821 /* XML state. */
5822 #ifdef FLEX_DEBUG
5823 # define ENTER(state)   debug_enter(state,#state)
5824 # define LEAVE          debug_leave()
5825 # define SET(state)     debug_set(state,#state)
5826   static void debug_enter(int, const char*);
5827   static void debug_leave(void);
5828   static void debug_set(int, const char*);
5829 #else
5830 # define ENTER(state)   (yy_push_state(state))
5831 # define LEAVE          (yy_pop_state())
5832 # define SET(state)     BEGIN(state)
5833 #endif
5834
5835 /* Generic actions. */
5836 #define SKIP    /*skip*/
5837 #define SUCCEED        CLEANUP; return 0
5838
5839 #define FAIL    return fail
5840 static int fail(const char*, ...);
5841
5842 enum {flexml_max_err_msg_size = 512};
5843 static char flexml_err_msg[flexml_max_err_msg_size];
5844 const char * surfxml_parse_err_msg()
5845 {
5846     return flexml_err_msg;
5847 }
5848 static void reset_surfxml_parse_err_msg()
5849 {
5850     flexml_err_msg[0] = '\0';
5851 }
5852
5853 /* Cleanup */
5854 static void cleanup(void);
5855 #define CLEANUP  cleanup()
5856
5857 /* Text buffer stack handling. */
5858 char *surfxml_bufferstack = NULL;
5859 static int blimit = FLEXML_BUFFERSTACKSIZE;
5860 static int bnext = 1;
5861
5862 static int *indexstack = NULL;
5863 static int ilimit = FLEXML_INDEXSTACKSIZE;
5864 static int inext = 1;
5865
5866 #define BUFFERSET(P)  (P = bnext)
5867 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
5868 #define BUFFERDONE    (BUFFERPUTC('\0'))
5869
5870 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), yytext)
5871
5872 /* after this is called, there are at least 2 slots left in the stack */
5873 static int ck_blimit()
5874 {
5875      if (bnext >= blimit) {
5876          blimit += FLEXML_BUFFERSTACKSIZE + 2;
5877          {
5878              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
5879              assert(temp);
5880              surfxml_bufferstack = temp;
5881          }
5882      }
5883      return 0;
5884 }
5885
5886 /* after this is called, there are at least 2 slots left in the stack */
5887 static int ck_ilimit()
5888 {
5889      if (inext >= ilimit) {
5890          ilimit += FLEXML_INDEXSTACKSIZE + 2;
5891          {
5892              int *temp = (int *) realloc(indexstack, ilimit);
5893              assert(temp);
5894              indexstack = temp;
5895          }
5896      }
5897      return 0;
5898 }
5899
5900 #ifdef FLEXML_NEED_BUFFERLIT
5901 static void surfxml_bufferliteral(char c, int* pp, const char* text)
5902 {
5903    BUFFERSET(*pp);
5904    if (c) {
5905       const char *s = strchr(text, c), *e = strrchr(text, c);
5906       assert(s && e && s <= e);
5907       ++s;
5908       while (s < e) {
5909          if (isspace(*s)) {
5910             BUFFERPUTC(' ');
5911             do ++s; while (s < e && isspace(*s));
5912          } else
5913            BUFFERPUTC(*s++);
5914       }
5915    } else {
5916       const char *s = text;
5917       while (*s)
5918         BUFFERPUTC(*s++);
5919    }
5920    BUFFERDONE;
5921 }
5922 #endif
5923
5924 static void pushbuffer(int p)
5925 {
5926     ck_ilimit();
5927     indexstack[inext++] = p;
5928     indexstack[inext++] = bnext;    
5929 }
5930
5931 static int popbuffer(void)
5932 {
5933     assert(inext >= 2);
5934     bnext = indexstack[--inext];
5935     return indexstack[--inext];
5936 }
5937
5938 /* General internal entities are `unput' back onto the input stream... */
5939 #define ENTITYTEXT(T) \
5940   { char *s = (T), *e = s+strlen(s);\
5941     while (--e >= s) { unput(*e); }}
5942
5943 /* Flex standard options. */
5944 #define YY_NO_INPUT 1
5945 /* Flex user-requested options. */
5946 /* XML character classes (currently restricted to ASCII). */
5947 /* "Common syntactic structures." */
5948 /* "Names and Tokens." */
5949 /* Miscellaneous. */
5950 /* Parser states (flex `exclusive start conditions'):
5951  *
5952  * PROLOG       the XML prolog of the document before <?xml...>
5953  * DOCTYPE      the XML prolog of the document after <?xml...>
5954  * EPILOG       after the root element
5955  * INCOMMENT    inside an XML comment <!--....-->
5956  * INPI         inside an XML PI <?...?>
5957  * VALUE1       inside a '...'-delimited literal
5958  * VALUE2       inside a "..."-delimited literal
5959  * CDATA        inside a <![CDATA[...] ]> section.
5960  * ROOT_<tag>   expect root element <tag>
5961  * AL_<tag>     inside the attribute list for <tag>
5962  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
5963  * IMPOSSIBLE   dummy to permit disabling rules; must be last
5964  */
5965
5966 /* State names. */
5967 const char* *surfxml_statenames=NULL;
5968
5969 #define INITIAL 0
5970 #define PROLOG 1
5971 #define DOCTYPE 2
5972 #define EPILOG 3
5973 #define INCOMMENT 4
5974 #define INPI 5
5975 #define VALUE1 6
5976 #define VALUE2 7
5977 #define CDATA 8
5978 #define AL_surfxml_AS 9
5979 #define S_surfxml_AS 10
5980 #define S_surfxml_AS_1 11
5981 #define S_surfxml_AS_2 12
5982 #define S_surfxml_AS_3 13
5983 #define S_surfxml_AS_4 14
5984 #define S_surfxml_AS_5 15
5985 #define S_surfxml_AS_6 16
5986 #define S_surfxml_AS_7 17
5987 #define S_surfxml_AS_8 18
5988 #define S_surfxml_AS_9 19
5989 #define S_surfxml_AS_10 20
5990 #define S_surfxml_AS_11 21
5991 #define S_surfxml_AS_12 22
5992 #define S_surfxml_AS_13 23
5993 #define S_surfxml_AS_14 24
5994 #define S_surfxml_AS_15 25
5995 #define S_surfxml_AS_16 26
5996 #define E_surfxml_AS 27
5997 #define AL_surfxml_ASroute 28
5998 #define S_surfxml_ASroute 29
5999 #define S_surfxml_ASroute_1 30
6000 #define S_surfxml_ASroute_2 31
6001 #define E_surfxml_ASroute 32
6002 #define AL_surfxml_actor 33
6003 #define S_surfxml_actor 34
6004 #define S_surfxml_actor_1 35
6005 #define S_surfxml_actor_2 36
6006 #define E_surfxml_actor 37
6007 #define AL_surfxml_argument 38
6008 #define E_surfxml_argument 39
6009 #define AL_surfxml_backbone 40
6010 #define E_surfxml_backbone 41
6011 #define AL_surfxml_bypassASroute 42
6012 #define S_surfxml_bypassASroute 43
6013 #define S_surfxml_bypassASroute_1 44
6014 #define S_surfxml_bypassASroute_2 45
6015 #define E_surfxml_bypassASroute 46
6016 #define AL_surfxml_bypassRoute 47
6017 #define S_surfxml_bypassRoute 48
6018 #define S_surfxml_bypassRoute_1 49
6019 #define S_surfxml_bypassRoute_2 50
6020 #define E_surfxml_bypassRoute 51
6021 #define AL_surfxml_bypassZoneRoute 52
6022 #define S_surfxml_bypassZoneRoute 53
6023 #define S_surfxml_bypassZoneRoute_1 54
6024 #define S_surfxml_bypassZoneRoute_2 55
6025 #define E_surfxml_bypassZoneRoute 56
6026 #define AL_surfxml_cabinet 57
6027 #define E_surfxml_cabinet 58
6028 #define AL_surfxml_cluster 59
6029 #define S_surfxml_cluster 60
6030 #define S_surfxml_cluster_1 61
6031 #define S_surfxml_cluster_2 62
6032 #define E_surfxml_cluster 63
6033 #define AL_surfxml_config 64
6034 #define S_surfxml_config 65
6035 #define S_surfxml_config_1 66
6036 #define S_surfxml_config_2 67
6037 #define E_surfxml_config 68
6038 #define AL_surfxml_host 69
6039 #define S_surfxml_host 70
6040 #define S_surfxml_host_1 71
6041 #define S_surfxml_host_2 72
6042 #define E_surfxml_host 73
6043 #define AL_surfxml_host___link 74
6044 #define E_surfxml_host___link 75
6045 #define AL_surfxml_include 76
6046 #define S_surfxml_include 77
6047 #define S_surfxml_include_1 78
6048 #define S_surfxml_include_2 79
6049 #define E_surfxml_include 80
6050 #define AL_surfxml_link 81
6051 #define S_surfxml_link 82
6052 #define S_surfxml_link_1 83
6053 #define S_surfxml_link_2 84
6054 #define E_surfxml_link 85
6055 #define AL_surfxml_link___ctn 86
6056 #define E_surfxml_link___ctn 87
6057 #define AL_surfxml_model___prop 88
6058 #define E_surfxml_model___prop 89
6059 #define AL_surfxml_mount 90
6060 #define E_surfxml_mount 91
6061 #define AL_surfxml_peer 92
6062 #define E_surfxml_peer 93
6063 #define ROOT_surfxml_platform 94
6064 #define AL_surfxml_platform 95
6065 #define S_surfxml_platform 96
6066 #define S_surfxml_platform_1 97
6067 #define S_surfxml_platform_2 98
6068 #define S_surfxml_platform_3 99
6069 #define S_surfxml_platform_4 100
6070 #define S_surfxml_platform_5 101
6071 #define S_surfxml_platform_6 102
6072 #define S_surfxml_platform_7 103
6073 #define S_surfxml_platform_8 104
6074 #define E_surfxml_platform 105
6075 #define AL_surfxml_process 106
6076 #define S_surfxml_process 107
6077 #define S_surfxml_process_1 108
6078 #define S_surfxml_process_2 109
6079 #define E_surfxml_process 110
6080 #define AL_surfxml_prop 111
6081 #define E_surfxml_prop 112
6082 #define AL_surfxml_random 113
6083 #define E_surfxml_random 114
6084 #define AL_surfxml_route 115
6085 #define S_surfxml_route 116
6086 #define S_surfxml_route_1 117
6087 #define S_surfxml_route_2 118
6088 #define E_surfxml_route 119
6089 #define AL_surfxml_router 120
6090 #define E_surfxml_router 121
6091 #define AL_surfxml_storage 122
6092 #define S_surfxml_storage 123
6093 #define S_surfxml_storage_1 124
6094 #define S_surfxml_storage_2 125
6095 #define E_surfxml_storage 126
6096 #define AL_surfxml_storage___type 127
6097 #define S_surfxml_storage___type 128
6098 #define S_surfxml_storage___type_1 129
6099 #define S_surfxml_storage___type_2 130
6100 #define E_surfxml_storage___type 131
6101 #define AL_surfxml_trace 132
6102 #define IN_trace 133
6103 #define AL_surfxml_trace___connect 134
6104 #define E_surfxml_trace___connect 135
6105 #define AL_surfxml_zone 136
6106 #define S_surfxml_zone 137
6107 #define S_surfxml_zone_1 138
6108 #define S_surfxml_zone_2 139
6109 #define S_surfxml_zone_3 140
6110 #define S_surfxml_zone_4 141
6111 #define S_surfxml_zone_5 142
6112 #define S_surfxml_zone_6 143
6113 #define S_surfxml_zone_7 144
6114 #define S_surfxml_zone_8 145
6115 #define S_surfxml_zone_9 146
6116 #define S_surfxml_zone_10 147
6117 #define S_surfxml_zone_11 148
6118 #define S_surfxml_zone_12 149
6119 #define S_surfxml_zone_13 150
6120 #define S_surfxml_zone_14 151
6121 #define S_surfxml_zone_15 152
6122 #define S_surfxml_zone_16 153
6123 #define E_surfxml_zone 154
6124 #define AL_surfxml_zoneRoute 155
6125 #define S_surfxml_zoneRoute 156
6126 #define S_surfxml_zoneRoute_1 157
6127 #define S_surfxml_zoneRoute_2 158
6128 #define E_surfxml_zoneRoute 159
6129 #define IMPOSSIBLE 160
6130
6131 #ifndef YY_NO_UNISTD_H
6132 /* Special case for "unistd.h", since it is non-ANSI. We include it way
6133  * down here because we want the user's section 1 to have been scanned first.
6134  * The user has a chance to override it with an option.
6135  */
6136 #if defined(_WIN32)
6137 #  ifndef __STRICT_ANSI__
6138 #    include <io.h>
6139 #    include <process.h>
6140 #  endif
6141 #else
6142 #  include <unistd.h>
6143 #endif
6144 #endif
6145
6146 #ifndef YY_EXTRA_TYPE
6147 #define YY_EXTRA_TYPE void *
6148 #endif
6149
6150 static int yy_init_globals ( void );
6151
6152 /* Accessor methods to globals.
6153    These are made visible to non-reentrant scanners for convenience. */
6154
6155 int yylex_destroy ( void );
6156
6157 int yyget_debug ( void );
6158
6159 void yyset_debug ( int debug_flag  );
6160
6161 YY_EXTRA_TYPE yyget_extra ( void );
6162
6163 void yyset_extra ( YY_EXTRA_TYPE user_defined  );
6164
6165 FILE *yyget_in ( void );
6166
6167 void yyset_in  ( FILE * _in_str  );
6168
6169 FILE *yyget_out ( void );
6170
6171 void yyset_out  ( FILE * _out_str  );
6172
6173                         int yyget_leng ( void );
6174
6175 char *yyget_text ( void );
6176
6177 int yyget_lineno ( void );
6178
6179 void yyset_lineno ( int _line_number  );
6180
6181 /* Macros after this point can all be overridden by user definitions in
6182  * section 1.
6183  */
6184
6185 #ifndef YY_SKIP_YYWRAP
6186 #ifdef __cplusplus
6187 extern "C" int yywrap ( void );
6188 #else
6189 extern int yywrap ( void );
6190 #endif
6191 #endif
6192
6193 #ifndef YY_NO_UNPUT
6194     
6195 #endif
6196
6197 #ifndef yytext_ptr
6198 static void yy_flex_strncpy ( char *, const char *, int );
6199 #endif
6200
6201 #ifdef YY_NEED_STRLEN
6202 static int yy_flex_strlen ( const char * );
6203 #endif
6204
6205 #ifndef YY_NO_INPUT
6206 #ifdef __cplusplus
6207 static int yyinput ( void );
6208 #else
6209 static int input ( void );
6210 #endif
6211
6212 #endif
6213
6214         static int yy_start_stack_ptr = 0;
6215         static int yy_start_stack_depth = 0;
6216         static int *yy_start_stack = NULL;
6217     
6218     static void yy_push_state ( int _new_state );
6219     
6220     static void yy_pop_state ( void );
6221     
6222 /* Amount of stuff to slurp up with each read. */
6223 #ifndef YY_READ_BUF_SIZE
6224 #ifdef __ia64__
6225 /* On IA-64, the buffer size is 16k, not 8k */
6226 #define YY_READ_BUF_SIZE 16384
6227 #else
6228 #define YY_READ_BUF_SIZE 8192
6229 #endif /* __ia64__ */
6230 #endif
6231
6232 /* Copy whatever the last rule matched to the standard output. */
6233 #ifndef ECHO
6234 /* This used to be an fputs(), but since the string might contain NUL's,
6235  * we now use fwrite().
6236  */
6237 #define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
6238 #endif
6239
6240 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
6241  * is returned in "result".
6242  */
6243 #ifndef YY_INPUT
6244 #define YY_INPUT(buf,result,max_size) \
6245         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
6246                 { \
6247                 int c = '*'; \
6248                 int n; \
6249                 for ( n = 0; n < max_size && \
6250                              (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
6251                         buf[n] = (char) c; \
6252                 if ( c == '\n' ) \
6253                         buf[n++] = (char) c; \
6254                 if ( c == EOF && ferror( yyin ) ) \
6255                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
6256                 result = n; \
6257                 } \
6258         else \
6259                 { \
6260                 errno=0; \
6261                 while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
6262                         { \
6263                         if( errno != EINTR) \
6264                                 { \
6265                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
6266                                 break; \
6267                                 } \
6268                         errno=0; \
6269                         clearerr(yyin); \
6270                         } \
6271                 }\
6272 \
6273
6274 #endif
6275
6276 /* No semi-colon after return; correct usage is to write "yyterminate();" -
6277  * we don't want an extra ';' after the "return" because that will cause
6278  * some compilers to complain about unreachable statements.
6279  */
6280 #ifndef yyterminate
6281 #define yyterminate() return YY_NULL
6282 #endif
6283
6284 /* Number of entries by which start-condition stack grows. */
6285 #ifndef YY_START_STACK_INCR
6286 #define YY_START_STACK_INCR 25
6287 #endif
6288
6289 /* Report a fatal error. */
6290 #ifndef YY_FATAL_ERROR
6291 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
6292 #endif
6293
6294 /* end tables serialization structures and prototypes */
6295
6296 /* Default declaration of generated scanner - a define so the user can
6297  * easily add parameters.
6298  */
6299 #ifndef YY_DECL
6300 #define YY_DECL_IS_OURS 1
6301
6302 extern int yylex (void);
6303
6304 #define YY_DECL int yylex (void)
6305 #endif /* !YY_DECL */
6306
6307 /* Code executed at the beginning of each rule, after yytext and yyleng
6308  * have been set up.
6309  */
6310 #ifndef YY_USER_ACTION
6311 #define YY_USER_ACTION
6312 #endif
6313
6314 /* Code executed at the end of each rule. */
6315 #ifndef YY_BREAK
6316 #define YY_BREAK /*LINTED*/break;
6317 #endif
6318
6319 #define YY_RULE_SETUP \
6320         YY_USER_ACTION
6321
6322 /** The main scanner function which does all the work.
6323  */
6324 YY_DECL
6325 {
6326         yy_state_type yy_current_state;
6327         char *yy_cp, *yy_bp;
6328         int yy_act;
6329     
6330         if ( !(yy_init) )
6331                 {
6332                 (yy_init) = 1;
6333
6334 #ifdef YY_USER_INIT
6335                 YY_USER_INIT;
6336 #endif
6337
6338                 if ( ! (yy_start) )
6339                         (yy_start) = 1; /* first start state */
6340
6341                 if ( ! yyin )
6342                         yyin = stdin;
6343
6344                 if ( ! yyout )
6345                         yyout = stdout;
6346
6347                 if ( ! YY_CURRENT_BUFFER ) {
6348                         yyensure_buffer_stack ();
6349                         YY_CURRENT_BUFFER_LVALUE =
6350                                 yy_create_buffer( yyin, YY_BUF_SIZE );
6351                 }
6352
6353                 yy_load_buffer_state(  );
6354                 }
6355
6356         {
6357
6358  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
6359  SET(PROLOG);
6360  reset_surfxml_parse_err_msg();
6361  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
6362  assert(surfxml_bufferstack);
6363  #ifdef FLEX_DEBUG
6364  {
6365      int i;
6366      for (i = 0; i < blimit; i++) {
6367          surfxml_bufferstack[i] = '\377';
6368      }
6369  }
6370  #endif
6371  surfxml_bufferstack[0] = '\0';
6372  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
6373  assert(indexstack);
6374  indexstack[0] = 0;
6375
6376   /* FleXML_init */
6377   bnext = inext = 1;
6378   surfxml_bufferliteral('\0', &bnext, "0.0");
6379   surfxml_bufferliteral('\0', &bnext, "2147483647");
6380   surfxml_bufferliteral('\0', &bnext, "N11");
6381   surfxml_bufferliteral('\0', &bnext, "1");
6382   surfxml_bufferliteral('\0', &bnext, "0.0");
6383   surfxml_bufferliteral('\0', &bnext, "1");
6384   surfxml_bufferliteral('\0', &bnext, "0s");
6385   surfxml_bufferliteral('\0', &bnext, "-1.0");
6386   surfxml_bufferliteral('\0', &bnext, "-1.0");
6387   surfxml_bufferliteral('\0', &bnext, "-1.0");
6388   surfxml_bufferliteral('\0', &bnext, "-1.0");
6389   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
6390   surfxml_statenames[PROLOG] = NULL;
6391   surfxml_statenames[DOCTYPE] = NULL;
6392   surfxml_statenames[EPILOG] = NULL;
6393   surfxml_statenames[INCOMMENT] = NULL;
6394   surfxml_statenames[INPI] = NULL;
6395   surfxml_statenames[VALUE1] = NULL;
6396   surfxml_statenames[VALUE2] = NULL;
6397   surfxml_statenames[CDATA] = NULL;
6398   surfxml_statenames[AL_surfxml_AS] = NULL;
6399   surfxml_statenames[S_surfxml_AS] = "AS";
6400   surfxml_statenames[S_surfxml_AS_1] = "AS";
6401   surfxml_statenames[S_surfxml_AS_2] = "AS";
6402   surfxml_statenames[S_surfxml_AS_3] = "AS";
6403   surfxml_statenames[S_surfxml_AS_4] = "AS";
6404   surfxml_statenames[S_surfxml_AS_5] = "AS";
6405   surfxml_statenames[S_surfxml_AS_6] = "AS";
6406   surfxml_statenames[S_surfxml_AS_7] = "AS";
6407   surfxml_statenames[S_surfxml_AS_8] = "AS";
6408   surfxml_statenames[S_surfxml_AS_9] = "AS";
6409   surfxml_statenames[S_surfxml_AS_10] = "AS";
6410   surfxml_statenames[S_surfxml_AS_11] = "AS";
6411   surfxml_statenames[S_surfxml_AS_12] = "AS";
6412   surfxml_statenames[S_surfxml_AS_13] = "AS";
6413   surfxml_statenames[S_surfxml_AS_14] = "AS";
6414   surfxml_statenames[S_surfxml_AS_15] = "AS";
6415   surfxml_statenames[S_surfxml_AS_16] = "AS";
6416   surfxml_statenames[E_surfxml_AS] = "AS";
6417   surfxml_statenames[AL_surfxml_ASroute] = NULL;
6418   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
6419   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
6420   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
6421   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
6422   surfxml_statenames[AL_surfxml_actor] = NULL;
6423   surfxml_statenames[S_surfxml_actor] = "actor";
6424   surfxml_statenames[S_surfxml_actor_1] = "actor";
6425   surfxml_statenames[S_surfxml_actor_2] = "actor";
6426   surfxml_statenames[E_surfxml_actor] = "actor";
6427   surfxml_statenames[AL_surfxml_argument] = NULL;
6428   surfxml_statenames[E_surfxml_argument] = "argument";
6429   surfxml_statenames[AL_surfxml_backbone] = NULL;
6430   surfxml_statenames[E_surfxml_backbone] = "backbone";
6431   surfxml_statenames[AL_surfxml_bypassASroute] = NULL;
6432   surfxml_statenames[S_surfxml_bypassASroute] = "bypassASroute";
6433   surfxml_statenames[S_surfxml_bypassASroute_1] = "bypassASroute";
6434   surfxml_statenames[S_surfxml_bypassASroute_2] = "bypassASroute";
6435   surfxml_statenames[E_surfxml_bypassASroute] = "bypassASroute";
6436   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
6437   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
6438   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
6439   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
6440   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
6441   surfxml_statenames[AL_surfxml_bypassZoneRoute] = NULL;
6442   surfxml_statenames[S_surfxml_bypassZoneRoute] = "bypassZoneRoute";
6443   surfxml_statenames[S_surfxml_bypassZoneRoute_1] = "bypassZoneRoute";
6444   surfxml_statenames[S_surfxml_bypassZoneRoute_2] = "bypassZoneRoute";
6445   surfxml_statenames[E_surfxml_bypassZoneRoute] = "bypassZoneRoute";
6446   surfxml_statenames[AL_surfxml_cabinet] = NULL;
6447   surfxml_statenames[E_surfxml_cabinet] = "cabinet";
6448   surfxml_statenames[AL_surfxml_cluster] = NULL;
6449   surfxml_statenames[S_surfxml_cluster] = "cluster";
6450   surfxml_statenames[S_surfxml_cluster_1] = "cluster";
6451   surfxml_statenames[S_surfxml_cluster_2] = "cluster";
6452   surfxml_statenames[E_surfxml_cluster] = "cluster";
6453   surfxml_statenames[AL_surfxml_config] = NULL;
6454   surfxml_statenames[S_surfxml_config] = "config";
6455   surfxml_statenames[S_surfxml_config_1] = "config";
6456   surfxml_statenames[S_surfxml_config_2] = "config";
6457   surfxml_statenames[E_surfxml_config] = "config";
6458   surfxml_statenames[AL_surfxml_host] = NULL;
6459   surfxml_statenames[S_surfxml_host] = "host";
6460   surfxml_statenames[S_surfxml_host_1] = "host";
6461   surfxml_statenames[S_surfxml_host_2] = "host";
6462   surfxml_statenames[E_surfxml_host] = "host";
6463   surfxml_statenames[AL_surfxml_host___link] = NULL;
6464   surfxml_statenames[E_surfxml_host___link] = "host_link";
6465   surfxml_statenames[AL_surfxml_include] = NULL;
6466   surfxml_statenames[S_surfxml_include] = "include";
6467   surfxml_statenames[S_surfxml_include_1] = "include";
6468   surfxml_statenames[S_surfxml_include_2] = "include";
6469   surfxml_statenames[E_surfxml_include] = "include";
6470   surfxml_statenames[AL_surfxml_link] = NULL;
6471   surfxml_statenames[S_surfxml_link] = "link";
6472   surfxml_statenames[S_surfxml_link_1] = "link";
6473   surfxml_statenames[S_surfxml_link_2] = "link";
6474   surfxml_statenames[E_surfxml_link] = "link";
6475   surfxml_statenames[AL_surfxml_link___ctn] = NULL;
6476   surfxml_statenames[E_surfxml_link___ctn] = "link_ctn";
6477   surfxml_statenames[AL_surfxml_model___prop] = NULL;
6478   surfxml_statenames[E_surfxml_model___prop] = "model_prop";
6479   surfxml_statenames[AL_surfxml_mount] = NULL;
6480   surfxml_statenames[E_surfxml_mount] = "mount";
6481   surfxml_statenames[AL_surfxml_peer] = NULL;
6482   surfxml_statenames[E_surfxml_peer] = "peer";
6483   surfxml_statenames[ROOT_surfxml_platform] = NULL;
6484   surfxml_statenames[AL_surfxml_platform] = NULL;
6485   surfxml_statenames[S_surfxml_platform] = "platform";
6486   surfxml_statenames[S_surfxml_platform_1] = "platform";
6487   surfxml_statenames[S_surfxml_platform_2] = "platform";
6488   surfxml_statenames[S_surfxml_platform_3] = "platform";
6489   surfxml_statenames[S_surfxml_platform_4] = "platform";
6490   surfxml_statenames[S_surfxml_platform_5] = "platform";
6491   surfxml_statenames[S_surfxml_platform_6] = "platform";
6492   surfxml_statenames[S_surfxml_platform_7] = "platform";
6493   surfxml_statenames[S_surfxml_platform_8] = "platform";
6494   surfxml_statenames[E_surfxml_platform] = "platform";
6495   surfxml_statenames[AL_surfxml_process] = NULL;
6496   surfxml_statenames[S_surfxml_process] = "process";
6497   surfxml_statenames[S_surfxml_process_1] = "process";
6498   surfxml_statenames[S_surfxml_process_2] = "process";
6499   surfxml_statenames[E_surfxml_process] = "process";
6500   surfxml_statenames[AL_surfxml_prop] = NULL;
6501   surfxml_statenames[E_surfxml_prop] = "prop";
6502   surfxml_statenames[AL_surfxml_random] = NULL;
6503   surfxml_statenames[E_surfxml_random] = "random";
6504   surfxml_statenames[AL_surfxml_route] = NULL;
6505   surfxml_statenames[S_surfxml_route] = "route";
6506   surfxml_statenames[S_surfxml_route_1] = "route";
6507   surfxml_statenames[S_surfxml_route_2] = "route";
6508   surfxml_statenames[E_surfxml_route] = "route";
6509   surfxml_statenames[AL_surfxml_router] = NULL;
6510   surfxml_statenames[E_surfxml_router] = "router";
6511   surfxml_statenames[AL_surfxml_storage] = NULL;
6512   surfxml_statenames[S_surfxml_storage] = "storage";
6513   surfxml_statenames[S_surfxml_storage_1] = "storage";
6514   surfxml_statenames[S_surfxml_storage_2] = "storage";
6515   surfxml_statenames[E_surfxml_storage] = "storage";
6516   surfxml_statenames[AL_surfxml_storage___type] = NULL;
6517   surfxml_statenames[S_surfxml_storage___type] = "storage_type";
6518   surfxml_statenames[S_surfxml_storage___type_1] = "storage_type";
6519   surfxml_statenames[S_surfxml_storage___type_2] = "storage_type";
6520   surfxml_statenames[E_surfxml_storage___type] = "storage_type";
6521   surfxml_statenames[AL_surfxml_trace] = NULL;
6522   surfxml_statenames[IN_trace] = "trace";
6523   surfxml_statenames[AL_surfxml_trace___connect] = NULL;
6524   surfxml_statenames[E_surfxml_trace___connect] = "trace_connect";
6525   surfxml_statenames[AL_surfxml_zone] = NULL;
6526   surfxml_statenames[S_surfxml_zone] = "zone";
6527   surfxml_statenames[S_surfxml_zone_1] = "zone";
6528   surfxml_statenames[S_surfxml_zone_2] = "zone";
6529   surfxml_statenames[S_surfxml_zone_3] = "zone";
6530   surfxml_statenames[S_surfxml_zone_4] = "zone";
6531   surfxml_statenames[S_surfxml_zone_5] = "zone";
6532   surfxml_statenames[S_surfxml_zone_6] = "zone";
6533   surfxml_statenames[S_surfxml_zone_7] = "zone";
6534   surfxml_statenames[S_surfxml_zone_8] = "zone";
6535   surfxml_statenames[S_surfxml_zone_9] = "zone";
6536   surfxml_statenames[S_surfxml_zone_10] = "zone";
6537   surfxml_statenames[S_surfxml_zone_11] = "zone";
6538   surfxml_statenames[S_surfxml_zone_12] = "zone";
6539   surfxml_statenames[S_surfxml_zone_13] = "zone";
6540   surfxml_statenames[S_surfxml_zone_14] = "zone";
6541   surfxml_statenames[S_surfxml_zone_15] = "zone";
6542   surfxml_statenames[S_surfxml_zone_16] = "zone";
6543   surfxml_statenames[E_surfxml_zone] = "zone";
6544   surfxml_statenames[AL_surfxml_zoneRoute] = NULL;
6545   surfxml_statenames[S_surfxml_zoneRoute] = "zoneRoute";
6546   surfxml_statenames[S_surfxml_zoneRoute_1] = "zoneRoute";
6547   surfxml_statenames[S_surfxml_zoneRoute_2] = "zoneRoute";
6548   surfxml_statenames[E_surfxml_zoneRoute] = "zoneRoute";
6549   }
6550
6551  /* COMMENTS and PIs: handled uniformly for efficiency. */
6552
6553         while ( /*CONSTCOND*/1 )                /* loops until end-of-file is reached */
6554                 {
6555                 yy_cp = (yy_c_buf_p);
6556
6557                 /* Support of yytext. */
6558                 *yy_cp = (yy_hold_char);
6559
6560                 /* yy_bp points to the position in yy_ch_buf of the start of
6561                  * the current run.
6562                  */
6563                 yy_bp = yy_cp;
6564
6565                 yy_current_state = (yy_start);
6566 yy_match:
6567                 do
6568                         {
6569                         YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
6570                         if ( yy_accept[yy_current_state] )
6571                                 {
6572                                 (yy_last_accepting_state) = yy_current_state;
6573                                 (yy_last_accepting_cpos) = yy_cp;
6574                                 }
6575                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
6576                                 {
6577                                 yy_current_state = (int) yy_def[yy_current_state];
6578                                 if ( yy_current_state >= 4108 )
6579                                         yy_c = yy_meta[yy_c];
6580                                 }
6581                         yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
6582                         ++yy_cp;
6583                         }
6584                 while ( yy_base[yy_current_state] != 14106 );
6585
6586 yy_find_action:
6587                 yy_act = yy_accept[yy_current_state];
6588                 if ( yy_act == 0 )
6589                         { /* have to back up */
6590                         yy_cp = (yy_last_accepting_cpos);
6591                         yy_current_state = (yy_last_accepting_state);
6592                         yy_act = yy_accept[yy_current_state];
6593                         }
6594
6595                 YY_DO_BEFORE_ACTION;
6596
6597                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
6598                         {
6599                         int yyl;
6600                         for ( yyl = 0; yyl < yyleng; ++yyl )
6601                                 if ( yytext[yyl] == '\n' )
6602                                         
6603     yylineno++;
6604 ;
6605                         }
6606
6607 do_action:      /* This label is used only to access EOF actions. */
6608
6609                 switch ( yy_act )
6610         { /* beginning of action switch */
6611                         case 0: /* must back up */
6612                         /* undo the effects of YY_DO_BEFORE_ACTION */
6613                         *yy_cp = (yy_hold_char);
6614                         yy_cp = (yy_last_accepting_cpos);
6615                         yy_current_state = (yy_last_accepting_state);
6616                         goto yy_find_action;
6617
6618 case 1:
6619 YY_RULE_SETUP
6620 ENTER(INCOMMENT);
6621         YY_BREAK
6622 case 2:
6623 YY_RULE_SETUP
6624 ENTER(INPI);
6625         YY_BREAK
6626
6627 case 3:
6628 YY_RULE_SETUP
6629 LEAVE;
6630         YY_BREAK
6631 case 4:
6632 case 5:
6633 case 6:
6634 /* rule 6 can match eol */
6635 YY_RULE_SETUP
6636 SKIP;
6637         YY_BREAK
6638 case YY_STATE_EOF(INCOMMENT):
6639 FAIL("EOF in comment.");
6640         YY_BREAK
6641
6642 case 7:
6643 YY_RULE_SETUP
6644 LEAVE;
6645         YY_BREAK
6646 case 8:
6647 case 9:
6648 /* rule 9 can match eol */
6649 YY_RULE_SETUP
6650 SKIP;
6651         YY_BREAK
6652 case YY_STATE_EOF(INPI):
6653 FAIL("EOF in PI (processing instruction).");
6654         YY_BREAK
6655
6656 /* SPACES: skipped uniformly */
6657 case 10:
6658 /* rule 10 can match eol */
6659 YY_RULE_SETUP
6660 SKIP;
6661         YY_BREAK
6662 /* PROLOG: determine root element and process it. */
6663
6664 case 11:
6665 /* rule 11 can match eol */
6666 YY_RULE_SETUP
6667 SET(DOCTYPE); 
6668         YY_BREAK
6669 case 12:
6670 /* rule 12 can match eol */
6671 YY_RULE_SETUP
6672 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);
6673         YY_BREAK
6674
6675 case 13:
6676 /* rule 13 can match eol */
6677 YY_RULE_SETUP
6678 SET(ROOT_surfxml_platform);
6679         YY_BREAK
6680 case 14:
6681 /* rule 14 can match eol */
6682 YY_RULE_SETUP
6683 SET(ROOT_surfxml_platform);
6684         YY_BREAK
6685 case 15:
6686 /* rule 15 can match eol */
6687 YY_RULE_SETUP
6688 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);
6689         YY_BREAK
6690 case 16:
6691 YY_RULE_SETUP
6692 FAIL("Unexpected character `%c' in prolog.", yytext[0]);
6693         YY_BREAK
6694 case YY_STATE_EOF(PROLOG):
6695 case YY_STATE_EOF(DOCTYPE):
6696 FAIL("EOF in prolog.");
6697         YY_BREAK
6698
6699 /* RULES DERIVED FROM DTD. */
6700 /* <!-- A zone is either an internal node that contains other zones, 
6701   *      or a  leaf containing hosts and other leaf-like elements -->
6702   *           (((AS|zone|include|link|backbone|cabinet|cluster|peer|trace|trace_connect)*,
6703   *         (zoneRoute|ASroute|trace|trace_connect|bypassASroute|bypassZoneRoute)*,
6704   *         (trace|trace_connect)*)
6705   *        |((include|storage_type|storage|host|cabinet|router|link|backbone|trace|trace_connect|host_link)*,
6706   *          (route|trace|trace_connect|bypassRoute)*)))>  */
6707 case 17:
6708 /* rule 17 can match eol */
6709 YY_RULE_SETUP
6710 FAIL("Starting tag <AS> is not allowed here.");
6711         YY_BREAK
6712 case 18:
6713 /* rule 18 can match eol */
6714 YY_RULE_SETUP
6715 {
6716   AX_surfxml_AS_id = 0;
6717   surfxml_AS_id_isset = 0;
6718   AX_surfxml_AS_routing = AU_surfxml_AS_routing;
6719   surfxml_AS_routing_isset = 0;
6720   ENTER(AL_surfxml_AS); pushbuffer(0);
6721   }
6722         YY_BREAK
6723
6724 case 19:
6725 /* rule 19 can match eol */
6726 YY_RULE_SETUP
6727 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);
6728         YY_BREAK
6729 case 20:
6730 /* rule 20 can match eol */
6731 YY_RULE_SETUP
6732 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);
6733         YY_BREAK
6734 case 21:
6735 /* rule 21 can match eol */
6736 case 22:
6737 /* rule 22 can match eol */
6738 YY_RULE_SETUP
6739 A_surfxml_AS_routing = A_surfxml_AS_routing_Full;
6740         YY_BREAK
6741 case 23:
6742 /* rule 23 can match eol */
6743 case 24:
6744 /* rule 24 can match eol */
6745 YY_RULE_SETUP
6746 A_surfxml_AS_routing = A_surfxml_AS_routing_Floyd;
6747         YY_BREAK
6748 case 25:
6749 /* rule 25 can match eol */
6750 case 26:
6751 /* rule 26 can match eol */
6752 YY_RULE_SETUP
6753 A_surfxml_AS_routing = A_surfxml_AS_routing_Dijkstra;
6754         YY_BREAK
6755 case 27:
6756 /* rule 27 can match eol */
6757 case 28:
6758 /* rule 28 can match eol */
6759 YY_RULE_SETUP
6760 A_surfxml_AS_routing = A_surfxml_AS_routing_DijkstraCache;
6761         YY_BREAK
6762 case 29:
6763 /* rule 29 can match eol */
6764 case 30:
6765 /* rule 30 can match eol */
6766 YY_RULE_SETUP
6767 A_surfxml_AS_routing = A_surfxml_AS_routing_None;
6768         YY_BREAK
6769 case 31:
6770 /* rule 31 can match eol */
6771 case 32:
6772 /* rule 32 can match eol */
6773 YY_RULE_SETUP
6774 A_surfxml_AS_routing = A_surfxml_AS_routing_Vivaldi;
6775         YY_BREAK
6776 case 33:
6777 /* rule 33 can match eol */
6778 case 34:
6779 /* rule 34 can match eol */
6780 YY_RULE_SETUP
6781 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster;
6782         YY_BREAK
6783 case 35:
6784 /* rule 35 can match eol */
6785 case 36:
6786 /* rule 36 can match eol */
6787 YY_RULE_SETUP
6788 A_surfxml_AS_routing = A_surfxml_AS_routing_ClusterTorus;
6789         YY_BREAK
6790 case 37:
6791 /* rule 37 can match eol */
6792 case 38:
6793 /* rule 38 can match eol */
6794 YY_RULE_SETUP
6795 A_surfxml_AS_routing = A_surfxml_AS_routing_ClusterFatTree;
6796         YY_BREAK
6797 case 39:
6798 /* rule 39 can match eol */
6799 case 40:
6800 /* rule 40 can match eol */
6801 YY_RULE_SETUP
6802 A_surfxml_AS_routing = A_surfxml_AS_routing_ClusterDragonfly;
6803         YY_BREAK
6804 case 41:
6805 YY_RULE_SETUP
6806 {
6807   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6808   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
6809   LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
6810  }
6811         YY_BREAK
6812 case 42:
6813 YY_RULE_SETUP
6814 {
6815   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6816   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
6817   LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
6818   switch (YY_START) {
6819    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;
6820    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6821    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;
6822    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;
6823   }
6824  }
6825         YY_BREAK
6826 case 43:
6827 YY_RULE_SETUP
6828 FAIL("Unexpected character `%c' in attribute list of AS element.", yytext[0]);
6829         YY_BREAK
6830 case 44:
6831 YY_RULE_SETUP
6832 FAIL("Bad attribute `%s' in `AS' element start tag.",yytext);
6833         YY_BREAK
6834 case YY_STATE_EOF(AL_surfxml_AS):
6835 FAIL("EOF in attribute list of `AS' element.");
6836         YY_BREAK
6837
6838 case 45:
6839 /* rule 45 can match eol */
6840 YY_RULE_SETUP
6841 {
6842   LEAVE;
6843   ETag_surfxml_AS();
6844   popbuffer(); /* attribute */
6845   switch (YY_START) {
6846    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;
6847    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6848    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;
6849    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;
6850   }
6851  }
6852         YY_BREAK
6853 case 46:
6854 /* rule 46 can match eol */
6855 YY_RULE_SETUP
6856 FAIL("Unexpected end-tag `%s': `</AS>' expected.",yytext);
6857         YY_BREAK
6858 case 47:
6859 YY_RULE_SETUP
6860 FAIL("Unexpected character `%c': `</AS>' expected.",yytext[0]);
6861         YY_BREAK
6862 case YY_STATE_EOF(E_surfxml_AS):
6863 case YY_STATE_EOF(S_surfxml_AS):
6864 case YY_STATE_EOF(S_surfxml_AS_1):
6865 case YY_STATE_EOF(S_surfxml_AS_11):
6866 case YY_STATE_EOF(S_surfxml_AS_12):
6867 case YY_STATE_EOF(S_surfxml_AS_14):
6868 case YY_STATE_EOF(S_surfxml_AS_16):
6869 case YY_STATE_EOF(S_surfxml_AS_3):
6870 case YY_STATE_EOF(S_surfxml_AS_4):
6871 case YY_STATE_EOF(S_surfxml_AS_6):
6872 case YY_STATE_EOF(S_surfxml_AS_7):
6873 case YY_STATE_EOF(S_surfxml_AS_9):
6874 FAIL("Premature EOF: `</AS>' expected.");
6875         YY_BREAK
6876
6877 case 48:
6878 /* rule 48 can match eol */
6879 YY_RULE_SETUP
6880 FAIL("Starting tag <ASroute> is not allowed here.");
6881         YY_BREAK
6882 case 49:
6883 /* rule 49 can match eol */
6884 YY_RULE_SETUP
6885 {
6886   AX_surfxml_ASroute_dst = 0;
6887   surfxml_ASroute_dst_isset = 0;
6888   AX_surfxml_ASroute_gw___dst = 0;
6889   surfxml_ASroute_gw___dst_isset = 0;
6890   AX_surfxml_ASroute_gw___src = 0;
6891   surfxml_ASroute_gw___src_isset = 0;
6892   AX_surfxml_ASroute_src = 0;
6893   surfxml_ASroute_src_isset = 0;
6894   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
6895   surfxml_ASroute_symmetrical_isset = 0;
6896   ENTER(AL_surfxml_ASroute); pushbuffer(0);
6897   }
6898         YY_BREAK
6899
6900 case 50:
6901 /* rule 50 can match eol */
6902 YY_RULE_SETUP
6903 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);
6904         YY_BREAK
6905 case 51:
6906 /* rule 51 can match eol */
6907 YY_RULE_SETUP
6908 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);
6909         YY_BREAK
6910 case 52:
6911 /* rule 52 can match eol */
6912 YY_RULE_SETUP
6913 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);
6914         YY_BREAK
6915 case 53:
6916 /* rule 53 can match eol */
6917 YY_RULE_SETUP
6918 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);
6919         YY_BREAK
6920 case 54:
6921 /* rule 54 can match eol */
6922 YY_RULE_SETUP
6923 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);
6924         YY_BREAK
6925 case 55:
6926 /* rule 55 can match eol */
6927 YY_RULE_SETUP
6928 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);
6929         YY_BREAK
6930 case 56:
6931 /* rule 56 can match eol */
6932 YY_RULE_SETUP
6933 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);
6934         YY_BREAK
6935 case 57:
6936 /* rule 57 can match eol */
6937 YY_RULE_SETUP
6938 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);
6939         YY_BREAK
6940 case 58:
6941 /* rule 58 can match eol */
6942 case 59:
6943 /* rule 59 can match eol */
6944 YY_RULE_SETUP
6945 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
6946         YY_BREAK
6947 case 60:
6948 /* rule 60 can match eol */
6949 case 61:
6950 /* rule 61 can match eol */
6951 YY_RULE_SETUP
6952 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
6953         YY_BREAK
6954 case 62:
6955 /* rule 62 can match eol */
6956 case 63:
6957 /* rule 63 can match eol */
6958 YY_RULE_SETUP
6959 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_yes;
6960         YY_BREAK
6961 case 64:
6962 /* rule 64 can match eol */
6963 case 65:
6964 /* rule 65 can match eol */
6965 YY_RULE_SETUP
6966 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_no;
6967         YY_BREAK
6968 case 66:
6969 YY_RULE_SETUP
6970 {
6971   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
6972   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
6973   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
6974   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
6975   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
6976  }
6977         YY_BREAK
6978 case 67:
6979 YY_RULE_SETUP
6980 {
6981   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
6982   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
6983   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
6984   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
6985   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
6986   switch (YY_START) {
6987    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;
6988    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;
6989   }
6990  }
6991         YY_BREAK
6992 case 68:
6993 YY_RULE_SETUP
6994 FAIL("Unexpected character `%c' in attribute list of ASroute element.", yytext[0]);
6995         YY_BREAK
6996 case 69:
6997 YY_RULE_SETUP
6998 FAIL("Bad attribute `%s' in `ASroute' element start tag.",yytext);
6999         YY_BREAK
7000 case YY_STATE_EOF(AL_surfxml_ASroute):
7001 FAIL("EOF in attribute list of `ASroute' element.");
7002         YY_BREAK
7003
7004 case 70:
7005 /* rule 70 can match eol */
7006 YY_RULE_SETUP
7007 {
7008   LEAVE;
7009   ETag_surfxml_ASroute();
7010   popbuffer(); /* attribute */
7011   switch (YY_START) {
7012    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;
7013    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;
7014   }
7015  }
7016         YY_BREAK
7017 case 71:
7018 /* rule 71 can match eol */
7019 YY_RULE_SETUP
7020 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",yytext);
7021         YY_BREAK
7022 case 72:
7023 YY_RULE_SETUP
7024 FAIL("Unexpected character `%c': `</ASroute>' expected.",yytext[0]);
7025         YY_BREAK
7026 case YY_STATE_EOF(E_surfxml_ASroute):
7027 case YY_STATE_EOF(S_surfxml_ASroute):
7028 case YY_STATE_EOF(S_surfxml_ASroute_2):
7029 FAIL("Premature EOF: `</ASroute>' expected.");
7030         YY_BREAK
7031
7032 case 73:
7033 /* rule 73 can match eol */
7034 YY_RULE_SETUP
7035 FAIL("Starting tag <actor> is not allowed here.");
7036         YY_BREAK
7037 case 74:
7038 /* rule 74 can match eol */
7039 YY_RULE_SETUP
7040 {
7041   AX_surfxml_actor_function = 0;
7042   surfxml_actor_function_isset = 0;
7043   AX_surfxml_actor_host = 0;
7044   surfxml_actor_host_isset = 0;
7045   AX_surfxml_actor_kill___time = 46;
7046   surfxml_actor_kill___time_isset = 0;
7047   AX_surfxml_actor_on___failure = A_surfxml_actor_on___failure_DIE;
7048   surfxml_actor_on___failure_isset = 0;
7049   AX_surfxml_actor_start___time = 41;
7050   surfxml_actor_start___time_isset = 0;
7051   ENTER(AL_surfxml_actor); pushbuffer(0);
7052   }
7053         YY_BREAK
7054
7055 case 75:
7056 /* rule 75 can match eol */
7057 YY_RULE_SETUP
7058 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);
7059         YY_BREAK
7060 case 76:
7061 /* rule 76 can match eol */
7062 YY_RULE_SETUP
7063 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);
7064         YY_BREAK
7065 case 77:
7066 /* rule 77 can match eol */
7067 YY_RULE_SETUP
7068 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);
7069         YY_BREAK
7070 case 78:
7071 /* rule 78 can match eol */
7072 YY_RULE_SETUP
7073 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);
7074         YY_BREAK
7075 case 79:
7076 /* rule 79 can match eol */
7077 YY_RULE_SETUP
7078 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);
7079         YY_BREAK
7080 case 80:
7081 /* rule 80 can match eol */
7082 YY_RULE_SETUP
7083 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);
7084         YY_BREAK
7085 case 81:
7086 /* rule 81 can match eol */
7087 case 82:
7088 /* rule 82 can match eol */
7089 YY_RULE_SETUP
7090 A_surfxml_actor_on___failure = A_surfxml_actor_on___failure_DIE;
7091         YY_BREAK
7092 case 83:
7093 /* rule 83 can match eol */
7094 case 84:
7095 /* rule 84 can match eol */
7096 YY_RULE_SETUP
7097 A_surfxml_actor_on___failure = A_surfxml_actor_on___failure_RESTART;
7098         YY_BREAK
7099 case 85:
7100 /* rule 85 can match eol */
7101 YY_RULE_SETUP
7102 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);
7103         YY_BREAK
7104 case 86:
7105 /* rule 86 can match eol */
7106 YY_RULE_SETUP
7107 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);
7108         YY_BREAK
7109 case 87:
7110 YY_RULE_SETUP
7111 {
7112   if (!AX_surfxml_actor_function) FAIL("Required attribute `function' not set for `actor' element.");
7113   if (!AX_surfxml_actor_host) FAIL("Required attribute `host' not set for `actor' element.");
7114   LEAVE; STag_surfxml_actor();surfxml_pcdata_ix = 0; ENTER(S_surfxml_actor);
7115  }
7116         YY_BREAK
7117 case 88:
7118 YY_RULE_SETUP
7119 {
7120   if (!AX_surfxml_actor_function) FAIL("Required attribute `function' not set for `actor' element.");
7121   if (!AX_surfxml_actor_host) FAIL("Required attribute `host' not set for `actor' element.");
7122   LEAVE; STag_surfxml_actor(); surfxml_pcdata_ix = 0; ETag_surfxml_actor(); popbuffer(); /* attribute */
7123   switch (YY_START) {
7124    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;
7125   }
7126  }
7127         YY_BREAK
7128 case 89:
7129 YY_RULE_SETUP
7130 FAIL("Unexpected character `%c' in attribute list of actor element.", yytext[0]);
7131         YY_BREAK
7132 case 90:
7133 YY_RULE_SETUP
7134 FAIL("Bad attribute `%s' in `actor' element start tag.",yytext);
7135         YY_BREAK
7136 case YY_STATE_EOF(AL_surfxml_actor):
7137 FAIL("EOF in attribute list of `actor' element.");
7138         YY_BREAK
7139
7140 case 91:
7141 /* rule 91 can match eol */
7142 YY_RULE_SETUP
7143 {
7144   LEAVE;
7145   ETag_surfxml_actor();
7146   popbuffer(); /* attribute */
7147   switch (YY_START) {
7148    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;
7149   }
7150  }
7151         YY_BREAK
7152 case 92:
7153 /* rule 92 can match eol */
7154 YY_RULE_SETUP
7155 FAIL("Unexpected end-tag `%s': `</actor>' expected.",yytext);
7156         YY_BREAK
7157 case 93:
7158 YY_RULE_SETUP
7159 FAIL("Unexpected character `%c': `</actor>' expected.",yytext[0]);
7160         YY_BREAK
7161 case YY_STATE_EOF(E_surfxml_actor):
7162 case YY_STATE_EOF(S_surfxml_actor):
7163 case YY_STATE_EOF(S_surfxml_actor_2):
7164 FAIL("Premature EOF: `</actor>' expected.");
7165         YY_BREAK
7166
7167 case 94:
7168 /* rule 94 can match eol */
7169 YY_RULE_SETUP
7170 FAIL("Starting tag <argument> is not allowed here.");
7171         YY_BREAK
7172 case 95:
7173 /* rule 95 can match eol */
7174 YY_RULE_SETUP
7175 {
7176   AX_surfxml_argument_value = 0;
7177   surfxml_argument_value_isset = 0;
7178   ENTER(AL_surfxml_argument); pushbuffer(0);
7179   }
7180         YY_BREAK
7181
7182 case 96:
7183 /* rule 96 can match eol */
7184 YY_RULE_SETUP
7185 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);
7186         YY_BREAK
7187 case 97:
7188 /* rule 97 can match eol */
7189 YY_RULE_SETUP
7190 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);
7191         YY_BREAK
7192 case 98:
7193 YY_RULE_SETUP
7194 {
7195   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
7196   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
7197  }
7198         YY_BREAK
7199 case 99:
7200 YY_RULE_SETUP
7201 {
7202   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
7203   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
7204   switch (YY_START) {
7205    case S_surfxml_actor: case S_surfxml_actor_1: case S_surfxml_actor_2: SET(S_surfxml_actor_2); break;
7206    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
7207   }
7208  }
7209         YY_BREAK
7210 case 100:
7211 YY_RULE_SETUP
7212 FAIL("Unexpected character `%c' in attribute list of argument element.", yytext[0]);
7213         YY_BREAK
7214 case 101:
7215 YY_RULE_SETUP
7216 FAIL("Bad attribute `%s' in `argument' element start tag.",yytext);
7217         YY_BREAK
7218 case YY_STATE_EOF(AL_surfxml_argument):
7219 FAIL("EOF in attribute list of `argument' element.");
7220         YY_BREAK
7221
7222 case 102:
7223 /* rule 102 can match eol */
7224 YY_RULE_SETUP
7225 {
7226   LEAVE;
7227   ETag_surfxml_argument();
7228   popbuffer(); /* attribute */
7229   switch (YY_START) {
7230    case S_surfxml_actor: case S_surfxml_actor_1: case S_surfxml_actor_2: SET(S_surfxml_actor_2); break;
7231    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
7232   }
7233  }
7234         YY_BREAK
7235 case 103:
7236 /* rule 103 can match eol */
7237 YY_RULE_SETUP
7238 FAIL("Unexpected end-tag `%s': `</argument>' expected.",yytext);
7239         YY_BREAK
7240 case 104:
7241 YY_RULE_SETUP
7242 FAIL("Unexpected character `%c': `</argument>' expected.",yytext[0]);
7243         YY_BREAK
7244 case YY_STATE_EOF(E_surfxml_argument):
7245 FAIL("Premature EOF: `</argument>' expected.");
7246         YY_BREAK
7247
7248 case 105:
7249 /* rule 105 can match eol */
7250 YY_RULE_SETUP
7251 FAIL("Starting tag <backbone> is not allowed here.");
7252         YY_BREAK
7253 case 106:
7254 /* rule 106 can match eol */
7255 YY_RULE_SETUP
7256 {
7257   AX_surfxml_backbone_bandwidth = 0;
7258   surfxml_backbone_bandwidth_isset = 0;
7259   AX_surfxml_backbone_id = 0;
7260   surfxml_backbone_id_isset = 0;
7261   AX_surfxml_backbone_latency = 0;
7262   surfxml_backbone_latency_isset = 0;
7263   ENTER(AL_surfxml_backbone); pushbuffer(0);
7264   }
7265         YY_BREAK
7266
7267 case 107:
7268 /* rule 107 can match eol */
7269 YY_RULE_SETUP
7270 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);
7271         YY_BREAK
7272 case 108:
7273 /* rule 108 can match eol */
7274 YY_RULE_SETUP
7275 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);
7276         YY_BREAK
7277 case 109:
7278 /* rule 109 can match eol */
7279 YY_RULE_SETUP
7280 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);
7281         YY_BREAK
7282 case 110:
7283 /* rule 110 can match eol */
7284 YY_RULE_SETUP
7285 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);
7286         YY_BREAK
7287 case 111:
7288 /* rule 111 can match eol */
7289 YY_RULE_SETUP
7290 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);
7291         YY_BREAK
7292 case 112:
7293 /* rule 112 can match eol */
7294 YY_RULE_SETUP
7295 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);
7296         YY_BREAK
7297 case 113:
7298 YY_RULE_SETUP
7299 {
7300   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
7301   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
7302   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
7303   LEAVE; STag_surfxml_backbone();surfxml_pcdata_ix = 0; ENTER(E_surfxml_backbone);
7304  }
7305         YY_BREAK
7306 case 114:
7307 YY_RULE_SETUP
7308 {
7309   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
7310   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
7311   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
7312   LEAVE; STag_surfxml_backbone(); surfxml_pcdata_ix = 0; ETag_surfxml_backbone(); popbuffer(); /* attribute */
7313   switch (YY_START) {
7314    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7315    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7316    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;
7317    case S_surfxml_zone_1: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
7318   }
7319  }
7320         YY_BREAK
7321 case 115:
7322 YY_RULE_SETUP
7323 FAIL("Unexpected character `%c' in attribute list of backbone element.", yytext[0]);
7324         YY_BREAK
7325 case 116:
7326 YY_RULE_SETUP
7327 FAIL("Bad attribute `%s' in `backbone' element start tag.",yytext);
7328         YY_BREAK
7329 case YY_STATE_EOF(AL_surfxml_backbone):
7330 FAIL("EOF in attribute list of `backbone' element.");
7331         YY_BREAK
7332
7333 case 117:
7334 /* rule 117 can match eol */
7335 YY_RULE_SETUP
7336 {
7337   LEAVE;
7338   ETag_surfxml_backbone();
7339   popbuffer(); /* attribute */
7340   switch (YY_START) {
7341    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7342    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7343    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;
7344    case S_surfxml_zone_1: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
7345   }
7346  }
7347         YY_BREAK
7348 case 118:
7349 /* rule 118 can match eol */
7350 YY_RULE_SETUP
7351 FAIL("Unexpected end-tag `%s': `</backbone>' expected.",yytext);
7352         YY_BREAK
7353 case 119:
7354 YY_RULE_SETUP
7355 FAIL("Unexpected character `%c': `</backbone>' expected.",yytext[0]);
7356         YY_BREAK
7357 case YY_STATE_EOF(E_surfxml_backbone):
7358 FAIL("Premature EOF: `</backbone>' expected.");
7359         YY_BREAK
7360
7361 case 120:
7362 /* rule 120 can match eol */
7363 YY_RULE_SETUP
7364 FAIL("Starting tag <bypassASroute> is not allowed here.");
7365         YY_BREAK
7366 case 121:
7367 /* rule 121 can match eol */
7368 YY_RULE_SETUP
7369 {
7370   AX_surfxml_bypassASroute_dst = 0;
7371   surfxml_bypassASroute_dst_isset = 0;
7372   AX_surfxml_bypassASroute_gw___dst = 0;
7373   surfxml_bypassASroute_gw___dst_isset = 0;
7374   AX_surfxml_bypassASroute_gw___src = 0;
7375   surfxml_bypassASroute_gw___src_isset = 0;
7376   AX_surfxml_bypassASroute_src = 0;
7377   surfxml_bypassASroute_src_isset = 0;
7378   ENTER(AL_surfxml_bypassASroute); pushbuffer(0);
7379   }
7380         YY_BREAK
7381
7382 case 122:
7383 /* rule 122 can match eol */
7384 YY_RULE_SETUP
7385 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);
7386         YY_BREAK
7387 case 123:
7388 /* rule 123 can match eol */
7389 YY_RULE_SETUP
7390 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);
7391         YY_BREAK
7392 case 124:
7393 /* rule 124 can match eol */
7394 YY_RULE_SETUP
7395 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);
7396         YY_BREAK
7397 case 125:
7398 /* rule 125 can match eol */
7399 YY_RULE_SETUP
7400 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);
7401         YY_BREAK
7402 case 126:
7403 /* rule 126 can match eol */
7404 YY_RULE_SETUP
7405 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);
7406         YY_BREAK
7407 case 127:
7408 /* rule 127 can match eol */
7409 YY_RULE_SETUP
7410 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);
7411         YY_BREAK
7412 case 128:
7413 /* rule 128 can match eol */
7414 YY_RULE_SETUP
7415 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);
7416         YY_BREAK
7417 case 129:
7418 /* rule 129 can match eol */
7419 YY_RULE_SETUP
7420 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);
7421         YY_BREAK
7422 case 130:
7423 YY_RULE_SETUP
7424 {
7425   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
7426   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
7427   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
7428   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
7429   LEAVE; STag_surfxml_bypassASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassASroute);
7430  }
7431         YY_BREAK
7432 case 131:
7433 YY_RULE_SETUP
7434 {
7435   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
7436   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
7437   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
7438   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
7439   LEAVE; STag_surfxml_bypassASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */
7440   switch (YY_START) {
7441    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;
7442    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;
7443   }
7444  }
7445         YY_BREAK
7446 case 132:
7447 YY_RULE_SETUP
7448 FAIL("Unexpected character `%c' in attribute list of bypassASroute element.", yytext[0]);
7449         YY_BREAK
7450 case 133:
7451 YY_RULE_SETUP
7452 FAIL("Bad attribute `%s' in `bypassASroute' element start tag.",yytext);
7453         YY_BREAK
7454 case YY_STATE_EOF(AL_surfxml_bypassASroute):
7455 FAIL("EOF in attribute list of `bypassASroute' element.");
7456         YY_BREAK
7457
7458 case 134:
7459 /* rule 134 can match eol */
7460 YY_RULE_SETUP
7461 {
7462   LEAVE;
7463   ETag_surfxml_bypassASroute();
7464   popbuffer(); /* attribute */
7465   switch (YY_START) {
7466    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;
7467    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;
7468   }
7469  }
7470         YY_BREAK
7471 case 135:
7472 /* rule 135 can match eol */
7473 YY_RULE_SETUP
7474 FAIL("Unexpected end-tag `%s': `</bypassASroute>' expected.",yytext);
7475         YY_BREAK
7476 case 136:
7477 YY_RULE_SETUP
7478 FAIL("Unexpected character `%c': `</bypassASroute>' expected.",yytext[0]);
7479         YY_BREAK
7480 case YY_STATE_EOF(E_surfxml_bypassASroute):
7481 case YY_STATE_EOF(S_surfxml_bypassASroute):
7482 case YY_STATE_EOF(S_surfxml_bypassASroute_2):
7483 FAIL("Premature EOF: `</bypassASroute>' expected.");
7484         YY_BREAK
7485
7486 case 137:
7487 /* rule 137 can match eol */
7488 YY_RULE_SETUP
7489 FAIL("Starting tag <bypassRoute> is not allowed here.");
7490         YY_BREAK
7491 case 138:
7492 /* rule 138 can match eol */
7493 YY_RULE_SETUP
7494 {
7495   AX_surfxml_bypassRoute_dst = 0;
7496   surfxml_bypassRoute_dst_isset = 0;
7497   AX_surfxml_bypassRoute_src = 0;
7498   surfxml_bypassRoute_src_isset = 0;
7499   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
7500   }
7501         YY_BREAK
7502
7503 case 139:
7504 /* rule 139 can match eol */
7505 YY_RULE_SETUP
7506 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);
7507         YY_BREAK
7508 case 140:
7509 /* rule 140 can match eol */
7510 YY_RULE_SETUP
7511 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);
7512         YY_BREAK
7513 case 141:
7514 /* rule 141 can match eol */
7515 YY_RULE_SETUP
7516 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);
7517         YY_BREAK
7518 case 142:
7519 /* rule 142 can match eol */
7520 YY_RULE_SETUP
7521 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);
7522         YY_BREAK
7523 case 143:
7524 YY_RULE_SETUP
7525 {
7526   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
7527   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
7528   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
7529  }
7530         YY_BREAK
7531 case 144:
7532 YY_RULE_SETUP
7533 {
7534   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
7535   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
7536   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
7537   switch (YY_START) {
7538    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;
7539    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;
7540   }
7541  }
7542         YY_BREAK
7543 case 145:
7544 YY_RULE_SETUP
7545 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", yytext[0]);
7546         YY_BREAK
7547 case 146:
7548 YY_RULE_SETUP
7549 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",yytext);
7550         YY_BREAK
7551 case YY_STATE_EOF(AL_surfxml_bypassRoute):
7552 FAIL("EOF in attribute list of `bypassRoute' element.");
7553         YY_BREAK
7554
7555 case 147:
7556 /* rule 147 can match eol */
7557 YY_RULE_SETUP
7558 {
7559   LEAVE;
7560   ETag_surfxml_bypassRoute();
7561   popbuffer(); /* attribute */
7562   switch (YY_START) {
7563    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;
7564    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;
7565   }
7566  }
7567         YY_BREAK
7568 case 148:
7569 /* rule 148 can match eol */
7570 YY_RULE_SETUP
7571 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",yytext);
7572         YY_BREAK
7573 case 149:
7574 YY_RULE_SETUP
7575 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",yytext[0]);
7576         YY_BREAK
7577 case YY_STATE_EOF(E_surfxml_bypassRoute):
7578 case YY_STATE_EOF(S_surfxml_bypassRoute):
7579 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
7580 FAIL("Premature EOF: `</bypassRoute>' expected.");
7581         YY_BREAK
7582
7583 case 150:
7584 /* rule 150 can match eol */
7585 YY_RULE_SETUP
7586 FAIL("Starting tag <bypassZoneRoute> is not allowed here.");
7587         YY_BREAK
7588 case 151:
7589 /* rule 151 can match eol */
7590 YY_RULE_SETUP
7591 {
7592   AX_surfxml_bypassZoneRoute_dst = 0;
7593   surfxml_bypassZoneRoute_dst_isset = 0;
7594   AX_surfxml_bypassZoneRoute_gw___dst = 0;
7595   surfxml_bypassZoneRoute_gw___dst_isset = 0;
7596   AX_surfxml_bypassZoneRoute_gw___src = 0;
7597   surfxml_bypassZoneRoute_gw___src_isset = 0;
7598   AX_surfxml_bypassZoneRoute_src = 0;
7599   surfxml_bypassZoneRoute_src_isset = 0;
7600   ENTER(AL_surfxml_bypassZoneRoute); pushbuffer(0);
7601   }
7602         YY_BREAK
7603
7604 case 152:
7605 /* rule 152 can match eol */
7606 YY_RULE_SETUP
7607 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);
7608         YY_BREAK
7609 case 153:
7610 /* rule 153 can match eol */
7611 YY_RULE_SETUP
7612 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);
7613         YY_BREAK
7614 case 154:
7615 /* rule 154 can match eol */
7616 YY_RULE_SETUP
7617 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);
7618         YY_BREAK
7619 case 155:
7620 /* rule 155 can match eol */
7621 YY_RULE_SETUP
7622 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);
7623         YY_BREAK
7624 case 156:
7625 /* rule 156 can match eol */
7626 YY_RULE_SETUP
7627 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);
7628         YY_BREAK
7629 case 157:
7630 /* rule 157 can match eol */
7631 YY_RULE_SETUP
7632 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);
7633         YY_BREAK
7634 case 158:
7635 /* rule 158 can match eol */
7636 YY_RULE_SETUP
7637 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);
7638         YY_BREAK
7639 case 159:
7640 /* rule 159 can match eol */
7641 YY_RULE_SETUP
7642 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);
7643         YY_BREAK
7644 case 160:
7645 YY_RULE_SETUP
7646 {
7647   if (!AX_surfxml_bypassZoneRoute_dst) FAIL("Required attribute `dst' not set for `bypassZoneRoute' element.");
7648   if (!AX_surfxml_bypassZoneRoute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassZoneRoute' element.");
7649   if (!AX_surfxml_bypassZoneRoute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassZoneRoute' element.");
7650   if (!AX_surfxml_bypassZoneRoute_src) FAIL("Required attribute `src' not set for `bypassZoneRoute' element.");
7651   LEAVE; STag_surfxml_bypassZoneRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassZoneRoute);
7652  }
7653         YY_BREAK
7654 case 161:
7655 YY_RULE_SETUP
7656 {
7657   if (!AX_surfxml_bypassZoneRoute_dst) FAIL("Required attribute `dst' not set for `bypassZoneRoute' element.");
7658   if (!AX_surfxml_bypassZoneRoute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassZoneRoute' element.");
7659   if (!AX_surfxml_bypassZoneRoute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassZoneRoute' element.");
7660   if (!AX_surfxml_bypassZoneRoute_src) FAIL("Required attribute `src' not set for `bypassZoneRoute' element.");
7661   LEAVE; STag_surfxml_bypassZoneRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassZoneRoute(); popbuffer(); /* attribute */
7662   switch (YY_START) {
7663    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;
7664    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;
7665   }
7666  }
7667         YY_BREAK
7668 case 162:
7669 YY_RULE_SETUP
7670 FAIL("Unexpected character `%c' in attribute list of bypassZoneRoute element.", yytext[0]);
7671         YY_BREAK
7672 case 163:
7673 YY_RULE_SETUP
7674 FAIL("Bad attribute `%s' in `bypassZoneRoute' element start tag.",yytext);
7675         YY_BREAK
7676 case YY_STATE_EOF(AL_surfxml_bypassZoneRoute):
7677 FAIL("EOF in attribute list of `bypassZoneRoute' element.");
7678         YY_BREAK
7679
7680 case 164:
7681 /* rule 164 can match eol */
7682 YY_RULE_SETUP
7683 {
7684   LEAVE;
7685   ETag_surfxml_bypassZoneRoute();
7686   popbuffer(); /* attribute */
7687   switch (YY_START) {
7688    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;
7689    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;
7690   }
7691  }
7692         YY_BREAK
7693 case 165:
7694 /* rule 165 can match eol */
7695 YY_RULE_SETUP
7696 FAIL("Unexpected end-tag `%s': `</bypassZoneRoute>' expected.",yytext);
7697         YY_BREAK
7698 case 166:
7699 YY_RULE_SETUP
7700 FAIL("Unexpected character `%c': `</bypassZoneRoute>' expected.",yytext[0]);
7701         YY_BREAK
7702 case YY_STATE_EOF(E_surfxml_bypassZoneRoute):
7703 case YY_STATE_EOF(S_surfxml_bypassZoneRoute):
7704 case YY_STATE_EOF(S_surfxml_bypassZoneRoute_2):
7705 FAIL("Premature EOF: `</bypassZoneRoute>' expected.");
7706         YY_BREAK
7707
7708 case 167:
7709 /* rule 167 can match eol */
7710 YY_RULE_SETUP
7711 FAIL("Starting tag <cabinet> is not allowed here.");
7712         YY_BREAK
7713 case 168:
7714 /* rule 168 can match eol */
7715 YY_RULE_SETUP
7716 {
7717   AX_surfxml_cabinet_bw = 0;
7718   surfxml_cabinet_bw_isset = 0;
7719   AX_surfxml_cabinet_id = 0;
7720   surfxml_cabinet_id_isset = 0;
7721   AX_surfxml_cabinet_lat = 0;
7722   surfxml_cabinet_lat_isset = 0;
7723   AX_surfxml_cabinet_prefix = 0;
7724   surfxml_cabinet_prefix_isset = 0;
7725   AX_surfxml_cabinet_radical = 0;
7726   surfxml_cabinet_radical_isset = 0;
7727   AX_surfxml_cabinet_speed = 0;
7728   surfxml_cabinet_speed_isset = 0;
7729   AX_surfxml_cabinet_suffix = 0;
7730   surfxml_cabinet_suffix_isset = 0;
7731   ENTER(AL_surfxml_cabinet); pushbuffer(0);
7732   }
7733         YY_BREAK
7734
7735 case 169:
7736 /* rule 169 can match eol */
7737 YY_RULE_SETUP
7738 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);
7739         YY_BREAK
7740 case 170:
7741 /* rule 170 can match eol */
7742 YY_RULE_SETUP
7743 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);
7744         YY_BREAK
7745 case 171:
7746 /* rule 171 can match eol */
7747 YY_RULE_SETUP
7748 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);
7749         YY_BREAK
7750 case 172:
7751 /* rule 172 can match eol */
7752 YY_RULE_SETUP
7753 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);
7754         YY_BREAK
7755 case 173:
7756 /* rule 173 can match eol */
7757 YY_RULE_SETUP
7758 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);
7759         YY_BREAK
7760 case 174:
7761 /* rule 174 can match eol */
7762 YY_RULE_SETUP
7763 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);
7764         YY_BREAK
7765 case 175:
7766 /* rule 175 can match eol */
7767 YY_RULE_SETUP
7768 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);
7769         YY_BREAK
7770 case 176:
7771 /* rule 176 can match eol */
7772 YY_RULE_SETUP
7773 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);
7774         YY_BREAK
7775 case 177:
7776 /* rule 177 can match eol */
7777 YY_RULE_SETUP
7778 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);
7779         YY_BREAK
7780 case 178:
7781 /* rule 178 can match eol */
7782 YY_RULE_SETUP
7783 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);
7784         YY_BREAK
7785 case 179:
7786 /* rule 179 can match eol */
7787 YY_RULE_SETUP
7788 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);
7789         YY_BREAK
7790 case 180:
7791 /* rule 180 can match eol */
7792 YY_RULE_SETUP
7793 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);
7794         YY_BREAK
7795 case 181:
7796 /* rule 181 can match eol */
7797 YY_RULE_SETUP
7798 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);
7799         YY_BREAK
7800 case 182:
7801 /* rule 182 can match eol */
7802 YY_RULE_SETUP
7803 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);
7804         YY_BREAK
7805 case 183:
7806 YY_RULE_SETUP
7807 {
7808   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7809   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7810   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7811   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7812   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7813   if (!AX_surfxml_cabinet_speed) FAIL("Required attribute `speed' not set for `cabinet' element.");
7814   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7815   LEAVE; STag_surfxml_cabinet();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cabinet);
7816  }
7817         YY_BREAK
7818 case 184:
7819 YY_RULE_SETUP
7820 {
7821   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7822   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7823   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7824   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7825   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7826   if (!AX_surfxml_cabinet_speed) FAIL("Required attribute `speed' not set for `cabinet' element.");
7827   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7828   LEAVE; STag_surfxml_cabinet(); surfxml_pcdata_ix = 0; ETag_surfxml_cabinet(); popbuffer(); /* attribute */
7829   switch (YY_START) {
7830    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7831    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7832    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
7833    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;
7834    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;
7835   }
7836  }
7837         YY_BREAK
7838 case 185:
7839 YY_RULE_SETUP
7840 FAIL("Unexpected character `%c' in attribute list of cabinet element.", yytext[0]);
7841         YY_BREAK
7842 case 186:
7843 YY_RULE_SETUP
7844 FAIL("Bad attribute `%s' in `cabinet' element start tag.",yytext);
7845         YY_BREAK
7846 case YY_STATE_EOF(AL_surfxml_cabinet):
7847 FAIL("EOF in attribute list of `cabinet' element.");
7848         YY_BREAK
7849
7850 case 187:
7851 /* rule 187 can match eol */
7852 YY_RULE_SETUP
7853 {
7854   LEAVE;
7855   ETag_surfxml_cabinet();
7856   popbuffer(); /* attribute */
7857   switch (YY_START) {
7858    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7859    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7860    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
7861    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;
7862    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;
7863   }
7864  }
7865         YY_BREAK
7866 case 188:
7867 /* rule 188 can match eol */
7868 YY_RULE_SETUP
7869 FAIL("Unexpected end-tag `%s': `</cabinet>' expected.",yytext);
7870         YY_BREAK
7871 case 189:
7872 YY_RULE_SETUP
7873 FAIL("Unexpected character `%c': `</cabinet>' expected.",yytext[0]);
7874         YY_BREAK
7875 case YY_STATE_EOF(E_surfxml_cabinet):
7876 FAIL("Premature EOF: `</cabinet>' expected.");
7877         YY_BREAK
7878
7879 case 190:
7880 /* rule 190 can match eol */
7881 YY_RULE_SETUP
7882 FAIL("Starting tag <cluster> is not allowed here.");
7883         YY_BREAK
7884 case 191:
7885 /* rule 191 can match eol */
7886 YY_RULE_SETUP
7887 {
7888   AX_surfxml_cluster_bb___bw = 0;
7889   surfxml_cluster_bb___bw_isset = 0;
7890   AX_surfxml_cluster_bb___lat = 28;
7891   surfxml_cluster_bb___lat_isset = 0;
7892   AX_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
7893   surfxml_cluster_bb___sharing___policy_isset = 0;
7894   AX_surfxml_cluster_bw = 0;
7895   surfxml_cluster_bw_isset = 0;
7896   AX_surfxml_cluster_core = 26;
7897   surfxml_cluster_core_isset = 0;
7898   AX_surfxml_cluster_id = 0;
7899   surfxml_cluster_id_isset = 0;
7900   AX_surfxml_cluster_lat = 0;
7901   surfxml_cluster_lat_isset = 0;
7902   AX_surfxml_cluster_limiter___link = 0;
7903   surfxml_cluster_limiter___link_isset = 0;
7904   AX_surfxml_cluster_loopback___bw = 0;
7905   surfxml_cluster_loopback___bw_isset = 0;
7906   AX_surfxml_cluster_loopback___lat = 0;
7907   surfxml_cluster_loopback___lat_isset = 0;
7908   AX_surfxml_cluster_prefix = 0;
7909   surfxml_cluster_prefix_isset = 0;
7910   AX_surfxml_cluster_radical = 0;
7911   surfxml_cluster_radical_isset = 0;
7912   AX_surfxml_cluster_router___id = 0;
7913   surfxml_cluster_router___id_isset = 0;
7914   AX_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_SPLITDUPLEX;
7915   surfxml_cluster_sharing___policy_isset = 0;
7916   AX_surfxml_cluster_speed = 0;
7917   surfxml_cluster_speed_isset = 0;
7918   AX_surfxml_cluster_suffix = 0;
7919   surfxml_cluster_suffix_isset = 0;
7920   AX_surfxml_cluster_topo___parameters = 0;
7921   surfxml_cluster_topo___parameters_isset = 0;
7922   AX_surfxml_cluster_topology = A_surfxml_cluster_topology_FLAT;
7923   surfxml_cluster_topology_isset = 0;
7924   ENTER(AL_surfxml_cluster); pushbuffer(0);
7925   }
7926         YY_BREAK
7927
7928 case 192:
7929 /* rule 192 can match eol */
7930 YY_RULE_SETUP
7931 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);
7932         YY_BREAK
7933 case 193:
7934 /* rule 193 can match eol */
7935 YY_RULE_SETUP
7936 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);
7937         YY_BREAK
7938 case 194:
7939 /* rule 194 can match eol */
7940 YY_RULE_SETUP
7941 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);
7942         YY_BREAK
7943 case 195:
7944 /* rule 195 can match eol */
7945 YY_RULE_SETUP
7946 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);
7947         YY_BREAK
7948 case 196:
7949 /* rule 196 can match eol */
7950 case 197:
7951 /* rule 197 can match eol */
7952 YY_RULE_SETUP
7953 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
7954         YY_BREAK
7955 case 198:
7956 /* rule 198 can match eol */
7957 case 199:
7958 /* rule 199 can match eol */
7959 YY_RULE_SETUP
7960 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_FATPIPE;
7961         YY_BREAK
7962 case 200:
7963 /* rule 200 can match eol */
7964 YY_RULE_SETUP
7965 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);
7966         YY_BREAK
7967 case 201:
7968 /* rule 201 can match eol */
7969 YY_RULE_SETUP
7970 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);
7971         YY_BREAK
7972 case 202:
7973 /* rule 202 can match eol */
7974 YY_RULE_SETUP
7975 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);
7976         YY_BREAK
7977 case 203:
7978 /* rule 203 can match eol */
7979 YY_RULE_SETUP
7980 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);
7981         YY_BREAK
7982 case 204:
7983 /* rule 204 can match eol */
7984 YY_RULE_SETUP
7985 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);
7986         YY_BREAK
7987 case 205:
7988 /* rule 205 can match eol */
7989 YY_RULE_SETUP
7990 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);
7991         YY_BREAK
7992 case 206:
7993 /* rule 206 can match eol */
7994 YY_RULE_SETUP
7995 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);
7996         YY_BREAK
7997 case 207:
7998 /* rule 207 can match eol */
7999 YY_RULE_SETUP
8000 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);
8001         YY_BREAK
8002 case 208:
8003 /* rule 208 can match eol */
8004 YY_RULE_SETUP
8005 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);
8006         YY_BREAK
8007 case 209:
8008 /* rule 209 can match eol */
8009 YY_RULE_SETUP
8010 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);
8011         YY_BREAK
8012 case 210:
8013 /* rule 210 can match eol */
8014 YY_RULE_SETUP
8015 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);
8016         YY_BREAK
8017 case 211:
8018 /* rule 211 can match eol */
8019 YY_RULE_SETUP
8020 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);
8021         YY_BREAK
8022 case 212:
8023 /* rule 212 can match eol */
8024 YY_RULE_SETUP
8025 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);
8026         YY_BREAK
8027 case 213:
8028 /* rule 213 can match eol */
8029 YY_RULE_SETUP
8030 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);
8031         YY_BREAK
8032 case 214:
8033 /* rule 214 can match eol */
8034 YY_RULE_SETUP
8035 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);
8036         YY_BREAK
8037 case 215:
8038 /* rule 215 can match eol */
8039 YY_RULE_SETUP
8040 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);
8041         YY_BREAK
8042 case 216:
8043 /* rule 216 can match eol */
8044 YY_RULE_SETUP
8045 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);
8046         YY_BREAK
8047 case 217:
8048 /* rule 217 can match eol */
8049 YY_RULE_SETUP
8050 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);
8051         YY_BREAK
8052 case 218:
8053 /* rule 218 can match eol */
8054 YY_RULE_SETUP
8055 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);
8056         YY_BREAK
8057 case 219:
8058 /* rule 219 can match eol */
8059 YY_RULE_SETUP
8060 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);
8061         YY_BREAK
8062 case 220:
8063 /* rule 220 can match eol */
8064 case 221:
8065 /* rule 221 can match eol */
8066 YY_RULE_SETUP
8067 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_SHARED;
8068         YY_BREAK
8069 case 222:
8070 /* rule 222 can match eol */
8071 case 223:
8072 /* rule 223 can match eol */
8073 YY_RULE_SETUP
8074 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_SPLITDUPLEX;
8075         YY_BREAK
8076 case 224:
8077 /* rule 224 can match eol */
8078 case 225:
8079 /* rule 225 can match eol */
8080 YY_RULE_SETUP
8081 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
8082         YY_BREAK
8083 case 226:
8084 /* rule 226 can match eol */
8085 case 227:
8086 /* rule 227 can match eol */
8087 YY_RULE_SETUP
8088 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FATPIPE;
8089         YY_BREAK
8090 case 228:
8091 /* rule 228 can match eol */
8092 YY_RULE_SETUP
8093 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);
8094         YY_BREAK
8095 case 229:
8096 /* rule 229 can match eol */
8097 YY_RULE_SETUP
8098 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);
8099         YY_BREAK
8100 case 230:
8101 /* rule 230 can match eol */
8102 YY_RULE_SETUP
8103 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);
8104         YY_BREAK
8105 case 231:
8106 /* rule 231 can match eol */
8107 YY_RULE_SETUP
8108 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);
8109         YY_BREAK
8110 case 232:
8111 /* rule 232 can match eol */
8112 YY_RULE_SETUP
8113 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);
8114         YY_BREAK
8115 case 233:
8116 /* rule 233 can match eol */
8117 YY_RULE_SETUP
8118 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);
8119         YY_BREAK
8120 case 234:
8121 /* rule 234 can match eol */
8122 case 235:
8123 /* rule 235 can match eol */
8124 YY_RULE_SETUP
8125 A_surfxml_cluster_topology = A_surfxml_cluster_topology_FLAT;
8126         YY_BREAK
8127 case 236:
8128 /* rule 236 can match eol */
8129 case 237:
8130 /* rule 237 can match eol */
8131 YY_RULE_SETUP
8132 A_surfxml_cluster_topology = A_surfxml_cluster_topology_TORUS;
8133         YY_BREAK
8134 case 238:
8135 /* rule 238 can match eol */
8136 case 239:
8137 /* rule 239 can match eol */
8138 YY_RULE_SETUP
8139 A_surfxml_cluster_topology = A_surfxml_cluster_topology_FAT___TREE;
8140         YY_BREAK
8141 case 240:
8142 /* rule 240 can match eol */
8143 case 241:
8144 /* rule 241 can match eol */
8145 YY_RULE_SETUP
8146 A_surfxml_cluster_topology = A_surfxml_cluster_topology_DRAGONFLY;
8147         YY_BREAK
8148 case 242:
8149 YY_RULE_SETUP
8150 {
8151   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
8152   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
8153   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
8154   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
8155   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
8156   if (!AX_surfxml_cluster_speed) FAIL("Required attribute `speed' not set for `cluster' element.");
8157   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
8158   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(S_surfxml_cluster);
8159  }
8160         YY_BREAK
8161 case 243:
8162 YY_RULE_SETUP
8163 {
8164   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
8165   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
8166   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
8167   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
8168   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
8169   if (!AX_surfxml_cluster_speed) FAIL("Required attribute `speed' not set for `cluster' element.");
8170   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
8171   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
8172   switch (YY_START) {
8173    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;
8174    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
8175    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;
8176    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;
8177   }
8178  }
8179         YY_BREAK
8180 case 244:
8181 YY_RULE_SETUP
8182 FAIL("Unexpected character `%c' in attribute list of cluster element.", yytext[0]);
8183         YY_BREAK
8184 case 245:
8185 YY_RULE_SETUP
8186 FAIL("Bad attribute `%s' in `cluster' element start tag.",yytext);
8187         YY_BREAK
8188 case YY_STATE_EOF(AL_surfxml_cluster):
8189 FAIL("EOF in attribute list of `cluster' element.");
8190         YY_BREAK
8191
8192 case 246:
8193 /* rule 246 can match eol */
8194 YY_RULE_SETUP
8195 {
8196   LEAVE;
8197   ETag_surfxml_cluster();
8198   popbuffer(); /* attribute */
8199   switch (YY_START) {
8200    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;
8201    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
8202    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;
8203    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;
8204   }
8205  }
8206         YY_BREAK
8207 case 247:
8208 /* rule 247 can match eol */
8209 YY_RULE_SETUP
8210 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",yytext);
8211         YY_BREAK
8212 case 248:
8213 YY_RULE_SETUP
8214 FAIL("Unexpected character `%c': `</cluster>' expected.",yytext[0]);
8215         YY_BREAK
8216 case YY_STATE_EOF(E_surfxml_cluster):
8217 case YY_STATE_EOF(S_surfxml_cluster):
8218 case YY_STATE_EOF(S_surfxml_cluster_2):
8219 FAIL("Premature EOF: `</cluster>' expected.");
8220         YY_BREAK
8221
8222 case 249:
8223 /* rule 249 can match eol */
8224 YY_RULE_SETUP
8225 FAIL("Starting tag <config> is not allowed here.");
8226         YY_BREAK
8227 case 250:
8228 /* rule 250 can match eol */
8229 YY_RULE_SETUP
8230 {
8231   AX_surfxml_config_id = 0;
8232   surfxml_config_id_isset = 0;
8233   ENTER(AL_surfxml_config); pushbuffer(0);
8234   }
8235         YY_BREAK
8236
8237 case 251:
8238 /* rule 251 can match eol */
8239 YY_RULE_SETUP
8240 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);
8241         YY_BREAK
8242 case 252:
8243 /* rule 252 can match eol */
8244 YY_RULE_SETUP
8245 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);
8246         YY_BREAK
8247 case 253:
8248 YY_RULE_SETUP
8249 {
8250   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
8251  }
8252         YY_BREAK
8253 case 254:
8254 YY_RULE_SETUP
8255 {
8256   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
8257   switch (YY_START) {
8258    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
8259   }
8260  }
8261         YY_BREAK
8262 case 255:
8263 YY_RULE_SETUP
8264 FAIL("Unexpected character `%c' in attribute list of config element.", yytext[0]);
8265         YY_BREAK
8266 case 256:
8267 YY_RULE_SETUP
8268 FAIL("Bad attribute `%s' in `config' element start tag.",yytext);
8269         YY_BREAK
8270 case YY_STATE_EOF(AL_surfxml_config):
8271 FAIL("EOF in attribute list of `config' element.");
8272         YY_BREAK
8273
8274 case 257:
8275 /* rule 257 can match eol */
8276 YY_RULE_SETUP
8277 {
8278   LEAVE;
8279   ETag_surfxml_config();
8280   popbuffer(); /* attribute */
8281   switch (YY_START) {
8282    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
8283   }
8284  }
8285         YY_BREAK
8286 case 258:
8287 /* rule 258 can match eol */
8288 YY_RULE_SETUP
8289 FAIL("Unexpected end-tag `%s': `</config>' expected.",yytext);
8290         YY_BREAK
8291 case 259:
8292 YY_RULE_SETUP
8293 FAIL("Unexpected character `%c': `</config>' expected.",yytext[0]);
8294         YY_BREAK
8295 case YY_STATE_EOF(E_surfxml_config):
8296 case YY_STATE_EOF(S_surfxml_config):
8297 case YY_STATE_EOF(S_surfxml_config_2):
8298 FAIL("Premature EOF: `</config>' expected.");
8299         YY_BREAK
8300
8301 /* <!-- deprecated -->
8302   * <!-- deprecated -->  */
8303 case 260:
8304 /* rule 260 can match eol */
8305 YY_RULE_SETUP
8306 FAIL("Starting tag <host> is not allowed here.");
8307         YY_BREAK
8308 case 261:
8309 /* rule 261 can match eol */
8310 YY_RULE_SETUP
8311 {
8312   AX_surfxml_host_availability___file = 0;
8313   surfxml_host_availability___file_isset = 0;
8314   AX_surfxml_host_coordinates = 0;
8315   surfxml_host_coordinates_isset = 0;
8316   AX_surfxml_host_core = 20;
8317   surfxml_host_core_isset = 0;
8318   AX_surfxml_host_id = 0;
8319   surfxml_host_id_isset = 0;
8320   AX_surfxml_host_pstate = 22;
8321   surfxml_host_pstate_isset = 0;
8322   AX_surfxml_host_speed = 0;
8323   surfxml_host_speed_isset = 0;
8324   AX_surfxml_host_speed___file = 0;
8325   surfxml_host_speed___file_isset = 0;
8326   AX_surfxml_host_state___file = 0;
8327   surfxml_host_state___file_isset = 0;
8328   ENTER(AL_surfxml_host); pushbuffer(0);
8329   }
8330         YY_BREAK
8331
8332 case 262:
8333 /* rule 262 can match eol */
8334 YY_RULE_SETUP
8335 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);
8336         YY_BREAK
8337 case 263:
8338 /* rule 263 can match eol */
8339 YY_RULE_SETUP
8340 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);
8341         YY_BREAK
8342 case 264:
8343 /* rule 264 can match eol */
8344 YY_RULE_SETUP
8345 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);
8346         YY_BREAK
8347 case 265:
8348 /* rule 265 can match eol */
8349 YY_RULE_SETUP
8350 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);
8351         YY_BREAK
8352 case 266:
8353 /* rule 266 can match eol */
8354 YY_RULE_SETUP
8355 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);
8356         YY_BREAK
8357 case 267:
8358 /* rule 267 can match eol */
8359 YY_RULE_SETUP
8360 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);
8361         YY_BREAK
8362 case 268:
8363 /* rule 268 can match eol */
8364 YY_RULE_SETUP
8365 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);
8366         YY_BREAK
8367 case 269:
8368 /* rule 269 can match eol */
8369 YY_RULE_SETUP
8370 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);
8371         YY_BREAK
8372 case 270:
8373 /* rule 270 can match eol */
8374 YY_RULE_SETUP
8375 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);
8376         YY_BREAK
8377 case 271:
8378 /* rule 271 can match eol */
8379 YY_RULE_SETUP
8380 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);
8381         YY_BREAK
8382 case 272:
8383 /* rule 272 can match eol */
8384 YY_RULE_SETUP
8385 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);
8386         YY_BREAK
8387 case 273:
8388 /* rule 273 can match eol */
8389 YY_RULE_SETUP
8390 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);
8391         YY_BREAK
8392 case 274:
8393 /* rule 274 can match eol */
8394 YY_RULE_SETUP
8395 if (surfxml_host_speed___file_isset != 0) {FAIL("Multiple definition of attribute speed_file in <surfxml_host>");} surfxml_host_speed___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_speed___file);
8396         YY_BREAK
8397 case 275:
8398 /* rule 275 can match eol */
8399 YY_RULE_SETUP
8400 if (surfxml_host_speed___file_isset != 0) {FAIL("Multiple definition of attribute speed_file in <surfxml_host>");}  surfxml_host_speed___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_speed___file);
8401         YY_BREAK
8402 case 276:
8403 /* rule 276 can match eol */
8404 YY_RULE_SETUP
8405 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);
8406         YY_BREAK
8407 case 277:
8408 /* rule 277 can match eol */
8409 YY_RULE_SETUP
8410 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);
8411         YY_BREAK
8412 case 278:
8413 YY_RULE_SETUP
8414 {
8415   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
8416   if (!AX_surfxml_host_speed) FAIL("Required attribute `speed' not set for `host' element.");
8417   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
8418  }
8419         YY_BREAK
8420 case 279:
8421 YY_RULE_SETUP
8422 {
8423   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
8424   if (!AX_surfxml_host_speed) FAIL("Required attribute `speed' not set for `host' element.");
8425   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
8426   switch (YY_START) {
8427    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;
8428    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;
8429   }
8430  }
8431         YY_BREAK
8432 case 280:
8433 YY_RULE_SETUP
8434 FAIL("Unexpected character `%c' in attribute list of host element.", yytext[0]);
8435         YY_BREAK
8436 case 281:
8437 YY_RULE_SETUP
8438 FAIL("Bad attribute `%s' in `host' element start tag.",yytext);
8439         YY_BREAK
8440 case YY_STATE_EOF(AL_surfxml_host):
8441 FAIL("EOF in attribute list of `host' element.");
8442         YY_BREAK
8443
8444 case 282:
8445 /* rule 282 can match eol */
8446 YY_RULE_SETUP
8447 {
8448   LEAVE;
8449   ETag_surfxml_host();
8450   popbuffer(); /* attribute */
8451   switch (YY_START) {
8452    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;
8453    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;
8454   }
8455  }
8456         YY_BREAK
8457 case 283:
8458 /* rule 283 can match eol */
8459 YY_RULE_SETUP
8460 FAIL("Unexpected end-tag `%s': `</host>' expected.",yytext);
8461         YY_BREAK
8462 case 284:
8463 YY_RULE_SETUP
8464 FAIL("Unexpected character `%c': `</host>' expected.",yytext[0]);
8465         YY_BREAK
8466 case YY_STATE_EOF(E_surfxml_host):
8467 case YY_STATE_EOF(S_surfxml_host):
8468 case YY_STATE_EOF(S_surfxml_host_2):
8469 FAIL("Premature EOF: `</host>' expected.");
8470         YY_BREAK
8471
8472 case 285:
8473 /* rule 285 can match eol */
8474 YY_RULE_SETUP
8475 FAIL("Starting tag <host_link> is not allowed here.");
8476         YY_BREAK
8477 case 286:
8478 /* rule 286 can match eol */
8479 YY_RULE_SETUP
8480 {
8481   AX_surfxml_host___link_down = 0;
8482   surfxml_host___link_down_isset = 0;
8483   AX_surfxml_host___link_id = 0;
8484   surfxml_host___link_id_isset = 0;
8485   AX_surfxml_host___link_up = 0;
8486   surfxml_host___link_up_isset = 0;
8487   ENTER(AL_surfxml_host___link); pushbuffer(0);
8488   }
8489         YY_BREAK
8490
8491 case 287:
8492 /* rule 287 can match eol */
8493 YY_RULE_SETUP
8494 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);
8495         YY_BREAK
8496 case 288:
8497 /* rule 288 can match eol */
8498 YY_RULE_SETUP
8499 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);
8500         YY_BREAK
8501 case 289:
8502 /* rule 289 can match eol */
8503 YY_RULE_SETUP
8504 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);
8505         YY_BREAK
8506 case 290:
8507 /* rule 290 can match eol */
8508 YY_RULE_SETUP
8509 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);
8510         YY_BREAK
8511 case 291:
8512 /* rule 291 can match eol */
8513 YY_RULE_SETUP
8514 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);
8515         YY_BREAK
8516 case 292:
8517 /* rule 292 can match eol */
8518 YY_RULE_SETUP
8519 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);
8520         YY_BREAK
8521 case 293:
8522 YY_RULE_SETUP
8523 {
8524   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
8525   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
8526   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
8527   LEAVE; STag_surfxml_host___link();surfxml_pcdata_ix = 0; ENTER(E_surfxml_host___link);
8528  }
8529         YY_BREAK
8530 case 294:
8531 YY_RULE_SETUP
8532 {
8533   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
8534   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
8535   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
8536   LEAVE; STag_surfxml_host___link(); surfxml_pcdata_ix = 0; ETag_surfxml_host___link(); popbuffer(); /* attribute */
8537   switch (YY_START) {
8538    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;
8539    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;
8540   }
8541  }
8542         YY_BREAK
8543 case 295:
8544 YY_RULE_SETUP
8545 FAIL("Unexpected character `%c' in attribute list of host_link element.", yytext[0]);
8546         YY_BREAK
8547 case 296:
8548 YY_RULE_SETUP
8549 FAIL("Bad attribute `%s' in `host_link' element start tag.",yytext);
8550         YY_BREAK
8551 case YY_STATE_EOF(AL_surfxml_host___link):
8552 FAIL("EOF in attribute list of `host_link' element.");
8553         YY_BREAK
8554
8555 case 297:
8556 /* rule 297 can match eol */
8557 YY_RULE_SETUP
8558 {
8559   LEAVE;
8560   ETag_surfxml_host___link();
8561   popbuffer(); /* attribute */
8562   switch (YY_START) {
8563    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;
8564    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;
8565   }
8566  }
8567         YY_BREAK
8568 case 298:
8569 /* rule 298 can match eol */
8570 YY_RULE_SETUP
8571 FAIL("Unexpected end-tag `%s': `</host_link>' expected.",yytext);
8572         YY_BREAK
8573 case 299:
8574 YY_RULE_SETUP
8575 FAIL("Unexpected character `%c': `</host_link>' expected.",yytext[0]);
8576         YY_BREAK
8577 case YY_STATE_EOF(E_surfxml_host___link):
8578 FAIL("Premature EOF: `</host_link>' expected.");
8579         YY_BREAK
8580
8581 /* <!-- tag include is deprecated. Not documented, and removed in v3.22 -->  */
8582 case 300:
8583 /* rule 300 can match eol */
8584 YY_RULE_SETUP
8585 FAIL("Starting tag <include> is not allowed here.");
8586         YY_BREAK
8587 case 301:
8588 /* rule 301 can match eol */
8589 YY_RULE_SETUP
8590 {
8591   AX_surfxml_include_file = 0;
8592   surfxml_include_file_isset = 0;
8593   ENTER(AL_surfxml_include); pushbuffer(0);
8594   }
8595         YY_BREAK
8596
8597 case 302:
8598 /* rule 302 can match eol */
8599 YY_RULE_SETUP
8600 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);
8601         YY_BREAK
8602 case 303:
8603 /* rule 303 can match eol */
8604 YY_RULE_SETUP
8605 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);
8606         YY_BREAK
8607 case 304:
8608 YY_RULE_SETUP
8609 {
8610   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
8611   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
8612  }
8613         YY_BREAK
8614 case 305:
8615 YY_RULE_SETUP
8616 {
8617   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
8618   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
8619   switch (YY_START) {
8620    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
8621    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8622    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
8623    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;
8624    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;
8625    case S_surfxml_zone_1: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
8626   }
8627  }
8628         YY_BREAK
8629 case 306:
8630 YY_RULE_SETUP
8631 FAIL("Unexpected character `%c' in attribute list of include element.", yytext[0]);
8632         YY_BREAK
8633 case 307:
8634 YY_RULE_SETUP
8635 FAIL("Bad attribute `%s' in `include' element start tag.",yytext);
8636         YY_BREAK
8637 case YY_STATE_EOF(AL_surfxml_include):
8638 FAIL("EOF in attribute list of `include' element.");
8639         YY_BREAK
8640
8641 case 308:
8642 /* rule 308 can match eol */
8643 YY_RULE_SETUP
8644 {
8645   LEAVE;
8646   ETag_surfxml_include();
8647   popbuffer(); /* attribute */
8648   switch (YY_START) {
8649    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
8650    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8651    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
8652    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;
8653    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;
8654    case S_surfxml_zone_1: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
8655   }
8656  }
8657         YY_BREAK
8658 case 309:
8659 /* rule 309 can match eol */
8660 YY_RULE_SETUP
8661 FAIL("Unexpected end-tag `%s': `</include>' expected.",yytext);
8662         YY_BREAK
8663 case 310:
8664 YY_RULE_SETUP
8665 FAIL("Unexpected character `%c': `</include>' expected.",yytext[0]);
8666         YY_BREAK
8667 case YY_STATE_EOF(E_surfxml_include):
8668 case YY_STATE_EOF(S_surfxml_include):
8669 case YY_STATE_EOF(S_surfxml_include_2):
8670 FAIL("Premature EOF: `</include>' expected.");
8671         YY_BREAK
8672
8673 case 311:
8674 /* rule 311 can match eol */
8675 YY_RULE_SETUP
8676 FAIL("Starting tag <link> is not allowed here.");
8677         YY_BREAK
8678 case 312:
8679 /* rule 312 can match eol */
8680 YY_RULE_SETUP
8681 {
8682   AX_surfxml_link_bandwidth = 0;
8683   surfxml_link_bandwidth_isset = 0;
8684   AX_surfxml_link_bandwidth___file = 0;
8685   surfxml_link_bandwidth___file_isset = 0;
8686   AX_surfxml_link_id = 0;
8687   surfxml_link_id_isset = 0;
8688   AX_surfxml_link_latency = 0;
8689   surfxml_link_latency_isset = 0;
8690   AX_surfxml_link_latency___file = 0;
8691   surfxml_link_latency___file_isset = 0;
8692   AX_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
8693   surfxml_link_sharing___policy_isset = 0;
8694   AX_surfxml_link_state___file = 0;
8695   surfxml_link_state___file_isset = 0;
8696   ENTER(AL_surfxml_link); pushbuffer(0);
8697   }
8698         YY_BREAK
8699
8700 case 313:
8701 /* rule 313 can match eol */
8702 YY_RULE_SETUP
8703 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);
8704         YY_BREAK
8705 case 314:
8706 /* rule 314 can match eol */
8707 YY_RULE_SETUP
8708 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);
8709         YY_BREAK
8710 case 315:
8711 /* rule 315 can match eol */
8712 YY_RULE_SETUP
8713 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);
8714         YY_BREAK
8715 case 316:
8716 /* rule 316 can match eol */
8717 YY_RULE_SETUP
8718 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);
8719         YY_BREAK
8720 case 317:
8721 /* rule 317 can match eol */
8722 YY_RULE_SETUP
8723 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);
8724         YY_BREAK
8725 case 318:
8726 /* rule 318 can match eol */
8727 YY_RULE_SETUP
8728 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);
8729         YY_BREAK
8730 case 319:
8731 /* rule 319 can match eol */
8732 YY_RULE_SETUP
8733 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);
8734         YY_BREAK
8735 case 320:
8736 /* rule 320 can match eol */
8737 YY_RULE_SETUP
8738 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);
8739         YY_BREAK
8740 case 321:
8741 /* rule 321 can match eol */
8742 YY_RULE_SETUP
8743 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);
8744         YY_BREAK
8745 case 322:
8746 /* rule 322 can match eol */
8747 YY_RULE_SETUP
8748 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);
8749         YY_BREAK
8750 case 323:
8751 /* rule 323 can match eol */
8752 case 324:
8753 /* rule 324 can match eol */
8754 YY_RULE_SETUP
8755 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
8756         YY_BREAK
8757 case 325:
8758 /* rule 325 can match eol */
8759 case 326:
8760 /* rule 326 can match eol */
8761 YY_RULE_SETUP
8762 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SPLITDUPLEX;
8763         YY_BREAK
8764 case 327:
8765 /* rule 327 can match eol */
8766 case 328:
8767 /* rule 328 can match eol */
8768 YY_RULE_SETUP
8769 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FULLDUPLEX;
8770         YY_BREAK
8771 case 329:
8772 /* rule 329 can match eol */
8773 case 330:
8774 /* rule 330 can match eol */
8775 YY_RULE_SETUP
8776 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FATPIPE;
8777         YY_BREAK
8778 case 331:
8779 /* rule 331 can match eol */
8780 YY_RULE_SETUP
8781 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);
8782         YY_BREAK
8783 case 332:
8784 /* rule 332 can match eol */
8785 YY_RULE_SETUP
8786 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);
8787         YY_BREAK
8788 case 333:
8789 YY_RULE_SETUP
8790 {
8791   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
8792   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
8793   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
8794  }
8795         YY_BREAK
8796 case 334:
8797 YY_RULE_SETUP
8798 {
8799   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
8800   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
8801   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
8802   switch (YY_START) {
8803    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
8804    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8805    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;
8806    case S_surfxml_zone_1: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
8807   }
8808  }
8809         YY_BREAK
8810 case 335:
8811 YY_RULE_SETUP
8812 FAIL("Unexpected character `%c' in attribute list of link element.", yytext[0]);
8813         YY_BREAK
8814 case 336:
8815 YY_RULE_SETUP
8816 FAIL("Bad attribute `%s' in `link' element start tag.",yytext);
8817         YY_BREAK
8818 case YY_STATE_EOF(AL_surfxml_link):
8819 FAIL("EOF in attribute list of `link' element.");
8820         YY_BREAK
8821
8822 case 337:
8823 /* rule 337 can match eol */
8824 YY_RULE_SETUP
8825 {
8826   LEAVE;
8827   ETag_surfxml_link();
8828   popbuffer(); /* attribute */
8829   switch (YY_START) {
8830    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
8831    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8832    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;
8833    case S_surfxml_zone_1: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
8834   }
8835  }
8836         YY_BREAK
8837 case 338:
8838 /* rule 338 can match eol */
8839 YY_RULE_SETUP
8840 FAIL("Unexpected end-tag `%s': `</link>' expected.",yytext);
8841         YY_BREAK
8842 case 339:
8843 YY_RULE_SETUP
8844 FAIL("Unexpected character `%c': `</link>' expected.",yytext[0]);
8845         YY_BREAK
8846 case YY_STATE_EOF(E_surfxml_link):
8847 case YY_STATE_EOF(S_surfxml_link):
8848 case YY_STATE_EOF(S_surfxml_link_2):
8849 FAIL("Premature EOF: `</link>' expected.");
8850         YY_BREAK
8851
8852 case 340:
8853 /* rule 340 can match eol */
8854 YY_RULE_SETUP
8855 FAIL("Starting tag <link_ctn> is not allowed here.");
8856         YY_BREAK
8857 case 341:
8858 /* rule 341 can match eol */
8859 YY_RULE_SETUP
8860 {
8861   AX_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
8862   surfxml_link___ctn_direction_isset = 0;
8863   AX_surfxml_link___ctn_id = 0;
8864   surfxml_link___ctn_id_isset = 0;
8865   ENTER(AL_surfxml_link___ctn); pushbuffer(0);
8866   }
8867         YY_BREAK
8868
8869 case 342:
8870 /* rule 342 can match eol */
8871 case 343:
8872 /* rule 343 can match eol */
8873 YY_RULE_SETUP
8874 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_UP;
8875         YY_BREAK
8876 case 344:
8877 /* rule 344 can match eol */
8878 case 345:
8879 /* rule 345 can match eol */
8880 YY_RULE_SETUP
8881 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_DOWN;
8882         YY_BREAK
8883 case 346:
8884 /* rule 346 can match eol */
8885 case 347:
8886 /* rule 347 can match eol */
8887 YY_RULE_SETUP
8888 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
8889         YY_BREAK
8890 case 348:
8891 /* rule 348 can match eol */
8892 YY_RULE_SETUP
8893 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);
8894         YY_BREAK
8895 case 349:
8896 /* rule 349 can match eol */
8897 YY_RULE_SETUP
8898 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);
8899         YY_BREAK
8900 case 350:
8901 YY_RULE_SETUP
8902 {
8903   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8904   LEAVE; STag_surfxml_link___ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link___ctn);
8905  }
8906         YY_BREAK
8907 case 351:
8908 YY_RULE_SETUP
8909 {
8910   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8911   LEAVE; STag_surfxml_link___ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link___ctn(); popbuffer(); /* attribute */
8912   switch (YY_START) {
8913    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
8914    case S_surfxml_bypassASroute: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute_2: SET(S_surfxml_bypassASroute_2); break;
8915    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_1: case S_surfxml_bypassRoute_2: SET(S_surfxml_bypassRoute_2); break;
8916    case S_surfxml_bypassZoneRoute: case S_surfxml_bypassZoneRoute_1: case S_surfxml_bypassZoneRoute_2: SET(S_surfxml_bypassZoneRoute_2); break;
8917    case S_surfxml_route: case S_surfxml_route_1: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
8918    case S_surfxml_zoneRoute: case S_surfxml_zoneRoute_1: case S_surfxml_zoneRoute_2: SET(S_surfxml_zoneRoute_2); break;
8919   }
8920  }
8921         YY_BREAK
8922 case 352:
8923 YY_RULE_SETUP
8924 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", yytext[0]);
8925         YY_BREAK
8926 case 353:
8927 YY_RULE_SETUP
8928 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",yytext);
8929         YY_BREAK
8930 case YY_STATE_EOF(AL_surfxml_link___ctn):
8931 FAIL("EOF in attribute list of `link_ctn' element.");
8932         YY_BREAK
8933
8934 case 354:
8935 /* rule 354 can match eol */
8936 YY_RULE_SETUP
8937 {
8938   LEAVE;
8939   ETag_surfxml_link___ctn();
8940   popbuffer(); /* attribute */
8941   switch (YY_START) {
8942    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
8943    case S_surfxml_bypassASroute: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute_2: SET(S_surfxml_bypassASroute_2); break;
8944    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_1: case S_surfxml_bypassRoute_2: SET(S_surfxml_bypassRoute_2); break;
8945    case S_surfxml_bypassZoneRoute: case S_surfxml_bypassZoneRoute_1: case S_surfxml_bypassZoneRoute_2: SET(S_surfxml_bypassZoneRoute_2); break;
8946    case S_surfxml_route: case S_surfxml_route_1: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
8947    case S_surfxml_zoneRoute: case S_surfxml_zoneRoute_1: case S_surfxml_zoneRoute_2: SET(S_surfxml_zoneRoute_2); break;
8948   }
8949  }
8950         YY_BREAK
8951 case 355:
8952 /* rule 355 can match eol */
8953 YY_RULE_SETUP
8954 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",yytext);
8955         YY_BREAK
8956 case 356:
8957 YY_RULE_SETUP
8958 FAIL("Unexpected character `%c': `</link_ctn>' expected.",yytext[0]);
8959         YY_BREAK
8960 case YY_STATE_EOF(E_surfxml_link___ctn):
8961 FAIL("Premature EOF: `</link_ctn>' expected.");
8962         YY_BREAK
8963
8964 /* <!-- <!ATTLIST model_prop key CDATA #REQUIRED> -->
8965   * <!-- <!ATTLIST model_prop key CDATA #REQUIRED> -->  */
8966 case 357:
8967 /* rule 357 can match eol */
8968 YY_RULE_SETUP
8969 FAIL("Starting tag <model_prop> is not allowed here.");
8970         YY_BREAK
8971 case 358:
8972 /* rule 358 can match eol */
8973 YY_RULE_SETUP
8974 {
8975   AX_surfxml_model___prop_id = 0;
8976   surfxml_model___prop_id_isset = 0;
8977   AX_surfxml_model___prop_value = 0;
8978   surfxml_model___prop_value_isset = 0;
8979   ENTER(AL_surfxml_model___prop); pushbuffer(0);
8980   }
8981         YY_BREAK
8982
8983 case 359:
8984 /* rule 359 can match eol */
8985 YY_RULE_SETUP
8986 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);
8987         YY_BREAK
8988 case 360:
8989 /* rule 360 can match eol */
8990 YY_RULE_SETUP
8991 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);
8992         YY_BREAK
8993 case 361:
8994 /* rule 361 can match eol */
8995 YY_RULE_SETUP
8996 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);
8997         YY_BREAK
8998 case 362:
8999 /* rule 362 can match eol */
9000 YY_RULE_SETUP
9001 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);
9002         YY_BREAK
9003 case 363:
9004 YY_RULE_SETUP
9005 {
9006   if (!AX_surfxml_model___prop_id) FAIL("Required attribute `id' not set for `model_prop' element.");
9007   if (!AX_surfxml_model___prop_value) FAIL("Required attribute `value' not set for `model_prop' element.");
9008   LEAVE; STag_surfxml_model___prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_model___prop);
9009  }
9010         YY_BREAK
9011 case 364:
9012 YY_RULE_SETUP
9013 {
9014   if (!AX_surfxml_model___prop_id) FAIL("Required attribute `id' not set for `model_prop' element.");
9015   if (!AX_surfxml_model___prop_value) FAIL("Required attribute `value' not set for `model_prop' element.");
9016   LEAVE; STag_surfxml_model___prop(); surfxml_pcdata_ix = 0; ETag_surfxml_model___prop(); popbuffer(); /* attribute */
9017   switch (YY_START) {
9018    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
9019   }
9020  }
9021         YY_BREAK
9022 case 365:
9023 YY_RULE_SETUP
9024 FAIL("Unexpected character `%c' in attribute list of model_prop element.", yytext[0]);
9025         YY_BREAK
9026 case 366:
9027 YY_RULE_SETUP
9028 FAIL("Bad attribute `%s' in `model_prop' element start tag.",yytext);
9029         YY_BREAK
9030 case YY_STATE_EOF(AL_surfxml_model___prop):
9031 FAIL("EOF in attribute list of `model_prop' element.");
9032         YY_BREAK
9033
9034 case 367:
9035 /* rule 367 can match eol */
9036 YY_RULE_SETUP
9037 {
9038   LEAVE;
9039   ETag_surfxml_model___prop();
9040   popbuffer(); /* attribute */
9041   switch (YY_START) {
9042    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
9043   }
9044  }
9045         YY_BREAK
9046 case 368:
9047 /* rule 368 can match eol */
9048 YY_RULE_SETUP
9049 FAIL("Unexpected end-tag `%s': `</model_prop>' expected.",yytext);
9050         YY_BREAK
9051 case 369:
9052 YY_RULE_SETUP
9053 FAIL("Unexpected character `%c': `</model_prop>' expected.",yytext[0]);
9054         YY_BREAK
9055 case YY_STATE_EOF(E_surfxml_model___prop):
9056 FAIL("Premature EOF: `</model_prop>' expected.");
9057         YY_BREAK
9058
9059 case 370:
9060 /* rule 370 can match eol */
9061 YY_RULE_SETUP
9062 FAIL("Starting tag <mount> is not allowed here.");
9063         YY_BREAK
9064 case 371:
9065 /* rule 371 can match eol */
9066 YY_RULE_SETUP
9067 {
9068   AX_surfxml_mount_name = 0;
9069   surfxml_mount_name_isset = 0;
9070   AX_surfxml_mount_storageId = 0;
9071   surfxml_mount_storageId_isset = 0;
9072   ENTER(AL_surfxml_mount); pushbuffer(0);
9073   }
9074         YY_BREAK
9075
9076 case 372:
9077 /* rule 372 can match eol */
9078 YY_RULE_SETUP
9079 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);
9080         YY_BREAK
9081 case 373:
9082 /* rule 373 can match eol */
9083 YY_RULE_SETUP
9084 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);
9085         YY_BREAK
9086 case 374:
9087 /* rule 374 can match eol */
9088 YY_RULE_SETUP
9089 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);
9090         YY_BREAK
9091 case 375:
9092 /* rule 375 can match eol */
9093 YY_RULE_SETUP
9094 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);
9095         YY_BREAK
9096 case 376:
9097 YY_RULE_SETUP
9098 {
9099   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
9100   if (!AX_surfxml_mount_storageId) FAIL("Required attribute `storageId' not set for `mount' element.");
9101   LEAVE; STag_surfxml_mount();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mount);
9102  }
9103         YY_BREAK
9104 case 377:
9105 YY_RULE_SETUP
9106 {
9107   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
9108   if (!AX_surfxml_mount_storageId) FAIL("Required attribute `storageId' not set for `mount' element.");
9109   LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */
9110   switch (YY_START) {
9111    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
9112   }
9113  }
9114         YY_BREAK
9115 case 378:
9116 YY_RULE_SETUP
9117 FAIL("Unexpected character `%c' in attribute list of mount element.", yytext[0]);
9118         YY_BREAK
9119 case 379:
9120 YY_RULE_SETUP
9121 FAIL("Bad attribute `%s' in `mount' element start tag.",yytext);
9122         YY_BREAK
9123 case YY_STATE_EOF(AL_surfxml_mount):
9124 FAIL("EOF in attribute list of `mount' element.");
9125         YY_BREAK
9126
9127 case 380:
9128 /* rule 380 can match eol */
9129 YY_RULE_SETUP
9130 {
9131   LEAVE;
9132   ETag_surfxml_mount();
9133   popbuffer(); /* attribute */
9134   switch (YY_START) {
9135    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
9136   }
9137  }
9138         YY_BREAK
9139 case 381:
9140 /* rule 381 can match eol */
9141 YY_RULE_SETUP
9142 FAIL("Unexpected end-tag `%s': `</mount>' expected.",yytext);
9143         YY_BREAK
9144 case 382:
9145 YY_RULE_SETUP
9146 FAIL("Unexpected character `%c': `</mount>' expected.",yytext[0]);
9147         YY_BREAK
9148 case YY_STATE_EOF(E_surfxml_mount):
9149 FAIL("Premature EOF: `</mount>' expected.");
9150         YY_BREAK
9151
9152 /* <!-- deprecated -->
9153   * <!-- deprecated -->  */
9154 case 383:
9155 /* rule 383 can match eol */
9156 YY_RULE_SETUP
9157 FAIL("Starting tag <peer> is not allowed here.");
9158         YY_BREAK
9159 case 384:
9160 /* rule 384 can match eol */
9161 YY_RULE_SETUP
9162 {
9163   AX_surfxml_peer_availability___file = 0;
9164   surfxml_peer_availability___file_isset = 0;
9165   AX_surfxml_peer_bw___in = 0;
9166   surfxml_peer_bw___in_isset = 0;
9167   AX_surfxml_peer_bw___out = 0;
9168   surfxml_peer_bw___out_isset = 0;
9169   AX_surfxml_peer_coordinates = 0;
9170   surfxml_peer_coordinates_isset = 0;
9171   AX_surfxml_peer_id = 0;
9172   surfxml_peer_id_isset = 0;
9173   AX_surfxml_peer_lat = 0;
9174   surfxml_peer_lat_isset = 0;
9175   AX_surfxml_peer_speed = 0;
9176   surfxml_peer_speed_isset = 0;
9177   AX_surfxml_peer_speed___file = 0;
9178   surfxml_peer_speed___file_isset = 0;
9179   AX_surfxml_peer_state___file = 0;
9180   surfxml_peer_state___file_isset = 0;
9181   ENTER(AL_surfxml_peer); pushbuffer(0);
9182   }
9183         YY_BREAK
9184
9185 case 385:
9186 /* rule 385 can match eol */
9187 YY_RULE_SETUP
9188 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);
9189         YY_BREAK
9190 case 386:
9191 /* rule 386 can match eol */
9192 YY_RULE_SETUP
9193 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);
9194         YY_BREAK
9195 case 387:
9196 /* rule 387 can match eol */
9197 YY_RULE_SETUP
9198 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);
9199         YY_BREAK
9200 case 388:
9201 /* rule 388 can match eol */
9202 YY_RULE_SETUP
9203 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);
9204         YY_BREAK
9205 case 389:
9206 /* rule 389 can match eol */
9207 YY_RULE_SETUP
9208 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);
9209         YY_BREAK
9210 case 390:
9211 /* rule 390 can match eol */
9212 YY_RULE_SETUP
9213 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);
9214         YY_BREAK
9215 case 391:
9216 /* rule 391 can match eol */
9217 YY_RULE_SETUP
9218 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);
9219         YY_BREAK
9220 case 392:
9221 /* rule 392 can match eol */
9222 YY_RULE_SETUP
9223 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);
9224         YY_BREAK
9225 case 393:
9226 /* rule 393 can match eol */
9227 YY_RULE_SETUP
9228 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);
9229         YY_BREAK
9230 case 394:
9231 /* rule 394 can match eol */
9232 YY_RULE_SETUP
9233 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);
9234         YY_BREAK
9235 case 395:
9236 /* rule 395 can match eol */
9237 YY_RULE_SETUP
9238 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);
9239         YY_BREAK
9240 case 396:
9241 /* rule 396 can match eol */
9242 YY_RULE_SETUP
9243 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);
9244         YY_BREAK
9245 case 397:
9246 /* rule 397 can match eol */
9247 YY_RULE_SETUP
9248 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);
9249         YY_BREAK
9250 case 398:
9251 /* rule 398 can match eol */
9252 YY_RULE_SETUP
9253 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);
9254         YY_BREAK
9255 case 399:
9256 /* rule 399 can match eol */
9257 YY_RULE_SETUP
9258 if (surfxml_peer_speed___file_isset != 0) {FAIL("Multiple definition of attribute speed_file in <surfxml_peer>");} surfxml_peer_speed___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_speed___file);
9259         YY_BREAK
9260 case 400:
9261 /* rule 400 can match eol */
9262 YY_RULE_SETUP
9263 if (surfxml_peer_speed___file_isset != 0) {FAIL("Multiple definition of attribute speed_file in <surfxml_peer>");}  surfxml_peer_speed___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_speed___file);
9264         YY_BREAK
9265 case 401:
9266 /* rule 401 can match eol */
9267 YY_RULE_SETUP
9268 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);
9269         YY_BREAK
9270 case 402:
9271 /* rule 402 can match eol */
9272 YY_RULE_SETUP
9273 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);
9274         YY_BREAK
9275 case 403:
9276 YY_RULE_SETUP
9277 {
9278   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
9279   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
9280   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
9281   if (!AX_surfxml_peer_speed) FAIL("Required attribute `speed' not set for `peer' element.");
9282   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
9283  }
9284         YY_BREAK
9285 case 404:
9286 YY_RULE_SETUP
9287 {
9288   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
9289   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
9290   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
9291   if (!AX_surfxml_peer_speed) FAIL("Required attribute `speed' not set for `peer' element.");
9292   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
9293   switch (YY_START) {
9294    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;
9295    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
9296    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;
9297    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;
9298   }
9299  }
9300         YY_BREAK
9301 case 405:
9302 YY_RULE_SETUP
9303 FAIL("Unexpected character `%c' in attribute list of peer element.", yytext[0]);
9304         YY_BREAK
9305 case 406:
9306 YY_RULE_SETUP
9307 FAIL("Bad attribute `%s' in `peer' element start tag.",yytext);
9308         YY_BREAK
9309 case YY_STATE_EOF(AL_surfxml_peer):
9310 FAIL("EOF in attribute list of `peer' element.");
9311         YY_BREAK
9312
9313 case 407:
9314 /* rule 407 can match eol */
9315 YY_RULE_SETUP
9316 {
9317   LEAVE;
9318   ETag_surfxml_peer();
9319   popbuffer(); /* attribute */
9320   switch (YY_START) {
9321    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;
9322    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
9323    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;
9324    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;
9325   }
9326  }
9327         YY_BREAK
9328 case 408:
9329 /* rule 408 can match eol */
9330 YY_RULE_SETUP
9331 FAIL("Unexpected end-tag `%s': `</peer>' expected.",yytext);
9332         YY_BREAK
9333 case 409:
9334 YY_RULE_SETUP
9335 FAIL("Unexpected character `%c': `</peer>' expected.",yytext[0]);
9336         YY_BREAK
9337 case YY_STATE_EOF(E_surfxml_peer):
9338 FAIL("Premature EOF: `</peer>' expected.");
9339         YY_BREAK
9340
9341 /* <!--
9342   *              DTD of SimGrid platform and deployment files.
9343   * More info: http://simgrid.gforge.inria.fr/simgrid/latest/doc/platform.html
9344   * To upgrade your files, use the tool simgrid_update_xml
9345   * * Things that will change in upcoming version 5 (TODO):
9346   *   - The following tags will be removed:
9347   *     - <include> spits an error since v3.18
9348   *     - <random> does nothing since a very long time
9349   *     - <as>, <asroute>, <bypassZoneRoute> and <process>, deprecated in DTD4.1
9350   *   - FULLDUPLEX sharing will be removed, deprecated in DTD4.2 (v3.19)
9351   * * New in DTD version 4.2b (in SimGrid 3.22): backward compatible change
9352   *  (version is still announced to be 4.2 to not bother users)
9353   *    - In <host> and <peer> availability_file is now speed_file
9354   * * New in DTD version 4.2 (in SimGrid 3.19): backward compatible change (v4 files are valid v4.2 files)
9355   *    - SPLITDUPLEX is the new spelling of the deprecated FULLDUPLEX
9356   * * New in DTD version 4.1 (in SimGrid 3.16): backward compatible change (v4 files are valid v4.1 files)
9357   *    - <zone> can be used as a synonym for the now deprecated <as>
9358   *    - <zoneRoute> can be used as a synonym for the now deprecated <asroute>
9359   *    - <bypassZoneRoute> an be used as a synonym for the now deprecated <bypassAsRoute>
9360   *    - <actor> can be used as a synonym for the now deprecated <process>
9361   * * New in DTD version 4 (in SimGrid 3.13):
9362   *    - Rename (power->speed) the attributes describing the amount of flop
9363   *      that a <host>, <peer>, <cluster> or <cabinet> can deliver per second.
9364   *    - In <trace_connect>, attribute kind="POWER" is now kind="SPEED".
9365   *    - In <host> and <link>, attributes availability and state are gone.
9366   *      It was redundant with state and availability traces, and with peak values.
9367   *    - In <cluster>, cannot set the availability nor state profiles.
9368   *      This was too complex and unused.
9369   *    - The DOCTYPE points to the right URL (this file).
9370   *    - Kill <gpu>. Was not doing anything.
9371   *    - A warning is emitted for unit-less values (they are still accepted).
9372   *      The value 0 can remain unit-less, as its unit does not matter.
9373   *      - speed. Default: 'f' or 'flops'. Also defined:
9374   *         'Yf',         'Zf',         'Ef',       'Pf',        'Tf',        'Gf',        'Mf',        'kf'
9375   *         'yottaflops', 'zettaflops', 'exaflops', 'petaflops', 'teraflops', 'gigaflops', 'megaflops', 'kiloflops'
9376   *      - bandwidth. Default: 'Bps' bytes per second
9377   *        In bytes and powers of 2  (1 KiBps = 1024 Bps): 'EiBps', 'PiBps', 'TiBps', 'GiBps', 'MiBps', 'KiBps'
9378   *        In bits  and powers of 2  (1 Bps = 8 bps)     : 'Eibps', 'Pibps', 'Tibps', 'Gibps', 'Mibps', 'Kibps'
9379   *        In bytes and powers of 10 (1 KBps = 1000 Bps) : 'EBps', 'PBps', 'TBps', 'GBps', 'MBps', 'kBps', 'Bps'
9380   *        In bits  and powers of 10                     : 'Ebps', 'Pbps', 'Tbps', 'Gbps', 'Mbps', 'kbps', 'bps'
9381   *        (Exa and Peta notations were introduced in SimGrid v3.14)
9382   *      - latency. Default: 's' second. Also defined:
9383   *        'w' week, 'd' day, 'h' hour, 'm' minute, 'ms' millisecond, 'us' microsecond, 'ns' nanosecond, 'ps' picosecond
9384   * * New in DTD version 3 (in SimGrid 3.5):
9385   *    - The AS tag were introduced. Every platform should now
9386   *      contain an englobing AS tag.
9387   *    - Routes are now symmetric by default.
9388   *    - Renamed tags (for sake of XML sanity):
9389   *      - LINK:CTN -> LINK_CTN
9390   *      - TRACE:CONNECT -> TRACE_CONNECT
9391   * * New in DTD version 2 (in SimGrid 3.4):
9392   *    - Renamed tags:
9393   *      - CPU -> HOST
9394   *      - NETWORK_LINK -> LINK
9395   *      - ROUTE_ELEMENT ->  LINK:CTN (changed again in v3)
9396   *      - PLATFORM_DESCRIPTION -> PLATFORM
9397   * * New in DTD version 1 (in SimGrid 3.3):
9398   *    - DTD is now versionned with the version attribute of platform
9399   *    - Unit change:
9400   *      - Link bandwidth: from Mb/s to b/s
9401   *      - CPU speed: from MFlop/s to Flop/s
9402   * -->  */
9403 case 410:
9404 /* rule 410 can match eol */
9405 YY_RULE_SETUP
9406 FAIL("Starting tag <platform> is not allowed here.");
9407         YY_BREAK
9408 case 411:
9409 /* rule 411 can match eol */
9410 YY_RULE_SETUP
9411 {
9412   AX_surfxml_platform_version = 1;
9413   surfxml_platform_version_isset = 0;
9414   ENTER(AL_surfxml_platform); pushbuffer(0);
9415   }
9416         YY_BREAK
9417
9418 case 412:
9419 /* rule 412 can match eol */
9420 YY_RULE_SETUP
9421 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);
9422         YY_BREAK
9423 case 413:
9424 /* rule 413 can match eol */
9425 YY_RULE_SETUP
9426 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);
9427         YY_BREAK
9428 case 414:
9429 YY_RULE_SETUP
9430 {
9431   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
9432  }
9433         YY_BREAK
9434 case 415:
9435 YY_RULE_SETUP
9436 {
9437   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
9438   switch (YY_START) {
9439    case ROOT_surfxml_platform: SET(EPILOG); break;
9440   }
9441  }
9442         YY_BREAK
9443 case 416:
9444 YY_RULE_SETUP
9445 FAIL("Unexpected character `%c' in attribute list of platform element.", yytext[0]);
9446         YY_BREAK
9447 case 417:
9448 YY_RULE_SETUP
9449 FAIL("Bad attribute `%s' in `platform' element start tag.",yytext);
9450         YY_BREAK
9451 case YY_STATE_EOF(AL_surfxml_platform):
9452 FAIL("EOF in attribute list of `platform' element.");
9453         YY_BREAK
9454
9455 case 418:
9456 /* rule 418 can match eol */
9457 YY_RULE_SETUP
9458 {
9459   LEAVE;
9460   ETag_surfxml_platform();
9461   popbuffer(); /* attribute */
9462   switch (YY_START) {
9463    case ROOT_surfxml_platform: SET(EPILOG); break;
9464   }
9465  }
9466         YY_BREAK
9467 case 419:
9468 /* rule 419 can match eol */
9469 YY_RULE_SETUP
9470 FAIL("Unexpected end-tag `%s': `</platform>' expected.",yytext);
9471         YY_BREAK
9472 case 420:
9473 YY_RULE_SETUP
9474 FAIL("Unexpected character `%c': `</platform>' expected.",yytext[0]);
9475         YY_BREAK
9476 case YY_STATE_EOF(E_surfxml_platform):
9477 case YY_STATE_EOF(S_surfxml_platform):
9478 case YY_STATE_EOF(S_surfxml_platform_1):
9479 case YY_STATE_EOF(S_surfxml_platform_3):
9480 case YY_STATE_EOF(S_surfxml_platform_4):
9481 case YY_STATE_EOF(S_surfxml_platform_6):
9482 case YY_STATE_EOF(S_surfxml_platform_8):
9483 FAIL("Premature EOF: `</platform>' expected.");
9484         YY_BREAK
9485
9486 case 421:
9487 /* rule 421 can match eol */
9488 YY_RULE_SETUP
9489 FAIL("Starting tag <process> is not allowed here.");
9490         YY_BREAK
9491 case 422:
9492 /* rule 422 can match eol */
9493 YY_RULE_SETUP
9494 {
9495   AX_surfxml_process_function = 0;
9496   surfxml_process_function_isset = 0;
9497   AX_surfxml_process_host = 0;
9498   surfxml_process_host_isset = 0;
9499   AX_surfxml_process_kill___time = 36;
9500   surfxml_process_kill___time_isset = 0;
9501   AX_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
9502   surfxml_process_on___failure_isset = 0;
9503   AX_surfxml_process_start___time = 31;
9504   surfxml_process_start___time_isset = 0;
9505   ENTER(AL_surfxml_process); pushbuffer(0);
9506   }
9507         YY_BREAK
9508
9509 case 423:
9510 /* rule 423 can match eol */
9511 YY_RULE_SETUP
9512 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);
9513         YY_BREAK
9514 case 424:
9515 /* rule 424 can match eol */
9516 YY_RULE_SETUP
9517 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);
9518         YY_BREAK
9519 case 425:
9520 /* rule 425 can match eol */
9521 YY_RULE_SETUP
9522 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);
9523         YY_BREAK
9524 case 426:
9525 /* rule 426 can match eol */
9526 YY_RULE_SETUP
9527 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);
9528         YY_BREAK
9529 case 427:
9530 /* rule 427 can match eol */
9531 YY_RULE_SETUP
9532 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);
9533         YY_BREAK
9534 case 428:
9535 /* rule 428 can match eol */
9536 YY_RULE_SETUP
9537 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);
9538         YY_BREAK
9539 case 429:
9540 /* rule 429 can match eol */
9541 case 430:
9542 /* rule 430 can match eol */
9543 YY_RULE_SETUP
9544 A_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
9545         YY_BREAK
9546 case 431:
9547 /* rule 431 can match eol */
9548 case 432:
9549 /* rule 432 can match eol */
9550 YY_RULE_SETUP
9551 A_surfxml_process_on___failure = A_surfxml_process_on___failure_RESTART;
9552         YY_BREAK
9553 case 433:
9554 /* rule 433 can match eol */
9555 YY_RULE_SETUP
9556 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);
9557         YY_BREAK
9558 case 434:
9559 /* rule 434 can match eol */
9560 YY_RULE_SETUP
9561 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);
9562         YY_BREAK
9563 case 435:
9564 YY_RULE_SETUP
9565 {
9566   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
9567   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
9568   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
9569  }
9570         YY_BREAK
9571 case 436:
9572 YY_RULE_SETUP
9573 {
9574   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
9575   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
9576   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
9577   switch (YY_START) {
9578    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;
9579   }
9580  }
9581         YY_BREAK
9582 case 437:
9583 YY_RULE_SETUP
9584 FAIL("Unexpected character `%c' in attribute list of process element.", yytext[0]);
9585         YY_BREAK
9586 case 438:
9587 YY_RULE_SETUP
9588 FAIL("Bad attribute `%s' in `process' element start tag.",yytext);
9589         YY_BREAK
9590 case YY_STATE_EOF(AL_surfxml_process):
9591 FAIL("EOF in attribute list of `process' element.");
9592         YY_BREAK
9593
9594 case 439:
9595 /* rule 439 can match eol */
9596 YY_RULE_SETUP
9597 {
9598   LEAVE;
9599   ETag_surfxml_process();
9600   popbuffer(); /* attribute */
9601   switch (YY_START) {
9602    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;
9603   }
9604  }
9605         YY_BREAK
9606 case 440:
9607 /* rule 440 can match eol */
9608 YY_RULE_SETUP
9609 FAIL("Unexpected end-tag `%s': `</process>' expected.",yytext);
9610         YY_BREAK
9611 case 441:
9612 YY_RULE_SETUP
9613 FAIL("Unexpected character `%c': `</process>' expected.",yytext[0]);
9614         YY_BREAK
9615 case YY_STATE_EOF(E_surfxml_process):
9616 case YY_STATE_EOF(S_surfxml_process):
9617 case YY_STATE_EOF(S_surfxml_process_2):
9618 FAIL("Premature EOF: `</process>' expected.");
9619         YY_BREAK
9620
9621 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
9622   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
9623 case 442:
9624 /* rule 442 can match eol */
9625 YY_RULE_SETUP
9626 FAIL("Starting tag <prop> is not allowed here.");
9627         YY_BREAK
9628 case 443:
9629 /* rule 443 can match eol */
9630 YY_RULE_SETUP
9631 {
9632   AX_surfxml_prop_id = 0;
9633   surfxml_prop_id_isset = 0;
9634   AX_surfxml_prop_value = 0;
9635   surfxml_prop_value_isset = 0;
9636   ENTER(AL_surfxml_prop); pushbuffer(0);
9637   }
9638         YY_BREAK
9639
9640 case 444:
9641 /* rule 444 can match eol */
9642 YY_RULE_SETUP
9643 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);
9644         YY_BREAK
9645 case 445:
9646 /* rule 445 can match eol */
9647 YY_RULE_SETUP
9648 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);
9649         YY_BREAK
9650 case 446:
9651 /* rule 446 can match eol */
9652 YY_RULE_SETUP
9653 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);
9654         YY_BREAK
9655 case 447:
9656 /* rule 447 can match eol */
9657 YY_RULE_SETUP
9658 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);
9659         YY_BREAK
9660 case 448:
9661 YY_RULE_SETUP
9662 {
9663   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
9664   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
9665   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
9666  }
9667         YY_BREAK
9668 case 449:
9669 YY_RULE_SETUP
9670 {
9671   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
9672   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
9673   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
9674   switch (YY_START) {
9675    case S_surfxml_AS: case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
9676    case S_surfxml_actor: case S_surfxml_actor_1: case S_surfxml_actor_2: SET(S_surfxml_actor_2); break;
9677    case S_surfxml_cluster: case S_surfxml_cluster_1: case S_surfxml_cluster_2: SET(S_surfxml_cluster_2); break;
9678    case S_surfxml_config: case S_surfxml_config_1: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
9679    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
9680    case S_surfxml_link: case S_surfxml_link_1: case S_surfxml_link_2: SET(S_surfxml_link_2); break;
9681    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9682    case S_surfxml_storage: case S_surfxml_storage_1: case S_surfxml_storage_2: SET(S_surfxml_storage_2); break;
9683    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
9684    case S_surfxml_zone: case S_surfxml_zone_2: case S_surfxml_zone_3: SET(S_surfxml_zone_3); break;
9685   }
9686  }
9687         YY_BREAK
9688 case 450:
9689 YY_RULE_SETUP
9690 FAIL("Unexpected character `%c' in attribute list of prop element.", yytext[0]);
9691         YY_BREAK
9692 case 451:
9693 YY_RULE_SETUP
9694 FAIL("Bad attribute `%s' in `prop' element start tag.",yytext);
9695         YY_BREAK
9696 case YY_STATE_EOF(AL_surfxml_prop):
9697 FAIL("EOF in attribute list of `prop' element.");
9698         YY_BREAK
9699
9700 case 452:
9701 /* rule 452 can match eol */
9702 YY_RULE_SETUP
9703 {
9704   LEAVE;
9705   ETag_surfxml_prop();
9706   popbuffer(); /* attribute */
9707   switch (YY_START) {
9708    case S_surfxml_AS: case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
9709    case S_surfxml_actor: case S_surfxml_actor_1: case S_surfxml_actor_2: SET(S_surfxml_actor_2); break;
9710    case S_surfxml_cluster: case S_surfxml_cluster_1: case S_surfxml_cluster_2: SET(S_surfxml_cluster_2); break;
9711    case S_surfxml_config: case S_surfxml_config_1: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
9712    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
9713    case S_surfxml_link: case S_surfxml_link_1: case S_surfxml_link_2: SET(S_surfxml_link_2); break;
9714    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9715    case S_surfxml_storage: case S_surfxml_storage_1: case S_surfxml_storage_2: SET(S_surfxml_storage_2); break;
9716    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
9717    case S_surfxml_zone: case S_surfxml_zone_2: case S_surfxml_zone_3: SET(S_surfxml_zone_3); break;
9718   }
9719  }
9720         YY_BREAK
9721 case 453:
9722 /* rule 453 can match eol */
9723 YY_RULE_SETUP
9724 FAIL("Unexpected end-tag `%s': `</prop>' expected.",yytext);
9725         YY_BREAK
9726 case 454:
9727 YY_RULE_SETUP
9728 FAIL("Unexpected character `%c': `</prop>' expected.",yytext[0]);
9729         YY_BREAK
9730 case YY_STATE_EOF(E_surfxml_prop):
9731 FAIL("Premature EOF: `</prop>' expected.");
9732         YY_BREAK
9733
9734 case 455:
9735 /* rule 455 can match eol */
9736 YY_RULE_SETUP
9737 FAIL("Starting tag <random> is not allowed here.");
9738         YY_BREAK
9739 case 456:
9740 /* rule 456 can match eol */
9741 YY_RULE_SETUP
9742 {
9743   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
9744   surfxml_random_generator_isset = 0;
9745   AX_surfxml_random_id = 0;
9746   surfxml_random_id_isset = 0;
9747   AX_surfxml_random_max = 0;
9748   surfxml_random_max_isset = 0;
9749   AX_surfxml_random_mean = 0;
9750   surfxml_random_mean_isset = 0;
9751   AX_surfxml_random_min = 0;
9752   surfxml_random_min_isset = 0;
9753   AX_surfxml_random_radical = 0;
9754   surfxml_random_radical_isset = 0;
9755   AX_surfxml_random_seed = 5;
9756   surfxml_random_seed_isset = 0;
9757   AX_surfxml_random_std___deviation = 0;
9758   surfxml_random_std___deviation_isset = 0;
9759   ENTER(AL_surfxml_random); pushbuffer(0);
9760   }
9761         YY_BREAK
9762
9763 case 457:
9764 /* rule 457 can match eol */
9765 case 458:
9766 /* rule 458 can match eol */
9767 YY_RULE_SETUP
9768 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
9769         YY_BREAK
9770 case 459:
9771 /* rule 459 can match eol */
9772 case 460:
9773 /* rule 460 can match eol */
9774 YY_RULE_SETUP
9775 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
9776         YY_BREAK
9777 case 461:
9778 /* rule 461 can match eol */
9779 case 462:
9780 /* rule 462 can match eol */
9781 YY_RULE_SETUP
9782 A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
9783         YY_BREAK
9784 case 463:
9785 /* rule 463 can match eol */
9786 case 464:
9787 /* rule 464 can match eol */
9788 YY_RULE_SETUP
9789 A_surfxml_random_generator = A_surfxml_random_generator_NONE;
9790         YY_BREAK
9791 case 465:
9792 /* rule 465 can match eol */
9793 YY_RULE_SETUP
9794 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);
9795         YY_BREAK
9796 case 466:
9797 /* rule 466 can match eol */
9798 YY_RULE_SETUP
9799 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);
9800         YY_BREAK
9801 case 467:
9802 /* rule 467 can match eol */
9803 YY_RULE_SETUP
9804 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);
9805         YY_BREAK
9806 case 468:
9807 /* rule 468 can match eol */
9808 YY_RULE_SETUP
9809 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);
9810         YY_BREAK
9811 case 469:
9812 /* rule 469 can match eol */
9813 YY_RULE_SETUP
9814 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);
9815         YY_BREAK
9816 case 470:
9817 /* rule 470 can match eol */
9818 YY_RULE_SETUP
9819 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);
9820         YY_BREAK
9821 case 471:
9822 /* rule 471 can match eol */
9823 YY_RULE_SETUP
9824 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);
9825         YY_BREAK
9826 case 472:
9827 /* rule 472 can match eol */
9828 YY_RULE_SETUP
9829 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);
9830         YY_BREAK
9831 case 473:
9832 /* rule 473 can match eol */
9833 YY_RULE_SETUP
9834 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);
9835         YY_BREAK
9836 case 474:
9837 /* rule 474 can match eol */
9838 YY_RULE_SETUP
9839 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);
9840         YY_BREAK
9841 case 475:
9842 /* rule 475 can match eol */
9843 YY_RULE_SETUP
9844 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);
9845         YY_BREAK
9846 case 476:
9847 /* rule 476 can match eol */
9848 YY_RULE_SETUP
9849 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);
9850         YY_BREAK
9851 case 477:
9852 /* rule 477 can match eol */
9853 YY_RULE_SETUP
9854 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);
9855         YY_BREAK
9856 case 478:
9857 /* rule 478 can match eol */
9858 YY_RULE_SETUP
9859 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);
9860         YY_BREAK
9861 case 479:
9862 YY_RULE_SETUP
9863 {
9864   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
9865   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
9866   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
9867   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
9868   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
9869   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(E_surfxml_random);
9870  }
9871         YY_BREAK
9872 case 480:
9873 YY_RULE_SETUP
9874 {
9875   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
9876   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
9877   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
9878   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
9879   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
9880   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
9881   switch (YY_START) {
9882    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
9883   }
9884  }
9885         YY_BREAK
9886 case 481:
9887 YY_RULE_SETUP
9888 FAIL("Unexpected character `%c' in attribute list of random element.", yytext[0]);
9889         YY_BREAK
9890 case 482:
9891 YY_RULE_SETUP
9892 FAIL("Bad attribute `%s' in `random' element start tag.",yytext);
9893         YY_BREAK
9894 case YY_STATE_EOF(AL_surfxml_random):
9895 FAIL("EOF in attribute list of `random' element.");
9896         YY_BREAK
9897
9898 case 483:
9899 /* rule 483 can match eol */
9900 YY_RULE_SETUP
9901 {
9902   LEAVE;
9903   ETag_surfxml_random();
9904   popbuffer(); /* attribute */
9905   switch (YY_START) {
9906    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
9907   }
9908  }
9909         YY_BREAK
9910 case 484:
9911 /* rule 484 can match eol */
9912 YY_RULE_SETUP
9913 FAIL("Unexpected end-tag `%s': `</random>' expected.",yytext);
9914         YY_BREAK
9915 case 485:
9916 YY_RULE_SETUP
9917 FAIL("Unexpected character `%c': `</random>' expected.",yytext[0]);
9918         YY_BREAK
9919 case YY_STATE_EOF(E_surfxml_random):
9920 FAIL("Premature EOF: `</random>' expected.");
9921         YY_BREAK
9922
9923 case 486:
9924 /* rule 486 can match eol */
9925 YY_RULE_SETUP
9926 FAIL("Starting tag <route> is not allowed here.");
9927         YY_BREAK
9928 case 487:
9929 /* rule 487 can match eol */
9930 YY_RULE_SETUP
9931 {
9932   AX_surfxml_route_dst = 0;
9933   surfxml_route_dst_isset = 0;
9934   AX_surfxml_route_src = 0;
9935   surfxml_route_src_isset = 0;
9936   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
9937   surfxml_route_symmetrical_isset = 0;
9938   ENTER(AL_surfxml_route); pushbuffer(0);
9939   }
9940         YY_BREAK
9941
9942 case 488:
9943 /* rule 488 can match eol */
9944 YY_RULE_SETUP
9945 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);
9946         YY_BREAK
9947 case 489:
9948 /* rule 489 can match eol */
9949 YY_RULE_SETUP
9950 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);
9951         YY_BREAK
9952 case 490:
9953 /* rule 490 can match eol */
9954 YY_RULE_SETUP
9955 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);
9956         YY_BREAK
9957 case 491:
9958 /* rule 491 can match eol */
9959 YY_RULE_SETUP
9960 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);
9961         YY_BREAK
9962 case 492:
9963 /* rule 492 can match eol */
9964 case 493:
9965 /* rule 493 can match eol */
9966 YY_RULE_SETUP
9967 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
9968         YY_BREAK
9969 case 494:
9970 /* rule 494 can match eol */
9971 case 495:
9972 /* rule 495 can match eol */
9973 YY_RULE_SETUP
9974 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
9975         YY_BREAK
9976 case 496:
9977 /* rule 496 can match eol */
9978 case 497:
9979 /* rule 497 can match eol */
9980 YY_RULE_SETUP
9981 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_yes;
9982         YY_BREAK
9983 case 498:
9984 /* rule 498 can match eol */
9985 case 499:
9986 /* rule 499 can match eol */
9987 YY_RULE_SETUP
9988 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_no;
9989         YY_BREAK
9990 case 500:
9991 YY_RULE_SETUP
9992 {
9993   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
9994   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
9995   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
9996  }
9997         YY_BREAK
9998 case 501:
9999 YY_RULE_SETUP
10000 {
10001   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
10002   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
10003   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
10004   switch (YY_START) {
10005    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;
10006    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;
10007   }
10008  }
10009         YY_BREAK
10010 case 502:
10011 YY_RULE_SETUP
10012 FAIL("Unexpected character `%c' in attribute list of route element.", yytext[0]);
10013         YY_BREAK
10014 case 503:
10015 YY_RULE_SETUP
10016 FAIL("Bad attribute `%s' in `route' element start tag.",yytext);
10017         YY_BREAK
10018 case YY_STATE_EOF(AL_surfxml_route):
10019 FAIL("EOF in attribute list of `route' element.");
10020         YY_BREAK
10021
10022 case 504:
10023 /* rule 504 can match eol */
10024 YY_RULE_SETUP
10025 {
10026   LEAVE;
10027   ETag_surfxml_route();
10028   popbuffer(); /* attribute */
10029   switch (YY_START) {
10030    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;
10031    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;
10032   }
10033  }
10034         YY_BREAK
10035 case 505:
10036 /* rule 505 can match eol */
10037 YY_RULE_SETUP
10038 FAIL("Unexpected end-tag `%s': `</route>' expected.",yytext);
10039         YY_BREAK
10040 case 506:
10041 YY_RULE_SETUP
10042 FAIL("Unexpected character `%c': `</route>' expected.",yytext[0]);
10043         YY_BREAK
10044 case YY_STATE_EOF(E_surfxml_route):
10045 case YY_STATE_EOF(S_surfxml_route):
10046 case YY_STATE_EOF(S_surfxml_route_2):
10047 FAIL("Premature EOF: `</route>' expected.");
10048         YY_BREAK
10049
10050 case 507:
10051 /* rule 507 can match eol */
10052 YY_RULE_SETUP
10053 FAIL("Starting tag <router> is not allowed here.");
10054         YY_BREAK
10055 case 508:
10056 /* rule 508 can match eol */
10057 YY_RULE_SETUP
10058 {
10059   AX_surfxml_router_coordinates = 0;
10060   surfxml_router_coordinates_isset = 0;
10061   AX_surfxml_router_id = 0;
10062   surfxml_router_id_isset = 0;
10063   ENTER(AL_surfxml_router); pushbuffer(0);
10064   }
10065         YY_BREAK
10066
10067 case 509:
10068 /* rule 509 can match eol */
10069 YY_RULE_SETUP
10070 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);
10071         YY_BREAK
10072 case 510:
10073 /* rule 510 can match eol */
10074 YY_RULE_SETUP
10075 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);
10076         YY_BREAK
10077 case 511:
10078 /* rule 511 can match eol */
10079 YY_RULE_SETUP
10080 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);
10081         YY_BREAK
10082 case 512:
10083 /* rule 512 can match eol */
10084 YY_RULE_SETUP
10085 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);
10086         YY_BREAK
10087 case 513:
10088 YY_RULE_SETUP
10089 {
10090   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
10091   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
10092  }
10093         YY_BREAK
10094 case 514:
10095 YY_RULE_SETUP
10096 {
10097   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
10098   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
10099   switch (YY_START) {
10100    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;
10101    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;
10102   }
10103  }
10104         YY_BREAK
10105 case 515:
10106 YY_RULE_SETUP
10107 FAIL("Unexpected character `%c' in attribute list of router element.", yytext[0]);
10108         YY_BREAK
10109 case 516:
10110 YY_RULE_SETUP
10111 FAIL("Bad attribute `%s' in `router' element start tag.",yytext);
10112         YY_BREAK
10113 case YY_STATE_EOF(AL_surfxml_router):
10114 FAIL("EOF in attribute list of `router' element.");
10115         YY_BREAK
10116
10117 case 517:
10118 /* rule 517 can match eol */
10119 YY_RULE_SETUP
10120 {
10121   LEAVE;
10122   ETag_surfxml_router();
10123   popbuffer(); /* attribute */
10124   switch (YY_START) {
10125    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;
10126    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;
10127   }
10128  }
10129         YY_BREAK
10130 case 518:
10131 /* rule 518 can match eol */
10132 YY_RULE_SETUP
10133 FAIL("Unexpected end-tag `%s': `</router>' expected.",yytext);
10134         YY_BREAK
10135 case 519:
10136 YY_RULE_SETUP
10137 FAIL("Unexpected character `%c': `</router>' expected.",yytext[0]);
10138         YY_BREAK
10139 case YY_STATE_EOF(E_surfxml_router):
10140 FAIL("Premature EOF: `</router>' expected.");
10141         YY_BREAK
10142
10143 case 520:
10144 /* rule 520 can match eol */
10145 YY_RULE_SETUP
10146 FAIL("Starting tag <storage> is not allowed here.");
10147         YY_BREAK
10148 case 521:
10149 /* rule 521 can match eol */
10150 YY_RULE_SETUP
10151 {
10152   AX_surfxml_storage_attach = 0;
10153   surfxml_storage_attach_isset = 0;
10154   AX_surfxml_storage_content = 0;
10155   surfxml_storage_content_isset = 0;
10156   AX_surfxml_storage_id = 0;
10157   surfxml_storage_id_isset = 0;
10158   AX_surfxml_storage_typeId = 0;
10159   surfxml_storage_typeId_isset = 0;
10160   ENTER(AL_surfxml_storage); pushbuffer(0);
10161   }
10162         YY_BREAK
10163
10164 case 522:
10165 /* rule 522 can match eol */
10166 YY_RULE_SETUP
10167 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);
10168         YY_BREAK
10169 case 523:
10170 /* rule 523 can match eol */
10171 YY_RULE_SETUP
10172 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);
10173         YY_BREAK
10174 case 524:
10175 /* rule 524 can match eol */
10176 YY_RULE_SETUP
10177 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);
10178         YY_BREAK
10179 case 525:
10180 /* rule 525 can match eol */
10181 YY_RULE_SETUP
10182 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);
10183         YY_BREAK
10184 case 526:
10185 /* rule 526 can match eol */
10186 YY_RULE_SETUP
10187 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);
10188         YY_BREAK
10189 case 527:
10190 /* rule 527 can match eol */
10191 YY_RULE_SETUP
10192 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);
10193         YY_BREAK
10194 case 528:
10195 /* rule 528 can match eol */
10196 YY_RULE_SETUP
10197 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);
10198         YY_BREAK
10199 case 529:
10200 /* rule 529 can match eol */
10201 YY_RULE_SETUP
10202 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);
10203         YY_BREAK
10204 case 530:
10205 YY_RULE_SETUP
10206 {
10207   if (!AX_surfxml_storage_attach) FAIL("Required attribute `attach' not set for `storage' element.");
10208   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
10209   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
10210   LEAVE; STag_surfxml_storage();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage);
10211  }
10212         YY_BREAK
10213 case 531:
10214 YY_RULE_SETUP
10215 {
10216   if (!AX_surfxml_storage_attach) FAIL("Required attribute `attach' not set for `storage' element.");
10217   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
10218   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
10219   LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */
10220   switch (YY_START) {
10221    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;
10222    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;
10223   }
10224  }
10225         YY_BREAK
10226 case 532:
10227 YY_RULE_SETUP
10228 FAIL("Unexpected character `%c' in attribute list of storage element.", yytext[0]);
10229         YY_BREAK
10230 case 533:
10231 YY_RULE_SETUP
10232 FAIL("Bad attribute `%s' in `storage' element start tag.",yytext);
10233         YY_BREAK
10234 case YY_STATE_EOF(AL_surfxml_storage):
10235 FAIL("EOF in attribute list of `storage' element.");
10236         YY_BREAK
10237
10238 case 534:
10239 /* rule 534 can match eol */
10240 YY_RULE_SETUP
10241 {
10242   LEAVE;
10243   ETag_surfxml_storage();
10244   popbuffer(); /* attribute */
10245   switch (YY_START) {
10246    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;
10247    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;
10248   }
10249  }
10250         YY_BREAK
10251 case 535:
10252 /* rule 535 can match eol */
10253 YY_RULE_SETUP
10254 FAIL("Unexpected end-tag `%s': `</storage>' expected.",yytext);
10255         YY_BREAK
10256 case 536:
10257 YY_RULE_SETUP
10258 FAIL("Unexpected character `%c': `</storage>' expected.",yytext[0]);
10259         YY_BREAK
10260 case YY_STATE_EOF(E_surfxml_storage):
10261 case YY_STATE_EOF(S_surfxml_storage):
10262 case YY_STATE_EOF(S_surfxml_storage_2):
10263 FAIL("Premature EOF: `</storage>' expected.");
10264         YY_BREAK
10265
10266 case 537:
10267 /* rule 537 can match eol */
10268 YY_RULE_SETUP
10269 FAIL("Starting tag <storage_type> is not allowed here.");
10270         YY_BREAK
10271 case 538:
10272 /* rule 538 can match eol */
10273 YY_RULE_SETUP
10274 {
10275   AX_surfxml_storage___type_content = 0;
10276   surfxml_storage___type_content_isset = 0;
10277   AX_surfxml_storage___type_id = 0;
10278   surfxml_storage___type_id_isset = 0;
10279   AX_surfxml_storage___type_model = 16;
10280   surfxml_storage___type_model_isset = 0;
10281   AX_surfxml_storage___type_size = 0;
10282   surfxml_storage___type_size_isset = 0;
10283   ENTER(AL_surfxml_storage___type); pushbuffer(0);
10284   }
10285         YY_BREAK
10286
10287 case 539:
10288 /* rule 539 can match eol */
10289 YY_RULE_SETUP
10290 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);
10291         YY_BREAK
10292 case 540:
10293 /* rule 540 can match eol */
10294 YY_RULE_SETUP
10295 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);
10296         YY_BREAK
10297 case 541:
10298 /* rule 541 can match eol */
10299 YY_RULE_SETUP
10300 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);
10301         YY_BREAK
10302 case 542:
10303 /* rule 542 can match eol */
10304 YY_RULE_SETUP
10305 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);
10306         YY_BREAK
10307 case 543:
10308 /* rule 543 can match eol */
10309 YY_RULE_SETUP
10310 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);
10311         YY_BREAK
10312 case 544:
10313 /* rule 544 can match eol */
10314 YY_RULE_SETUP
10315 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);
10316         YY_BREAK
10317 case 545:
10318 /* rule 545 can match eol */
10319 YY_RULE_SETUP
10320 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);
10321         YY_BREAK
10322 case 546:
10323 /* rule 546 can match eol */
10324 YY_RULE_SETUP
10325 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);
10326         YY_BREAK
10327 case 547:
10328 YY_RULE_SETUP
10329 {
10330   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
10331   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
10332   LEAVE; STag_surfxml_storage___type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage___type);
10333  }
10334         YY_BREAK
10335 case 548:
10336 YY_RULE_SETUP
10337 {
10338   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
10339   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
10340   LEAVE; STag_surfxml_storage___type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage___type(); popbuffer(); /* attribute */
10341   switch (YY_START) {
10342    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;
10343    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;
10344   }
10345  }
10346         YY_BREAK
10347 case 549:
10348 YY_RULE_SETUP
10349 FAIL("Unexpected character `%c' in attribute list of storage_type element.", yytext[0]);
10350         YY_BREAK
10351 case 550:
10352 YY_RULE_SETUP
10353 FAIL("Bad attribute `%s' in `storage_type' element start tag.",yytext);
10354         YY_BREAK
10355 case YY_STATE_EOF(AL_surfxml_storage___type):
10356 FAIL("EOF in attribute list of `storage_type' element.");
10357         YY_BREAK
10358
10359 case 551:
10360 /* rule 551 can match eol */
10361 YY_RULE_SETUP
10362 {
10363   LEAVE;
10364   ETag_surfxml_storage___type();
10365   popbuffer(); /* attribute */
10366   switch (YY_START) {
10367    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;
10368    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;
10369   }
10370  }
10371         YY_BREAK
10372 case 552:
10373 /* rule 552 can match eol */
10374 YY_RULE_SETUP
10375 FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",yytext);
10376         YY_BREAK
10377 case 553:
10378 YY_RULE_SETUP
10379 FAIL("Unexpected character `%c': `</storage_type>' expected.",yytext[0]);
10380         YY_BREAK
10381 case YY_STATE_EOF(E_surfxml_storage___type):
10382 case YY_STATE_EOF(S_surfxml_storage___type):
10383 case YY_STATE_EOF(S_surfxml_storage___type_2):
10384 FAIL("Premature EOF: `</storage_type>' expected.");
10385         YY_BREAK
10386
10387 case 554:
10388 /* rule 554 can match eol */
10389 YY_RULE_SETUP
10390 FAIL("Starting tag <trace> is not allowed here.");
10391         YY_BREAK
10392 case 555:
10393 /* rule 555 can match eol */
10394 YY_RULE_SETUP
10395 {
10396   AX_surfxml_trace_file = 0;
10397   surfxml_trace_file_isset = 0;
10398   AX_surfxml_trace_id = 0;
10399   surfxml_trace_id_isset = 0;
10400   AX_surfxml_trace_periodicity = 0;
10401   surfxml_trace_periodicity_isset = 0;
10402   ENTER(AL_surfxml_trace); pushbuffer(0);
10403   }
10404         YY_BREAK
10405
10406 case 556:
10407 /* rule 556 can match eol */
10408 YY_RULE_SETUP
10409 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);
10410         YY_BREAK
10411 case 557:
10412 /* rule 557 can match eol */
10413 YY_RULE_SETUP
10414 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);
10415         YY_BREAK
10416 case 558:
10417 /* rule 558 can match eol */
10418 YY_RULE_SETUP
10419 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);
10420         YY_BREAK
10421 case 559:
10422 /* rule 559 can match eol */
10423 YY_RULE_SETUP
10424 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);
10425         YY_BREAK
10426 case 560:
10427 /* rule 560 can match eol */
10428 YY_RULE_SETUP
10429 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);
10430         YY_BREAK
10431 case 561:
10432 /* rule 561 can match eol */
10433 YY_RULE_SETUP
10434 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);
10435         YY_BREAK
10436 case 562:
10437 YY_RULE_SETUP
10438 {
10439   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
10440   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
10441   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
10442  }
10443         YY_BREAK
10444 case 563:
10445 YY_RULE_SETUP
10446 {
10447   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
10448   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
10449   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
10450   switch (YY_START) {
10451    case S_surfxml_AS_10: case S_surfxml_AS_11: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_9: SET(S_surfxml_AS_11); break;
10452    case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
10453    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
10454    case S_surfxml_AS_1: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
10455    case S_surfxml_AS: case S_surfxml_AS_8: SET(S_surfxml_AS_9); break;
10456    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
10457    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;
10458    case S_surfxml_zone: case S_surfxml_zone_10: case S_surfxml_zone_11: case S_surfxml_zone_1: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_7: case S_surfxml_zone_9: SET(S_surfxml_zone_11); break;
10459    case S_surfxml_zone_13: SET(S_surfxml_zone_14); break;
10460    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;
10461    case S_surfxml_zone_5: SET(S_surfxml_zone_6); break;
10462    case S_surfxml_zone_8: SET(S_surfxml_zone_9); break;
10463   }
10464  }
10465         YY_BREAK
10466 case 564:
10467 YY_RULE_SETUP
10468 FAIL("Unexpected character `%c' in attribute list of trace element.", yytext[0]);
10469         YY_BREAK
10470 case 565:
10471 YY_RULE_SETUP
10472 FAIL("Bad attribute `%s' in `trace' element start tag.",yytext);
10473         YY_BREAK
10474 case YY_STATE_EOF(AL_surfxml_trace):
10475 FAIL("EOF in attribute list of `trace' element.");
10476         YY_BREAK
10477
10478 case 566:
10479 /* rule 566 can match eol */
10480 YY_RULE_SETUP
10481 {
10482   LEAVE;
10483   BUFFERDONE;
10484   ETag_surfxml_trace();
10485   surfxml_pcdata_ix = popbuffer();
10486   popbuffer(); /* attribute */
10487   switch (YY_START) {
10488    case S_surfxml_AS_10: case S_surfxml_AS_11: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_9: SET(S_surfxml_AS_11); break;
10489    case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
10490    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
10491    case S_surfxml_AS_1: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
10492    case S_surfxml_AS: case S_surfxml_AS_8: SET(S_surfxml_AS_9); break;
10493    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
10494    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;
10495    case S_surfxml_zone: case S_surfxml_zone_10: case S_surfxml_zone_11: case S_surfxml_zone_1: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_7: case S_surfxml_zone_9: SET(S_surfxml_zone_11); break;
10496    case S_surfxml_zone_13: SET(S_surfxml_zone_14); break;
10497    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;
10498    case S_surfxml_zone_5: SET(S_surfxml_zone_6); break;
10499    case S_surfxml_zone_8: SET(S_surfxml_zone_9); break;
10500   }
10501  }
10502         YY_BREAK
10503 case 567:
10504 /* rule 567 can match eol */
10505 YY_RULE_SETUP
10506 FAIL("Unexpected end-tag `%s': `</trace>' expected.",yytext);
10507         YY_BREAK
10508 case YY_STATE_EOF(IN_trace):
10509 FAIL("Premature EOF: `</trace>' expected.");
10510         YY_BREAK
10511
10512 case 568:
10513 /* rule 568 can match eol */
10514 YY_RULE_SETUP
10515 FAIL("Starting tag <trace_connect> is not allowed here.");
10516         YY_BREAK
10517 case 569:
10518 /* rule 569 can match eol */
10519 YY_RULE_SETUP
10520 {
10521   AX_surfxml_trace___connect_element = 0;
10522   surfxml_trace___connect_element_isset = 0;
10523   AX_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
10524   surfxml_trace___connect_kind_isset = 0;
10525   AX_surfxml_trace___connect_trace = 0;
10526   surfxml_trace___connect_trace_isset = 0;
10527   ENTER(AL_surfxml_trace___connect); pushbuffer(0);
10528   }
10529         YY_BREAK
10530
10531 case 570:
10532 /* rule 570 can match eol */
10533 YY_RULE_SETUP
10534 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);
10535         YY_BREAK
10536 case 571:
10537 /* rule 571 can match eol */
10538 YY_RULE_SETUP
10539 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);
10540         YY_BREAK
10541 case 572:
10542 /* rule 572 can match eol */
10543 case 573:
10544 /* rule 573 can match eol */
10545 YY_RULE_SETUP
10546 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
10547         YY_BREAK
10548 case 574:
10549 /* rule 574 can match eol */
10550 case 575:
10551 /* rule 575 can match eol */
10552 YY_RULE_SETUP
10553 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_SPEED;
10554         YY_BREAK
10555 case 576:
10556 /* rule 576 can match eol */
10557 case 577:
10558 /* rule 577 can match eol */
10559 YY_RULE_SETUP
10560 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LINK___AVAIL;
10561         YY_BREAK
10562 case 578:
10563 /* rule 578 can match eol */
10564 case 579:
10565 /* rule 579 can match eol */
10566 YY_RULE_SETUP
10567 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_BANDWIDTH;
10568         YY_BREAK
10569 case 580:
10570 /* rule 580 can match eol */
10571 case 581:
10572 /* rule 581 can match eol */
10573 YY_RULE_SETUP
10574 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LATENCY;
10575         YY_BREAK
10576 case 582:
10577 /* rule 582 can match eol */
10578 YY_RULE_SETUP
10579 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);
10580         YY_BREAK
10581 case 583:
10582 /* rule 583 can match eol */
10583 YY_RULE_SETUP
10584 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);
10585         YY_BREAK
10586 case 584:
10587 YY_RULE_SETUP
10588 {
10589   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
10590   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
10591   LEAVE; STag_surfxml_trace___connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace___connect);
10592  }
10593         YY_BREAK
10594 case 585:
10595 YY_RULE_SETUP
10596 {
10597   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
10598   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
10599   LEAVE; STag_surfxml_trace___connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace___connect(); popbuffer(); /* attribute */
10600   switch (YY_START) {
10601    case S_surfxml_AS_10: case S_surfxml_AS_11: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_9: SET(S_surfxml_AS_11); break;
10602    case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
10603    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
10604    case S_surfxml_AS_1: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
10605    case S_surfxml_AS: case S_surfxml_AS_8: SET(S_surfxml_AS_9); break;
10606    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
10607    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;
10608    case S_surfxml_zone: case S_surfxml_zone_10: case S_surfxml_zone_11: case S_surfxml_zone_1: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_7: case S_surfxml_zone_9: SET(S_surfxml_zone_11); break;
10609    case S_surfxml_zone_13: SET(S_surfxml_zone_14); break;
10610    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;
10611    case S_surfxml_zone_5: SET(S_surfxml_zone_6); break;
10612    case S_surfxml_zone_8: SET(S_surfxml_zone_9); break;
10613   }
10614  }
10615         YY_BREAK
10616 case 586:
10617 YY_RULE_SETUP
10618 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", yytext[0]);
10619         YY_BREAK
10620 case 587:
10621 YY_RULE_SETUP
10622 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",yytext);
10623         YY_BREAK
10624 case YY_STATE_EOF(AL_surfxml_trace___connect):
10625 FAIL("EOF in attribute list of `trace_connect' element.");
10626         YY_BREAK
10627
10628 case 588:
10629 /* rule 588 can match eol */
10630 YY_RULE_SETUP
10631 {
10632   LEAVE;
10633   ETag_surfxml_trace___connect();
10634   popbuffer(); /* attribute */
10635   switch (YY_START) {
10636    case S_surfxml_AS_10: case S_surfxml_AS_11: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_9: SET(S_surfxml_AS_11); break;
10637    case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
10638    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
10639    case S_surfxml_AS_1: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
10640    case S_surfxml_AS: case S_surfxml_AS_8: SET(S_surfxml_AS_9); break;
10641    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
10642    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;
10643    case S_surfxml_zone: case S_surfxml_zone_10: case S_surfxml_zone_11: case S_surfxml_zone_1: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_7: case S_surfxml_zone_9: SET(S_surfxml_zone_11); break;
10644    case S_surfxml_zone_13: SET(S_surfxml_zone_14); break;
10645    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;
10646    case S_surfxml_zone_5: SET(S_surfxml_zone_6); break;
10647    case S_surfxml_zone_8: SET(S_surfxml_zone_9); break;
10648   }
10649  }
10650         YY_BREAK
10651 case 589:
10652 /* rule 589 can match eol */
10653 YY_RULE_SETUP
10654 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",yytext);
10655         YY_BREAK
10656 case 590:
10657 YY_RULE_SETUP
10658 FAIL("Unexpected character `%c': `</trace_connect>' expected.",yytext[0]);
10659         YY_BREAK
10660 case YY_STATE_EOF(E_surfxml_trace___connect):
10661 FAIL("Premature EOF: `</trace_connect>' expected.");
10662         YY_BREAK
10663
10664 /* <!-- A zone is either an internal node that contains other zones, 
10665   *      or a  leaf containing hosts and other leaf-like elements -->
10666   *           (((AS|zone|include|link|backbone|cluster|peer|trace|trace_connect)*,
10667   *             (zoneRoute|ASroute|trace|trace_connect|bypassASroute|bypassZoneRoute)*,
10668   *         (trace|trace_connect)*)
10669   *        |((include|storage_type|storage|host|cabinet|router|link|backbone|trace|trace_connect|host_link)*,
10670   *          (route|trace|trace_connect|bypassRoute)*)))>  */
10671 case 591:
10672 /* rule 591 can match eol */
10673 YY_RULE_SETUP
10674 FAIL("Starting tag <zone> is not allowed here.");
10675         YY_BREAK
10676 case 592:
10677 /* rule 592 can match eol */
10678 YY_RULE_SETUP
10679 {
10680   AX_surfxml_zone_id = 0;
10681   surfxml_zone_id_isset = 0;
10682   AX_surfxml_zone_routing = AU_surfxml_zone_routing;
10683   surfxml_zone_routing_isset = 0;
10684   ENTER(AL_surfxml_zone); pushbuffer(0);
10685   }
10686         YY_BREAK
10687
10688 case 593:
10689 /* rule 593 can match eol */
10690 YY_RULE_SETUP
10691 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);
10692         YY_BREAK
10693 case 594:
10694 /* rule 594 can match eol */
10695 YY_RULE_SETUP
10696 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);
10697         YY_BREAK
10698 case 595:
10699 /* rule 595 can match eol */
10700 case 596:
10701 /* rule 596 can match eol */
10702 YY_RULE_SETUP
10703 A_surfxml_zone_routing = A_surfxml_zone_routing_Full;
10704         YY_BREAK
10705 case 597:
10706 /* rule 597 can match eol */
10707 case 598:
10708 /* rule 598 can match eol */
10709 YY_RULE_SETUP
10710 A_surfxml_zone_routing = A_surfxml_zone_routing_Floyd;
10711         YY_BREAK
10712 case 599:
10713 /* rule 599 can match eol */
10714 case 600:
10715 /* rule 600 can match eol */
10716 YY_RULE_SETUP
10717 A_surfxml_zone_routing = A_surfxml_zone_routing_Dijkstra;
10718         YY_BREAK
10719 case 601:
10720 /* rule 601 can match eol */
10721 case 602:
10722 /* rule 602 can match eol */
10723 YY_RULE_SETUP
10724 A_surfxml_zone_routing = A_surfxml_zone_routing_DijkstraCache;
10725         YY_BREAK
10726 case 603:
10727 /* rule 603 can match eol */
10728 case 604:
10729 /* rule 604 can match eol */
10730 YY_RULE_SETUP
10731 A_surfxml_zone_routing = A_surfxml_zone_routing_None;
10732         YY_BREAK
10733 case 605:
10734 /* rule 605 can match eol */
10735 case 606:
10736 /* rule 606 can match eol */
10737 YY_RULE_SETUP
10738 A_surfxml_zone_routing = A_surfxml_zone_routing_Vivaldi;
10739         YY_BREAK
10740 case 607:
10741 /* rule 607 can match eol */
10742 case 608:
10743 /* rule 608 can match eol */
10744 YY_RULE_SETUP
10745 A_surfxml_zone_routing = A_surfxml_zone_routing_Cluster;
10746         YY_BREAK
10747 case 609:
10748 /* rule 609 can match eol */
10749 case 610:
10750 /* rule 610 can match eol */
10751 YY_RULE_SETUP
10752 A_surfxml_zone_routing = A_surfxml_zone_routing_ClusterTorus;
10753         YY_BREAK
10754 case 611:
10755 /* rule 611 can match eol */
10756 case 612:
10757 /* rule 612 can match eol */
10758 YY_RULE_SETUP
10759 A_surfxml_zone_routing = A_surfxml_zone_routing_ClusterFatTree;
10760         YY_BREAK
10761 case 613:
10762 /* rule 613 can match eol */
10763 case 614:
10764 /* rule 614 can match eol */
10765 YY_RULE_SETUP
10766 A_surfxml_zone_routing = A_surfxml_zone_routing_ClusterDragonfly;
10767         YY_BREAK
10768 case 615:
10769 YY_RULE_SETUP
10770 {
10771   if (!AX_surfxml_zone_id) FAIL("Required attribute `id' not set for `zone' element.");
10772   if (!AX_surfxml_zone_routing) FAIL("Required attribute `routing' not set for `zone' element.");
10773   LEAVE; STag_surfxml_zone();surfxml_pcdata_ix = 0; ENTER(S_surfxml_zone);
10774  }
10775         YY_BREAK
10776 case 616:
10777 YY_RULE_SETUP
10778 {
10779   if (!AX_surfxml_zone_id) FAIL("Required attribute `id' not set for `zone' element.");
10780   if (!AX_surfxml_zone_routing) FAIL("Required attribute `routing' not set for `zone' element.");
10781   LEAVE; STag_surfxml_zone(); surfxml_pcdata_ix = 0; ETag_surfxml_zone(); popbuffer(); /* attribute */
10782   switch (YY_START) {
10783    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;
10784    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
10785    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;
10786    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;
10787   }
10788  }
10789         YY_BREAK
10790 case 617:
10791 YY_RULE_SETUP
10792 FAIL("Unexpected character `%c' in attribute list of zone element.", yytext[0]);
10793         YY_BREAK
10794 case 618:
10795 YY_RULE_SETUP
10796 FAIL("Bad attribute `%s' in `zone' element start tag.",yytext);
10797         YY_BREAK
10798 case YY_STATE_EOF(AL_surfxml_zone):
10799 FAIL("EOF in attribute list of `zone' element.");
10800         YY_BREAK
10801
10802 case 619:
10803 /* rule 619 can match eol */
10804 YY_RULE_SETUP
10805 {
10806   LEAVE;
10807   ETag_surfxml_zone();
10808   popbuffer(); /* attribute */
10809   switch (YY_START) {
10810    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;
10811    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
10812    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;
10813    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;
10814   }
10815  }
10816         YY_BREAK
10817 case 620:
10818 /* rule 620 can match eol */
10819 YY_RULE_SETUP
10820 FAIL("Unexpected end-tag `%s': `</zone>' expected.",yytext);
10821         YY_BREAK
10822 case 621:
10823 YY_RULE_SETUP
10824 FAIL("Unexpected character `%c': `</zone>' expected.",yytext[0]);
10825         YY_BREAK
10826 case YY_STATE_EOF(E_surfxml_zone):
10827 case YY_STATE_EOF(S_surfxml_zone):
10828 case YY_STATE_EOF(S_surfxml_zone_1):
10829 case YY_STATE_EOF(S_surfxml_zone_11):
10830 case YY_STATE_EOF(S_surfxml_zone_12):
10831 case YY_STATE_EOF(S_surfxml_zone_14):
10832 case YY_STATE_EOF(S_surfxml_zone_16):
10833 case YY_STATE_EOF(S_surfxml_zone_3):
10834 case YY_STATE_EOF(S_surfxml_zone_4):
10835 case YY_STATE_EOF(S_surfxml_zone_6):
10836 case YY_STATE_EOF(S_surfxml_zone_7):
10837 case YY_STATE_EOF(S_surfxml_zone_9):
10838 FAIL("Premature EOF: `</zone>' expected.");
10839         YY_BREAK
10840
10841 case 622:
10842 /* rule 622 can match eol */
10843 YY_RULE_SETUP
10844 FAIL("Starting tag <zoneRoute> is not allowed here.");
10845         YY_BREAK
10846 case 623:
10847 /* rule 623 can match eol */
10848 YY_RULE_SETUP
10849 {
10850   AX_surfxml_zoneRoute_dst = 0;
10851   surfxml_zoneRoute_dst_isset = 0;
10852   AX_surfxml_zoneRoute_gw___dst = 0;
10853   surfxml_zoneRoute_gw___dst_isset = 0;
10854   AX_surfxml_zoneRoute_gw___src = 0;
10855   surfxml_zoneRoute_gw___src_isset = 0;
10856   AX_surfxml_zoneRoute_src = 0;
10857   surfxml_zoneRoute_src_isset = 0;
10858   AX_surfxml_zoneRoute_symmetrical = A_surfxml_zoneRoute_symmetrical_YES;
10859   surfxml_zoneRoute_symmetrical_isset = 0;
10860   ENTER(AL_surfxml_zoneRoute); pushbuffer(0);
10861   }
10862         YY_BREAK
10863
10864 case 624:
10865 /* rule 624 can match eol */
10866 YY_RULE_SETUP
10867 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);
10868         YY_BREAK
10869 case 625:
10870 /* rule 625 can match eol */
10871 YY_RULE_SETUP
10872 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);
10873         YY_BREAK
10874 case 626:
10875 /* rule 626 can match eol */
10876 YY_RULE_SETUP
10877 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);
10878         YY_BREAK
10879 case 627:
10880 /* rule 627 can match eol */
10881 YY_RULE_SETUP
10882 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);
10883         YY_BREAK
10884 case 628:
10885 /* rule 628 can match eol */
10886 YY_RULE_SETUP
10887 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);
10888         YY_BREAK
10889 case 629:
10890 /* rule 629 can match eol */
10891 YY_RULE_SETUP
10892 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);
10893         YY_BREAK
10894 case 630:
10895 /* rule 630 can match eol */
10896 YY_RULE_SETUP
10897 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);
10898         YY_BREAK
10899 case 631:
10900 /* rule 631 can match eol */
10901 YY_RULE_SETUP
10902 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);
10903         YY_BREAK
10904 case 632:
10905 /* rule 632 can match eol */
10906 case 633:
10907 /* rule 633 can match eol */
10908 YY_RULE_SETUP
10909 A_surfxml_zoneRoute_symmetrical = A_surfxml_zoneRoute_symmetrical_YES;
10910         YY_BREAK
10911 case 634:
10912 /* rule 634 can match eol */
10913 case 635:
10914 /* rule 635 can match eol */
10915 YY_RULE_SETUP
10916 A_surfxml_zoneRoute_symmetrical = A_surfxml_zoneRoute_symmetrical_NO;
10917         YY_BREAK
10918 case 636:
10919 /* rule 636 can match eol */
10920 case 637:
10921 /* rule 637 can match eol */
10922 YY_RULE_SETUP
10923 A_surfxml_zoneRoute_symmetrical = A_surfxml_zoneRoute_symmetrical_yes;
10924         YY_BREAK
10925 case 638:
10926 /* rule 638 can match eol */
10927 case 639:
10928 /* rule 639 can match eol */
10929 YY_RULE_SETUP
10930 A_surfxml_zoneRoute_symmetrical = A_surfxml_zoneRoute_symmetrical_no;
10931         YY_BREAK
10932 case 640:
10933 YY_RULE_SETUP
10934 {
10935   if (!AX_surfxml_zoneRoute_dst) FAIL("Required attribute `dst' not set for `zoneRoute' element.");
10936   if (!AX_surfxml_zoneRoute_gw___dst) FAIL("Required attribute `gw_dst' not set for `zoneRoute' element.");
10937   if (!AX_surfxml_zoneRoute_gw___src) FAIL("Required attribute `gw_src' not set for `zoneRoute' element.");
10938   if (!AX_surfxml_zoneRoute_src) FAIL("Required attribute `src' not set for `zoneRoute' element.");
10939   LEAVE; STag_surfxml_zoneRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_zoneRoute);
10940  }
10941         YY_BREAK
10942 case 641:
10943 YY_RULE_SETUP
10944 {
10945   if (!AX_surfxml_zoneRoute_dst) FAIL("Required attribute `dst' not set for `zoneRoute' element.");
10946   if (!AX_surfxml_zoneRoute_gw___dst) FAIL("Required attribute `gw_dst' not set for `zoneRoute' element.");
10947   if (!AX_surfxml_zoneRoute_gw___src) FAIL("Required attribute `gw_src' not set for `zoneRoute' element.");
10948   if (!AX_surfxml_zoneRoute_src) FAIL("Required attribute `src' not set for `zoneRoute' element.");
10949   LEAVE; STag_surfxml_zoneRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_zoneRoute(); popbuffer(); /* attribute */
10950   switch (YY_START) {
10951    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;
10952    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;
10953   }
10954  }
10955         YY_BREAK
10956 case 642:
10957 YY_RULE_SETUP
10958 FAIL("Unexpected character `%c' in attribute list of zoneRoute element.", yytext[0]);
10959         YY_BREAK
10960 case 643:
10961 YY_RULE_SETUP
10962 FAIL("Bad attribute `%s' in `zoneRoute' element start tag.",yytext);
10963         YY_BREAK
10964 case YY_STATE_EOF(AL_surfxml_zoneRoute):
10965 FAIL("EOF in attribute list of `zoneRoute' element.");
10966         YY_BREAK
10967
10968 case 644:
10969 /* rule 644 can match eol */
10970 YY_RULE_SETUP
10971 {
10972   LEAVE;
10973   ETag_surfxml_zoneRoute();
10974   popbuffer(); /* attribute */
10975   switch (YY_START) {
10976    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;
10977    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;
10978   }
10979  }
10980         YY_BREAK
10981 case 645:
10982 /* rule 645 can match eol */
10983 YY_RULE_SETUP
10984 FAIL("Unexpected end-tag `%s': `</zoneRoute>' expected.",yytext);
10985         YY_BREAK
10986 case 646:
10987 YY_RULE_SETUP
10988 FAIL("Unexpected character `%c': `</zoneRoute>' expected.",yytext[0]);
10989         YY_BREAK
10990 case YY_STATE_EOF(E_surfxml_zoneRoute):
10991 case YY_STATE_EOF(S_surfxml_zoneRoute):
10992 case YY_STATE_EOF(S_surfxml_zoneRoute_2):
10993 FAIL("Premature EOF: `</zoneRoute>' expected.");
10994         YY_BREAK
10995
10996 /* EPILOG: after the root element. */
10997
10998 case 647:
10999 YY_RULE_SETUP
11000 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
11001         YY_BREAK
11002 case YY_STATE_EOF(EPILOG):
11003 SUCCEED;
11004         YY_BREAK
11005
11006 /* CHARACTER DATA. */
11007
11008 /* Non-defined standard entities... */
11009 case 648:
11010 YY_RULE_SETUP
11011 BUFFERPUTC('&');
11012         YY_BREAK
11013 case 649:
11014 YY_RULE_SETUP
11015 BUFFERPUTC('<');
11016         YY_BREAK
11017 case 650:
11018 YY_RULE_SETUP
11019 BUFFERPUTC('>');
11020         YY_BREAK
11021 case 651:
11022 YY_RULE_SETUP
11023 BUFFERPUTC('\'');
11024         YY_BREAK
11025 case 652:
11026 YY_RULE_SETUP
11027 BUFFERPUTC('"');
11028         YY_BREAK
11029 /* Character entities. */
11030 case 653:
11031 YY_RULE_SETUP
11032 BUFFERPUTC((unsigned char)atoi(yytext+2));
11033         YY_BREAK
11034 case 654:
11035 YY_RULE_SETUP
11036 BUFFERPUTC((unsigned char)strtol(yytext+3,NULL,16));
11037         YY_BREAK
11038
11039 case 655:
11040 /* rule 655 can match eol */
11041 case 656:
11042 /* rule 656 can match eol */
11043 case 657:
11044 /* rule 657 can match eol */
11045 case 658:
11046 /* rule 658 can match eol */
11047 YY_RULE_SETUP
11048 BUFFERPUTC('\n');
11049         YY_BREAK
11050
11051 case 659:
11052 YY_RULE_SETUP
11053 ENTER(CDATA);
11054         YY_BREAK
11055 case 660:
11056 YY_RULE_SETUP
11057 FAIL("Unexpected `]""]>' in character data.");
11058         YY_BREAK
11059
11060 case 661:
11061 YY_RULE_SETUP
11062 BUFFERDONE; LEAVE;
11063         YY_BREAK
11064 case YY_STATE_EOF(VALUE1):
11065 FAIL("EOF in literal (\"'\" expected).");
11066         YY_BREAK
11067
11068 case 662:
11069 YY_RULE_SETUP
11070 BUFFERDONE; LEAVE;
11071         YY_BREAK
11072 case YY_STATE_EOF(VALUE2):
11073 FAIL("EOF in literal (`\"' expected).");
11074         YY_BREAK
11075
11076 case 663:
11077 /* rule 663 can match eol */
11078 YY_RULE_SETUP
11079 BUFFERPUTC(yytext[0]);
11080         YY_BREAK
11081 case 664:
11082 YY_RULE_SETUP
11083 FAIL("Spurious `%c' in character data.",yytext[0]);
11084         YY_BREAK
11085
11086 case 665:
11087 YY_RULE_SETUP
11088 LEAVE;
11089         YY_BREAK
11090 /* "]""]"               BUFFERPUTC(yytext[0]); BUFFERPUTC(yytext[1]); */
11091 case 666:
11092 YY_RULE_SETUP
11093 BUFFERPUTC(yytext[0]);
11094         YY_BREAK
11095 case YY_STATE_EOF(CDATA):
11096 FAIL("EOF in CDATA section.");
11097         YY_BREAK
11098
11099 /* Impossible rules to avoid warnings from flex(1). */
11100 /* Ideally, this should be replaced by code in flexml.pl that
11101     generates just the states not covered by other rules. */
11102
11103 case 667:
11104 /* rule 667 can match eol */
11105 YY_RULE_SETUP
11106 FAIL("Syntax error on character `%c'.", yytext[0]);
11107         YY_BREAK
11108
11109 case 668:
11110 YY_RULE_SETUP
11111 ECHO;
11112         YY_BREAK
11113 case YY_STATE_EOF(INITIAL):
11114 case YY_STATE_EOF(S_surfxml_AS_2):
11115 case YY_STATE_EOF(S_surfxml_AS_5):
11116 case YY_STATE_EOF(S_surfxml_AS_8):
11117 case YY_STATE_EOF(S_surfxml_AS_10):
11118 case YY_STATE_EOF(S_surfxml_AS_13):
11119 case YY_STATE_EOF(S_surfxml_AS_15):
11120 case YY_STATE_EOF(S_surfxml_ASroute_1):
11121 case YY_STATE_EOF(S_surfxml_actor_1):
11122 case YY_STATE_EOF(S_surfxml_bypassASroute_1):
11123 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
11124 case YY_STATE_EOF(S_surfxml_bypassZoneRoute_1):
11125 case YY_STATE_EOF(S_surfxml_cluster_1):
11126 case YY_STATE_EOF(S_surfxml_config_1):
11127 case YY_STATE_EOF(S_surfxml_host_1):
11128 case YY_STATE_EOF(S_surfxml_include_1):
11129 case YY_STATE_EOF(S_surfxml_link_1):
11130 case YY_STATE_EOF(ROOT_surfxml_platform):
11131 case YY_STATE_EOF(S_surfxml_platform_2):
11132 case YY_STATE_EOF(S_surfxml_platform_5):
11133 case YY_STATE_EOF(S_surfxml_platform_7):
11134 case YY_STATE_EOF(S_surfxml_process_1):
11135 case YY_STATE_EOF(S_surfxml_route_1):
11136 case YY_STATE_EOF(S_surfxml_storage_1):
11137 case YY_STATE_EOF(S_surfxml_storage___type_1):
11138 case YY_STATE_EOF(S_surfxml_zone_2):
11139 case YY_STATE_EOF(S_surfxml_zone_5):
11140 case YY_STATE_EOF(S_surfxml_zone_8):
11141 case YY_STATE_EOF(S_surfxml_zone_10):
11142 case YY_STATE_EOF(S_surfxml_zone_13):
11143 case YY_STATE_EOF(S_surfxml_zone_15):
11144 case YY_STATE_EOF(S_surfxml_zoneRoute_1):
11145 case YY_STATE_EOF(IMPOSSIBLE):
11146         yyterminate();
11147
11148         case YY_END_OF_BUFFER:
11149                 {
11150                 /* Amount of text matched not including the EOB char. */
11151                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
11152
11153                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
11154                 *yy_cp = (yy_hold_char);
11155                 YY_RESTORE_YY_MORE_OFFSET
11156
11157                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
11158                         {
11159                         /* We're scanning a new file or input source.  It's
11160                          * possible that this happened because the user
11161                          * just pointed yyin at a new source and called
11162                          * yylex().  If so, then we have to assure
11163                          * consistency between YY_CURRENT_BUFFER and our
11164                          * globals.  Here is the right place to do so, because
11165                          * this is the first action (other than possibly a
11166                          * back-up) that will match for the new input source.
11167                          */
11168                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
11169                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
11170                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
11171                         }
11172
11173                 /* Note that here we test for yy_c_buf_p "<=" to the position
11174                  * of the first EOB in the buffer, since yy_c_buf_p will
11175                  * already have been incremented past the NUL character
11176                  * (since all states make transitions on EOB to the
11177                  * end-of-buffer state).  Contrast this with the test
11178                  * in input().
11179                  */
11180                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
11181                         { /* This was really a NUL. */
11182                         yy_state_type yy_next_state;
11183
11184                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
11185
11186                         yy_current_state = yy_get_previous_state(  );
11187
11188                         /* Okay, we're now positioned to make the NUL
11189                          * transition.  We couldn't have
11190                          * yy_get_previous_state() go ahead and do it
11191                          * for us because it doesn't know how to deal
11192                          * with the possibility of jamming (and we don't
11193                          * want to build jamming into it because then it
11194                          * will run more slowly).
11195                          */
11196
11197                         yy_next_state = yy_try_NUL_trans( yy_current_state );
11198
11199                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
11200
11201                         if ( yy_next_state )
11202                                 {
11203                                 /* Consume the NUL. */
11204                                 yy_cp = ++(yy_c_buf_p);
11205                                 yy_current_state = yy_next_state;
11206                                 goto yy_match;
11207                                 }
11208
11209                         else
11210                                 {
11211                                 yy_cp = (yy_c_buf_p);
11212                                 goto yy_find_action;
11213                                 }
11214                         }
11215
11216                 else switch ( yy_get_next_buffer(  ) )
11217                         {
11218                         case EOB_ACT_END_OF_FILE:
11219                                 {
11220                                 (yy_did_buffer_switch_on_eof) = 0;
11221
11222                                 if ( yywrap(  ) )
11223                                         {
11224                                         /* Note: because we've taken care in
11225                                          * yy_get_next_buffer() to have set up
11226                                          * yytext, we can now set up
11227                                          * yy_c_buf_p so that if some total
11228                                          * hoser (like flex itself) wants to
11229                                          * call the scanner after we return the
11230                                          * YY_NULL, it'll still work - another
11231                                          * YY_NULL will get returned.
11232                                          */
11233                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
11234
11235                                         yy_act = YY_STATE_EOF(YY_START);
11236                                         goto do_action;
11237                                         }
11238
11239                                 else
11240                                         {
11241                                         if ( ! (yy_did_buffer_switch_on_eof) )
11242                                                 YY_NEW_FILE;
11243                                         }
11244                                 break;
11245                                 }
11246
11247                         case EOB_ACT_CONTINUE_SCAN:
11248                                 (yy_c_buf_p) =
11249                                         (yytext_ptr) + yy_amount_of_matched_text;
11250
11251                                 yy_current_state = yy_get_previous_state(  );
11252
11253                                 yy_cp = (yy_c_buf_p);
11254                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
11255                                 goto yy_match;
11256
11257                         case EOB_ACT_LAST_MATCH:
11258                                 (yy_c_buf_p) =
11259                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
11260
11261                                 yy_current_state = yy_get_previous_state(  );
11262
11263                                 yy_cp = (yy_c_buf_p);
11264                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
11265                                 goto yy_find_action;
11266                         }
11267                 break;
11268                 }
11269
11270         default:
11271                 YY_FATAL_ERROR(
11272                         "fatal flex scanner internal error--no action found" );
11273         } /* end of action switch */
11274                 } /* end of scanning one token */
11275         } /* end of user's declarations */
11276 } /* end of yylex */
11277
11278 /* yy_get_next_buffer - try to read in a new buffer
11279  *
11280  * Returns a code representing an action:
11281  *      EOB_ACT_LAST_MATCH -
11282  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
11283  *      EOB_ACT_END_OF_FILE - end of file
11284  */
11285 static int yy_get_next_buffer (void)
11286 {
11287         char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
11288         char *source = (yytext_ptr);
11289         int number_to_move, i;
11290         int ret_val;
11291
11292         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
11293                 YY_FATAL_ERROR(
11294                 "fatal flex scanner internal error--end of buffer missed" );
11295
11296         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
11297                 { /* Don't try to fill the buffer, so this is an EOF. */
11298                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
11299                         {
11300                         /* We matched a single character, the EOB, so
11301                          * treat this as a final EOF.
11302                          */
11303                         return EOB_ACT_END_OF_FILE;
11304                         }
11305
11306                 else
11307                         {
11308                         /* We matched some text prior to the EOB, first
11309                          * process it.
11310                          */
11311                         return EOB_ACT_LAST_MATCH;
11312                         }
11313                 }
11314
11315         /* Try to read more data. */
11316
11317         /* First move last chars to start of buffer. */
11318         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
11319
11320         for ( i = 0; i < number_to_move; ++i )
11321                 *(dest++) = *(source++);
11322
11323         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
11324                 /* don't do the read, it's not guaranteed to return an EOF,
11325                  * just force an EOF
11326                  */
11327                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
11328
11329         else
11330                 {
11331                         int num_to_read =
11332                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
11333
11334                 while ( num_to_read <= 0 )
11335                         { /* Not enough room in the buffer - grow it. */
11336
11337                         /* just a shorter name for the current buffer */
11338                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
11339
11340                         int yy_c_buf_p_offset =
11341                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
11342
11343                         if ( b->yy_is_our_buffer )
11344                                 {
11345                                 int new_size = b->yy_buf_size * 2;
11346
11347                                 if ( new_size <= 0 )
11348                                         b->yy_buf_size += b->yy_buf_size / 8;
11349                                 else
11350                                         b->yy_buf_size *= 2;
11351
11352                                 b->yy_ch_buf = (char *)
11353                                         /* Include room in for 2 EOB chars. */
11354                                         yyrealloc( (void *) b->yy_ch_buf,
11355                                                          (yy_size_t) (b->yy_buf_size + 2)  );
11356                                 }
11357                         else
11358                                 /* Can't grow it, we don't own it. */
11359                                 b->yy_ch_buf = NULL;
11360
11361                         if ( ! b->yy_ch_buf )
11362                                 YY_FATAL_ERROR(
11363                                 "fatal error - scanner input buffer overflow" );
11364
11365                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
11366
11367                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
11368                                                 number_to_move - 1;
11369
11370                         }
11371
11372                 if ( num_to_read > YY_READ_BUF_SIZE )
11373                         num_to_read = YY_READ_BUF_SIZE;
11374
11375                 /* Read in more data. */
11376                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
11377                         (yy_n_chars), num_to_read );
11378
11379                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
11380                 }
11381
11382         if ( (yy_n_chars) == 0 )
11383                 {
11384                 if ( number_to_move == YY_MORE_ADJ )
11385                         {
11386                         ret_val = EOB_ACT_END_OF_FILE;
11387                         yyrestart( yyin  );
11388                         }
11389
11390                 else
11391                         {
11392                         ret_val = EOB_ACT_LAST_MATCH;
11393                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
11394                                 YY_BUFFER_EOF_PENDING;
11395                         }
11396                 }
11397
11398         else
11399                 ret_val = EOB_ACT_CONTINUE_SCAN;
11400
11401         if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
11402                 /* Extend the array by 50%, plus the number we really need. */
11403                 int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
11404                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
11405                         (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size  );
11406                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
11407                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
11408                 /* "- 2" to take care of EOB's */
11409                 YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
11410         }
11411
11412         (yy_n_chars) += number_to_move;
11413         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
11414         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
11415
11416         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
11417
11418         return ret_val;
11419 }
11420
11421 /* yy_get_previous_state - get the state just before the EOB char was reached */
11422
11423     static yy_state_type yy_get_previous_state (void)
11424 {
11425         yy_state_type yy_current_state;
11426         char *yy_cp;
11427     
11428         yy_current_state = (yy_start);
11429
11430         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
11431                 {
11432                 YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
11433                 if ( yy_accept[yy_current_state] )
11434                         {
11435                         (yy_last_accepting_state) = yy_current_state;
11436                         (yy_last_accepting_cpos) = yy_cp;
11437                         }
11438                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
11439                         {
11440                         yy_current_state = (int) yy_def[yy_current_state];
11441                         if ( yy_current_state >= 4108 )
11442                                 yy_c = yy_meta[yy_c];
11443                         }
11444                 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
11445                 }
11446
11447         return yy_current_state;
11448 }
11449
11450 /* yy_try_NUL_trans - try to make a transition on the NUL character
11451  *
11452  * synopsis
11453  *      next_state = yy_try_NUL_trans( current_state );
11454  */
11455     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
11456 {
11457         int yy_is_jam;
11458         char *yy_cp = (yy_c_buf_p);
11459
11460         YY_CHAR yy_c = 1;
11461         if ( yy_accept[yy_current_state] )
11462                 {
11463                 (yy_last_accepting_state) = yy_current_state;
11464                 (yy_last_accepting_cpos) = yy_cp;
11465                 }
11466         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
11467                 {
11468                 yy_current_state = (int) yy_def[yy_current_state];
11469                 if ( yy_current_state >= 4108 )
11470                         yy_c = yy_meta[yy_c];
11471                 }
11472         yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
11473         yy_is_jam = (yy_current_state == 4107);
11474
11475                 return yy_is_jam ? 0 : yy_current_state;
11476 }
11477
11478 #ifndef YY_NO_UNPUT
11479
11480 #endif
11481
11482 #ifndef YY_NO_INPUT
11483 #ifdef __cplusplus
11484     static int yyinput (void)
11485 #else
11486     static int input  (void)
11487 #endif
11488
11489 {
11490         int c;
11491     
11492         *(yy_c_buf_p) = (yy_hold_char);
11493
11494         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
11495                 {
11496                 /* yy_c_buf_p now points to the character we want to return.
11497                  * If this occurs *before* the EOB characters, then it's a
11498                  * valid NUL; if not, then we've hit the end of the buffer.
11499                  */
11500                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
11501                         /* This was really a NUL. */
11502                         *(yy_c_buf_p) = '\0';
11503
11504                 else
11505                         { /* need more input */
11506                         int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
11507                         ++(yy_c_buf_p);
11508
11509                         switch ( yy_get_next_buffer(  ) )
11510                                 {
11511                                 case EOB_ACT_LAST_MATCH:
11512                                         /* This happens because yy_g_n_b()
11513                                          * sees that we've accumulated a
11514                                          * token and flags that we need to
11515                                          * try matching the token before
11516                                          * proceeding.  But for input(),
11517                                          * there's no matching to consider.
11518                                          * So convert the EOB_ACT_LAST_MATCH
11519                                          * to EOB_ACT_END_OF_FILE.
11520                                          */
11521
11522                                         /* Reset buffer status. */
11523                                         yyrestart( yyin );
11524
11525                                         /*FALLTHROUGH*/
11526
11527                                 case EOB_ACT_END_OF_FILE:
11528                                         {
11529                                         if ( yywrap(  ) )
11530                                                 return 0;
11531
11532                                         if ( ! (yy_did_buffer_switch_on_eof) )
11533                                                 YY_NEW_FILE;
11534 #ifdef __cplusplus
11535                                         return yyinput();
11536 #else
11537                                         return input();
11538 #endif
11539                                         }
11540
11541                                 case EOB_ACT_CONTINUE_SCAN:
11542                                         (yy_c_buf_p) = (yytext_ptr) + offset;
11543                                         break;
11544                                 }
11545                         }
11546                 }
11547
11548         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
11549         *(yy_c_buf_p) = '\0';   /* preserve yytext */
11550         (yy_hold_char) = *++(yy_c_buf_p);
11551
11552         if ( c == '\n' )
11553                 
11554     yylineno++;
11555 ;
11556
11557         return c;
11558 }
11559 #endif  /* ifndef YY_NO_INPUT */
11560
11561 /** Immediately switch to a different input stream.
11562  * @param input_file A readable stream.
11563  * 
11564  * @note This function does not reset the start condition to @c INITIAL .
11565  */
11566     void yyrestart  (FILE * input_file )
11567 {
11568     
11569         if ( ! YY_CURRENT_BUFFER ){
11570         yyensure_buffer_stack ();
11571                 YY_CURRENT_BUFFER_LVALUE =
11572             yy_create_buffer( yyin, YY_BUF_SIZE );
11573         }
11574
11575         yy_init_buffer( YY_CURRENT_BUFFER, input_file );
11576         yy_load_buffer_state(  );
11577 }
11578
11579 /** Switch to a different input buffer.
11580  * @param new_buffer The new input buffer.
11581  * 
11582  */
11583     void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
11584 {
11585     
11586         /* TODO. We should be able to replace this entire function body
11587          * with
11588          *              yypop_buffer_state();
11589          *              yypush_buffer_state(new_buffer);
11590      */
11591         yyensure_buffer_stack ();
11592         if ( YY_CURRENT_BUFFER == new_buffer )
11593                 return;
11594
11595         if ( YY_CURRENT_BUFFER )
11596                 {
11597                 /* Flush out information for old buffer. */
11598                 *(yy_c_buf_p) = (yy_hold_char);
11599                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
11600                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
11601                 }
11602
11603         YY_CURRENT_BUFFER_LVALUE = new_buffer;
11604         yy_load_buffer_state(  );
11605
11606         /* We don't actually know whether we did this switch during
11607          * EOF (yywrap()) processing, but the only time this flag
11608          * is looked at is after yywrap() is called, so it's safe
11609          * to go ahead and always set it.
11610          */
11611         (yy_did_buffer_switch_on_eof) = 1;
11612 }
11613
11614 static void yy_load_buffer_state  (void)
11615 {
11616         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
11617         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
11618         yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
11619         (yy_hold_char) = *(yy_c_buf_p);
11620 }
11621
11622 /** Allocate and initialize an input buffer state.
11623  * @param file A readable stream.
11624  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
11625  * 
11626  * @return the allocated buffer state.
11627  */
11628     YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
11629 {
11630         YY_BUFFER_STATE b;
11631     
11632         b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state )  );
11633         if ( ! b )
11634                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
11635
11636         b->yy_buf_size = size;
11637
11638         /* yy_ch_buf has to be 2 characters longer than the size given because
11639          * we need to put in 2 end-of-buffer characters.
11640          */
11641         b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2)  );
11642         if ( ! b->yy_ch_buf )
11643                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
11644
11645         b->yy_is_our_buffer = 1;
11646
11647         yy_init_buffer( b, file );
11648
11649         return b;
11650 }
11651
11652 /** Destroy the buffer.
11653  * @param b a buffer created with yy_create_buffer()
11654  * 
11655  */
11656     void yy_delete_buffer (YY_BUFFER_STATE  b )
11657 {
11658     
11659         if ( ! b )
11660                 return;
11661
11662         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
11663                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
11664
11665         if ( b->yy_is_our_buffer )
11666                 yyfree( (void *) b->yy_ch_buf  );
11667
11668         yyfree( (void *) b  );
11669 }
11670
11671 /* Initializes or reinitializes a buffer.
11672  * This function is sometimes called more than once on the same buffer,
11673  * such as during a yyrestart() or at EOF.
11674  */
11675     static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
11676
11677 {
11678         int oerrno = errno;
11679     
11680         yy_flush_buffer( b );
11681
11682         b->yy_input_file = file;
11683         b->yy_fill_buffer = 1;
11684
11685     /* If b is the current buffer, then yy_init_buffer was _probably_
11686      * called from yyrestart() or through yy_get_next_buffer.
11687      * In that case, we don't want to reset the lineno or column.
11688      */
11689     if (b != YY_CURRENT_BUFFER){
11690         b->yy_bs_lineno = 1;
11691         b->yy_bs_column = 0;
11692     }
11693
11694         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
11695     
11696         errno = oerrno;
11697 }
11698
11699 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
11700  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
11701  * 
11702  */
11703     void yy_flush_buffer (YY_BUFFER_STATE  b )
11704 {
11705         if ( ! b )
11706                 return;
11707
11708         b->yy_n_chars = 0;
11709
11710         /* We always need two end-of-buffer characters.  The first causes
11711          * a transition to the end-of-buffer state.  The second causes
11712          * a jam in that state.
11713          */
11714         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
11715         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
11716
11717         b->yy_buf_pos = &b->yy_ch_buf[0];
11718
11719         b->yy_at_bol = 1;
11720         b->yy_buffer_status = YY_BUFFER_NEW;
11721
11722         if ( b == YY_CURRENT_BUFFER )
11723                 yy_load_buffer_state(  );
11724 }
11725
11726 /** Pushes the new state onto the stack. The new state becomes
11727  *  the current state. This function will allocate the stack
11728  *  if necessary.
11729  *  @param new_buffer The new state.
11730  *  
11731  */
11732 void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
11733 {
11734         if (new_buffer == NULL)
11735                 return;
11736
11737         yyensure_buffer_stack();
11738
11739         /* This block is copied from yy_switch_to_buffer. */
11740         if ( YY_CURRENT_BUFFER )
11741                 {
11742                 /* Flush out information for old buffer. */
11743                 *(yy_c_buf_p) = (yy_hold_char);
11744                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
11745                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
11746                 }
11747
11748         /* Only push if top exists. Otherwise, replace top. */
11749         if (YY_CURRENT_BUFFER)
11750                 (yy_buffer_stack_top)++;
11751         YY_CURRENT_BUFFER_LVALUE = new_buffer;
11752
11753         /* copied from yy_switch_to_buffer. */
11754         yy_load_buffer_state(  );
11755         (yy_did_buffer_switch_on_eof) = 1;
11756 }
11757
11758 /** Removes and deletes the top of the stack, if present.
11759  *  The next element becomes the new top.
11760  *  
11761  */
11762 void yypop_buffer_state (void)
11763 {
11764         if (!YY_CURRENT_BUFFER)
11765                 return;
11766
11767         yy_delete_buffer(YY_CURRENT_BUFFER );
11768         YY_CURRENT_BUFFER_LVALUE = NULL;
11769         if ((yy_buffer_stack_top) > 0)
11770                 --(yy_buffer_stack_top);
11771
11772         if (YY_CURRENT_BUFFER) {
11773                 yy_load_buffer_state(  );
11774                 (yy_did_buffer_switch_on_eof) = 1;
11775         }
11776 }
11777
11778 /* Allocates the stack if it does not exist.
11779  *  Guarantees space for at least one push.
11780  */
11781 static void yyensure_buffer_stack (void)
11782 {
11783         yy_size_t num_to_alloc;
11784     
11785         if (!(yy_buffer_stack)) {
11786
11787                 /* First allocation is just for 2 elements, since we don't know if this
11788                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
11789                  * immediate realloc on the next call.
11790          */
11791       num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
11792                 (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
11793                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
11794                                                                 );
11795                 if ( ! (yy_buffer_stack) )
11796                         YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
11797
11798                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
11799
11800                 (yy_buffer_stack_max) = num_to_alloc;
11801                 (yy_buffer_stack_top) = 0;
11802                 return;
11803         }
11804
11805         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
11806
11807                 /* Increase the buffer to prepare for a possible push. */
11808                 yy_size_t grow_size = 8 /* arbitrary grow size */;
11809
11810                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
11811                 (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
11812                                                                 ((yy_buffer_stack),
11813                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
11814                                                                 );
11815                 if ( ! (yy_buffer_stack) )
11816                         YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
11817
11818                 /* zero only the new slots.*/
11819                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
11820                 (yy_buffer_stack_max) = num_to_alloc;
11821         }
11822 }
11823
11824 /** Setup the input buffer state to scan directly from a user-specified character buffer.
11825  * @param base the character buffer
11826  * @param size the size in bytes of the character buffer
11827  * 
11828  * @return the newly allocated buffer state object.
11829  */
11830 YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
11831 {
11832         YY_BUFFER_STATE b;
11833     
11834         if ( size < 2 ||
11835              base[size-2] != YY_END_OF_BUFFER_CHAR ||
11836              base[size-1] != YY_END_OF_BUFFER_CHAR )
11837                 /* They forgot to leave room for the EOB's. */
11838                 return NULL;
11839
11840         b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state )  );
11841         if ( ! b )
11842                 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
11843
11844         b->yy_buf_size = (int) (size - 2);      /* "- 2" to take care of EOB's */
11845         b->yy_buf_pos = b->yy_ch_buf = base;
11846         b->yy_is_our_buffer = 0;
11847         b->yy_input_file = NULL;
11848         b->yy_n_chars = b->yy_buf_size;
11849         b->yy_is_interactive = 0;
11850         b->yy_at_bol = 1;
11851         b->yy_fill_buffer = 0;
11852         b->yy_buffer_status = YY_BUFFER_NEW;
11853
11854         yy_switch_to_buffer( b  );
11855
11856         return b;
11857 }
11858
11859 /** Setup the input buffer state to scan a string. The next call to yylex() will
11860  * scan from a @e copy of @a str.
11861  * @param yystr a NUL-terminated string to scan
11862  * 
11863  * @return the newly allocated buffer state object.
11864  * @note If you want to scan bytes that may contain NUL values, then use
11865  *       yy_scan_bytes() instead.
11866  */
11867 YY_BUFFER_STATE yy_scan_string (const char * yystr )
11868 {
11869     
11870         return yy_scan_bytes( yystr, (int) strlen(yystr) );
11871 }
11872
11873 /** Setup the input buffer state to scan the given bytes. The next call to yylex() will
11874  * scan from a @e copy of @a bytes.
11875  * @param yybytes the byte buffer to scan
11876  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
11877  * 
11878  * @return the newly allocated buffer state object.
11879  */
11880 YY_BUFFER_STATE yy_scan_bytes  (const char * yybytes, int  _yybytes_len )
11881 {
11882         YY_BUFFER_STATE b;
11883         char *buf;
11884         yy_size_t n;
11885         int i;
11886     
11887         /* Get memory for full buffer, including space for trailing EOB's. */
11888         n = (yy_size_t) (_yybytes_len + 2);
11889         buf = (char *) yyalloc( n  );
11890         if ( ! buf )
11891                 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
11892
11893         for ( i = 0; i < _yybytes_len; ++i )
11894                 buf[i] = yybytes[i];
11895
11896         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
11897
11898         b = yy_scan_buffer( buf, n );
11899         if ( ! b )
11900                 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
11901
11902         /* It's okay to grow etc. this buffer, and we should throw it
11903          * away when we're done.
11904          */
11905         b->yy_is_our_buffer = 1;
11906
11907         return b;
11908 }
11909
11910     static void yy_push_state (int  _new_state )
11911 {
11912         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
11913                 {
11914                 yy_size_t new_size;
11915
11916                 (yy_start_stack_depth) += YY_START_STACK_INCR;
11917                 new_size = (yy_size_t) (yy_start_stack_depth) * sizeof( int );
11918
11919                 if ( ! (yy_start_stack) )
11920                         (yy_start_stack) = (int *) yyalloc( new_size  );
11921
11922                 else
11923                         (yy_start_stack) = (int *) yyrealloc(
11924                                         (void *) (yy_start_stack), new_size  );
11925
11926                 if ( ! (yy_start_stack) )
11927                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
11928                 }
11929
11930         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
11931
11932         BEGIN(_new_state);
11933 }
11934
11935     static void yy_pop_state  (void)
11936 {
11937         if ( --(yy_start_stack_ptr) < 0 )
11938                 YY_FATAL_ERROR( "start-condition stack underflow" );
11939
11940         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
11941 }
11942
11943 #ifndef YY_EXIT_FAILURE
11944 #define YY_EXIT_FAILURE 2
11945 #endif
11946
11947 static void yynoreturn yy_fatal_error (const char* msg )
11948 {
11949                         fprintf( stderr, "%s\n", msg );
11950         exit( YY_EXIT_FAILURE );
11951 }
11952
11953 /* Redefine yyless() so it works in section 3 code. */
11954
11955 #undef yyless
11956 #define yyless(n) \
11957         do \
11958                 { \
11959                 /* Undo effects of setting up yytext. */ \
11960         int yyless_macro_arg = (n); \
11961         YY_LESS_LINENO(yyless_macro_arg);\
11962                 yytext[yyleng] = (yy_hold_char); \
11963                 (yy_c_buf_p) = yytext + yyless_macro_arg; \
11964                 (yy_hold_char) = *(yy_c_buf_p); \
11965                 *(yy_c_buf_p) = '\0'; \
11966                 yyleng = yyless_macro_arg; \
11967                 } \
11968         while ( 0 )
11969
11970 /* Accessor  methods (get/set functions) to struct members. */
11971
11972 /** Get the current line number.
11973  * 
11974  */
11975 int yyget_lineno  (void)
11976 {
11977     
11978     return yylineno;
11979 }
11980
11981 /** Get the input stream.
11982  * 
11983  */
11984 FILE *yyget_in  (void)
11985 {
11986         return yyin;
11987 }
11988
11989 /** Get the output stream.
11990  * 
11991  */
11992 FILE *yyget_out  (void)
11993 {
11994         return yyout;
11995 }
11996
11997 /** Get the length of the current token.
11998  * 
11999  */
12000 int yyget_leng  (void)
12001 {
12002         return yyleng;
12003 }
12004
12005 /** Get the current token.
12006  * 
12007  */
12008
12009 char *yyget_text  (void)
12010 {
12011         return yytext;
12012 }
12013
12014 /** Set the current line number.
12015  * @param _line_number line number
12016  * 
12017  */
12018 void yyset_lineno (int  _line_number )
12019 {
12020     
12021     yylineno = _line_number;
12022 }
12023
12024 /** Set the input stream. This does not discard the current
12025  * input buffer.
12026  * @param _in_str A readable stream.
12027  * 
12028  * @see yy_switch_to_buffer
12029  */
12030 void yyset_in (FILE *  _in_str )
12031 {
12032         yyin = _in_str ;
12033 }
12034
12035 void yyset_out (FILE *  _out_str )
12036 {
12037         yyout = _out_str ;
12038 }
12039
12040 int yyget_debug  (void)
12041 {
12042         return yy_flex_debug;
12043 }
12044
12045 void yyset_debug (int  _bdebug )
12046 {
12047         yy_flex_debug = _bdebug ;
12048 }
12049
12050 static int yy_init_globals (void)
12051 {
12052         /* Initialization is the same as for the non-reentrant scanner.
12053      * This function is called from yylex_destroy(), so don't allocate here.
12054      */
12055
12056     /* We do not touch yylineno unless the option is enabled. */
12057     yylineno =  1;
12058     
12059     (yy_buffer_stack) = NULL;
12060     (yy_buffer_stack_top) = 0;
12061     (yy_buffer_stack_max) = 0;
12062     (yy_c_buf_p) = NULL;
12063     (yy_init) = 0;
12064     (yy_start) = 0;
12065
12066     (yy_start_stack_ptr) = 0;
12067     (yy_start_stack_depth) = 0;
12068     (yy_start_stack) =  NULL;
12069
12070 /* Defined in main.c */
12071 #ifdef YY_STDINIT
12072     yyin = stdin;
12073     yyout = stdout;
12074 #else
12075     yyin = NULL;
12076     yyout = NULL;
12077 #endif
12078
12079     /* For future reference: Set errno on error, since we are called by
12080      * yylex_init()
12081      */
12082     return 0;
12083 }
12084
12085 /* yylex_destroy is for both reentrant and non-reentrant scanners. */
12086 int yylex_destroy  (void)
12087 {
12088     
12089     /* Pop the buffer stack, destroying each element. */
12090         while(YY_CURRENT_BUFFER){
12091                 yy_delete_buffer( YY_CURRENT_BUFFER  );
12092                 YY_CURRENT_BUFFER_LVALUE = NULL;
12093                 yypop_buffer_state();
12094         }
12095
12096         /* Destroy the stack itself. */
12097         yyfree((yy_buffer_stack) );
12098         (yy_buffer_stack) = NULL;
12099
12100     /* Destroy the start condition stack. */
12101         yyfree( (yy_start_stack)  );
12102         (yy_start_stack) = NULL;
12103
12104     /* Reset the globals. This is important in a non-reentrant scanner so the next time
12105      * yylex() is called, initialization will occur. */
12106     yy_init_globals( );
12107
12108     return 0;
12109 }
12110
12111 /*
12112  * Internal utility routines.
12113  */
12114
12115 #ifndef yytext_ptr
12116 static void yy_flex_strncpy (char* s1, const char * s2, int n )
12117 {
12118                 
12119         int i;
12120         for ( i = 0; i < n; ++i )
12121                 s1[i] = s2[i];
12122 }
12123 #endif
12124
12125 #ifdef YY_NEED_STRLEN
12126 static int yy_flex_strlen (const char * s )
12127 {
12128         int n;
12129         for ( n = 0; s[n]; ++n )
12130                 ;
12131
12132         return n;
12133 }
12134 #endif
12135
12136 void *yyalloc (yy_size_t  size )
12137 {
12138                         return malloc(size);
12139 }
12140
12141 void *yyrealloc  (void * ptr, yy_size_t  size )
12142 {
12143                 
12144         /* The cast to (char *) in the following accommodates both
12145          * implementations that use char* generic pointers, and those
12146          * that use void* generic pointers.  It works with the latter
12147          * because both ANSI C and C++ allow castless assignment from
12148          * any pointer type to void*, and deal with argument conversions
12149          * as though doing an assignment.
12150          */
12151         return realloc(ptr, size);
12152 }
12153
12154 void yyfree (void * ptr )
12155 {
12156                         free( (char *) ptr );   /* see yyrealloc() for (char *) cast */
12157 }
12158
12159 #define YYTABLES_NAME "yytables"
12160
12161 /* Element context stack lookup. */
12162 int surfxml_element_context(int i)
12163 {
12164   return (0<i && i<yy_start_stack_depth
12165           ? yy_start_stack[yy_start_stack_ptr - i]
12166           : 0);
12167 }
12168
12169 #ifdef FLEX_DEBUG
12170 void print_yy_stack(char* fmt, ...)
12171 {
12172   int i = 0; va_list ap; va_start(ap, fmt);
12173   vfprintf(stderr, fmt, ap);
12174   if (surfxml_statenames) {
12175       for (i=1; i<yy_start_stack_ptr; i++) {
12176           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
12177       }
12178       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
12179   }
12180   va_end(ap);
12181 }
12182
12183 void print_surfxml_bufferstack()
12184 {
12185     int i;
12186     fputs("Buffer: ", stderr);
12187     for (i = 0; i < blimit; i++) {
12188        if ( surfxml_bufferstack[i] == '\377' ) break;
12189          putc(surfxml_bufferstack[i], stderr);
12190     }
12191     putc('\n', stderr);
12192 }
12193
12194 static void debug_enter(int state, const char* statename) {
12195   yy_push_state(state);
12196   if (yy_flex_debug) {
12197        print_yy_stack("--ENTER(%s) : ",statename);
12198        print_surfxml_bufferstack();
12199   }
12200 }
12201
12202 static void debug_leave(void) {
12203     if (yy_flex_debug) {
12204         print_yy_stack("--LEAVE : ");
12205         print_surfxml_bufferstack();
12206     }
12207   yy_pop_state();
12208 }
12209
12210 static void debug_set(int state, const char* statename) {
12211   BEGIN(state);
12212   if (yy_flex_debug) print_yy_stack("--SET(%s) : ",statename);
12213 }
12214 #endif
12215
12216 static void cleanup(void)
12217 {
12218     if (surfxml_statenames) {
12219         free(surfxml_statenames);
12220         surfxml_statenames = NULL;
12221     }
12222     free(surfxml_bufferstack);
12223     surfxml_bufferstack = NULL;
12224
12225     free(indexstack);
12226     indexstack = NULL;
12227 }
12228
12229 static int fail(const char* fmt, ...)
12230 {
12231     int chars_left, used;
12232     va_list ap; va_start(ap, fmt);
12233 #ifdef FLEXML_yylineno
12234     used = snprintf(flexml_err_msg,flexml_max_err_msg_size,
12235                    "Invalid XML (XML input line %d, state %d): ",
12236                    yylineno, YY_START);
12237 #else
12238     used = snprintf(flexml_err_msg,flexml_max_err_msg_size,
12239                    "Invalid XML (state %d): ",
12240                    YY_START);
12241 #endif
12242     chars_left = flexml_max_err_msg_size - used - 1;
12243     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
12244     va_end(ap);
12245
12246 #ifndef FLEXML_quiet_parser
12247     /* print directly to sdterr */
12248     fprintf(stderr, "%s\n", flexml_err_msg);
12249     flexml_err_msg[0] = '\0';
12250 #endif
12251
12252     cleanup();
12253
12254     return 1;
12255 }
12256