Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Ensure that the mallocator are really inactive when running MC
[simgrid.git] / src / surf / simgrid_dtd.c
1
2 #line 3 "src/surf/simgrid_dtd.c"
3
4 #define  YY_INT_ALIGNED short int
5
6 /* A lexical scanner generated by flex */
7
8 #define yy_create_buffer surf_parse__create_buffer
9 #define yy_delete_buffer surf_parse__delete_buffer
10 #define yy_flex_debug surf_parse__flex_debug
11 #define yy_init_buffer surf_parse__init_buffer
12 #define yy_flush_buffer surf_parse__flush_buffer
13 #define yy_load_buffer_state surf_parse__load_buffer_state
14 #define yy_switch_to_buffer surf_parse__switch_to_buffer
15 #define yyin surf_parse_in
16 #define yyleng surf_parse_leng
17 #define yylex surf_parse_lex
18 #define yylineno surf_parse_lineno
19 #define yyout surf_parse_out
20 #define yyrestart surf_parse_restart
21 #define yytext surf_parse_text
22 #define yywrap surf_parse_wrap
23 #define yyalloc surf_parse_alloc
24 #define yyrealloc surf_parse_realloc
25 #define yyfree surf_parse_free
26
27 #define FLEX_SCANNER
28 #define YY_FLEX_MAJOR_VERSION 2
29 #define YY_FLEX_MINOR_VERSION 5
30 #define YY_FLEX_SUBMINOR_VERSION 35
31 #if YY_FLEX_SUBMINOR_VERSION > 0
32 #define FLEX_BETA
33 #endif
34
35 /* First, we deal with  platform-specific or compiler-specific issues. */
36
37 /* begin standard C headers. */
38 #include <stdio.h>
39 #include <string.h>
40 #include <errno.h>
41 #include <stdlib.h>
42
43 /* end standard C headers. */
44
45 /* flex integer type definitions */
46
47 #ifndef FLEXINT_H
48 #define FLEXINT_H
49
50 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
51
52 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
53
54 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
55  * if you want the limit (max/min) macros for int types. 
56  */
57 #ifndef __STDC_LIMIT_MACROS
58 #define __STDC_LIMIT_MACROS 1
59 #endif
60
61 #include <inttypes.h>
62 typedef int8_t flex_int8_t;
63 typedef uint8_t flex_uint8_t;
64 typedef int16_t flex_int16_t;
65 typedef uint16_t flex_uint16_t;
66 typedef int32_t flex_int32_t;
67 typedef uint32_t flex_uint32_t;
68 #else
69 typedef signed char flex_int8_t;
70 typedef short int flex_int16_t;
71 typedef int flex_int32_t;
72 typedef unsigned char flex_uint8_t; 
73 typedef unsigned short int flex_uint16_t;
74 typedef unsigned int flex_uint32_t;
75
76 /* Limits of integral types. */
77 #ifndef INT8_MIN
78 #define INT8_MIN               (-128)
79 #endif
80 #ifndef INT16_MIN
81 #define INT16_MIN              (-32767-1)
82 #endif
83 #ifndef INT32_MIN
84 #define INT32_MIN              (-2147483647-1)
85 #endif
86 #ifndef INT8_MAX
87 #define INT8_MAX               (127)
88 #endif
89 #ifndef INT16_MAX
90 #define INT16_MAX              (32767)
91 #endif
92 #ifndef INT32_MAX
93 #define INT32_MAX              (2147483647)
94 #endif
95 #ifndef UINT8_MAX
96 #define UINT8_MAX              (255U)
97 #endif
98 #ifndef UINT16_MAX
99 #define UINT16_MAX             (65535U)
100 #endif
101 #ifndef UINT32_MAX
102 #define UINT32_MAX             (4294967295U)
103 #endif
104
105 #endif /* ! C99 */
106
107 #endif /* ! FLEXINT_H */
108
109 #ifdef __cplusplus
110
111 /* The "const" storage-class-modifier is valid. */
112 #define YY_USE_CONST
113
114 #else   /* ! __cplusplus */
115
116 /* C99 requires __STDC__ to be defined as 1. */
117 #if defined (__STDC__)
118
119 #define YY_USE_CONST
120
121 #endif  /* defined (__STDC__) */
122 #endif  /* ! __cplusplus */
123
124 #ifdef YY_USE_CONST
125 #define yyconst const
126 #else
127 #define yyconst
128 #endif
129
130 /* Returned upon end-of-file. */
131 #define YY_NULL 0
132
133 /* Promotes a possibly negative, possibly signed char to an unsigned
134  * integer for use as an array index.  If the signed char is negative,
135  * we want to instead treat it as an 8-bit unsigned char, hence the
136  * double cast.
137  */
138 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
139
140 /* Enter a start condition.  This macro really ought to take a parameter,
141  * but we do it the disgusting crufty way forced on us by the ()-less
142  * definition of BEGIN.
143  */
144 #define BEGIN (yy_start) = 1 + 2 *
145
146 /* Translate the current start state into a value that can be later handed
147  * to BEGIN to return to the state.  The YYSTATE alias is for lex
148  * compatibility.
149  */
150 #define YY_START (((yy_start) - 1) / 2)
151 #define YYSTATE YY_START
152
153 /* Action number for EOF rule of a given start state. */
154 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
155
156 /* Special action meaning "start processing a new file". */
157 #define YY_NEW_FILE surf_parse_restart(surf_parse_in  )
158
159 #define YY_END_OF_BUFFER_CHAR 0
160
161 /* Size of default input buffer. */
162 #ifndef YY_BUF_SIZE
163 #ifdef __ia64__
164 /* On IA-64, the buffer size is 16k, not 8k.
165  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
166  * Ditto for the __ia64__ case accordingly.
167  */
168 #define YY_BUF_SIZE 32768
169 #else
170 #define YY_BUF_SIZE 16384
171 #endif /* __ia64__ */
172 #endif
173
174 /* The state buf must be large enough to hold one state per character in the main buffer.
175  */
176 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
177
178 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
179 #define YY_TYPEDEF_YY_BUFFER_STATE
180 typedef struct yy_buffer_state *YY_BUFFER_STATE;
181 #endif
182
183 extern int surf_parse_leng;
184
185 extern FILE *surf_parse_in, *surf_parse_out;
186
187 #define EOB_ACT_CONTINUE_SCAN 0
188 #define EOB_ACT_END_OF_FILE 1
189 #define EOB_ACT_LAST_MATCH 2
190
191     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
192      *       access to the local variable yy_act. Since yyless() is a macro, it would break
193      *       existing scanners that call yyless() from OUTSIDE surf_parse_lex. 
194      *       One obvious solution it to make yy_act a global. I tried that, and saw
195      *       a 5% performance hit in a non-surf_parse_lineno scanner, because yy_act is
196      *       normally declared as a register variable-- so it is not worth it.
197      */
198     #define  YY_LESS_LINENO(n) \
199             do { \
200                 int yyl;\
201                 for ( yyl = n; yyl < surf_parse_leng; ++yyl )\
202                     if ( surf_parse_text[yyl] == '\n' )\
203                         --surf_parse_lineno;\
204             }while(0)
205     
206 /* Return all but the first "n" matched characters back to the input stream. */
207 #define yyless(n) \
208         do \
209                 { \
210                 /* Undo effects of setting up surf_parse_text. */ \
211         int yyless_macro_arg = (n); \
212         YY_LESS_LINENO(yyless_macro_arg);\
213                 *yy_cp = (yy_hold_char); \
214                 YY_RESTORE_YY_MORE_OFFSET \
215                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
216                 YY_DO_BEFORE_ACTION; /* set up surf_parse_text again */ \
217                 } \
218         while ( 0 )
219
220 #define unput(c) yyunput( c, (yytext_ptr)  )
221
222 #ifndef YY_TYPEDEF_YY_SIZE_T
223 #define YY_TYPEDEF_YY_SIZE_T
224 typedef size_t yy_size_t;
225 #endif
226
227 #ifndef YY_STRUCT_YY_BUFFER_STATE
228 #define YY_STRUCT_YY_BUFFER_STATE
229 struct yy_buffer_state
230         {
231         FILE *yy_input_file;
232
233         char *yy_ch_buf;                /* input buffer */
234         char *yy_buf_pos;               /* current position in input buffer */
235
236         /* Size of input buffer in bytes, not including room for EOB
237          * characters.
238          */
239         yy_size_t yy_buf_size;
240
241         /* Number of characters read into yy_ch_buf, not including EOB
242          * characters.
243          */
244         int yy_n_chars;
245
246         /* Whether we "own" the buffer - i.e., we know we created it,
247          * and can realloc() it to grow it, and should free() it to
248          * delete it.
249          */
250         int yy_is_our_buffer;
251
252         /* Whether this is an "interactive" input source; if so, and
253          * if we're using stdio for input, then we want to use getc()
254          * instead of fread(), to make sure we stop fetching input after
255          * each newline.
256          */
257         int yy_is_interactive;
258
259         /* Whether we're considered to be at the beginning of a line.
260          * If so, '^' rules will be active on the next match, otherwise
261          * not.
262          */
263         int yy_at_bol;
264
265     int yy_bs_lineno; /**< The line count. */
266     int yy_bs_column; /**< The column count. */
267     
268         /* Whether to try to fill the input buffer when we reach the
269          * end of it.
270          */
271         int yy_fill_buffer;
272
273         int yy_buffer_status;
274
275 #define YY_BUFFER_NEW 0
276 #define YY_BUFFER_NORMAL 1
277         /* When an EOF's been seen but there's still some text to process
278          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
279          * shouldn't try reading from the input source any more.  We might
280          * still have a bunch of tokens to match, though, because of
281          * possible backing-up.
282          *
283          * When we actually see the EOF, we change the status to "new"
284          * (via surf_parse_restart()), so that the user can continue scanning by
285          * just pointing surf_parse_in at a new input file.
286          */
287 #define YY_BUFFER_EOF_PENDING 2
288
289         };
290 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
291
292 /* Stack of input buffers. */
293 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
294 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
295 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
296
297 /* We provide macros for accessing buffer states in case in the
298  * future we want to put the buffer states in a more general
299  * "scanner state".
300  *
301  * Returns the top of the stack, or NULL.
302  */
303 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
304                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
305                           : NULL)
306
307 /* Same as previous macro, but useful when we know that the buffer stack is not
308  * NULL or when we need an lvalue. For internal use only.
309  */
310 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
311
312 /* yy_hold_char holds the character lost when surf_parse_text is formed. */
313 static char yy_hold_char;
314 static int yy_n_chars;          /* number of characters read into yy_ch_buf */
315 int surf_parse_leng;
316
317 /* Points to current character in buffer. */
318 static char *yy_c_buf_p = (char *) 0;
319 static int yy_init = 0;         /* whether we need to initialize */
320 static int yy_start = 0;        /* start state number */
321
322 /* Flag which is used to allow surf_parse_wrap()'s to do buffer switches
323  * instead of setting up a fresh surf_parse_in.  A bit of a hack ...
324  */
325 static int yy_did_buffer_switch_on_eof;
326
327 void surf_parse_restart (FILE *input_file  );
328 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer  );
329 YY_BUFFER_STATE surf_parse__create_buffer (FILE *file,int size  );
330 void surf_parse__delete_buffer (YY_BUFFER_STATE b  );
331 void surf_parse__flush_buffer (YY_BUFFER_STATE b  );
332 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer  );
333 void surf_parse_pop_buffer_state (void );
334
335 static void surf_parse_ensure_buffer_stack (void );
336 static void surf_parse__load_buffer_state (void );
337 static void surf_parse__init_buffer (YY_BUFFER_STATE b,FILE *file  );
338
339 #define YY_FLUSH_BUFFER surf_parse__flush_buffer(YY_CURRENT_BUFFER )
340
341 YY_BUFFER_STATE surf_parse__scan_buffer (char *base,yy_size_t size  );
342 YY_BUFFER_STATE surf_parse__scan_string (yyconst char *yy_str  );
343 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char *bytes,int len  );
344
345 void *surf_parse_alloc (yy_size_t  );
346 void *surf_parse_realloc (void *,yy_size_t  );
347 void surf_parse_free (void *  );
348
349 #define yy_new_buffer surf_parse__create_buffer
350
351 #define yy_set_interactive(is_interactive) \
352         { \
353         if ( ! YY_CURRENT_BUFFER ){ \
354         surf_parse_ensure_buffer_stack (); \
355                 YY_CURRENT_BUFFER_LVALUE =    \
356             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
357         } \
358         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
359         }
360
361 #define yy_set_bol(at_bol) \
362         { \
363         if ( ! YY_CURRENT_BUFFER ){\
364         surf_parse_ensure_buffer_stack (); \
365                 YY_CURRENT_BUFFER_LVALUE =    \
366             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
367         } \
368         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
369         }
370
371 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
372
373 /* Begin user sect3 */
374
375 #define surf_parse_wrap(n) 1
376 #define YY_SKIP_YYWRAP
377
378 typedef unsigned char YY_CHAR;
379
380 FILE *surf_parse_in = (FILE *) 0, *surf_parse_out = (FILE *) 0;
381
382 typedef int yy_state_type;
383
384 extern int surf_parse_lineno;
385
386 int surf_parse_lineno = 1;
387
388 extern char *surf_parse_text;
389 #define yytext_ptr surf_parse_text
390
391 static yy_state_type yy_get_previous_state (void );
392 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
393 static int yy_get_next_buffer (void );
394 static void yy_fatal_error (yyconst char msg[]  );
395
396 /* Done after the current pattern has been matched and before the
397  * corresponding action - sets up surf_parse_text.
398  */
399 #define YY_DO_BEFORE_ACTION \
400         (yytext_ptr) = yy_bp; \
401         surf_parse_leng = (size_t) (yy_cp - yy_bp); \
402         (yy_hold_char) = *yy_cp; \
403         *yy_cp = '\0'; \
404         (yy_c_buf_p) = yy_cp;
405
406 #define YY_NUM_RULES 547
407 #define YY_END_OF_BUFFER 548
408 /* This struct is not used in this scanner,
409    but its presence is necessary. */
410 struct yy_trans_info
411         {
412         flex_int32_t yy_verify;
413         flex_int32_t yy_nxt;
414         };
415 static yyconst flex_int16_t yy_accept[3218] =
416     {   0,
417         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
418         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
419         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
420         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
421         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
422         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
423         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
424         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
425         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
426         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
427
428         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
429         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
430         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
431         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
432         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
433         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
434         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
435         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
436         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
437         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
438
439         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
440         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
441         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
442         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
443         0,    0,    0,    0,    0,    0,    0,    0,  548,  546,
444        15,   10,   10,   15,   15,  526,   10,  526,    5,    6,
445         5,    8,    9,    8,  542,  534,  535,  543,  540,  543,
446       541,  545,  534,  535,  545,  546,   22,   10,   22,   22,
447        22,   20,   22,   26,   10,   26,   26,  546,   26,  546,
448       546,   26,   33,   10,   33,   33,   33,   31,   33,   37,
449
450        10,   37,   37,   48,   10,   48,   48,   48,   46,   48,
451        48,   48,  543,  542,   78,   10,   78,   78,   78,   76,
452        78,   78,   78,   78,   78,   82,   10,   82,  101,   10,
453       101,  101,  101,   99,  101,  101,  101,  105,   10,  105,
454       128,   10,  128,  128,  128,  126,  128,  128,  132,   10,
455       132,  132,  546,  132,  546,  132,  132,  546,  546,  132,
456       546,  132,  546,  132,  145,   10,  145,  145,  145,  143,
457       145,  145,  145,  145,  149,   10,  149,  149,  160,   10,
458       160,  160,  160,  158,  160,  160,  160,  164,   10,  164,
459       164,  173,   10,  173,  173,  173,  171,  173,  173,  177,
460
461        10,  177,  186,   10,  186,  186,  186,  184,  186,  186,
462       190,   10,  190,  213,   10,  213,  213,  213,  211,  213,
463       213,  213,  213,  213,  217,   10,  217,  546,  217,  228,
464        10,  228,  228,  228,  226,  228,  228,  228,  232,   10,
465       232,  273,   10,  273,  273,  273,  271,  273,  273,  273,
466       273,  273,  273,  273,  273,  277,   10,  277,  296,   10,
467       296,  296,  296,  294,  296,  296,  296,  296,  296,  296,
468       300,   10,  300,  321,   10,  321,  321,  321,  319,  321,
469       321,  321,  321,  321,  321,  321,  325,   10,  325,  334,
470        10,  334,  334,  334,  332,  334,  334,  338,   10,  338,
471
472       349,   10,  349,  349,  349,  347,  349,  349,  349,  353,
473        10,  353,  380,   10,  380,  380,  380,  378,  380,  380,
474       380,  380,  384,   10,  384,  384,  397,   10,  397,  397,
475       397,  395,  397,  397,  401,   10,  401,  546,  401,  418,
476        10,  418,  418,  418,  416,  418,  418,  418,  422,   10,
477       422,  422,  435,   10,  435,  435,  435,  433,  435,  435,
478       439,   10,  439,  448,   10,  448,  448,  448,  446,  448,
479       448,  452,   10,  452,  452,  465,   10,  465,  465,  465,
480       463,  465,  465,  465,  469,   10,  469,  469,  486,   10,
481       486,  486,  486,  484,  486,  486,  486,  486,  486,  490,
482
483        10,  490,  546,  490,  497,   10,  497,  497,  497,  495,
484       497,  501,   10,  501,  508,   10,  508,  508,  508,  506,
485       508,  512,   10,  512,  512,  521,   10,  521,  521,  521,
486       519,  521,  521,  525,   10,  525,   10,    0,    2,    2,
487         0,    4,    7,  537,  536,    0,    0,    0,    0,    0,
488         0,    0,   21,   23,   23,    0,    0,    0,    0,    0,
489         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
490         0,    0,    0,    0,    0,    0,    0,    0,   32,   34,
491        34,    0,   47,   49,   49,   49,   49,    0,    0,    0,
492        77,   79,   79,   79,   79,   79,   79,   79,   79,   79,
493
494         0,  100,  102,  102,  102,  102,    0,  127,  129,  129,
495       129,    0,    0,    0,    0,    0,    0,    0,    0,    0,
496         0,    0,    0,    0,    0,    0,    0,    0,    0,  144,
497       146,  146,  146,  146,  146,    0,  159,  161,  161,  161,
498       161,    0,  172,  174,  174,  174,    0,  185,  187,  187,
499       187,    0,  212,  214,  214,  214,  214,  214,  214,    0,
500         0,  227,  229,  229,  229,  229,    0,  272,  274,  274,
501       274,  274,  274,  274,  274,  274,  274,  274,  274,  274,
502       274,  274,    0,  295,  297,  297,  297,  297,  297,  297,
503       297,  297,    0,  320,  322,  322,  322,  322,  322,  322,
504
505       322,  322,    0,  333,  335,  335,  335,    0,  348,  350,
506       350,  350,  350,    0,  379,  381,  381,  381,  381,  381,
507       381,    0,  396,  398,  398,  398,  398,    0,    0,  417,
508       419,  419,  419,  419,  419,    0,  434,  436,  436,  436,
509         0,  447,  449,  449,  449,    0,  464,  466,  466,  466,
510       466,    0,  485,  487,  487,  487,  487,  487,  487,    0,
511         0,  496,  498,  498,    0,  507,  509,  509,    0,  520,
512       522,  522,  522,    0,    0,    0,    0,    0,    3,    0,
513         0,    0,    0,    0,    0,    0,  544,    0,   23,    0,
514         0,  107,    0,    0,    0,    0,    0,    0,    0,    0,
515
516         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
517         0,    0,  106,    0,    0,    0,    0,    0,    0,   34,
518         0,    0,   49,    0,    0,   49,    0,    0,    0,  539,
519        79,    0,    0,   79,   79,   79,   79,   79,   79,    0,
520         0,  102,  102,  102,    0,    0,    0,    0,  129,    0,
521         0,  107,    0,    0,    0,    0,    0,    0,    0,  106,
522         0,    0,    0,    0,  146,    0,    0,  146,  146,    0,
523         0,  161,    0,    0,  161,    0,    0,    0,    0,  174,
524         0,    0,  187,  187,    0,    0,  214,  214,  214,    0,
525         0,  214,  214,    0,    0,    0,    0,  229,    0,    0,
526
527         0,    0,    0,    0,  274,  274,    0,    0,  274,    0,
528         0,  274,  274,  274,  274,  274,  274,  274,  274,    0,
529         0,    0,    0,    0,    0,  297,  297,  297,  297,  297,
530         0,    0,  322,  322,  322,    0,    0,  322,  322,  322,
531         0,    0,  335,    0,    0,    0,    0,  350,    0,    0,
532       350,    0,    0,  381,    0,    0,  381,  381,  381,    0,
533         0,  398,  398,  398,    0,    0,    0,  419,  419,  419,
534       419,    0,    0,  436,    0,    0,    0,    0,  449,  449,
535         0,    0,  466,  466,  466,    0,    0,  487,  487,  487,
536       487,  487,    0,    0,    0,  498,    0,    0,    0,    0,
537
538         0,    0,    0,    0,  522,    0,    0,    0,   14,    1,
539         0,    0,  532,    0,    0,    0,  529,  528,    0,    0,
540        23,    0,    0,   25,    0,  107,    0,    0,    0,    0,
541         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
542         0,    0,    0,    0,    0,    0,    0,  106,    0,    0,
543         0,    0,    0,    0,   34,    0,    0,   36,    0,   49,
544         0,   41,   40,   49,    0,    0,    0,   51,    0,   79,
545         0,   55,   54,    0,    0,   79,    0,    0,   79,   79,
546        79,    0,    0,   81,    0,  102,  102,  102,    0,    0,
547       104,    0,    0,  109,  108,  129,    0,    0,  131,    0,
548
549         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
550         0,    0,  146,    0,  136,  135,  146,  146,    0,    0,
551       148,    0,  161,    0,  153,  152,  161,    0,    0,  163,
552         0,    0,  168,  167,  174,    0,    0,  176,    0,  187,
553       187,    0,    0,  189,    0,  214,  214,  214,    0,  194,
554       193,  214,  214,    0,    0,  216,    0,    0,    0,  229,
555         0,  221,  220,    0,  223,  222,    0,    0,  231,    0,
556       274,  274,  274,  274,    0,  248,  247,  274,    0,  236,
557       235,    0,    0,  274,  274,  274,  274,  274,  274,  274,
558         0,    0,  276,    0,    0,  291,  290,    0,  281,  280,
559
560         0,    0,  297,  297,  297,  297,    0,    0,  299,    0,
561       322,  322,  322,  322,    0,  304,  303,    0,    0,  322,
562       322,    0,    0,  324,    0,  335,    0,  329,  328,    0,
563         0,  337,    0,  350,    0,  342,  341,  350,    0,    0,
564       352,    0,  381,    0,  357,  356,  381,  381,  381,    0,
565         0,  383,    0,    0,    0,    0,    0,  398,    0,    0,
566       400,    0,    0,    0,    0,  419,  419,    0,    0,  419,
567         0,    0,  421,    0,  436,    0,  426,  425,    0,    0,
568       438,    0,    0,    0,    0,    0,    0,    0,  451,    0,
569         0,    0,  466,  466,    0,    0,    0,    0,  468,    0,
570
571       487,  487,  487,  487,  487,    0,    0,  489,    0,    0,
572       498,    0,    0,  500,    0,    0,  505,  504,    0,    0,
573       511,    0,    0,  516,  515,  522,    0,    0,  524,    0,
574         0,    0,  533,  527,    0,    0,    0,   23,    0,    0,
575         0,    0,    0,    0,    0,    0,  191,    0,  354,    0,
576         0,  302,    0,    0,  513,    0,    0,    0,    0,    0,
577         0,    0,    0,    0,  301,    0,    0,    0,    0,    0,
578         0,    0,   49,    0,    0,   79,    0,   59,   58,    0,
579         0,    0,   57,   56,   79,    0,    0,   79,    0,  102,
580         0,    0,  102,    0,  129,    0,  130,    0,    0,    0,
581
582       192,  355,  514,    0,    0,    0,    0,    0,    0,  146,
583       146,    0,    0,    0,  161,  161,    0,    0,    0,    0,
584         0,    0,  187,    0,  214,  214,    0,    0,  214,  214,
585         0,    0,    0,    0,    0,    0,  274,  274,  274,  274,
586         0,    0,    0,  250,  249,  274,  274,  274,  274,  274,
587       274,  274,    0,    0,  293,  292,  297,  297,  297,  297,
588         0,  322,  322,  322,  322,    0,  312,  311,  322,  322,
589         0,  335,    0,  350,  350,    0,  381,  381,  381,  381,
590         0,    0,  390,  389,    0,  388,  387,  398,    0,  354,
591         0,  407,  406,  419,  419,    0,  405,  404,  419,    0,
592
593       436,    0,    0,  445,  444,    0,  443,  442,    0,    0,
594       458,  457,  466,  466,    0,  456,  455,    0,  487,    0,
595         0,  487,  487,  487,    0,    0,  498,    0,    0,  522,
596         0,    0,    0,    0,   12,    0,  530,  531,    0,   23,
597         0,    0,    0,    0,    0,    0,    0,    0,  191,    0,
598         0,  354,    0,  165,    0,  302,    0,    0,  513,    0,
599       385,    0,   39,    0,    0,    0,    0,    0,  301,    0,
600        38,    0,   30,   29,    0,    0,   43,   42,   49,    0,
601         0,   79,    0,   61,   60,   79,    0,   65,   64,   79,
602         0,  102,    0,    0,    0,    0,    0,    0,  129,    0,
603
604         0,    0,  192,    0,  355,  514,  386,    0,    0,    0,
605       386,  385,  146,    0,    0,    0,  140,  139,    0,  161,
606       161,    0,    0,  170,  169,    0,    0,  183,  182,  187,
607         0,  214,  214,    0,  198,  197,    0,    0,    0,    0,
608       214,    0,  166,    0,    0,  225,  224,    0,  274,    0,
609         0,  274,  274,    0,  246,  245,    0,    0,  274,  274,
610       274,  274,  274,  274,    0,    0,    0,  297,  297,  297,
611         0,  322,    0,    0,  322,  322,    0,    0,  322,    0,
612       335,    0,  350,  350,    0,  381,  381,  381,    0,    0,
613       381,    0,  398,    0,    0,  419,  419,  419,    0,  436,
614
615         0,    0,  466,  466,    0,  487,    0,  473,  472,  487,
616       487,  487,    0,    0,    0,    0,    0,    0,    0,    0,
617         0,    0,    0,    0,   11,    0,   23,    0,    0,    0,
618         0,    0,    0,    0,  503,    0,    0,    0,  165,    0,
619         0,    0,   53,  385,  326,    0,   39,    0,  502,   52,
620         0,    0,    0,    0,   38,    0,    0,   49,    0,    0,
621        79,   79,   79,    0,  102,    0,    0,    0,    0,    0,
622         0,    0,    0,    0,   96,   95,    0,  129,    0,    0,
623         0,    0,  386,  327,    0,    0,    0,  146,    0,  138,
624       137,    0,  161,    0,    0,    0,    0,    0,    0,    0,
625
626       214,  214,    0,  196,  195,    0,    0,    0,  214,    0,
627       215,  166,    0,    0,  274,    0,  258,  257,    0,    0,
628       274,    0,  244,  243,    0,    0,  274,  274,  274,  274,
629         0,    0,    0,    0,  289,  288,    0,    0,  297,    0,
630         0,    0,  322,    0,  308,  307,    0,    0,  322,    0,
631       306,  305,  322,    0,  323,  335,    0,  350,  350,    0,
632       381,  381,  381,    0,    0,    0,  381,    0,  382,  398,
633         0,    0,    0,    0,    0,    0,  419,    0,  436,    0,
634         0,    0,    0,    0,    0,    0,  487,  487,  487,  487,
635         0,    0,    0,  494,  493,    0,    0,    0,  518,  517,
636
637         0,  523,    0,    0,    0,    0,    0,    0,    0,  402,
638         0,    0,    0,    0,  279,  234,  503,    0,   28,    0,
639         0,    0,  471,   53,  326,  150,    0,  502,   52,  278,
640       233,   27,  470,    0,    0,   49,    0,    0,   50,   79,
641         0,    0,   79,    0,    0,    0,    0,    0,    0,    0,
642         0,    0,    0,    0,    0,    0,    0,    0,    0,  403,
643         0,    0,    0,    0,  327,  151,    0,    0,    0,    0,
644         0,    0,  155,  154,    0,    0,  175,    0,  181,  180,
645         0,  214,  214,    0,    0,  214,    0,    0,  274,    0,
646       260,  259,  274,    0,  238,  237,    0,    0,  274,  274,
647
648       274,    0,  240,  239,    0,    0,  283,  282,    0,    0,
649         0,  285,  284,    0,  322,    0,  310,  309,  322,  322,
650       335,    0,  350,    0,    0,    0,  381,    0,    0,  381,
651       381,    0,    0,  381,  398,    0,  399,    0,    0,  411,
652       410,    0,  409,  408,  419,    0,  436,    0,    0,    0,
653       462,  461,    0,  460,  459,    0,  487,  487,  487,  487,
654         0,    0,    0,    0,    0,    0,    0,   17,    0,   19,
655        18,    0,  402,  491,  339,    0,    0,  279,  234,    0,
656        28,  423,  178,   16,  471,  150,    0,    0,  278,  233,
657        27,  470,    0,    0,   49,  538,   79,    0,   67,   66,
658
659        79,    0,   80,    0,   98,   97,    0,    0,    0,    0,
660         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
661       403,  340,    0,    0,    0,  151,    0,    0,  142,  141,
662         0,    0,  157,  156,    0,    0,  214,  214,    0,    0,
663         0,    0,  214,  179,    0,  274,  274,    0,  242,  241,
664       274,  274,  274,    0,    0,  287,  286,    0,  322,  322,
665       322,  335,    0,  336,  350,    0,  346,  345,    0,  381,
666         0,  363,  362,  381,  381,    0,    0,    0,    0,  381,
667       398,  424,  419,    0,  436,    0,    0,    0,    0,    0,
668       487,  487,  487,    0,  492,    0,    0,  510,    0,    0,
669
670         0,   17,    0,  491,  339,    0,    0,  218,  423,  178,
671        16,    0,    0,    0,    0,   35,   49,    0,    0,   79,
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,  340,    0,    0,  219,    0,    0,    0,
675       162,    0,  214,  214,    0,  204,    0,  203,  214,  179,
676         0,  274,  274,    0,    0,  274,  274,    0,  275,    0,
677       298,  322,  322,  322,  335,    0,    0,    0,    0,    0,
678       381,  381,  381,    0,  367,    0,  366,  381,  398,  424,
679       419,    0,  420,    0,    0,    0,    0,    0,    0,  475,
680
681       474,    0,    0,  487,  487,    0,  488,  492,    0,    0,
682         0,    0,    0,   24,    0,    0,  218,    0,    0,    0,
683        49,    0,    0,    0,   79,    0,    0,    0,    0,    0,
684         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
685         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
686         0,    0,  219,    0,    0,    0,  188,  214,  214,  206,
687       205,    0,    0,    0,  274,  274,    0,  270,  269,  274,
688         0,    0,  322,  322,    0,    0,  335,    0,  344,  343,
689         0,  351,    0,  359,  358,  381,  381,  381,  369,  368,
690         0,    0,  398,  419,    0,    0,    0,    0,  437,    0,
691
692         0,    0,  479,  478,    0,    0,    0,    0,    0,  499,
693         0,    0,    0,    0,  440,    0,    0,    0,    0,    0,
694         0,    0,    0,    0,    0,    0,   79,    0,    0,    0,
695         0,   88,    0,    0,    0,    0,   87,    0,    0,    0,
696         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
697         0,    0,    0,  441,    0,    0,  214,    0,    0,    0,
698       208,  207,    0,  230,  274,  274,  274,    0,  268,  267,
699       322,    0,    0,    0,  318,  317,    0,    0,  381,  381,
700       381,    0,  371,  370,    0,    0,    0,    0,    0,    0,
701         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
702
703       477,  476,    0,    0,    0,    0,  440,  133,    0,    0,
704         0,   45,   44,    0,    0,    0,    0,    0,    0,    0,
705         0,   79,    0,    0,    0,    0,    0,    0,    0,    0,
706         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
707         0,    0,    0,    0,    0,    0,  441,  134,    0,    0,
708         0,  214,    0,  210,  209,  274,  274,  274,  322,    0,
709       314,  313,    0,  331,  330,  381,    0,    0,  381,    0,
710         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
711         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
712         0,  453,  133,   84,   83,    0,    0,    0,    0,    0,
713
714         0,    0,    0,    0,    0,    0,    0,   94,    0,    0,
715         0,   93,    0,    0,    0,    0,    0,  111,  119,    0,
716         0,    0,    0,    0,  110,  118,    0,    0,  454,  134,
717         0,    0,  200,  199,  214,  274,  274,  274,  322,  381,
718         0,  365,  364,  381,    0,    0,    0,    0,    0,    0,
719         0,    0,    0,    0,  428,    0,    0,  427,    0,  450,
720         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
721         0,  453,   84,   83,    0,    0,    0,    0,    0,    0,
722         0,    0,    0,   63,   62,    0,    0,    0,    0,    0,
723         0,    0,    0,    0,  113,    0,    0,    0,    0,  112,
724
725         0,    0,  454,    0,  147,  214,  274,  274,    0,    0,
726       322,    0,    0,    0,    0,    0,    0,    0,    0,    0,
727         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
728         0,    0,    0,    0,    0,    0,    0,    0,    0,   75,
729        71,    0,    0,   74,   70,    0,   92,    0,    0,   91,
730         0,    0,    0,  103,    0,    0,    0,    0,    0,    0,
731         0,    0,  214,  274,  274,    0,    0,    0,  322,    0,
732       361,  360,    0,    0,    0,  394,    0,  393,    0,  415,
733         0,  414,    0,  430,  432,  429,  431,    0,  467,  481,
734         0,  480,    0,    0,    0,    0,   12,    0,   12,    0,
735
736         0,    0,    0,    0,   86,   90,   85,   89,  125,    0,
737         0,  123,  124,    0,    0,  122,  214,  274,  274,    0,
738         0,    0,    0,  322,    0,    0,    0,    0,  392,  391,
739       413,  412,    0,    0,    0,    0,    0,    0,    0,    0,
740         0,    0,    0,  115,    0,    0,  114,    0,    0,    0,
741         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
742         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
743         0,    0,    0,   69,    0,   68,    0,    0,  121,    0,
744       120,    0,  202,  201,    0,  266,  265,    0,    0,    0,
745         0,    0,    0,    0,    0,    0,    0,  316,  315,    0,
746
747         0,    0,    0,    0,    0,    0,    0,    0,   11,    0,
748         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
749         0,    0,    0,    0,    0,    0,    0,    0,    0,  483,
750       482,    0,   73,   72,    0,    0,    0,    0,    0,    0,
751         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
752         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
753         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
754         0,    0,  117,  116,    0,    0,    0,    0,    0,    0,
755       252,    0,    0,  251,    0,    0,  373,    0,    0,  372,
756         0,    0,    0,    0,    0,  256,    0,  255,    0,  375,
757
758         0,  374,    0,    0,    0,    0,    0,    0,    0,    0,
759         0,    0,    0,    0,  262,    0,  261,    0,    0,    0,
760         0,    0,    0,  264,  263,  254,  253,  377,  376,    0,
761         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
762         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
763         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
764         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
765         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
766         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
767         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
768
769         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
770         0,    0,    0,    0,    0,   13,    0
771     } ;
772
773 static yyconst flex_int32_t yy_ec[256] =
774     {   0,
775         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
776         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
777         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
778         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
779         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
780        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
781        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
782        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
783        31,   38,   39,   40,   41,   42,   43,   44,   45,   31,
784        46,    1,   47,    1,   48,    1,   49,   50,   51,   52,
785
786        53,   54,   55,   56,   57,   58,   59,   60,   61,   62,
787        63,   64,   65,   66,   67,   68,   69,   70,   71,   72,
788        73,   74,    1,    1,    1,    1,    1,    1,    1,    1,
789         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
790         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
791         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
792         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
793         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
794         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
795         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
796
797         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
798         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
799         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
800         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
801         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
802         1,    1,    1,    1,    1
803     } ;
804
805 static yyconst flex_int32_t yy_meta[75] =
806     {   0,
807         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
808         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
809         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
810         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
811         5,    5,    5,    5,    5,    1,    1,    5,    9,    9,
812         9,    9,    9,    9,    5,    5,    5,    5,    5,    5,
813         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
814         5,    5,    5,    5
815     } ;
816
817 static yyconst flex_int16_t yy_base[3688] =
818     {   0,
819         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
820        14,   17,   33,   36,   49,   55,   45,   61,   66,   72,
821       108,  178,   75,   78,   83,  128,  131,  134,  138,  141,
822       158,  198,  201,  204,  208,  211,  228,  231,  234,  237,
823       240,  257,  275,  329,  295,  298,  301,  305,  308,  349,
824       352,  355,  383,  447,  360,  416,  511,  578,  407,  410,
825       645,  713,  413,  467,  781,  847,  470,  473,  477,  480,
826       531,  534,  537,  541,  544,  598,  601,  604,  608,  611,
827       665,  668,  671,  675,  678,  733,  736,  739,  743,  746,
828       801,  804,  807,  811,  814,  867,  870,  873,  877,  880,
829
830       897,  903,  921,  988,  941,  944,  947,  951, 1008, 1011,
831      1014, 1018, 1055, 1123, 1075, 1078, 1081, 1085, 1143, 1146,
832      1149, 1153, 1191, 1253, 1211, 1214, 1315, 1383, 1217, 1221,
833      1451, 1518, 1224, 1273, 1276, 1279, 1283, 1286, 1335, 1338,
834      1585, 1654, 1341, 1345, 1723,    0, 1348, 1403, 1797, 1864,
835      1406, 1409, 1931, 1998, 1413, 1416, 2065, 2122, 1471, 1474,
836      2179, 2239, 1477, 1481, 2299, 2366, 1538, 1541, 1544, 1548,
837      1605, 1608, 1611, 1615, 2433, 2500, 1618, 1674, 1677, 1680,
838      1684, 1687, 1817, 1820, 2567, 2634, 1823, 1827, 1830, 1884,
839      1887, 1890, 1894, 1897, 2701, 2758, 1951, 1954, 2815, 2882,
840
841      1957, 1961, 2018, 2021, 2024, 2028, 2085, 2088, 2949, 3016,
842      2091, 2095, 2142, 2145, 2148, 2152, 2199, 2202, 3083, 3150,
843      2205, 2209, 2212, 2259, 2262, 2265, 2269, 2272, 3217, 3287,
844      2319, 2322, 3357, 3414, 2325, 2329, 2332, 2386, 2389, 2392,
845      2396, 2399, 3471, 3541, 2453, 2456,    0,    0, 8759,11752,
846     11752,   95,  100,   29,   41,11752,  103,   51,11752,11752,
847      8748,11752,11752, 8733,11752, 8748, 8748,  202,11752,11752,
848     11752,11752, 8742, 8742, 8697,  153,11752,  161, 8719,    0,
849       145,11752, 8685,11752,  165, 3607,   73, 2465,  315,  357,
850      8725, 8668,11752,  168, 8711,    0,  152,11752, 8673,11752,
851
852       261, 8713,   31,11752,  266, 8704,    0,  245,11752, 8666,
853      8666, 8664,  421, 8669,11752,  269, 8691,    0,  340,11752,
854      8657, 8657,  271, 8655,  238,11752,  441,  484,11752,  504,
855      8683,    0,  401,11752, 8642, 8640, 8630,11752,  561,  548,
856     11752,  571, 8675,    0,  481,11752, 8107, 8095,11752,  628,
857      3671, 8092,  163, 2399,  567,  206,   38, 8143,  954, 2473,
858       572,  907, 8142,   79,11752,  638, 8133,    0,  482,11752,
859      8089, 8099, 8087, 8091,11752,  697,  313,  368,11752,  703,
860      8127,    0,  546,11752, 8082, 8085, 8063,11752,  706,  426,
861       497,11752,  765, 8114,    0,  549,11752, 8074, 8076,11752,
862
863       771,  682,11752,  774, 8103,    0,  616,11752, 8068, 8042,
864     11752,  831,  690,11752,  837, 8090,    0,  750,11752, 8039,
865      8044, 8050, 8038, 8026,11752,  840,  825, 8080,   87,11752,
866       906, 8071,    0,  758,11752, 8026, 8024, 8011,11752,  914,
867       891,11752,  977, 8053,    0,  815,11752, 7995,  203, 8001,
868      8010, 8012,  157,  311,  902,11752,  981, 1019,11752, 1039,
869      8039,    0,  825,11752, 7983, 8001, 7998,  251, 7997, 7975,
870     11752, 1044, 1032,11752, 1048, 8012,    0,  956,11752, 7961,
871      7956, 7963, 7972, 7974, 7936, 7926,11752, 1088, 1092,11752,
872      1105, 7973,    0, 1033,11752, 7917, 7927,11752, 1112, 1154,
873
874     11752, 1115, 7957,    0, 1089,11752, 7923, 7919, 7920,11752,
875      1118, 1160,11752, 1174, 7944,    0, 1090,11752, 7914, 7909,
876      7903,   15,11752, 1180,  466,  597,11752, 1183, 7931,    0,
877      1158,11752, 7883,  181,11752, 1186,  963, 7935, 7886,11752,
878      1241, 7915,    0, 1225,11752, 7867, 7858,  299,11752, 1247,
879      7916,  785,11752, 1303, 7906,    0, 1226,11752, 7867, 7871,
880     11752, 1309, 1352,11752, 1365, 7901,    0, 1231,11752, 7848,
881      7841,11752, 1368, 7894,  851,11752, 1372, 7884,    0, 1287,
882     11752, 7831, 7826, 7829,11752, 1376, 7874, 1286,11752, 1433,
883      7861,    0, 1288,11752, 7798, 7798, 7803, 7796, 7771,11752,
884
885      1436, 1437, 7822,  507,11752, 1439, 7813,    0, 1360,11752,
886      7773,11752, 1444, 1482,11752, 1502, 7801,    0, 1423,11752,
887      7767,11752, 1507,  350,  814,11752, 1510, 7798,    0, 1486,
888     11752, 7764, 7762,11752, 1551, 1556, 1568,  687, 7727,11752,
889      7787, 7771,11752,11752,11752, 1566,  254, 7720, 7713, 7711,
890      7758, 7707,11752,    0, 7700, 7696, 7720, 7691,  104,  970,
891      7683, 7682, 7686,  372, 1574,  378, 7673, 7670, 1433,  627,
892      7696, 1500, 7671, 1575, 7666, 1590, 1643, 1644,11752,    0,
893      7657, 7659,11752,    0, 7637, 1964, 7630,  372, 7625, 7665,
894     11752,    0, 7613, 2031, 7602, 7614, 7600, 7604, 7601, 7601,
895
896      7585,11752,    0, 7593, 7579, 7590, 7570,11752,    0, 2098,
897      7567, 7606, 7584,  172, 7559, 7563, 1654,  695, 7547, 1655,
898      7574,  680,  707,  841,  914,  911, 1779, 1037, 1282,11752,
899         0, 7550, 2155, 7558, 7531, 7537,11752,    0, 7540, 2462,
900      7533, 7528,11752,    0, 2480, 7532, 7531,11752,    0, 7529,
901      7520, 7515,11752,    0, 7516,  434, 2522, 7487, 7508, 7499,
902       621,11752,    0, 7473, 2532, 2540, 7487,11752,    0, 7492,
903      7488, 2546, 7469, 2587, 7464, 7459, 7472, 7471, 7453, 7464,
904      7463, 7456, 7454,11752,    0, 2590, 2593, 7436, 7428, 7445,
905      7444, 7433, 7433,11752,    0, 7433, 7430, 7403, 2596, 7397,
906
907      7392, 7406, 7390,11752,    0, 7389, 2599, 7381,11752,    0,
908      7383, 2654, 7375, 7392,11752,    0, 7378, 2657, 7359, 7377,
909      7375, 7356,11752,    0, 7345, 7357, 7346, 7339, 7346,11752,
910         0, 7333, 7352, 7347, 7320, 7358,11752,    0, 7311, 2660,
911      7315,11752,    0, 7300, 7316, 7306,11752,    0, 7287, 7303,
912      7298, 7298,11752,    0, 7276, 7270, 7275, 7279, 7277, 7260,
913      7257,11752,    0, 7257, 7266,11752,    0, 2663, 7262,11752,
914         0, 2666, 7247, 7242, 7281, 7290, 1537, 7233,11752, 1630,
915         0, 7229, 7228, 7263, 7262, 7214,11752, 7227, 7206, 2466,
916      2721, 1847, 7212, 7201, 7187, 7199, 7171, 7177, 7170, 7181,
917
918      7163, 7155, 7154, 7160, 7159, 7144, 7139, 7127, 7132, 7144,
919      7123, 7122, 1856, 7132, 7110, 7125, 7098, 7086, 7093, 7088,
920      2724, 2729, 7086, 2732, 1914, 7081, 7105, 2735, 2780,11752,
921      7058, 2783, 1983, 2790, 7044, 2793, 7048, 7051, 7050, 2786,
922      2849, 7032, 7038, 7028, 2835, 2838, 2841, 2050, 7006, 2845,
923      2903, 2229, 7021, 7003, 6999, 7002, 6990, 6983, 6987, 2289,
924      6985, 6983, 6977, 6975, 6975, 2906, 2416, 6973, 6972, 2910,
925      2913, 6950, 2916, 2487, 6964, 2969, 2972, 2975, 2551, 6956,
926      2980, 2983, 6951, 6949, 2995, 3039, 6939, 6925, 6926, 3045,
927      2621, 6925, 6905, 3049, 3052, 6901, 6895, 6899, 3063, 2688,
928
929      3105, 2868, 3108, 3114, 6902, 1786, 3117, 2934, 6905, 3129,
930      3003, 3170, 6899, 6897, 6870, 6855, 6852, 6849, 6861, 3123,
931      3179, 3176, 3071, 3182, 3238, 3188, 3250, 3255, 3258, 3263,
932      3308, 3333, 6834,   37, 6824, 3319, 3269, 3322, 6835, 6815,
933      3327, 3377, 6816, 3381, 3277, 3385, 3388, 6817, 3391, 3340,
934      6803, 3434, 3438, 6802, 3443, 3446, 6799, 6781, 6768, 3491,
935      3500, 3494, 3497, 3503, 3506, 3563, 6773, 3521, 3566, 3570,
936      3573, 3576, 3597, 6771, 3591, 3461, 3600, 3603, 3611, 3635,
937      3639, 3642, 3646, 3677, 3682, 3649, 3685, 6769, 6751, 6748,
938      6752, 6739, 3696, 3704, 6746, 6731, 3710, 3739, 3700, 3527,
939
940      3743, 3746, 3707, 3751, 6726, 3765, 3769, 6774,11752,11752,
941       932, 6732,11752, 6757, 6752, 6700,11752,11752, 6698, 6696,
942      6699, 3772, 3775,11752, 3778, 1714, 6686, 6677, 6682, 6687,
943      6671, 6658, 6663, 6648, 6654, 6654, 6645, 6643, 6634, 6621,
944       701, 6632, 6615, 6615, 6629, 6624, 6618, 1923, 6611, 6600,
945      6605, 6583, 1109, 6596, 3784, 3797, 3804,11752, 3808, 3811,
946      3816,11752,11752, 3829, 6620, 3834, 3837,11752, 3840, 6578,
947      3843,11752,11752, 3859, 3862, 3871, 3877, 3882, 6590, 3891,
948      6587, 3895, 3898,11752, 3901, 6583, 3904, 6568, 3909, 3922,
949     11752, 3928, 3931,11752,11752, 6562, 3941, 3947,11752, 3950,
950
951      6552, 6551, 6559, 6535, 6543, 1648, 6532, 6517, 6533, 6512,
952      6482, 6481, 6494, 3953,11752,11752, 6482, 3962, 3969, 3972,
953     11752, 3976, 6488, 3981,11752,11752, 6500, 3991, 3995,11752,
954      3998, 4001,11752,11752, 4010, 4017, 4020,11752, 4023, 4028,
955      4032, 4046, 4050,11752, 4053, 6469, 6470, 4056, 4065,11752,
956     11752, 6430, 6442, 4061, 4074,11752, 4080, 6427, 6424, 4083,
957      4087,11752,11752, 4095,11752,11752, 4103, 4106,11752, 4109,
958      6418, 6406, 6424, 6412, 4113,11752,11752, 4129, 4132,11752,
959     11752, 4140, 4147, 6401, 6404, 6407, 6403, 6398, 6400, 6388,
960      4158, 4161,11752, 4164, 4168,11752,11752, 4183,11752,11752,
961
962      4191, 4194, 6375, 6382, 6387, 6379, 4202, 4205,11752, 4209,
963      6366, 6363, 6354, 6366, 4212,11752,11752, 4224, 4228, 6347,
964      6358, 4236, 4242,11752, 4245, 6358, 4248,11752,11752, 4264,
965      4267,11752, 4270, 6337, 4273,11752,11752, 6335, 4289, 4292,
966     11752, 4297, 6324, 4301,11752,11752, 6331, 6335, 6337, 4311,
967      4316,11752, 4320, 4323, 4326, 4341, 4347, 6336, 4355, 4359,
968     11752, 4363, 6328, 4366, 4384, 6315, 6308, 4370, 4392, 6320,
969      4400, 4403,11752, 4406, 6320, 4409,11752,11752, 4425, 4431,
970     11752, 4434, 4437, 4440, 4455, 4458, 4466, 4473,11752, 4477,
971      4480, 4485, 6295, 6294, 4498, 4501, 4509, 4512,11752, 4516,
972
973      6287, 4519, 6295, 6283, 6257, 4522, 4531,11752, 4541, 6254,
974      6262, 4544, 4550,11752, 4553, 4556,11752,11752, 4564, 4572,
975     11752, 4575, 4579,11752,11752, 6245, 4587, 4594,11752, 4597,
976      1538, 4607,11752,11752, 6280, 6265, 6227, 6216, 4616, 6207,
977      6202, 6210, 6146, 6129, 6109, 6117, 2116, 6102, 2173, 6044,
978      6029, 2349, 6034, 6032, 2358, 6010, 6019, 5996, 5968, 5939,
979      5927, 5849, 5823, 5821, 2361, 5814, 5788, 4619, 4637, 4622,
980      4628, 4646, 5731, 5741, 4654, 5665, 4659,11752,11752, 4667,
981      4674, 4685,11752,11752, 5644, 4693, 4697, 5540, 4705, 5530,
982      4711, 4714, 4724, 4729, 5506, 4631,11752, 5414, 5432,   22,
983
984      2425, 2428, 2528,  141,  322,  338,  369,  393,  439,  437,
985      4732, 4735, 4738, 4756,  448,  490, 4759, 4762, 4765, 4780,
986      4783, 4786,  498, 4794,  527,  561, 4801, 4804, 4813, 4824,
987      4827,  552,  577, 4831, 4835, 4849,  636, 4852,  694,  721,
988      4856, 4859, 4874,11752,11752, 4882,  740,  772,  757,  762,
989       783,  815, 4885, 4888,11752,11752, 4896, 4900, 4904, 4907,
990      4910,  843, 4918,  829,  845, 4925,11752,11752, 4936,  872,
991      4939,  880, 4942,  907,  935, 4945,  968,  977, 1009, 4954,
992      4966, 4972,11752,11752, 4981,11752,11752, 1030, 4989, 2559,
993      4992,11752,11752, 1037, 1088, 5009,11752,11752, 1086, 5004,
994
995      1090, 5017, 5024,11752,11752, 5032,11752,11752, 5040, 5043,
996     11752,11752, 1094, 1117, 5052,11752,11752, 5060, 1150, 5066,
997      5069, 1154, 1176, 1186, 5079, 1179, 5084, 5088, 5091, 5094,
998      5098, 1405, 1221, 5102,11752, 1249,11752,11752, 1221, 1233,
999      5112, 1228, 1249, 1240, 1247, 1301, 1305, 1305, 2629, 1322,
1000      1347, 2696, 1363, 2876, 1373, 2942, 1360, 1359, 3208, 1371,
1001      3247, 1378, 3348, 1412, 1427, 1437, 1463, 1465, 3212, 1467,
1002      3409, 5117,11752,11752, 5131, 5134,11752,11752, 1517, 1536,
1003      5144, 1515, 5150,11752,11752, 1524, 5165,11752,11752, 1531,
1004      5173, 1548, 5176, 2717, 3112, 5125, 5185, 5199, 1569, 1557,
1005
1006      1567, 1579, 3316, 1588, 3352, 3535, 5202, 1594, 1584, 1585,
1007      5205, 5208, 1602, 5211, 5214, 5222,11752,11752, 5230, 1617,
1008      5235, 5238, 5242,11752,11752, 5253, 5257,11752,11752, 5273,
1009      5278, 1643, 1632, 5282,11752,11752, 5291, 5297, 5305, 5309,
1010      1659, 5323, 4042, 1670, 5326,11752,11752, 5334, 1672, 5337,
1011      5343, 5355, 1747, 5358,11752,11752, 5366, 5369, 5377, 1777,
1012      1792, 1797, 1801, 5384, 5387, 5390, 5395, 5408, 5411, 5414,
1013      5417, 1806, 5420, 5432, 5440, 1800, 5443, 5447, 1826, 5461,
1014      1833, 5464, 1851, 1831, 5470, 1854, 1834, 1854, 5473, 5485,
1015      1865, 5493, 1863, 5496, 1896, 5499, 5502, 5505, 5508, 1905,
1016
1017      5527, 5523, 5531, 5534, 5537, 1907, 5542,11752,11752, 1914,
1018      1913, 1906, 5552, 1923, 5557, 5560, 5576, 5579, 5582, 5585,
1019      5604, 1977, 1976, 2043,11752, 1918, 5607, 5610, 1937, 1931,
1020      1932, 2019, 1961, 1971, 4374, 1983, 1990, 1983, 5613, 2005,
1021      1995, 1997, 5616, 5619, 5625, 2028, 5629, 2053, 5636, 5639,
1022      2037, 2041, 2055, 2043, 5642, 2063, 5645, 2064, 2099, 5648,
1023      2075, 5651, 2096, 5654, 5657, 2139, 2126, 2188, 2129, 2145,
1024      2135, 2248, 2136, 5660,11752,11752, 5675, 5679, 2125, 2133,
1025      2197, 2165, 5682, 5685, 2171, 2259, 2260, 5688, 5697,11752,
1026     11752, 5706, 5709, 5714, 5718, 5727, 5732, 5735, 5739, 5747,
1027
1028      2171, 2185, 5753,11752,11752, 5762, 2201, 2202, 2198, 5770,
1029     11752, 5773, 2224, 5777, 2227, 5782,11752,11752, 5790, 5796,
1030      2231, 5804,11752,11752, 5812, 5815, 5823, 2237, 2267, 2273,
1031      5826, 5830, 5844, 5847,11752,11752, 5855, 5859, 5867, 5873,
1032      5876, 5885, 2281, 5892,11752,11752, 5900, 5904, 2290, 5912,
1033     11752,11752, 2284, 5920,11752, 2293, 5923, 2276, 5926, 5929,
1034      2280, 5932, 2306, 5944, 2321, 2322, 2325, 5952,11752, 2340,
1035      5955, 2337, 5958, 5961, 5979, 5982, 2349, 5991, 2345, 5997,
1036      6000, 6003, 6006, 6021, 6024, 6032, 2347, 2354, 2355, 2404,
1037      6035, 2400, 6040,11752,11752, 6054, 6058, 6062,11752,11752,
1038
1039      6073,11752, 2452, 2477, 2472, 2414, 6077, 6080, 6088, 6101,
1040      2420, 2441, 2459, 2464, 6107, 6112, 6115, 2475, 6118, 2478,
1041      2492, 2495, 6121, 6124, 6127, 6130, 2495, 6133, 6136, 6139,
1042      6142, 6145, 6148, 2501, 6153, 2509, 2537, 6156,11752, 2538,
1043      6160, 6163, 2556, 6178, 6181, 6184, 2573, 2571, 2571, 2581,
1044      2574, 2585, 2582, 2586, 2593, 2586, 6192, 6199, 6205, 6213,
1045      2597, 2632, 2609, 2612, 6217, 6220, 6223, 6226, 6234, 6237,
1046      6242, 6255,11752,11752, 6263, 6268,11752, 6271,11752,11752,
1047      6282, 2615, 2609, 2660, 2661, 2618, 2630, 6287, 2624, 6290,
1048     11752,11752, 2631, 6302,11752,11752, 6310, 6315, 2665, 2665,
1049
1050      2670, 6324,11752,11752, 6332, 6336,11752,11752, 6344, 6347,
1051      6355,11752,11752, 6363, 2682, 6366,11752,11752, 2675, 2685,
1052      2684, 6374, 2700, 6377, 6382, 6397, 2701, 6400, 6403, 2720,
1053      2716, 2772, 2776, 2738, 2750, 6412,11752, 2746, 6418,11752,
1054     11752, 6431,11752,11752, 2762, 6426, 2752, 6440, 6445, 6448,
1055     11752,11752, 6460,11752,11752, 6468, 6472, 6478, 6482, 6490,
1056      6496, 2763, 6500, 6503, 6508, 2848, 2855, 6511, 6515,11752,
1057     11752, 6523, 6530, 6533, 6536, 2784, 2785, 6542, 6550, 2797,
1058      6553, 6556, 6562, 6565, 6568, 6571, 2789, 2797, 6574, 6577,
1059      6583, 6586, 2801, 6589, 2796,11752, 6592, 6595,11752,11752,
1060
1061      6603, 6610,11752, 6614,11752,11752, 2841, 2833, 2850, 2849,
1062      2895, 2899, 2886, 2901, 2899, 2906, 6622, 6625, 6608, 6613,
1063      6650, 6654, 2873, 2872, 2888, 6657, 2880, 6660,11752,11752,
1064      6670, 6673,11752,11752, 6684, 6689, 2908, 2927, 2961, 2984,
1065      2964, 2984, 2949, 6692, 6695, 2951, 2955, 6699,11752,11752,
1066      6708, 2948, 2960, 6717, 6720,11752,11752, 6728, 2957, 2979,
1067      2985, 2986, 6731,11752, 6736, 6741,11752,11752, 6750, 6756,
1068      6759,11752,11752, 6769, 6774, 3017, 3039, 3023, 3048, 6777,
1069      3009, 6780, 3011, 6787, 6783, 6795, 6807, 6814, 6810, 6819,
1070      6829, 6836, 6839, 6842, 6847, 6857, 6861,11752, 6864, 3061,
1071
1072      3118, 6869, 6876, 6872, 6883, 2998, 3002, 6891, 6895, 6898,
1073      6901, 3003, 3016, 3017, 6904,11752, 3026, 6907, 6910, 3048,
1074      3071, 3074, 3088, 3092, 3106, 3104, 3118, 3141, 3139, 3150,
1075      6918, 3133, 3137, 3186, 3135, 3131, 3145, 3143, 3148, 3216,
1076      3145, 3164, 3186, 6927, 3182, 3180, 6930, 3183, 6933, 6937,
1077     11752, 6940, 3200, 3203, 3278,11752, 3305,11752, 6943, 6946,
1078      6952, 3248, 3279, 6962, 6965, 3272, 6973, 6980,11752, 6983,
1079     11752, 3271, 3273, 6986, 3278, 6991, 7010, 6995, 7004, 7018,
1080      7026, 7029, 7032, 3342,11752, 3364,11752, 7035, 3326, 7038,
1081      3338, 7053,11752, 7056, 7059, 7067, 7074, 7079, 7082,11752,
1082
1083     11752, 7093, 7098, 7106, 7111, 7114,11752, 7117, 7120, 3379,
1084      3386, 3381, 7124,11752, 3333, 3354, 7129, 3345, 3400, 3403,
1085      7133, 7144, 3546, 3597, 3396, 3436, 3446, 3445, 3490, 3508,
1086      3485, 3497, 3497, 3505, 3523, 7152, 3465, 3477, 3500, 3522,
1087      3524, 3530, 3521, 3528, 3550, 3546, 3556, 3559, 3564, 3555,
1088      3558, 3578, 7155, 3576, 7158, 7161,11752, 3574, 7164,11752,
1089     11752, 7167, 7171, 7185, 3582, 3597, 7188,11752,11752, 3609,
1090      7196, 7200, 3597, 7208, 7214, 7217, 7226, 7232,11752,11752,
1091      7240,11752, 7244,11752,11752, 7252, 7255, 7259,11752,11752,
1092      7262, 7266, 7280, 7283, 7286, 3842, 4089, 7294,11752, 7301,
1093
1094      7308, 7316,11752,11752, 7327, 7330, 7338, 7341, 7350,11752,
1095      3674, 3671, 3731, 3604, 7356, 3624, 3627, 3631, 7359, 7370,
1096      3652, 3659, 3730, 3659, 3681, 3761, 3656, 3700, 3692, 3691,
1097      3698,11752, 3731, 3719, 3717, 3722,11752, 7362, 3717, 3731,
1098      3718, 3734, 3744, 3749, 3755, 3749, 3762, 3750, 3766, 3776,
1099      3781, 3801, 3783, 7381, 3800, 7384, 7387, 7390, 7393, 7408,
1100     11752,11752, 7416,11752, 3807, 3793, 3807, 7419,11752,11752,
1101      3821, 7427, 7435, 7447,11752,11752, 7455, 7458, 7466, 7469,
1102      7473, 7477,11752,11752, 7487, 7491, 7499, 7505, 3834, 3836,
1103      3839, 3846, 3851, 3872, 7513, 7517, 7525, 3889, 3903, 7536,
1104
1105     11752,11752, 3900, 3927, 7544, 3863, 7430, 7547, 3849, 3851,
1106      7550,11752,11752, 3900, 3901, 3903, 3911, 3924, 3923, 3925,
1107      3941, 7558, 3946, 3966, 3985, 3984, 3968, 3987, 4007, 3995,
1108      7565, 3960, 3966, 3986, 4035, 4036, 4049, 4019, 4012, 4021,
1109      4043, 4094, 4109, 4097, 4065, 4074, 7568, 7571, 7576, 7579,
1110      7585, 4074, 7597,11752,11752, 4083, 4079, 4067, 4091, 7605,
1111     11752,11752, 7615,11752,11752, 7623, 7628, 7631, 7641, 7646,
1112      4134, 4138, 7655, 4145, 4156, 4103, 4117, 4148, 4112, 4122,
1113      4149, 7663, 7666, 4145, 4156, 4158, 4173, 4182, 7669, 7675,
1114      7678, 7688, 7697, 7700, 7703, 4182, 4193, 4195, 4184, 4189,
1115
1116      4209, 4216, 4203, 7706, 7709, 4224, 4225,11752, 4228, 4231,
1117      4231,11752, 4233, 7717, 4211, 4210, 4274,11752,11752, 4232,
1118      4231, 4232, 4218, 4279,11752,11752, 4240, 4245, 7720, 7724,
1119      7727, 7736,11752,11752, 4245, 4249, 4251, 7746, 4254, 7749,
1120      7752,11752,11752, 7760, 4280, 4295, 4297, 4308, 4301, 4312,
1121      4305, 4320, 4312, 4326,11752, 4319, 4329,11752, 7767,11752,
1122      7770, 4338, 4332, 4354, 4342, 4402, 7773, 7780, 7792, 7823,
1123      7870, 7800, 7803, 7806, 4359, 4385, 4386, 4357, 4374, 4391,
1124      4405, 4376, 7811,11752,11752, 4411, 4386, 4388, 4415, 4392,
1125      4397, 7834, 4365, 4381,11752, 4381, 4393, 4386, 4387,11752,
1126
1127      4388, 4406, 7843, 7846,11752, 4406, 4411, 4422, 7849, 7853,
1128      4418, 7861, 7890, 7881, 7899, 4479, 4451, 4483, 4456, 4492,
1129      4467, 4499, 4470, 4521, 4522, 4521, 4522, 7907, 4531, 4499,
1130      4531, 4509, 4549, 7916, 4566, 4585, 7936, 7983, 4536,11752,
1131     11752, 4525, 4557,11752,11752, 4549,11752, 4587, 4596,11752,
1132      4594, 4597, 7910,11752, 4606, 4564, 4563, 4623, 4635, 4596,
1133      4600, 4645, 4606, 4611, 4593, 7956, 4640, 4646, 4619, 7964,
1134     11752,11752, 7972, 4654, 4663,11752, 4669,11752, 4683,11752,
1135      4692,11752, 4695,11752,11752,11752,11752, 7929,11752,11752,
1136      4688,11752, 4689, 4709, 4771, 4701, 4713, 4736, 4715, 7994,
1137
1138      4731, 4722, 4735, 4726,11752,11752,11752,11752,11752, 4749,
1139      4701,11752,11752, 4769, 4720,11752, 8003, 8006, 8009, 4753,
1140      4770, 4799, 4772, 8014, 4823, 4780, 4826, 4782,11752,11752,
1141     11752,11752, 4774, 4780, 8017, 4813, 4802, 4815, 8032, 4830,
1142      4824, 4840, 4844,11752, 4821, 4867,11752, 4825, 4870, 8036,
1143      8039, 8047, 8054, 8065, 8068, 4841, 4849, 4871, 4856, 4883,
1144      4896, 8076, 8084, 4884, 4892, 4910, 4893, 4902, 4914, 4910,
1145      4911, 8079, 4934,11752, 4926,11752, 4927, 4912,11752, 4913,
1146     11752, 8094,11752,11752, 8102,11752,11752, 8110, 4950, 4961,
1147      4929, 4938, 4942, 4945, 4964, 4961, 8118,11752,11752, 4966,
1148
1149      4981, 4978, 4980, 4989, 4985, 5023, 5022, 5020,11752, 5026,
1150      5030, 4992, 4994, 5029, 5024, 5037, 5037, 5044, 5052, 5053,
1151      5054, 5082, 5084, 5082, 5092, 5098, 5095, 5106, 5113,11752,
1152     11752, 5121,11752,11752, 5089, 5096, 5110, 5136, 5121, 5141,
1153      5128, 5129, 5148, 5144, 5142, 5159, 5149, 5149, 5167, 5158,
1154      5155, 5173, 5207, 5193, 5212, 5185, 5191, 5198, 5205, 5223,
1155      5216, 5256, 5238, 5228, 5258, 5243, 5233, 5266, 5252, 5246,
1156      5280, 5270,11752,11752, 5267, 5276, 5274, 5279, 5308, 5283,
1157     11752, 5308, 5286,11752, 5314, 5289,11752, 5314, 5298,11752,
1158      5314, 5296, 5317, 5313, 5326,11752, 5327,11752, 5329,11752,
1159
1160      5337,11752, 5339, 8126, 5340, 5370, 5351, 5374, 5340, 5351,
1161      5356, 5358, 8129, 5399,11752, 5397,11752, 5402, 5416, 5420,
1162      5419, 5437, 5458,11752,11752,11752,11752,11752,11752, 5412,
1163      5499, 5502, 5532, 5538, 5655, 5432, 5438, 5449, 5503, 5553,
1164      5583, 5465, 5605, 5577, 5578, 5409, 5685, 5647, 5705, 5420,
1165      5674, 5712, 5738, 5522, 5783, 5660, 5733, 5767, 5800, 5750,
1166      5758, 5781, 5791, 5818, 5846, 5889, 5897, 5820, 5840, 5832,
1167      5861, 5863, 5880, 5879, 5951, 5948, 5953, 5919, 5922, 5411,
1168      5967, 5958, 6021, 5769, 5977, 6031, 6034, 5684, 5954, 6027,
1169      6086, 6030, 6148, 6009, 6172, 5998, 6043, 6184, 6229, 6177,
1170
1171      6190, 6049, 6179, 6150, 6242, 6249, 6258, 6232, 6235, 6289,
1172      6302, 6169, 6311, 8137, 8140,11752,11752, 8160, 8169, 8178,
1173      8187, 8196, 8205, 8214, 8223, 8232, 8241, 8250, 8259, 8268,
1174      8277, 8286, 8295, 8304, 8313, 8322, 8331, 8340, 8349, 8358,
1175      8367, 8376, 8385, 8394, 8403, 8412, 8421, 8430, 8439, 8448,
1176      8457, 8466, 8475, 8484, 8493, 8502, 8511, 8520, 8529, 8538,
1177      8547, 8556, 8565, 8574, 8583, 8592, 8601, 8610, 8619, 8628,
1178      8637, 8646, 8655, 8664, 8673, 8682, 8689, 8696, 8703, 8710,
1179      8717, 8724, 8731, 8738, 8745, 8752, 8759, 8766, 8773, 8780,
1180      8787, 8794, 8801, 8808, 8815, 8822, 8829, 8836, 8843, 8850,
1181
1182      8857, 8864, 8871, 8880, 8887, 8892, 8899, 8904, 8911, 8916,
1183      8923, 8928, 8935, 8940, 8947, 8952, 8959, 8964, 8971, 8976,
1184      8983, 8988, 8995, 9000, 9007, 9012, 9019, 9024, 9031, 9036,
1185      9043, 9048, 9055, 9060, 9067, 9072, 9079, 9084, 9091, 9096,
1186      9103, 9108, 9115, 9120, 9127, 9132, 9139, 9144, 9151, 9156,
1187      9163, 9168, 9175, 9180, 9187, 9192, 9199, 9204, 9213, 9219,
1188      9226, 9234, 9241, 9249, 9256, 9264, 9271, 9279, 9286, 9294,
1189      9301, 9309, 9316, 9324, 9331, 9339, 9346, 9354, 9361, 9369,
1190      9376, 9384, 9391, 9399, 9406, 9414, 9422, 9430, 9437, 9445,
1191      9452, 9460, 9467, 9475, 9482, 9490, 9498, 9506, 9514, 9522,
1192
1193      9529, 9537, 9545, 9553, 9561, 9569, 9576, 9584, 9591, 9599,
1194      9607, 9614, 9622, 9631, 9637, 9644, 9652, 9660, 9668, 9676,
1195      9684, 9691, 9699, 9706, 9714, 9721, 9729, 9736, 9744, 9751,
1196      9759, 9767, 9775, 9783, 9791, 9798, 9806, 9814, 9822, 9829,
1197      9837, 9844, 9852, 9859, 9867, 9874, 9882, 9889, 9897, 9904,
1198      9912, 9919, 9927, 9934, 9942, 9949, 9957, 9965, 9972, 9980,
1199      9987, 9995,10002,10010,10018,10025,10033,10042,10051,10058,
1200     10066,10074,10081,10089,10096,10104,10111,10119,10126,10133,
1201     10141,10148,10156,10164,10171,10179,10186,10194,10202,10209,
1202     10217,10225,10233,10240,10248,10255,10263,10270,10278,10285,
1203
1204     10293,10300,10308,10315,10323,10330,10338,10346,10353,10361,
1205     10368,10376,10384,10392,10400,10408,10416,10425,10434,10441,
1206     10449,10457,10464,10472,10479,10487,10494,10502,10509,10516,
1207     10524,10531,10539,10547,10555,10563,10570,10578,10586,10593,
1208     10601,10609,10617,10624,10632,10639,10647,10654,10662,10669,
1209     10677,10684,10692,10700,10708,10715,10723,10731,10739,10747,
1210     10754,10762,10770,10778,10786,10795,10804,10812,10820,10828,
1211     10835,10843,10850,10858,10866,10874,10882,10890,10898,10906,
1212     10914,10922,10930,10937,10945,10952,10960,10968,10976,10983,
1213     10990,10998,11005,11013,11020,11027,11035,11042,11050,11057,
1214
1215     11065,11073,11081,11088,11096,11104,11112,11121,11130,11138,
1216     11146,11153,11160,11168,11176,11184,11192,11200,11207,11215,
1217     11222,11230,11238,11245,11252,11260,11267,11275,11282,11289,
1218     11296,11304,11311,11319,11327,11335,11343,11351,11359,11367,
1219     11376,11385,11393,11401,11408,11416,11424,11432,11440,11448,
1220     11455,11463,11470,11478,11486,11493,11500,11508,11516,11524,
1221     11531,11538,11546,11554,11562,11570,11578,11586,11594,11602,
1222     11611,11620,11628,11635,11642,11650,11658,11666,11673,11681,
1223     11688,11697,11706,11715,11724,11733,11742
1224     } ;
1225
1226 static yyconst flex_int16_t yy_def[3688] =
1227     {   0,
1228      3218, 3218, 3219, 3219, 3219, 3219, 3220, 3220, 3221, 3221,
1229      3222, 3222, 3223, 3223, 3223, 3223, 3224, 3224, 3218, 3218,
1230      3225, 3225, 3226, 3226, 3226, 3226, 3218, 3218, 3226, 3226,
1231      3226, 3226, 3218, 3218, 3226, 3226, 3218, 3218, 3226, 3226,
1232      3226, 3226, 3227, 3227, 3228, 3228, 3218, 3218, 3228, 3228,
1233      3228, 3228, 3229, 3229, 3223, 3223, 3230, 3230, 3231, 3231,
1234      3232, 3232, 3233, 3233, 3234, 3234, 3235, 3235, 3235, 3235,
1235      3218, 3218, 3235, 3235, 3235, 3235, 3218, 3218, 3235, 3235,
1236      3235, 3235, 3218, 3218, 3235, 3235, 3218, 3218, 3235, 3235,
1237      3235, 3235, 3218, 3218, 3235, 3235, 3218, 3218, 3235, 3235,
1238
1239      3235, 3235, 3236, 3236, 3237, 3237, 3218, 3218, 3237, 3237,
1240      3237, 3237, 3238, 3238, 3239, 3239, 3218, 3218, 3239, 3239,
1241      3239, 3239, 3240, 3240, 3241, 3241, 3242, 3242, 3243, 3243,
1242      3244, 3244, 3245, 3245, 3218, 3218, 3245, 3245, 3245, 3245,
1243      3246, 3246, 3247, 3247, 3217,  145, 3248, 3248, 3249, 3249,
1244      3250, 3250, 3251, 3251, 3252, 3252, 3253, 3253, 3254, 3254,
1245      3255, 3255, 3256, 3256, 3257, 3257, 3258, 3258, 3218, 3218,
1246      3258, 3258, 3258, 3258, 3259, 3259, 3260, 3260, 3218, 3218,
1247      3260, 3260, 3260, 3260, 3261, 3261, 3262, 3262, 3218, 3218,
1248      3262, 3262, 3262, 3262, 3263, 3263, 3264, 3264, 3265, 3265,
1249
1250      3266, 3266, 3218, 3218, 3266, 3266, 3266, 3266, 3267, 3267,
1251      3268, 3268, 3218, 3218, 3268, 3268, 3268, 3268, 3269, 3269,
1252      3270, 3270, 3218, 3218, 3270, 3270, 3270, 3270, 3271, 3271,
1253      3272, 3272, 3273, 3273, 3274, 3274, 3218, 3218, 3274, 3274,
1254      3274, 3274, 3275, 3275, 3276, 3276, 3218, 3218, 3217, 3217,
1255      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1256      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1257      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3277,
1258      3217, 3217, 3277, 3217, 3217, 3217,  286,  286,  288,  286,
1259       289,  289, 3217, 3217, 3217, 3278, 3217, 3217, 3278, 3217,
1260
1261      3217,  290,  289, 3217, 3217, 3217, 3279, 3217, 3217, 3279,
1262      3279, 3279, 3217, 3217, 3217, 3217, 3217, 3280, 3217, 3217,
1263      3280, 3280, 3280, 3280, 3280, 3217, 3217, 3217, 3217, 3217,
1264      3217, 3281, 3217, 3217, 3281, 3281, 3281, 3217, 3217, 3217,
1265      3217, 3217, 3217, 3282, 3217, 3217, 3282, 3282, 3217, 3217,
1266      3217,  351,  289,  289,  290,  355,  354,  354,  354,  354,
1267       355,  361,  360,  359, 3217, 3217, 3217, 3283, 3217, 3217,
1268      3283, 3283, 3283, 3283, 3217, 3217,  289,  289, 3217, 3217,
1269      3217, 3284, 3217, 3217, 3284, 3284, 3284, 3217, 3217,  289,
1270       289, 3217, 3217, 3217, 3285, 3217, 3217, 3285, 3285, 3217,
1271
1272      3217, 3217, 3217, 3217, 3217, 3286, 3217, 3217, 3286, 3286,
1273      3217, 3217, 3217, 3217, 3217, 3217, 3287, 3217, 3217, 3287,
1274      3287, 3287, 3287, 3287, 3217, 3217,  289,  427,  427, 3217,
1275      3217, 3217, 3288, 3217, 3217, 3288, 3288, 3288, 3217, 3217,
1276      3217, 3217, 3217, 3217, 3289, 3217, 3217, 3289, 3289, 3289,
1277      3289, 3289, 3289, 3289, 3289, 3217, 3217, 3217, 3217, 3217,
1278      3217, 3290, 3217, 3217, 3290, 3290, 3290, 3290, 3290, 3290,
1279      3217, 3217, 3217, 3217, 3217, 3217, 3291, 3217, 3217, 3291,
1280      3291, 3291, 3291, 3291, 3291, 3291, 3217, 3217, 3217, 3217,
1281      3217, 3217, 3292, 3217, 3217, 3292, 3292, 3217, 3217, 3217,
1282
1283      3217, 3217, 3217, 3293, 3217, 3217, 3293, 3293, 3293, 3217,
1284      3217, 3217, 3217, 3217, 3217, 3294, 3217, 3217, 3294, 3294,
1285      3294, 3294, 3217, 3217,  427,  289, 3217, 3217, 3217, 3295,
1286      3217, 3217, 3295, 3295, 3217, 3217,  289,  537,  537, 3217,
1287      3217, 3217, 3296, 3217, 3217, 3296, 3296, 3296, 3217, 3217,
1288       537,  537, 3217, 3217, 3217, 3297, 3217, 3217, 3297, 3297,
1289      3217, 3217, 3217, 3217, 3217, 3217, 3298, 3217, 3217, 3298,
1290      3298, 3217, 3217,  537,  537, 3217, 3217, 3217, 3299, 3217,
1291      3217, 3299, 3299, 3299, 3217, 3217,  537,  537, 3217, 3217,
1292      3217, 3300, 3217, 3217, 3300, 3300, 3300, 3300, 3300, 3217,
1293
1294      3217,  289,  602,  602, 3217, 3217, 3217, 3301, 3217, 3217,
1295      3301, 3217, 3217, 3217, 3217, 3217, 3217, 3302, 3217, 3217,
1296      3302, 3217, 3217,  602,  289, 3217, 3217, 3217, 3303, 3217,
1297      3217, 3303, 3303, 3217, 3217, 3217, 3217, 3304, 3217, 3217,
1298      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1299      3217, 3217, 3217, 3305, 3305, 3306, 3217, 3217, 3217, 3217,
1300      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1301      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3307,
1302      3307, 3308, 3217, 3309, 3309, 3309, 3309, 3217, 3310, 3217,
1303      3217, 3311, 3311, 3311, 3311, 3311, 3311, 3311, 3311, 3311,
1304
1305      3312, 3217, 3313, 3313, 3313, 3313, 3314, 3217, 3315, 3315,
1306      3315, 3316, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1307      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1308      3317, 3317, 3317, 3317, 3317, 3318, 3217, 3319, 3319, 3319,
1309      3319, 3320, 3217, 3321, 3321, 3321, 3322, 3217, 3323, 3323,
1310      3323, 3324, 3217, 3325, 3325, 3325, 3325, 3325, 3325, 3326,
1311      3217, 3217, 3327, 3327, 3327, 3327, 3328, 3217, 3329, 3329,
1312      3329, 3329, 3329, 3329, 3329, 3329, 3329, 3329, 3329, 3329,
1313      3329, 3329, 3330, 3217, 3331, 3331, 3331, 3331, 3331, 3331,
1314      3331, 3331, 3332, 3217, 3333, 3333, 3333, 3333, 3333, 3333,
1315
1316      3333, 3333, 3334, 3217, 3335, 3335, 3335, 3336, 3217, 3337,
1317      3337, 3337, 3337, 3338, 3217, 3339, 3339, 3339, 3339, 3339,
1318      3339, 3340, 3217, 3341, 3341, 3341, 3341, 3342, 3217, 3217,
1319      3343, 3343, 3343, 3343, 3343, 3344, 3217, 3345, 3345, 3345,
1320      3346, 3217, 3347, 3347, 3347, 3348, 3217, 3349, 3349, 3349,
1321      3349, 3350, 3217, 3351, 3351, 3351, 3351, 3351, 3351, 3352,
1322      3217, 3217, 3353, 3353, 3354, 3217, 3355, 3355, 3356, 3217,
1323      3357, 3357, 3357, 3358, 3359, 3217, 3359, 3217, 3217, 3217,
1324      3360, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3361, 3362,
1325      3362, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1326
1327      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1328      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3363,
1329      3364, 3364, 3365, 3217, 3217, 3365, 3217, 3366, 3366, 3217,
1330      3367, 3217, 3217, 3367, 3367, 3367, 3367, 3367, 3367, 3368,
1331      3368, 3369, 3369, 3369, 3370, 3370, 3217, 3217, 3371, 3372,
1332      3372, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1333      3217, 3217, 3217, 3217, 3373, 3217, 3217, 3373, 3373, 3374,
1334      3374, 3375, 3217, 3217, 3375, 3376, 3376, 3217, 3217, 3377,
1335      3378, 3378, 3379, 3379, 3380, 3380, 3381, 3381, 3381, 3217,
1336      3217, 3381, 3381, 3382, 3382, 3217, 3217, 3383, 3217, 3217,
1337
1338      3217, 3217, 3384, 3384, 3385, 3385, 3217, 3217, 3385, 3217,
1339      3217, 3385, 3385, 3385, 3385, 3385, 3385, 3385, 3385, 3386,
1340      3386, 3217, 3217, 3217, 3217, 3387, 3387, 3387, 3387, 3387,
1341      3388, 3388, 3389, 3389, 3389, 3217, 3217, 3389, 3389, 3389,
1342      3390, 3390, 3391, 3217, 3217, 3392, 3392, 3393, 3217, 3217,
1343      3393, 3394, 3394, 3395, 3217, 3217, 3395, 3395, 3395, 3396,
1344      3396, 3397, 3397, 3397, 3398, 3398, 3217, 3399, 3399, 3399,
1345      3399, 3400, 3400, 3401, 3217, 3217, 3402, 3402, 3403, 3403,
1346      3404, 3404, 3405, 3405, 3405, 3406, 3406, 3407, 3407, 3407,
1347      3407, 3407, 3408, 3408, 3217, 3409, 3410, 3410, 3217, 3217,
1348
1349      3411, 3411, 3217, 3217, 3412, 3413, 3413, 3414, 3217, 3217,
1350      3414, 3217, 3217, 3415, 3217, 3217, 3217, 3217, 3217, 3217,
1351      3416, 3217, 3417, 3217, 3417, 3217, 3217, 3217, 3217, 3217,
1352      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1353      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1354      3217, 3217, 3217, 3217, 3418, 3217, 3419, 3217, 3419, 3420,
1355      3217, 3217, 3217, 3420, 3217, 3217, 3421, 3217, 3421, 3422,
1356      3217, 3217, 3217, 3217, 3217, 3422, 3217, 3217, 3422, 3422,
1357      3422, 3217, 3423, 3217, 3423, 3424, 3424, 3424, 3217, 3425,
1358      3217, 3425, 3217, 3217, 3217, 3426, 3217, 3427, 3217, 3427,
1359
1360      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1361      3217, 3217, 3428, 3217, 3217, 3217, 3428, 3428, 3217, 3429,
1362      3217, 3429, 3430, 3217, 3217, 3217, 3430, 3217, 3431, 3217,
1363      3431, 3217, 3217, 3217, 3432, 3217, 3433, 3217, 3433, 3434,
1364      3434, 3217, 3435, 3217, 3435, 3436, 3436, 3436, 3217, 3217,
1365      3217, 3436, 3436, 3217, 3437, 3217, 3437, 3217, 3217, 3438,
1366      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3439, 3217, 3439,
1367      3440, 3440, 3440, 3440, 3217, 3217, 3217, 3440, 3217, 3217,
1368      3217, 3217, 3217, 3440, 3440, 3440, 3440, 3440, 3440, 3440,
1369      3217, 3441, 3217, 3441, 3217, 3217, 3217, 3217, 3217, 3217,
1370
1371      3217, 3217, 3442, 3442, 3442, 3442, 3217, 3443, 3217, 3443,
1372      3444, 3444, 3444, 3444, 3217, 3217, 3217, 3217, 3217, 3444,
1373      3444, 3217, 3445, 3217, 3445, 3446, 3217, 3217, 3217, 3217,
1374      3447, 3217, 3447, 3448, 3217, 3217, 3217, 3448, 3217, 3449,
1375      3217, 3449, 3450, 3217, 3217, 3217, 3450, 3450, 3450, 3217,
1376      3451, 3217, 3451, 3217, 3217, 3217, 3217, 3452, 3217, 3453,
1377      3217, 3453, 3217, 3217, 3217, 3454, 3454, 3217, 3217, 3454,
1378      3217, 3455, 3217, 3455, 3456, 3217, 3217, 3217, 3217, 3457,
1379      3217, 3457, 3217, 3217, 3217, 3217, 3217, 3458, 3217, 3458,
1380      3217, 3217, 3459, 3459, 3217, 3217, 3217, 3460, 3217, 3460,
1381
1382      3461, 3461, 3461, 3461, 3461, 3217, 3462, 3217, 3462, 3217,
1383      3463, 3217, 3464, 3217, 3464, 3217, 3217, 3217, 3217, 3465,
1384      3217, 3465, 3217, 3217, 3217, 3466, 3217, 3467, 3217, 3467,
1385      3468, 3469, 3217, 3217, 3217, 3217, 3217, 3470, 3471, 3217,
1386      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1387      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1388      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3472,
1389      3217, 3217, 3473, 3217, 3474, 3475, 3217, 3217, 3217, 3217,
1390      3217, 3217, 3217, 3217, 3475, 3217, 3217, 3475, 3476, 3477,
1391      3217, 3217, 3477, 3478, 3479, 3217, 3217, 3217, 3217, 3217,
1392
1393      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3480,
1394      3480, 3217, 3217, 3481, 3482, 3482, 3483, 3217, 3217, 3484,
1395      3217, 3217, 3485, 3486, 3487, 3487, 3217, 3217, 3487, 3487,
1396      3488, 3217, 3217, 3217, 3217, 3489, 3490, 3490, 3490, 3490,
1397      3217, 3217, 3217, 3217, 3217, 3490, 3490, 3490, 3490, 3490,
1398      3490, 3490, 3491, 3217, 3217, 3217, 3492, 3492, 3492, 3492,
1399      3493, 3494, 3494, 3494, 3494, 3217, 3217, 3217, 3494, 3494,
1400      3495, 3496, 3497, 3498, 3498, 3499, 3500, 3500, 3500, 3500,
1401      3501, 3217, 3217, 3217, 3217, 3217, 3217, 3502, 3503, 3217,
1402      3217, 3217, 3217, 3504, 3504, 3217, 3217, 3217, 3504, 3505,
1403
1404      3506, 3507, 3217, 3217, 3217, 3217, 3217, 3217, 3508, 3217,
1405      3217, 3217, 3509, 3509, 3217, 3217, 3217, 3510, 3511, 3217,
1406      3217, 3511, 3511, 3511, 3512, 3217, 3513, 3514, 3515, 3516,
1407      3517, 3518, 3519, 3519, 3217, 3519, 3217, 3217, 3217, 3520,
1408      3521, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1409      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1410      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1411      3217, 3217, 3217, 3217, 3522, 3217, 3217, 3217, 3523, 3217,
1412      3524, 3525, 3217, 3217, 3217, 3525, 3217, 3217, 3217, 3525,
1413      3526, 3527, 3217, 3217, 3217, 3217, 3217, 3528, 3529, 3217,
1414
1415      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1416      3217, 3217, 3530, 3217, 3217, 3217, 3217, 3217, 3531, 3532,
1417      3532, 3533, 3217, 3217, 3217, 3534, 3217, 3217, 3217, 3535,
1418      3536, 3537, 3537, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1419      3537, 3538, 3217, 3217, 3217, 3217, 3217, 3539, 3540, 3217,
1420      3217, 3540, 3540, 3217, 3217, 3217, 3217, 3217, 3540, 3540,
1421      3540, 3540, 3540, 3540, 3541, 3217, 3217, 3542, 3542, 3542,
1422      3543, 3544, 3217, 3217, 3544, 3544, 3217, 3217, 3544, 3545,
1423      3546, 3547, 3548, 3548, 3549, 3550, 3550, 3550, 3217, 3217,
1424      3550, 3551, 3552, 3553, 3217, 3554, 3554, 3554, 3555, 3556,
1425
1426      3557, 3558, 3559, 3559, 3560, 3561, 3217, 3217, 3217, 3561,
1427      3561, 3561, 3562, 3217, 3217, 3217, 3563, 3564, 3217, 3217,
1428      3565, 3566, 3567, 3567, 3217, 3217, 3568, 3569, 3217, 3217,
1429      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1430      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1431      3217, 3217, 3217, 3217, 3217, 3217, 3570, 3571, 3217, 3572,
1432      3573, 3573, 3573, 3574, 3575, 3217, 3217, 3217, 3217, 3217,
1433      3217, 3217, 3217, 3217, 3217, 3217, 3576, 3577, 3217, 3217,
1434      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3578, 3217, 3217,
1435      3217, 3579, 3580, 3217, 3217, 3581, 3582, 3217, 3217, 3583,
1436
1437      3584, 3584, 3217, 3217, 3217, 3217, 3217, 3217, 3584, 3217,
1438      3217, 3217, 3217, 3585, 3586, 3217, 3217, 3217, 3217, 3217,
1439      3586, 3217, 3217, 3217, 3217, 3217, 3586, 3586, 3586, 3586,
1440      3217, 3217, 3587, 3217, 3217, 3217, 3217, 3217, 3588, 3217,
1441      3217, 3589, 3590, 3217, 3217, 3217, 3217, 3217, 3590, 3217,
1442      3217, 3217, 3590, 3217, 3217, 3591, 3592, 3593, 3593, 3594,
1443      3595, 3595, 3595, 3217, 3217, 3217, 3595, 3217, 3217, 3596,
1444      3597, 3217, 3217, 3217, 3217, 3217, 3598, 3599, 3600, 3601,
1445      3602, 3217, 3217, 3217, 3217, 3603, 3604, 3604, 3604, 3604,
1446      3605, 3217, 3217, 3217, 3217, 3606, 3607, 3217, 3217, 3217,
1447
1448      3217, 3217, 3608, 3609, 3609, 3217, 3217, 3217, 3610, 3217,
1449      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1450      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1451      3217, 3217, 3217, 3217, 3611, 3612, 3217, 3217, 3217, 3613,
1452      3217, 3217, 3613, 3614, 3217, 3217, 3217, 3217, 3217, 3217,
1453      3217, 3217, 3217, 3217, 3217, 3217, 3615, 3217, 3217, 3217,
1454      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3616, 3217,
1455      3217, 3217, 3217, 3217, 3617, 3217, 3217, 3217, 3217, 3217,
1456      3618, 3619, 3619, 3217, 3217, 3619, 3217, 3620, 3621, 3217,
1457      3217, 3217, 3621, 3217, 3217, 3217, 3217, 3217, 3621, 3621,
1458
1459      3621, 3217, 3217, 3217, 3622, 3217, 3217, 3217, 3217, 3217,
1460      3217, 3217, 3217, 3623, 3624, 3217, 3217, 3217, 3624, 3624,
1461      3625, 3626, 3627, 3217, 3217, 3628, 3629, 3217, 3217, 3629,
1462      3629, 3217, 3217, 3629, 3630, 3217, 3217, 3217, 3217, 3217,
1463      3217, 3217, 3217, 3217, 3631, 3632, 3633, 3634, 3635, 3217,
1464      3217, 3217, 3217, 3217, 3217, 3636, 3637, 3637, 3637, 3637,
1465      3638, 3217, 3639, 3640, 3641, 3642, 3642, 3217, 3217, 3217,
1466      3217, 3643, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1467      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1468      3217, 3217, 3217, 3644, 3645, 3217, 3646, 3217, 3217, 3217,
1469
1470      3646, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1471      3217, 3217, 3217, 3217, 3217, 3217, 3647, 3217, 3217, 3217,
1472      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1473      3648, 3217, 3217, 3217, 3649, 3650, 3651, 3651, 3217, 3217,
1474      3217, 3217, 3651, 3217, 3652, 3653, 3653, 3217, 3217, 3217,
1475      3653, 3653, 3653, 3654, 3217, 3217, 3217, 3655, 3656, 3656,
1476      3656, 3657, 3217, 3217, 3658, 3217, 3217, 3217, 3659, 3660,
1477      3217, 3217, 3217, 3660, 3660, 3217, 3217, 3217, 3217, 3660,
1478      3661, 3217, 3662, 3663, 3664, 3665, 3666, 3667, 3217, 3217,
1479      3668, 3668, 3668, 3669, 3217, 3670, 3217, 3217, 3671, 3672,
1480
1481      3672, 3217, 3673, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1482      3217, 3217, 3217, 3217, 3217, 3217, 3674, 3217, 3217, 3675,
1483      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1484      3676, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1485      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3677, 3217,
1486      3217, 3678, 3679, 3679, 3217, 3217, 3217, 3217, 3679, 3217,
1487      3680, 3681, 3681, 3217, 3217, 3681, 3681, 3217, 3217, 3217,
1488      3217, 3656, 3656, 3656, 3657, 3217, 3217, 3659, 3217, 3217,
1489      3660, 3660, 3660, 3217, 3217, 3217, 3217, 3660, 3661, 3217,
1490      3662, 3217, 3217, 3217, 3217, 3665, 3666, 3667, 3217, 3217,
1491
1492      3217, 3217, 3217, 3668, 3668, 3217, 3217, 3217, 3670, 3671,
1493      3672, 3672, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1494      3674, 3217, 3217, 3217, 3675, 3217, 3217, 3217, 3217, 3217,
1495      3217, 3217, 3217, 3217, 3217, 3676, 3217, 3217, 3217, 3217,
1496      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1497      3217, 3217, 3217, 3217, 3677, 3217, 3217, 3679, 3679, 3217,
1498      3217, 3217, 3217, 3680, 3681, 3681, 3217, 3217, 3217, 3681,
1499      3217, 3217, 3656, 3656, 3217, 3217, 3657, 3217, 3217, 3217,
1500      3217, 3217, 3217, 3217, 3217, 3660, 3660, 3660, 3217, 3217,
1501      3217, 3217, 3661, 3662, 3217, 3217, 3217, 3217, 3217, 3666,
1502
1503      3667, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1504      3671, 3672, 3672, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1505      3217, 3217, 3217, 3217, 3217, 3217, 3675, 3217, 3217, 3217,
1506      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3676, 3217, 3217,
1507      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1508      3217, 3217, 3217, 3217, 3217, 3677, 3679, 3217, 3217, 3217,
1509      3217, 3217, 3217, 3217, 3681, 3681, 3681, 3217, 3217, 3217,
1510      3656, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3660, 3660,
1511      3660, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1512      3217, 3217, 3217, 3217, 3666, 3667, 3217, 3217, 3217, 3217,
1513
1514      3217, 3217, 3671, 3672, 3672, 3217, 3217, 3217, 3217, 3217,
1515      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1516      3217, 3675, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1517      3676, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1518      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3677, 3217,
1519      3217, 3679, 3217, 3217, 3217, 3681, 3681, 3681, 3656, 3217,
1520      3217, 3217, 3217, 3217, 3217, 3660, 3217, 3217, 3660, 3217,
1521      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1522      3217, 3666, 3667, 3217, 3217, 3217, 3217, 3671, 3672, 3672,
1523      3672, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1524
1525      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1526      3217, 3217, 3217, 3676, 3217, 3217, 3217, 3217, 3217, 3217,
1527      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1528      3677, 3217, 3217, 3217, 3679, 3681, 3681, 3681, 3656, 3660,
1529      3217, 3217, 3217, 3660, 3217, 3217, 3217, 3217, 3217, 3217,
1530      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1531      3667, 3217, 3217, 3217, 3217, 3671, 3672, 3672, 3672, 3682,
1532      3683, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1533      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1534      3217, 3676, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1535
1536      3217, 3217, 3217, 3217, 3217, 3679, 3681, 3681, 3217, 3217,
1537      3656, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1538      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3667, 3217, 3217,
1539      3217, 3217, 3671, 3672, 3684, 3685, 3682, 3683, 3217, 3217,
1540      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1541      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1542      3217, 3217, 3679, 3681, 3681, 3217, 3217, 3217, 3656, 3217,
1543      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1544      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1545      3217, 3217, 3217, 3671, 3684, 3672, 3686, 3685, 3687, 3672,
1546
1547      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1548      3217, 3217, 3217, 3217, 3217, 3217, 3679, 3681, 3681, 3217,
1549      3217, 3217, 3217, 3656, 3217, 3217, 3217, 3217, 3217, 3217,
1550      3217, 3217, 3217, 3217, 3671, 3686, 3217, 3687, 3672, 3217,
1551      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1552      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1553      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1554      3217, 3671, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1555      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1556      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1557
1558      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3671, 3217, 3217,
1559      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1560      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1561      3217, 3671, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1562      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1563      3217, 3217, 3671, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1564      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1565      3217, 3671, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1566      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1567      3671, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1568
1569      3217, 3217, 3217, 3671, 3217, 3217, 3217, 3217, 3217, 3217,
1570      3217, 3217, 3671, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1571      3217, 3671, 3671, 3217, 3217, 3217, 3217, 3217, 3217, 3671,
1572      3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671,
1573      3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671,
1574      3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671,
1575      3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671,
1576      3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671,
1577      3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671,
1578      3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671,
1579
1580      3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671,
1581      3671, 3671, 3671, 3671, 3671, 3217,    0, 3217, 3217, 3217,
1582      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1583      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1584      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1585      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1586      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1587      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1588      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1589      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1590
1591      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1592      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1593      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1594      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1595      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1596      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1597      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1598      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1599      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1600      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1601
1602      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1603      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1604      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1605      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1606      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1607      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1608      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1609      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1610      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1611      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1612
1613      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1614      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1615      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1616      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1617      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1618      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1619      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1620      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1621      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1622      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1623
1624      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1625      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1626      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1627      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1628      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1629      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1630      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1631      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1632      3217, 3217, 3217, 3217, 3217, 3217, 3217
1633     } ;
1634
1635 static yyconst flex_int16_t yy_nxt[11827] =
1636     {   0,
1637      3217,  252,  253,  252,  252,  253,  252,  252,  253,  252,
1638       252,  253,  252,  257,  253,  257,  263,  254,  260,  263,
1639       254,  260, 3217,  255, 3217,  261,  255, 3217,  261,  258,
1640       257,  253,  257,  638,  264,  266,  267,  264,  266,  267,
1641       268,  269,  682,  268,  269,  638,  258,  273,  274,  639,
1642       270,  266,  267,  270,  271,  641,  268,  266,  267,  671,
1643       271,  640,  268,  273,  274, 3217,  270,  253,  253,  253,
1644       820,  640,  270,  253,  253,  253,  285,  253,  285,  285,
1645       253,  285,  821,  276,  285,  253,  285,  659, 1702,  276,
1646       712,  275,  286, 1312,  674,  286,  637,  637,  637, 1313,
1647
1648       287,  637,  637,  637,  637,  637,  637,  275,  277,  278,
1649       253,  278,  277,  277,  277,  277,  277,  277,  277,  279,
1650       277,  277,  277,  669,  277,  281,  277,  282,  277,  285,
1651       253,  285,  253,  253,  253,  253,  253,  253,  670,  285,
1652       253,  285,  285,  253,  285,  287,  675,  664,  288,  641,
1653       674,  288,  894,  277,  277,  286,  641,  641,  286,  285,
1654       253,  285,  637,  637,  637,  640,  637,  637,  637,  637,
1655       637,  637,  640,  640, 3217,  289,  895,  283,  277,  278,
1656       253,  278,  277,  277,  277,  277,  277,  277,  277,  279,
1657       277,  277,  277, 1707,  277,  281,  277,  282,  277,  285,
1658
1659       253,  285,  253,  253,  253,  253,  253,  253,  646,  285,
1660       253,  285,  285,  253,  285,  289,  652,  712,  290,  776,
1661       953,  290,  777,  277,  277,  287,  720,  713,  287,  253,
1662       253,  253,  253,  253,  253,  285,  253,  285,  285,  253,
1663       285,  285,  253,  285,  954,  291,  826,  283,  291,  641,
1664       647,  289,  771,  827,  289,  724,  648,  292,  285,  253,
1665       285,  649,  637,  637,  637,  640,  650,  637,  637,  637,
1666       637,  637,  637,  772,  292,  293,  294,  253,  294,  293,
1667       293,  293,  293,  293,  293,  293,  295,  293,  293,  293,
1668       699,  293,  297,  293,  298,  293,  301,  253,  301,  301,
1669
1670       253,  301,  253,  253,  253,  700,  253,  253,  253,  301,
1671       253,  301,  302,  789,  882,  302,  790,  883,  290,  695,
1672       293,  293,  290,  696,  736,  302,  656,  697,  299,  293,
1673       294,  253,  294,  293,  293,  293,  293,  293,  293,  293,
1674       295,  293,  293,  293,  641,  293,  297,  293,  298,  293,
1675       301,  253,  301,  301,  253,  301,  301,  253,  301,  778,
1676       640,  869,  266,  267,  834,  676,  302,  268, 3217,  303,
1677      1708,  835,  303,  779,  293,  293,  720,  313,  677,  736,
1678       670,  876,  299,  304,  305,  253,  305,  304,  304,  304,
1679       304,  304,  304,  304,  306,  304,  304,  304,  658,  304,
1680
1681       308,  304,  309,  304, 1709,  641,  314,  669,  327,  253,
1682       327,  327,  253,  327,  339,  253,  339,  927,  266,  267,
1683       678,  640,  670,  268,  328,  688,  907,  328,  304,  304,
1684       340,  674,  689,  313,  902, 1710,  310,  742,  903,  311,
1685       908,  640,  637,  637,  637, 1711,  312,  304,  305,  253,
1686       305,  304,  304,  304,  304,  304,  304,  304,  306,  304,
1687       304,  304,  314,  304,  308,  304,  309,  304,  339,  253,
1688       339,  350,  253,  350,  350,  253,  350,  822,  350,  253,
1689       350,  350,  253,  350,  340,  641,  641,  351,  641,  720,
1690       351, 1712,  304,  304,  352,  701,  988,  352, 1713,  989,
1691
1692       310,  640,  640,  311,  640,  637,  637,  637,  742, 1720,
1693       312,  315,  316,  253,  316,  315,  315,  315,  315,  315,
1694       315,  315,  317,  315,  315,  315,  664,  315,  319,  315,
1695       320,  315,  253,  253,  253,  253,  253,  253,  350,  253,
1696       350, 1721,  350,  253,  350,  350,  253,  350,  353, 1730,
1697       641,  353,  641,  641,  351,  658,  315,  315,  351,  707,
1698       674,  354,  637,  637,  637,  321,  640,  322,  640,  640,
1699       674,  323,  637,  637,  637, 1732,  324,  325,  315,  316,
1700       253,  316,  315,  315,  315,  315,  315,  315,  315,  317,
1701       315,  315,  315,  671,  315,  319,  315,  320,  315,  350,
1702
1703       253,  350,  253,  253,  253,  253,  253,  253,  822,  350,
1704       253,  350,  350,  253,  350,  354,  723, 1733,  355, 1743,
1705       641,  355,  727,  315,  315,  356,  716,  715,  356,  637,
1706       637,  637,  321,  719,  322,  674,  640,  728,  323,  637,
1707       637,  637, 1744,  324,  325,  329,  330,  253,  330,  329,
1708       329,  329,  329,  329,  329,  329,  331,  329,  329,  329,
1709       674,  329,  333,  329,  334,  329,  350,  253,  350,  350,
1710       253,  350,  253,  253,  253,  912,  253,  253,  253,  350,
1711       253,  350,  357,  996, 1749,  357,  641,  997,  358,  908,
1712       329,  329,  358,  747,  641,  354,  876,  335,  637,  637,
1713
1714       637,  752,  640,  336,  637,  637,  637,  637,  637,  637,
1715       640,  877,  337,  329,  330,  253,  330,  329,  329,  329,
1716       329,  329,  329,  329,  331,  329,  329,  329,  894,  329,
1717       333,  329,  334,  329,  350,  253,  350,  253,  253,  253,
1718       253,  253,  253,  912,  350,  253,  350,  350,  253,  350,
1719       354, 1454,  961,  359,  641,  953,  359,  958,  329,  329,
1720       357, 1752,  641,  357, 1455,  335,  637,  637,  637, 1753,
1721       640,  336,  637,  637,  637,  637,  637,  637,  640,  895,
1722       337,  341,  342,  253,  342,  341,  341,  341,  341,  341,
1723       341,  341,  343,  341,  341,  341,  836,  341,  345,  341,
1724
1725       346,  341,  350,  253,  350,  350,  253,  350,  253,  253,
1726       253, 1759,  253,  253,  253,  350,  253,  350,  360,  641,
1727      1760,  360, 1761, 1762,  361,  869,  341,  341,  361,  641,
1728      1763,  362,  637,  637,  637,  640,  760,  347,  637,  637,
1729       637,  637,  637,  637,  663,  640,  348,  341,  342,  253,
1730       342,  341,  341,  341,  341,  341,  341,  341,  343,  341,
1731       341,  341,  846,  341,  345,  341,  346,  341,  350,  253,
1732       350,  253,  253,  253,  253,  253,  253,  674,  350,  253,
1733       350,  350,  253,  350,  362,  761, 1764,  363,  720,  953,
1734       363, 1772,  341,  341,  360,  641, 1775,  360,  350,  253,
1735
1736       350, 1776,  767,  347,  350,  253,  350,  637,  637,  637,
1737       663,  640,  348,  961,  364,  637,  637,  637,  712, 1779,
1738       364,  365,  366,  253,  366,  365,  365,  365,  365,  365,
1739       365,  365,  367,  365,  365,  365, 1781,  365,  369,  365,
1740       370,  365,  376,  253,  376,  376,  253,  376,  253,  253,
1741       253, 1109,  253,  253,  253, 1431,  729,  780,  377,  912,
1742       641,  377,  894, 1783,  353, 3217,  365,  365,  353,  781,
1743       782,  371,  718,  963,  828,  671,  640,  372,  637,  637,
1744       637,  373,  637,  637,  637, 1784,  962,  374,  365,  366,
1745       253,  366,  365,  365,  365,  365,  365,  365,  365,  367,
1746
1747       365,  365,  365,  659,  365,  369,  365,  370,  365,  376,
1748       253,  376,  376,  253,  376,  376,  253,  376,  896,  376,
1749       253,  376,  829,  641, 1786,  377,  674, 1787,  377,  897,
1750       783,  378,  898,  365,  365,  378,  641,  641,  371,  640,
1751       637,  637,  637,  793,  372,  637,  637,  637,  373,  637,
1752       637,  637,  640,  640,  374,  379,  380,  253,  380,  379,
1753       379,  379,  379,  379,  379,  379,  381,  379,  379,  379,
1754      1788,  379,  383,  379,  384,  379,  389,  253,  389,  389,
1755       253,  389,  253,  253,  253,  912,  253,  253,  253,  637,
1756       637,  637,  390,  641,  641,  390,  641, 1793,  353,  964,
1757
1758       379,  379,  353,  803, 1796,  385,  637,  637,  637,  640,
1759       640,  386,  640,  637,  637,  637,  637,  637,  637,  637,
1760       637,  637,  387,  379,  380,  253,  380,  379,  379,  379,
1761       379,  379,  379,  379,  381,  379,  379,  379, 1797,  379,
1762       383,  379,  384,  379,  389,  253,  389,  389,  253,  389,
1763       389,  253,  389, 1798,  389,  253,  389, 1800,  641, 1466,
1764       390, 1803,  641,  390,  641,  808,  391, 1804,  379,  379,
1765       391,  814, 1455,  385,  640,  637,  637,  637,  640,  386,
1766       640,  637,  637,  637,  637,  637,  637,  637,  637,  637,
1767       387,  392,  393,  253,  393,  392,  392,  392,  392,  392,
1768
1769       392,  392,  394,  392,  392,  392, 1806,  392,  396,  392,
1770       397,  392,  401,  253,  401,  401,  253,  401,  412,  253,
1771       412, 1810,  412,  253,  412,  426,  253,  426,  402,  641,
1772       641,  402, 1811, 1812,  413,  641,  392,  392,  413, 1814,
1773      1635,  427,  637,  637,  637,  640,  640,  398,  637,  637,
1774       637,  640,  399,  392,  393,  253,  393,  392,  392,  392,
1775       392,  392,  392,  392,  394,  392,  392,  392, 1825,  392,
1776       396,  392,  397,  392,  426,  253,  426,  253,  253,  253,
1777       253,  253,  253, 1826,  426,  253,  426,  426,  253,  426,
1778       427,  641,  641,  428, 1827, 1829,  428,  852,  392,  392,
1779
1780       427, 1830, 1831,  427,  637,  637,  637,  640,  640,  398,
1781       637,  637,  637, 1832,  399,  403,  404,  253,  404,  403,
1782       403,  403,  403,  403,  403,  403,  405,  403,  403,  403,
1783       953,  403,  407,  403,  408,  403,  426,  253,  426,  426,
1784       253,  426,  440,  253,  440,  663,  440,  253,  440,  457,
1785       253,  457,  429, 1833,  962,  429,  641, 1834,  441, 1835,
1786       403,  403,  441,  841,  641,  458,  637,  637,  637,  637,
1787       637,  637,  640,  637,  637,  637,  409,  637,  637,  637,
1788       640, 1836,  410,  403,  404,  253,  404,  403,  403,  403,
1789       403,  403,  403,  403,  405,  403,  403,  403, 1837,  403,
1790
1791       407,  403,  408,  403,  457,  253,  457,  472,  253,  472,
1792       472,  253,  472, 1838,  488,  253,  488,  488,  253,  488,
1793       458, 1840, 1841,  473, 1109, 1842,  473,  641,  403,  403,
1794       489, 1843, 1846,  489,  637,  637,  637,  637,  637,  637,
1795       637,  637,  637,  640,  409,  637,  637,  637,  860, 1822,
1796       410,  414,  415,  253,  415,  414,  414,  414,  414,  414,
1797       414,  414,  416,  414,  414,  414, 1849,  414,  418,  414,
1798       419,  414,  499,  253,  499,  499,  253,  499,  511,  253,
1799       511,  896,  511,  253,  511,  861,  641, 1850,  500, 1851,
1800       641,  500,  897,  865,  512,  911,  414,  414,  512,  420,
1801
1802       720,  421,  640,  637,  637,  637,  640,  422,  637,  637,
1803       637,  637,  637,  637,  423, 1852, 1853,  424,  414,  415,
1804       253,  415,  414,  414,  414,  414,  414,  414,  414,  416,
1805       414,  414,  414, 1854,  414,  418,  414,  419,  414,  524,
1806       253,  524,  524,  253,  524,  253,  253,  253,  914,  253,
1807       253,  253,  637,  637,  637,  525, 1109, 1109,  525,  915,
1808       641,  353,  898,  414,  414,  353,  420,  874,  421,  637,
1809       637,  637, 1111, 1858,  422, 1859,  640, 1632,  880,  880,
1810       880,  423, 1861, 1862,  424,  430,  431,  253,  431,  430,
1811       430,  430,  430,  430,  430,  430,  432,  430,  430,  430,
1812
1813      1863,  430,  434,  430,  435,  430,  524,  253,  524,  524,
1814       253,  524,  524,  253,  524, 1865,  524,  253,  524,  536,
1815       253,  536,  525, 1878, 1879,  525,  904,  917,  526, 1880,
1816       430,  430,  526,  905,  905,  537,  436,  881,  914,  906,
1817       918,  437,  880,  880,  880, 1881, 1113, 1882, 1885,  915,
1818      1886, 1887,  911,  438,  430,  431,  253,  431,  430,  430,
1819       430,  430,  430,  430,  430,  432,  430,  430,  430, 1888,
1820       430,  434,  430,  435,  430,  536,  253,  536,  253,  253,
1821       253,  253,  253,  253, 1893,  536,  253,  536,  536,  253,
1822       536,  537, 1901, 1902,  538,  917,  904,  538, 1466,  430,
1823
1824       430,  537,  905,  905,  537,  436,  904,  917,  906,  918,
1825       437, 1503, 1909,  905,  905, 1126, 1126, 1126, 1913,  957,
1826       957, 1915,  438,  442,  443,  253,  443,  442,  442,  442,
1827       442,  442,  442,  442,  444,  442,  442,  442,  445,  442,
1828       446,  442,  447,  442,  445,  445,  445,  445,  445,  445,
1829       445,  445,  445,  445,  445,  445,  445,  445,  445,  445,
1830       445,  445,  445,  445,  445,  445,  445,  445,  442,  442,
1831       445,  448,  449,  450,  445,  445,  445,  445,  445,  451,
1832       445,  445,  452,  445,  445,  445,  453,  445,  454,  455,
1833       445,  445,  445,  445,  445,  445,  445,  459,  460,  253,
1834
1835       460,  459,  459,  459,  459,  459,  459,  459,  461,  459,
1836       459,  459, 1921,  459,  463,  459,  464,  459,  536,  253,
1837       536,  536,  253,  536,  550,  253,  550,  896,  550,  253,
1838       550,  253,  253,  253,  539, 1272, 1927,  539,  915, 1928,
1839       551,  911,  459,  459,  551, 1273,  465,  538, 1126, 1126,
1840      1126, 1929, 1274,  466, 1930, 1943,  467, 1148, 1148, 1148,
1841       468, 1949,  469,  470,  459,  460,  253,  460,  459,  459,
1842       459,  459,  459,  459,  459,  461,  459,  459,  459, 1953,
1843       459,  463,  459,  464,  459,  253,  253,  253,  550,  253,
1844       550,  550,  253,  550, 1956,  550,  253,  550,  550,  253,
1845
1846       550,  538, 1958, 1959,  551, 1961, 1962,  551, 1963,  459,
1847       459,  552, 1127,  465,  552, 1161, 1161, 1161, 1967, 1162,
1848       466, 1127, 1163,  467, 1148, 1148, 1148,  468, 1970,  469,
1849       470,  474,  475,  253,  475,  474,  474,  474,  474,  474,
1850       474,  474,  476,  474,  474,  474, 1972,  474,  478,  474,
1851       479,  474,  562,  253,  562,  562,  253,  562,  573,  253,
1852       573, 1979,  573,  253,  573,  924,  924,  924,  563, 1987,
1853      1988,  563, 1989, 1990,  574, 1992,  474,  474,  574,  480,
1854       481,  482,  925, 2006, 1171, 1171, 1171,  483, 1172, 2010,
1855       484, 1173, 2011, 2012,  485, 1635, 1109,  486,  474,  475,
1856
1857       253,  475,  474,  474,  474,  474,  474,  474,  474,  476,
1858       474,  474,  474, 2003,  474,  478,  474,  479,  474,  253,
1859       253,  253,  253,  253,  253,  573,  253,  573, 2015,  573,
1860       253,  573,  932,  932,  932,  538, 2016, 2004,  538, 2018,
1861      2013,  574, 2019,  474,  474,  574,  480,  481,  482,  933,
1862      2020, 1193, 1193, 1193,  483, 1194, 2014,  484, 1195, 2021,
1863      2022,  485, 1635, 2023,  486,  490,  491,  253,  491,  490,
1864       490,  490,  490,  490,  490,  490,  492,  490,  490,  490,
1865      2026,  490,  494,  490,  495,  490,  573,  253,  573,  573,
1866       253,  573,  586,  253,  586, 2005,  586,  253,  586,  947,
1867
1868       947,  947,  575, 2027, 2030,  575, 2031, 2032,  587, 2033,
1869       490,  490,  587, 2034, 2036,  496,  948, 1649, 1649, 1649,
1870      2037,  497,  490,  491,  253,  491,  490,  490,  490,  490,
1871       490,  490,  490,  492,  490,  490,  490, 2040,  490,  494,
1872       490,  495,  490,  253,  253,  253,  253,  253,  253,  586,
1873       253,  586, 2043,  586,  253,  586,  966,  966,  966,  538,
1874      2047, 2048,  538, 1650, 2051,  587, 2052,  490,  490,  587,
1875      2053, 2056,  496,  967, 1652, 1652, 1652, 2060,  497,  501,
1876       502,  253,  502,  501,  501,  501,  501,  501,  501,  501,
1877       503,  501,  501,  501, 2061,  501,  505,  501,  506,  501,
1878
1879       586,  253,  586,  586,  253,  586,  601,  253,  601, 2049,
1880       601,  253,  601,  253,  253,  253,  588, 2050, 2062,  588,
1881      1653, 2064,  602, 2066,  501,  501,  602, 2082,  507,  603,
1882      1126, 1126, 1126, 2083, 2063,  508, 2084, 2085,  509,  501,
1883       502,  253,  502,  501,  501,  501,  501,  501,  501,  501,
1884       503,  501,  501,  501, 2086,  501,  505,  501,  506,  501,
1885       253,  253,  253,  601,  253,  601,  601,  253,  601, 2054,
1886       601,  253,  601,  601,  253,  601,  603, 2055, 2087,  602,
1887      2062, 2013,  602, 2089,  501,  501,  604, 2093,  507,  604,
1888      1148, 1148, 1148, 2099, 1201,  508, 2014, 2063,  509,  513,
1889
1890       514,  253,  514,  513,  513,  513,  513,  513,  513,  513,
1891       515,  513,  513,  513, 2100,  513,  517,  513,  518,  513,
1892       613,  253,  613,  613,  253,  613,  623,  253,  623, 2101,
1893       623,  253,  623,  253,  253,  253,  614, 2115, 2119,  614,
1894      2120, 2121,  624, 2123,  513,  513,  624, 2127,  519,  353,
1895      1656, 1656, 1656, 2131, 1201,  520, 2132, 2133,  521, 1659,
1896      1659, 1659, 1669, 1669, 1669,  522,  513,  514,  253,  514,
1897       513,  513,  513,  513,  513,  513,  513,  515,  513,  513,
1898       513, 2134,  513,  517,  513,  518,  513,  253,  253,  253,
1899       623,  253,  623,  623,  253,  623, 2135,  623,  253,  623,
1900
1901       623,  253,  623,  353, 2138, 2145,  624, 2147, 2157,  624,
1902       712,  513,  513,  625, 2158,  519,  625, 1214, 1214, 1214,
1903       721, 1215,  520, 2159, 1216,  521, 1703, 1703, 1703, 1705,
1904      1705, 1705,  522,  527,  528,  253,  528,  527,  527,  527,
1905       527,  527,  527,  527,  529,  527,  527,  527,  722,  527,
1906       531,  527,  532,  527,  635,  253,  635,  635,  253,  635,
1907      2160, 2162,  674,  973,  973,  973,  668, 1122, 1122, 1122,
1908       636, 1109, 1704,  636, 2168, 1653, 3217, 2165,  527,  527,
1909       974,  978,  978,  978,  533, 1124,  671, 2174, 1224, 1224,
1910      1224, 1635, 1225, 2175,  671, 1226, 1635, 2176,  979,  534,
1911
1912       527,  528,  253,  528,  527,  527,  527,  527,  527,  527,
1913       527,  529,  527,  527,  527,  672,  527,  531,  527,  532,
1914       527,  673,  725,  990,  990,  990, 2177, 2166,  674, 1706,
1915      1706, 1706,  675,  999,  999,  999, 2180, 2167,  726, 2182,
1916       991, 1001, 1001, 1001, 2183,  527,  527, 1007, 1007, 1007,
1917      1000,  533, 1232, 1232, 1232, 2184, 1233, 2188, 1002, 1234,
1918      1652, 1652, 1652, 2193, 1008, 2195,  534,  540,  541,  253,
1919       541,  540,  540,  540,  540,  540,  540,  540,  542,  540,
1920       540,  540, 2196,  540,  544,  540,  545,  540, 1010, 1010,
1921      1010, 1022, 1022, 1022, 1024, 1024, 1024, 1036, 1036, 1036,
1922
1923      1044, 1044, 1044, 2197, 2201, 1011, 1795, 2207, 1023, 2208,
1924      2209, 1025,  540,  540, 1037, 2210, 2211, 1045,  546, 2212,
1925      2213,  547, 1249, 1249, 1249, 2214, 1250, 2215, 2216, 1251,
1926      1649, 1649, 1649,  548,  540,  541,  253,  541,  540,  540,
1927       540,  540,  540,  540,  540,  542,  540,  540,  540, 2222,
1928       540,  544,  540,  545,  540, 1049, 1049, 1049, 1055, 1055,
1929      1055, 1075, 1075, 1075, 1099, 1099, 1099, 1103, 1103, 1103,
1930      2223, 2224, 1050, 2225, 2237, 1056, 2238, 2243, 1076,  540,
1931       540, 1100, 2244, 2246, 1104,  546, 2239, 2241,  547, 1261,
1932      1261, 1261, 2247, 1262, 2240, 2242, 1263, 1652, 1652, 1652,
1933
1934       548,  553,  554,  253,  554,  553,  553,  553,  553,  553,
1935       553,  553,  555,  553,  553,  553, 2251,  553,  557,  553,
1936       558,  553, 1122, 1122, 1122, 1156, 1156, 1156, 2252, 2253,
1937      1156, 1156, 1156,  924,  924,  924, 1166, 1166, 1166, 1866,
1938      1124, 2259, 2260, 1158, 2261, 1867,  553,  553, 1158, 1868,
1939       925, 2262,  559, 1869, 1168, 2265, 2270,  560,  553,  554,
1940       253,  554,  553,  553,  553,  553,  553,  553,  553,  555,
1941       553,  553,  553, 2274,  553,  557,  553,  558,  553, 2275,
1942      1125, 1166, 1166, 1166,  932,  932,  932, 1182, 1182, 1182,
1943      1159, 1174, 1174, 1174, 1177, 1177, 1177, 2280, 2276, 1168,
1944
1945      2281,  933, 2278,  553,  553, 1184, 2277, 2282, 1175,  559,
1946      2279, 1178, 2283, 2285,  560,  564,  565,  253,  565,  564,
1947       564,  564,  564,  564,  564,  564,  566,  564,  564,  564,
1948      2295,  564,  568,  564,  569,  564, 1189, 1189, 1189, 1189,
1949      1189, 1189,  947,  947,  947, 1169, 1197, 1197, 1197, 2306,
1950      1182, 1182, 1182, 2307, 1191, 2308, 2312, 1191, 2313,  948,
1951       564,  564, 2314, 2317, 1199, 2321,  570, 1635, 1184, 1264,
1952      1264, 1264, 2322, 1265, 1635, 2323, 1266, 1839, 1839, 1839,
1953      2324,  571,  564,  565,  253,  565,  564,  564,  564,  564,
1954       564,  564,  564,  566,  564,  564,  564, 1185,  564,  568,
1955
1956       564,  569,  564, 1192, 1197, 1197, 1197,  966,  966,  966,
1957      2300, 1219, 1219, 1219, 1219, 1219, 1219,  973,  973,  973,
1958      2325, 2301, 1199, 2326,  967, 2327, 2328,  564,  564, 1221,
1959      2329, 2330, 1221,  570,  974, 1275, 1275, 1275, 2345, 1276,
1960      2346, 1200, 1277, 1656, 1656, 1656, 2347, 2348,  571,  576,
1961       577,  253,  577,  576,  576,  576,  576,  576,  576,  576,
1962       578,  576,  576,  576, 2353,  576,  580,  576,  581,  576,
1963      1228, 1228, 1228, 1228, 1228, 1228,  978,  978,  978, 2354,
1964      1222, 1236, 1236, 1236, 1236, 1236, 1236, 2355, 1230, 2356,
1965      2357, 1230, 2358,  979,  576,  576, 1242, 1242, 1242, 1238,
1966
1967       582, 2359, 1238,  583, 1279, 1279, 1279, 2362, 1280, 2363,
1968      2366, 1281, 2367, 2372, 1244,  584,  576,  577,  253,  577,
1969       576,  576,  576,  576,  576,  576,  576,  578,  576,  576,
1970       576, 2373,  576,  580,  576,  581,  576, 2374, 2375, 1231,
1971      1242, 1242, 1242, 2384, 2385, 1239,  990,  990,  990, 2386,
1972      1254, 1254, 1254, 1254, 1254, 1254, 2387, 2389, 1244, 2391,
1973      2415,  576,  576,  991,  999,  999,  999,  582, 1256, 2416,
1974       583, 1256, 1295, 1295, 1295, 2418, 1296, 2419, 2420, 1297,
1975      1635, 1000,  584,  589,  590,  253,  590,  589,  589,  589,
1976       589,  589,  589,  589,  591,  589,  589,  589, 2421,  589,
1977
1978       593,  589,  594,  589, 2425, 1245, 1001, 1001, 1001, 1267,
1979      1267, 1267, 2411, 2426, 1257, 1267, 1267, 1267, 1007, 1007,
1980      1007, 2427, 2428, 1002, 1291, 1291, 1291, 1269,  589,  589,
1981      1010, 1010, 1010, 1269, 1870, 1008,  595, 1635,  596, 2429,
1982      1871,  597, 1293, 2430, 1872,  598, 2431, 1011, 1873,  599,
1983       589,  590,  253,  590,  589,  589,  589,  589,  589,  589,
1984       589,  591,  589,  589,  589, 2432,  589,  593,  589,  594,
1985       589, 1282, 1282, 1282, 2412, 2433, 1270, 1022, 1022, 1022,
1986      1291, 1291, 1291, 1024, 1024, 1024, 2434, 2435, 1283, 1301,
1987      1301, 1301, 2437, 2438, 1023,  589,  589, 2441, 1293, 2442,
1988
1989      1025, 2443, 2444,  595, 2445,  596, 1302, 2448,  597, 1659,
1990      1659, 1659,  598, 1669, 1669, 1669,  599,  605,  606,  253,
1991       606,  605,  605,  605,  605,  605,  605,  605,  607,  605,
1992       605,  605, 2449,  605,  609,  605,  610,  605, 1294, 1298,
1993      1298, 1298, 2450, 1299, 2451, 2439, 1300, 2452, 1844, 1844,
1994      1844, 3217, 3217, 3217, 2440, 2454, 3217, 3217, 3217, 3217,
1995      3217, 3217,  605,  605, 3217, 3217, 3217, 2458, 3217, 2459,
1996      1315, 1315, 1315, 3217, 1316, 2446, 3217, 1317, 1327, 1327,
1997      1327, 3217, 1328, 2460, 2447, 1329,  611,  605,  606,  253,
1998       606,  605,  605,  605,  605,  605,  605,  605,  607,  605,
1999
2000       605,  605, 1303,  605,  609,  605,  610,  605, 1304, 1307,
2001      1307, 1307, 1845, 2461, 1305, 2465, 1306, 1703, 1703, 1703,
2002      1036, 1036, 1036, 1318, 1318, 1318, 2466, 1309, 1322, 1322,
2003      1322, 2470,  605,  605, 1307, 1307, 1307, 1037, 2473, 2474,
2004      1319, 1335, 1335, 1335, 2477, 1336, 1324, 2489, 1337, 1847,
2005      1847, 1847, 1309, 1705, 1705, 1705,  611,  615,  616,  253,
2006       616,  615,  615,  615,  615,  615,  615,  615,  617,  615,
2007       615,  615, 2490,  615,  619,  615,  620,  615, 1322, 1322,
2008      1322, 1310, 1044, 1044, 1044, 2493, 1330, 1330, 1330, 1330,
2009      1330, 1330, 1049, 1049, 1049, 1848, 1324, 2494, 1109, 1045,
2010
2011      1635, 2514,  615,  615, 1332, 1635, 2515, 1332, 2516, 1050,
2012      1855, 1855, 1855,  621,  615,  616,  253,  616,  615,  615,
2013       615,  615,  615,  615,  615,  617,  615,  615,  615, 1325,
2014       615,  619,  615,  620,  615, 1339, 1339, 1339, 2511, 1339,
2015      1339, 1339, 2512, 2513, 1055, 1055, 1055, 1344, 1344, 1344,
2016      1333, 1345, 2517, 1341, 1346, 2518, 1856, 1341, 2527,  615,
2017       615, 1056, 1376, 1376, 1376, 2528, 1377, 2529, 2530, 1378,
2018       621,  626,  627,  253,  627,  626,  626,  626,  626,  626,
2019       626,  626,  628,  626,  626,  626, 1342,  626,  630,  626,
2020       631,  626, 1350, 1350, 1350, 1354, 1354, 1354, 1356, 1356,
2021
2022      1356, 1350, 1350, 1350, 3217, 3217, 3217, 1359, 1359, 1359,
2023      1352, 2531, 1355, 2532, 2533, 1357,  626,  626, 2534, 1352,
2024      2535, 3217, 1364, 1364, 1364, 1361, 2536,  632, 1416, 1416,
2025      1416, 2537, 1417, 2539, 2540, 1418, 1706, 1706, 1706, 1365,
2026       633,  626,  627,  253,  627,  626,  626,  626,  626,  626,
2027       626,  626,  628,  626,  626,  626, 1353,  626,  630,  626,
2028       631,  626, 2541, 1358, 1359, 1359, 1359, 3217, 3217, 3217,
2029      2521, 1368, 1368, 1368, 3217, 3217, 3217, 1371, 1371, 1371,
2030      2522, 2542, 1361, 2523, 3217, 2543,  626,  626, 1369, 2544,
2031      2545, 3217, 1075, 1075, 1075, 1373, 2546,  632, 1371, 1371,
2032
2033      1371, 1379, 1379, 1379, 1379, 1379, 1379, 2547, 2548, 1076,
2034       633,  641, 1383, 1383, 1383, 2549, 1373, 1366,  656, 1381,
2035      2550, 2524, 1381, 2551, 2552, 1362, 2553,  640,  657, 1384,
2036      2554, 2525, 1367, 1370, 2526, 1374, 1385, 1385, 1385, 2555,
2037      1387, 1387, 1387, 1387, 1387, 1387, 2557, 1391, 1391, 1391,
2038      1397, 1397, 1397, 1386, 2565,  658,  659,  660, 1389, 1382,
2039      2566, 1389,  661,  662, 1392, 2567,  663,  664, 1399, 2571,
2040       665, 2606,  666,  667,  668,  641, 2608, 2609, 3217, 3217,
2041      3217, 2610,  712, 1395, 1395, 1395, 1397, 1397, 1397, 2614,
2042      1635,  640,  713, 1109, 2615, 3217, 2618, 1406, 1406, 1406,
2043
2044      1396, 1099, 1099, 1099, 1399, 1406, 1406, 1406, 1103, 1103,
2045      1103, 1412, 1412, 1412, 1390, 1408, 2619, 2622, 1100,  658,
2046       714,  669, 2603, 1408, 2623, 1104,  715,  662, 1393, 1414,
2047       716,  664, 2604, 2624,  717, 2625,  718,  719,  668, 2626,
2048      1412, 1412, 1412, 1394, 1419, 1419, 1419, 1419, 1419, 1419,
2049      1635, 2616, 1423, 1423, 1423, 2627, 1424, 1400, 1414, 1425,
2050      2628, 2629, 1421, 2630, 2617, 1421, 1427, 1427, 1427, 1409,
2051      1427, 1427, 1427, 1122, 1122, 1122, 1122, 1122, 1122, 1122,
2052      1122, 1122, 2620, 2632, 1429, 1468, 1468, 1468, 1429, 2633,
2053      2634, 1124, 2605, 2635, 1124, 2621, 2636, 1124, 1156, 1156,
2054
2055      1156, 2637, 1469, 2638, 1415, 1156, 1156, 1156, 1422, 1156,
2056      1156, 1156, 1471, 1471, 1471, 2639, 1158, 1161, 1161, 1161,
2057      2640, 1162, 2641, 1158, 1163, 2642, 1439, 1158, 2643, 1472,
2058      3217, 3217, 3217, 2644, 1430, 1166, 1166, 1166, 1166, 1166,
2059      1166, 1166, 1166, 1166, 1171, 1171, 1171, 3217, 1172, 2645,
2060      2646, 1173, 2648, 1168, 2656, 2657, 1168, 2658, 1470, 1168,
2061      1174, 1174, 1174, 1477, 1477, 1477, 2589, 1478, 2659, 2676,
2062      1479, 2677, 1480, 1480, 1480, 2678, 2590, 1175, 1177, 1177,
2063      1177, 2679, 2591, 1482, 1482, 1482, 2680, 1483, 1475, 1481,
2064      1484, 1473, 1486, 1486, 1486, 1178, 1182, 1182, 1182, 1182,
2065
2066      1182, 1182, 1182, 1182, 1182, 1491, 1491, 1491, 2681, 1487,
2067      1189, 1189, 1189, 2684, 1184, 2692, 2694, 1184, 2695, 1109,
2068      1184, 2696, 1492, 1189, 1189, 1189, 2685, 2686, 1191, 1189,
2069      1189, 1189, 1193, 1193, 1193, 2697, 1194, 2698, 2699, 1195,
2070      2687, 1191, 1197, 1197, 1197, 2700, 1635, 1191, 1197, 1197,
2071      1197, 1496, 1496, 1496, 1214, 1214, 1214, 2701, 1215, 2702,
2072      1199, 1216, 1489, 1512, 1512, 1512, 1199, 2688, 2703, 1497,
2073      1219, 1219, 1219, 1219, 1219, 1219, 1494, 1219, 1219, 1219,
2074      1513, 2689, 1224, 1224, 1224, 2706, 1225, 2707, 1221, 1226,
2075      2708, 1221, 1228, 1228, 1228, 1221, 1228, 1228, 1228, 1228,
2076
2077      1228, 1228, 1232, 1232, 1232, 2709, 1233, 2710, 2711, 1234,
2078      1230, 1518, 1518, 1518, 1230, 2712, 2713, 1230, 1236, 1236,
2079      1236, 1236, 1236, 1236, 1236, 1236, 1236, 2715, 1519, 1521,
2080      1521, 1521, 2716, 3217, 3217, 3217, 1238, 2717, 1514, 1238,
2081      2718, 2719, 1238, 1912, 1912, 1912, 1522, 1242, 1242, 1242,
2082      3217, 1242, 1242, 1242, 1242, 1242, 1242, 1527, 1527, 1527,
2083      1517, 1523, 1254, 1254, 1254, 1244, 1249, 1249, 1249, 1244,
2084      1250, 2720, 1244, 1251, 1528, 1254, 1254, 1254, 2721, 2722,
2085      1256, 1254, 1254, 1254, 1534, 1534, 1534, 2723, 1261, 1261,
2086      1261, 1520, 1262, 1256, 2724, 1263, 1264, 1264, 1264, 1256,
2087
2088      1265, 1535, 2725, 1266, 1267, 1267, 1267, 1267, 1267, 1267,
2089      1267, 1267, 1267, 2592, 1275, 1275, 1275, 2726, 1276, 2727,
2090      1524, 1277, 1269, 2593, 2728, 1269, 2729, 2735, 1269, 2594,
2091      1541, 1541, 1541, 1279, 1279, 1279, 2736, 1280, 2737, 2738,
2092      1281, 1282, 1282, 1282, 2739, 2753, 1531, 1542, 1543, 1543,
2093      1543, 2754, 1544, 2755, 2756, 1545, 2757, 2758, 1283, 1291,
2094      1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 2745, 1295,
2095      1295, 1295, 2747, 1296, 2762, 1536, 1297, 1293, 2746, 2749,
2096      1293, 2763, 2748, 1293, 1298, 1298, 1298, 2764, 1299, 2750,
2097      2751, 1300, 1301, 1301, 1301, 1554, 1554, 1554, 2765, 1555,
2098
2099      2752, 1109, 1556, 1307, 1307, 1307, 1307, 1307, 1307, 1302,
2100      1307, 1307, 1307, 1315, 1315, 1315, 2775, 1316, 2776, 2777,
2101      1317, 1309, 2778, 2779, 1309, 1318, 1318, 1318, 1309, 1566,
2102      1566, 1566, 1553, 1567, 2780, 2766, 1568, 1322, 1322, 1322,
2103      2781, 2782, 1319, 1322, 1322, 1322, 1322, 1322, 1322, 1327,
2104      1327, 1327, 2786, 1328, 2787, 1324, 1329, 2788, 1561, 2789,
2105      2790, 1324, 2791, 2793, 1324, 1330, 1330, 1330, 1330, 1330,
2106      1330, 1330, 1330, 1330, 1335, 1335, 1335, 2794, 1336, 2795,
2107      2796, 1337, 2797, 1332, 2798, 2799, 1332, 2800, 2801, 1332,
2108      1339, 1339, 1339, 1339, 1339, 1339, 2802, 1571, 1339, 1339,
2109
2110      1339, 2806, 1344, 1344, 1344, 2807, 1345, 2808, 1341, 1346,
2111      2811, 1341, 1350, 1350, 1350, 2816, 1341, 1350, 1350, 1350,
2112      2817, 1350, 1350, 1350, 1354, 1354, 1354, 1582, 1582, 1582,
2113      1352, 1583, 2818, 2819, 1584, 1352, 2820, 2821, 1573, 1352,
2114      2822, 1355, 1356, 1356, 1356, 2823, 2824, 1576, 1585, 1585,
2115      1585, 2825, 1586, 2826, 2827, 1587, 1359, 1359, 1359, 1357,
2116      1359, 1359, 1359, 2829, 1359, 1359, 1359, 1364, 1364, 1364,
2117      2830, 1368, 1368, 1368, 1361, 2017, 2017, 2017, 1361, 2831,
2118      2832, 1581, 1361, 2839, 1365, 1591, 1591, 1591, 1369, 1592,
2119      2840, 2841, 1593, 1596, 1596, 1596, 2842, 1597, 2843, 2844,
2120
2121      1598, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371,
2122      1376, 1376, 1376, 2845, 1377, 2846, 2847, 1378, 2848, 1373,
2123      2849, 1109, 1373, 2850, 2851, 1373, 1379, 1379, 1379, 2852,
2124      2855, 1589, 1379, 1379, 1379, 1379, 1379, 1379, 1383, 1383,
2125      1383, 1603, 1603, 1603, 1381, 1604, 2856, 2857, 1605, 2858,
2126      1381, 2859, 2860, 1381, 2861, 1384, 1385, 1385, 1385, 1606,
2127      1606, 1606, 2862, 1607, 2833, 2863, 1608, 1387, 1387, 1387,
2128      2864, 1600, 2865, 1386, 1387, 1387, 1387, 2869, 1387, 1387,
2129      1387, 1391, 1391, 1391, 2876, 1389, 1610, 1610, 1610, 2877,
2130      1611, 2878, 1389, 1612, 2879, 1602, 1389, 2880, 1392, 1395,
2131
2132      1395, 1395, 1615, 1615, 1615, 2881, 1616, 2882, 2883, 1617,
2133      1397, 1397, 1397, 1397, 1397, 1397, 1396, 1397, 1397, 1397,
2134      1620, 1620, 1620, 1406, 1406, 1406, 2884, 2885, 1399, 2886,
2135      2887, 1399, 1406, 1406, 1406, 1399, 2890, 1621, 2891, 2892,
2136      1609, 1408, 1406, 1406, 1406, 1412, 1412, 1412, 2893, 2901,
2137      1408, 1412, 1412, 1412, 1412, 1412, 1412, 1416, 1416, 1416,
2138      1408, 1417, 2902, 1414, 1418, 1419, 1419, 1419, 1109, 1414,
2139      2903, 2896, 1414, 1419, 1419, 1419, 1419, 1419, 1419, 1618,
2140      1423, 1423, 1423, 1421, 1424, 2897, 2904, 1425, 1427, 1427,
2141      1427, 1421, 2905, 2896, 1421, 1427, 1427, 1427, 1427, 1427,
2142
2143      1427, 2906, 2907, 1625, 2899, 2908, 1429, 1628, 1634, 1634,
2144      1634, 2909, 2910, 1429, 2894, 2911, 1429, 1122, 1122, 1122,
2145      1468, 1468, 1468, 1156, 1156, 1156, 1635, 1636, 2912, 1471,
2146      1471, 1471, 1496, 1496, 1496, 1124, 1629, 1469, 1672, 1672,
2147      1672, 1158, 1673, 2913, 2914, 1674, 1472, 1676, 1676, 1676,
2148      1497, 1677, 2915, 2916, 1678, 1166, 1166, 1166, 2917, 1631,
2149      1477, 1477, 1477, 2918, 1478, 2919, 2920, 1479, 1480, 1480,
2150      1480, 2924, 2922, 1168, 2929, 1683, 1683, 1683, 2921, 1684,
2151      2925, 1675, 1685, 1641, 2923, 1481, 1482, 1482, 1482, 2927,
2152      1483, 2930, 2926, 1484, 1486, 1486, 1486, 2931, 1687, 1687,
2153
2154      1687, 2928, 1688, 2932, 1681, 1689, 1182, 1182, 1182, 2933,
2155      2934, 1487, 1491, 1491, 1491, 1693, 1693, 1693, 2937, 1694,
2156      1635, 1636, 1695, 2937, 1184, 1696, 1696, 1696, 1109, 1492,
2157      1189, 1189, 1189, 1714, 1714, 1714, 1512, 1512, 1512, 1716,
2158      1716, 1716, 1697, 1717, 2896, 2940, 1718, 2941, 1191, 2942,
2159      1715, 2943, 2946, 1513, 2944, 2899, 1691, 1219, 1219, 1219,
2160      1228, 1228, 1228, 1518, 1518, 1518, 1723, 1723, 1723, 2935,
2161      1724, 2949, 2945, 1725, 2956, 1221, 2896, 2947, 1230, 1698,
2162      1519, 1236, 1236, 1236, 1521, 1521, 1521, 1727, 1727, 1727,
2163      2897, 1728, 2948, 2957, 1729, 1242, 1242, 1242, 2958, 1238,
2164
2165      2961, 1522, 1527, 1527, 1527, 1734, 1734, 1734, 2966, 1735,
2166      2969, 2970, 1736, 1244, 1737, 1737, 1737, 2971, 2937, 1528,
2167      2959, 1719, 2973, 2937, 1722, 1739, 1739, 1739, 1254, 1254,
2168      1254, 1738, 1534, 1534, 1534, 2974, 1745, 1745, 1745, 2960,
2169      1746, 1726, 1740, 1747, 2964, 2975, 1256, 2967, 2976, 1535,
2170      1267, 1267, 1267, 1750, 1750, 1750, 1731, 1541, 1541, 1541,
2171      1754, 1754, 1754, 2965, 1755, 2977, 2968, 1756, 1269, 2978,
2172      1751, 1741, 2979, 2980, 1542, 1543, 1543, 1543, 2981, 1544,
2173      2991, 2992, 1545, 1757, 1757, 1757, 1291, 1291, 1291, 1554,
2174      1554, 1554, 2993, 1555, 1742, 2994, 1556, 1766, 1766, 1766,
2175
2176      1758, 3217, 3217, 3217, 1293, 3217, 3217, 3217, 3217, 3217,
2177      3217, 1307, 1307, 1307, 1767, 2995, 1748, 2996, 3217, 1773,
2178      1773, 1773, 3217, 3000, 3001, 3217, 1566, 1566, 1566, 1309,
2179      1567, 3002, 3003, 1568, 3004, 3005, 1774, 1777, 1777, 1777,
2180      1322, 1322, 1322, 1330, 1330, 1330, 1339, 1339, 1339, 3006,
2181      3007, 1765, 1769, 3009, 1778, 1789, 1789, 1789, 1324, 3010,
2182      3011, 1332, 3012, 3013, 1341, 3018, 1771, 1350, 1350, 1350,
2183      3019, 1768, 1790, 1582, 1582, 1582, 3014, 1583, 1770, 3020,
2184      1584, 3021, 1585, 1585, 1585, 1352, 1586, 3016, 3015, 1587,
2185      1359, 1359, 1359, 1591, 1591, 1591, 3022, 1592, 3023, 3017,
2186
2187      1593, 1791, 3024, 1785, 1780, 1371, 1371, 1371, 1361, 1782,
2188      1596, 1596, 1596, 3025, 1597, 3026, 3027, 1598, 1379, 1379,
2189      1379, 3028, 3029, 1373, 1792, 1603, 1603, 1603, 3030, 1604,
2190      3031, 3033, 1605, 1606, 1606, 1606, 1381, 1607, 3034, 1109,
2191      1608, 1387, 1387, 1387, 1610, 1610, 1610, 3035, 1611, 3036,
2192      3037, 1612, 3038, 1615, 1615, 1615, 1794, 1616, 3039, 1389,
2193      1617, 1397, 1397, 1397, 3032, 3040, 1799, 1620, 1620, 1620,
2194      1807, 1807, 1807, 3041, 1808, 1801, 3042, 1809, 3043, 1399,
2195      1406, 1406, 1406, 3044, 1621, 1815, 1815, 1815, 1802, 1412,
2196      1412, 1412, 1419, 1419, 1419, 1819, 1819, 1819, 1408, 1427,
2197
2198      1427, 1427, 1816, 1634, 1634, 1634, 3045, 1414, 1805, 3046,
2199      1421, 3047, 1820, 1122, 1122, 1122, 3048, 1429, 1672, 1672,
2200      1672, 1635, 1673, 3049, 3050, 1674, 1696, 1696, 1696, 1813,
2201      3051, 1124, 1156, 1156, 1156, 1676, 1676, 1676, 3052, 1677,
2202      1109, 3054, 1678, 1697, 1818, 1166, 1166, 1166, 3055, 3056,
2203      1158, 1683, 1683, 1683, 1823, 1684, 1817, 3057, 1685, 3053,
2204      3058, 1821, 3059, 1168, 3060, 1828, 1687, 1687, 1687, 3061,
2205      1688, 1824, 3062, 1689, 1182, 1182, 1182, 1693, 1693, 1693,
2206      3063, 1694, 3064, 3065, 1695, 3066, 1874, 1874, 1874, 3067,
2207      1875, 3068, 1184, 1876, 3069, 3070, 1860, 3071, 3073, 1857,
2208
2209      1189, 1189, 1189, 1883, 1883, 1883, 1883, 1883, 1883, 1844,
2210      1844, 1844, 1714, 1714, 1714, 1889, 1889, 1889, 1191, 1890,
2211      3074, 3075, 1891, 1716, 1716, 1716, 1109, 1717, 3076, 1715,
2212      1718, 1219, 1219, 1219, 3077, 1864, 1894, 1894, 1894, 1228,
2213      1228, 1228, 3078, 1723, 1723, 1723, 3072, 1724, 3079, 1221,
2214      1725, 1877, 3080, 1895, 1236, 1236, 1236, 1230, 1727, 1727,
2215      1727, 3081, 1728, 3082, 3083, 1729, 3084, 1884, 3085, 3086,
2216      1845, 3087, 1238, 1884, 1898, 1898, 1898, 3088, 1892, 1242,
2217      1242, 1242, 3089, 1734, 1734, 1734, 1896, 1735, 3090, 1109,
2218      1736, 1899, 1737, 1737, 1737, 3091, 3092, 1244, 1903, 1903,
2219
2220      1903, 3093, 1904, 3094, 3095, 1905, 1739, 1739, 1739, 1738,
2221      1906, 1906, 1906, 3096, 1907, 3097, 3098, 1908, 3099, 3100,
2222      1897, 3101, 3102, 1740, 1910, 1910, 1910, 1745, 1745, 1745,
2223      3103, 1746, 3105, 1109, 1747, 1267, 1267, 1267, 1750, 1750,
2224      1750, 3106, 1911, 1900, 1916, 1916, 1916, 3104, 1917, 3107,
2225      3108, 1918, 3109, 1269, 3110, 1751, 1919, 1919, 1919, 1754,
2226      1754, 1754, 3111, 1755, 3112, 3114, 1756, 1757, 1757, 1757,
2227      1922, 1922, 1922, 1920, 1923, 3115, 3116, 1924, 1925, 1925,
2228      1925, 1914, 3117, 3118, 1758, 1931, 1931, 1931, 1291, 1291,
2229      1291, 1766, 1766, 1766, 3119, 1926, 1934, 1934, 1934, 3120,
2230
2231      1935, 3121, 1932, 1936, 3124, 3125, 1293, 3126, 1767, 1937,
2232      1937, 1937, 3217, 3217, 3217, 1940, 1940, 1940, 1307, 1307,
2233      1307, 1773, 1773, 1773, 3127, 3128, 1938, 3129, 1109, 3217,
2234      1109, 1109, 1941, 1944, 1944, 1944, 1309, 1945, 1774, 1109,
2235      1946, 1947, 1947, 1947, 1777, 1777, 1777, 3138, 1950, 1950,
2236      1950, 1109, 1951, 3139, 1933, 1952, 1109, 1109, 1948, 3182,
2237      3140, 1778, 1954, 1954, 1954, 1330, 1330, 1330, 1109, 3148,
2238      1939, 1339, 1339, 1339, 1789, 1789, 1789, 1109, 1942, 3132,
2239      1955, 1701, 1700, 1332, 1109, 3152, 1964, 1964, 1964, 1341,
2240      1965, 1790, 3130, 1966, 1968, 1968, 1968, 1359, 1359, 1359,
2241
2242      1973, 1973, 1973, 1975, 1975, 1975, 3217, 3217, 3217, 1371,
2243      1371, 1371, 1969, 3131, 3141, 1361, 1957, 1974, 1109, 1960,
2244      1976, 1109, 1109, 3217, 1387, 1387, 1387, 1373, 1379, 1379,
2245      1379, 3144, 1982, 1982, 1982, 1984, 1984, 1984, 1397, 1397,
2246      1397, 1109, 1389, 1807, 1807, 1807, 1381, 1808, 1971, 1983,
2247      1809, 1109, 1985, 1406, 1406, 1406, 1399, 1109, 1815, 1815,
2248      1815, 1993, 1993, 1993, 3142, 1994, 3133, 1699, 1995, 3134,
2249      1977, 1408, 1109, 3156, 1980, 1816, 1978, 1412, 1412, 1412,
2250      1419, 1419, 1419, 1819, 1819, 1819, 1998, 1998, 1998, 1981,
2251      1999, 1692, 1690, 2000, 3143, 1414, 1109, 1109, 1421, 3135,
2252
2253      1820, 3136, 1109, 1986, 1991, 2001, 2001, 2001, 2007, 2007,
2254      2007, 1122, 1122, 1122, 1839, 1839, 1839, 2024, 2024, 2024,
2255      1844, 1844, 1844, 2002, 1109, 2008, 2025, 2025, 2025, 1124,
2256      1847, 1847, 1847, 3146, 3147, 1997, 1996, 2028, 2028, 2028,
2257      2029, 2029, 2029, 1855, 1855, 1855, 1156, 1156, 1156, 2038,
2258      2038, 2038, 2041, 2041, 2041, 1182, 1182, 1182, 2045, 2045,
2259      2045, 1874, 1874, 1874, 1158, 1875, 1109, 2039, 1876, 2042,
2260      3158, 3145, 2009, 1184, 1109, 2046, 1189, 1189, 1189, 1109,
2261      2058, 2058, 2058, 1883, 1883, 1883, 2065, 2065, 2065, 2067,
2262      2067, 2067, 1686, 1109, 1191, 3190, 2035, 2059, 1889, 1889,
2263
2264      1889, 3150, 1890, 1109, 1109, 1891, 2068, 1219, 1219, 1219,
2265      2070, 2070, 2070, 1682, 2044, 1894, 1894, 1894, 3137, 2072,
2266      2072, 2072, 2057, 2073, 1109, 1221, 2074, 2071, 1228, 1228,
2267      1228, 1109, 1895, 2076, 2076, 2076, 1898, 1898, 1898, 3153,
2268      2078, 2078, 2078, 3159, 2079, 3149, 1230, 2080, 1242, 1242,
2269      1242, 2077, 1109, 1899, 1903, 1903, 1903, 1109, 1904, 3151,
2270      2069, 1905, 1680, 1906, 1906, 1906, 1244, 1907, 3154, 1109,
2271      1908, 1910, 1910, 1910, 1912, 1912, 1912, 1109, 1267, 1267,
2272      1267, 2075, 1679, 1916, 1916, 1916, 1109, 1917, 1109, 1911,
2273      1918, 1919, 1919, 1919, 3155, 2081, 1269, 2090, 2090, 2090,
2274
2275      1109, 2091, 1109, 3162, 2092, 1922, 1922, 1922, 1920, 1923,
2276      1109, 3163, 1924, 1925, 1925, 1925, 2094, 2094, 2094, 1109,
2277      2095, 3160, 3186, 2096, 2097, 2097, 2097, 1931, 1931, 1931,
2278      1926, 2102, 2102, 2102, 3157, 2103, 2088, 1109, 2104, 1109,
2279      1671, 2098, 3172, 3164, 1932, 1291, 1291, 1291, 1934, 1934,
2280      1934, 1109, 1935, 3165, 3161, 1936, 1937, 1937, 1937, 1109,
2281      2106, 2106, 2106, 1293, 2107, 1109, 1670, 2108, 2109, 2109,
2282      2109, 3173, 3170, 1938, 1940, 1940, 1940, 2111, 2111, 2111,
2283      1109, 2112, 1109, 3166, 2113, 2110, 1307, 1307, 1307, 1668,
2284      1667, 1941, 3171, 1944, 1944, 1944, 2105, 1945, 1109, 1109,
2285
2286      1946, 1947, 1947, 1947, 1309, 2116, 2116, 2116, 1109, 2117,
2287      1666, 3167, 2118, 1950, 1950, 1950, 1109, 1951, 1948, 3174,
2288      1952, 1954, 1954, 1954, 1330, 1330, 1330, 2124, 2124, 2124,
2289      1339, 1339, 1339, 2128, 2128, 2128, 3175, 2114, 1109, 1955,
2290      3176, 1109, 1332, 3168, 2125, 1964, 1964, 1964, 1341, 1965,
2291      2129, 3169, 1966, 1968, 1968, 1968, 2136, 2136, 2136, 1973,
2292      1973, 1973, 2139, 2139, 2139, 3191, 2140, 1109, 3184, 2141,
2293      1109, 1969, 1109, 1109, 2137, 3180, 1974, 1109, 3181, 2130,
2294      1975, 1975, 1975, 2142, 2142, 2142, 1109, 2143, 2122, 1665,
2295      2144, 2126, 1371, 1371, 1371, 1664, 1109, 1976, 1379, 1379,
2296
2297      1379, 1387, 1387, 1387, 1982, 1982, 1982, 2150, 2150, 2150,
2298      1373, 2151, 3177, 3178, 2152, 3183, 1381, 1109, 3179, 1389,
2299      1663, 1983, 1984, 1984, 1984, 2153, 2153, 2153, 1109, 2154,
2300      3187, 3185, 2155, 1397, 1397, 1397, 1406, 1406, 1406, 1985,
2301      1109, 1993, 1993, 1993, 1662, 1994, 1109, 2148, 1995, 1109,
2302      1109, 1399, 3198, 1109, 1408, 1412, 1412, 1412, 2146, 1419,
2303      1419, 1419, 1109, 1998, 1998, 1998, 2149, 1999, 1109, 3196,
2304      2000, 1661, 1660, 1414, 2001, 2001, 2001, 1421, 2007, 2007,
2305      2007, 2169, 2169, 2169, 1658, 2170, 3194, 1657, 2171, 1122,
2306      1122, 1122, 2002, 3192, 1655, 2008, 3188, 3199, 2156, 3189,
2307
2308      3204, 2161, 2173, 2173, 2173, 1109, 2163, 1124, 2178, 2178,
2309      2178, 1654, 2164, 2179, 2179, 2179, 2017, 2017, 2017, 2181,
2310      2181, 2181, 2185, 2185, 2185, 2024, 2024, 2024, 2025, 2025,
2311      2025, 2186, 2186, 2186, 2028, 2028, 2028, 2029, 2029, 2029,
2312      2189, 2189, 2189, 2190, 2190, 2190, 2191, 2191, 2191, 2192,
2313      2192, 2192, 3193, 2172, 1156, 1156, 1156, 2038, 2038, 2038,
2314      3206, 2041, 2041, 2041, 2198, 2198, 2198, 1109, 2199, 1109,
2315      1651, 2200, 1158, 1648, 3214, 2039, 1647, 2187, 2042, 2202,
2316      2202, 2202, 2045, 2045, 2045, 2204, 2204, 2204, 1109, 2205,
2317      1646, 1109, 2206, 1189, 1189, 1189, 1109, 2203, 1109, 2046,
2318
2319      2058, 2058, 2058, 1109, 3195, 2194, 2218, 2218, 2218, 1109,
2320      2219, 1191, 1645, 2220, 2221, 2221, 2221, 2059, 2065, 2065,
2321      2065, 2226, 2226, 2226, 2067, 2067, 2067, 2228, 2228, 2228,
2322      3205, 2229, 3197, 3202, 2230, 1219, 1219, 1219, 2070, 2070,
2323      2070, 2068, 2217, 2232, 2232, 2232, 3203, 2233, 1109, 3200,
2324      2234, 1109, 3207, 1221, 1109, 2071, 2072, 2072, 2072, 1644,
2325      2073, 1109, 1643, 2074, 1228, 1228, 1228, 2227, 1109, 2076,
2326      2076, 2076, 2078, 2078, 2078, 1642, 2079, 1109, 1640, 2080,
2327      1639, 1638, 1230, 1242, 1242, 1242, 2231, 2077, 1267, 1267,
2328      1267, 2090, 2090, 2090, 3201, 2091, 1637, 1630, 2092, 3210,
2329
2330      3208, 1244, 3211, 2094, 2094, 2094, 1269, 2095, 1109, 3209,
2331      2096, 2097, 2097, 2097, 1627, 2235, 2248, 2248, 2248, 3214,
2332      2249, 1109, 1626, 2250, 1624, 2102, 2102, 2102, 2098, 2103,
2333      1109, 1623, 2104, 1291, 1291, 1291, 2236, 2106, 2106, 2106,
2334      3212, 2107, 1622, 2245, 2108, 2109, 2109, 2109, 2255, 2255,
2335      2255, 1293, 2256, 3213, 1619, 2257, 2111, 2111, 2111, 1614,
2336      2112, 1613, 2110, 2113, 1307, 1307, 1307, 2116, 2116, 2116,
2337      1601, 2117, 1599, 1595, 2118, 2263, 2263, 2263, 2124, 2124,
2338      2124, 1594, 1309, 2266, 2266, 2266, 1590, 2267, 1588, 1580,
2339      2268, 1579, 1578, 2264, 1577, 2125, 1575, 2254, 1339, 1339,
2340
2341      1339, 2128, 2128, 2128, 2271, 2271, 2271, 1574, 2272, 1572,
2342      1570, 2273, 1569, 2136, 2136, 2136, 1341, 1565, 2129, 2139,
2343      2139, 2139, 1564, 2140, 1563, 1562, 2141, 1371, 1371, 1371,
2344      2258, 2137, 2142, 2142, 2142, 1560, 2143, 1559, 1558, 2144,
2345      1557, 1379, 1379, 1379, 1552, 1373, 1387, 1387, 1387, 2150,
2346      2150, 2150, 1551, 2151, 1550, 1549, 2152, 1548, 2269, 1381,
2347      1547, 2153, 2153, 2153, 1389, 2154, 1546, 1540, 2155, 1397,
2348      1397, 1397, 1539, 2289, 2289, 2289, 1538, 1537, 2284, 3217,
2349      3217, 3217, 2287, 3217, 3217, 3217, 1533, 1399, 1532, 2288,
2350      2290, 3217, 3217, 3217, 1530, 1529, 3217, 1406, 1406, 1406,
2351
2352      3217, 1412, 1412, 1412, 2297, 2297, 2297, 2286, 3217, 2299,
2353      2299, 2299, 2302, 2302, 2302, 1408, 2169, 2169, 2169, 1414,
2354      2170, 1526, 2298, 2171, 1122, 1122, 1122, 1109, 1525, 1516,
2355      2291, 2173, 2173, 2173, 2304, 2304, 2304, 2305, 2305, 2305,
2356      1515, 1511, 1124, 2178, 2178, 2178, 1510, 2292, 1509, 1508,
2357      2293, 2179, 2179, 2179, 2181, 2181, 2181, 2309, 2309, 2309,
2358      1507, 2296, 2294, 2310, 2310, 2310, 2311, 2311, 2311, 2185,
2359      2185, 2185, 2186, 2186, 2186, 2189, 2189, 2189, 2190, 2190,
2360      2190, 1506, 1505, 2303, 2191, 2191, 2191, 2192, 2192, 2192,
2361      2315, 2315, 2315, 2318, 2318, 2318, 2198, 2198, 2198, 1504,
2362
2363      2199, 1502, 1501, 2200, 3217, 3217, 3217, 1500, 2316, 1499,
2364      2319, 2202, 2202, 2202, 1498, 2204, 2204, 2204, 1495, 2205,
2365      1493, 3217, 2206, 1189, 1189, 1189, 2218, 2218, 2218, 2203,
2366      2219, 2332, 2333, 2220, 2334, 1490, 2338, 2339, 1488, 2340,
2367      1485, 1191, 2335, 1476, 1474, 2336, 1467, 2341, 1465, 2337,
2368      2342, 2221, 2221, 2221, 2343, 2344, 2344, 2344, 2226, 2226,
2369      2226, 2228, 2228, 2228, 1464, 2229, 1463, 1462, 2230, 1461,
2370      2320, 1219, 1219, 1219, 2232, 2232, 2232, 1460, 2233, 1459,
2371      1458, 2234, 1457, 1456, 2331, 2350, 2350, 2350, 1453, 1221,
2372      1242, 1242, 1242, 2360, 2360, 2360, 1267, 1267, 1267, 1452,
2373
2374      2248, 2248, 2248, 2351, 2249, 1451, 1450, 2250, 1244, 2364,
2375      2364, 2364, 1449, 1448, 1269, 1447, 1446, 2349, 2368, 2368,
2376      2368, 2255, 2255, 2255, 1445, 2256, 2365, 1444, 2257, 2370,
2377      2370, 2370, 2263, 2263, 2263, 1443, 2369, 2376, 2376, 2376,
2378      1442, 2352, 2266, 2266, 2266, 1441, 2267, 2371, 1440, 2268,
2379      2264, 1339, 1339, 1339, 2377, 1438, 2361, 2379, 2379, 2379,
2380      2271, 2271, 2271, 1437, 2272, 1436, 1435, 2273, 1434, 1341,
2381      3217, 3217, 3217, 1433, 2380, 3217, 3217, 3217, 3217, 3217,
2382      3217, 2390, 2390, 2390, 2394, 2394, 2394, 3217, 2392, 2392,
2383      2392, 1432, 3217, 1109, 1426, 3217, 1379, 1379, 1379, 1411,
2384
2385      1410, 2395, 2378, 2381, 1405, 1404, 2393, 1403, 1387, 1387,
2386      1387, 2289, 2289, 2289, 1381, 1397, 1397, 1397, 1402, 1401,
2387      2399, 2399, 2399, 1375, 2400, 2382, 1389, 2401, 2290, 2388,
2388      2402, 2402, 2402, 1399, 1363, 1349, 2383, 3217, 3217, 3217,
2389      3217, 3217, 3217, 2406, 2406, 2406, 1348, 2403, 2408, 2408,
2390      2408, 1347, 2398, 1343, 3217, 1338, 2396, 3217, 1412, 1412,
2391      1412, 2407, 2297, 2297, 2297, 2299, 2299, 2299, 1334, 2397,
2392      2302, 2302, 2302, 2304, 2304, 2304, 1414, 2413, 2413, 2413,
2393      2298, 1326, 1321, 1109, 2305, 2305, 2305, 1320, 2404, 1314,
2394      1311, 2405, 2417, 2417, 2417, 2414, 2309, 2309, 2309, 2310,
2395
2396      2310, 2310, 2311, 2311, 2311, 2315, 2315, 2315, 2318, 2318,
2397      2318, 2422, 2422, 2422, 1290, 2423, 1289, 1288, 2424, 1189,
2398      1189, 1189, 1287, 2316, 2409, 2319, 1286, 2410, 2344, 2344,
2399      2344, 2453, 2453, 2453, 1219, 1219, 1219, 1191, 2350, 2350,
2400      2350, 2456, 2456, 2456, 2462, 2462, 2462, 2360, 2360, 2360,
2401      1285, 1284, 1221, 1267, 1267, 1267, 2351, 1278, 1271, 2457,
2402      1260, 2463, 1259, 2364, 2364, 2364, 2467, 2467, 2467, 1258,
2403      2468, 1269, 1253, 2469, 2471, 2471, 2471, 1252, 1248, 2436,
2404      2365, 2368, 2368, 2368, 2370, 2370, 2370, 2475, 2475, 2475,
2405      1247, 2472, 2376, 2376, 2376, 1246, 2481, 2481, 2481, 2369,
2406
2407      2455, 1241, 2371, 1240, 2476, 2379, 2379, 2379, 1235, 2377,
2408      2464, 2478, 2478, 2478, 2482, 2479, 1227, 1223, 2480, 2483,
2409      2483, 2483, 2380, 2484, 1218, 1217, 2485, 3217, 3217, 3217,
2410      3217, 3217, 3217, 3217, 3217, 3217, 2491, 2491, 2491, 2390,
2411      2390, 2390, 1213, 1212, 3217, 1211, 1210, 3217, 1209, 1208,
2412      3217, 1207, 1206, 2492, 2392, 2392, 2392, 2394, 2394, 2394,
2413      2495, 2495, 2495, 1205, 2496, 1204, 1203, 2497, 2498, 2498,
2414      2498, 1202, 2393, 1196, 2395, 1387, 1387, 1387, 1188, 2486,
2415      1397, 1397, 1397, 2399, 2399, 2399, 2499, 2400, 2487, 1187,
2416      2401, 2488, 1186, 1389, 2402, 2402, 2402, 1181, 1399, 2502,
2417
2418      2502, 2502, 1180, 2503, 1179, 1176, 2504, 2505, 2505, 2505,
2419      1170, 2403, 2507, 2507, 2507, 2406, 2406, 2406, 2408, 2408,
2420      2408, 2509, 2509, 2509, 2506, 2413, 2413, 2413, 1165, 2508,
2421      2417, 2417, 2417, 2407, 2519, 2519, 2519, 1164, 1160, 2510,
2422      1155, 1154, 2500, 2414, 2501, 2422, 2422, 2422, 1153, 2423,
2423      1152, 2520, 2424, 1189, 1189, 1189, 2453, 2453, 2453, 1219,
2424      1219, 1219, 2456, 2456, 2456, 2558, 2558, 2558, 2462, 2462,
2425      2462, 1191, 2560, 2560, 2560, 1151, 2561, 1221, 1150, 2562,
2426      2457, 1149, 2559, 1147, 1146, 2463, 2563, 2563, 2563, 2467,
2427      2467, 2467, 1145, 2468, 1144, 1143, 2469, 2471, 2471, 2471,
2428
2429      1142, 2568, 2568, 2568, 2564, 2569, 1141, 1140, 2570, 2572,
2430      2572, 2572, 1139, 2538, 2472, 2475, 2475, 2475, 2574, 2574,
2431      2574, 1138, 2575, 1137, 1136, 2576, 2573, 2577, 2577, 2577,
2432      2556, 1135, 2476, 2478, 2478, 2478, 1134, 2479, 1133, 1132,
2433      2480, 2481, 2481, 2481, 2578, 2483, 2483, 2483, 1131, 2484,
2434      1130, 1129, 2485, 3217, 3217, 3217, 3217, 3217, 3217, 2482,
2435      3217, 3217, 3217, 2491, 2491, 2491, 1128, 2582, 2582, 2582,
2436      3217, 2583, 1121, 3217, 2584, 1120, 1119, 3217, 1118, 1117,
2437      2492, 2585, 2585, 2585, 2587, 2587, 2587, 2495, 2495, 2495,
2438      1116, 2496, 1115, 1112, 2497, 2498, 2498, 2498, 2586, 1110,
2439
2440      1109, 2588, 1387, 1387, 1387, 1107, 1105, 2580, 2579, 1397,
2441      1397, 1397, 1102, 2499, 1098, 2581, 1096, 2502, 2502, 2502,
2442      1389, 2503, 1095, 1094, 2504, 1092, 1091, 1399, 2505, 2505,
2443      2505, 2597, 2597, 2597, 1090, 2598, 1089, 1088, 2599, 2507,
2444      2507, 2507, 2600, 2600, 2600, 2506, 2601, 1087, 1085, 2602,
2445      1084, 2509, 2509, 2509, 1083, 1082, 2508, 2607, 2607, 2607,
2446      2519, 2519, 2519, 1189, 1189, 1189, 1080, 1079, 2595, 2510,
2447      2596, 2611, 2611, 2611, 1078, 2612, 1074, 2520, 2613, 1073,
2448      1071, 1191, 2647, 2647, 2647, 1219, 1219, 1219, 2650, 2650,
2449      2650, 2558, 2558, 2558, 2653, 2653, 2653, 1070, 2654, 1069,
2450
2451      1068, 2655, 1067, 1221, 1066, 2651, 1064, 1063, 2559, 2560,
2452      2560, 2560, 1062, 2561, 2631, 1061, 2562, 2563, 2563, 2563,
2453      2568, 2568, 2568, 1059, 2569, 1058, 1057, 2570, 2572, 2572,
2454      2572, 2607, 2607, 2607, 2652, 2564, 2660, 2660, 2660, 1054,
2455      2661, 1053, 1051, 2662, 1048, 2573, 1047, 2649, 2574, 2574,
2456      2574, 1043, 2575, 1042, 1040, 2576, 2577, 2577, 2577, 2663,
2457      2663, 2663, 1039, 2664, 1038, 1035, 2665, 3217, 3217, 3217,
2458      2667, 2667, 2667, 2578, 3217, 3217, 3217, 1034, 2582, 2582,
2459      2582, 1033, 2583, 1032, 3217, 2584, 1030, 2668, 2585, 2585,
2460      2585, 3217, 2670, 2670, 2670, 1029, 2671, 1028, 1027, 2672,
2461
2462      2587, 2587, 2587, 1026, 1021, 2586, 2673, 2673, 2673, 1019,
2463      2674, 1018, 1017, 2675, 1387, 1387, 1387, 2588, 1397, 1397,
2464      1397, 1016, 1015, 2669, 1014, 2666, 2597, 2597, 2597, 1013,
2465      2598, 1012, 1389, 2599, 1009, 1006, 1399, 2600, 2600, 2600,
2466      1005, 2601, 1004,  998, 2602, 2690, 2690, 2690, 2693, 2693,
2467      2693, 2611, 2611, 2611,  995, 2612,  993,  992, 2613, 2704,
2468      2704, 2704, 2691, 1635,  987, 2682, 1189, 1189, 1189, 2647,
2469      2647, 2647, 2730, 2730, 2730,  986, 2705, 1219, 1219, 1219,
2470      2650, 2650, 2650,  984, 1191, 2683, 2732, 2732, 2732,  983,
2471      2733,  982,  980, 2734,  977, 1221,  975, 2651, 2653, 2653,
2472
2473      2653,  972, 2654,  971,  969, 2655, 2660, 2660, 2660,  968,
2474      2661,  965,  960, 2662,  959, 2714, 2663, 2663, 2663,  956,
2475      2664,  955,  952, 2665, 3217, 3217, 3217,  951, 2731, 2667,
2476      2667, 2667, 2741, 2741, 2741,  949, 2742,  946,  944, 2743,
2477       943, 3217, 3217, 3217, 3217,  942, 2668, 2670, 2670, 2670,
2478       941, 2671,  939,  938, 2672,  937, 2673, 2673, 2673, 3217,
2479      2674,  936,  935, 2675, 2759, 2759, 2759, 1397, 1397, 1397,
2480      2767, 2767, 2767,  934,  931, 2740, 2690, 2690, 2690, 2769,
2481      2769, 2769, 2760, 2770,  930, 1399, 2771, 2768, 1635, 2772,
2482      2772, 2772,  929, 2691, 1635,  926,  923, 1635, 2693, 2693,
2483
2484      2693, 2773, 2773, 2773, 2774, 2774, 2774, 2704, 2704, 2704,
2485      2783, 2783, 2783, 2744, 2784,  922,  920, 2785, 1189, 1189,
2486      1189, 2803, 2803, 2803, 2705, 2730, 2730, 2730, 2804, 2804,
2487      2804,  919,  916, 2761,  913,  910, 1191, 2732, 2732, 2732,
2488       909, 2733,  901,  900, 2734,  899, 2805, 2809, 2809, 2809,
2489      2812, 2812, 2812, 2741, 2741, 2741,  893, 2742,  892,  891,
2490      2743, 2814, 2814, 2814, 2810,  889,  888, 2813, 2759, 2759,
2491      2759, 1397, 1397, 1397, 2767, 2767, 2767,  887, 2815,  886,
2492       885, 2834, 2834, 2834, 2792, 2835, 2760,  884, 2836, 1399,
2493       879, 2768, 1635, 2769, 2769, 2769,  876, 2770,  878, 1635,
2494
2495      2771, 2772, 2772, 2772, 2773, 2773, 2773, 2774, 2774, 2774,
2496       873, 1635, 2783, 2783, 2783,  872, 2784,  870,  868, 2785,
2497       866,  864, 2828, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
2498      1633, 1633,  862, 3217, 1633, 2853, 2853, 2853,  859, 1633,
2499      1633, 1633, 1635, 1633, 2803, 2803, 2803, 2804, 2804, 2804,
2500      2809, 2809, 2809, 2854, 2866, 2866, 2866,  858, 2867,  857,
2501       856, 2868, 2812, 2812, 2812, 2805,  855, 2810, 1633, 1633,
2502      1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 2813,
2503       853, 1633, 2814, 2814, 2814,  852, 1633, 1633, 1633, 1635,
2504      1633, 2870, 2870, 2870,  851, 2871,  850,  849, 2872, 2815,
2505
2506      2873, 2873, 2873,  847, 2874,  846,  845, 2875, 2888, 2888,
2507      2888, 2853, 2853, 2853,  844, 1633, 1633, 2834, 2834, 2834,
2508       842, 2835,  840,  839, 2836,  837, 2889,  836,  833, 2854,
2509      2888, 2888, 2888,  832,  830, 1635, 1633, 1633, 1633, 1633,
2510      1633, 2900, 1633, 1633, 1633,  663, 3217, 1633, 2889,  825,
2511       823,  819, 1633, 1633, 1633, 1635, 1633, 2866, 2866, 2866,
2512       818, 2867,  817,  815, 2868, 2870, 2870, 2870,  813, 2871,
2513       812,  811, 2872, 2873, 2873, 2873,  809, 2874,  807,  806,
2514      2875, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
2515      1633, 2900,  804,  802, 1633, 2939, 2939, 2939,  801, 1633,
2516
2517      1633, 1633, 1635, 1633, 2950, 2950, 2950, 2952, 2952, 2952,
2518      2954, 2954, 2954, 1635, 1636, 2962, 2962, 2962, 2972, 2972,
2519      2972, 2951,  800,  799, 2953,  798,  797, 2955, 1633, 1633,
2520       796,  794, 2963, 2939, 2939, 2939, 1109, 2950, 2950, 2950,
2521      2982, 2982, 2982,  792, 2983,  791,  788, 2984, 2952, 2952,
2522      2952, 1635,  787,  786, 2951, 2985, 2985, 2985,  784, 2986,
2523       775,  774, 2987,  773,  770, 2953, 2954, 2954, 2954, 2988,
2524      2988, 2988,  768, 2989,  766,  765, 2990, 2962, 2962, 2962,
2525      2972, 2972, 2972, 2955, 1823, 2997, 2997, 2997,  764, 2998,
2526       762, 3217, 2999,  759, 2963, 2982, 2982, 2982, 1109, 2983,
2527
2528       758,  757, 2984, 2985, 2985, 2985,  756, 2986,  755,  753,
2529      2987, 2988, 2988, 2988,  751, 2989,  750, 3008, 2990, 2997,
2530      2997, 2997,  748, 2998,  746,  745, 2999, 3113, 3113, 3113,
2531      3113, 3113, 3113,  743, 3122,  741,  740, 3123, 3215, 3215,
2532      3215, 3215, 3215, 3215,  739, 1109,  737,  735, 1109,  734,
2533       733,  732,  730, 3217, 3217,  678, 3216,  711,  710, 3216,
2534       250,  250,  250,  250,  250,  250,  250,  250,  250,  251,
2535       251,  251,  251,  251,  251,  251,  251,  251,  256,  256,
2536       256,  256,  256,  256,  256,  256,  256,  259,  259,  259,
2537       259,  259,  259,  259,  259,  259,  262,  262,  262,  262,
2538
2539       262,  262,  262,  262,  262,  265,  265,  265,  265,  265,
2540       265,  265,  265,  265,  272,  272,  272,  272,  272,  272,
2541       272,  272,  272,  280,  280,  280,  280,  280,  280,  280,
2542       280,  280,  284,  284,  284,  284,  284,  284,  284,  284,
2543       284,  296,  296,  296,  296,  296,  296,  296,  296,  296,
2544       300,  300,  300,  300,  300,  300,  300,  300,  300,  307,
2545       307,  307,  307,  307,  307,  307,  307,  307,  318,  318,
2546       318,  318,  318,  318,  318,  318,  318,  326,  326,  326,
2547       326,  326,  326,  326,  326,  326,  332,  332,  332,  332,
2548       332,  332,  332,  332,  332,  338,  338,  338,  338,  338,
2549
2550       338,  338,  338,  338,  344,  344,  344,  344,  344,  344,
2551       344,  344,  344,  349,  349,  349,  349,  349,  349,  349,
2552       349,  349,  368,  368,  368,  368,  368,  368,  368,  368,
2553       368,  375,  375,  375,  375,  375,  375,  375,  375,  375,
2554       382,  382,  382,  382,  382,  382,  382,  382,  382,  388,
2555       388,  388,  388,  388,  388,  388,  388,  388,  395,  395,
2556       395,  395,  395,  395,  395,  395,  395,  400,  400,  400,
2557       400,  400,  400,  400,  400,  400,  406,  406,  406,  406,
2558       406,  406,  406,  406,  406,  411,  411,  411,  411,  411,
2559       411,  411,  411,  411,  417,  417,  417,  417,  417,  417,
2560
2561       417,  417,  417,  425,  425,  425,  425,  425,  425,  425,
2562       425,  425,  433,  433,  433,  433,  433,  433,  433,  433,
2563       433,  439,  439,  439,  439,  439,  439,  439,  439,  439,
2564       456,  456,  456,  456,  456,  456,  456,  456,  456,  462,
2565       462,  462,  462,  462,  462,  462,  462,  462,  471,  471,
2566       471,  471,  471,  471,  471,  471,  471,  477,  477,  477,
2567       477,  477,  477,  477,  477,  477,  487,  487,  487,  487,
2568       487,  487,  487,  487,  487,  493,  493,  493,  493,  493,
2569       493,  493,  493,  493,  498,  498,  498,  498,  498,  498,
2570       498,  498,  498,  504,  504,  504,  504,  504,  504,  504,
2571
2572       504,  504,  510,  510,  510,  510,  510,  510,  510,  510,
2573       510,  516,  516,  516,  516,  516,  516,  516,  516,  516,
2574       523,  523,  523,  523,  523,  523,  523,  523,  523,  530,
2575       530,  530,  530,  530,  530,  530,  530,  530,  535,  535,
2576       535,  535,  535,  535,  535,  535,  535,  543,  543,  543,
2577       543,  543,  543,  543,  543,  543,  549,  549,  549,  549,
2578       549,  549,  549,  549,  549,  556,  556,  556,  556,  556,
2579       556,  556,  556,  556,  561,  561,  561,  561,  561,  561,
2580       561,  561,  561,  567,  567,  567,  567,  567,  567,  567,
2581       567,  567,  572,  572,  572,  572,  572,  572,  572,  572,
2582
2583       572,  579,  579,  579,  579,  579,  579,  579,  579,  579,
2584       585,  585,  585,  585,  585,  585,  585,  585,  585,  592,
2585       592,  592,  592,  592,  592,  592,  592,  592,  600,  600,
2586       600,  600,  600,  600,  600,  600,  600,  608,  608,  608,
2587       608,  608,  608,  608,  608,  608,  612,  612,  612,  612,
2588       612,  612,  612,  612,  612,  618,  618,  618,  618,  618,
2589       618,  618,  618,  618,  622,  622,  622,  622,  622,  622,
2590       622,  622,  622,  629,  629,  629,  629,  629,  629,  629,
2591       629,  629,  634,  634,  634,  634,  634,  634,  634,  634,
2592       634,  654,  654,  654,  708,  706,  705,  654,  680,  680,
2593
2594       680,  704,  702,  698,  680,  684,  684,  684,  694,  693,
2595       691,  684,  692,  692,  692,  690,  687,  686,  692,  703,
2596       703,  703,  685,  683,  682,  703,  709,  709,  709,  681,
2597       679,  674,  709,  731,  731,  731, 3217,  655,  653,  731,
2598       738,  738,  738,  651,  645,  644,  738,  744,  744,  744,
2599       645,  644,  643,  744,  749,  749,  749,  642, 3217, 3217,
2600       749,  754,  754,  754, 3217, 3217, 3217,  754,  763,  763,
2601       763, 3217, 3217, 3217,  763,  769,  769,  769, 3217, 3217,
2602      3217,  769,  785,  785,  785, 3217, 3217, 3217,  785,  795,
2603       795,  795, 3217, 3217, 3217,  795,  805,  805,  805, 3217,
2604
2605      3217, 3217,  805,  810,  810,  810, 3217, 3217, 3217,  810,
2606       816,  816,  816, 3217, 3217, 3217,  816,  824,  824,  824,
2607      3217, 3217, 3217,  824,  831,  831,  831, 3217, 3217, 3217,
2608       831,  838,  838,  838, 3217, 3217, 3217,  838,  843,  843,
2609       843, 3217, 3217, 3217,  843,  848,  848,  848, 3217, 3217,
2610      3217,  848,  854,  854,  854, 3217, 3217, 3217,  854,  863,
2611       863,  863, 3217, 3217, 3217,  863,  867,  867,  867, 3217,
2612      3217, 3217,  867,  871,  871,  871, 3217, 3217, 3217,  871,
2613       875,  875,  875,  875,  875,  875,  875, 3217,  875,  654,
2614       654,  654, 3217, 3217, 3217,  654,  890, 3217, 3217, 3217,
2615
2616       890,  680,  680,  680, 3217, 3217, 3217,  680,  921, 3217,
2617      3217, 3217,  921,  684,  684,  684, 3217, 3217, 3217,  684,
2618       928, 3217, 3217, 3217,  928,  692,  692,  692, 3217, 3217,
2619      3217,  692,  940, 3217, 3217, 3217,  940,  703,  703,  703,
2620      3217, 3217, 3217,  703,  945, 3217, 3217, 3217,  945,  709,
2621       709,  709, 3217, 3217, 3217,  709,  950, 3217, 3217, 3217,
2622       950,  731,  731,  731, 3217, 3217, 3217,  731,  970, 3217,
2623      3217, 3217,  970,  738,  738,  738, 3217, 3217, 3217,  738,
2624       976, 3217, 3217, 3217,  976,  744,  744,  744, 3217, 3217,
2625      3217,  744,  981, 3217, 3217, 3217,  981,  749,  749,  749,
2626
2627      3217, 3217, 3217,  749,  985, 3217, 3217, 3217,  985,  754,
2628       754,  754, 3217, 3217, 3217,  754,  994, 3217, 3217, 3217,
2629       994,  763,  763,  763, 3217, 3217, 3217,  763, 1003, 3217,
2630      3217, 3217, 1003,  769,  769,  769, 3217, 3217, 3217,  769,
2631      1020, 3217, 3217, 3217, 1020,  785,  785,  785, 3217, 3217,
2632      3217,  785, 1031, 3217, 3217, 3217, 1031,  795,  795,  795,
2633      3217, 3217, 3217,  795, 1041, 3217, 3217, 3217, 1041,  805,
2634       805,  805, 3217, 3217, 3217,  805, 1046, 3217, 3217, 3217,
2635      1046,  810,  810,  810, 3217, 3217, 3217,  810, 1052, 3217,
2636      3217, 3217, 1052,  816,  816,  816, 3217, 3217, 3217,  816,
2637
2638      1060, 3217, 3217, 3217, 1060,  824,  824,  824, 3217, 3217,
2639      3217,  824, 1065, 3217, 3217, 3217, 1065,  831,  831,  831,
2640      3217, 3217, 3217,  831, 1072, 3217, 3217, 3217, 1072,  838,
2641       838,  838, 3217, 3217, 3217,  838, 1077, 3217, 3217, 3217,
2642      1077,  843,  843,  843, 3217, 3217, 3217,  843, 1081, 3217,
2643      3217, 3217, 1081,  848,  848,  848, 3217, 3217, 3217,  848,
2644      1086, 3217, 3217, 3217, 1086,  854,  854,  854, 3217, 3217,
2645      3217,  854, 1093, 3217, 3217, 3217, 1093,  863,  863,  863,
2646      3217, 3217, 3217,  863, 1097, 3217, 3217, 3217, 1097,  867,
2647       867,  867, 3217, 3217, 3217,  867, 1101, 3217, 3217, 3217,
2648
2649      1101,  871,  871,  871, 3217, 3217, 3217,  871, 1106, 3217,
2650      3217, 3217, 1106, 1108, 1108, 1108, 1108, 1108, 1108, 1108,
2651      1108, 1108, 1114, 3217, 3217, 3217, 3217, 1114,  654,  654,
2652       654, 3217, 3217, 3217,  654, 1123, 1123, 1123, 1123, 3217,
2653      3217, 1123, 1123,  680,  680,  680, 3217, 3217, 3217,  680,
2654      1157, 1157, 1157, 1157, 3217, 3217, 1157, 1157,  684,  684,
2655       684, 3217, 3217, 3217,  684, 1167, 1167, 1167, 1167, 3217,
2656      3217, 1167, 1167,  692,  692,  692, 3217, 3217, 3217,  692,
2657      1183, 1183, 1183, 1183, 3217, 3217, 1183, 1183,  703,  703,
2658       703, 3217, 3217, 3217,  703, 1190, 1190, 1190, 1190, 3217,
2659
2660      3217, 1190, 1190,  709,  709,  709, 3217, 3217, 3217,  709,
2661      1198, 1198, 1198, 1198, 3217, 3217, 1198, 1198,  731,  731,
2662       731, 3217, 3217, 3217,  731, 1220, 1220, 1220, 1220, 3217,
2663      3217, 1220, 1220,  738,  738,  738, 3217, 3217, 3217,  738,
2664      1229, 1229, 1229, 1229, 3217, 3217, 1229, 1229,  744,  744,
2665       744, 3217, 3217, 3217,  744, 1237, 1237, 1237, 1237, 3217,
2666      3217, 1237, 1237,  749,  749,  749, 3217, 3217, 3217,  749,
2667      1243, 1243, 1243, 1243, 3217, 3217, 1243, 1243,  754,  754,
2668       754, 3217, 3217, 3217,  754, 1255, 1255, 1255, 1255, 3217,
2669      3217, 1255, 1255,  763,  763,  763, 3217, 3217, 3217,  763,
2670
2671      1268, 1268, 1268, 1268, 3217, 3217, 1268, 1268,  769,  769,
2672       769, 3217, 3217, 3217,  769, 1292, 1292, 1292, 1292, 3217,
2673      3217, 1292, 1292,  785,  785,  785,  785, 3217,  785, 3217,
2674       785, 1308, 1308, 1308, 1308, 3217, 3217, 1308, 1308,  795,
2675       795,  795, 3217, 3217, 3217,  795, 1323, 1323, 1323, 1323,
2676      3217, 3217, 1323, 1323,  805,  805,  805, 3217, 3217, 3217,
2677       805, 1331, 1331, 1331, 1331, 3217, 3217, 1331, 1331,  810,
2678       810,  810, 3217, 3217, 3217,  810, 1340, 1340, 1340, 1340,
2679      3217, 3217, 1340, 1340,  816,  816,  816, 3217, 3217, 3217,
2680       816, 1351, 1351, 1351, 1351, 3217, 3217, 1351, 1351,  824,
2681
2682       824,  824,  824, 3217,  824, 3217,  824, 1360, 1360, 1360,
2683      1360, 3217, 3217, 1360, 1360,  831,  831,  831,  831, 3217,
2684       831, 3217,  831, 1372, 1372, 1372, 1372, 3217, 3217, 1372,
2685      1372,  838,  838,  838, 3217, 3217, 3217,  838, 1380, 1380,
2686      1380, 1380, 3217, 3217, 1380, 1380,  843,  843,  843,  843,
2687      3217,  843, 3217,  843, 1388, 1388, 1388, 1388, 3217, 3217,
2688      1388, 1388,  848,  848,  848,  848, 3217,  848, 3217,  848,
2689      1398, 1398, 1398, 1398, 3217, 3217, 1398, 1398,  854,  854,
2690       854, 3217, 3217, 3217,  854, 1407, 1407, 1407, 1407, 3217,
2691      3217, 1407, 1407,  863,  863,  863, 3217, 3217, 3217,  863,
2692
2693      1413, 1413, 1413, 1413, 3217, 3217, 1413, 1413, 1420, 1420,
2694      1420, 1420, 3217, 3217, 1420, 1420,  871,  871,  871, 3217,
2695      3217, 3217,  871, 1428, 1428, 1428, 1428, 3217, 3217, 1428,
2696      1428, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108,
2697      1114, 3217, 1114, 3217, 3217, 1114,  654,  654,  654, 3217,
2698      3217, 3217,  654, 1123, 1123, 1123, 1123, 3217, 3217, 1123,
2699      1123,  680,  680,  680,  680, 3217,  680, 3217,  680, 1157,
2700      1157, 1157, 1157, 3217, 3217, 1157, 1157,  684,  684,  684,
2701       684, 3217,  684, 3217,  684, 1167, 1167, 1167, 1167, 3217,
2702      3217, 1167, 1167,  692,  692,  692, 3217, 3217, 3217,  692,
2703
2704      1183, 1183, 1183, 1183, 3217, 3217, 1183, 1183,  703,  703,
2705       703, 3217, 3217, 3217,  703, 1190, 1190, 1190, 1190, 3217,
2706      3217, 1190, 1190,  709,  709,  709, 3217, 3217, 3217,  709,
2707      1198, 1198, 1198, 1198, 3217, 3217, 1198, 1198,  731,  731,
2708       731, 3217, 3217, 3217,  731, 1220, 1220, 1220, 1220, 3217,
2709      3217, 1220, 1220,  738,  738,  738, 3217, 3217, 3217,  738,
2710      1229, 1229, 1229, 1229, 3217, 3217, 1229, 1229,  744,  744,
2711       744,  744, 3217,  744, 3217,  744, 1237, 1237, 1237, 1237,
2712      3217, 3217, 1237, 1237,  749,  749,  749,  749, 3217,  749,
2713      3217,  749, 1243, 1243, 1243, 1243, 3217, 3217, 1243, 1243,
2714
2715       754,  754,  754, 3217, 3217, 3217,  754, 1255, 1255, 1255,
2716      1255, 3217, 3217, 1255, 1255,  763,  763,  763,  763, 3217,
2717       763, 3217,  763, 1268, 1268, 1268, 1268, 3217, 3217, 1268,
2718      1268,  769,  769,  769, 3217, 3217, 3217,  769, 1292, 1292,
2719      1292, 1292, 3217, 3217, 1292, 1292,  785,  785,  785, 3217,
2720      3217, 3217,  785, 1308, 1308, 1308, 1308, 3217, 3217, 1308,
2721      1308,  795,  795,  795, 3217, 3217, 3217,  795, 1323, 1323,
2722      1323, 1323, 3217, 3217, 1323, 1323,  805,  805,  805, 3217,
2723      3217, 3217,  805, 1331, 1331, 1331, 1331, 3217, 3217, 1331,
2724      1331,  810,  810,  810, 3217, 3217, 3217,  810, 1340, 1340,
2725
2726      1340, 1340, 3217, 3217, 1340, 1340,  816,  816,  816, 3217,
2727      3217, 3217,  816, 1351, 1351, 1351, 1351, 3217, 3217, 1351,
2728      1351,  824,  824,  824, 3217, 3217, 3217,  824, 1360, 1360,
2729      1360, 1360, 3217, 3217, 1360, 1360,  831,  831,  831, 3217,
2730      3217, 3217,  831, 1372, 1372, 1372, 1372, 3217, 3217, 1372,
2731      1372,  838,  838,  838, 3217, 3217, 3217,  838, 1380, 1380,
2732      1380, 1380, 3217, 3217, 1380, 1380, 1388, 1388, 1388, 1388,
2733      3217, 3217, 1388, 1388,  848,  848,  848, 3217, 3217, 3217,
2734       848, 1398, 1398, 1398, 1398, 3217, 3217, 1398, 1398,  854,
2735       854,  854, 3217, 3217, 3217,  854, 1407, 1407, 1407, 1407,
2736
2737      3217, 3217, 1407, 1407,  863,  863,  863, 3217, 3217, 3217,
2738       863, 1413, 1413, 1413, 1413, 3217, 3217, 1413, 1413, 1420,
2739      1420, 1420, 1420, 3217, 3217, 1420, 1420,  871,  871,  871,
2740      3217, 3217, 3217,  871, 1428, 1428, 1428, 1428, 3217, 3217,
2741      1428, 1428, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108,
2742      1108, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
2743       654,  654,  654, 3217, 3217, 3217,  654, 1123, 1123, 1123,
2744      1123, 3217, 3217, 1123, 1123, 1157, 1157, 1157, 1157, 3217,
2745      3217, 1157, 1157,  684,  684,  684, 3217, 3217, 3217,  684,
2746      1167, 1167, 1167, 1167, 3217, 3217, 1167, 1167,  692,  692,
2747
2748       692, 3217, 3217, 3217,  692, 1183, 1183, 1183, 1183, 3217,
2749      3217, 1183, 1183,  703,  703,  703, 3217, 3217, 3217,  703,
2750      1190, 1190, 1190, 1190, 3217, 3217, 1190, 1190,  709,  709,
2751       709, 3217, 3217, 3217,  709,  731,  731,  731, 3217, 3217,
2752      3217,  731, 1220, 1220, 1220, 1220, 3217, 3217, 1220, 1220,
2753       738,  738,  738, 3217, 3217, 3217,  738, 1229, 1229, 1229,
2754      1229, 3217, 3217, 1229, 1229, 1237, 1237, 1237, 1237, 3217,
2755      3217, 1237, 1237,  749,  749,  749, 3217, 3217, 3217,  749,
2756      1243, 1243, 1243, 1243, 3217, 3217, 1243, 1243,  754,  754,
2757       754, 3217, 3217, 3217,  754, 1255, 1255, 1255, 1255, 3217,
2758
2759      3217, 1255, 1255, 1268, 1268, 1268, 1268, 3217, 3217, 1268,
2760      1268,  769,  769,  769, 3217, 3217, 3217,  769, 1292, 1292,
2761      1292, 1292, 3217, 3217, 1292, 1292,  785,  785,  785,  785,
2762      3217,  785, 3217,  785, 1308, 1308, 1308, 1308, 3217, 3217,
2763      1308, 1308,  795,  795,  795, 3217, 3217, 3217,  795, 1323,
2764      1323, 1323, 1323, 3217, 3217, 1323, 1323,  805,  805,  805,
2765      3217, 3217, 3217,  805, 1331, 1331, 1331, 1331, 3217, 3217,
2766      1331, 1331,  810,  810,  810, 3217, 3217, 3217,  810, 1340,
2767      1340, 1340, 1340, 3217, 3217, 1340, 1340,  816,  816,  816,
2768      3217, 3217, 3217,  816, 1351, 1351, 1351, 1351, 3217, 3217,
2769
2770      1351, 1351,  824,  824,  824, 3217, 3217, 3217,  824, 1360,
2771      1360, 1360, 1360, 3217, 3217, 1360, 1360,  831,  831,  831,
2772      3217, 3217, 3217,  831, 1372, 1372, 1372, 1372, 3217, 3217,
2773      1372, 1372,  838,  838,  838, 3217, 3217, 3217,  838, 1380,
2774      1380, 1380, 1380, 3217, 3217, 1380, 1380, 1388, 1388, 1388,
2775      1388, 3217, 3217, 1388, 1388,  848,  848,  848, 3217, 3217,
2776      3217,  848, 1398, 1398, 1398, 1398, 3217, 3217, 1398, 1398,
2777       854,  854,  854, 3217, 3217, 3217,  854, 1407, 1407, 1407,
2778      1407, 3217, 3217, 1407, 1407,  863,  863,  863,  863, 3217,
2779       863, 3217,  863, 1413, 1413, 1413, 1413, 3217, 3217, 1413,
2780
2781      1413, 1420, 1420, 1420, 1420, 3217, 3217, 1420, 1420,  871,
2782       871,  871,  871, 3217,  871, 3217,  871, 1428, 1428, 1428,
2783      1428, 3217, 3217, 1428, 1428, 1108, 1108, 1108, 1108, 1108,
2784      1108, 1108, 1108, 1108, 1633, 1633, 1633, 1633, 1633, 1633,
2785      1633, 1633, 1633,  654,  654,  654, 3217, 3217, 3217,  654,
2786      1123, 1123, 1123, 1123, 3217, 3217, 1123, 1123, 1157, 1157,
2787      1157, 1157, 3217, 3217, 1157, 1157,  684,  684,  684, 3217,
2788      3217, 3217,  684, 1167, 1167, 1167, 1167, 3217, 3217, 1167,
2789      1167,  692,  692,  692, 3217, 3217, 3217,  692, 1183, 1183,
2790      1183, 1183, 3217, 3217, 1183, 1183,  703,  703,  703, 3217,
2791
2792      3217, 3217,  703, 1190, 1190, 1190, 1190, 3217, 3217, 1190,
2793      1190,  709,  709,  709, 3217, 3217, 3217,  709,  731,  731,
2794       731, 3217, 3217, 3217,  731, 1220, 1220, 1220, 1220, 3217,
2795      3217, 1220, 1220,  738,  738,  738, 3217, 3217, 3217,  738,
2796      1229, 1229, 1229, 1229, 3217, 3217, 1229, 1229, 1237, 1237,
2797      1237, 1237, 3217, 3217, 1237, 1237,  749,  749,  749,  749,
2798      3217,  749, 3217,  749, 1243, 1243, 1243, 1243, 3217, 3217,
2799      1243, 1243,  754,  754,  754, 3217, 3217, 3217,  754, 1255,
2800      1255, 1255, 1255, 3217, 3217, 1255, 1255, 1268, 1268, 1268,
2801      1268, 3217, 3217, 1268, 1268,  769,  769,  769, 3217, 3217,
2802
2803      3217,  769, 1292, 1292, 1292, 1292, 3217, 3217, 1292, 1292,
2804       785,  785,  785,  785, 3217,  785, 3217,  785, 1308, 1308,
2805      1308, 1308, 3217, 3217, 1308, 1308,  795,  795,  795, 3217,
2806      3217, 3217,  795, 1323, 1323, 1323, 1323, 3217, 3217, 1323,
2807      1323,  805,  805,  805, 3217, 3217, 3217,  805, 1331, 1331,
2808      1331, 1331, 3217, 3217, 1331, 1331,  810,  810,  810, 3217,
2809      3217, 3217,  810, 1340, 1340, 1340, 1340, 3217, 3217, 1340,
2810      1340,  816,  816,  816, 3217, 3217, 3217,  816, 1351, 1351,
2811      1351, 1351, 3217, 3217, 1351, 1351,  824,  824,  824, 3217,
2812      3217, 3217,  824, 1360, 1360, 1360, 1360, 3217, 3217, 1360,
2813
2814      1360,  831,  831,  831,  831, 3217,  831, 3217,  831, 1372,
2815      1372, 1372, 1372, 3217, 3217, 1372, 1372,  838,  838,  838,
2816      3217, 3217, 3217,  838, 1380, 1380, 1380, 1380, 3217, 3217,
2817      1380, 1380, 1388, 1388, 1388, 1388, 3217, 3217, 1388, 1388,
2818       848,  848,  848,  848, 3217,  848, 3217,  848, 1398, 1398,
2819      1398, 1398, 3217, 3217, 1398, 1398,  854,  854,  854, 3217,
2820      3217, 3217,  854, 1407, 1407, 1407, 1407, 3217, 3217, 1407,
2821      1407, 1413, 1413, 1413, 1413, 3217, 3217, 1413, 1413, 1420,
2822      1420, 1420, 1420, 3217, 3217, 1420, 1420, 1428, 1428, 1428,
2823      1428, 3217, 3217, 1428, 1428, 1108, 1108, 1108, 1108, 1108,
2824
2825      1108, 1108, 1108, 1108, 1633, 1633, 1633, 1633, 1633, 1633,
2826      1633, 1633, 1633,  654,  654,  654,  654, 3217,  654, 3217,
2827       654, 1123, 1123, 1123, 1123, 3217, 3217, 1123, 1123, 1157,
2828      1157, 1157, 1157, 3217, 3217, 1157, 1157,  684,  684,  684,
2829      3217, 3217, 3217,  684, 1167, 1167, 1167, 1167, 3217, 3217,
2830      1167, 1167,  692,  692,  692, 3217, 3217, 3217,  692, 1183,
2831      1183, 1183, 1183, 3217, 3217, 1183, 1183,  703,  703,  703,
2832       703, 3217,  703, 3217,  703, 1190, 1190, 1190, 1190, 3217,
2833      3217, 1190, 1190,  709,  709,  709,  709, 3217,  709, 3217,
2834       709,  731,  731,  731,  731, 3217,  731, 3217,  731, 1220,
2835
2836      1220, 1220, 1220, 3217, 3217, 1220, 1220,  738,  738,  738,
2837       738, 3217,  738, 3217,  738, 1229, 1229, 1229, 1229, 3217,
2838      3217, 1229, 1229, 1237, 1237, 1237, 1237, 3217, 3217, 1237,
2839      1237, 1243, 1243, 1243, 1243, 3217, 3217, 1243, 1243,  754,
2840       754,  754, 3217, 3217, 3217,  754, 1268, 1268, 1268, 1268,
2841      3217, 3217, 1268, 1268,  769,  769,  769, 3217, 3217, 3217,
2842       769, 1292, 1292, 1292, 1292, 3217, 3217, 1292, 1292,  785,
2843       785,  785,  785, 3217,  785, 3217,  785, 1308, 1308, 1308,
2844      1308, 3217, 3217, 1308, 1308,  795,  795,  795, 3217, 3217,
2845      3217,  795,  805,  805,  805, 3217, 3217, 3217,  805, 1331,
2846
2847      1331, 1331, 1331, 3217, 3217, 1331, 1331,  810,  810,  810,
2848      3217, 3217, 3217,  810, 1340, 1340, 1340, 1340, 3217, 3217,
2849      1340, 1340,  816,  816,  816, 3217, 3217, 3217,  816,  824,
2850       824,  824, 3217, 3217, 3217,  824, 1360, 1360, 1360, 1360,
2851      3217, 3217, 1360, 1360,  831,  831,  831, 3217, 3217, 3217,
2852       831, 1372, 1372, 1372, 1372, 3217, 3217, 1372, 1372,  838,
2853       838,  838, 3217, 3217, 3217,  838, 1380, 1380, 1380, 1380,
2854      3217, 3217, 1380, 1380, 1388, 1388, 1388, 1388, 3217, 3217,
2855      1388, 1388, 1398, 1398, 1398, 1398, 3217, 3217, 1398, 1398,
2856       854,  854,  854, 3217, 3217, 3217,  854, 1407, 1407, 1407,
2857
2858      1407, 3217, 3217, 1407, 1407, 1413, 1413, 1413, 1413, 3217,
2859      3217, 1413, 1413, 1420, 1420, 1420, 1420, 3217, 3217, 1420,
2860      1420, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108,
2861      1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1123,
2862      1123, 1123, 1123, 3217, 3217, 1123, 1123, 1157, 1157, 1157,
2863      1157, 3217, 3217, 1157, 1157,  684,  684,  684, 3217, 3217,
2864      3217,  684,  692,  692,  692, 3217, 3217, 3217,  692, 1183,
2865      1183, 1183, 1183, 3217, 3217, 1183, 1183, 1190, 1190, 1190,
2866      1190, 3217, 3217, 1190, 1190, 1220, 1220, 1220, 1220, 3217,
2867      3217, 1220, 1220, 1229, 1229, 1229, 1229, 3217, 3217, 1229,
2868
2869      1229, 1243, 1243, 1243, 1243, 3217, 3217, 1243, 1243,  754,
2870       754,  754, 3217, 3217, 3217,  754, 1268, 1268, 1268, 1268,
2871      3217, 3217, 1268, 1268,  769,  769,  769, 3217, 3217, 3217,
2872       769, 1292, 1292, 1292, 1292, 3217, 3217, 1292, 1292, 1308,
2873      1308, 1308, 1308, 3217, 3217, 1308, 1308,  795,  795,  795,
2874      3217, 3217, 3217,  795,  805,  805,  805, 3217, 3217, 3217,
2875       805, 1331, 1331, 1331, 1331, 3217, 3217, 1331, 1331,  810,
2876       810,  810, 3217, 3217, 3217,  810, 1340, 1340, 1340, 1340,
2877      3217, 3217, 1340, 1340,  816,  816,  816, 3217, 3217, 3217,
2878       816,  824,  824,  824, 3217, 3217, 3217,  824,  831,  831,
2879
2880       831, 3217, 3217, 3217,  831, 1372, 1372, 1372, 1372, 3217,
2881      3217, 1372, 1372,  838,  838,  838, 3217, 3217, 3217,  838,
2882      1380, 1380, 1380, 1380, 3217, 3217, 1380, 1380, 1388, 1388,
2883      1388, 1388, 3217, 3217, 1388, 1388, 1398, 1398, 1398, 1398,
2884      3217, 3217, 1398, 1398,  854,  854,  854,  854, 3217,  854,
2885      3217,  854, 1407, 1407, 1407, 1407, 3217, 3217, 1407, 1407,
2886      1413, 1413, 1413, 1413, 3217, 3217, 1413, 1413, 1420, 1420,
2887      1420, 1420, 3217, 3217, 1420, 1420, 1108, 1108, 1108, 1108,
2888      1108, 1108, 1108, 1108, 1108, 1633, 1633, 1633, 1633, 1633,
2889      1633, 1633, 1633, 1633, 1123, 1123, 1123, 1123, 3217, 3217,
2890
2891      1123, 1123, 1157, 1157, 1157, 1157, 3217, 3217, 1157, 1157,
2892       684,  684,  684, 3217, 3217, 3217,  684,  692,  692,  692,
2893       692, 3217,  692, 3217,  692, 1190, 1190, 1190, 1190, 3217,
2894      3217, 1190, 1190, 1220, 1220, 1220, 1220, 3217, 3217, 1220,
2895      1220, 1229, 1229, 1229, 1229, 3217, 3217, 1229, 1229, 1243,
2896      1243, 1243, 1243, 3217, 3217, 1243, 1243,  754,  754,  754,
2897      3217, 3217, 3217,  754, 1268, 1268, 1268, 1268, 3217, 3217,
2898      1268, 1268,  769,  769,  769, 3217, 3217, 3217,  769, 1292,
2899      1292, 1292, 1292, 3217, 3217, 1292, 1292, 1308, 1308, 1308,
2900      1308, 3217, 3217, 1308, 1308,  795,  795,  795, 3217, 3217,
2901
2902      3217,  795,  805,  805,  805, 3217, 3217, 3217,  805,  810,
2903       810,  810,  810, 3217,  810, 3217,  810, 1340, 1340, 1340,
2904      1340, 3217, 3217, 1340, 1340,  816,  816,  816,  816, 3217,
2905       816, 3217,  816,  824,  824,  824, 3217, 3217, 3217,  824,
2906       831,  831,  831, 3217, 3217, 3217,  831, 1372, 1372, 1372,
2907      1372, 3217, 3217, 1372, 1372,  838,  838,  838,  838, 3217,
2908       838, 3217,  838, 1380, 1380, 1380, 1380, 3217, 3217, 1380,
2909      1380, 1388, 1388, 1388, 1388, 3217, 3217, 1388, 1388, 1398,
2910      1398, 1398, 1398, 3217, 3217, 1398, 1398,  854,  854,  854,
2911       854, 3217,  854, 3217,  854, 1407, 1407, 1407, 1407, 3217,
2912
2913      3217, 1407, 1407, 1413, 1413, 1413, 1413, 3217, 3217, 1413,
2914      1413, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108,
2915      1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1123,
2916      1123, 1123, 1123, 3217, 3217, 1123, 1123,  684,  684,  684,
2917      3217, 3217, 3217,  684,  692,  692,  692, 3217, 3217, 3217,
2918       692, 1190, 1190, 1190, 1190, 3217, 3217, 1190, 1190, 1220,
2919      1220, 1220, 1220, 3217, 3217, 1220, 1220, 1243, 1243, 1243,
2920      1243, 3217, 3217, 1243, 1243,  754,  754,  754, 3217, 3217,
2921      3217,  754, 1268, 1268, 1268, 1268, 3217, 3217, 1268, 1268,
2922       769,  769,  769, 3217, 3217, 3217,  769, 2837, 2837, 2837,
2923
2924      2837, 2837, 2837, 2837, 2837, 2837, 2838, 2838, 2838, 2838,
2925      2838, 2838, 2838, 2838, 2838, 2895, 2895, 2895, 2895, 2895,
2926      2895, 2895, 2895, 2895, 2898, 2898, 2898, 2898, 2898, 2898,
2927      2898, 2898, 2898, 2936, 2936, 2936, 2936, 2936, 2936, 2936,
2928      2936, 2936, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
2929      2938,  249, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
2930      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
2931      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
2932      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
2933      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
2934
2935      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
2936      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
2937      3217, 3217, 3217, 3217, 3217, 3217
2938     } ;
2939
2940 static yyconst flex_int16_t yy_chk[11827] =
2941     {   0,
2942         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
2943         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
2944         4,   10,    0,    5,    0,    9,    6,    0,   10,    7,
2945         8,    8,    8,  254,   11,   13,   13,   12,   14,   14,
2946        13,   13,  303,   14,   14,  255,    8,   17,   17,  254,
2947        13,   15,   15,   14,   15,  258,   15,   16,   16,  357,
2948        16,  255,   16,   18,   18,    0,   15,   19,   19,   19,
2949       522,  258,   16,   20,   20,   20,   23,   23,   23,   24,
2950        24,   24,  522,   19,   25,   25,   25,  357, 1500,   20,
2951       364,   17,   23, 1034,  303,   24,  252,  252,  252, 1034,
2952
2953        25,  253,  253,  253,  257,  257,  257,   18,   21,   21,
2954        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
2955        21,   21,   21,  287,   21,   21,   21,   21,   21,   26,
2956        26,   26,   27,   27,   27,   28,   28,   28,  287,   29,
2957        29,   29,   30,   30,   30,   26,  364,  429,   27,  281,
2958       429,   28,  659,   21,   21,   29,  297,  276,   30,   31,
2959        31,   31,  278,  278,  278,  281,  285,  285,  285,  294,
2960       294,  294,  297,  276,  353,   31,  659,   21,   22,   22,
2961        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
2962        22,   22,   22, 1504,   22,   22,   22,   22,   22,   32,
2963
2964        32,   32,   33,   33,   33,   34,   34,   34,  268,   35,
2965        35,   35,   36,   36,   36,   32,  276,  356,   33,  453,
2966       714,   34,  453,   22,   22,   35,  353,  356,   36,   37,
2967        37,   37,   38,   38,   38,   39,   39,   39,   40,   40,
2968        40,   41,   41,   41,  714,   37,  534,   22,   38,  308,
2969       268,   39,  449,  534,   40,  356,  268,   41,   42,   42,
2970        42,  268,  301,  301,  301,  308,  268,  305,  305,  305,
2971       316,  316,  316,  449,   42,   43,   43,   43,   43,   43,
2972        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
2973       325,   43,   43,   43,   43,   43,   45,   45,   45,   46,
2974
2975        46,   46,   47,   47,   47,  325,   48,   48,   48,   49,
2976        49,   49,   45,  468,  647,   46,  468,  647,   47,  323,
2977        43,   43,   48,  323,  377,   49,  289,  323,   43,   44,
2978        44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
2979        44,   44,   44,   44,  319,   44,   44,   44,   44,   44,
2980        50,   50,   50,   51,   51,   51,   52,   52,   52,  454,
2981       319,  624,   55,   55,  548,  289,   50,   55,  290,   51,
2982      1505,  548,   52,  454,   44,   44,  377,   55,  289,  378,
2983       289,  688,   44,   53,   53,   53,   53,   53,   53,   53,
2984        53,   53,   53,   53,   53,   53,   53,   53,  624,   53,
2985
2986        53,   53,   53,   53, 1506,  333,   55,  290,   59,   59,
2987        59,   60,   60,   60,   63,   63,   63,  688,   56,   56,
2988       290,  333,  290,   56,   59,  313,  666,   60,   53,   53,
2989        63,  378,  313,   56,  664, 1507,   53,  390,  664,   53,
2990       666,  313,  327,  327,  327, 1508,   53,   54,   54,   54,
2991        54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
2992        54,   54,   56,   54,   54,   54,   54,   54,   64,   64,
2993        64,   67,   67,   67,   68,   68,   68,  525,   69,   69,
2994        69,   70,   70,   70,   64,  345,  369,   67,  328,  390,
2995        68, 1509,   54,   54,   69,  328,  756,   70, 1510,  756,
2996
2997        54,  345,  369,   54,  328,  330,  330,  330,  391, 1515,
2998        54,   57,   57,   57,   57,   57,   57,   57,   57,   57,
2999        57,   57,   57,   57,   57,   57,  525,   57,   57,   57,
3000        57,   57,   71,   71,   71,   72,   72,   72,   73,   73,
3001        73, 1516,   74,   74,   74,   75,   75,   75,   71, 1523,
3002       383,   72,  340,  396,   73,  604,   57,   57,   74,  340,
3003       391,   75,  339,  339,  339,   57,  383,   57,  340,  396,
3004       604,   57,  342,  342,  342, 1525,   57,   57,   58,   58,
3005        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
3006        58,   58,   58,  361,   58,   58,   58,   58,   58,   76,
3007
3008        76,   76,   77,   77,   77,   78,   78,   78,  526,   79,
3009        79,   79,   80,   80,   80,   76,  355, 1526,   77, 1532,
3010       407,   78,  361,   58,   58,   79,  355,  361,   80,  350,
3011       350,  350,   58,  355,   58,  361,  407,  361,   58,  366,
3012       366,  366, 1533,   58,   58,   61,   61,   61,   61,   61,
3013        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
3014       526,   61,   61,   61,   61,   61,   81,   81,   81,   82,
3015        82,   82,   83,   83,   83,  670,   84,   84,   84,   85,
3016        85,   85,   81,  761, 1537,   82,  402,  761,   83,  670,
3017        61,   61,   84,  402,  413,   85,  638,   61,  376,  376,
3018
3019       376,  413,  402,   61,  380,  380,  380,  389,  389,  389,
3020       413,  638,   61,   62,   62,   62,   62,   62,   62,   62,
3021        62,   62,   62,   62,   62,   62,   62,   62,  722,   62,
3022        62,   62,   62,   62,   86,   86,   86,   87,   87,   87,
3023        88,   88,   88,  718,   89,   89,   89,   90,   90,   90,
3024        86, 1141,  722,   87,  418,  723,   88,  718,   62,   62,
3025        89, 1539,  434,   90, 1141,   62,  393,  393,  393, 1540,
3026       418,   62,  401,  401,  401,  404,  404,  404,  434,  723,
3027        62,   65,   65,   65,   65,   65,   65,   65,   65,   65,
3028        65,   65,   65,   65,   65,   65,  552,   65,   65,   65,
3029
3030        65,   65,   91,   91,   91,   92,   92,   92,   93,   93,
3031        93, 1547,   94,   94,   94,   95,   95,   95,   91,  446,
3032      1548,   92, 1549, 1550,   93,  625,   65,   65,   94,  463,
3033      1551,   95,  412,  412,  412,  446,  427,   65,  415,  415,
3034       415,  426,  426,  426,  552,  463,   65,   66,   66,   66,
3035        66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
3036        66,   66,  575,   66,   66,   66,   66,   66,   96,   96,
3037        96,   97,   97,   97,   98,   98,   98,  625,   99,   99,
3038        99,  100,  100,  100,   96,  427, 1552,   97,  427,  724,
3039        98, 1562,   66,   66,   99,  441, 1564,  100,  101,  101,
3040
3041       101, 1565,  441,   66,  102,  102,  102,  431,  431,  431,
3042       575,  441,   66,  724,  101,  440,  440,  440,  362, 1570,
3043       102,  103,  103,  103,  103,  103,  103,  103,  103,  103,
3044       103,  103,  103,  103,  103,  103, 1572,  103,  103,  103,
3045       103,  103,  105,  105,  105,  106,  106,  106,  107,  107,
3046       107, 1111,  108,  108,  108, 1111,  362,  455,  105,  726,
3047       478,  106,  725, 1574,  107,  359,  103,  103,  108,  455,
3048       455,  103,  362,  726,  537,  359,  478,  103,  443,  443,
3049       443,  103,  457,  457,  457, 1575,  725,  103,  104,  104,
3050       104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
3051
3052       104,  104,  104,  359,  104,  104,  104,  104,  104,  109,
3053       109,  109,  110,  110,  110,  111,  111,  111,  660,  112,
3054       112,  112,  537,  458, 1577,  109,  537, 1578,  110,  660,
3055       458,  111,  660,  104,  104,  112,  473,  494,  104,  458,
3056       460,  460,  460,  473,  104,  472,  472,  472,  104,  475,
3057       475,  475,  473,  494,  104,  113,  113,  113,  113,  113,
3058       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
3059      1579,  113,  113,  113,  113,  113,  115,  115,  115,  116,
3060       116,  116,  117,  117,  117,  728,  118,  118,  118,  488,
3061       488,  488,  115,  505,  517,  116,  489, 1588,  117,  728,
3062
3063       113,  113,  118,  489, 1594,  113,  491,  491,  491,  505,
3064       517,  113,  489,  499,  499,  499,  502,  502,  502,  511,
3065       511,  511,  113,  114,  114,  114,  114,  114,  114,  114,
3066       114,  114,  114,  114,  114,  114,  114,  114, 1595,  114,
3067       114,  114,  114,  114,  119,  119,  119,  120,  120,  120,
3068       121,  121,  121, 1599,  122,  122,  122, 1601,  500, 1153,
3069       119, 1613,  531,  120,  512,  500,  121, 1614,  114,  114,
3070       122,  512, 1153,  114,  500,  514,  514,  514,  531,  114,
3071       512,  524,  524,  524,  528,  528,  528,  536,  536,  536,
3072       114,  123,  123,  123,  123,  123,  123,  123,  123,  123,
3073
3074       123,  123,  123,  123,  123,  123, 1619,  123,  123,  123,
3075       123,  123,  125,  125,  125,  126,  126,  126,  129,  129,
3076       129, 1622,  130,  130,  130,  133,  133,  133,  125,  544,
3077       557,  126, 1623, 1624,  129,  568,  123,  123,  130, 1626,
3078      1633,  133,  541,  541,  541,  544,  557,  123,  550,  550,
3079       550,  568,  123,  124,  124,  124,  124,  124,  124,  124,
3080       124,  124,  124,  124,  124,  124,  124,  124, 1636,  124,
3081       124,  124,  124,  124,  134,  134,  134,  135,  135,  135,
3082       136,  136,  136, 1639,  137,  137,  137,  138,  138,  138,
3083       134,  580,  593,  135, 1640, 1642,  136,  588,  124,  124,
3084
3085       137, 1643, 1644,  138,  554,  554,  554,  580,  593,  124,
3086       562,  562,  562, 1645,  124,  127,  127,  127,  127,  127,
3087       127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
3088       729,  127,  127,  127,  127,  127,  139,  139,  139,  140,
3089       140,  140,  143,  143,  143,  588,  144,  144,  144,  147,
3090       147,  147,  139, 1646,  729,  140,  563, 1647,  143, 1648,
3091       127,  127,  144,  563,  609,  147,  565,  565,  565,  573,
3092       573,  573,  563,  577,  577,  577,  127,  586,  586,  586,
3093       609, 1650,  127,  128,  128,  128,  128,  128,  128,  128,
3094       128,  128,  128,  128,  128,  128,  128,  128, 1651,  128,
3095
3096       128,  128,  128,  128,  148,  148,  148,  151,  151,  151,
3097       152,  152,  152, 1653,  155,  155,  155,  156,  156,  156,
3098       148, 1655, 1657,  151, 1632, 1658,  152,  619,  128,  128,
3099       155, 1660, 1662,  156,  590,  590,  590,  601,  601,  601,
3100       606,  606,  606,  619,  128,  613,  613,  613,  602, 1632,
3101       128,  131,  131,  131,  131,  131,  131,  131,  131,  131,
3102       131,  131,  131,  131,  131,  131, 1664,  131,  131,  131,
3103       131,  131,  159,  159,  159,  160,  160,  160,  163,  163,
3104       163,  669,  164,  164,  164,  602,  614, 1665,  159, 1666,
3105       630,  160,  669,  614,  163,  669,  131,  131,  164,  131,
3106
3107       602,  131,  614,  616,  616,  616,  630,  131,  623,  623,
3108       623,  627,  627,  627,  131, 1667, 1668,  131,  132,  132,
3109       132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
3110       132,  132,  132, 1670,  132,  132,  132,  132,  132,  167,
3111       167,  167,  168,  168,  168,  169,  169,  169,  672,  170,
3112       170,  170,  635,  635,  635,  167,  877, 1431,  168,  672,
3113       636,  169,  672,  132,  132,  170,  132,  636,  132,  637,
3114       637,  637,  877, 1679,  132, 1680,  636, 1431,  646,  646,
3115       646,  132, 1682, 1686,  132,  141,  141,  141,  141,  141,
3116       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
3117
3118      1690,  141,  141,  141,  141,  141,  171,  171,  171,  172,
3119       172,  172,  173,  173,  173, 1692,  174,  174,  174,  177,
3120       177,  177,  171, 1699, 1700,  172,  665,  674,  173, 1701,
3121       141,  141,  174,  665,  674,  177,  141,  646,  676,  665,
3122       674,  141,  880,  880,  880, 1702,  880, 1704, 1708,  676,
3123      1709, 1710,  676,  141,  142,  142,  142,  142,  142,  142,
3124       142,  142,  142,  142,  142,  142,  142,  142,  142, 1713,
3125       142,  142,  142,  142,  142,  178,  178,  178,  179,  179,
3126       179,  180,  180,  180, 1720,  181,  181,  181,  182,  182,
3127       182,  178, 1732, 1733,  179,  677,  678,  180, 1206,  142,
3128
3129       142,  181,  677,  678,  182,  142,  717,  720,  677,  678,
3130       142, 1206, 1741,  717,  720, 1126, 1126, 1126, 1744,  717,
3131       720, 1749,  142,  145,  145,  145,  145,  145,  145,  145,
3132       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3133       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3134       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3135       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3136       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3137       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3138       145,  145,  145,  145,  145,  145,  145,  149,  149,  149,
3139
3140       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3141       149,  149, 1753,  149,  149,  149,  149,  149,  183,  183,
3142       183,  184,  184,  184,  187,  187,  187,  727,  188,  188,
3143       188,  189,  189,  189,  183, 1006, 1760,  184,  727, 1761,
3144       187,  727,  149,  149,  188, 1006,  149,  189,  892,  892,
3145       892, 1762, 1006,  149, 1763, 1772,  149,  913,  913,  913,
3146       149, 1776,  149,  149,  150,  150,  150,  150,  150,  150,
3147       150,  150,  150,  150,  150,  150,  150,  150,  150, 1779,
3148       150,  150,  150,  150,  150,  190,  190,  190,  191,  191,
3149       191,  192,  192,  192, 1781,  193,  193,  193,  194,  194,
3150
3151       194,  190, 1783, 1784,  191, 1786, 1787,  192, 1788,  150,
3152       150,  193,  892,  150,  194,  925,  925,  925, 1791,  925,
3153       150,  913,  925,  150, 1148, 1148, 1148,  150, 1793,  150,
3154       150,  153,  153,  153,  153,  153,  153,  153,  153,  153,
3155       153,  153,  153,  153,  153,  153, 1795,  153,  153,  153,
3156       153,  153,  197,  197,  197,  198,  198,  198,  201,  201,
3157       201, 1800,  202,  202,  202,  686,  686,  686,  197, 1806,
3158      1810,  198, 1811, 1812,  201, 1814,  153,  153,  202,  153,
3159       153,  153,  686, 1826,  933,  933,  933,  153,  933, 1829,
3160       153,  933, 1830, 1831,  153, 1823, 1822,  153,  154,  154,
3161
3162       154,  154,  154,  154,  154,  154,  154,  154,  154,  154,
3163       154,  154,  154, 1822,  154,  154,  154,  154,  154,  203,
3164       203,  203,  204,  204,  204,  205,  205,  205, 1833,  206,
3165       206,  206,  694,  694,  694,  203, 1834, 1823,  204, 1836,
3166      1832,  205, 1837,  154,  154,  206,  154,  154,  154,  694,
3167      1838,  948,  948,  948,  154,  948, 1832,  154,  948, 1840,
3168      1841,  154, 1824, 1842,  154,  157,  157,  157,  157,  157,
3169       157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
3170      1846,  157,  157,  157,  157,  157,  207,  207,  207,  208,
3171       208,  208,  211,  211,  211, 1824,  212,  212,  212,  710,
3172
3173       710,  710,  207, 1848, 1851,  208, 1852, 1853,  211, 1854,
3174       157,  157,  212, 1856, 1858,  157,  710, 1447, 1447, 1447,
3175      1859,  157,  158,  158,  158,  158,  158,  158,  158,  158,
3176       158,  158,  158,  158,  158,  158,  158, 1861,  158,  158,
3177       158,  158,  158,  213,  213,  213,  214,  214,  214,  215,
3178       215,  215, 1863,  216,  216,  216,  733,  733,  733,  213,
3179      1866, 1867,  214, 1447, 1869,  215, 1870,  158,  158,  216,
3180      1871, 1873,  158,  733, 1449, 1449, 1449, 1879,  158,  161,
3181       161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
3182       161,  161,  161,  161, 1880,  161,  161,  161,  161,  161,
3183
3184       217,  217,  217,  218,  218,  218,  221,  221,  221, 1868,
3185       222,  222,  222,  223,  223,  223,  217, 1868, 1881,  218,
3186      1449, 1882,  221, 1885,  161,  161,  222, 1901,  161,  223,
3187       952,  952,  952, 1902, 1881,  161, 1907, 1908,  161,  162,
3188       162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
3189       162,  162,  162,  162, 1909,  162,  162,  162,  162,  162,
3190       224,  224,  224,  225,  225,  225,  226,  226,  226, 1872,
3191       227,  227,  227,  228,  228,  228,  224, 1872, 1913,  225,
3192      1886, 1887,  226, 1915,  162,  162,  227, 1921,  162,  228,
3193       960,  960,  960, 1928,  952,  162, 1886, 1887,  162,  165,
3194
3195       165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
3196       165,  165,  165,  165, 1929,  165,  165,  165,  165,  165,
3197       231,  231,  231,  232,  232,  232,  235,  235,  235, 1930,
3198       236,  236,  236,  237,  237,  237,  231, 1943, 1949,  232,
3199      1953, 1956,  235, 1958,  165,  165,  236, 1961,  165,  237,
3200      1452, 1452, 1452, 1963,  960,  165, 1965, 1966,  165, 1455,
3201      1455, 1455, 1465, 1465, 1465,  165,  166,  166,  166,  166,
3202       166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
3203       166, 1967,  166,  166,  166,  166,  166,  238,  238,  238,
3204       239,  239,  239,  240,  240,  240, 1970,  241,  241,  241,
3205
3206       242,  242,  242,  238, 1972, 1977,  239, 1979, 1987,  240,
3207       354,  166,  166,  241, 1988,  166,  242,  967,  967,  967,
3208       354,  967,  166, 1989,  967,  166, 1501, 1501, 1501, 1502,
3209      1502, 1502,  166,  175,  175,  175,  175,  175,  175,  175,
3210       175,  175,  175,  175,  175,  175,  175,  175,  354,  175,
3211       175,  175,  175,  175,  245,  245,  245,  246,  246,  246,
3212      1990, 1992,  354,  740,  740,  740,  354,  890,  890,  890,
3213       245, 2003, 1501,  246, 2006, 1502,  288, 2003,  175,  175,
3214       740,  745,  745,  745,  175,  890,  288, 2011,  974,  974,
3215       974, 2005,  974, 2012,  360,  974, 2004, 2013,  745,  175,
3216
3217       176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
3218       176,  176,  176,  176,  176,  288,  176,  176,  176,  176,
3219       176,  288,  360,  757,  757,  757, 2014, 2004,  288, 1503,
3220      1503, 1503,  288,  765,  765,  765, 2018, 2005,  360, 2020,
3221       757,  766,  766,  766, 2021,  176,  176,  772,  772,  772,
3222       765,  176,  979,  979,  979, 2022,  979, 2027,  766,  979,
3223      1590, 1590, 1590, 2034,  772, 2036,  176,  185,  185,  185,
3224       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
3225       185,  185, 2037,  185,  185,  185,  185,  185,  774,  774,
3226       774,  786,  786,  786,  787,  787,  787,  799,  799,  799,
3227
3228       807,  807,  807, 2040, 2043,  774, 1590, 2047,  786, 2048,
3229      2049,  787,  185,  185,  799, 2050, 2051,  807,  185, 2052,
3230      2053,  185,  991,  991,  991, 2054,  991, 2055, 2056,  991,
3231      1649, 1649, 1649,  185,  186,  186,  186,  186,  186,  186,
3232       186,  186,  186,  186,  186,  186,  186,  186,  186, 2061,
3233       186,  186,  186,  186,  186,  812,  812,  812,  818,  818,
3234       818,  840,  840,  840,  868,  868,  868,  872,  872,  872,
3235      2062, 2063,  812, 2064, 2082,  818, 2083, 2086,  840,  186,
3236       186,  868, 2087, 2089,  872,  186, 2084, 2085,  186, 1000,
3237      1000, 1000, 2093, 1000, 2084, 2085, 1000, 1652, 1652, 1652,
3238
3239       186,  195,  195,  195,  195,  195,  195,  195,  195,  195,
3240       195,  195,  195,  195,  195,  195, 2099,  195,  195,  195,
3241       195,  195,  891,  891,  891,  921,  921,  921, 2100, 2101,
3242       922,  922,  922,  924,  924,  924,  928,  928,  928, 1694,
3243       891, 2115, 2119,  921, 2120, 1694,  195,  195,  922, 1694,
3244       924, 2121,  195, 1694,  928, 2123, 2127,  195,  196,  196,
3245       196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
3246       196,  196,  196, 2130,  196,  196,  196,  196,  196, 2131,
3247       891,  929,  929,  929,  932,  932,  932,  940,  940,  940,
3248       922,  934,  934,  934,  936,  936,  936, 2134, 2132,  929,
3249
3250      2135,  932, 2133,  196,  196,  940, 2132, 2138,  934,  196,
3251      2133,  936, 2145, 2147,  196,  199,  199,  199,  199,  199,
3252       199,  199,  199,  199,  199,  199,  199,  199,  199,  199,
3253      2162,  199,  199,  199,  199,  199,  945,  945,  945,  946,
3254       946,  946,  947,  947,  947,  929,  950,  950,  950, 2176,
3255       941,  941,  941, 2177,  945, 2180, 2187,  946, 2188,  947,
3256       199,  199, 2193, 2195,  950, 2207,  199, 2166,  941, 1002,
3257      1002, 1002, 2208, 1002, 2167, 2209, 1002, 1654, 1654, 1654,
3258      2210,  199,  200,  200,  200,  200,  200,  200,  200,  200,
3259       200,  200,  200,  200,  200,  200,  200,  941,  200,  200,
3260
3261       200,  200,  200,  946,  951,  951,  951,  966,  966,  966,
3262      2166,  970,  970,  970,  971,  971,  971,  973,  973,  973,
3263      2211, 2167,  951, 2212,  966, 2213, 2214,  200,  200,  970,
3264      2215, 2216,  971,  200,  973, 1008, 1008, 1008, 2223, 1008,
3265      2224,  951, 1008, 1656, 1656, 1656, 2225, 2227,  200,  209,
3266       209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
3267       209,  209,  209,  209, 2237,  209,  209,  209,  209,  209,
3268       976,  976,  976,  977,  977,  977,  978,  978,  978, 2238,
3269       971,  981,  981,  981,  982,  982,  982, 2239,  976, 2240,
3270      2241,  977, 2242,  978,  209,  209,  985,  985,  985,  981,
3271
3272       209, 2243,  982,  209, 1011, 1011, 1011, 2246, 1011, 2247,
3273      2252, 1011, 2253, 2259,  985,  209,  210,  210,  210,  210,
3274       210,  210,  210,  210,  210,  210,  210,  210,  210,  210,
3275       210, 2260,  210,  210,  210,  210,  210, 2261, 2262,  977,
3276       986,  986,  986, 2276, 2277,  982,  990,  990,  990, 2278,
3277       994,  994,  994,  995,  995,  995, 2279, 2281,  986, 2283,
3278      2306,  210,  210,  990,  999,  999,  999,  210,  994, 2307,
3279       210,  995, 1023, 1023, 1023, 2312, 1023, 2313, 2314, 1023,
3280      2300,  999,  210,  219,  219,  219,  219,  219,  219,  219,
3281       219,  219,  219,  219,  219,  219,  219,  219, 2317,  219,
3282
3283       219,  219,  219,  219, 2320,  986, 1001, 1001, 1001, 1003,
3284      1003, 1003, 2300, 2321,  995, 1004, 1004, 1004, 1007, 1007,
3285      1007, 2322, 2323, 1001, 1020, 1020, 1020, 1003,  219,  219,
3286      1010, 1010, 1010, 1004, 1695, 1007,  219, 2301,  219, 2324,
3287      1695,  219, 1020, 2325, 1695,  219, 2326, 1010, 1695,  219,
3288       220,  220,  220,  220,  220,  220,  220,  220,  220,  220,
3289       220,  220,  220,  220,  220, 2327,  220,  220,  220,  220,
3290       220, 1012, 1012, 1012, 2301, 2328, 1004, 1022, 1022, 1022,
3291      1021, 1021, 1021, 1024, 1024, 1024, 2329, 2330, 1012, 1026,
3292      1026, 1026, 2332, 2333, 1022,  220,  220, 2335, 1021, 2336,
3293
3294      1024, 2337, 2338,  220, 2339,  220, 1026, 2341,  220, 1659,
3295      1659, 1659,  220, 1669, 1669, 1669,  220,  229,  229,  229,
3296       229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
3297       229,  229, 2342,  229,  229,  229,  229,  229, 1021, 1025,
3298      1025, 1025, 2343, 1025, 2345, 2334, 1025, 2346, 1661, 1661,
3299      1661, 1027, 1027, 1027, 2334, 2348, 1028, 1028, 1028, 1029,
3300      1029, 1029,  229,  229, 1030, 1030, 1030, 2353, 1027, 2354,
3301      1037, 1037, 1037, 1028, 1037, 2340, 1029, 1037, 1045, 1045,
3302      1045, 1030, 1045, 2355, 2340, 1045,  229,  230,  230,  230,
3303       230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
3304
3305       230,  230, 1027,  230,  230,  230,  230,  230, 1028, 1031,
3306      1031, 1031, 1661, 2357, 1029, 2362, 1030, 1703, 1703, 1703,
3307      1036, 1036, 1036, 1038, 1038, 1038, 2363, 1031, 1041, 1041,
3308      1041, 2366,  230,  230, 1032, 1032, 1032, 1036, 2372, 2373,
3309      1038, 1050, 1050, 1050, 2375, 1050, 1041, 2384, 1050, 1663,
3310      1663, 1663, 1032, 1705, 1705, 1705,  230,  233,  233,  233,
3311       233,  233,  233,  233,  233,  233,  233,  233,  233,  233,
3312       233,  233, 2386,  233,  233,  233,  233,  233, 1042, 1042,
3313      1042, 1032, 1044, 1044, 1044, 2389, 1046, 1046, 1046, 1047,
3314      1047, 1047, 1049, 1049, 1049, 1663, 1042, 2391, 2410, 1044,
3315
3316      2412, 2415,  233,  233, 1046, 2411, 2416, 1047, 2418, 1049,
3317      1671, 1671, 1671,  233,  234,  234,  234,  234,  234,  234,
3318       234,  234,  234,  234,  234,  234,  234,  234,  234, 1042,
3319       234,  234,  234,  234,  234, 1052, 1052, 1052, 2410, 1053,
3320      1053, 1053, 2411, 2412, 1055, 1055, 1055, 1056, 1056, 1056,
3321      1047, 1056, 2419, 1052, 1056, 2420, 1671, 1053, 2425,  234,
3322       234, 1055, 1076, 1076, 1076, 2426, 1076, 2427, 2428, 1076,
3323       234,  243,  243,  243,  243,  243,  243,  243,  243,  243,
3324       243,  243,  243,  243,  243,  243, 1053,  243,  243,  243,
3325       243,  243, 1060, 1060, 1060, 1062, 1062, 1062, 1063, 1063,
3326
3327      1063, 1061, 1061, 1061, 1064, 1064, 1064, 1065, 1065, 1065,
3328      1060, 2429, 1062, 2430, 2431, 1063,  243,  243, 2432, 1061,
3329      2433, 1064, 1068, 1068, 1068, 1065, 2434,  243, 1100, 1100,
3330      1100, 2435, 1100, 2437, 2438, 1100, 1706, 1706, 1706, 1068,
3331       243,  244,  244,  244,  244,  244,  244,  244,  244,  244,
3332       244,  244,  244,  244,  244,  244, 1061,  244,  244,  244,
3333       244,  244, 2439, 1064, 1066, 1066, 1066, 1069, 1069, 1069,
3334      2423, 1070, 1070, 1070, 1071, 1071, 1071, 1072, 1072, 1072,
3335      2423, 2440, 1066, 2423, 1069, 2441,  244,  244, 1070, 2442,
3336      2443, 1071, 1075, 1075, 1075, 1072, 2444,  244, 1073, 1073,
3337
3338      1073, 1077, 1077, 1077, 1078, 1078, 1078, 2445, 2446, 1075,
3339       244,  286, 1079, 1079, 1079, 2447, 1073, 1069,  286, 1077,
3340      2448, 2424, 1078, 2449, 2450, 1066, 2451,  286,  286, 1079,
3341      2452, 2424, 1069, 1071, 2424, 1073, 1080, 1080, 1080, 2454,
3342      1081, 1081, 1081, 1082, 1082, 1082, 2458, 1083, 1083, 1083,
3343      1086, 1086, 1086, 1080, 2465,  286,  286,  286, 1081, 1078,
3344      2466, 1082,  286,  286, 1083, 2470,  286,  286, 1086, 2473,
3345       286, 2514,  286,  286,  286,  351, 2516, 2517, 1084, 1084,
3346      1084, 2518,  351, 1085, 1085, 1085, 1087, 1087, 1087, 2521,
3347      2512,  351,  351, 2511, 2522, 1084, 2524, 1093, 1093, 1093,
3348
3349      1085, 1099, 1099, 1099, 1087, 1094, 1094, 1094, 1103, 1103,
3350      1103, 1097, 1097, 1097, 1082, 1093, 2525, 2527, 1099,  351,
3351       351,  351, 2511, 1094, 2528, 1103,  351,  351, 1084, 1097,
3352       351,  351, 2512, 2529,  351, 2530,  351,  351,  351, 2531,
3353      1098, 1098, 1098, 1084, 1101, 1101, 1101, 1102, 1102, 1102,
3354      2513, 2523, 1104, 1104, 1104, 2533, 1104, 1087, 1098, 1104,
3355      2534, 2535, 1101, 2536, 2523, 1102, 1106, 1106, 1106, 1094,
3356      1107, 1107, 1107, 1122, 1122, 1122, 1123, 1123, 1123, 1125,
3357      1125, 1125, 2526, 2539, 1106, 1155, 1155, 1155, 1107, 2540,
3358      2541, 1122, 2513, 2542, 1123, 2526, 2543, 1125, 1156, 1156,
3359
3360      1156, 2544, 1155, 2545, 1098, 1157, 1157, 1157, 1102, 1159,
3361      1159, 1159, 1160, 1160, 1160, 2546, 1156, 1161, 1161, 1161,
3362      2547, 1161, 2548, 1157, 1161, 2549, 1125, 1159, 2550, 1160,
3363      1164, 1164, 1164, 2551, 1107, 1166, 1166, 1166, 1167, 1167,
3364      1167, 1169, 1169, 1169, 1171, 1171, 1171, 1164, 1171, 2552,
3365      2553, 1171, 2555, 1166, 2565, 2566, 1167, 2567, 1159, 1169,
3366      1174, 1174, 1174, 1175, 1175, 1175, 2496, 1175, 2571, 2589,
3367      1175, 2590, 1176, 1176, 1176, 2591, 2496, 1174, 1177, 1177,
3368      1177, 2592, 2496, 1178, 1178, 1178, 2593, 1178, 1169, 1176,
3369      1178, 1164, 1180, 1180, 1180, 1177, 1182, 1182, 1182, 1183,
3370
3371      1183, 1183, 1185, 1185, 1185, 1187, 1187, 1187, 2594, 1180,
3372      1189, 1189, 1189, 2598, 1182, 2606, 2609, 1183, 2610, 2603,
3373      1185, 2614, 1187, 1190, 1190, 1190, 2598, 2599, 1189, 1192,
3374      1192, 1192, 1193, 1193, 1193, 2615, 1193, 2616, 2617, 1193,
3375      2599, 1190, 1197, 1197, 1197, 2618, 2604, 1192, 1198, 1198,
3376      1198, 1200, 1200, 1200, 1214, 1214, 1214, 2619, 1214, 2620,
3377      1197, 1214, 1185, 1218, 1218, 1218, 1198, 2603, 2621, 1200,
3378      1219, 1219, 1219, 1220, 1220, 1220, 1192, 1222, 1222, 1222,
3379      1218, 2604, 1224, 1224, 1224, 2623, 1224, 2624, 1219, 1224,
3380      2625, 1220, 1228, 1228, 1228, 1222, 1229, 1229, 1229, 1231,
3381
3382      1231, 1231, 1232, 1232, 1232, 2626, 1232, 2627, 2628, 1232,
3383      1228, 1235, 1235, 1235, 1229, 2629, 2630, 1231, 1236, 1236,
3384      1236, 1237, 1237, 1237, 1239, 1239, 1239, 2632, 1235, 1240,
3385      1240, 1240, 2633, 1241, 1241, 1241, 1236, 2634, 1222, 1237,
3386      2635, 2636, 1239, 1743, 1743, 1743, 1240, 1242, 1242, 1242,
3387      1241, 1243, 1243, 1243, 1245, 1245, 1245, 1248, 1248, 1248,
3388      1231, 1241, 1254, 1254, 1254, 1242, 1249, 1249, 1249, 1243,
3389      1249, 2637, 1245, 1249, 1248, 1255, 1255, 1255, 2638, 2639,
3390      1254, 1257, 1257, 1257, 1260, 1260, 1260, 2640, 1261, 1261,
3391      1261, 1239, 1261, 1255, 2641, 1261, 1264, 1264, 1264, 1257,
3392
3393      1264, 1260, 2642, 1264, 1267, 1267, 1267, 1268, 1268, 1268,
3394      1270, 1270, 1270, 2497, 1275, 1275, 1275, 2643, 1275, 2644,
3395      1245, 1275, 1267, 2497, 2645, 1268, 2646, 2652, 1270, 2497,
3396      1278, 1278, 1278, 1279, 1279, 1279, 2656, 1279, 2657, 2658,
3397      1279, 1282, 1282, 1282, 2659, 2676, 1257, 1278, 1283, 1283,
3398      1283, 2677, 1283, 2678, 2679, 1283, 2680, 2681, 1282, 1291,
3399      1291, 1291, 1292, 1292, 1292, 1294, 1294, 1294, 2671, 1295,
3400      1295, 1295, 2672, 1295, 2684, 1270, 1295, 1291, 2671, 2674,
3401      1292, 2685, 2672, 1294, 1298, 1298, 1298, 2686, 1298, 2674,
3402      2675, 1298, 1301, 1301, 1301, 1302, 1302, 1302, 2687, 1302,
3403
3404      2675, 2688, 1302, 1307, 1307, 1307, 1308, 1308, 1308, 1301,
3405      1310, 1310, 1310, 1315, 1315, 1315, 2696, 1315, 2697, 2698,
3406      1315, 1307, 2699, 2700, 1308, 1318, 1318, 1318, 1310, 1319,
3407      1319, 1319, 1294, 1319, 2701, 2688, 1319, 1322, 1322, 1322,
3408      2702, 2703, 1318, 1323, 1323, 1323, 1325, 1325, 1325, 1327,
3409      1327, 1327, 2706, 1327, 2707, 1322, 1327, 2709, 1310, 2710,
3410      2711, 1323, 2713, 2715, 1325, 1330, 1330, 1330, 1331, 1331,
3411      1331, 1333, 1333, 1333, 1335, 1335, 1335, 2716, 1335, 2717,
3412      2720, 1335, 2721, 1330, 2722, 2723, 1331, 2724, 2727, 1333,
3413      1339, 1339, 1339, 1340, 1340, 1340, 2728, 1325, 1342, 1342,
3414
3415      1342, 2735, 1344, 1344, 1344, 2736, 1344, 2737, 1339, 1344,
3416      2739, 1340, 1350, 1350, 1350, 2745, 1342, 1351, 1351, 1351,
3417      2746, 1353, 1353, 1353, 1354, 1354, 1354, 1355, 1355, 1355,
3418      1350, 1355, 2747, 2748, 1355, 1351, 2749, 2750, 1333, 1353,
3419      2751, 1354, 1356, 1356, 1356, 2752, 2753, 1342, 1357, 1357,
3420      1357, 2754, 1357, 2756, 2757, 1357, 1359, 1359, 1359, 1356,
3421      1360, 1360, 1360, 2762, 1362, 1362, 1362, 1364, 1364, 1364,
3422      2763, 1368, 1368, 1368, 1359, 1835, 1835, 1835, 1360, 2764,
3423      2765, 1353, 1362, 2775, 1364, 1365, 1365, 1365, 1368, 1365,
3424      2776, 2777, 1365, 1369, 1369, 1369, 2778, 1369, 2779, 2780,
3425
3426      1369, 1371, 1371, 1371, 1372, 1372, 1372, 1374, 1374, 1374,
3427      1376, 1376, 1376, 2781, 1376, 2782, 2786, 1376, 2787, 1371,
3428      2788, 2766, 1372, 2789, 2790, 1374, 1379, 1379, 1379, 2791,
3429      2793, 1362, 1380, 1380, 1380, 1382, 1382, 1382, 1383, 1383,
3430      1383, 1384, 1384, 1384, 1379, 1384, 2794, 2796, 1384, 2797,
3431      1380, 2798, 2799, 1382, 2801, 1383, 1385, 1385, 1385, 1386,
3432      1386, 1386, 2802, 1386, 2766, 2806, 1386, 1387, 1387, 1387,
3433      2807, 1374, 2808, 1385, 1388, 1388, 1388, 2811, 1390, 1390,
3434      1390, 1391, 1391, 1391, 2816, 1387, 1392, 1392, 1392, 2817,
3435      1392, 2818, 1388, 1392, 2819, 1382, 1390, 2820, 1391, 1395,
3436
3437      1395, 1395, 1396, 1396, 1396, 2821, 1396, 2822, 2823, 1396,
3438      1397, 1397, 1397, 1398, 1398, 1398, 1395, 1400, 1400, 1400,
3439      1402, 1402, 1402, 1406, 1406, 1406, 2824, 2825, 1397, 2826,
3440      2827, 1398, 1407, 1407, 1407, 1400, 2829, 1402, 2830, 2831,
3441      1390, 1406, 1409, 1409, 1409, 1412, 1412, 1412, 2832, 2839,
3442      1407, 1413, 1413, 1413, 1415, 1415, 1415, 1416, 1416, 1416,
3443      1409, 1416, 2842, 1412, 1416, 1419, 1419, 1419, 2833, 1413,
3444      2843, 2835, 1415, 1420, 1420, 1420, 1422, 1422, 1422, 1400,
3445      1423, 1423, 1423, 1419, 1423, 2835, 2846, 1423, 1427, 1427,
3446      1427, 1420, 2848, 2836, 1422, 1428, 1428, 1428, 1430, 1430,
3447
3448      1430, 2849, 2851, 1409, 2836, 2852, 1427, 1415, 1432, 1432,
3449      1432, 2855, 2856, 1428, 2833, 2857, 1430, 1439, 1439, 1439,
3450      1468, 1468, 1468, 1470, 1470, 1470, 1432, 1432, 2858, 1471,
3451      1471, 1471, 1496, 1496, 1496, 1439, 1422, 1468, 1469, 1469,
3452      1469, 1470, 1469, 2859, 2860, 1469, 1471, 1472, 1472, 1472,
3453      1496, 1472, 2861, 2862, 1472, 1475, 1475, 1475, 2863, 1430,
3454      1477, 1477, 1477, 2864, 1477, 2865, 2867, 1477, 1480, 1480,
3455      1480, 2869, 2868, 1475, 2877, 1481, 1481, 1481, 2867, 1481,
3456      2874, 1470, 1481, 1439, 2868, 1480, 1482, 1482, 1482, 2875,
3457      1482, 2879, 2874, 1482, 1486, 1486, 1486, 2881, 1487, 1487,
3458
3459      1487, 2875, 1487, 2883, 1475, 1487, 1489, 1489, 1489, 2891,
3460      2893, 1486, 1491, 1491, 1491, 1492, 1492, 1492, 2897, 1492,
3461      2896, 2896, 1492, 2899, 1489, 1493, 1493, 1493, 2894, 1491,
3462      1494, 1494, 1494, 1511, 1511, 1511, 1512, 1512, 1512, 1513,
3463      1513, 1513, 1493, 1513, 2898, 2901, 1513, 2902, 1494, 2903,
3464      1511, 2904, 2911, 1512, 2910, 2898, 1489, 1514, 1514, 1514,
3465      1517, 1517, 1517, 1518, 1518, 1518, 1519, 1519, 1519, 2894,
3466      1519, 2915, 2910, 1519, 2920, 1514, 2895, 2914, 1517, 1494,
3467      1518, 1520, 1520, 1520, 1521, 1521, 1521, 1522, 1522, 1522,
3468      2895, 1522, 2914, 2920, 1522, 1524, 1524, 1524, 2921, 1520,
3469
3470      2923, 1521, 1527, 1527, 1527, 1528, 1528, 1528, 2926, 1528,
3471      2928, 2933, 1528, 1524, 1529, 1529, 1529, 2934, 2936, 1527,
3472      2922, 1514, 2937, 2938, 1517, 1530, 1530, 1530, 1531, 1531,
3473      1531, 1529, 1534, 1534, 1534, 2940, 1535, 1535, 1535, 2922,
3474      1535, 1520, 1530, 1535, 2925, 2941, 1531, 2927, 2942, 1534,
3475      1536, 1536, 1536, 1538, 1538, 1538, 1524, 1541, 1541, 1541,
3476      1542, 1542, 1542, 2925, 1542, 2943, 2927, 1542, 1536, 2945,
3477      1538, 1530, 2946, 2948, 1541, 1543, 1543, 1543, 2949, 1543,
3478      2956, 2957, 1543, 1546, 1546, 1546, 1553, 1553, 1553, 1554,
3479      1554, 1554, 2958, 1554, 1531, 2959, 1554, 1557, 1557, 1557,
3480
3481      1546, 1558, 1558, 1558, 1553, 1559, 1559, 1559, 1560, 1560,
3482      1560, 1561, 1561, 1561, 1557, 2960, 1536, 2961, 1558, 1563,
3483      1563, 1563, 1559, 2964, 2965, 1560, 1566, 1566, 1566, 1561,
3484      1566, 2966, 2967, 1566, 2968, 2969, 1563, 1569, 1569, 1569,
3485      1571, 1571, 1571, 1573, 1573, 1573, 1576, 1576, 1576, 2970,
3486      2971, 1553, 1559, 2973, 1569, 1580, 1580, 1580, 1571, 2975,
3487      2977, 1573, 2978, 2980, 1576, 2991, 1561, 1581, 1581, 1581,
3488      2992, 1558, 1580, 1582, 1582, 1582, 2989, 1582, 1560, 2993,
3489      1582, 2994, 1585, 1585, 1585, 1581, 1585, 2990, 2989, 1585,
3490      1589, 1589, 1589, 1591, 1591, 1591, 2995, 1591, 2996, 2990,
3491
3492      1591, 1580, 3000, 1576, 1571, 1600, 1600, 1600, 1589, 1573,
3493      1596, 1596, 1596, 3001, 1596, 3002, 3003, 1596, 1602, 1602,
3494      1602, 3004, 3005, 1600, 1581, 1603, 1603, 1603, 3006, 1603,
3495      3007, 3010, 1603, 1606, 1606, 1606, 1602, 1606, 3011, 3008,
3496      1606, 1609, 1609, 1609, 1610, 1610, 1610, 3012, 1610, 3013,
3497      3014, 1610, 3015, 1615, 1615, 1615, 1589, 1615, 3016, 1609,
3498      1615, 1618, 1618, 1618, 3008, 3017, 1600, 1620, 1620, 1620,
3499      1621, 1621, 1621, 3018, 1621, 1602, 3019, 1621, 3020, 1618,
3500      1625, 1625, 1625, 3021, 1620, 1627, 1627, 1627, 1609, 1628,
3501      1628, 1628, 1629, 1629, 1629, 1630, 1630, 1630, 1625, 1631,
3502
3503      1631, 1631, 1627, 1634, 1634, 1634, 3022, 1628, 1618, 3023,
3504      1629, 3024, 1630, 1641, 1641, 1641, 3025, 1631, 1672, 1672,
3505      1672, 1634, 1672, 3026, 3027, 1672, 1696, 1696, 1696, 1625,
3506      3028, 1641, 1675, 1675, 1675, 1676, 1676, 1676, 3029, 1676,
3507      3032, 3035, 1676, 1696, 1629, 1681, 1681, 1681, 3036, 3037,
3508      1675, 1683, 1683, 1683, 1634, 1683, 1628, 3038, 1683, 3032,
3509      3039, 1631, 3040, 1681, 3041, 1641, 1687, 1687, 1687, 3042,
3510      1687, 1634, 3043, 1687, 1691, 1691, 1691, 1693, 1693, 1693,
3511      3044, 1693, 3045, 3046, 1693, 3047, 1697, 1697, 1697, 3048,
3512      1697, 3049, 1691, 1697, 3050, 3051, 1681, 3052, 3054, 1675,
3513
3514      1698, 1698, 1698, 1707, 1707, 1707, 1711, 1711, 1711, 1712,
3515      1712, 1712, 1714, 1714, 1714, 1715, 1715, 1715, 1698, 1715,
3516      3055, 3056, 1715, 1716, 1716, 1716, 3053, 1716, 3057, 1714,
3517      1716, 1719, 1719, 1719, 3058, 1691, 1721, 1721, 1721, 1722,
3518      1722, 1722, 3059, 1723, 1723, 1723, 3053, 1723, 3060, 1719,
3519      1723, 1698, 3061, 1721, 1726, 1726, 1726, 1722, 1727, 1727,
3520      1727, 3062, 1727, 3063, 3064, 1727, 3065, 1707, 3066, 3067,
3521      1711, 3068, 1726, 1712, 1730, 1730, 1730, 3069, 1719, 1731,
3522      1731, 1731, 3070, 1734, 1734, 1734, 1722, 1734, 3071, 3072,
3523      1734, 1730, 1737, 1737, 1737, 3072, 3075, 1731, 1738, 1738,
3524
3525      1738, 3076, 1738, 3077, 3078, 1738, 1739, 1739, 1739, 1737,
3526      1740, 1740, 1740, 3079, 1740, 3080, 3082, 1740, 3083, 3085,
3527      1726, 3086, 3088, 1739, 1742, 1742, 1742, 1745, 1745, 1745,
3528      3089, 1745, 3092, 3091, 1745, 1748, 1748, 1748, 1750, 1750,
3529      1750, 3093, 1742, 1731, 1751, 1751, 1751, 3091, 1751, 3094,
3530      3095, 1751, 3097, 1748, 3099, 1750, 1752, 1752, 1752, 1754,
3531      1754, 1754, 3101, 1754, 3103, 3105, 1754, 1757, 1757, 1757,
3532      1758, 1758, 1758, 1752, 1758, 3106, 3107, 1758, 1759, 1759,
3533      1759, 1748, 3108, 3109, 1757, 1764, 1764, 1764, 1765, 1765,
3534      1765, 1766, 1766, 1766, 3110, 1759, 1767, 1767, 1767, 3111,
3535
3536      1767, 3112, 1764, 1767, 3114, 3116, 1765, 3118, 1766, 1768,
3537      1768, 1768, 1769, 1769, 1769, 1770, 1770, 1770, 1771, 1771,
3538      1771, 1773, 1773, 1773, 3119, 3120, 1768, 3121, 3146, 1769,
3539      3180, 3130, 1770, 1774, 1774, 1774, 1771, 1774, 1773, 3150,
3540      1774, 1775, 1775, 1775, 1777, 1777, 1777, 3136, 1778, 1778,
3541      1778, 3136, 1778, 3137, 1765, 1778, 3122, 3137, 1775, 3180,
3542      3138, 1777, 1780, 1780, 1780, 1782, 1782, 1782, 3138, 3146,
3543      1769, 1785, 1785, 1785, 1789, 1789, 1789, 3123, 1771, 3130,
3544      1780, 1499, 1498, 1782, 3142, 3150, 1790, 1790, 1790, 1785,
3545      1790, 1789, 3122, 1790, 1792, 1792, 1792, 1794, 1794, 1794,
3546
3547      1796, 1796, 1796, 1797, 1797, 1797, 1798, 1798, 1798, 1799,
3548      1799, 1799, 1792, 3123, 3139, 1794, 1782, 1796, 3131, 1785,
3549      1797, 3132, 3139, 1798, 1802, 1802, 1802, 1799, 1801, 1801,
3550      1801, 3142, 1803, 1803, 1803, 1804, 1804, 1804, 1805, 1805,
3551      1805, 3154, 1802, 1807, 1807, 1807, 1801, 1807, 1794, 1803,
3552      1807, 3133, 1804, 1813, 1813, 1813, 1805, 3134, 1815, 1815,
3553      1815, 1816, 1816, 1816, 3140, 1816, 3131, 1495, 1816, 3132,
3554      1798, 1813, 3140, 3154, 1801, 1815, 1799, 1817, 1817, 1817,
3555      1818, 1818, 1818, 1819, 1819, 1819, 1820, 1820, 1820, 1802,
3556      1820, 1490, 1488, 1820, 3141, 1817, 3144, 3145, 1818, 3133,
3557
3558      1819, 3134, 3141, 1805, 1813, 1821, 1821, 1821, 1827, 1827,
3559      1827, 1828, 1828, 1828, 1839, 1839, 1839, 1843, 1843, 1843,
3560      1844, 1844, 1844, 1821, 3143, 1827, 1845, 1845, 1845, 1828,
3561      1847, 1847, 1847, 3144, 3145, 1818, 1817, 1849, 1849, 1849,
3562      1850, 1850, 1850, 1855, 1855, 1855, 1857, 1857, 1857, 1860,
3563      1860, 1860, 1862, 1862, 1862, 1864, 1864, 1864, 1865, 1865,
3564      1865, 1874, 1874, 1874, 1857, 1874, 3148, 1860, 1874, 1862,
3565      3156, 3143, 1828, 1864, 3135, 1865, 1877, 1877, 1877, 3156,
3566      1878, 1878, 1878, 1883, 1883, 1883, 1884, 1884, 1884, 1888,
3567      1888, 1888, 1485, 3151, 1877, 3188, 1857, 1878, 1889, 1889,
3568
3569      1889, 3148, 1889, 3188, 3147, 1889, 1888, 1892, 1892, 1892,
3570      1893, 1893, 1893, 1476, 1864, 1894, 1894, 1894, 3135, 1895,
3571      1895, 1895, 1877, 1895, 3149, 1892, 1895, 1893, 1896, 1896,
3572      1896, 3152, 1894, 1897, 1897, 1897, 1898, 1898, 1898, 3151,
3573      1899, 1899, 1899, 3157, 1899, 3147, 1896, 1899, 1900, 1900,
3574      1900, 1897, 3157, 1898, 1903, 1903, 1903, 3153, 1903, 3149,
3575      1892, 1903, 1474, 1906, 1906, 1906, 1900, 1906, 3152, 3160,
3576      1906, 1910, 1910, 1910, 1912, 1912, 1912, 3161, 1914, 1914,
3577      1914, 1896, 1473, 1916, 1916, 1916, 3158, 1916, 3184, 1910,
3578      1916, 1919, 1919, 1919, 3153, 1900, 1914, 1920, 1920, 1920,
3579
3580      3162, 1920, 3155, 3160, 1920, 1922, 1922, 1922, 1919, 1922,
3581      3163, 3161, 1922, 1925, 1925, 1925, 1926, 1926, 1926, 3159,
3582      1926, 3158, 3184, 1926, 1927, 1927, 1927, 1931, 1931, 1931,
3583      1925, 1932, 1932, 1932, 3155, 1932, 1914, 3164, 1932, 3168,
3584      1467, 1927, 3170, 3162, 1931, 1933, 1933, 1933, 1934, 1934,
3585      1934, 3170, 1934, 3163, 3159, 1934, 1937, 1937, 1937, 3169,
3586      1938, 1938, 1938, 1933, 1938, 3165, 1466, 1938, 1939, 1939,
3587      1939, 3171, 3168, 1937, 1940, 1940, 1940, 1941, 1941, 1941,
3588      3171, 1941, 3172, 3164, 1941, 1939, 1942, 1942, 1942, 1464,
3589      1463, 1940, 3169, 1944, 1944, 1944, 1933, 1944, 3174, 3173,
3590
3591      1944, 1947, 1947, 1947, 1942, 1948, 1948, 1948, 3166, 1948,
3592      1462, 3165, 1948, 1950, 1950, 1950, 3167, 1950, 1947, 3172,
3593      1950, 1954, 1954, 1954, 1957, 1957, 1957, 1959, 1959, 1959,
3594      1960, 1960, 1960, 1962, 1962, 1962, 3173, 1942, 3178, 1954,
3595      3174, 3179, 1957, 3166, 1959, 1964, 1964, 1964, 1960, 1964,
3596      1962, 3167, 1964, 1968, 1968, 1968, 1971, 1971, 1971, 1973,
3597      1973, 1973, 1974, 1974, 1974, 3189, 1974, 3176, 3182, 1974,
3598      3175, 1968, 3177, 3189, 1971, 3178, 1973, 3182, 3179, 1962,
3599      1975, 1975, 1975, 1976, 1976, 1976, 3181, 1976, 1957, 1461,
3600      1976, 1960, 1978, 1978, 1978, 1460, 3185, 1975, 1980, 1980,
3601
3602      1980, 1981, 1981, 1981, 1982, 1982, 1982, 1983, 1983, 1983,
3603      1978, 1983, 3175, 3176, 1983, 3181, 1980, 3196, 3177, 1981,
3604      1459, 1982, 1984, 1984, 1984, 1985, 1985, 1985, 3194, 1985,
3605      3185, 3183, 1985, 1986, 1986, 1986, 1991, 1991, 1991, 1984,
3606      3183, 1993, 1993, 1993, 1458, 1993, 3190, 1980, 1993, 3192,
3607      3186, 1986, 3196, 3187, 1991, 1996, 1996, 1996, 1978, 1997,
3608      1997, 1997, 3197, 1998, 1998, 1998, 1981, 1998, 3202, 3194,
3609      1998, 1457, 1456, 1996, 2001, 2001, 2001, 1997, 2007, 2007,
3610      2007, 2008, 2008, 2008, 1454, 2008, 3192, 1453, 2008, 2009,
3611      2009, 2009, 2001, 3190, 1451, 2007, 3186, 3197, 1986, 3187,
3612
3613      3202, 1991, 2010, 2010, 2010, 3191, 1996, 2009, 2015, 2015,
3614      2015, 1450, 1997, 2016, 2016, 2016, 2017, 2017, 2017, 2019,
3615      2019, 2019, 2023, 2023, 2023, 2024, 2024, 2024, 2025, 2025,
3616      2025, 2026, 2026, 2026, 2028, 2028, 2028, 2029, 2029, 2029,
3617      2030, 2030, 2030, 2031, 2031, 2031, 2032, 2032, 2032, 2033,
3618      2033, 2033, 3191, 2009, 2035, 2035, 2035, 2038, 2038, 2038,
3619      3204, 2041, 2041, 2041, 2042, 2042, 2042, 3193, 2042, 3204,
3620      1448, 2042, 2035, 1446, 3212, 2038, 1445, 2026, 2041, 2044,
3621      2044, 2044, 2045, 2045, 2045, 2046, 2046, 2046, 3212, 2046,
3622      1444, 3195, 2046, 2057, 2057, 2057, 3200, 2044, 3203, 2045,
3623
3624      2058, 2058, 2058, 3198, 3193, 2035, 2059, 2059, 2059, 3201,
3625      2059, 2057, 1443, 2059, 2060, 2060, 2060, 2058, 2065, 2065,
3626      2065, 2066, 2066, 2066, 2067, 2067, 2067, 2068, 2068, 2068,
3627      3203, 2068, 3195, 3200, 2068, 2069, 2069, 2069, 2070, 2070,
3628      2070, 2067, 2057, 2071, 2071, 2071, 3201, 2071, 3199, 3198,
3629      2071, 3208, 3205, 2069, 3209, 2070, 2072, 2072, 2072, 1442,
3630      2072, 3205, 1441, 2072, 2075, 2075, 2075, 2066, 3206, 2076,
3631      2076, 2076, 2078, 2078, 2078, 1440, 2078, 3207, 1438, 2078,
3632      1437, 1436, 2075, 2081, 2081, 2081, 2069, 2076, 2088, 2088,
3633      2088, 2090, 2090, 2090, 3199, 2090, 1435, 1426, 2090, 3208,
3634
3635      3206, 2081, 3209, 2094, 2094, 2094, 2088, 2094, 3210, 3207,
3636      2094, 2097, 2097, 2097, 1411, 2075, 2098, 2098, 2098, 3213,
3637      2098, 3211, 1410, 2098, 1405, 2102, 2102, 2102, 2097, 2102,
3638      3213, 1404, 2102, 2105, 2105, 2105, 2081, 2106, 2106, 2106,
3639      3210, 2106, 1403, 2088, 2106, 2109, 2109, 2109, 2110, 2110,
3640      2110, 2105, 2110, 3211, 1401, 2110, 2111, 2111, 2111, 1394,
3641      2111, 1393, 2109, 2111, 2114, 2114, 2114, 2116, 2116, 2116,
3642      1375, 2116, 1370, 1367, 2116, 2122, 2122, 2122, 2124, 2124,
3643      2124, 1366, 2114, 2125, 2125, 2125, 1363, 2125, 1358, 1349,
3644      2125, 1348, 1347, 2122, 1343, 2124, 1338, 2105, 2126, 2126,
3645
3646      2126, 2128, 2128, 2128, 2129, 2129, 2129, 1334, 2129, 1326,
3647      1321, 2129, 1320, 2136, 2136, 2136, 2126, 1314, 2128, 2139,
3648      2139, 2139, 1313, 2139, 1312, 1311, 2139, 2146, 2146, 2146,
3649      2114, 2136, 2142, 2142, 2142, 1306, 2142, 1305, 1304, 2142,
3650      1303, 2148, 2148, 2148, 1290, 2146, 2149, 2149, 2149, 2150,
3651      2150, 2150, 1289, 2150, 1288, 1287, 2150, 1286, 2126, 2148,
3652      1285, 2153, 2153, 2153, 2149, 2153, 1284, 1274, 2153, 2156,
3653      2156, 2156, 1273, 2157, 2157, 2157, 1272, 1271, 2146, 2158,
3654      2158, 2158, 2149, 2159, 2159, 2159, 1259, 2156, 1258, 2156,
3655      2157, 2160, 2160, 2160, 1253, 1252, 2158, 2161, 2161, 2161,
3656
3657      2159, 2163, 2163, 2163, 2164, 2164, 2164, 2148, 2160, 2165,
3658      2165, 2165, 2168, 2168, 2168, 2161, 2169, 2169, 2169, 2163,
3659      2169, 1247, 2164, 2169, 2172, 2172, 2172, 2165, 1246, 1227,
3660      2158, 2173, 2173, 2173, 2174, 2174, 2174, 2175, 2175, 2175,
3661      1223, 1217, 2172, 2178, 2178, 2178, 1213, 2159, 1212, 1211,
3662      2160, 2179, 2179, 2179, 2181, 2181, 2181, 2182, 2182, 2182,
3663      1210, 2163, 2161, 2183, 2183, 2183, 2184, 2184, 2184, 2185,
3664      2185, 2185, 2186, 2186, 2186, 2189, 2189, 2189, 2190, 2190,
3665      2190, 1209, 1208, 2172, 2191, 2191, 2191, 2192, 2192, 2192,
3666      2194, 2194, 2194, 2197, 2197, 2197, 2198, 2198, 2198, 1207,
3667
3668      2198, 1205, 1204, 2198, 2201, 2201, 2201, 1203, 2194, 1202,
3669      2197, 2202, 2202, 2202, 1201, 2204, 2204, 2204, 1196, 2204,
3670      1188, 2201, 2204, 2217, 2217, 2217, 2218, 2218, 2218, 2202,
3671      2218, 2219, 2219, 2218, 2219, 1186, 2220, 2220, 1181, 2220,
3672      1179, 2217, 2219, 1170, 1165, 2219, 1154, 2220, 1152, 2219,
3673      2220, 2221, 2221, 2221, 2220, 2222, 2222, 2222, 2226, 2226,
3674      2226, 2228, 2228, 2228, 1151, 2228, 1150, 1149, 2228, 1147,
3675      2201, 2231, 2231, 2231, 2232, 2232, 2232, 1146, 2232, 1145,
3676      1144, 2232, 1143, 1142, 2217, 2235, 2235, 2235, 1140, 2231,
3677      2236, 2236, 2236, 2244, 2244, 2244, 2245, 2245, 2245, 1139,
3678
3679      2248, 2248, 2248, 2235, 2248, 1138, 1137, 2248, 2236, 2251,
3680      2251, 2251, 1136, 1135, 2245, 1134, 1133, 2231, 2254, 2254,
3681      2254, 2255, 2255, 2255, 1132, 2255, 2251, 1131, 2255, 2258,
3682      2258, 2258, 2263, 2263, 2263, 1130, 2254, 2265, 2265, 2265,
3683      1129, 2236, 2266, 2266, 2266, 1128, 2266, 2258, 1127, 2266,
3684      2263, 2269, 2269, 2269, 2265, 1121, 2245, 2270, 2270, 2270,
3685      2271, 2271, 2271, 1120, 2271, 1119, 1116, 2271, 1115, 2269,
3686      2274, 2274, 2274, 1114, 2270, 2275, 2275, 2275, 2280, 2280,
3687      2280, 2282, 2282, 2282, 2285, 2285, 2285, 2274, 2284, 2284,
3688      2284, 1112, 2275, 1108, 1105, 2280, 2286, 2286, 2286, 1096,
3689
3690      1095, 2285, 2269, 2270, 1092, 1091, 2284, 1090, 2287, 2287,
3691      2287, 2289, 2289, 2289, 2286, 2288, 2288, 2288, 1089, 1088,
3692      2290, 2290, 2290, 1074, 2290, 2274, 2287, 2290, 2289, 2280,
3693      2291, 2291, 2291, 2288, 1067, 1059, 2275, 2292, 2292, 2292,
3694      2293, 2293, 2293, 2294, 2294, 2294, 1058, 2291, 2295, 2295,
3695      2295, 1057, 2288, 1054, 2292, 1051, 2286, 2293, 2296, 2296,
3696      2296, 2294, 2297, 2297, 2297, 2299, 2299, 2299, 1048, 2287,
3697      2302, 2302, 2302, 2304, 2304, 2304, 2296, 2303, 2303, 2303,
3698      2297, 1043, 1040, 2299, 2305, 2305, 2305, 1039, 2292, 1035,
3699      1033, 2293, 2308, 2308, 2308, 2303, 2309, 2309, 2309, 2310,
3700
3701      2310, 2310, 2311, 2311, 2311, 2315, 2315, 2315, 2318, 2318,
3702      2318, 2319, 2319, 2319, 1019, 2319, 1018, 1017, 2319, 2331,
3703      2331, 2331, 1016, 2315, 2296, 2318, 1015, 2299, 2344, 2344,
3704      2344, 2347, 2347, 2347, 2349, 2349, 2349, 2331, 2350, 2350,
3705      2350, 2352, 2352, 2352, 2359, 2359, 2359, 2360, 2360, 2360,
3706      1014, 1013, 2349, 2361, 2361, 2361, 2350, 1009, 1005, 2352,
3707       998, 2359,  997, 2364, 2364, 2364, 2365, 2365, 2365,  996,
3708      2365, 2361,  993, 2365, 2367, 2367, 2367,  992,  989, 2331,
3709      2364, 2368, 2368, 2368, 2370, 2370, 2370, 2374, 2374, 2374,
3710       988, 2367, 2376, 2376, 2376,  987, 2378, 2378, 2378, 2368,
3711
3712      2349,  984, 2370,  983, 2374, 2379, 2379, 2379,  980, 2376,
3713      2361, 2377, 2377, 2377, 2378, 2377,  975,  972, 2377, 2380,
3714      2380, 2380, 2379, 2380,  969,  968, 2380, 2381, 2381, 2381,
3715      2382, 2382, 2382, 2383, 2383, 2383, 2388, 2388, 2388, 2390,
3716      2390, 2390,  965,  964, 2381,  963,  962, 2382,  961,  959,
3717      2383,  958,  957, 2388, 2392, 2392, 2392, 2394, 2394, 2394,
3718      2395, 2395, 2395,  956, 2395,  955,  954, 2395, 2396, 2396,
3719      2396,  953, 2392,  949, 2394, 2397, 2397, 2397,  944, 2381,
3720      2398, 2398, 2398, 2399, 2399, 2399, 2396, 2399, 2382,  943,
3721      2399, 2383,  942, 2397, 2402, 2402, 2402,  939, 2398, 2403,
3722
3723      2403, 2403,  938, 2403,  937,  935, 2403, 2404, 2404, 2404,
3724       931, 2402, 2405, 2405, 2405, 2406, 2406, 2406, 2408, 2408,
3725      2408, 2409, 2409, 2409, 2404, 2413, 2413, 2413,  927, 2405,
3726      2417, 2417, 2417, 2406, 2421, 2421, 2421,  926,  923, 2409,
3727       920,  919, 2397, 2413, 2398, 2422, 2422, 2422,  918, 2422,
3728       917, 2421, 2422, 2436, 2436, 2436, 2453, 2453, 2453, 2455,
3729      2455, 2455, 2456, 2456, 2456, 2459, 2459, 2459, 2462, 2462,
3730      2462, 2436, 2463, 2463, 2463,  916, 2463, 2455,  915, 2463,
3731      2456,  914, 2459,  912,  911, 2462, 2464, 2464, 2464, 2467,
3732      2467, 2467,  910, 2467,  909,  908, 2467, 2471, 2471, 2471,
3733
3734       907, 2472, 2472, 2472, 2464, 2472,  906,  905, 2472, 2474,
3735      2474, 2474,  904, 2436, 2471, 2475, 2475, 2475, 2476, 2476,
3736      2476,  903, 2476,  902,  901, 2476, 2474, 2477, 2477, 2477,
3737      2455,  900, 2475, 2478, 2478, 2478,  899, 2478,  898,  897,
3738      2478, 2481, 2481, 2481, 2477, 2483, 2483, 2483,  896, 2483,
3739       895,  894, 2483, 2486, 2486, 2486, 2487, 2487, 2487, 2481,
3740      2488, 2488, 2488, 2491, 2491, 2491,  893, 2492, 2492, 2492,
3741      2486, 2492,  889, 2487, 2492,  888,  886, 2488,  885,  884,
3742      2491, 2493, 2493, 2493, 2494, 2494, 2494, 2495, 2495, 2495,
3743       883, 2495,  882,  878, 2495, 2498, 2498, 2498, 2493,  876,
3744
3745       875, 2494, 2500, 2500, 2500,  874,  873, 2487, 2486, 2501,
3746      2501, 2501,  869, 2498,  865, 2488,  864, 2502, 2502, 2502,
3747      2500, 2502,  861,  860, 2502,  859,  858, 2501, 2505, 2505,
3748      2505, 2506, 2506, 2506,  857, 2506,  856,  855, 2506, 2507,
3749      2507, 2507, 2508, 2508, 2508, 2505, 2508,  852,  851, 2508,
3750       850, 2509, 2509, 2509,  849,  846, 2507, 2515, 2515, 2515,
3751      2519, 2519, 2519, 2538, 2538, 2538,  845,  844, 2500, 2509,
3752      2501, 2520, 2520, 2520,  841, 2520,  839, 2519, 2520,  836,
3753       835, 2538, 2554, 2554, 2554, 2556, 2556, 2556, 2557, 2557,
3754      2557, 2558, 2558, 2558, 2559, 2559, 2559,  834, 2559,  833,
3755
3756       832, 2559,  829, 2556,  828, 2557,  827,  826, 2558, 2560,
3757      2560, 2560,  825, 2560, 2538,  822, 2560, 2563, 2563, 2563,
3758      2568, 2568, 2568,  821, 2568,  820,  819, 2568, 2572, 2572,
3759      2572, 2607, 2607, 2607, 2557, 2563, 2573, 2573, 2573,  817,
3760      2573,  814,  813, 2573,  811, 2572,  808, 2556, 2574, 2574,
3761      2574,  806, 2574,  803,  802, 2574, 2577, 2577, 2577, 2578,
3762      2578, 2578,  801, 2578,  800,  798, 2578, 2579, 2579, 2579,
3763      2580, 2580, 2580, 2577, 2581, 2581, 2581,  797, 2582, 2582,
3764      2582,  796, 2582,  793, 2579, 2582,  792, 2580, 2585, 2585,
3765      2585, 2581, 2586, 2586, 2586,  791, 2586,  790,  789, 2586,
3766
3767      2587, 2587, 2587,  788,  783, 2585, 2588, 2588, 2588,  782,
3768      2588,  781,  780, 2588, 2595, 2595, 2595, 2587, 2596, 2596,
3769      2596,  779,  778, 2581,  777, 2579, 2597, 2597, 2597,  776,
3770      2597,  775, 2595, 2597,  773,  771, 2596, 2600, 2600, 2600,
3771       770, 2600,  767,  764, 2600, 2605, 2605, 2605, 2608, 2608,
3772      2608, 2611, 2611, 2611,  760, 2611,  759,  758, 2611, 2622,
3773      2622, 2622, 2605, 2605,  755, 2595, 2631, 2631, 2631, 2647,
3774      2647, 2647, 2648, 2648, 2648,  752, 2622, 2649, 2649, 2649,
3775      2650, 2650, 2650,  751, 2631, 2596, 2651, 2651, 2651,  750,
3776      2651,  747,  746, 2651,  742, 2649,  741, 2650, 2653, 2653,
3777
3778      2653,  739, 2653,  736,  735, 2653, 2660, 2660, 2660,  734,
3779      2660,  732,  721, 2660,  719, 2631, 2663, 2663, 2663,  716,
3780      2663,  715,  713, 2663, 2666, 2666, 2666,  712, 2649, 2667,
3781      2667, 2667, 2668, 2668, 2668,  711, 2668,  707,  706, 2668,
3782       705, 2666, 2669, 2669, 2669,  704, 2667, 2670, 2670, 2670,
3783       701, 2670,  700,  699, 2670,  698, 2673, 2673, 2673, 2669,
3784      2673,  697,  696, 2673, 2682, 2682, 2682, 2683, 2683, 2683,
3785      2689, 2689, 2689,  695,  693, 2666, 2690, 2690, 2690, 2691,
3786      2691, 2691, 2682, 2691,  690, 2683, 2691, 2689, 2689, 2692,
3787      2692, 2692,  689, 2690, 2690,  687,  685, 2691, 2693, 2693,
3788
3789      2693, 2694, 2694, 2694, 2695, 2695, 2695, 2704, 2704, 2704,
3790      2705, 2705, 2705, 2669, 2705,  682,  681, 2705, 2714, 2714,
3791      2714, 2729, 2729, 2729, 2704, 2730, 2730, 2730, 2731, 2731,
3792      2731,  675,  673, 2683,  671,  668, 2714, 2732, 2732, 2732,
3793       667, 2732,  663,  662, 2732,  661, 2731, 2738, 2738, 2738,
3794      2740, 2740, 2740, 2741, 2741, 2741,  658, 2741,  657,  656,
3795      2741, 2744, 2744, 2744, 2738,  655,  652, 2740, 2759, 2759,
3796      2759, 2761, 2761, 2761, 2767, 2767, 2767,  651, 2744,  650,
3797       649, 2768, 2768, 2768, 2714, 2768, 2759,  648, 2768, 2761,
3798       642, 2767, 2767, 2769, 2769, 2769,  641, 2769,  639, 2768,
3799
3800      2769, 2772, 2772, 2772, 2773, 2773, 2773, 2774, 2774, 2774,
3801       633, 2769, 2783, 2783, 2783,  632, 2783,  628,  621, 2783,
3802       617,  611, 2761, 2770, 2770, 2770, 2770, 2770, 2770, 2770,
3803      2770, 2770,  607,  603, 2770, 2792, 2792, 2792,  599, 2770,
3804      2770, 2770, 2770, 2770, 2803, 2803, 2803, 2804, 2804, 2804,
3805      2809, 2809, 2809, 2792, 2810, 2810, 2810,  598, 2810,  597,
3806       596, 2810, 2812, 2812, 2812, 2804,  595, 2809, 2770, 2770,
3807      2771, 2771, 2771, 2771, 2771, 2771, 2771, 2771, 2771, 2812,
3808       591, 2771, 2814, 2814, 2814,  587, 2771, 2771, 2771, 2771,
3809      2771, 2813, 2813, 2813,  584, 2813,  583,  582, 2813, 2814,
3810
3811      2815, 2815, 2815,  578, 2815,  574,  571, 2815, 2828, 2828,
3812      2828, 2853, 2853, 2853,  570, 2771, 2771, 2834, 2834, 2834,
3813       566, 2834,  560,  559, 2834,  555, 2828,  551,  547, 2853,
3814      2888, 2888, 2888,  546,  542, 2834, 2837, 2837, 2837, 2837,
3815      2837, 2837, 2837, 2837, 2837,  539,  538, 2837, 2888,  533,
3816       529,  521, 2837, 2837, 2837, 2837, 2837, 2866, 2866, 2866,
3817       520, 2866,  519,  515, 2866, 2870, 2870, 2870,  509, 2870,
3818       508,  507, 2870, 2873, 2873, 2873,  503, 2873,  497,  496,
3819      2873, 2837, 2837, 2838, 2838, 2838, 2838, 2838, 2838, 2838,
3820      2838, 2838,  492,  486, 2838, 2900, 2900, 2900,  485, 2838,
3821
3822      2838, 2838, 2838, 2838, 2917, 2917, 2917, 2918, 2918, 2918,
3823      2919, 2919, 2919, 2900, 2900, 2924, 2924, 2924, 2935, 2935,
3824      2935, 2917,  484,  483, 2918,  482,  481, 2919, 2838, 2838,
3825       480,  476, 2924, 2939, 2939, 2939, 2935, 2950, 2950, 2950,
3826      2951, 2951, 2951,  470, 2951,  469,  467, 2951, 2952, 2952,
3827      2952, 2939,  466,  465, 2950, 2953, 2953, 2953,  461, 2953,
3828       452,  451, 2953,  450,  448, 2952, 2954, 2954, 2954, 2955,
3829      2955, 2955,  444, 2955,  438,  437, 2955, 2962, 2962, 2962,
3830      2972, 2972, 2972, 2954, 2939, 2963, 2963, 2963,  436, 2963,
3831       432,  428, 2963,  424, 2962, 2982, 2982, 2982, 2972, 2982,
3832
3833       423,  422, 2982, 2985, 2985, 2985,  421, 2985,  420,  416,
3834      2985, 2988, 2988, 2988,  410, 2988,  409, 2972, 2988, 2997,
3835      2997, 2997,  405, 2997,  399,  398, 2997, 3104, 3104, 3104,
3836      3113, 3113, 3113,  394, 3113,  387,  386, 3113, 3214, 3214,
3837      3214, 3215, 3215, 3215,  385, 3104,  381,  374, 3113,  373,
3838       372,  371,  367,  363,  358,  352, 3214,  348,  347, 3215,
3839      3218, 3218, 3218, 3218, 3218, 3218, 3218, 3218, 3218, 3219,
3840      3219, 3219, 3219, 3219, 3219, 3219, 3219, 3219, 3220, 3220,
3841      3220, 3220, 3220, 3220, 3220, 3220, 3220, 3221, 3221, 3221,
3842      3221, 3221, 3221, 3221, 3221, 3221, 3222, 3222, 3222, 3222,
3843
3844      3222, 3222, 3222, 3222, 3222, 3223, 3223, 3223, 3223, 3223,
3845      3223, 3223, 3223, 3223, 3224, 3224, 3224, 3224, 3224, 3224,
3846      3224, 3224, 3224, 3225, 3225, 3225, 3225, 3225, 3225, 3225,
3847      3225, 3225, 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226,
3848      3226, 3227, 3227, 3227, 3227, 3227, 3227, 3227, 3227, 3227,
3849      3228, 3228, 3228, 3228, 3228, 3228, 3228, 3228, 3228, 3229,
3850      3229, 3229, 3229, 3229, 3229, 3229, 3229, 3229, 3230, 3230,
3851      3230, 3230, 3230, 3230, 3230, 3230, 3230, 3231, 3231, 3231,
3852      3231, 3231, 3231, 3231, 3231, 3231, 3232, 3232, 3232, 3232,
3853      3232, 3232, 3232, 3232, 3232, 3233, 3233, 3233, 3233, 3233,
3854
3855      3233, 3233, 3233, 3233, 3234, 3234, 3234, 3234, 3234, 3234,
3856      3234, 3234, 3234, 3235, 3235, 3235, 3235, 3235, 3235, 3235,
3857      3235, 3235, 3236, 3236, 3236, 3236, 3236, 3236, 3236, 3236,
3858      3236, 3237, 3237, 3237, 3237, 3237, 3237, 3237, 3237, 3237,
3859      3238, 3238, 3238, 3238, 3238, 3238, 3238, 3238, 3238, 3239,
3860      3239, 3239, 3239, 3239, 3239, 3239, 3239, 3239, 3240, 3240,
3861      3240, 3240, 3240, 3240, 3240, 3240, 3240, 3241, 3241, 3241,
3862      3241, 3241, 3241, 3241, 3241, 3241, 3242, 3242, 3242, 3242,
3863      3242, 3242, 3242, 3242, 3242, 3243, 3243, 3243, 3243, 3243,
3864      3243, 3243, 3243, 3243, 3244, 3244, 3244, 3244, 3244, 3244,
3865
3866      3244, 3244, 3244, 3245, 3245, 3245, 3245, 3245, 3245, 3245,
3867      3245, 3245, 3246, 3246, 3246, 3246, 3246, 3246, 3246, 3246,
3868      3246, 3247, 3247, 3247, 3247, 3247, 3247, 3247, 3247, 3247,
3869      3248, 3248, 3248, 3248, 3248, 3248, 3248, 3248, 3248, 3249,
3870      3249, 3249, 3249, 3249, 3249, 3249, 3249, 3249, 3250, 3250,
3871      3250, 3250, 3250, 3250, 3250, 3250, 3250, 3251, 3251, 3251,
3872      3251, 3251, 3251, 3251, 3251, 3251, 3252, 3252, 3252, 3252,
3873      3252, 3252, 3252, 3252, 3252, 3253, 3253, 3253, 3253, 3253,
3874      3253, 3253, 3253, 3253, 3254, 3254, 3254, 3254, 3254, 3254,
3875      3254, 3254, 3254, 3255, 3255, 3255, 3255, 3255, 3255, 3255,
3876
3877      3255, 3255, 3256, 3256, 3256, 3256, 3256, 3256, 3256, 3256,
3878      3256, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257,
3879      3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3259,
3880      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3260, 3260,
3881      3260, 3260, 3260, 3260, 3260, 3260, 3260, 3261, 3261, 3261,
3882      3261, 3261, 3261, 3261, 3261, 3261, 3262, 3262, 3262, 3262,
3883      3262, 3262, 3262, 3262, 3262, 3263, 3263, 3263, 3263, 3263,
3884      3263, 3263, 3263, 3263, 3264, 3264, 3264, 3264, 3264, 3264,
3885      3264, 3264, 3264, 3265, 3265, 3265, 3265, 3265, 3265, 3265,
3886      3265, 3265, 3266, 3266, 3266, 3266, 3266, 3266, 3266, 3266,
3887
3888      3266, 3267, 3267, 3267, 3267, 3267, 3267, 3267, 3267, 3267,
3889      3268, 3268, 3268, 3268, 3268, 3268, 3268, 3268, 3268, 3269,
3890      3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3270, 3270,
3891      3270, 3270, 3270, 3270, 3270, 3270, 3270, 3271, 3271, 3271,
3892      3271, 3271, 3271, 3271, 3271, 3271, 3272, 3272, 3272, 3272,
3893      3272, 3272, 3272, 3272, 3272, 3273, 3273, 3273, 3273, 3273,
3894      3273, 3273, 3273, 3273, 3274, 3274, 3274, 3274, 3274, 3274,
3895      3274, 3274, 3274, 3275, 3275, 3275, 3275, 3275, 3275, 3275,
3896      3275, 3275, 3276, 3276, 3276, 3276, 3276, 3276, 3276, 3276,
3897      3276, 3277, 3277, 3277,  343,  337,  336, 3277, 3278, 3278,
3898
3899      3278,  335,  331,  324, 3278, 3279, 3279, 3279,  322,  321,
3900       317, 3279, 3280, 3280, 3280,  314,  312,  311, 3280, 3281,
3901      3281, 3281,  310,  306,  302, 3281, 3282, 3282, 3282,  299,
3902       295,  292, 3282, 3283, 3283, 3283,  291,  283,  279, 3283,
3903      3284, 3284, 3284,  275,  274,  273, 3284, 3285, 3285, 3285,
3904       267,  266,  264, 3285, 3286, 3286, 3286,  261,  249,    0,
3905      3286, 3287, 3287, 3287,    0,    0,    0, 3287, 3288, 3288,
3906      3288,    0,    0,    0, 3288, 3289, 3289, 3289,    0,    0,
3907         0, 3289, 3290, 3290, 3290,    0,    0,    0, 3290, 3291,
3908      3291, 3291,    0,    0,    0, 3291, 3292, 3292, 3292,    0,
3909
3910         0,    0, 3292, 3293, 3293, 3293,    0,    0,    0, 3293,
3911      3294, 3294, 3294,    0,    0,    0, 3294, 3295, 3295, 3295,
3912         0,    0,    0, 3295, 3296, 3296, 3296,    0,    0,    0,
3913      3296, 3297, 3297, 3297,    0,    0,    0, 3297, 3298, 3298,
3914      3298,    0,    0,    0, 3298, 3299, 3299, 3299,    0,    0,
3915         0, 3299, 3300, 3300, 3300,    0,    0,    0, 3300, 3301,
3916      3301, 3301,    0,    0,    0, 3301, 3302, 3302, 3302,    0,
3917         0,    0, 3302, 3303, 3303, 3303,    0,    0,    0, 3303,
3918      3304, 3304, 3304, 3304, 3304, 3304, 3304,    0, 3304, 3305,
3919      3305, 3305,    0,    0,    0, 3305, 3306,    0,    0,    0,
3920
3921      3306, 3307, 3307, 3307,    0,    0,    0, 3307, 3308,    0,
3922         0,    0, 3308, 3309, 3309, 3309,    0,    0,    0, 3309,
3923      3310,    0,    0,    0, 3310, 3311, 3311, 3311,    0,    0,
3924         0, 3311, 3312,    0,    0,    0, 3312, 3313, 3313, 3313,
3925         0,    0,    0, 3313, 3314,    0,    0,    0, 3314, 3315,
3926      3315, 3315,    0,    0,    0, 3315, 3316,    0,    0,    0,
3927      3316, 3317, 3317, 3317,    0,    0,    0, 3317, 3318,    0,
3928         0,    0, 3318, 3319, 3319, 3319,    0,    0,    0, 3319,
3929      3320,    0,    0,    0, 3320, 3321, 3321, 3321,    0,    0,
3930         0, 3321, 3322,    0,    0,    0, 3322, 3323, 3323, 3323,
3931
3932         0,    0,    0, 3323, 3324,    0,    0,    0, 3324, 3325,
3933      3325, 3325,    0,    0,    0, 3325, 3326,    0,    0,    0,
3934      3326, 3327, 3327, 3327,    0,    0,    0, 3327, 3328,    0,
3935         0,    0, 3328, 3329, 3329, 3329,    0,    0,    0, 3329,
3936      3330,    0,    0,    0, 3330, 3331, 3331, 3331,    0,    0,
3937         0, 3331, 3332,    0,    0,    0, 3332, 3333, 3333, 3333,
3938         0,    0,    0, 3333, 3334,    0,    0,    0, 3334, 3335,
3939      3335, 3335,    0,    0,    0, 3335, 3336,    0,    0,    0,
3940      3336, 3337, 3337, 3337,    0,    0,    0, 3337, 3338,    0,
3941         0,    0, 3338, 3339, 3339, 3339,    0,    0,    0, 3339,
3942
3943      3340,    0,    0,    0, 3340, 3341, 3341, 3341,    0,    0,
3944         0, 3341, 3342,    0,    0,    0, 3342, 3343, 3343, 3343,
3945         0,    0,    0, 3343, 3344,    0,    0,    0, 3344, 3345,
3946      3345, 3345,    0,    0,    0, 3345, 3346,    0,    0,    0,
3947      3346, 3347, 3347, 3347,    0,    0,    0, 3347, 3348,    0,
3948         0,    0, 3348, 3349, 3349, 3349,    0,    0,    0, 3349,
3949      3350,    0,    0,    0, 3350, 3351, 3351, 3351,    0,    0,
3950         0, 3351, 3352,    0,    0,    0, 3352, 3353, 3353, 3353,
3951         0,    0,    0, 3353, 3354,    0,    0,    0, 3354, 3355,
3952      3355, 3355,    0,    0,    0, 3355, 3356,    0,    0,    0,
3953
3954      3356, 3357, 3357, 3357,    0,    0,    0, 3357, 3358,    0,
3955         0,    0, 3358, 3359, 3359, 3359, 3359, 3359, 3359, 3359,
3956      3359, 3359, 3360,    0,    0,    0,    0, 3360, 3361, 3361,
3957      3361,    0,    0,    0, 3361, 3362, 3362, 3362, 3362,    0,
3958         0, 3362, 3362, 3363, 3363, 3363,    0,    0,    0, 3363,
3959      3364, 3364, 3364, 3364,    0,    0, 3364, 3364, 3365, 3365,
3960      3365,    0,    0,    0, 3365, 3366, 3366, 3366, 3366,    0,
3961         0, 3366, 3366, 3367, 3367, 3367,    0,    0,    0, 3367,
3962      3368, 3368, 3368, 3368,    0,    0, 3368, 3368, 3369, 3369,
3963      3369,    0,    0,    0, 3369, 3370, 3370, 3370, 3370,    0,
3964
3965         0, 3370, 3370, 3371, 3371, 3371,    0,    0,    0, 3371,
3966      3372, 3372, 3372, 3372,    0,    0, 3372, 3372, 3373, 3373,
3967      3373,    0,    0,    0, 3373, 3374, 3374, 3374, 3374,    0,
3968         0, 3374, 3374, 3375, 3375, 3375,    0,    0,    0, 3375,
3969      3376, 3376, 3376, 3376,    0,    0, 3376, 3376, 3377, 3377,
3970      3377,    0,    0,    0, 3377, 3378, 3378, 3378, 3378,    0,
3971         0, 3378, 3378, 3379, 3379, 3379,    0,    0,    0, 3379,
3972      3380, 3380, 3380, 3380,    0,    0, 3380, 3380, 3381, 3381,
3973      3381,    0,    0,    0, 3381, 3382, 3382, 3382, 3382,    0,
3974         0, 3382, 3382, 3383, 3383, 3383,    0,    0,    0, 3383,
3975
3976      3384, 3384, 3384, 3384,    0,    0, 3384, 3384, 3385, 3385,
3977      3385,    0,    0,    0, 3385, 3386, 3386, 3386, 3386,    0,
3978         0, 3386, 3386, 3387, 3387, 3387, 3387,    0, 3387,    0,
3979      3387, 3388, 3388, 3388, 3388,    0,    0, 3388, 3388, 3389,
3980      3389, 3389,    0,    0,    0, 3389, 3390, 3390, 3390, 3390,
3981         0,    0, 3390, 3390, 3391, 3391, 3391,    0,    0,    0,
3982      3391, 3392, 3392, 3392, 3392,    0,    0, 3392, 3392, 3393,
3983      3393, 3393,    0,    0,    0, 3393, 3394, 3394, 3394, 3394,
3984         0,    0, 3394, 3394, 3395, 3395, 3395,    0,    0,    0,
3985      3395, 3396, 3396, 3396, 3396,    0,    0, 3396, 3396, 3397,
3986
3987      3397, 3397, 3397,    0, 3397,    0, 3397, 3398, 3398, 3398,
3988      3398,    0,    0, 3398, 3398, 3399, 3399, 3399, 3399,    0,
3989      3399,    0, 3399, 3400, 3400, 3400, 3400,    0,    0, 3400,
3990      3400, 3401, 3401, 3401,    0,    0,    0, 3401, 3402, 3402,
3991      3402, 3402,    0,    0, 3402, 3402, 3403, 3403, 3403, 3403,
3992         0, 3403,    0, 3403, 3404, 3404, 3404, 3404,    0,    0,
3993      3404, 3404, 3405, 3405, 3405, 3405,    0, 3405,    0, 3405,
3994      3406, 3406, 3406, 3406,    0,    0, 3406, 3406, 3407, 3407,
3995      3407,    0,    0,    0, 3407, 3408, 3408, 3408, 3408,    0,
3996         0, 3408, 3408, 3409, 3409, 3409,    0,    0,    0, 3409,
3997
3998      3410, 3410, 3410, 3410,    0,    0, 3410, 3410, 3411, 3411,
3999      3411, 3411,    0,    0, 3411, 3411, 3412, 3412, 3412,    0,
4000         0,    0, 3412, 3413, 3413, 3413, 3413,    0,    0, 3413,
4001      3413, 3414, 3414, 3414, 3414, 3414, 3414, 3414, 3414, 3414,
4002      3415,    0, 3415,    0,    0, 3415, 3416, 3416, 3416,    0,
4003         0,    0, 3416, 3417, 3417, 3417, 3417,    0,    0, 3417,
4004      3417, 3418, 3418, 3418, 3418,    0, 3418,    0, 3418, 3419,
4005      3419, 3419, 3419,    0,    0, 3419, 3419, 3420, 3420, 3420,
4006      3420,    0, 3420,    0, 3420, 3421, 3421, 3421, 3421,    0,
4007         0, 3421, 3421, 3422, 3422, 3422,    0,    0,    0, 3422,
4008
4009      3423, 3423, 3423, 3423,    0,    0, 3423, 3423, 3424, 3424,
4010      3424,    0,    0,    0, 3424, 3425, 3425, 3425, 3425,    0,
4011         0, 3425, 3425, 3426, 3426, 3426,    0,    0,    0, 3426,
4012      3427, 3427, 3427, 3427,    0,    0, 3427, 3427, 3428, 3428,
4013      3428,    0,    0,    0, 3428, 3429, 3429, 3429, 3429,    0,
4014         0, 3429, 3429, 3430, 3430, 3430,    0,    0,    0, 3430,
4015      3431, 3431, 3431, 3431,    0,    0, 3431, 3431, 3432, 3432,
4016      3432, 3432,    0, 3432,    0, 3432, 3433, 3433, 3433, 3433,
4017         0,    0, 3433, 3433, 3434, 3434, 3434, 3434,    0, 3434,
4018         0, 3434, 3435, 3435, 3435, 3435,    0,    0, 3435, 3435,
4019
4020      3436, 3436, 3436,    0,    0,    0, 3436, 3437, 3437, 3437,
4021      3437,    0,    0, 3437, 3437, 3438, 3438, 3438, 3438,    0,
4022      3438,    0, 3438, 3439, 3439, 3439, 3439,    0,    0, 3439,
4023      3439, 3440, 3440, 3440,    0,    0,    0, 3440, 3441, 3441,
4024      3441, 3441,    0,    0, 3441, 3441, 3442, 3442, 3442,    0,
4025         0,    0, 3442, 3443, 3443, 3443, 3443,    0,    0, 3443,
4026      3443, 3444, 3444, 3444,    0,    0,    0, 3444, 3445, 3445,
4027      3445, 3445,    0,    0, 3445, 3445, 3446, 3446, 3446,    0,
4028         0,    0, 3446, 3447, 3447, 3447, 3447,    0,    0, 3447,
4029      3447, 3448, 3448, 3448,    0,    0,    0, 3448, 3449, 3449,
4030
4031      3449, 3449,    0,    0, 3449, 3449, 3450, 3450, 3450,    0,
4032         0,    0, 3450, 3451, 3451, 3451, 3451,    0,    0, 3451,
4033      3451, 3452, 3452, 3452,    0,    0,    0, 3452, 3453, 3453,
4034      3453, 3453,    0,    0, 3453, 3453, 3454, 3454, 3454,    0,
4035         0,    0, 3454, 3455, 3455, 3455, 3455,    0,    0, 3455,
4036      3455, 3456, 3456, 3456,    0,    0,    0, 3456, 3457, 3457,
4037      3457, 3457,    0,    0, 3457, 3457, 3458, 3458, 3458, 3458,
4038         0,    0, 3458, 3458, 3459, 3459, 3459,    0,    0,    0,
4039      3459, 3460, 3460, 3460, 3460,    0,    0, 3460, 3460, 3461,
4040      3461, 3461,    0,    0,    0, 3461, 3462, 3462, 3462, 3462,
4041
4042         0,    0, 3462, 3462, 3463, 3463, 3463,    0,    0,    0,
4043      3463, 3464, 3464, 3464, 3464,    0,    0, 3464, 3464, 3465,
4044      3465, 3465, 3465,    0,    0, 3465, 3465, 3466, 3466, 3466,
4045         0,    0,    0, 3466, 3467, 3467, 3467, 3467,    0,    0,
4046      3467, 3467, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
4047      3468, 3469, 3469, 3469, 3469, 3469, 3469, 3469, 3469, 3469,
4048      3470, 3470, 3470,    0,    0,    0, 3470, 3471, 3471, 3471,
4049      3471,    0,    0, 3471, 3471, 3472, 3472, 3472, 3472,    0,
4050         0, 3472, 3472, 3473, 3473, 3473,    0,    0,    0, 3473,
4051      3474, 3474, 3474, 3474,    0,    0, 3474, 3474, 3475, 3475,
4052
4053      3475,    0,    0,    0, 3475, 3476, 3476, 3476, 3476,    0,
4054         0, 3476, 3476, 3477, 3477, 3477,    0,    0,    0, 3477,
4055      3478, 3478, 3478, 3478,    0,    0, 3478, 3478, 3479, 3479,
4056      3479,    0,    0,    0, 3479, 3480, 3480, 3480,    0,    0,
4057         0, 3480, 3481, 3481, 3481, 3481,    0,    0, 3481, 3481,
4058      3482, 3482, 3482,    0,    0,    0, 3482, 3483, 3483, 3483,
4059      3483,    0,    0, 3483, 3483, 3484, 3484, 3484, 3484,    0,
4060         0, 3484, 3484, 3485, 3485, 3485,    0,    0,    0, 3485,
4061      3486, 3486, 3486, 3486,    0,    0, 3486, 3486, 3487, 3487,
4062      3487,    0,    0,    0, 3487, 3488, 3488, 3488, 3488,    0,
4063
4064         0, 3488, 3488, 3489, 3489, 3489, 3489,    0,    0, 3489,
4065      3489, 3490, 3490, 3490,    0,    0,    0, 3490, 3491, 3491,
4066      3491, 3491,    0,    0, 3491, 3491, 3492, 3492, 3492, 3492,
4067         0, 3492,    0, 3492, 3493, 3493, 3493, 3493,    0,    0,
4068      3493, 3493, 3494, 3494, 3494,    0,    0,    0, 3494, 3495,
4069      3495, 3495, 3495,    0,    0, 3495, 3495, 3496, 3496, 3496,
4070         0,    0,    0, 3496, 3497, 3497, 3497, 3497,    0,    0,
4071      3497, 3497, 3498, 3498, 3498,    0,    0,    0, 3498, 3499,
4072      3499, 3499, 3499,    0,    0, 3499, 3499, 3500, 3500, 3500,
4073         0,    0,    0, 3500, 3501, 3501, 3501, 3501,    0,    0,
4074
4075      3501, 3501, 3502, 3502, 3502,    0,    0,    0, 3502, 3503,
4076      3503, 3503, 3503,    0,    0, 3503, 3503, 3504, 3504, 3504,
4077         0,    0,    0, 3504, 3505, 3505, 3505, 3505,    0,    0,
4078      3505, 3505, 3506, 3506, 3506,    0,    0,    0, 3506, 3507,
4079      3507, 3507, 3507,    0,    0, 3507, 3507, 3508, 3508, 3508,
4080      3508,    0,    0, 3508, 3508, 3509, 3509, 3509,    0,    0,
4081         0, 3509, 3510, 3510, 3510, 3510,    0,    0, 3510, 3510,
4082      3511, 3511, 3511,    0,    0,    0, 3511, 3512, 3512, 3512,
4083      3512,    0,    0, 3512, 3512, 3513, 3513, 3513, 3513,    0,
4084      3513,    0, 3513, 3514, 3514, 3514, 3514,    0,    0, 3514,
4085
4086      3514, 3515, 3515, 3515, 3515,    0,    0, 3515, 3515, 3516,
4087      3516, 3516, 3516,    0, 3516,    0, 3516, 3517, 3517, 3517,
4088      3517,    0,    0, 3517, 3517, 3518, 3518, 3518, 3518, 3518,
4089      3518, 3518, 3518, 3518, 3519, 3519, 3519, 3519, 3519, 3519,
4090      3519, 3519, 3519, 3520, 3520, 3520,    0,    0,    0, 3520,
4091      3521, 3521, 3521, 3521,    0,    0, 3521, 3521, 3522, 3522,
4092      3522, 3522,    0,    0, 3522, 3522, 3523, 3523, 3523,    0,
4093         0,    0, 3523, 3524, 3524, 3524, 3524,    0,    0, 3524,
4094      3524, 3525, 3525, 3525,    0,    0,    0, 3525, 3526, 3526,
4095      3526, 3526,    0,    0, 3526, 3526, 3527, 3527, 3527,    0,
4096
4097         0,    0, 3527, 3528, 3528, 3528, 3528,    0,    0, 3528,
4098      3528, 3529, 3529, 3529,    0,    0,    0, 3529, 3530, 3530,
4099      3530,    0,    0,    0, 3530, 3531, 3531, 3531, 3531,    0,
4100         0, 3531, 3531, 3532, 3532, 3532,    0,    0,    0, 3532,
4101      3533, 3533, 3533, 3533,    0,    0, 3533, 3533, 3534, 3534,
4102      3534, 3534,    0,    0, 3534, 3534, 3535, 3535, 3535, 3535,
4103         0, 3535,    0, 3535, 3536, 3536, 3536, 3536,    0,    0,
4104      3536, 3536, 3537, 3537, 3537,    0,    0,    0, 3537, 3538,
4105      3538, 3538, 3538,    0,    0, 3538, 3538, 3539, 3539, 3539,
4106      3539,    0,    0, 3539, 3539, 3540, 3540, 3540,    0,    0,
4107
4108         0, 3540, 3541, 3541, 3541, 3541,    0,    0, 3541, 3541,
4109      3542, 3542, 3542, 3542,    0, 3542,    0, 3542, 3543, 3543,
4110      3543, 3543,    0,    0, 3543, 3543, 3544, 3544, 3544,    0,
4111         0,    0, 3544, 3545, 3545, 3545, 3545,    0,    0, 3545,
4112      3545, 3546, 3546, 3546,    0,    0,    0, 3546, 3547, 3547,
4113      3547, 3547,    0,    0, 3547, 3547, 3548, 3548, 3548,    0,
4114         0,    0, 3548, 3549, 3549, 3549, 3549,    0,    0, 3549,
4115      3549, 3550, 3550, 3550,    0,    0,    0, 3550, 3551, 3551,
4116      3551, 3551,    0,    0, 3551, 3551, 3552, 3552, 3552,    0,
4117         0,    0, 3552, 3553, 3553, 3553, 3553,    0,    0, 3553,
4118
4119      3553, 3554, 3554, 3554, 3554,    0, 3554,    0, 3554, 3555,
4120      3555, 3555, 3555,    0,    0, 3555, 3555, 3556, 3556, 3556,
4121         0,    0,    0, 3556, 3557, 3557, 3557, 3557,    0,    0,
4122      3557, 3557, 3558, 3558, 3558, 3558,    0,    0, 3558, 3558,
4123      3559, 3559, 3559, 3559,    0, 3559,    0, 3559, 3560, 3560,
4124      3560, 3560,    0,    0, 3560, 3560, 3561, 3561, 3561,    0,
4125         0,    0, 3561, 3562, 3562, 3562, 3562,    0,    0, 3562,
4126      3562, 3563, 3563, 3563, 3563,    0,    0, 3563, 3563, 3564,
4127      3564, 3564, 3564,    0,    0, 3564, 3564, 3565, 3565, 3565,
4128      3565,    0,    0, 3565, 3565, 3566, 3566, 3566, 3566, 3566,
4129
4130      3566, 3566, 3566, 3566, 3567, 3567, 3567, 3567, 3567, 3567,
4131      3567, 3567, 3567, 3568, 3568, 3568, 3568,    0, 3568,    0,
4132      3568, 3569, 3569, 3569, 3569,    0,    0, 3569, 3569, 3570,
4133      3570, 3570, 3570,    0,    0, 3570, 3570, 3571, 3571, 3571,
4134         0,    0,    0, 3571, 3572, 3572, 3572, 3572,    0,    0,
4135      3572, 3572, 3573, 3573, 3573,    0,    0,    0, 3573, 3574,
4136      3574, 3574, 3574,    0,    0, 3574, 3574, 3575, 3575, 3575,
4137      3575,    0, 3575,    0, 3575, 3576, 3576, 3576, 3576,    0,
4138         0, 3576, 3576, 3577, 3577, 3577, 3577,    0, 3577,    0,
4139      3577, 3578, 3578, 3578, 3578,    0, 3578,    0, 3578, 3579,
4140
4141      3579, 3579, 3579,    0,    0, 3579, 3579, 3580, 3580, 3580,
4142      3580,    0, 3580,    0, 3580, 3581, 3581, 3581, 3581,    0,
4143         0, 3581, 3581, 3582, 3582, 3582, 3582,    0,    0, 3582,
4144      3582, 3583, 3583, 3583, 3583,    0,    0, 3583, 3583, 3584,
4145      3584, 3584,    0,    0,    0, 3584, 3585, 3585, 3585, 3585,
4146         0,    0, 3585, 3585, 3586, 3586, 3586,    0,    0,    0,
4147      3586, 3587, 3587, 3587, 3587,    0,    0, 3587, 3587, 3588,
4148      3588, 3588, 3588,    0, 3588,    0, 3588, 3589, 3589, 3589,
4149      3589,    0,    0, 3589, 3589, 3590, 3590, 3590,    0,    0,
4150         0, 3590, 3591, 3591, 3591,    0,    0,    0, 3591, 3592,
4151
4152      3592, 3592, 3592,    0,    0, 3592, 3592, 3593, 3593, 3593,
4153         0,    0,    0, 3593, 3594, 3594, 3594, 3594,    0,    0,
4154      3594, 3594, 3595, 3595, 3595,    0,    0,    0, 3595, 3596,
4155      3596, 3596,    0,    0,    0, 3596, 3597, 3597, 3597, 3597,
4156         0,    0, 3597, 3597, 3598, 3598, 3598,    0,    0,    0,
4157      3598, 3599, 3599, 3599, 3599,    0,    0, 3599, 3599, 3600,
4158      3600, 3600,    0,    0,    0, 3600, 3601, 3601, 3601, 3601,
4159         0,    0, 3601, 3601, 3602, 3602, 3602, 3602,    0,    0,
4160      3602, 3602, 3603, 3603, 3603, 3603,    0,    0, 3603, 3603,
4161      3604, 3604, 3604,    0,    0,    0, 3604, 3605, 3605, 3605,
4162
4163      3605,    0,    0, 3605, 3605, 3606, 3606, 3606, 3606,    0,
4164         0, 3606, 3606, 3607, 3607, 3607, 3607,    0,    0, 3607,
4165      3607, 3608, 3608, 3608, 3608, 3608, 3608, 3608, 3608, 3608,
4166      3609, 3609, 3609, 3609, 3609, 3609, 3609, 3609, 3609, 3610,
4167      3610, 3610, 3610,    0,    0, 3610, 3610, 3611, 3611, 3611,
4168      3611,    0,    0, 3611, 3611, 3612, 3612, 3612,    0,    0,
4169         0, 3612, 3613, 3613, 3613,    0,    0,    0, 3613, 3614,
4170      3614, 3614, 3614,    0,    0, 3614, 3614, 3615, 3615, 3615,
4171      3615,    0,    0, 3615, 3615, 3616, 3616, 3616, 3616,    0,
4172         0, 3616, 3616, 3617, 3617, 3617, 3617,    0,    0, 3617,
4173
4174      3617, 3618, 3618, 3618, 3618,    0,    0, 3618, 3618, 3619,
4175      3619, 3619,    0,    0,    0, 3619, 3620, 3620, 3620, 3620,
4176         0,    0, 3620, 3620, 3621, 3621, 3621,    0,    0,    0,
4177      3621, 3622, 3622, 3622, 3622,    0,    0, 3622, 3622, 3623,
4178      3623, 3623, 3623,    0,    0, 3623, 3623, 3624, 3624, 3624,
4179         0,    0,    0, 3624, 3625, 3625, 3625,    0,    0,    0,
4180      3625, 3626, 3626, 3626, 3626,    0,    0, 3626, 3626, 3627,
4181      3627, 3627,    0,    0,    0, 3627, 3628, 3628, 3628, 3628,
4182         0,    0, 3628, 3628, 3629, 3629, 3629,    0,    0,    0,
4183      3629, 3630, 3630, 3630,    0,    0,    0, 3630, 3631, 3631,
4184
4185      3631,    0,    0,    0, 3631, 3632, 3632, 3632, 3632,    0,
4186         0, 3632, 3632, 3633, 3633, 3633,    0,    0,    0, 3633,
4187      3634, 3634, 3634, 3634,    0,    0, 3634, 3634, 3635, 3635,
4188      3635, 3635,    0,    0, 3635, 3635, 3636, 3636, 3636, 3636,
4189         0,    0, 3636, 3636, 3637, 3637, 3637, 3637,    0, 3637,
4190         0, 3637, 3638, 3638, 3638, 3638,    0,    0, 3638, 3638,
4191      3639, 3639, 3639, 3639,    0,    0, 3639, 3639, 3640, 3640,
4192      3640, 3640,    0,    0, 3640, 3640, 3641, 3641, 3641, 3641,
4193      3641, 3641, 3641, 3641, 3641, 3642, 3642, 3642, 3642, 3642,
4194      3642, 3642, 3642, 3642, 3643, 3643, 3643, 3643,    0,    0,
4195
4196      3643, 3643, 3644, 3644, 3644, 3644,    0,    0, 3644, 3644,
4197      3645, 3645, 3645,    0,    0,    0, 3645, 3646, 3646, 3646,
4198      3646,    0, 3646,    0, 3646, 3647, 3647, 3647, 3647,    0,
4199         0, 3647, 3647, 3648, 3648, 3648, 3648,    0,    0, 3648,
4200      3648, 3649, 3649, 3649, 3649,    0,    0, 3649, 3649, 3650,
4201      3650, 3650, 3650,    0,    0, 3650, 3650, 3651, 3651, 3651,
4202         0,    0,    0, 3651, 3652, 3652, 3652, 3652,    0,    0,
4203      3652, 3652, 3653, 3653, 3653,    0,    0,    0, 3653, 3654,
4204      3654, 3654, 3654,    0,    0, 3654, 3654, 3655, 3655, 3655,
4205      3655,    0,    0, 3655, 3655, 3656, 3656, 3656,    0,    0,
4206
4207         0, 3656, 3657, 3657, 3657,    0,    0,    0, 3657, 3658,
4208      3658, 3658, 3658,    0, 3658,    0, 3658, 3659, 3659, 3659,
4209      3659,    0,    0, 3659, 3659, 3660, 3660, 3660, 3660,    0,
4210      3660,    0, 3660, 3661, 3661, 3661,    0,    0,    0, 3661,
4211      3662, 3662, 3662,    0,    0,    0, 3662, 3663, 3663, 3663,
4212      3663,    0,    0, 3663, 3663, 3664, 3664, 3664, 3664,    0,
4213      3664,    0, 3664, 3665, 3665, 3665, 3665,    0,    0, 3665,
4214      3665, 3666, 3666, 3666, 3666,    0,    0, 3666, 3666, 3667,
4215      3667, 3667, 3667,    0,    0, 3667, 3667, 3668, 3668, 3668,
4216      3668,    0, 3668,    0, 3668, 3669, 3669, 3669, 3669,    0,
4217
4218         0, 3669, 3669, 3670, 3670, 3670, 3670,    0,    0, 3670,
4219      3670, 3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671,
4220      3672, 3672, 3672, 3672, 3672, 3672, 3672, 3672, 3672, 3673,
4221      3673, 3673, 3673,    0,    0, 3673, 3673, 3674, 3674, 3674,
4222         0,    0,    0, 3674, 3675, 3675, 3675,    0,    0,    0,
4223      3675, 3676, 3676, 3676, 3676,    0,    0, 3676, 3676, 3677,
4224      3677, 3677, 3677,    0,    0, 3677, 3677, 3678, 3678, 3678,
4225      3678,    0,    0, 3678, 3678, 3679, 3679, 3679,    0,    0,
4226         0, 3679, 3680, 3680, 3680, 3680,    0,    0, 3680, 3680,
4227      3681, 3681, 3681,    0,    0,    0, 3681, 3682, 3682, 3682,
4228
4229      3682, 3682, 3682, 3682, 3682, 3682, 3683, 3683, 3683, 3683,
4230      3683, 3683, 3683, 3683, 3683, 3684, 3684, 3684, 3684, 3684,
4231      3684, 3684, 3684, 3684, 3685, 3685, 3685, 3685, 3685, 3685,
4232      3685, 3685, 3685, 3686, 3686, 3686, 3686, 3686, 3686, 3686,
4233      3686, 3686, 3687, 3687, 3687, 3687, 3687, 3687, 3687, 3687,
4234      3687, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
4235      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
4236      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
4237      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
4238      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
4239
4240      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
4241      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
4242      3217, 3217, 3217, 3217, 3217, 3217
4243     } ;
4244
4245 /* Table of booleans, true if rule could match eol. */
4246 static yyconst flex_int32_t yy_rule_can_match_eol[548] =
4247     {   0,
4248 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
4249     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4250     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4251     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4252     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
4253     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4254     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
4255     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
4256     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4257     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4258     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4259     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
4260     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4261     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4262     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
4263     0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
4264     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
4265     1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 
4266     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
4267     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4268     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4269     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
4270     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
4271     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4272     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4273     1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 
4274     0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 
4275     0, 0, 1, 0, 0, 0, 1, 0,     };
4276
4277 static yy_state_type yy_last_accepting_state;
4278 static char *yy_last_accepting_cpos;
4279
4280 extern int surf_parse__flex_debug;
4281 int surf_parse__flex_debug = 0;
4282
4283 /* The intent behind this definition is that it'll catch
4284  * any uses of REJECT which flex missed.
4285  */
4286 #define REJECT reject_used_but_not_detected
4287 #define yymore() yymore_used_but_not_detected
4288 #define YY_MORE_ADJ 0
4289 #define YY_RESTORE_YY_MORE_OFFSET
4290 char *surf_parse_text;
4291 /* Validating XML processor for src/surf/simgrid.dtd.
4292  *
4293  * This program was generated with the FleXML XML processor generator.
4294  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
4295  * FleXML is Copyright (C) 2003-2011 Martin Quinson.  All rights reserved.
4296  * (Id: flexml.pl,v 1.67 2011/11/01 20:49:21 mquinson Exp).
4297  * 
4298  * There are two, intertwined parts to this program, part A and part B.
4299  *
4300  * Part A
4301  * ------
4302  * 
4303  * Some parts, here collectively called "Part A", are found in the 
4304  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
4305  * and Copyright (C) 2003-2011 Martin Quinson. All rights reserved.
4306  *
4307  * You can redistribute, use, perform, display and/or modify "Part A"
4308  * provided the following two conditions hold:
4309  *
4310  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
4311  *    FleXML; without even the implied warranty of MERCHANTABILITY or
4312  *    FITNESS FOR A PARTICULAR PURPOSE.
4313  *
4314  * 2. The program distribution conditions do not in any way affect the
4315  *    distribution conditions of the FleXML system used to generate this
4316  *    file or any version of FleXML derived from that system.
4317  *
4318  * Notice that these are explicit rights granted to you for files
4319  * generated by the FleXML system.  For your rights in connection with
4320  * the FleXML system itself please consult the GNU General Public License.
4321  * 
4322  * Part B
4323  * ------
4324  * 
4325  * The other parts, here collectively called "Part B", and which came 
4326  * from the DTD used by FleXML to generate this program, can be 
4327  * distributed (or not, as the case may be) under the terms of whoever
4328  * wrote them, provided these terms respect and obey the two conditions 
4329  * above under the heading "Part A".
4330  *
4331  * The author of and contributors to FleXML specifically disclaim
4332  * any copyright interest in "Part B", unless "Part B" was written 
4333  * by the author of or contributors to FleXML.
4334  * 
4335  */
4336
4337 /* Version strings. */
4338 const char rcs_surfxml_flexml_skeleton[] =
4339  "$" "Id: skel,v 1.40 2007/10/11 09:57:24 mquinson Exp $";
4340 const char rcs_surfxml_flexml[] =
4341  "$" "Id: flexml.pl,v 1.67 2011/11/01 20:49:21 mquinson Exp $";
4342
4343 /* ANSI headers. */
4344 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
4345 #include <stdio.h>
4346 #include <string.h>
4347 #include <assert.h>
4348 #include <stdarg.h>
4349 #include <ctype.h>
4350      
4351 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
4352 # ifndef __STRICT_ANSI__
4353 #  include <io.h>
4354 #  include <process.h>
4355 # endif
4356 #else
4357 # include <unistd.h>
4358 #endif
4359      
4360 #ifndef FLEXML_INDEXSTACKSIZE
4361 #define FLEXML_INDEXSTACKSIZE 1000
4362 #endif
4363
4364 /* Generated definitions. */
4365 #define FLEXML_yylineno
4366 #ifndef FLEXML_BUFFERSTACKSIZE
4367 #define FLEXML_BUFFERSTACKSIZE 1000000
4368 #endif
4369 #define FLEXML_NEED_BUFFERLIT
4370
4371 /* XML processor api. */
4372 /* FleXML-provided data. */
4373 int surfxml_pcdata_ix;
4374 extern char *surfxml_bufferstack;
4375 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
4376 AT_surfxml_mount_name AX_surfxml_mount_name;
4377 #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
4378 short int surfxml_mount_name_isset;
4379 AT_surfxml_random_generator AX_surfxml_random_generator;
4380 #define A_surfxml_random_generator AX_surfxml_random_generator
4381 short int surfxml_random_generator_isset;
4382 AT_surfxml_ASroute_gw_dst AX_surfxml_ASroute_gw_dst;
4383 #define A_surfxml_ASroute_gw_dst (surfxml_bufferstack + AX_surfxml_ASroute_gw_dst)
4384 short int surfxml_ASroute_gw_dst_isset;
4385 AT_surfxml_trace_connect_element AX_surfxml_trace_connect_element;
4386 #define A_surfxml_trace_connect_element (surfxml_bufferstack + AX_surfxml_trace_connect_element)
4387 short int surfxml_trace_connect_element_isset;
4388 AT_surfxml_prop_id AX_surfxml_prop_id;
4389 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
4390 short int surfxml_prop_id_isset;
4391 AT_surfxml_host_link_up AX_surfxml_host_link_up;
4392 #define A_surfxml_host_link_up (surfxml_bufferstack + AX_surfxml_host_link_up)
4393 short int surfxml_host_link_up_isset;
4394 AT_surfxml_host_id AX_surfxml_host_id;
4395 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
4396 short int surfxml_host_id_isset;
4397 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
4398 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
4399 short int surfxml_ASroute_symmetrical_isset;
4400 AT_surfxml_peer_lat AX_surfxml_peer_lat;
4401 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
4402 short int surfxml_peer_lat_isset;
4403 AT_surfxml_process_on_failure AX_surfxml_process_on_failure;
4404 #define A_surfxml_process_on_failure AX_surfxml_process_on_failure
4405 short int surfxml_process_on_failure_isset;
4406 AT_surfxml_link_latency_file AX_surfxml_link_latency_file;
4407 #define A_surfxml_link_latency_file (surfxml_bufferstack + AX_surfxml_link_latency_file)
4408 short int surfxml_link_latency_file_isset;
4409 AT_surfxml_peer_availability_file AX_surfxml_peer_availability_file;
4410 #define A_surfxml_peer_availability_file (surfxml_bufferstack + AX_surfxml_peer_availability_file)
4411 short int surfxml_peer_availability_file_isset;
4412 AT_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction;
4413 #define A_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction
4414 short int surfxml_link_ctn_direction_isset;
4415 AT_surfxml_host_state AX_surfxml_host_state;
4416 #define A_surfxml_host_state AX_surfxml_host_state
4417 short int surfxml_host_state_isset;
4418 AT_surfxml_AS_id AX_surfxml_AS_id;
4419 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
4420 short int surfxml_AS_id_isset;
4421 AT_surfxml_host_power AX_surfxml_host_power;
4422 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
4423 short int surfxml_host_power_isset;
4424 AT_surfxml_cabinet_suffix AX_surfxml_cabinet_suffix;
4425 #define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix)
4426 short int surfxml_cabinet_suffix_isset;
4427 AT_surfxml_router_id AX_surfxml_router_id;
4428 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
4429 short int surfxml_router_id_isset;
4430 AT_surfxml_storage_type_id AX_surfxml_storage_type_id;
4431 #define A_surfxml_storage_type_id (surfxml_bufferstack + AX_surfxml_storage_type_id)
4432 short int surfxml_storage_type_id_isset;
4433 AT_surfxml_process_start_time AX_surfxml_process_start_time;
4434 #define A_surfxml_process_start_time (surfxml_bufferstack + AX_surfxml_process_start_time)
4435 short int surfxml_process_start_time_isset;
4436 AT_surfxml_cabinet_bw AX_surfxml_cabinet_bw;
4437 #define A_surfxml_cabinet_bw (surfxml_bufferstack + AX_surfxml_cabinet_bw)
4438 short int surfxml_cabinet_bw_isset;
4439 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
4440 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
4441 short int surfxml_cluster_suffix_isset;
4442 AT_surfxml_bypassASroute_dst AX_surfxml_bypassASroute_dst;
4443 #define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
4444 short int surfxml_bypassASroute_dst_isset;
4445 AT_surfxml_host_link_id AX_surfxml_host_link_id;
4446 #define A_surfxml_host_link_id (surfxml_bufferstack + AX_surfxml_host_link_id)
4447 short int surfxml_host_link_id_isset;
4448 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
4449 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
4450 short int surfxml_ASroute_src_isset;
4451 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
4452 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
4453 short int surfxml_cluster_prefix_isset;
4454 AT_surfxml_cabinet_prefix AX_surfxml_cabinet_prefix;
4455 #define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix)
4456 short int surfxml_cabinet_prefix_isset;
4457 AT_surfxml_trace_file AX_surfxml_trace_file;
4458 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
4459 short int surfxml_trace_file_isset;
4460 AT_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy;
4461 #define A_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy
4462 short int surfxml_link_sharing_policy_isset;
4463 AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
4464 #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
4465 short int surfxml_storage_typeId_isset;
4466 AT_surfxml_random_min AX_surfxml_random_min;
4467 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
4468 short int surfxml_random_min_isset;
4469 AT_surfxml_link_ctn_id AX_surfxml_link_ctn_id;
4470 #define A_surfxml_link_ctn_id (surfxml_bufferstack + AX_surfxml_link_ctn_id)
4471 short int surfxml_link_ctn_id_isset;
4472 AT_surfxml_peer_bw_out AX_surfxml_peer_bw_out;
4473 #define A_surfxml_peer_bw_out (surfxml_bufferstack + AX_surfxml_peer_bw_out)
4474 short int surfxml_peer_bw_out_isset;
4475 AT_surfxml_cluster_availability_file AX_surfxml_cluster_availability_file;
4476 #define A_surfxml_cluster_availability_file (surfxml_bufferstack + AX_surfxml_cluster_availability_file)
4477 short int surfxml_cluster_availability_file_isset;
4478 AT_surfxml_storage_content AX_surfxml_storage_content;
4479 #define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
4480 short int surfxml_storage_content_isset;
4481 AT_surfxml_process_kill_time AX_surfxml_process_kill_time;
4482 #define A_surfxml_process_kill_time (surfxml_bufferstack + AX_surfxml_process_kill_time)
4483 short int surfxml_process_kill_time_isset;
4484 AT_surfxml_cluster_bb_bw AX_surfxml_cluster_bb_bw;
4485 #define A_surfxml_cluster_bb_bw (surfxml_bufferstack + AX_surfxml_cluster_bb_bw)
4486 short int surfxml_cluster_bb_bw_isset;
4487 AT_surfxml_argument_value AX_surfxml_argument_value;
4488 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
4489 short int surfxml_argument_value_isset;
4490 AT_surfxml_link_state AX_surfxml_link_state;
4491 #define A_surfxml_link_state AX_surfxml_link_state
4492 short int surfxml_link_state_isset;
4493 AT_surfxml_ASroute_gw_src AX_surfxml_ASroute_gw_src;
4494 #define A_surfxml_ASroute_gw_src (surfxml_bufferstack + AX_surfxml_ASroute_gw_src)
4495 short int surfxml_ASroute_gw_src_isset;
4496 AT_surfxml_AS_routing AX_surfxml_AS_routing;
4497 #define A_surfxml_AS_routing AX_surfxml_AS_routing
4498 short int surfxml_AS_routing_isset;
4499 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
4500 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
4501 short int surfxml_link_bandwidth_isset;
4502 AT_surfxml_cluster_id AX_surfxml_cluster_id;
4503 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
4504 short int surfxml_cluster_id_isset;
4505 AT_surfxml_peer_bw_in AX_surfxml_peer_bw_in;
4506 #define A_surfxml_peer_bw_in (surfxml_bufferstack + AX_surfxml_peer_bw_in)
4507 short int surfxml_peer_bw_in_isset;
4508 AT_surfxml_random_mean AX_surfxml_random_mean;
4509 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
4510 short int surfxml_random_mean_isset;
4511 AT_surfxml_storage_type_size AX_surfxml_storage_type_size;
4512 #define A_surfxml_storage_type_size (surfxml_bufferstack + AX_surfxml_storage_type_size)
4513 short int surfxml_storage_type_size_isset;
4514 AT_surfxml_cluster_bb_lat AX_surfxml_cluster_bb_lat;
4515 #define A_surfxml_cluster_bb_lat (surfxml_bufferstack + AX_surfxml_cluster_bb_lat)
4516 short int surfxml_cluster_bb_lat_isset;
4517 AT_surfxml_link_latency AX_surfxml_link_latency;
4518 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
4519 short int surfxml_link_latency_isset;
4520 AT_surfxml_backbone_bandwidth AX_surfxml_backbone_bandwidth;
4521 #define A_surfxml_backbone_bandwidth (surfxml_bufferstack + AX_surfxml_backbone_bandwidth)
4522 short int surfxml_backbone_bandwidth_isset;
4523 AT_surfxml_backbone_id AX_surfxml_backbone_id;
4524 #define A_surfxml_backbone_id (surfxml_bufferstack + AX_surfxml_backbone_id)
4525 short int surfxml_backbone_id_isset;
4526 AT_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind;
4527 #define A_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind
4528 short int surfxml_trace_connect_kind_isset;
4529 AT_surfxml_cabinet_lat AX_surfxml_cabinet_lat;
4530 #define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat)
4531 short int surfxml_cabinet_lat_isset;
4532 AT_surfxml_random_seed AX_surfxml_random_seed;
4533 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
4534 short int surfxml_random_seed_isset;
4535 AT_surfxml_cluster_state_file AX_surfxml_cluster_state_file;
4536 #define A_surfxml_cluster_state_file (surfxml_bufferstack + AX_surfxml_cluster_state_file)
4537 short int surfxml_cluster_state_file_isset;
4538 AT_surfxml_link_bandwidth_file AX_surfxml_link_bandwidth_file;
4539 #define A_surfxml_link_bandwidth_file (surfxml_bufferstack + AX_surfxml_link_bandwidth_file)
4540 short int surfxml_link_bandwidth_file_isset;
4541 AT_surfxml_storage_type_content AX_surfxml_storage_type_content;
4542 #define A_surfxml_storage_type_content (surfxml_bufferstack + AX_surfxml_storage_type_content)
4543 short int surfxml_storage_type_content_isset;
4544 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
4545 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
4546 short int surfxml_route_symmetrical_isset;
4547 AT_surfxml_random_id AX_surfxml_random_id;
4548 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
4549 short int surfxml_random_id_isset;
4550 AT_surfxml_mstorage_name AX_surfxml_mstorage_name;
4551 #define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name)
4552 short int surfxml_mstorage_name_isset;
4553 AT_surfxml_random_max AX_surfxml_random_max;
4554 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
4555 short int surfxml_random_max_isset;
4556 AT_surfxml_link_id AX_surfxml_link_id;
4557 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
4558 short int surfxml_link_id_isset;
4559 AT_surfxml_process_host AX_surfxml_process_host;
4560 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
4561 short int surfxml_process_host_isset;
4562 AT_surfxml_cabinet_id AX_surfxml_cabinet_id;
4563 #define A_surfxml_cabinet_id (surfxml_bufferstack + AX_surfxml_cabinet_id)
4564 short int surfxml_cabinet_id_isset;
4565 AT_surfxml_host_availability_file AX_surfxml_host_availability_file;
4566 #define A_surfxml_host_availability_file (surfxml_bufferstack + AX_surfxml_host_availability_file)
4567 short int surfxml_host_availability_file_isset;
4568 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
4569 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
4570 short int surfxml_cluster_lat_isset;
4571 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
4572 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
4573 short int surfxml_router_coordinates_isset;
4574 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
4575 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
4576 short int surfxml_trace_periodicity_isset;
4577 AT_surfxml_cluster_bb_sharing_policy AX_surfxml_cluster_bb_sharing_policy;
4578 #define A_surfxml_cluster_bb_sharing_policy AX_surfxml_cluster_bb_sharing_policy
4579 short int surfxml_cluster_bb_sharing_policy_isset;
4580 AT_surfxml_peer_state_file AX_surfxml_peer_state_file;
4581 #define A_surfxml_peer_state_file (surfxml_bufferstack + AX_surfxml_peer_state_file)
4582 short int surfxml_peer_state_file_isset;
4583 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
4584 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
4585 short int surfxml_peer_coordinates_isset;
4586 AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src;
4587 #define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
4588 short int surfxml_bypassASroute_src_isset;
4589 AT_surfxml_prop_value AX_surfxml_prop_value;
4590 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
4591 short int surfxml_prop_value_isset;
4592 AT_surfxml_mstorage_typeId AX_surfxml_mstorage_typeId;
4593 #define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId)
4594 short int surfxml_mstorage_typeId_isset;
4595 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
4596 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
4597 short int surfxml_ASroute_dst_isset;
4598 AT_surfxml_link_state_file AX_surfxml_link_state_file;
4599 #define A_surfxml_link_state_file (surfxml_bufferstack + AX_surfxml_link_state_file)
4600 short int surfxml_link_state_file_isset;
4601 AT_surfxml_random_radical AX_surfxml_random_radical;
4602 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
4603 short int surfxml_random_radical_isset;
4604 AT_surfxml_bypassASroute_gw_src AX_surfxml_bypassASroute_gw_src;
4605 #define A_surfxml_bypassASroute_gw_src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw_src)
4606 short int surfxml_bypassASroute_gw_src_isset;
4607 AT_surfxml_trace_connect_trace AX_surfxml_trace_connect_trace;
4608 #define A_surfxml_trace_connect_trace (surfxml_bufferstack + AX_surfxml_trace_connect_trace)
4609 short int surfxml_trace_connect_trace_isset;
4610 AT_surfxml_mount_id AX_surfxml_mount_id;
4611 #define A_surfxml_mount_id (surfxml_bufferstack + AX_surfxml_mount_id)
4612 short int surfxml_mount_id_isset;
4613 AT_surfxml_cluster_power AX_surfxml_cluster_power;
4614 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
4615 short int surfxml_cluster_power_isset;
4616 AT_surfxml_process_function AX_surfxml_process_function;
4617 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
4618 short int surfxml_process_function_isset;
4619 AT_surfxml_peer_id AX_surfxml_peer_id;
4620 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
4621 short int surfxml_peer_id_isset;
4622 AT_surfxml_cluster_router_id AX_surfxml_cluster_router_id;
4623 #define A_surfxml_cluster_router_id (surfxml_bufferstack + AX_surfxml_cluster_router_id)
4624 short int surfxml_cluster_router_id_isset;
4625 AT_surfxml_cabinet_radical AX_surfxml_cabinet_radical;
4626 #define A_surfxml_cabinet_radical (surfxml_bufferstack + AX_surfxml_cabinet_radical)
4627 short int surfxml_cabinet_radical_isset;
4628 AT_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy;
4629 #define A_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy
4630 short int surfxml_cluster_sharing_policy_isset;
4631 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
4632 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
4633 short int surfxml_bypassRoute_dst_isset;
4634 AT_surfxml_cabinet_power AX_surfxml_cabinet_power;
4635 #define A_surfxml_cabinet_power (surfxml_bufferstack + AX_surfxml_cabinet_power)
4636 short int surfxml_cabinet_power_isset;
4637 AT_surfxml_host_core AX_surfxml_host_core;
4638 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
4639 short int surfxml_host_core_isset;
4640 AT_surfxml_storage_type_model AX_surfxml_storage_type_model;
4641 #define A_surfxml_storage_type_model (surfxml_bufferstack + AX_surfxml_storage_type_model)
4642 short int surfxml_storage_type_model_isset;
4643 AT_surfxml_host_availability AX_surfxml_host_availability;
4644 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
4645 short int surfxml_host_availability_isset;
4646 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
4647 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
4648 short int surfxml_bypassRoute_src_isset;
4649 AT_surfxml_backbone_latency AX_surfxml_backbone_latency;
4650 #define A_surfxml_backbone_latency (surfxml_bufferstack + AX_surfxml_backbone_latency)
4651 short int surfxml_backbone_latency_isset;
4652 AT_surfxml_route_src AX_surfxml_route_src;
4653 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
4654 short int surfxml_route_src_isset;
4655 AT_surfxml_storage_id AX_surfxml_storage_id;
4656 #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
4657 short int surfxml_storage_id_isset;
4658 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
4659 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
4660 short int surfxml_host_coordinates_isset;
4661 AT_surfxml_trace_id AX_surfxml_trace_id;
4662 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
4663 short int surfxml_trace_id_isset;
4664 AT_surfxml_peer_power AX_surfxml_peer_power;
4665 #define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power)
4666 short int surfxml_peer_power_isset;
4667 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
4668 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
4669 short int surfxml_cluster_radical_isset;
4670 AT_surfxml_config_id AX_surfxml_config_id;
4671 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
4672 short int surfxml_config_id_isset;
4673 AT_surfxml_bypassASroute_gw_dst AX_surfxml_bypassASroute_gw_dst;
4674 #define A_surfxml_bypassASroute_gw_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw_dst)
4675 short int surfxml_bypassASroute_gw_dst_isset;
4676 AT_surfxml_host_link_down AX_surfxml_host_link_down;
4677 #define A_surfxml_host_link_down (surfxml_bufferstack + AX_surfxml_host_link_down)
4678 short int surfxml_host_link_down_isset;
4679 AT_surfxml_include_file AX_surfxml_include_file;
4680 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
4681 short int surfxml_include_file_isset;
4682 AT_surfxml_random_std_deviation AX_surfxml_random_std_deviation;
4683 #define A_surfxml_random_std_deviation (surfxml_bufferstack + AX_surfxml_random_std_deviation)
4684 short int surfxml_random_std_deviation_isset;
4685 AT_surfxml_cluster_core AX_surfxml_cluster_core;
4686 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
4687 short int surfxml_cluster_core_isset;
4688 AT_surfxml_host_state_file AX_surfxml_host_state_file;
4689 #define A_surfxml_host_state_file (surfxml_bufferstack + AX_surfxml_host_state_file)
4690 short int surfxml_host_state_file_isset;
4691 AT_surfxml_route_dst AX_surfxml_route_dst;
4692 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
4693 short int surfxml_route_dst_isset;
4694 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
4695 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
4696 short int surfxml_cluster_bw_isset;
4697 AT_surfxml_platform_version AX_surfxml_platform_version;
4698 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
4699 short int surfxml_platform_version_isset;
4700
4701 /* XML state. */
4702 #ifdef FLEX_DEBUG
4703 # define ENTER(state)   debug_enter(state,#state)
4704 # define LEAVE          debug_leave()
4705 # define SET(state)     debug_set(state,#state)
4706   static void debug_enter(int, const char*);
4707   static void debug_leave(void);
4708   static void debug_set(int, const char*);
4709 #else
4710 # define ENTER(state)   (yy_push_state(state))
4711 # define LEAVE          (yy_pop_state())
4712 # define SET(state)     BEGIN(state)
4713 #endif
4714
4715 /* Generic actions. */
4716 #define SKIP    /*skip*/
4717 #define SUCCEED        CLEANUP; return 0
4718
4719 #define FAIL    return fail
4720 static int fail(const char*, ...);
4721
4722 enum {flexml_max_err_msg_size = 512};
4723 static char flexml_err_msg[flexml_max_err_msg_size];
4724 const char * surfxml_parse_err_msg()
4725 {
4726     return flexml_err_msg;
4727 }
4728 static void reset_surfxml_parse_err_msg()
4729 {
4730     flexml_err_msg[0] = '\0';
4731 }
4732
4733 /* Cleanup */
4734 static void cleanup(void);
4735 #define CLEANUP  cleanup()
4736
4737 /* Text buffer stack handling. */
4738 char *surfxml_bufferstack = NULL;
4739 static int blimit = FLEXML_BUFFERSTACKSIZE;
4740 static int bnext = 1;
4741
4742 static int *indexstack = NULL;
4743 static int ilimit = FLEXML_INDEXSTACKSIZE;
4744 static int inext = 1;
4745
4746 #define BUFFERSET(P)  (P = bnext)
4747 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
4748 #define BUFFERDONE    (BUFFERPUTC('\0'))
4749
4750 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
4751
4752 /* after this is called, there are at least 2 slots left in the stack */
4753 static int ck_blimit()
4754 {
4755      if (bnext >= blimit) {
4756          blimit += FLEXML_BUFFERSTACKSIZE + 2;
4757          {
4758              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
4759              assert(temp);
4760              surfxml_bufferstack = temp;
4761          }
4762      }
4763      return 0;
4764 }
4765
4766 /* after this is called, there are at least 2 slots left in the stack */
4767 static int ck_ilimit()
4768 {
4769      if (inext >= ilimit) {
4770          ilimit += FLEXML_INDEXSTACKSIZE + 2;
4771          {
4772              int *temp = (int *) realloc(indexstack, ilimit);
4773              assert(temp);
4774              indexstack = temp;
4775          }
4776      }
4777      return 0;
4778 }
4779
4780 #ifdef FLEXML_NEED_BUFFERLIT
4781 static void surfxml_bufferliteral(char c, int* pp, const char* text)
4782 {
4783    BUFFERSET(*pp);
4784    if (c) {
4785       const char *s = strchr(text, c), *e = strrchr(text, c);
4786       assert(s && e && s <= e);
4787       ++s;
4788       while (s < e) {
4789          if (isspace(*s)) {
4790             BUFFERPUTC(' ');
4791             do ++s; while (s < e && isspace(*s));
4792          } else
4793            BUFFERPUTC(*s++);
4794       }
4795    } else {
4796       const char *s = text;
4797       while (*s)
4798         BUFFERPUTC(*s++);
4799    }
4800    BUFFERDONE;
4801 }
4802 #endif
4803
4804 static void pushbuffer(int p)
4805 {
4806     ck_ilimit();
4807     indexstack[inext++] = p;
4808     indexstack[inext++] = bnext;    
4809 }
4810
4811 static int popbuffer(void)
4812 {
4813     assert(inext >= 2);
4814     bnext = indexstack[--inext];
4815     return indexstack[--inext];
4816 }
4817
4818 /* General internal entities are `unput' back onto the input stream... */
4819 #define ENTITYTEXT(T) \
4820   { char *s = (T), *e = s+strlen(s);\
4821     while (--e >= s) { unput(*e); }}
4822
4823 /* Flex standard options. */
4824 #define YY_NO_INPUT 1
4825 /* Flex user-requested options. */
4826 /* XML character classes (currently restricted to ASCII). */
4827 /* "Common syntactic structures." */
4828 /* "Names and Tokens." */
4829 /* Miscellaneous. */
4830 /* Parser states (flex `exclusive start conditions'):
4831  *
4832  * PROLOG       the XML prolog of the document before <?xml...>
4833  * DOCTYPE      the XML prolog of the document after <?xml...>
4834  * EPILOG       after the root element
4835  * INCOMMENT    inside an XML comment <!--....-->
4836  * INPI         inside an XML PI <?...?>
4837  * VALUE1       inside a '...'-delimited literal
4838  * VALUE2       inside a "..."-delimited literal
4839  * CDATA        inside a <![CDATA[...] ]> section.
4840  * ROOT_<tag>   expect root element <tag>
4841  * AL_<tag>     inside the attribute list for <tag>
4842  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
4843  * IMPOSSIBLE   dummy to permit disabling rules; must be last
4844  */
4845
4846 /* State names. */
4847 const char* *surfxml_statenames=NULL;
4848
4849 #define INITIAL 0
4850 #define PROLOG 1
4851 #define DOCTYPE 2
4852 #define EPILOG 3
4853 #define INCOMMENT 4
4854 #define INPI 5
4855 #define VALUE1 6
4856 #define VALUE2 7
4857 #define CDATA 8
4858 #define ROOT_surfxml_platform 9
4859 #define AL_surfxml_platform 10
4860 #define S_surfxml_platform 11
4861 #define S_surfxml_platform_1 12
4862 #define S_surfxml_platform_2 13
4863 #define S_surfxml_platform_3 14
4864 #define S_surfxml_platform_4 15
4865 #define S_surfxml_platform_5 16
4866 #define S_surfxml_platform_6 17
4867 #define S_surfxml_platform_7 18
4868 #define S_surfxml_platform_8 19
4869 #define E_surfxml_platform 20
4870 #define AL_surfxml_include 21
4871 #define S_surfxml_include 22
4872 #define S_surfxml_include_1 23
4873 #define S_surfxml_include_2 24
4874 #define E_surfxml_include 25
4875 #define AL_surfxml_trace 26
4876 #define IN_trace 27
4877 #define AL_surfxml_random 28
4878 #define E_surfxml_random 29
4879 #define AL_surfxml_trace_connect 30
4880 #define E_surfxml_trace_connect 31
4881 #define AL_surfxml_AS 32
4882 #define S_surfxml_AS 33
4883 #define S_surfxml_AS_1 34
4884 #define S_surfxml_AS_2 35
4885 #define S_surfxml_AS_3 36
4886 #define S_surfxml_AS_4 37
4887 #define S_surfxml_AS_5 38
4888 #define S_surfxml_AS_6 39
4889 #define S_surfxml_AS_7 40
4890 #define S_surfxml_AS_8 41
4891 #define S_surfxml_AS_9 42
4892 #define S_surfxml_AS_10 43
4893 #define S_surfxml_AS_11 44
4894 #define S_surfxml_AS_12 45
4895 #define S_surfxml_AS_13 46
4896 #define S_surfxml_AS_14 47
4897 #define S_surfxml_AS_15 48
4898 #define S_surfxml_AS_16 49
4899 #define E_surfxml_AS 50
4900 #define AL_surfxml_storage_type 51
4901 #define S_surfxml_storage_type 52
4902 #define S_surfxml_storage_type_1 53
4903 #define S_surfxml_storage_type_2 54
4904 #define E_surfxml_storage_type 55
4905 #define AL_surfxml_storage 56
4906 #define S_surfxml_storage 57
4907 #define S_surfxml_storage_1 58
4908 #define S_surfxml_storage_2 59
4909 #define E_surfxml_storage 60
4910 #define AL_surfxml_mount 61
4911 #define E_surfxml_mount 62
4912 #define AL_surfxml_mstorage 63
4913 #define E_surfxml_mstorage 64
4914 #define AL_surfxml_host 65
4915 #define S_surfxml_host 66
4916 #define S_surfxml_host_1 67
4917 #define S_surfxml_host_2 68
4918 #define E_surfxml_host 69
4919 #define AL_surfxml_host_link 70
4920 #define E_surfxml_host_link 71
4921 #define AL_surfxml_cluster 72
4922 #define E_surfxml_cluster 73
4923 #define AL_surfxml_cabinet 74
4924 #define E_surfxml_cabinet 75
4925 #define AL_surfxml_peer 76
4926 #define E_surfxml_peer 77
4927 #define AL_surfxml_router 78
4928 #define E_surfxml_router 79
4929 #define AL_surfxml_backbone 80
4930 #define E_surfxml_backbone 81
4931 #define AL_surfxml_link 82
4932 #define S_surfxml_link 83
4933 #define S_surfxml_link_1 84
4934 #define S_surfxml_link_2 85
4935 #define E_surfxml_link 86
4936 #define AL_surfxml_route 87
4937 #define S_surfxml_route 88
4938 #define S_surfxml_route_1 89
4939 #define S_surfxml_route_2 90
4940 #define E_surfxml_route 91
4941 #define AL_surfxml_ASroute 92
4942 #define S_surfxml_ASroute 93
4943 #define S_surfxml_ASroute_1 94
4944 #define S_surfxml_ASroute_2 95
4945 #define E_surfxml_ASroute 96
4946 #define AL_surfxml_link_ctn 97
4947 #define E_surfxml_link_ctn 98
4948 #define AL_surfxml_bypassRoute 99
4949 #define S_surfxml_bypassRoute 100
4950 #define S_surfxml_bypassRoute_1 101
4951 #define S_surfxml_bypassRoute_2 102
4952 #define E_surfxml_bypassRoute 103
4953 #define AL_surfxml_bypassASroute 104
4954 #define S_surfxml_bypassASroute 105
4955 #define S_surfxml_bypassASroute_1 106
4956 #define S_surfxml_bypassASroute_2 107
4957 #define E_surfxml_bypassASroute 108
4958 #define AL_surfxml_process 109
4959 #define S_surfxml_process 110
4960 #define S_surfxml_process_1 111
4961 #define S_surfxml_process_2 112
4962 #define E_surfxml_process 113
4963 #define AL_surfxml_argument 114
4964 #define E_surfxml_argument 115
4965 #define AL_surfxml_config 116
4966 #define S_surfxml_config 117
4967 #define S_surfxml_config_1 118
4968 #define S_surfxml_config_2 119
4969 #define E_surfxml_config 120
4970 #define AL_surfxml_prop 121
4971 #define E_surfxml_prop 122
4972 #define IMPOSSIBLE 123
4973
4974 #ifndef YY_NO_UNISTD_H
4975 /* Special case for "unistd.h", since it is non-ANSI. We include it way
4976  * down here because we want the user's section 1 to have been scanned first.
4977  * The user has a chance to override it with an option.
4978  */
4979 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
4980 #  ifndef __STRICT_ANSI__
4981 #    include <io.h>
4982 #    include <process.h>
4983 #  endif
4984 #else
4985 #  include <unistd.h>
4986 #endif
4987 #endif
4988
4989 #ifndef YY_EXTRA_TYPE
4990 #define YY_EXTRA_TYPE void *
4991 #endif
4992
4993 static int yy_init_globals (void );
4994
4995 /* Accessor methods to globals.
4996    These are made visible to non-reentrant scanners for convenience. */
4997
4998 int surf_parse_lex_destroy (void );
4999
5000 int surf_parse_get_debug (void );
5001
5002 void surf_parse_set_debug (int debug_flag  );
5003
5004 YY_EXTRA_TYPE surf_parse_get_extra (void );
5005
5006 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined  );
5007
5008 FILE *surf_parse_get_in (void );
5009
5010 void surf_parse_set_in  (FILE * in_str  );
5011
5012 FILE *surf_parse_get_out (void );
5013
5014 void surf_parse_set_out  (FILE * out_str  );
5015
5016 int surf_parse_get_leng (void );
5017
5018 char *surf_parse_get_text (void );
5019
5020 int surf_parse_get_lineno (void );
5021
5022 void surf_parse_set_lineno (int line_number  );
5023
5024 /* Macros after this point can all be overridden by user definitions in
5025  * section 1.
5026  */
5027
5028 #ifndef YY_SKIP_YYWRAP
5029 #ifdef __cplusplus
5030 extern "C" int surf_parse_wrap (void );
5031 #else
5032 extern int surf_parse_wrap (void );
5033 #endif
5034 #endif
5035
5036 #ifndef yytext_ptr
5037 static void yy_flex_strncpy (char *,yyconst char *,int );
5038 #endif
5039
5040 #ifdef YY_NEED_STRLEN
5041 static int yy_flex_strlen (yyconst char * );
5042 #endif
5043
5044 #ifndef YY_NO_INPUT
5045
5046 #ifdef __cplusplus
5047 static int yyinput (void );
5048 #else
5049 static int input (void );
5050 #endif
5051
5052 #endif
5053
5054         static int yy_start_stack_ptr = 0;
5055         static int yy_start_stack_depth = 0;
5056         static int *yy_start_stack = NULL;
5057     
5058     static void yy_push_state (int new_state );
5059     
5060     static void yy_pop_state (void );
5061     
5062 /* Amount of stuff to slurp up with each read. */
5063 #ifndef YY_READ_BUF_SIZE
5064 #ifdef __ia64__
5065 /* On IA-64, the buffer size is 16k, not 8k */
5066 #define YY_READ_BUF_SIZE 16384
5067 #else
5068 #define YY_READ_BUF_SIZE 8192
5069 #endif /* __ia64__ */
5070 #endif
5071
5072 /* Copy whatever the last rule matched to the standard output. */
5073 #ifndef ECHO
5074 /* This used to be an fputs(), but since the string might contain NUL's,
5075  * we now use fwrite().
5076  */
5077 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
5078 #endif
5079
5080 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
5081  * is returned in "result".
5082  */
5083 #ifndef YY_INPUT
5084 #define YY_INPUT(buf,result,max_size) \
5085         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
5086                 { \
5087                 int c = '*'; \
5088                 size_t n; \
5089                 for ( n = 0; n < max_size && \
5090                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
5091                         buf[n] = (char) c; \
5092                 if ( c == '\n' ) \
5093                         buf[n++] = (char) c; \
5094                 if ( c == EOF && ferror( surf_parse_in ) ) \
5095                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
5096                 result = n; \
5097                 } \
5098         else \
5099                 { \
5100                 errno=0; \
5101                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
5102                         { \
5103                         if( errno != EINTR) \
5104                                 { \
5105                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
5106                                 break; \
5107                                 } \
5108                         errno=0; \
5109                         clearerr(surf_parse_in); \
5110                         } \
5111                 }\
5112 \
5113
5114 #endif
5115
5116 /* No semi-colon after return; correct usage is to write "yyterminate();" -
5117  * we don't want an extra ';' after the "return" because that will cause
5118  * some compilers to complain about unreachable statements.
5119  */
5120 #ifndef yyterminate
5121 #define yyterminate() return YY_NULL
5122 #endif
5123
5124 /* Number of entries by which start-condition stack grows. */
5125 #ifndef YY_START_STACK_INCR
5126 #define YY_START_STACK_INCR 25
5127 #endif
5128
5129 /* Report a fatal error. */
5130 #ifndef YY_FATAL_ERROR
5131 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
5132 #endif
5133
5134 /* end tables serialization structures and prototypes */
5135
5136 /* Default declaration of generated scanner - a define so the user can
5137  * easily add parameters.
5138  */
5139 #ifndef YY_DECL
5140 #define YY_DECL_IS_OURS 1
5141
5142 extern int surf_parse_lex (void);
5143
5144 #define YY_DECL int surf_parse_lex (void)
5145 #endif /* !YY_DECL */
5146
5147 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
5148  * have been set up.
5149  */
5150 #ifndef YY_USER_ACTION
5151 #define YY_USER_ACTION
5152 #endif
5153
5154 /* Code executed at the end of each rule. */
5155 #ifndef YY_BREAK
5156 #define YY_BREAK break;
5157 #endif
5158
5159 #define YY_RULE_SETUP \
5160         YY_USER_ACTION
5161
5162 /** The main scanner function which does all the work.
5163  */
5164 YY_DECL
5165 {
5166         register yy_state_type yy_current_state;
5167         register char *yy_cp, *yy_bp;
5168         register int yy_act;
5169     
5170  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
5171  SET(PROLOG);
5172  reset_surfxml_parse_err_msg();
5173  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
5174  assert(surfxml_bufferstack);
5175  #ifdef FLEX_DEBUG
5176  {
5177      int i;
5178      for (i = 0; i < blimit; i++) {
5179          surfxml_bufferstack[i] = '\377';
5180      }
5181  }
5182  #endif
5183  surfxml_bufferstack[0] = '\0';
5184  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
5185  assert(indexstack);
5186  indexstack[0] = 0;
5187
5188   /* FleXML_init */
5189   bnext = inext = 1;
5190   surfxml_bufferliteral('\0', &bnext, "0.0");
5191   surfxml_bufferliteral('\0', &bnext, "2147483647");
5192   surfxml_bufferliteral('\0', &bnext, "1");
5193   surfxml_bufferliteral('\0', &bnext, "1.0");
5194   surfxml_bufferliteral('\0', &bnext, "1");
5195   surfxml_bufferliteral('\0', &bnext, "0.0");
5196   surfxml_bufferliteral('\0', &bnext, "-1.0");
5197   surfxml_bufferliteral('\0', &bnext, "-1.0");
5198   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
5199   surfxml_statenames[PROLOG] = NULL;
5200   surfxml_statenames[DOCTYPE] = NULL;
5201   surfxml_statenames[EPILOG] = NULL;
5202   surfxml_statenames[INCOMMENT] = NULL;
5203   surfxml_statenames[INPI] = NULL;
5204   surfxml_statenames[VALUE1] = NULL;
5205   surfxml_statenames[VALUE2] = NULL;
5206   surfxml_statenames[CDATA] = NULL;
5207   surfxml_statenames[ROOT_surfxml_platform] = NULL;
5208   surfxml_statenames[AL_surfxml_platform] = NULL;
5209   surfxml_statenames[S_surfxml_platform] = "platform";
5210   surfxml_statenames[S_surfxml_platform_1] = "platform";
5211   surfxml_statenames[S_surfxml_platform_2] = "platform";
5212   surfxml_statenames[S_surfxml_platform_3] = "platform";
5213   surfxml_statenames[S_surfxml_platform_4] = "platform";
5214   surfxml_statenames[S_surfxml_platform_5] = "platform";
5215   surfxml_statenames[S_surfxml_platform_6] = "platform";
5216   surfxml_statenames[S_surfxml_platform_7] = "platform";
5217   surfxml_statenames[S_surfxml_platform_8] = "platform";
5218   surfxml_statenames[E_surfxml_platform] = "platform";
5219   surfxml_statenames[AL_surfxml_include] = NULL;
5220   surfxml_statenames[S_surfxml_include] = "include";
5221   surfxml_statenames[S_surfxml_include_1] = "include";
5222   surfxml_statenames[S_surfxml_include_2] = "include";
5223   surfxml_statenames[E_surfxml_include] = "include";
5224   surfxml_statenames[AL_surfxml_trace] = NULL;
5225   surfxml_statenames[IN_trace] = "trace";
5226   surfxml_statenames[AL_surfxml_random] = NULL;
5227   surfxml_statenames[E_surfxml_random] = "random";
5228   surfxml_statenames[AL_surfxml_trace_connect] = NULL;
5229   surfxml_statenames[E_surfxml_trace_connect] = "trace_connect";
5230   surfxml_statenames[AL_surfxml_AS] = NULL;
5231   surfxml_statenames[S_surfxml_AS] = "AS";
5232   surfxml_statenames[S_surfxml_AS_1] = "AS";
5233   surfxml_statenames[S_surfxml_AS_2] = "AS";
5234   surfxml_statenames[S_surfxml_AS_3] = "AS";
5235   surfxml_statenames[S_surfxml_AS_4] = "AS";
5236   surfxml_statenames[S_surfxml_AS_5] = "AS";
5237   surfxml_statenames[S_surfxml_AS_6] = "AS";
5238   surfxml_statenames[S_surfxml_AS_7] = "AS";
5239   surfxml_statenames[S_surfxml_AS_8] = "AS";
5240   surfxml_statenames[S_surfxml_AS_9] = "AS";
5241   surfxml_statenames[S_surfxml_AS_10] = "AS";
5242   surfxml_statenames[S_surfxml_AS_11] = "AS";
5243   surfxml_statenames[S_surfxml_AS_12] = "AS";
5244   surfxml_statenames[S_surfxml_AS_13] = "AS";
5245   surfxml_statenames[S_surfxml_AS_14] = "AS";
5246   surfxml_statenames[S_surfxml_AS_15] = "AS";
5247   surfxml_statenames[S_surfxml_AS_16] = "AS";
5248   surfxml_statenames[E_surfxml_AS] = "AS";
5249   surfxml_statenames[AL_surfxml_storage_type] = NULL;
5250   surfxml_statenames[S_surfxml_storage_type] = "storage_type";
5251   surfxml_statenames[S_surfxml_storage_type_1] = "storage_type";
5252   surfxml_statenames[S_surfxml_storage_type_2] = "storage_type";
5253   surfxml_statenames[E_surfxml_storage_type] = "storage_type";
5254   surfxml_statenames[AL_surfxml_storage] = NULL;
5255   surfxml_statenames[S_surfxml_storage] = "storage";
5256   surfxml_statenames[S_surfxml_storage_1] = "storage";
5257   surfxml_statenames[S_surfxml_storage_2] = "storage";
5258   surfxml_statenames[E_surfxml_storage] = "storage";
5259   surfxml_statenames[AL_surfxml_mount] = NULL;
5260   surfxml_statenames[E_surfxml_mount] = "mount";
5261   surfxml_statenames[AL_surfxml_mstorage] = NULL;
5262   surfxml_statenames[E_surfxml_mstorage] = "mstorage";
5263   surfxml_statenames[AL_surfxml_host] = NULL;
5264   surfxml_statenames[S_surfxml_host] = "host";
5265   surfxml_statenames[S_surfxml_host_1] = "host";
5266   surfxml_statenames[S_surfxml_host_2] = "host";
5267   surfxml_statenames[E_surfxml_host] = "host";
5268   surfxml_statenames[AL_surfxml_host_link] = NULL;
5269   surfxml_statenames[E_surfxml_host_link] = "host_link";
5270   surfxml_statenames[AL_surfxml_cluster] = NULL;
5271   surfxml_statenames[E_surfxml_cluster] = "cluster";
5272   surfxml_statenames[AL_surfxml_cabinet] = NULL;
5273   surfxml_statenames[E_surfxml_cabinet] = "cabinet";
5274   surfxml_statenames[AL_surfxml_peer] = NULL;
5275   surfxml_statenames[E_surfxml_peer] = "peer";
5276   surfxml_statenames[AL_surfxml_router] = NULL;
5277   surfxml_statenames[E_surfxml_router] = "router";
5278   surfxml_statenames[AL_surfxml_backbone] = NULL;
5279   surfxml_statenames[E_surfxml_backbone] = "backbone";
5280   surfxml_statenames[AL_surfxml_link] = NULL;
5281   surfxml_statenames[S_surfxml_link] = "link";
5282   surfxml_statenames[S_surfxml_link_1] = "link";
5283   surfxml_statenames[S_surfxml_link_2] = "link";
5284   surfxml_statenames[E_surfxml_link] = "link";
5285   surfxml_statenames[AL_surfxml_route] = NULL;
5286   surfxml_statenames[S_surfxml_route] = "route";
5287   surfxml_statenames[S_surfxml_route_1] = "route";
5288   surfxml_statenames[S_surfxml_route_2] = "route";
5289   surfxml_statenames[E_surfxml_route] = "route";
5290   surfxml_statenames[AL_surfxml_ASroute] = NULL;
5291   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
5292   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
5293   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
5294   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
5295   surfxml_statenames[AL_surfxml_link_ctn] = NULL;
5296   surfxml_statenames[E_surfxml_link_ctn] = "link_ctn";
5297   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
5298   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
5299   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
5300   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
5301   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
5302   surfxml_statenames[AL_surfxml_bypassASroute] = NULL;
5303   surfxml_statenames[S_surfxml_bypassASroute] = "bypassASroute";
5304   surfxml_statenames[S_surfxml_bypassASroute_1] = "bypassASroute";
5305   surfxml_statenames[S_surfxml_bypassASroute_2] = "bypassASroute";
5306   surfxml_statenames[E_surfxml_bypassASroute] = "bypassASroute";
5307   surfxml_statenames[AL_surfxml_process] = NULL;
5308   surfxml_statenames[S_surfxml_process] = "process";
5309   surfxml_statenames[S_surfxml_process_1] = "process";
5310   surfxml_statenames[S_surfxml_process_2] = "process";
5311   surfxml_statenames[E_surfxml_process] = "process";
5312   surfxml_statenames[AL_surfxml_argument] = NULL;
5313   surfxml_statenames[E_surfxml_argument] = "argument";
5314   surfxml_statenames[AL_surfxml_config] = NULL;
5315   surfxml_statenames[S_surfxml_config] = "config";
5316   surfxml_statenames[S_surfxml_config_1] = "config";
5317   surfxml_statenames[S_surfxml_config_2] = "config";
5318   surfxml_statenames[E_surfxml_config] = "config";
5319   surfxml_statenames[AL_surfxml_prop] = NULL;
5320   surfxml_statenames[E_surfxml_prop] = "prop";
5321   }
5322
5323  /* COMMENTS and PIs: handled uniformly for efficiency. */
5324
5325         if ( !(yy_init) )
5326                 {
5327                 (yy_init) = 1;
5328
5329 #ifdef YY_USER_INIT
5330                 YY_USER_INIT;
5331 #endif
5332
5333                 if ( ! (yy_start) )
5334                         (yy_start) = 1; /* first start state */
5335
5336                 if ( ! surf_parse_in )
5337                         surf_parse_in = stdin;
5338
5339                 if ( ! surf_parse_out )
5340                         surf_parse_out = stdout;
5341
5342                 if ( ! YY_CURRENT_BUFFER ) {
5343                         surf_parse_ensure_buffer_stack ();
5344                         YY_CURRENT_BUFFER_LVALUE =
5345                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
5346                 }
5347
5348                 surf_parse__load_buffer_state( );
5349                 }
5350
5351         while ( 1 )             /* loops until end-of-file is reached */
5352                 {
5353                 yy_cp = (yy_c_buf_p);
5354
5355                 /* Support of surf_parse_text. */
5356                 *yy_cp = (yy_hold_char);
5357
5358                 /* yy_bp points to the position in yy_ch_buf of the start of
5359                  * the current run.
5360                  */
5361                 yy_bp = yy_cp;
5362
5363                 yy_current_state = (yy_start);
5364 yy_match:
5365                 do
5366                         {
5367                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
5368                         if ( yy_accept[yy_current_state] )
5369                                 {
5370                                 (yy_last_accepting_state) = yy_current_state;
5371                                 (yy_last_accepting_cpos) = yy_cp;
5372                                 }
5373                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5374                                 {
5375                                 yy_current_state = (int) yy_def[yy_current_state];
5376                                 if ( yy_current_state >= 3218 )
5377                                         yy_c = yy_meta[(unsigned int) yy_c];
5378                                 }
5379                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
5380                         ++yy_cp;
5381                         }
5382                 while ( yy_base[yy_current_state] != 11752 );
5383
5384 yy_find_action:
5385                 yy_act = yy_accept[yy_current_state];
5386                 if ( yy_act == 0 )
5387                         { /* have to back up */
5388                         yy_cp = (yy_last_accepting_cpos);
5389                         yy_current_state = (yy_last_accepting_state);
5390                         yy_act = yy_accept[yy_current_state];
5391                         }
5392
5393                 YY_DO_BEFORE_ACTION;
5394
5395                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
5396                         {
5397                         int yyl;
5398                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
5399                                 if ( surf_parse_text[yyl] == '\n' )
5400                                            
5401     surf_parse_lineno++;
5402 ;
5403                         }
5404
5405 do_action:      /* This label is used only to access EOF actions. */
5406
5407                 switch ( yy_act )
5408         { /* beginning of action switch */
5409                         case 0: /* must back up */
5410                         /* undo the effects of YY_DO_BEFORE_ACTION */
5411                         *yy_cp = (yy_hold_char);
5412                         yy_cp = (yy_last_accepting_cpos);
5413                         yy_current_state = (yy_last_accepting_state);
5414                         goto yy_find_action;
5415
5416 case 1:
5417 YY_RULE_SETUP
5418 ENTER(INCOMMENT);
5419         YY_BREAK
5420 case 2:
5421 YY_RULE_SETUP
5422 ENTER(INPI);
5423         YY_BREAK
5424
5425 case 3:
5426 YY_RULE_SETUP
5427 LEAVE;
5428         YY_BREAK
5429 case 4:
5430 case 5:
5431 case 6:
5432 /* rule 6 can match eol */
5433 YY_RULE_SETUP
5434 SKIP;
5435         YY_BREAK
5436 case YY_STATE_EOF(INCOMMENT):
5437 FAIL("EOF in comment.");
5438         YY_BREAK
5439
5440 case 7:
5441 YY_RULE_SETUP
5442 LEAVE;
5443         YY_BREAK
5444 case 8:
5445 case 9:
5446 /* rule 9 can match eol */
5447 YY_RULE_SETUP
5448 SKIP;
5449         YY_BREAK
5450 case YY_STATE_EOF(INPI):
5451 FAIL("EOF in PI (processing instruction).");
5452         YY_BREAK
5453
5454 /* SPACES: skipped uniformly */
5455 case 10:
5456 /* rule 10 can match eol */
5457 YY_RULE_SETUP
5458 SKIP;
5459         YY_BREAK
5460 /* PROLOG: determine root element and process it. */
5461
5462 case 11:
5463 /* rule 11 can match eol */
5464 YY_RULE_SETUP
5465 SET(DOCTYPE); 
5466         YY_BREAK
5467 case 12:
5468 /* rule 12 can match eol */
5469 YY_RULE_SETUP
5470 FAIL("Bad declaration %s.",surf_parse_text);
5471         YY_BREAK
5472
5473 case 13:
5474 /* rule 13 can match eol */
5475 YY_RULE_SETUP
5476 SET(ROOT_surfxml_platform);
5477         YY_BREAK
5478 case 14:
5479 /* rule 14 can match eol */
5480 YY_RULE_SETUP
5481 FAIL("Bad declaration %s.",surf_parse_text);
5482         YY_BREAK
5483 case 15:
5484 YY_RULE_SETUP
5485 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
5486         YY_BREAK
5487 case YY_STATE_EOF(PROLOG):
5488 case YY_STATE_EOF(DOCTYPE):
5489 FAIL("EOF in prolog.");
5490         YY_BREAK
5491
5492 /* RULES DERIVED FROM DTD. */
5493 /* <!-- Small DTD for SURF based tools. -->  */
5494 case 16:
5495 /* rule 16 can match eol */
5496 YY_RULE_SETUP
5497 FAIL("Starting tag <platform> is not allowed here.");
5498         YY_BREAK
5499 case 17:
5500 /* rule 17 can match eol */
5501 YY_RULE_SETUP
5502 {
5503   AX_surfxml_platform_version = 1;
5504   surfxml_platform_version_isset = 0;
5505   ENTER(AL_surfxml_platform); pushbuffer(0);
5506   }
5507         YY_BREAK
5508
5509 case 18:
5510 /* rule 18 can match eol */
5511 YY_RULE_SETUP
5512 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);
5513         YY_BREAK
5514 case 19:
5515 /* rule 19 can match eol */
5516 YY_RULE_SETUP
5517 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);
5518         YY_BREAK
5519 case 20:
5520 YY_RULE_SETUP
5521 {
5522   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
5523  }
5524         YY_BREAK
5525 case 21:
5526 YY_RULE_SETUP
5527 {
5528   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
5529   switch (YY_START) {
5530    case ROOT_surfxml_platform: SET(EPILOG); break;
5531   }
5532  }
5533         YY_BREAK
5534 case 22:
5535 YY_RULE_SETUP
5536 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
5537         YY_BREAK
5538 case 23:
5539 YY_RULE_SETUP
5540 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
5541         YY_BREAK
5542 case YY_STATE_EOF(AL_surfxml_platform):
5543 FAIL("EOF in attribute list of `platform' element.");
5544         YY_BREAK
5545
5546 case 24:
5547 /* rule 24 can match eol */
5548 YY_RULE_SETUP
5549 {
5550   LEAVE;
5551   ETag_surfxml_platform();
5552   popbuffer(); /* attribute */
5553   switch (YY_START) {
5554    case ROOT_surfxml_platform: SET(EPILOG); break;
5555   }
5556  }
5557         YY_BREAK
5558 case 25:
5559 /* rule 25 can match eol */
5560 YY_RULE_SETUP
5561 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
5562         YY_BREAK
5563 case 26:
5564 YY_RULE_SETUP
5565 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
5566         YY_BREAK
5567 case YY_STATE_EOF(S_surfxml_platform_8):
5568 case YY_STATE_EOF(S_surfxml_platform_1):
5569 case YY_STATE_EOF(S_surfxml_platform_3):
5570 case YY_STATE_EOF(S_surfxml_platform):
5571 case YY_STATE_EOF(S_surfxml_platform_4):
5572 case YY_STATE_EOF(S_surfxml_platform_6):
5573 case YY_STATE_EOF(E_surfxml_platform):
5574 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</platform>' expected.");
5575         YY_BREAK
5576
5577 case 27:
5578 /* rule 27 can match eol */
5579 YY_RULE_SETUP
5580 FAIL("Starting tag <include> is not allowed here.");
5581         YY_BREAK
5582 case 28:
5583 /* rule 28 can match eol */
5584 YY_RULE_SETUP
5585 {
5586   AX_surfxml_include_file = 0;
5587   surfxml_include_file_isset = 0;
5588   ENTER(AL_surfxml_include); pushbuffer(0);
5589   }
5590         YY_BREAK
5591
5592 case 29:
5593 /* rule 29 can match eol */
5594 YY_RULE_SETUP
5595 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);
5596         YY_BREAK
5597 case 30:
5598 /* rule 30 can match eol */
5599 YY_RULE_SETUP
5600 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);
5601         YY_BREAK
5602 case 31:
5603 YY_RULE_SETUP
5604 {
5605   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5606   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
5607  }
5608         YY_BREAK
5609 case 32:
5610 YY_RULE_SETUP
5611 {
5612   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5613   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
5614   switch (YY_START) {
5615    case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5616    case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_6: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
5617    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_3: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
5618    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5619   }
5620  }
5621         YY_BREAK
5622 case 33:
5623 YY_RULE_SETUP
5624 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
5625         YY_BREAK
5626 case 34:
5627 YY_RULE_SETUP
5628 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
5629         YY_BREAK
5630 case YY_STATE_EOF(AL_surfxml_include):
5631 FAIL("EOF in attribute list of `include' element.");
5632         YY_BREAK
5633
5634 case 35:
5635 /* rule 35 can match eol */
5636 YY_RULE_SETUP
5637 {
5638   LEAVE;
5639   ETag_surfxml_include();
5640   popbuffer(); /* attribute */
5641   switch (YY_START) {
5642    case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5643    case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_6: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
5644    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_3: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
5645    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5646   }
5647  }
5648         YY_BREAK
5649 case 36:
5650 /* rule 36 can match eol */
5651 YY_RULE_SETUP
5652 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
5653         YY_BREAK
5654 case 37:
5655 YY_RULE_SETUP
5656 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
5657         YY_BREAK
5658 case YY_STATE_EOF(E_surfxml_include):
5659 case YY_STATE_EOF(S_surfxml_include):
5660 case YY_STATE_EOF(S_surfxml_include_2):
5661 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</include>' expected.");
5662         YY_BREAK
5663
5664 case 38:
5665 /* rule 38 can match eol */
5666 YY_RULE_SETUP
5667 FAIL("Starting tag <trace> is not allowed here.");
5668         YY_BREAK
5669 case 39:
5670 /* rule 39 can match eol */
5671 YY_RULE_SETUP
5672 {
5673   AX_surfxml_trace_id = 0;
5674   surfxml_trace_id_isset = 0;
5675   AX_surfxml_trace_file = 0;
5676   surfxml_trace_file_isset = 0;
5677   AX_surfxml_trace_periodicity = 0;
5678   surfxml_trace_periodicity_isset = 0;
5679   ENTER(AL_surfxml_trace); pushbuffer(0);
5680   }
5681         YY_BREAK
5682
5683 case 40:
5684 /* rule 40 can match eol */
5685 YY_RULE_SETUP
5686 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);
5687         YY_BREAK
5688 case 41:
5689 /* rule 41 can match eol */
5690 YY_RULE_SETUP
5691 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);
5692         YY_BREAK
5693 case 42:
5694 /* rule 42 can match eol */
5695 YY_RULE_SETUP
5696 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);
5697         YY_BREAK
5698 case 43:
5699 /* rule 43 can match eol */
5700 YY_RULE_SETUP
5701 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);
5702         YY_BREAK
5703 case 44:
5704 /* rule 44 can match eol */
5705 YY_RULE_SETUP
5706 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);
5707         YY_BREAK
5708 case 45:
5709 /* rule 45 can match eol */
5710 YY_RULE_SETUP
5711 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);
5712         YY_BREAK
5713 case 46:
5714 YY_RULE_SETUP
5715 {
5716   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5717   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5718   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
5719  }
5720         YY_BREAK
5721 case 47:
5722 YY_RULE_SETUP
5723 {
5724   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5725   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5726   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
5727   switch (YY_START) {
5728    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
5729    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
5730    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5731    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
5732    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
5733    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
5734    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5735   }
5736  }
5737         YY_BREAK
5738 case 48:
5739 YY_RULE_SETUP
5740 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
5741         YY_BREAK
5742 case 49:
5743 YY_RULE_SETUP
5744 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
5745         YY_BREAK
5746 case YY_STATE_EOF(AL_surfxml_trace):
5747 FAIL("EOF in attribute list of `trace' element.");
5748         YY_BREAK
5749
5750 case 50:
5751 /* rule 50 can match eol */
5752 YY_RULE_SETUP
5753 {
5754   LEAVE;
5755   BUFFERDONE;
5756   ETag_surfxml_trace();
5757   surfxml_pcdata_ix = popbuffer();
5758   popbuffer(); /* attribute */
5759   switch (YY_START) {
5760    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
5761    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
5762    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5763    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
5764    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
5765    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
5766    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5767   }
5768  }
5769         YY_BREAK
5770 case 51:
5771 /* rule 51 can match eol */
5772 YY_RULE_SETUP
5773 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
5774         YY_BREAK
5775 case YY_STATE_EOF(IN_trace):
5776 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace>' expected.");
5777         YY_BREAK
5778
5779 case 52:
5780 /* rule 52 can match eol */
5781 YY_RULE_SETUP
5782 FAIL("Starting tag <random> is not allowed here.");
5783         YY_BREAK
5784 case 53:
5785 /* rule 53 can match eol */
5786 YY_RULE_SETUP
5787 {
5788   AX_surfxml_random_id = 0;
5789   surfxml_random_id_isset = 0;
5790   AX_surfxml_random_min = 0;
5791   surfxml_random_min_isset = 0;
5792   AX_surfxml_random_max = 0;
5793   surfxml_random_max_isset = 0;
5794   AX_surfxml_random_mean = 0;
5795   surfxml_random_mean_isset = 0;
5796   AX_surfxml_random_std_deviation = 0;
5797   surfxml_random_std_deviation_isset = 0;
5798   AX_surfxml_random_seed = 5;
5799   surfxml_random_seed_isset = 0;
5800   AX_surfxml_random_radical = 0;
5801   surfxml_random_radical_isset = 0;
5802   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
5803   surfxml_random_generator_isset = 0;
5804   ENTER(AL_surfxml_random); pushbuffer(0);
5805   }
5806         YY_BREAK
5807
5808 case 54:
5809 /* rule 54 can match eol */
5810 YY_RULE_SETUP
5811 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);
5812         YY_BREAK
5813 case 55:
5814 /* rule 55 can match eol */
5815 YY_RULE_SETUP
5816 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);
5817         YY_BREAK
5818 case 56:
5819 /* rule 56 can match eol */
5820 YY_RULE_SETUP
5821 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);
5822         YY_BREAK
5823 case 57:
5824 /* rule 57 can match eol */
5825 YY_RULE_SETUP
5826 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);
5827         YY_BREAK
5828 case 58:
5829 /* rule 58 can match eol */
5830 YY_RULE_SETUP
5831 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);
5832         YY_BREAK
5833 case 59:
5834 /* rule 59 can match eol */
5835 YY_RULE_SETUP
5836 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);
5837         YY_BREAK
5838 case 60:
5839 /* rule 60 can match eol */
5840 YY_RULE_SETUP
5841 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);
5842         YY_BREAK
5843 case 61:
5844 /* rule 61 can match eol */
5845 YY_RULE_SETUP
5846 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);
5847         YY_BREAK
5848 case 62:
5849 /* rule 62 can match eol */
5850 YY_RULE_SETUP
5851 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);
5852         YY_BREAK
5853 case 63:
5854 /* rule 63 can match eol */
5855 YY_RULE_SETUP
5856 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);
5857         YY_BREAK
5858 case 64:
5859 /* rule 64 can match eol */
5860 YY_RULE_SETUP
5861 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);
5862         YY_BREAK
5863 case 65:
5864 /* rule 65 can match eol */
5865 YY_RULE_SETUP
5866 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);
5867         YY_BREAK
5868 case 66:
5869 /* rule 66 can match eol */
5870 YY_RULE_SETUP
5871 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);
5872         YY_BREAK
5873 case 67:
5874 /* rule 67 can match eol */
5875 YY_RULE_SETUP
5876 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);
5877         YY_BREAK
5878 case 68:
5879 /* rule 68 can match eol */
5880 case 69:
5881 /* rule 69 can match eol */
5882 YY_RULE_SETUP
5883 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
5884         YY_BREAK
5885 case 70:
5886 /* rule 70 can match eol */
5887 case 71:
5888 /* rule 71 can match eol */
5889 YY_RULE_SETUP
5890 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
5891         YY_BREAK
5892 case 72:
5893 /* rule 72 can match eol */
5894 case 73:
5895 /* rule 73 can match eol */
5896 YY_RULE_SETUP
5897 A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
5898         YY_BREAK
5899 case 74:
5900 /* rule 74 can match eol */
5901 case 75:
5902 /* rule 75 can match eol */
5903 YY_RULE_SETUP
5904 A_surfxml_random_generator = A_surfxml_random_generator_NONE;
5905         YY_BREAK
5906 case 76:
5907 YY_RULE_SETUP
5908 {
5909   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
5910   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
5911   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
5912   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
5913   if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
5914   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(E_surfxml_random);
5915  }
5916         YY_BREAK
5917 case 77:
5918 YY_RULE_SETUP
5919 {
5920   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
5921   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
5922   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
5923   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
5924   if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
5925   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
5926   switch (YY_START) {
5927    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
5928   }
5929  }
5930         YY_BREAK
5931 case 78:
5932 YY_RULE_SETUP
5933 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
5934         YY_BREAK
5935 case 79:
5936 YY_RULE_SETUP
5937 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
5938         YY_BREAK
5939 case YY_STATE_EOF(AL_surfxml_random):
5940 FAIL("EOF in attribute list of `random' element.");
5941         YY_BREAK
5942
5943 case 80:
5944 /* rule 80 can match eol */
5945 YY_RULE_SETUP
5946 {
5947   LEAVE;
5948   ETag_surfxml_random();
5949   popbuffer(); /* attribute */
5950   switch (YY_START) {
5951    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
5952   }
5953  }
5954         YY_BREAK
5955 case 81:
5956 /* rule 81 can match eol */
5957 YY_RULE_SETUP
5958 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
5959         YY_BREAK
5960 case 82:
5961 YY_RULE_SETUP
5962 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
5963         YY_BREAK
5964 case YY_STATE_EOF(E_surfxml_random):
5965 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</random>' expected.");
5966         YY_BREAK
5967
5968 case 83:
5969 /* rule 83 can match eol */
5970 YY_RULE_SETUP
5971 FAIL("Starting tag <trace_connect> is not allowed here.");
5972         YY_BREAK
5973 case 84:
5974 /* rule 84 can match eol */
5975 YY_RULE_SETUP
5976 {
5977   AX_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_HOST_AVAIL;
5978   surfxml_trace_connect_kind_isset = 0;
5979   AX_surfxml_trace_connect_trace = 0;
5980   surfxml_trace_connect_trace_isset = 0;
5981   AX_surfxml_trace_connect_element = 0;
5982   surfxml_trace_connect_element_isset = 0;
5983   ENTER(AL_surfxml_trace_connect); pushbuffer(0);
5984   }
5985         YY_BREAK
5986
5987 case 85:
5988 /* rule 85 can match eol */
5989 case 86:
5990 /* rule 86 can match eol */
5991 YY_RULE_SETUP
5992 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_HOST_AVAIL;
5993         YY_BREAK
5994 case 87:
5995 /* rule 87 can match eol */
5996 case 88:
5997 /* rule 88 can match eol */
5998 YY_RULE_SETUP
5999 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_POWER;
6000         YY_BREAK
6001 case 89:
6002 /* rule 89 can match eol */
6003 case 90:
6004 /* rule 90 can match eol */
6005 YY_RULE_SETUP
6006 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_LINK_AVAIL;
6007         YY_BREAK
6008 case 91:
6009 /* rule 91 can match eol */
6010 case 92:
6011 /* rule 92 can match eol */
6012 YY_RULE_SETUP
6013 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_BANDWIDTH;
6014         YY_BREAK
6015 case 93:
6016 /* rule 93 can match eol */
6017 case 94:
6018 /* rule 94 can match eol */
6019 YY_RULE_SETUP
6020 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_LATENCY;
6021         YY_BREAK
6022 case 95:
6023 /* rule 95 can match eol */
6024 YY_RULE_SETUP
6025 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);
6026         YY_BREAK
6027 case 96:
6028 /* rule 96 can match eol */
6029 YY_RULE_SETUP
6030 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);
6031         YY_BREAK
6032 case 97:
6033 /* rule 97 can match eol */
6034 YY_RULE_SETUP
6035 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);
6036         YY_BREAK
6037 case 98:
6038 /* rule 98 can match eol */
6039 YY_RULE_SETUP
6040 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);
6041         YY_BREAK
6042 case 99:
6043 YY_RULE_SETUP
6044 {
6045   if (!AX_surfxml_trace_connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
6046   if (!AX_surfxml_trace_connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
6047   LEAVE; STag_surfxml_trace_connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace_connect);
6048  }
6049         YY_BREAK
6050 case 100:
6051 YY_RULE_SETUP
6052 {
6053   if (!AX_surfxml_trace_connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
6054   if (!AX_surfxml_trace_connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
6055   LEAVE; STag_surfxml_trace_connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace_connect(); popbuffer(); /* attribute */
6056   switch (YY_START) {
6057    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
6058    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
6059    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6060    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
6061    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
6062    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
6063    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6064   }
6065  }
6066         YY_BREAK
6067 case 101:
6068 YY_RULE_SETUP
6069 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", surf_parse_text[0]);
6070         YY_BREAK
6071 case 102:
6072 YY_RULE_SETUP
6073 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",surf_parse_text);
6074         YY_BREAK
6075 case YY_STATE_EOF(AL_surfxml_trace_connect):
6076 FAIL("EOF in attribute list of `trace_connect' element.");
6077         YY_BREAK
6078
6079 case 103:
6080 /* rule 103 can match eol */
6081 YY_RULE_SETUP
6082 {
6083   LEAVE;
6084   ETag_surfxml_trace_connect();
6085   popbuffer(); /* attribute */
6086   switch (YY_START) {
6087    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
6088    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
6089    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6090    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
6091    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
6092    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
6093    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6094   }
6095  }
6096         YY_BREAK
6097 case 104:
6098 /* rule 104 can match eol */
6099 YY_RULE_SETUP
6100 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",surf_parse_text);
6101         YY_BREAK
6102 case 105:
6103 YY_RULE_SETUP
6104 FAIL("Unexpected character `%c': `</trace_connect>' expected.",surf_parse_text[0]);
6105         YY_BREAK
6106 case YY_STATE_EOF(E_surfxml_trace_connect):
6107 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace_connect>' expected.");
6108         YY_BREAK
6109
6110 case 106:
6111 /* rule 106 can match eol */
6112 YY_RULE_SETUP
6113 FAIL("Starting tag <AS> is not allowed here.");
6114         YY_BREAK
6115 case 107:
6116 /* rule 107 can match eol */
6117 YY_RULE_SETUP
6118 {
6119   AX_surfxml_AS_id = 0;
6120   surfxml_AS_id_isset = 0;
6121   AX_surfxml_AS_routing = A_surfxml_AS_routing_None;
6122   surfxml_AS_routing_isset = 0;
6123   ENTER(AL_surfxml_AS); pushbuffer(0);
6124   }
6125         YY_BREAK
6126
6127 case 108:
6128 /* rule 108 can match eol */
6129 YY_RULE_SETUP
6130 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);
6131         YY_BREAK
6132 case 109:
6133 /* rule 109 can match eol */
6134 YY_RULE_SETUP
6135 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);
6136         YY_BREAK
6137 case 110:
6138 /* rule 110 can match eol */
6139 case 111:
6140 /* rule 111 can match eol */
6141 YY_RULE_SETUP
6142 A_surfxml_AS_routing = A_surfxml_AS_routing_Full;
6143         YY_BREAK
6144 case 112:
6145 /* rule 112 can match eol */
6146 case 113:
6147 /* rule 113 can match eol */
6148 YY_RULE_SETUP
6149 A_surfxml_AS_routing = A_surfxml_AS_routing_Floyd;
6150         YY_BREAK
6151 case 114:
6152 /* rule 114 can match eol */
6153 case 115:
6154 /* rule 115 can match eol */
6155 YY_RULE_SETUP
6156 A_surfxml_AS_routing = A_surfxml_AS_routing_Dijkstra;
6157         YY_BREAK
6158 case 116:
6159 /* rule 116 can match eol */
6160 case 117:
6161 /* rule 117 can match eol */
6162 YY_RULE_SETUP
6163 A_surfxml_AS_routing = A_surfxml_AS_routing_DijkstraCache;
6164         YY_BREAK
6165 case 118:
6166 /* rule 118 can match eol */
6167 case 119:
6168 /* rule 119 can match eol */
6169 YY_RULE_SETUP
6170 A_surfxml_AS_routing = A_surfxml_AS_routing_None;
6171         YY_BREAK
6172 case 120:
6173 /* rule 120 can match eol */
6174 case 121:
6175 /* rule 121 can match eol */
6176 YY_RULE_SETUP
6177 A_surfxml_AS_routing = A_surfxml_AS_routing_RuleBased;
6178         YY_BREAK
6179 case 122:
6180 /* rule 122 can match eol */
6181 case 123:
6182 /* rule 123 can match eol */
6183 YY_RULE_SETUP
6184 A_surfxml_AS_routing = A_surfxml_AS_routing_Vivaldi;
6185         YY_BREAK
6186 case 124:
6187 /* rule 124 can match eol */
6188 case 125:
6189 /* rule 125 can match eol */
6190 YY_RULE_SETUP
6191 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster;
6192         YY_BREAK
6193 case 126:
6194 YY_RULE_SETUP
6195 {
6196   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6197   LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
6198  }
6199         YY_BREAK
6200 case 127:
6201 YY_RULE_SETUP
6202 {
6203   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6204   LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
6205   switch (YY_START) {
6206    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
6207    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
6208    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6209   }
6210  }
6211         YY_BREAK
6212 case 128:
6213 YY_RULE_SETUP
6214 FAIL("Unexpected character `%c' in attribute list of AS element.", surf_parse_text[0]);
6215         YY_BREAK
6216 case 129:
6217 YY_RULE_SETUP
6218 FAIL("Bad attribute `%s' in `AS' element start tag.",surf_parse_text);
6219         YY_BREAK
6220 case YY_STATE_EOF(AL_surfxml_AS):
6221 FAIL("EOF in attribute list of `AS' element.");
6222         YY_BREAK
6223
6224 case 130:
6225 /* rule 130 can match eol */
6226 YY_RULE_SETUP
6227 {
6228   LEAVE;
6229   ETag_surfxml_AS();
6230   popbuffer(); /* attribute */
6231   switch (YY_START) {
6232    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
6233    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
6234    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6235   }
6236  }
6237         YY_BREAK
6238 case 131:
6239 /* rule 131 can match eol */
6240 YY_RULE_SETUP
6241 FAIL("Unexpected end-tag `%s': `</AS>' expected.",surf_parse_text);
6242         YY_BREAK
6243 case 132:
6244 YY_RULE_SETUP
6245 FAIL("Unexpected character `%c': `</AS>' expected.",surf_parse_text[0]);
6246         YY_BREAK
6247 case YY_STATE_EOF(S_surfxml_AS_12):
6248 case YY_STATE_EOF(S_surfxml_AS_9):
6249 case YY_STATE_EOF(S_surfxml_AS_1):
6250 case YY_STATE_EOF(S_surfxml_AS_7):
6251 case YY_STATE_EOF(S_surfxml_AS_11):
6252 case YY_STATE_EOF(S_surfxml_AS_14):
6253 case YY_STATE_EOF(S_surfxml_AS_6):
6254 case YY_STATE_EOF(E_surfxml_AS):
6255 case YY_STATE_EOF(S_surfxml_AS_16):
6256 case YY_STATE_EOF(S_surfxml_AS_3):
6257 case YY_STATE_EOF(S_surfxml_AS):
6258 case YY_STATE_EOF(S_surfxml_AS_4):
6259 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</AS>' expected.");
6260         YY_BREAK
6261
6262 case 133:
6263 /* rule 133 can match eol */
6264 YY_RULE_SETUP
6265 FAIL("Starting tag <storage_type> is not allowed here.");
6266         YY_BREAK
6267 case 134:
6268 /* rule 134 can match eol */
6269 YY_RULE_SETUP
6270 {
6271   AX_surfxml_storage_type_id = 0;
6272   surfxml_storage_type_id_isset = 0;
6273   AX_surfxml_storage_type_model = 0;
6274   surfxml_storage_type_model_isset = 0;
6275   AX_surfxml_storage_type_size = 0;
6276   surfxml_storage_type_size_isset = 0;
6277   AX_surfxml_storage_type_content = 0;
6278   surfxml_storage_type_content_isset = 0;
6279   ENTER(AL_surfxml_storage_type); pushbuffer(0);
6280   }
6281         YY_BREAK
6282
6283 case 135:
6284 /* rule 135 can match eol */
6285 YY_RULE_SETUP
6286 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);
6287         YY_BREAK
6288 case 136:
6289 /* rule 136 can match eol */
6290 YY_RULE_SETUP
6291 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);
6292         YY_BREAK
6293 case 137:
6294 /* rule 137 can match eol */
6295 YY_RULE_SETUP
6296 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);
6297         YY_BREAK
6298 case 138:
6299 /* rule 138 can match eol */
6300 YY_RULE_SETUP
6301 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);
6302         YY_BREAK
6303 case 139:
6304 /* rule 139 can match eol */
6305 YY_RULE_SETUP
6306 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);
6307         YY_BREAK
6308 case 140:
6309 /* rule 140 can match eol */
6310 YY_RULE_SETUP
6311 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);
6312         YY_BREAK
6313 case 141:
6314 /* rule 141 can match eol */
6315 YY_RULE_SETUP
6316 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);
6317         YY_BREAK
6318 case 142:
6319 /* rule 142 can match eol */
6320 YY_RULE_SETUP
6321 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);
6322         YY_BREAK
6323 case 143:
6324 YY_RULE_SETUP
6325 {
6326   if (!AX_surfxml_storage_type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
6327   if (!AX_surfxml_storage_type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
6328   if (!AX_surfxml_storage_type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
6329   LEAVE; STag_surfxml_storage_type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage_type);
6330  }
6331         YY_BREAK
6332 case 144:
6333 YY_RULE_SETUP
6334 {
6335   if (!AX_surfxml_storage_type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
6336   if (!AX_surfxml_storage_type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
6337   if (!AX_surfxml_storage_type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
6338   LEAVE; STag_surfxml_storage_type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage_type(); popbuffer(); /* attribute */
6339   switch (YY_START) {
6340    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6341    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6342   }
6343  }
6344         YY_BREAK
6345 case 145:
6346 YY_RULE_SETUP
6347 FAIL("Unexpected character `%c' in attribute list of storage_type element.", surf_parse_text[0]);
6348         YY_BREAK
6349 case 146:
6350 YY_RULE_SETUP
6351 FAIL("Bad attribute `%s' in `storage_type' element start tag.",surf_parse_text);
6352         YY_BREAK
6353 case YY_STATE_EOF(AL_surfxml_storage_type):
6354 FAIL("EOF in attribute list of `storage_type' element.");
6355         YY_BREAK
6356
6357 case 147:
6358 /* rule 147 can match eol */
6359 YY_RULE_SETUP
6360 {
6361   LEAVE;
6362   ETag_surfxml_storage_type();
6363   popbuffer(); /* attribute */
6364   switch (YY_START) {
6365    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6366    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6367   }
6368  }
6369         YY_BREAK
6370 case 148:
6371 /* rule 148 can match eol */
6372 YY_RULE_SETUP
6373 FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",surf_parse_text);
6374         YY_BREAK
6375 case 149:
6376 YY_RULE_SETUP
6377 FAIL("Unexpected character `%c': `</storage_type>' expected.",surf_parse_text[0]);
6378         YY_BREAK
6379 case YY_STATE_EOF(E_surfxml_storage_type):
6380 case YY_STATE_EOF(S_surfxml_storage_type_2):
6381 case YY_STATE_EOF(S_surfxml_storage_type):
6382 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage_type>' expected.");
6383         YY_BREAK
6384
6385 case 150:
6386 /* rule 150 can match eol */
6387 YY_RULE_SETUP
6388 FAIL("Starting tag <storage> is not allowed here.");
6389         YY_BREAK
6390 case 151:
6391 /* rule 151 can match eol */
6392 YY_RULE_SETUP
6393 {
6394   AX_surfxml_storage_id = 0;
6395   surfxml_storage_id_isset = 0;
6396   AX_surfxml_storage_typeId = 0;
6397   surfxml_storage_typeId_isset = 0;
6398   AX_surfxml_storage_content = 0;
6399   surfxml_storage_content_isset = 0;
6400   ENTER(AL_surfxml_storage); pushbuffer(0);
6401   }
6402         YY_BREAK
6403
6404 case 152:
6405 /* rule 152 can match eol */
6406 YY_RULE_SETUP
6407 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);
6408         YY_BREAK
6409 case 153:
6410 /* rule 153 can match eol */
6411 YY_RULE_SETUP
6412 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);
6413         YY_BREAK
6414 case 154:
6415 /* rule 154 can match eol */
6416 YY_RULE_SETUP
6417 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);
6418         YY_BREAK
6419 case 155:
6420 /* rule 155 can match eol */
6421 YY_RULE_SETUP
6422 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);
6423         YY_BREAK
6424 case 156:
6425 /* rule 156 can match eol */
6426 YY_RULE_SETUP
6427 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);
6428         YY_BREAK
6429 case 157:
6430 /* rule 157 can match eol */
6431 YY_RULE_SETUP
6432 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);
6433         YY_BREAK
6434 case 158:
6435 YY_RULE_SETUP
6436 {
6437   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
6438   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
6439   LEAVE; STag_surfxml_storage();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage);
6440  }
6441         YY_BREAK
6442 case 159:
6443 YY_RULE_SETUP
6444 {
6445   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
6446   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
6447   LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */
6448   switch (YY_START) {
6449    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6450    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6451   }
6452  }
6453         YY_BREAK
6454 case 160:
6455 YY_RULE_SETUP
6456 FAIL("Unexpected character `%c' in attribute list of storage element.", surf_parse_text[0]);
6457         YY_BREAK
6458 case 161:
6459 YY_RULE_SETUP
6460 FAIL("Bad attribute `%s' in `storage' element start tag.",surf_parse_text);
6461         YY_BREAK
6462 case YY_STATE_EOF(AL_surfxml_storage):
6463 FAIL("EOF in attribute list of `storage' element.");
6464         YY_BREAK
6465
6466 case 162:
6467 /* rule 162 can match eol */
6468 YY_RULE_SETUP
6469 {
6470   LEAVE;
6471   ETag_surfxml_storage();
6472   popbuffer(); /* attribute */
6473   switch (YY_START) {
6474    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6475    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6476   }
6477  }
6478         YY_BREAK
6479 case 163:
6480 /* rule 163 can match eol */
6481 YY_RULE_SETUP
6482 FAIL("Unexpected end-tag `%s': `</storage>' expected.",surf_parse_text);
6483         YY_BREAK
6484 case 164:
6485 YY_RULE_SETUP
6486 FAIL("Unexpected character `%c': `</storage>' expected.",surf_parse_text[0]);
6487         YY_BREAK
6488 case YY_STATE_EOF(E_surfxml_storage):
6489 case YY_STATE_EOF(S_surfxml_storage):
6490 case YY_STATE_EOF(S_surfxml_storage_2):
6491 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage>' expected.");
6492         YY_BREAK
6493
6494 case 165:
6495 /* rule 165 can match eol */
6496 YY_RULE_SETUP
6497 FAIL("Starting tag <mount> is not allowed here.");
6498         YY_BREAK
6499 case 166:
6500 /* rule 166 can match eol */
6501 YY_RULE_SETUP
6502 {
6503   AX_surfxml_mount_id = 0;
6504   surfxml_mount_id_isset = 0;
6505   AX_surfxml_mount_name = 0;
6506   surfxml_mount_name_isset = 0;
6507   ENTER(AL_surfxml_mount); pushbuffer(0);
6508   }
6509         YY_BREAK
6510
6511 case 167:
6512 /* rule 167 can match eol */
6513 YY_RULE_SETUP
6514 if (surfxml_mount_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_mount>");} surfxml_mount_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mount_id);
6515         YY_BREAK
6516 case 168:
6517 /* rule 168 can match eol */
6518 YY_RULE_SETUP
6519 if (surfxml_mount_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_mount>");}  surfxml_mount_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mount_id);
6520         YY_BREAK
6521 case 169:
6522 /* rule 169 can match eol */
6523 YY_RULE_SETUP
6524 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);
6525         YY_BREAK
6526 case 170:
6527 /* rule 170 can match eol */
6528 YY_RULE_SETUP
6529 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);
6530         YY_BREAK
6531 case 171:
6532 YY_RULE_SETUP
6533 {
6534   if (!AX_surfxml_mount_id) FAIL("Required attribute `id' not set for `mount' element.");
6535   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6536   LEAVE; STag_surfxml_mount();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mount);
6537  }
6538         YY_BREAK
6539 case 172:
6540 YY_RULE_SETUP
6541 {
6542   if (!AX_surfxml_mount_id) FAIL("Required attribute `id' not set for `mount' element.");
6543   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6544   LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */
6545   switch (YY_START) {
6546    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6547   }
6548  }
6549         YY_BREAK
6550 case 173:
6551 YY_RULE_SETUP
6552 FAIL("Unexpected character `%c' in attribute list of mount element.", surf_parse_text[0]);
6553         YY_BREAK
6554 case 174:
6555 YY_RULE_SETUP
6556 FAIL("Bad attribute `%s' in `mount' element start tag.",surf_parse_text);
6557         YY_BREAK
6558 case YY_STATE_EOF(AL_surfxml_mount):
6559 FAIL("EOF in attribute list of `mount' element.");
6560         YY_BREAK
6561
6562 case 175:
6563 /* rule 175 can match eol */
6564 YY_RULE_SETUP
6565 {
6566   LEAVE;
6567   ETag_surfxml_mount();
6568   popbuffer(); /* attribute */
6569   switch (YY_START) {
6570    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6571   }
6572  }
6573         YY_BREAK
6574 case 176:
6575 /* rule 176 can match eol */
6576 YY_RULE_SETUP
6577 FAIL("Unexpected end-tag `%s': `</mount>' expected.",surf_parse_text);
6578         YY_BREAK
6579 case 177:
6580 YY_RULE_SETUP
6581 FAIL("Unexpected character `%c': `</mount>' expected.",surf_parse_text[0]);
6582         YY_BREAK
6583 case YY_STATE_EOF(E_surfxml_mount):
6584 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mount>' expected.");
6585         YY_BREAK
6586
6587 case 178:
6588 /* rule 178 can match eol */
6589 YY_RULE_SETUP
6590 FAIL("Starting tag <mstorage> is not allowed here.");
6591         YY_BREAK
6592 case 179:
6593 /* rule 179 can match eol */
6594 YY_RULE_SETUP
6595 {
6596   AX_surfxml_mstorage_typeId = 0;
6597   surfxml_mstorage_typeId_isset = 0;
6598   AX_surfxml_mstorage_name = 0;
6599   surfxml_mstorage_name_isset = 0;
6600   ENTER(AL_surfxml_mstorage); pushbuffer(0);
6601   }
6602         YY_BREAK
6603
6604 case 180:
6605 /* rule 180 can match eol */
6606 YY_RULE_SETUP
6607 if (surfxml_mstorage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_mstorage>");} surfxml_mstorage_typeId_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mstorage_typeId);
6608         YY_BREAK
6609 case 181:
6610 /* rule 181 can match eol */
6611 YY_RULE_SETUP
6612 if (surfxml_mstorage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_mstorage>");}  surfxml_mstorage_typeId_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mstorage_typeId);
6613         YY_BREAK
6614 case 182:
6615 /* rule 182 can match eol */
6616 YY_RULE_SETUP
6617 if (surfxml_mstorage_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mstorage>");} surfxml_mstorage_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mstorage_name);
6618         YY_BREAK
6619 case 183:
6620 /* rule 183 can match eol */
6621 YY_RULE_SETUP
6622 if (surfxml_mstorage_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mstorage>");}  surfxml_mstorage_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mstorage_name);
6623         YY_BREAK
6624 case 184:
6625 YY_RULE_SETUP
6626 {
6627   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6628   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6629   LEAVE; STag_surfxml_mstorage();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mstorage);
6630  }
6631         YY_BREAK
6632 case 185:
6633 YY_RULE_SETUP
6634 {
6635   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6636   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6637   LEAVE; STag_surfxml_mstorage(); surfxml_pcdata_ix = 0; ETag_surfxml_mstorage(); popbuffer(); /* attribute */
6638   switch (YY_START) {
6639    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6640   }
6641  }
6642         YY_BREAK
6643 case 186:
6644 YY_RULE_SETUP
6645 FAIL("Unexpected character `%c' in attribute list of mstorage element.", surf_parse_text[0]);
6646         YY_BREAK
6647 case 187:
6648 YY_RULE_SETUP
6649 FAIL("Bad attribute `%s' in `mstorage' element start tag.",surf_parse_text);
6650         YY_BREAK
6651 case YY_STATE_EOF(AL_surfxml_mstorage):
6652 FAIL("EOF in attribute list of `mstorage' element.");
6653         YY_BREAK
6654
6655 case 188:
6656 /* rule 188 can match eol */
6657 YY_RULE_SETUP
6658 {
6659   LEAVE;
6660   ETag_surfxml_mstorage();
6661   popbuffer(); /* attribute */
6662   switch (YY_START) {
6663    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6664   }
6665  }
6666         YY_BREAK
6667 case 189:
6668 /* rule 189 can match eol */
6669 YY_RULE_SETUP
6670 FAIL("Unexpected end-tag `%s': `</mstorage>' expected.",surf_parse_text);
6671         YY_BREAK
6672 case 190:
6673 YY_RULE_SETUP
6674 FAIL("Unexpected character `%c': `</mstorage>' expected.",surf_parse_text[0]);
6675         YY_BREAK
6676 case YY_STATE_EOF(E_surfxml_mstorage):
6677 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mstorage>' expected.");
6678         YY_BREAK
6679
6680 case 191:
6681 /* rule 191 can match eol */
6682 YY_RULE_SETUP
6683 FAIL("Starting tag <host> is not allowed here.");
6684         YY_BREAK
6685 case 192:
6686 /* rule 192 can match eol */
6687 YY_RULE_SETUP
6688 {
6689   AX_surfxml_host_id = 0;
6690   surfxml_host_id_isset = 0;
6691   AX_surfxml_host_power = 0;
6692   surfxml_host_power_isset = 0;
6693   AX_surfxml_host_core = 16;
6694   surfxml_host_core_isset = 0;
6695   AX_surfxml_host_availability = 18;
6696   surfxml_host_availability_isset = 0;
6697   AX_surfxml_host_availability_file = 0;
6698   surfxml_host_availability_file_isset = 0;
6699   AX_surfxml_host_state = A_surfxml_host_state_ON;
6700   surfxml_host_state_isset = 0;
6701   AX_surfxml_host_state_file = 0;
6702   surfxml_host_state_file_isset = 0;
6703   AX_surfxml_host_coordinates = 0;
6704   surfxml_host_coordinates_isset = 0;
6705   ENTER(AL_surfxml_host); pushbuffer(0);
6706   }
6707         YY_BREAK
6708
6709 case 193:
6710 /* rule 193 can match eol */
6711 YY_RULE_SETUP
6712 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);
6713         YY_BREAK
6714 case 194:
6715 /* rule 194 can match eol */
6716 YY_RULE_SETUP
6717 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);
6718         YY_BREAK
6719 case 195:
6720 /* rule 195 can match eol */
6721 YY_RULE_SETUP
6722 if (surfxml_host_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_host>");} surfxml_host_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_power);
6723         YY_BREAK
6724 case 196:
6725 /* rule 196 can match eol */
6726 YY_RULE_SETUP
6727 if (surfxml_host_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_host>");}  surfxml_host_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_power);
6728         YY_BREAK
6729 case 197:
6730 /* rule 197 can match eol */
6731 YY_RULE_SETUP
6732 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);
6733         YY_BREAK
6734 case 198:
6735 /* rule 198 can match eol */
6736 YY_RULE_SETUP
6737 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);
6738         YY_BREAK
6739 case 199:
6740 /* rule 199 can match eol */
6741 YY_RULE_SETUP
6742 if (surfxml_host_availability_isset != 0) {FAIL("Multiple definition of attribute availability in <surfxml_host>");} surfxml_host_availability_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability);
6743         YY_BREAK
6744 case 200:
6745 /* rule 200 can match eol */
6746 YY_RULE_SETUP
6747 if (surfxml_host_availability_isset != 0) {FAIL("Multiple definition of attribute availability in <surfxml_host>");}  surfxml_host_availability_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability);
6748         YY_BREAK
6749 case 201:
6750 /* rule 201 can match eol */
6751 YY_RULE_SETUP
6752 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);
6753         YY_BREAK
6754 case 202:
6755 /* rule 202 can match eol */
6756 YY_RULE_SETUP
6757 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);
6758         YY_BREAK
6759 case 203:
6760 /* rule 203 can match eol */
6761 case 204:
6762 /* rule 204 can match eol */
6763 YY_RULE_SETUP
6764 A_surfxml_host_state = A_surfxml_host_state_ON;
6765         YY_BREAK
6766 case 205:
6767 /* rule 205 can match eol */
6768 case 206:
6769 /* rule 206 can match eol */
6770 YY_RULE_SETUP
6771 A_surfxml_host_state = A_surfxml_host_state_OFF;
6772         YY_BREAK
6773 case 207:
6774 /* rule 207 can match eol */
6775 YY_RULE_SETUP
6776 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);
6777         YY_BREAK
6778 case 208:
6779 /* rule 208 can match eol */
6780 YY_RULE_SETUP
6781 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);
6782         YY_BREAK
6783 case 209:
6784 /* rule 209 can match eol */
6785 YY_RULE_SETUP
6786 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);
6787         YY_BREAK
6788 case 210:
6789 /* rule 210 can match eol */
6790 YY_RULE_SETUP
6791 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);
6792         YY_BREAK
6793 case 211:
6794 YY_RULE_SETUP
6795 {
6796   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
6797   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
6798   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
6799  }
6800         YY_BREAK
6801 case 212:
6802 YY_RULE_SETUP
6803 {
6804   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
6805   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
6806   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
6807   switch (YY_START) {
6808    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6809   }
6810  }
6811         YY_BREAK
6812 case 213:
6813 YY_RULE_SETUP
6814 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
6815         YY_BREAK
6816 case 214:
6817 YY_RULE_SETUP
6818 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
6819         YY_BREAK
6820 case YY_STATE_EOF(AL_surfxml_host):
6821 FAIL("EOF in attribute list of `host' element.");
6822         YY_BREAK
6823
6824 case 215:
6825 /* rule 215 can match eol */
6826 YY_RULE_SETUP
6827 {
6828   LEAVE;
6829   ETag_surfxml_host();
6830   popbuffer(); /* attribute */
6831   switch (YY_START) {
6832    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6833   }
6834  }
6835         YY_BREAK
6836 case 216:
6837 /* rule 216 can match eol */
6838 YY_RULE_SETUP
6839 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
6840         YY_BREAK
6841 case 217:
6842 YY_RULE_SETUP
6843 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
6844         YY_BREAK
6845 case YY_STATE_EOF(S_surfxml_host):
6846 case YY_STATE_EOF(E_surfxml_host):
6847 case YY_STATE_EOF(S_surfxml_host_2):
6848 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host>' expected.");
6849         YY_BREAK
6850
6851 case 218:
6852 /* rule 218 can match eol */
6853 YY_RULE_SETUP
6854 FAIL("Starting tag <host_link> is not allowed here.");
6855         YY_BREAK
6856 case 219:
6857 /* rule 219 can match eol */
6858 YY_RULE_SETUP
6859 {
6860   AX_surfxml_host_link_id = 0;
6861   surfxml_host_link_id_isset = 0;
6862   AX_surfxml_host_link_up = 0;
6863   surfxml_host_link_up_isset = 0;
6864   AX_surfxml_host_link_down = 0;
6865   surfxml_host_link_down_isset = 0;
6866   ENTER(AL_surfxml_host_link); pushbuffer(0);
6867   }
6868         YY_BREAK
6869
6870 case 220:
6871 /* rule 220 can match eol */
6872 YY_RULE_SETUP
6873 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);
6874         YY_BREAK
6875 case 221:
6876 /* rule 221 can match eol */
6877 YY_RULE_SETUP
6878 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);
6879         YY_BREAK
6880 case 222:
6881 /* rule 222 can match eol */
6882 YY_RULE_SETUP
6883 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);
6884         YY_BREAK
6885 case 223:
6886 /* rule 223 can match eol */
6887 YY_RULE_SETUP
6888 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);
6889         YY_BREAK
6890 case 224:
6891 /* rule 224 can match eol */
6892 YY_RULE_SETUP
6893 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);
6894         YY_BREAK
6895 case 225:
6896 /* rule 225 can match eol */
6897 YY_RULE_SETUP
6898 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);
6899         YY_BREAK
6900 case 226:
6901 YY_RULE_SETUP
6902 {
6903   if (!AX_surfxml_host_link_id) FAIL("Required attribute `id' not set for `host_link' element.");
6904   if (!AX_surfxml_host_link_up) FAIL("Required attribute `up' not set for `host_link' element.");
6905   if (!AX_surfxml_host_link_down) FAIL("Required attribute `down' not set for `host_link' element.");
6906   LEAVE; STag_surfxml_host_link();surfxml_pcdata_ix = 0; ENTER(E_surfxml_host_link);
6907  }
6908         YY_BREAK
6909 case 227:
6910 YY_RULE_SETUP
6911 {
6912   if (!AX_surfxml_host_link_id) FAIL("Required attribute `id' not set for `host_link' element.");
6913   if (!AX_surfxml_host_link_up) FAIL("Required attribute `up' not set for `host_link' element.");
6914   if (!AX_surfxml_host_link_down) FAIL("Required attribute `down' not set for `host_link' element.");
6915   LEAVE; STag_surfxml_host_link(); surfxml_pcdata_ix = 0; ETag_surfxml_host_link(); popbuffer(); /* attribute */
6916   switch (YY_START) {
6917    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6918   }
6919  }
6920         YY_BREAK
6921 case 228:
6922 YY_RULE_SETUP
6923 FAIL("Unexpected character `%c' in attribute list of host_link element.", surf_parse_text[0]);
6924         YY_BREAK
6925 case 229:
6926 YY_RULE_SETUP
6927 FAIL("Bad attribute `%s' in `host_link' element start tag.",surf_parse_text);
6928         YY_BREAK
6929 case YY_STATE_EOF(AL_surfxml_host_link):
6930 FAIL("EOF in attribute list of `host_link' element.");
6931         YY_BREAK
6932
6933 case 230:
6934 /* rule 230 can match eol */
6935 YY_RULE_SETUP
6936 {
6937   LEAVE;
6938   ETag_surfxml_host_link();
6939   popbuffer(); /* attribute */
6940   switch (YY_START) {
6941    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6942   }
6943  }
6944         YY_BREAK
6945 case 231:
6946 /* rule 231 can match eol */
6947 YY_RULE_SETUP
6948 FAIL("Unexpected end-tag `%s': `</host_link>' expected.",surf_parse_text);
6949         YY_BREAK
6950 case 232:
6951 YY_RULE_SETUP
6952 FAIL("Unexpected character `%c': `</host_link>' expected.",surf_parse_text[0]);
6953         YY_BREAK
6954 case YY_STATE_EOF(E_surfxml_host_link):
6955 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host_link>' expected.");
6956         YY_BREAK
6957
6958 case 233:
6959 /* rule 233 can match eol */
6960 YY_RULE_SETUP
6961 FAIL("Starting tag <cluster> is not allowed here.");
6962         YY_BREAK
6963 case 234:
6964 /* rule 234 can match eol */
6965 YY_RULE_SETUP
6966 {
6967   AX_surfxml_cluster_id = 0;
6968   surfxml_cluster_id_isset = 0;
6969   AX_surfxml_cluster_prefix = 0;
6970   surfxml_cluster_prefix_isset = 0;
6971   AX_surfxml_cluster_suffix = 0;
6972   surfxml_cluster_suffix_isset = 0;
6973   AX_surfxml_cluster_radical = 0;
6974   surfxml_cluster_radical_isset = 0;
6975   AX_surfxml_cluster_power = 0;
6976   surfxml_cluster_power_isset = 0;
6977   AX_surfxml_cluster_core = 22;
6978   surfxml_cluster_core_isset = 0;
6979   AX_surfxml_cluster_bw = 0;
6980   surfxml_cluster_bw_isset = 0;
6981   AX_surfxml_cluster_lat = 0;
6982   surfxml_cluster_lat_isset = 0;
6983   AX_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FULLDUPLEX;
6984   surfxml_cluster_sharing_policy_isset = 0;
6985   AX_surfxml_cluster_bb_bw = 0;
6986   surfxml_cluster_bb_bw_isset = 0;
6987   AX_surfxml_cluster_bb_lat = 0;
6988   surfxml_cluster_bb_lat_isset = 0;
6989   AX_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_SHARED;
6990   surfxml_cluster_bb_sharing_policy_isset = 0;
6991   AX_surfxml_cluster_availability_file = 0;
6992   surfxml_cluster_availability_file_isset = 0;
6993   AX_surfxml_cluster_state_file = 0;
6994   surfxml_cluster_state_file_isset = 0;
6995   AX_surfxml_cluster_router_id = 0;
6996   surfxml_cluster_router_id_isset = 0;
6997   ENTER(AL_surfxml_cluster); pushbuffer(0);
6998   }
6999         YY_BREAK
7000
7001 case 235:
7002 /* rule 235 can match eol */
7003 YY_RULE_SETUP
7004 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);
7005         YY_BREAK
7006 case 236:
7007 /* rule 236 can match eol */
7008 YY_RULE_SETUP
7009 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);
7010         YY_BREAK
7011 case 237:
7012 /* rule 237 can match eol */
7013 YY_RULE_SETUP
7014 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);
7015         YY_BREAK
7016 case 238:
7017 /* rule 238 can match eol */
7018 YY_RULE_SETUP
7019 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);
7020         YY_BREAK
7021 case 239:
7022 /* rule 239 can match eol */
7023 YY_RULE_SETUP
7024 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);
7025         YY_BREAK
7026 case 240:
7027 /* rule 240 can match eol */
7028 YY_RULE_SETUP
7029 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);
7030         YY_BREAK
7031 case 241:
7032 /* rule 241 can match eol */
7033 YY_RULE_SETUP
7034 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);
7035         YY_BREAK
7036 case 242:
7037 /* rule 242 can match eol */
7038 YY_RULE_SETUP
7039 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);
7040         YY_BREAK
7041 case 243:
7042 /* rule 243 can match eol */
7043 YY_RULE_SETUP
7044 if (surfxml_cluster_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cluster>");} surfxml_cluster_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_power);
7045         YY_BREAK
7046 case 244:
7047 /* rule 244 can match eol */
7048 YY_RULE_SETUP
7049 if (surfxml_cluster_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cluster>");}  surfxml_cluster_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_power);
7050         YY_BREAK
7051 case 245:
7052 /* rule 245 can match eol */
7053 YY_RULE_SETUP
7054 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);
7055         YY_BREAK
7056 case 246:
7057 /* rule 246 can match eol */
7058 YY_RULE_SETUP
7059 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);
7060         YY_BREAK
7061 case 247:
7062 /* rule 247 can match eol */
7063 YY_RULE_SETUP
7064 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);
7065         YY_BREAK
7066 case 248:
7067 /* rule 248 can match eol */
7068 YY_RULE_SETUP
7069 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);
7070         YY_BREAK
7071 case 249:
7072 /* rule 249 can match eol */
7073 YY_RULE_SETUP
7074 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);
7075         YY_BREAK
7076 case 250:
7077 /* rule 250 can match eol */
7078 YY_RULE_SETUP
7079 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);
7080         YY_BREAK
7081 case 251:
7082 /* rule 251 can match eol */
7083 case 252:
7084 /* rule 252 can match eol */
7085 YY_RULE_SETUP
7086 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_SHARED;
7087         YY_BREAK
7088 case 253:
7089 /* rule 253 can match eol */
7090 case 254:
7091 /* rule 254 can match eol */
7092 YY_RULE_SETUP
7093 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FULLDUPLEX;
7094         YY_BREAK
7095 case 255:
7096 /* rule 255 can match eol */
7097 case 256:
7098 /* rule 256 can match eol */
7099 YY_RULE_SETUP
7100 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FATPIPE;
7101         YY_BREAK
7102 case 257:
7103 /* rule 257 can match eol */
7104 YY_RULE_SETUP
7105 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);
7106         YY_BREAK
7107 case 258:
7108 /* rule 258 can match eol */
7109 YY_RULE_SETUP
7110 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);
7111         YY_BREAK
7112 case 259:
7113 /* rule 259 can match eol */
7114 YY_RULE_SETUP
7115 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);
7116         YY_BREAK
7117 case 260:
7118 /* rule 260 can match eol */
7119 YY_RULE_SETUP
7120 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);
7121         YY_BREAK
7122 case 261:
7123 /* rule 261 can match eol */
7124 case 262:
7125 /* rule 262 can match eol */
7126 YY_RULE_SETUP
7127 A_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_SHARED;
7128         YY_BREAK
7129 case 263:
7130 /* rule 263 can match eol */
7131 case 264:
7132 /* rule 264 can match eol */
7133 YY_RULE_SETUP
7134 A_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_FATPIPE;
7135         YY_BREAK
7136 case 265:
7137 /* rule 265 can match eol */
7138 YY_RULE_SETUP
7139 if (surfxml_cluster_availability_file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_cluster>");} surfxml_cluster_availability_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_availability_file);
7140         YY_BREAK
7141 case 266:
7142 /* rule 266 can match eol */
7143 YY_RULE_SETUP
7144 if (surfxml_cluster_availability_file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_cluster>");}  surfxml_cluster_availability_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_availability_file);
7145         YY_BREAK
7146 case 267:
7147 /* rule 267 can match eol */
7148 YY_RULE_SETUP
7149 if (surfxml_cluster_state_file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_cluster>");} surfxml_cluster_state_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_state_file);
7150         YY_BREAK
7151 case 268:
7152 /* rule 268 can match eol */
7153 YY_RULE_SETUP
7154 if (surfxml_cluster_state_file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_cluster>");}  surfxml_cluster_state_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_state_file);
7155         YY_BREAK
7156 case 269:
7157 /* rule 269 can match eol */
7158 YY_RULE_SETUP
7159 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);
7160         YY_BREAK
7161 case 270:
7162 /* rule 270 can match eol */
7163 YY_RULE_SETUP
7164 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);
7165         YY_BREAK
7166 case 271:
7167 YY_RULE_SETUP
7168 {
7169   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7170   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7171   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7172   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7173   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
7174   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7175   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7176   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cluster);
7177  }
7178         YY_BREAK
7179 case 272:
7180 YY_RULE_SETUP
7181 {
7182   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7183   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7184   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7185   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7186   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
7187   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7188   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7189   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
7190   switch (YY_START) {
7191    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
7192    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7193    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7194   }
7195  }
7196         YY_BREAK
7197 case 273:
7198 YY_RULE_SETUP
7199 FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
7200         YY_BREAK
7201 case 274:
7202 YY_RULE_SETUP
7203 FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
7204         YY_BREAK
7205 case YY_STATE_EOF(AL_surfxml_cluster):
7206 FAIL("EOF in attribute list of `cluster' element.");
7207         YY_BREAK
7208
7209 case 275:
7210 /* rule 275 can match eol */
7211 YY_RULE_SETUP
7212 {
7213   LEAVE;
7214   ETag_surfxml_cluster();
7215   popbuffer(); /* attribute */
7216   switch (YY_START) {
7217    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
7218    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7219    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7220   }
7221  }
7222         YY_BREAK
7223 case 276:
7224 /* rule 276 can match eol */
7225 YY_RULE_SETUP
7226 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
7227         YY_BREAK
7228 case 277:
7229 YY_RULE_SETUP
7230 FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
7231         YY_BREAK
7232 case YY_STATE_EOF(E_surfxml_cluster):
7233 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cluster>' expected.");
7234         YY_BREAK
7235
7236 case 278:
7237 /* rule 278 can match eol */
7238 YY_RULE_SETUP
7239 FAIL("Starting tag <cabinet> is not allowed here.");
7240         YY_BREAK
7241 case 279:
7242 /* rule 279 can match eol */
7243 YY_RULE_SETUP
7244 {
7245   AX_surfxml_cabinet_id = 0;
7246   surfxml_cabinet_id_isset = 0;
7247   AX_surfxml_cabinet_prefix = 0;
7248   surfxml_cabinet_prefix_isset = 0;
7249   AX_surfxml_cabinet_suffix = 0;
7250   surfxml_cabinet_suffix_isset = 0;
7251   AX_surfxml_cabinet_radical = 0;
7252   surfxml_cabinet_radical_isset = 0;
7253   AX_surfxml_cabinet_power = 0;
7254   surfxml_cabinet_power_isset = 0;
7255   AX_surfxml_cabinet_bw = 0;
7256   surfxml_cabinet_bw_isset = 0;
7257   AX_surfxml_cabinet_lat = 0;
7258   surfxml_cabinet_lat_isset = 0;
7259   ENTER(AL_surfxml_cabinet); pushbuffer(0);
7260   }
7261         YY_BREAK
7262
7263 case 280:
7264 /* rule 280 can match eol */
7265 YY_RULE_SETUP
7266 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);
7267         YY_BREAK
7268 case 281:
7269 /* rule 281 can match eol */
7270 YY_RULE_SETUP
7271 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);
7272         YY_BREAK
7273 case 282:
7274 /* rule 282 can match eol */
7275 YY_RULE_SETUP
7276 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);
7277         YY_BREAK
7278 case 283:
7279 /* rule 283 can match eol */
7280 YY_RULE_SETUP
7281 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);
7282         YY_BREAK
7283 case 284:
7284 /* rule 284 can match eol */
7285 YY_RULE_SETUP
7286 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);
7287         YY_BREAK
7288 case 285:
7289 /* rule 285 can match eol */
7290 YY_RULE_SETUP
7291 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);
7292         YY_BREAK
7293 case 286:
7294 /* rule 286 can match eol */
7295 YY_RULE_SETUP
7296 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);
7297         YY_BREAK
7298 case 287:
7299 /* rule 287 can match eol */
7300 YY_RULE_SETUP
7301 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);
7302         YY_BREAK
7303 case 288:
7304 /* rule 288 can match eol */
7305 YY_RULE_SETUP
7306 if (surfxml_cabinet_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cabinet>");} surfxml_cabinet_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_power);
7307         YY_BREAK
7308 case 289:
7309 /* rule 289 can match eol */
7310 YY_RULE_SETUP
7311 if (surfxml_cabinet_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cabinet>");}  surfxml_cabinet_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_power);
7312         YY_BREAK
7313 case 290:
7314 /* rule 290 can match eol */
7315 YY_RULE_SETUP
7316 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);
7317         YY_BREAK
7318 case 291:
7319 /* rule 291 can match eol */
7320 YY_RULE_SETUP
7321 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);
7322         YY_BREAK
7323 case 292:
7324 /* rule 292 can match eol */
7325 YY_RULE_SETUP
7326 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);
7327         YY_BREAK
7328 case 293:
7329 /* rule 293 can match eol */
7330 YY_RULE_SETUP
7331 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);
7332         YY_BREAK
7333 case 294:
7334 YY_RULE_SETUP
7335 {
7336   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7337   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7338   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7339   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7340   if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
7341   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7342   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7343   LEAVE; STag_surfxml_cabinet();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cabinet);
7344  }
7345         YY_BREAK
7346 case 295:
7347 YY_RULE_SETUP
7348 {
7349   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7350   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7351   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7352   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7353   if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
7354   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7355   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7356   LEAVE; STag_surfxml_cabinet(); surfxml_pcdata_ix = 0; ETag_surfxml_cabinet(); popbuffer(); /* attribute */
7357   switch (YY_START) {
7358    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7359    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7360    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7361    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7362   }
7363  }
7364         YY_BREAK
7365 case 296:
7366 YY_RULE_SETUP
7367 FAIL("Unexpected character `%c' in attribute list of cabinet element.", surf_parse_text[0]);
7368         YY_BREAK
7369 case 297:
7370 YY_RULE_SETUP
7371 FAIL("Bad attribute `%s' in `cabinet' element start tag.",surf_parse_text);
7372         YY_BREAK
7373 case YY_STATE_EOF(AL_surfxml_cabinet):
7374 FAIL("EOF in attribute list of `cabinet' element.");
7375         YY_BREAK
7376
7377 case 298:
7378 /* rule 298 can match eol */
7379 YY_RULE_SETUP
7380 {
7381   LEAVE;
7382   ETag_surfxml_cabinet();
7383   popbuffer(); /* attribute */
7384   switch (YY_START) {
7385    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7386    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7387    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7388    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7389   }
7390  }
7391         YY_BREAK
7392 case 299:
7393 /* rule 299 can match eol */
7394 YY_RULE_SETUP
7395 FAIL("Unexpected end-tag `%s': `</cabinet>' expected.",surf_parse_text);
7396         YY_BREAK
7397 case 300:
7398 YY_RULE_SETUP
7399 FAIL("Unexpected character `%c': `</cabinet>' expected.",surf_parse_text[0]);
7400         YY_BREAK
7401 case YY_STATE_EOF(E_surfxml_cabinet):
7402 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cabinet>' expected.");
7403         YY_BREAK
7404
7405 case 301:
7406 /* rule 301 can match eol */
7407 YY_RULE_SETUP
7408 FAIL("Starting tag <peer> is not allowed here.");
7409         YY_BREAK
7410 case 302:
7411 /* rule 302 can match eol */
7412 YY_RULE_SETUP
7413 {
7414   AX_surfxml_peer_id = 0;
7415   surfxml_peer_id_isset = 0;
7416   AX_surfxml_peer_power = 0;
7417   surfxml_peer_power_isset = 0;
7418   AX_surfxml_peer_bw_in = 0;
7419   surfxml_peer_bw_in_isset = 0;
7420   AX_surfxml_peer_bw_out = 0;
7421   surfxml_peer_bw_out_isset = 0;
7422   AX_surfxml_peer_lat = 0;
7423   surfxml_peer_lat_isset = 0;
7424   AX_surfxml_peer_coordinates = 0;
7425   surfxml_peer_coordinates_isset = 0;
7426   AX_surfxml_peer_availability_file = 0;
7427   surfxml_peer_availability_file_isset = 0;
7428   AX_surfxml_peer_state_file = 0;
7429   surfxml_peer_state_file_isset = 0;
7430   ENTER(AL_surfxml_peer); pushbuffer(0);
7431   }
7432         YY_BREAK
7433
7434 case 303:
7435 /* rule 303 can match eol */
7436 YY_RULE_SETUP
7437 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);
7438         YY_BREAK
7439 case 304:
7440 /* rule 304 can match eol */
7441 YY_RULE_SETUP
7442 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);
7443         YY_BREAK
7444 case 305:
7445 /* rule 305 can match eol */
7446 YY_RULE_SETUP
7447 if (surfxml_peer_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_peer>");} surfxml_peer_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_power);
7448         YY_BREAK
7449 case 306:
7450 /* rule 306 can match eol */
7451 YY_RULE_SETUP
7452 if (surfxml_peer_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_peer>");}  surfxml_peer_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_power);
7453         YY_BREAK
7454 case 307:
7455 /* rule 307 can match eol */
7456 YY_RULE_SETUP
7457 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);
7458         YY_BREAK
7459 case 308:
7460 /* rule 308 can match eol */
7461 YY_RULE_SETUP
7462 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);
7463         YY_BREAK
7464 case 309:
7465 /* rule 309 can match eol */
7466 YY_RULE_SETUP
7467 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);
7468         YY_BREAK
7469 case 310:
7470 /* rule 310 can match eol */
7471 YY_RULE_SETUP
7472 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);
7473         YY_BREAK
7474 case 311:
7475 /* rule 311 can match eol */
7476 YY_RULE_SETUP
7477 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);
7478         YY_BREAK
7479 case 312:
7480 /* rule 312 can match eol */
7481 YY_RULE_SETUP
7482 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);
7483         YY_BREAK
7484 case 313:
7485 /* rule 313 can match eol */
7486 YY_RULE_SETUP
7487 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);
7488         YY_BREAK
7489 case 314:
7490 /* rule 314 can match eol */
7491 YY_RULE_SETUP
7492 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);
7493         YY_BREAK
7494 case 315:
7495 /* rule 315 can match eol */
7496 YY_RULE_SETUP
7497 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);
7498         YY_BREAK
7499 case 316:
7500 /* rule 316 can match eol */
7501 YY_RULE_SETUP
7502 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);
7503         YY_BREAK
7504 case 317:
7505 /* rule 317 can match eol */
7506 YY_RULE_SETUP
7507 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);
7508         YY_BREAK
7509 case 318:
7510 /* rule 318 can match eol */
7511 YY_RULE_SETUP
7512 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);
7513         YY_BREAK
7514 case 319:
7515 YY_RULE_SETUP
7516 {
7517   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
7518   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
7519   if (!AX_surfxml_peer_bw_in) FAIL("Required attribute `bw_in' not set for `peer' element.");
7520   if (!AX_surfxml_peer_bw_out) FAIL("Required attribute `bw_out' not set for `peer' element.");
7521   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
7522   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
7523  }
7524         YY_BREAK
7525 case 320:
7526 YY_RULE_SETUP
7527 {
7528   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
7529   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
7530   if (!AX_surfxml_peer_bw_in) FAIL("Required attribute `bw_in' not set for `peer' element.");
7531   if (!AX_surfxml_peer_bw_out) FAIL("Required attribute `bw_out' not set for `peer' element.");
7532   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
7533   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
7534   switch (YY_START) {
7535    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
7536    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7537    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7538   }
7539  }
7540         YY_BREAK
7541 case 321:
7542 YY_RULE_SETUP
7543 FAIL("Unexpected character `%c' in attribute list of peer element.", surf_parse_text[0]);
7544         YY_BREAK
7545 case 322:
7546 YY_RULE_SETUP
7547 FAIL("Bad attribute `%s' in `peer' element start tag.",surf_parse_text);
7548         YY_BREAK
7549 case YY_STATE_EOF(AL_surfxml_peer):
7550 FAIL("EOF in attribute list of `peer' element.");
7551         YY_BREAK
7552
7553 case 323:
7554 /* rule 323 can match eol */
7555 YY_RULE_SETUP
7556 {
7557   LEAVE;
7558   ETag_surfxml_peer();
7559   popbuffer(); /* attribute */
7560   switch (YY_START) {
7561    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
7562    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7563    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7564   }
7565  }
7566         YY_BREAK
7567 case 324:
7568 /* rule 324 can match eol */
7569 YY_RULE_SETUP
7570 FAIL("Unexpected end-tag `%s': `</peer>' expected.",surf_parse_text);
7571         YY_BREAK
7572 case 325:
7573 YY_RULE_SETUP
7574 FAIL("Unexpected character `%c': `</peer>' expected.",surf_parse_text[0]);
7575         YY_BREAK
7576 case YY_STATE_EOF(E_surfxml_peer):
7577 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</peer>' expected.");
7578         YY_BREAK
7579
7580 case 326:
7581 /* rule 326 can match eol */
7582 YY_RULE_SETUP
7583 FAIL("Starting tag <router> is not allowed here.");
7584         YY_BREAK
7585 case 327:
7586 /* rule 327 can match eol */
7587 YY_RULE_SETUP
7588 {
7589   AX_surfxml_router_id = 0;
7590   surfxml_router_id_isset = 0;
7591   AX_surfxml_router_coordinates = 0;
7592   surfxml_router_coordinates_isset = 0;
7593   ENTER(AL_surfxml_router); pushbuffer(0);
7594   }
7595         YY_BREAK
7596
7597 case 328:
7598 /* rule 328 can match eol */
7599 YY_RULE_SETUP
7600 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);
7601         YY_BREAK
7602 case 329:
7603 /* rule 329 can match eol */
7604 YY_RULE_SETUP
7605 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);
7606         YY_BREAK
7607 case 330:
7608 /* rule 330 can match eol */
7609 YY_RULE_SETUP
7610 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);
7611         YY_BREAK
7612 case 331:
7613 /* rule 331 can match eol */
7614 YY_RULE_SETUP
7615 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);
7616         YY_BREAK
7617 case 332:
7618 YY_RULE_SETUP
7619 {
7620   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
7621   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
7622  }
7623         YY_BREAK
7624 case 333:
7625 YY_RULE_SETUP
7626 {
7627   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
7628   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
7629   switch (YY_START) {
7630    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7631   }
7632  }
7633         YY_BREAK
7634 case 334:
7635 YY_RULE_SETUP
7636 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
7637         YY_BREAK
7638 case 335:
7639 YY_RULE_SETUP
7640 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
7641         YY_BREAK
7642 case YY_STATE_EOF(AL_surfxml_router):
7643 FAIL("EOF in attribute list of `router' element.");
7644         YY_BREAK
7645
7646 case 336:
7647 /* rule 336 can match eol */
7648 YY_RULE_SETUP
7649 {
7650   LEAVE;
7651   ETag_surfxml_router();
7652   popbuffer(); /* attribute */
7653   switch (YY_START) {
7654    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7655   }
7656  }
7657         YY_BREAK
7658 case 337:
7659 /* rule 337 can match eol */
7660 YY_RULE_SETUP
7661 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
7662         YY_BREAK
7663 case 338:
7664 YY_RULE_SETUP
7665 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
7666         YY_BREAK
7667 case YY_STATE_EOF(E_surfxml_router):
7668 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</router>' expected.");
7669         YY_BREAK
7670
7671 case 339:
7672 /* rule 339 can match eol */
7673 YY_RULE_SETUP
7674 FAIL("Starting tag <backbone> is not allowed here.");
7675         YY_BREAK
7676 case 340:
7677 /* rule 340 can match eol */
7678 YY_RULE_SETUP
7679 {
7680   AX_surfxml_backbone_id = 0;
7681   surfxml_backbone_id_isset = 0;
7682   AX_surfxml_backbone_bandwidth = 0;
7683   surfxml_backbone_bandwidth_isset = 0;
7684   AX_surfxml_backbone_latency = 0;
7685   surfxml_backbone_latency_isset = 0;
7686   ENTER(AL_surfxml_backbone); pushbuffer(0);
7687   }
7688         YY_BREAK
7689
7690 case 341:
7691 /* rule 341 can match eol */
7692 YY_RULE_SETUP
7693 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);
7694         YY_BREAK
7695 case 342:
7696 /* rule 342 can match eol */
7697 YY_RULE_SETUP
7698 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);
7699         YY_BREAK
7700 case 343:
7701 /* rule 343 can match eol */
7702 YY_RULE_SETUP
7703 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);
7704         YY_BREAK
7705 case 344:
7706 /* rule 344 can match eol */
7707 YY_RULE_SETUP
7708 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);
7709         YY_BREAK
7710 case 345:
7711 /* rule 345 can match eol */
7712 YY_RULE_SETUP
7713 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);
7714         YY_BREAK
7715 case 346:
7716 /* rule 346 can match eol */
7717 YY_RULE_SETUP
7718 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);
7719         YY_BREAK
7720 case 347:
7721 YY_RULE_SETUP
7722 {
7723   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
7724   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
7725   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
7726   LEAVE; STag_surfxml_backbone();surfxml_pcdata_ix = 0; ENTER(E_surfxml_backbone);
7727  }
7728         YY_BREAK
7729 case 348:
7730 YY_RULE_SETUP
7731 {
7732   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
7733   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
7734   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
7735   LEAVE; STag_surfxml_backbone(); surfxml_pcdata_ix = 0; ETag_surfxml_backbone(); popbuffer(); /* attribute */
7736   switch (YY_START) {
7737    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7738    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7739   }
7740  }
7741         YY_BREAK
7742 case 349:
7743 YY_RULE_SETUP
7744 FAIL("Unexpected character `%c' in attribute list of backbone element.", surf_parse_text[0]);
7745         YY_BREAK
7746 case 350:
7747 YY_RULE_SETUP
7748 FAIL("Bad attribute `%s' in `backbone' element start tag.",surf_parse_text);
7749         YY_BREAK
7750 case YY_STATE_EOF(AL_surfxml_backbone):
7751 FAIL("EOF in attribute list of `backbone' element.");
7752         YY_BREAK
7753
7754 case 351:
7755 /* rule 351 can match eol */
7756 YY_RULE_SETUP
7757 {
7758   LEAVE;
7759   ETag_surfxml_backbone();
7760   popbuffer(); /* attribute */
7761   switch (YY_START) {
7762    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7763    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7764   }
7765  }
7766         YY_BREAK
7767 case 352:
7768 /* rule 352 can match eol */
7769 YY_RULE_SETUP
7770 FAIL("Unexpected end-tag `%s': `</backbone>' expected.",surf_parse_text);
7771         YY_BREAK
7772 case 353:
7773 YY_RULE_SETUP
7774 FAIL("Unexpected character `%c': `</backbone>' expected.",surf_parse_text[0]);
7775         YY_BREAK
7776 case YY_STATE_EOF(E_surfxml_backbone):
7777 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</backbone>' expected.");
7778         YY_BREAK
7779
7780 case 354:
7781 /* rule 354 can match eol */
7782 YY_RULE_SETUP
7783 FAIL("Starting tag <link> is not allowed here.");
7784         YY_BREAK
7785 case 355:
7786 /* rule 355 can match eol */
7787 YY_RULE_SETUP
7788 {
7789   AX_surfxml_link_id = 0;
7790   surfxml_link_id_isset = 0;
7791   AX_surfxml_link_bandwidth = 0;
7792   surfxml_link_bandwidth_isset = 0;
7793   AX_surfxml_link_bandwidth_file = 0;
7794   surfxml_link_bandwidth_file_isset = 0;
7795   AX_surfxml_link_latency = 24;
7796   surfxml_link_latency_isset = 0;
7797   AX_surfxml_link_latency_file = 0;
7798   surfxml_link_latency_file_isset = 0;
7799   AX_surfxml_link_state = A_surfxml_link_state_ON;
7800   surfxml_link_state_isset = 0;
7801   AX_surfxml_link_state_file = 0;
7802   surfxml_link_state_file_isset = 0;
7803   AX_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
7804   surfxml_link_sharing_policy_isset = 0;
7805   ENTER(AL_surfxml_link); pushbuffer(0);
7806   }
7807         YY_BREAK
7808
7809 case 356:
7810 /* rule 356 can match eol */
7811 YY_RULE_SETUP
7812 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);
7813         YY_BREAK
7814 case 357:
7815 /* rule 357 can match eol */
7816 YY_RULE_SETUP
7817 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);
7818         YY_BREAK
7819 case 358:
7820 /* rule 358 can match eol */
7821 YY_RULE_SETUP
7822 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);
7823         YY_BREAK
7824 case 359:
7825 /* rule 359 can match eol */
7826 YY_RULE_SETUP
7827 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);
7828         YY_BREAK
7829 case 360:
7830 /* rule 360 can match eol */
7831 YY_RULE_SETUP
7832 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);
7833         YY_BREAK
7834 case 361:
7835 /* rule 361 can match eol */
7836 YY_RULE_SETUP
7837 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);
7838         YY_BREAK
7839 case 362:
7840 /* rule 362 can match eol */
7841 YY_RULE_SETUP
7842 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);
7843         YY_BREAK
7844 case 363:
7845 /* rule 363 can match eol */
7846 YY_RULE_SETUP
7847 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);
7848         YY_BREAK
7849 case 364:
7850 /* rule 364 can match eol */
7851 YY_RULE_SETUP
7852 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);
7853         YY_BREAK
7854 case 365:
7855 /* rule 365 can match eol */
7856 YY_RULE_SETUP
7857 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);
7858         YY_BREAK
7859 case 366:
7860 /* rule 366 can match eol */
7861 case 367:
7862 /* rule 367 can match eol */
7863 YY_RULE_SETUP
7864 A_surfxml_link_state = A_surfxml_link_state_ON;
7865         YY_BREAK
7866 case 368:
7867 /* rule 368 can match eol */
7868 case 369:
7869 /* rule 369 can match eol */
7870 YY_RULE_SETUP
7871 A_surfxml_link_state = A_surfxml_link_state_OFF;
7872         YY_BREAK
7873 case 370:
7874 /* rule 370 can match eol */
7875 YY_RULE_SETUP
7876 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);
7877         YY_BREAK
7878 case 371:
7879 /* rule 371 can match eol */
7880 YY_RULE_SETUP
7881 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);
7882         YY_BREAK
7883 case 372:
7884 /* rule 372 can match eol */
7885 case 373:
7886 /* rule 373 can match eol */
7887 YY_RULE_SETUP
7888 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
7889         YY_BREAK
7890 case 374:
7891 /* rule 374 can match eol */
7892 case 375:
7893 /* rule 375 can match eol */
7894 YY_RULE_SETUP
7895 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FATPIPE;
7896         YY_BREAK
7897 case 376:
7898 /* rule 376 can match eol */
7899 case 377:
7900 /* rule 377 can match eol */
7901 YY_RULE_SETUP
7902 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FULLDUPLEX;
7903         YY_BREAK
7904 case 378:
7905 YY_RULE_SETUP
7906 {
7907   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
7908   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
7909   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
7910  }
7911         YY_BREAK
7912 case 379:
7913 YY_RULE_SETUP
7914 {
7915   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
7916   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
7917   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
7918   switch (YY_START) {
7919    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7920    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7921   }
7922  }
7923         YY_BREAK
7924 case 380:
7925 YY_RULE_SETUP
7926 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
7927         YY_BREAK
7928 case 381:
7929 YY_RULE_SETUP
7930 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
7931         YY_BREAK
7932 case YY_STATE_EOF(AL_surfxml_link):
7933 FAIL("EOF in attribute list of `link' element.");
7934         YY_BREAK
7935
7936 case 382:
7937 /* rule 382 can match eol */
7938 YY_RULE_SETUP
7939 {
7940   LEAVE;
7941   ETag_surfxml_link();
7942   popbuffer(); /* attribute */
7943   switch (YY_START) {
7944    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7945    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7946   }
7947  }
7948         YY_BREAK
7949 case 383:
7950 /* rule 383 can match eol */
7951 YY_RULE_SETUP
7952 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
7953         YY_BREAK
7954 case 384:
7955 YY_RULE_SETUP
7956 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
7957         YY_BREAK
7958 case YY_STATE_EOF(E_surfxml_link):
7959 case YY_STATE_EOF(S_surfxml_link_2):
7960 case YY_STATE_EOF(S_surfxml_link):
7961 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link>' expected.");
7962         YY_BREAK
7963
7964 case 385:
7965 /* rule 385 can match eol */
7966 YY_RULE_SETUP
7967 FAIL("Starting tag <route> is not allowed here.");
7968         YY_BREAK
7969 case 386:
7970 /* rule 386 can match eol */
7971 YY_RULE_SETUP
7972 {
7973   AX_surfxml_route_src = 0;
7974   surfxml_route_src_isset = 0;
7975   AX_surfxml_route_dst = 0;
7976   surfxml_route_dst_isset = 0;
7977   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
7978   surfxml_route_symmetrical_isset = 0;
7979   ENTER(AL_surfxml_route); pushbuffer(0);
7980   }
7981         YY_BREAK
7982
7983 case 387:
7984 /* rule 387 can match eol */
7985 YY_RULE_SETUP
7986 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);
7987         YY_BREAK
7988 case 388:
7989 /* rule 388 can match eol */
7990 YY_RULE_SETUP
7991 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);
7992         YY_BREAK
7993 case 389:
7994 /* rule 389 can match eol */
7995 YY_RULE_SETUP
7996 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);
7997         YY_BREAK
7998 case 390:
7999 /* rule 390 can match eol */
8000 YY_RULE_SETUP
8001 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);
8002         YY_BREAK
8003 case 391:
8004 /* rule 391 can match eol */
8005 case 392:
8006 /* rule 392 can match eol */
8007 YY_RULE_SETUP
8008 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
8009         YY_BREAK
8010 case 393:
8011 /* rule 393 can match eol */
8012 case 394:
8013 /* rule 394 can match eol */
8014 YY_RULE_SETUP
8015 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
8016         YY_BREAK
8017 case 395:
8018 YY_RULE_SETUP
8019 {
8020   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8021   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8022   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
8023  }
8024         YY_BREAK
8025 case 396:
8026 YY_RULE_SETUP
8027 {
8028   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8029   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8030   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
8031   switch (YY_START) {
8032    case S_surfxml_AS_12: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_15: case S_surfxml_AS_3: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
8033   }
8034  }
8035         YY_BREAK
8036 case 397:
8037 YY_RULE_SETUP
8038 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
8039         YY_BREAK
8040 case 398:
8041 YY_RULE_SETUP
8042 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
8043         YY_BREAK
8044 case YY_STATE_EOF(AL_surfxml_route):
8045 FAIL("EOF in attribute list of `route' element.");
8046         YY_BREAK
8047
8048 case 399:
8049 /* rule 399 can match eol */
8050 YY_RULE_SETUP
8051 {
8052   LEAVE;
8053   ETag_surfxml_route();
8054   popbuffer(); /* attribute */
8055   switch (YY_START) {
8056    case S_surfxml_AS_12: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_15: case S_surfxml_AS_3: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
8057   }
8058  }
8059         YY_BREAK
8060 case 400:
8061 /* rule 400 can match eol */
8062 YY_RULE_SETUP
8063 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
8064         YY_BREAK
8065 case 401:
8066 YY_RULE_SETUP
8067 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
8068         YY_BREAK
8069 case YY_STATE_EOF(S_surfxml_route):
8070 case YY_STATE_EOF(S_surfxml_route_2):
8071 case YY_STATE_EOF(E_surfxml_route):
8072 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</route>' expected.");
8073         YY_BREAK
8074
8075 case 402:
8076 /* rule 402 can match eol */
8077 YY_RULE_SETUP
8078 FAIL("Starting tag <ASroute> is not allowed here.");
8079         YY_BREAK
8080 case 403:
8081 /* rule 403 can match eol */
8082 YY_RULE_SETUP
8083 {
8084   AX_surfxml_ASroute_src = 0;
8085   surfxml_ASroute_src_isset = 0;
8086   AX_surfxml_ASroute_dst = 0;
8087   surfxml_ASroute_dst_isset = 0;
8088   AX_surfxml_ASroute_gw_src = 0;
8089   surfxml_ASroute_gw_src_isset = 0;
8090   AX_surfxml_ASroute_gw_dst = 0;
8091   surfxml_ASroute_gw_dst_isset = 0;
8092   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
8093   surfxml_ASroute_symmetrical_isset = 0;
8094   ENTER(AL_surfxml_ASroute); pushbuffer(0);
8095   }
8096         YY_BREAK
8097
8098 case 404:
8099 /* rule 404 can match eol */
8100 YY_RULE_SETUP
8101 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);
8102         YY_BREAK
8103 case 405:
8104 /* rule 405 can match eol */
8105 YY_RULE_SETUP
8106 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);
8107         YY_BREAK
8108 case 406:
8109 /* rule 406 can match eol */
8110 YY_RULE_SETUP
8111 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);
8112         YY_BREAK
8113 case 407:
8114 /* rule 407 can match eol */
8115 YY_RULE_SETUP
8116 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);
8117         YY_BREAK
8118 case 408:
8119 /* rule 408 can match eol */
8120 YY_RULE_SETUP
8121 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);
8122         YY_BREAK
8123 case 409:
8124 /* rule 409 can match eol */
8125 YY_RULE_SETUP
8126 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);
8127         YY_BREAK
8128 case 410:
8129 /* rule 410 can match eol */
8130 YY_RULE_SETUP
8131 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);
8132         YY_BREAK
8133 case 411:
8134 /* rule 411 can match eol */
8135 YY_RULE_SETUP
8136 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);
8137         YY_BREAK
8138 case 412:
8139 /* rule 412 can match eol */
8140 case 413:
8141 /* rule 413 can match eol */
8142 YY_RULE_SETUP
8143 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
8144         YY_BREAK
8145 case 414:
8146 /* rule 414 can match eol */
8147 case 415:
8148 /* rule 415 can match eol */
8149 YY_RULE_SETUP
8150 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
8151         YY_BREAK
8152 case 416:
8153 YY_RULE_SETUP
8154 {
8155   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
8156   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
8157   if (!AX_surfxml_ASroute_gw_src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
8158   if (!AX_surfxml_ASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
8159   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
8160  }
8161         YY_BREAK
8162 case 417:
8163 YY_RULE_SETUP
8164 {
8165   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
8166   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
8167   if (!AX_surfxml_ASroute_gw_src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
8168   if (!AX_surfxml_ASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
8169   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
8170   switch (YY_START) {
8171    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
8172   }
8173  }
8174         YY_BREAK
8175 case 418:
8176 YY_RULE_SETUP
8177 FAIL("Unexpected character `%c' in attribute list of ASroute element.", surf_parse_text[0]);
8178         YY_BREAK
8179 case 419:
8180 YY_RULE_SETUP
8181 FAIL("Bad attribute `%s' in `ASroute' element start tag.",surf_parse_text);
8182         YY_BREAK
8183 case YY_STATE_EOF(AL_surfxml_ASroute):
8184 FAIL("EOF in attribute list of `ASroute' element.");
8185         YY_BREAK
8186
8187 case 420:
8188 /* rule 420 can match eol */
8189 YY_RULE_SETUP
8190 {
8191   LEAVE;
8192   ETag_surfxml_ASroute();
8193   popbuffer(); /* attribute */
8194   switch (YY_START) {
8195    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
8196   }
8197  }
8198         YY_BREAK
8199 case 421:
8200 /* rule 421 can match eol */
8201 YY_RULE_SETUP
8202 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",surf_parse_text);
8203         YY_BREAK
8204 case 422:
8205 YY_RULE_SETUP
8206 FAIL("Unexpected character `%c': `</ASroute>' expected.",surf_parse_text[0]);
8207         YY_BREAK
8208 case YY_STATE_EOF(E_surfxml_ASroute):
8209 case YY_STATE_EOF(S_surfxml_ASroute):
8210 case YY_STATE_EOF(S_surfxml_ASroute_2):
8211 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</ASroute>' expected.");
8212         YY_BREAK
8213
8214 case 423:
8215 /* rule 423 can match eol */
8216 YY_RULE_SETUP
8217 FAIL("Starting tag <link_ctn> is not allowed here.");
8218         YY_BREAK
8219 case 424:
8220 /* rule 424 can match eol */
8221 YY_RULE_SETUP
8222 {
8223   AX_surfxml_link_ctn_id = 0;
8224   surfxml_link_ctn_id_isset = 0;
8225   AX_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_NONE;
8226   surfxml_link_ctn_direction_isset = 0;
8227   ENTER(AL_surfxml_link_ctn); pushbuffer(0);
8228   }
8229         YY_BREAK
8230
8231 case 425:
8232 /* rule 425 can match eol */
8233 YY_RULE_SETUP
8234 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);
8235         YY_BREAK
8236 case 426:
8237 /* rule 426 can match eol */
8238 YY_RULE_SETUP
8239 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);
8240         YY_BREAK
8241 case 427:
8242 /* rule 427 can match eol */
8243 case 428:
8244 /* rule 428 can match eol */
8245 YY_RULE_SETUP
8246 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_UP;
8247         YY_BREAK
8248 case 429:
8249 /* rule 429 can match eol */
8250 case 430:
8251 /* rule 430 can match eol */
8252 YY_RULE_SETUP
8253 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_DOWN;
8254         YY_BREAK
8255 case 431:
8256 /* rule 431 can match eol */
8257 case 432:
8258 /* rule 432 can match eol */
8259 YY_RULE_SETUP
8260 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_NONE;
8261         YY_BREAK
8262 case 433:
8263 YY_RULE_SETUP
8264 {
8265   if (!AX_surfxml_link_ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8266   LEAVE; STag_surfxml_link_ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link_ctn);
8267  }
8268         YY_BREAK
8269 case 434:
8270 YY_RULE_SETUP
8271 {
8272   if (!AX_surfxml_link_ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8273   LEAVE; STag_surfxml_link_ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link_ctn(); popbuffer(); /* attribute */
8274   switch (YY_START) {
8275    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
8276    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
8277    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
8278    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
8279   }
8280  }
8281         YY_BREAK
8282 case 435:
8283 YY_RULE_SETUP
8284 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", surf_parse_text[0]);
8285         YY_BREAK
8286 case 436:
8287 YY_RULE_SETUP
8288 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",surf_parse_text);
8289         YY_BREAK
8290 case YY_STATE_EOF(AL_surfxml_link_ctn):
8291 FAIL("EOF in attribute list of `link_ctn' element.");
8292         YY_BREAK
8293
8294 case 437:
8295 /* rule 437 can match eol */
8296 YY_RULE_SETUP
8297 {
8298   LEAVE;
8299   ETag_surfxml_link_ctn();
8300   popbuffer(); /* attribute */
8301   switch (YY_START) {
8302    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
8303    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
8304    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
8305    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
8306   }
8307  }
8308         YY_BREAK
8309 case 438:
8310 /* rule 438 can match eol */
8311 YY_RULE_SETUP
8312 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",surf_parse_text);
8313         YY_BREAK
8314 case 439:
8315 YY_RULE_SETUP
8316 FAIL("Unexpected character `%c': `</link_ctn>' expected.",surf_parse_text[0]);
8317         YY_BREAK
8318 case YY_STATE_EOF(E_surfxml_link_ctn):
8319 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link_ctn>' expected.");
8320         YY_BREAK
8321
8322 case 440:
8323 /* rule 440 can match eol */
8324 YY_RULE_SETUP
8325 FAIL("Starting tag <bypassRoute> is not allowed here.");
8326         YY_BREAK
8327 case 441:
8328 /* rule 441 can match eol */
8329 YY_RULE_SETUP
8330 {
8331   AX_surfxml_bypassRoute_src = 0;
8332   surfxml_bypassRoute_src_isset = 0;
8333   AX_surfxml_bypassRoute_dst = 0;
8334   surfxml_bypassRoute_dst_isset = 0;
8335   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
8336   }
8337         YY_BREAK
8338
8339 case 442:
8340 /* rule 442 can match eol */
8341 YY_RULE_SETUP
8342 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);
8343         YY_BREAK
8344 case 443:
8345 /* rule 443 can match eol */
8346 YY_RULE_SETUP
8347 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);
8348         YY_BREAK
8349 case 444:
8350 /* rule 444 can match eol */
8351 YY_RULE_SETUP
8352 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);
8353         YY_BREAK
8354 case 445:
8355 /* rule 445 can match eol */
8356 YY_RULE_SETUP
8357 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);
8358         YY_BREAK
8359 case 446:
8360 YY_RULE_SETUP
8361 {
8362   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
8363   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
8364   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
8365  }
8366         YY_BREAK
8367 case 447:
8368 YY_RULE_SETUP
8369 {
8370   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
8371   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
8372   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
8373   switch (YY_START) {
8374    case S_surfxml_AS_12: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_15: case S_surfxml_AS_3: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
8375   }
8376  }
8377         YY_BREAK
8378 case 448:
8379 YY_RULE_SETUP
8380 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", surf_parse_text[0]);
8381         YY_BREAK
8382 case 449:
8383 YY_RULE_SETUP
8384 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",surf_parse_text);
8385         YY_BREAK
8386 case YY_STATE_EOF(AL_surfxml_bypassRoute):
8387 FAIL("EOF in attribute list of `bypassRoute' element.");
8388         YY_BREAK
8389
8390 case 450:
8391 /* rule 450 can match eol */
8392 YY_RULE_SETUP
8393 {
8394   LEAVE;
8395   ETag_surfxml_bypassRoute();
8396   popbuffer(); /* attribute */
8397   switch (YY_START) {
8398    case S_surfxml_AS_12: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_15: case S_surfxml_AS_3: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
8399   }
8400  }
8401         YY_BREAK
8402 case 451:
8403 /* rule 451 can match eol */
8404 YY_RULE_SETUP
8405 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",surf_parse_text);
8406         YY_BREAK
8407 case 452:
8408 YY_RULE_SETUP
8409 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",surf_parse_text[0]);
8410         YY_BREAK
8411 case YY_STATE_EOF(S_surfxml_bypassRoute):
8412 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
8413 case YY_STATE_EOF(E_surfxml_bypassRoute):
8414 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassRoute>' expected.");
8415         YY_BREAK
8416
8417 case 453:
8418 /* rule 453 can match eol */
8419 YY_RULE_SETUP
8420 FAIL("Starting tag <bypassASroute> is not allowed here.");
8421         YY_BREAK
8422 case 454:
8423 /* rule 454 can match eol */
8424 YY_RULE_SETUP
8425 {
8426   AX_surfxml_bypassASroute_src = 0;
8427   surfxml_bypassASroute_src_isset = 0;
8428   AX_surfxml_bypassASroute_dst = 0;
8429   surfxml_bypassASroute_dst_isset = 0;
8430   AX_surfxml_bypassASroute_gw_src = 0;
8431   surfxml_bypassASroute_gw_src_isset = 0;
8432   AX_surfxml_bypassASroute_gw_dst = 0;
8433   surfxml_bypassASroute_gw_dst_isset = 0;
8434   ENTER(AL_surfxml_bypassASroute); pushbuffer(0);
8435   }
8436         YY_BREAK
8437
8438 case 455:
8439 /* rule 455 can match eol */
8440 YY_RULE_SETUP
8441 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);
8442         YY_BREAK
8443 case 456:
8444 /* rule 456 can match eol */
8445 YY_RULE_SETUP
8446 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);
8447         YY_BREAK
8448 case 457:
8449 /* rule 457 can match eol */
8450 YY_RULE_SETUP
8451 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);
8452         YY_BREAK
8453 case 458:
8454 /* rule 458 can match eol */
8455 YY_RULE_SETUP
8456 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);
8457         YY_BREAK
8458 case 459:
8459 /* rule 459 can match eol */
8460 YY_RULE_SETUP
8461 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);
8462         YY_BREAK
8463 case 460:
8464 /* rule 460 can match eol */
8465 YY_RULE_SETUP
8466 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);
8467         YY_BREAK
8468 case 461:
8469 /* rule 461 can match eol */
8470 YY_RULE_SETUP
8471 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);
8472         YY_BREAK
8473 case 462:
8474 /* rule 462 can match eol */
8475 YY_RULE_SETUP
8476 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);
8477         YY_BREAK
8478 case 463:
8479 YY_RULE_SETUP
8480 {
8481   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
8482   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
8483   if (!AX_surfxml_bypassASroute_gw_src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
8484   if (!AX_surfxml_bypassASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
8485   LEAVE; STag_surfxml_bypassASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassASroute);
8486  }
8487         YY_BREAK
8488 case 464:
8489 YY_RULE_SETUP
8490 {
8491   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
8492   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
8493   if (!AX_surfxml_bypassASroute_gw_src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
8494   if (!AX_surfxml_bypassASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
8495   LEAVE; STag_surfxml_bypassASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */
8496   switch (YY_START) {
8497    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
8498   }
8499  }
8500         YY_BREAK
8501 case 465:
8502 YY_RULE_SETUP
8503 FAIL("Unexpected character `%c' in attribute list of bypassASroute element.", surf_parse_text[0]);
8504         YY_BREAK
8505 case 466:
8506 YY_RULE_SETUP
8507 FAIL("Bad attribute `%s' in `bypassASroute' element start tag.",surf_parse_text);
8508         YY_BREAK
8509 case YY_STATE_EOF(AL_surfxml_bypassASroute):
8510 FAIL("EOF in attribute list of `bypassASroute' element.");
8511         YY_BREAK
8512
8513 case 467:
8514 /* rule 467 can match eol */
8515 YY_RULE_SETUP
8516 {
8517   LEAVE;
8518   ETag_surfxml_bypassASroute();
8519   popbuffer(); /* attribute */
8520   switch (YY_START) {
8521    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
8522   }
8523  }
8524         YY_BREAK
8525 case 468:
8526 /* rule 468 can match eol */
8527 YY_RULE_SETUP
8528 FAIL("Unexpected end-tag `%s': `</bypassASroute>' expected.",surf_parse_text);
8529         YY_BREAK
8530 case 469:
8531 YY_RULE_SETUP
8532 FAIL("Unexpected character `%c': `</bypassASroute>' expected.",surf_parse_text[0]);
8533         YY_BREAK
8534 case YY_STATE_EOF(S_surfxml_bypassASroute_2):
8535 case YY_STATE_EOF(E_surfxml_bypassASroute):
8536 case YY_STATE_EOF(S_surfxml_bypassASroute):
8537 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassASroute>' expected.");
8538         YY_BREAK
8539
8540 case 470:
8541 /* rule 470 can match eol */
8542 YY_RULE_SETUP
8543 FAIL("Starting tag <process> is not allowed here.");
8544         YY_BREAK
8545 case 471:
8546 /* rule 471 can match eol */
8547 YY_RULE_SETUP
8548 {
8549   AX_surfxml_process_host = 0;
8550   surfxml_process_host_isset = 0;
8551   AX_surfxml_process_function = 0;
8552   surfxml_process_function_isset = 0;
8553   AX_surfxml_process_start_time = 28;
8554   surfxml_process_start_time_isset = 0;
8555   AX_surfxml_process_kill_time = 33;
8556   surfxml_process_kill_time_isset = 0;
8557   AX_surfxml_process_on_failure = A_surfxml_process_on_failure_DIE;
8558   surfxml_process_on_failure_isset = 0;
8559   ENTER(AL_surfxml_process); pushbuffer(0);
8560   }
8561         YY_BREAK
8562
8563 case 472:
8564 /* rule 472 can match eol */
8565 YY_RULE_SETUP
8566 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);
8567         YY_BREAK
8568 case 473:
8569 /* rule 473 can match eol */
8570 YY_RULE_SETUP
8571 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);
8572         YY_BREAK
8573 case 474:
8574 /* rule 474 can match eol */
8575 YY_RULE_SETUP
8576 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);
8577         YY_BREAK
8578 case 475:
8579 /* rule 475 can match eol */
8580 YY_RULE_SETUP
8581 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);
8582         YY_BREAK
8583 case 476:
8584 /* rule 476 can match eol */
8585 YY_RULE_SETUP
8586 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);
8587         YY_BREAK
8588 case 477:
8589 /* rule 477 can match eol */
8590 YY_RULE_SETUP
8591 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);
8592         YY_BREAK
8593 case 478:
8594 /* rule 478 can match eol */
8595 YY_RULE_SETUP
8596 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);
8597         YY_BREAK
8598 case 479:
8599 /* rule 479 can match eol */
8600 YY_RULE_SETUP
8601 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);
8602         YY_BREAK
8603 case 480:
8604 /* rule 480 can match eol */
8605 case 481:
8606 /* rule 481 can match eol */
8607 YY_RULE_SETUP
8608 A_surfxml_process_on_failure = A_surfxml_process_on_failure_DIE;
8609         YY_BREAK
8610 case 482:
8611 /* rule 482 can match eol */
8612 case 483:
8613 /* rule 483 can match eol */
8614 YY_RULE_SETUP
8615 A_surfxml_process_on_failure = A_surfxml_process_on_failure_RESTART;
8616         YY_BREAK
8617 case 484:
8618 YY_RULE_SETUP
8619 {
8620   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
8621   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
8622   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
8623  }
8624         YY_BREAK
8625 case 485:
8626 YY_RULE_SETUP
8627 {
8628   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
8629   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
8630   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
8631   switch (YY_START) {
8632    case S_surfxml_platform_6: case S_surfxml_platform_4: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_8: case S_surfxml_platform_7: case S_surfxml_platform_3: SET(S_surfxml_platform_8); break;
8633   }
8634  }
8635         YY_BREAK
8636 case 486:
8637 YY_RULE_SETUP
8638 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
8639         YY_BREAK
8640 case 487:
8641 YY_RULE_SETUP
8642 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
8643         YY_BREAK
8644 case YY_STATE_EOF(AL_surfxml_process):
8645 FAIL("EOF in attribute list of `process' element.");
8646         YY_BREAK
8647
8648 case 488:
8649 /* rule 488 can match eol */
8650 YY_RULE_SETUP
8651 {
8652   LEAVE;
8653   ETag_surfxml_process();
8654   popbuffer(); /* attribute */
8655   switch (YY_START) {
8656    case S_surfxml_platform_6: case S_surfxml_platform_4: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_8: case S_surfxml_platform_7: case S_surfxml_platform_3: SET(S_surfxml_platform_8); break;
8657   }
8658  }
8659         YY_BREAK
8660 case 489:
8661 /* rule 489 can match eol */
8662 YY_RULE_SETUP
8663 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
8664         YY_BREAK
8665 case 490:
8666 YY_RULE_SETUP
8667 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
8668         YY_BREAK
8669 case YY_STATE_EOF(E_surfxml_process):
8670 case YY_STATE_EOF(S_surfxml_process):
8671 case YY_STATE_EOF(S_surfxml_process_2):
8672 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</process>' expected.");
8673         YY_BREAK
8674
8675 case 491:
8676 /* rule 491 can match eol */
8677 YY_RULE_SETUP
8678 FAIL("Starting tag <argument> is not allowed here.");
8679         YY_BREAK
8680 case 492:
8681 /* rule 492 can match eol */
8682 YY_RULE_SETUP
8683 {
8684   AX_surfxml_argument_value = 0;
8685   surfxml_argument_value_isset = 0;
8686   ENTER(AL_surfxml_argument); pushbuffer(0);
8687   }
8688         YY_BREAK
8689
8690 case 493:
8691 /* rule 493 can match eol */
8692 YY_RULE_SETUP
8693 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);
8694         YY_BREAK
8695 case 494:
8696 /* rule 494 can match eol */
8697 YY_RULE_SETUP
8698 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);
8699         YY_BREAK
8700 case 495:
8701 YY_RULE_SETUP
8702 {
8703   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
8704   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
8705  }
8706         YY_BREAK
8707 case 496:
8708 YY_RULE_SETUP
8709 {
8710   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
8711   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
8712   switch (YY_START) {
8713    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8714   }
8715  }
8716         YY_BREAK
8717 case 497:
8718 YY_RULE_SETUP
8719 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
8720         YY_BREAK
8721 case 498:
8722 YY_RULE_SETUP
8723 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
8724         YY_BREAK
8725 case YY_STATE_EOF(AL_surfxml_argument):
8726 FAIL("EOF in attribute list of `argument' element.");
8727         YY_BREAK
8728
8729 case 499:
8730 /* rule 499 can match eol */
8731 YY_RULE_SETUP
8732 {
8733   LEAVE;
8734   ETag_surfxml_argument();
8735   popbuffer(); /* attribute */
8736   switch (YY_START) {
8737    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8738   }
8739  }
8740         YY_BREAK
8741 case 500:
8742 /* rule 500 can match eol */
8743 YY_RULE_SETUP
8744 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
8745         YY_BREAK
8746 case 501:
8747 YY_RULE_SETUP
8748 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
8749         YY_BREAK
8750 case YY_STATE_EOF(E_surfxml_argument):
8751 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</argument>' expected.");
8752         YY_BREAK
8753
8754 case 502:
8755 /* rule 502 can match eol */
8756 YY_RULE_SETUP
8757 FAIL("Starting tag <config> is not allowed here.");
8758         YY_BREAK
8759 case 503:
8760 /* rule 503 can match eol */
8761 YY_RULE_SETUP
8762 {
8763   AX_surfxml_config_id = 0;
8764   surfxml_config_id_isset = 0;
8765   ENTER(AL_surfxml_config); pushbuffer(0);
8766   }
8767         YY_BREAK
8768
8769 case 504:
8770 /* rule 504 can match eol */
8771 YY_RULE_SETUP
8772 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);
8773         YY_BREAK
8774 case 505:
8775 /* rule 505 can match eol */
8776 YY_RULE_SETUP
8777 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);
8778         YY_BREAK
8779 case 506:
8780 YY_RULE_SETUP
8781 {
8782   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
8783  }
8784         YY_BREAK
8785 case 507:
8786 YY_RULE_SETUP
8787 {
8788   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
8789   switch (YY_START) {
8790    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
8791   }
8792  }
8793         YY_BREAK
8794 case 508:
8795 YY_RULE_SETUP
8796 FAIL("Unexpected character `%c' in attribute list of config element.", surf_parse_text[0]);
8797         YY_BREAK
8798 case 509:
8799 YY_RULE_SETUP
8800 FAIL("Bad attribute `%s' in `config' element start tag.",surf_parse_text);
8801         YY_BREAK
8802 case YY_STATE_EOF(AL_surfxml_config):
8803 FAIL("EOF in attribute list of `config' element.");
8804         YY_BREAK
8805
8806 case 510:
8807 /* rule 510 can match eol */
8808 YY_RULE_SETUP
8809 {
8810   LEAVE;
8811   ETag_surfxml_config();
8812   popbuffer(); /* attribute */
8813   switch (YY_START) {
8814    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
8815   }
8816  }
8817         YY_BREAK
8818 case 511:
8819 /* rule 511 can match eol */
8820 YY_RULE_SETUP
8821 FAIL("Unexpected end-tag `%s': `</config>' expected.",surf_parse_text);
8822         YY_BREAK
8823 case 512:
8824 YY_RULE_SETUP
8825 FAIL("Unexpected character `%c': `</config>' expected.",surf_parse_text[0]);
8826         YY_BREAK
8827 case YY_STATE_EOF(S_surfxml_config):
8828 case YY_STATE_EOF(S_surfxml_config_2):
8829 case YY_STATE_EOF(E_surfxml_config):
8830 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</config>' expected.");
8831         YY_BREAK
8832
8833 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
8834   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
8835 case 513:
8836 /* rule 513 can match eol */
8837 YY_RULE_SETUP
8838 FAIL("Starting tag <prop> is not allowed here.");
8839         YY_BREAK
8840 case 514:
8841 /* rule 514 can match eol */
8842 YY_RULE_SETUP
8843 {
8844   AX_surfxml_prop_id = 0;
8845   surfxml_prop_id_isset = 0;
8846   AX_surfxml_prop_value = 0;
8847   surfxml_prop_value_isset = 0;
8848   ENTER(AL_surfxml_prop); pushbuffer(0);
8849   }
8850         YY_BREAK
8851
8852 case 515:
8853 /* rule 515 can match eol */
8854 YY_RULE_SETUP
8855 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);
8856         YY_BREAK
8857 case 516:
8858 /* rule 516 can match eol */
8859 YY_RULE_SETUP
8860 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);
8861         YY_BREAK
8862 case 517:
8863 /* rule 517 can match eol */
8864 YY_RULE_SETUP
8865 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);
8866         YY_BREAK
8867 case 518:
8868 /* rule 518 can match eol */
8869 YY_RULE_SETUP
8870 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);
8871         YY_BREAK
8872 case 519:
8873 YY_RULE_SETUP
8874 {
8875   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
8876   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
8877   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
8878  }
8879         YY_BREAK
8880 case 520:
8881 YY_RULE_SETUP
8882 {
8883   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
8884   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
8885   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
8886   switch (YY_START) {
8887    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
8888    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
8889    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
8890    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8891    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
8892    case S_surfxml_storage_type_2: case S_surfxml_storage_type: case S_surfxml_storage_type_1: SET(S_surfxml_storage_type_2); break;
8893    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
8894   }
8895  }
8896         YY_BREAK
8897 case 521:
8898 YY_RULE_SETUP
8899 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
8900         YY_BREAK
8901 case 522:
8902 YY_RULE_SETUP
8903 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
8904         YY_BREAK
8905 case YY_STATE_EOF(AL_surfxml_prop):
8906 FAIL("EOF in attribute list of `prop' element.");
8907         YY_BREAK
8908
8909 case 523:
8910 /* rule 523 can match eol */
8911 YY_RULE_SETUP
8912 {
8913   LEAVE;
8914   ETag_surfxml_prop();
8915   popbuffer(); /* attribute */
8916   switch (YY_START) {
8917    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
8918    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
8919    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
8920    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8921    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
8922    case S_surfxml_storage_type_2: case S_surfxml_storage_type: case S_surfxml_storage_type_1: SET(S_surfxml_storage_type_2); break;
8923    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
8924   }
8925  }
8926         YY_BREAK
8927 case 524:
8928 /* rule 524 can match eol */
8929 YY_RULE_SETUP
8930 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
8931         YY_BREAK
8932 case 525:
8933 YY_RULE_SETUP
8934 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
8935         YY_BREAK
8936 case YY_STATE_EOF(E_surfxml_prop):
8937 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</prop>' expected.");
8938         YY_BREAK
8939
8940 /* EPILOG: after the root element. */
8941
8942 case 526:
8943 YY_RULE_SETUP
8944 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
8945         YY_BREAK
8946 case YY_STATE_EOF(EPILOG):
8947 SUCCEED;
8948         YY_BREAK
8949
8950 /* CHARACTER DATA. */
8951
8952 /* Non-defined standard entities... */
8953 case 527:
8954 YY_RULE_SETUP
8955 BUFFERPUTC('&');
8956         YY_BREAK
8957 case 528:
8958 YY_RULE_SETUP
8959 BUFFERPUTC('<');
8960         YY_BREAK
8961 case 529:
8962 YY_RULE_SETUP
8963 BUFFERPUTC('>');
8964         YY_BREAK
8965 case 530:
8966 YY_RULE_SETUP
8967 BUFFERPUTC('\'');
8968         YY_BREAK
8969 case 531:
8970 YY_RULE_SETUP
8971 BUFFERPUTC('"');
8972         YY_BREAK
8973 /* Character entities. */
8974 case 532:
8975 YY_RULE_SETUP
8976 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
8977         YY_BREAK
8978 case 533:
8979 YY_RULE_SETUP
8980 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
8981         YY_BREAK
8982
8983 case 534:
8984 /* rule 534 can match eol */
8985 case 535:
8986 /* rule 535 can match eol */
8987 case 536:
8988 /* rule 536 can match eol */
8989 case 537:
8990 /* rule 537 can match eol */
8991 YY_RULE_SETUP
8992 BUFFERPUTC('\n');
8993         YY_BREAK
8994
8995 case 538:
8996 YY_RULE_SETUP
8997 ENTER(CDATA);
8998         YY_BREAK
8999 case 539:
9000 YY_RULE_SETUP
9001 FAIL("Unexpected `]""]>' in character data.");
9002         YY_BREAK
9003
9004 case 540:
9005 YY_RULE_SETUP
9006 BUFFERDONE; LEAVE;
9007         YY_BREAK
9008 case YY_STATE_EOF(VALUE1):
9009 FAIL("EOF in literal (\"'\" expected).");
9010         YY_BREAK
9011
9012 case 541:
9013 YY_RULE_SETUP
9014 BUFFERDONE; LEAVE;
9015         YY_BREAK
9016 case YY_STATE_EOF(VALUE2):
9017 FAIL("EOF in literal (`\"' expected).");
9018         YY_BREAK
9019
9020 case 542:
9021 /* rule 542 can match eol */
9022 YY_RULE_SETUP
9023 BUFFERPUTC(surf_parse_text[0]);
9024         YY_BREAK
9025 case 543:
9026 YY_RULE_SETUP
9027 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
9028         YY_BREAK
9029
9030 case 544:
9031 YY_RULE_SETUP
9032 LEAVE;
9033         YY_BREAK
9034 /* "]""]"               BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
9035 case 545:
9036 YY_RULE_SETUP
9037 BUFFERPUTC(surf_parse_text[0]);
9038         YY_BREAK
9039 case YY_STATE_EOF(CDATA):
9040 FAIL("EOF in CDATA section.");
9041         YY_BREAK
9042
9043 /* Impossible rules to avoid warnings from flex(1). */
9044 /* Ideally, this should be replaced by code in flexml.pl that
9045     generates just the states not covered by other rules. */
9046
9047 case 546:
9048 /* rule 546 can match eol */
9049 YY_RULE_SETUP
9050 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
9051         YY_BREAK
9052
9053 case 547:
9054 YY_RULE_SETUP
9055 ECHO;
9056         YY_BREAK
9057 case YY_STATE_EOF(INITIAL):
9058 case YY_STATE_EOF(ROOT_surfxml_platform):
9059 case YY_STATE_EOF(S_surfxml_platform_2):
9060 case YY_STATE_EOF(S_surfxml_platform_5):
9061 case YY_STATE_EOF(S_surfxml_platform_7):
9062 case YY_STATE_EOF(S_surfxml_include_1):
9063 case YY_STATE_EOF(S_surfxml_AS_2):
9064 case YY_STATE_EOF(S_surfxml_AS_5):
9065 case YY_STATE_EOF(S_surfxml_AS_8):
9066 case YY_STATE_EOF(S_surfxml_AS_10):
9067 case YY_STATE_EOF(S_surfxml_AS_13):
9068 case YY_STATE_EOF(S_surfxml_AS_15):
9069 case YY_STATE_EOF(S_surfxml_storage_type_1):
9070 case YY_STATE_EOF(S_surfxml_storage_1):
9071 case YY_STATE_EOF(S_surfxml_host_1):
9072 case YY_STATE_EOF(S_surfxml_link_1):
9073 case YY_STATE_EOF(S_surfxml_route_1):
9074 case YY_STATE_EOF(S_surfxml_ASroute_1):
9075 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
9076 case YY_STATE_EOF(S_surfxml_bypassASroute_1):
9077 case YY_STATE_EOF(S_surfxml_process_1):
9078 case YY_STATE_EOF(S_surfxml_config_1):
9079 case YY_STATE_EOF(IMPOSSIBLE):
9080         yyterminate();
9081
9082         case YY_END_OF_BUFFER:
9083                 {
9084                 /* Amount of text matched not including the EOB char. */
9085                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
9086
9087                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
9088                 *yy_cp = (yy_hold_char);
9089                 YY_RESTORE_YY_MORE_OFFSET
9090
9091                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
9092                         {
9093                         /* We're scanning a new file or input source.  It's
9094                          * possible that this happened because the user
9095                          * just pointed surf_parse_in at a new source and called
9096                          * surf_parse_lex().  If so, then we have to assure
9097                          * consistency between YY_CURRENT_BUFFER and our
9098                          * globals.  Here is the right place to do so, because
9099                          * this is the first action (other than possibly a
9100                          * back-up) that will match for the new input source.
9101                          */
9102                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9103                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
9104                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
9105                         }
9106
9107                 /* Note that here we test for yy_c_buf_p "<=" to the position
9108                  * of the first EOB in the buffer, since yy_c_buf_p will
9109                  * already have been incremented past the NUL character
9110                  * (since all states make transitions on EOB to the
9111                  * end-of-buffer state).  Contrast this with the test
9112                  * in input().
9113                  */
9114                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9115                         { /* This was really a NUL. */
9116                         yy_state_type yy_next_state;
9117
9118                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
9119
9120                         yy_current_state = yy_get_previous_state(  );
9121
9122                         /* Okay, we're now positioned to make the NUL
9123                          * transition.  We couldn't have
9124                          * yy_get_previous_state() go ahead and do it
9125                          * for us because it doesn't know how to deal
9126                          * with the possibility of jamming (and we don't
9127                          * want to build jamming into it because then it
9128                          * will run more slowly).
9129                          */
9130
9131                         yy_next_state = yy_try_NUL_trans( yy_current_state );
9132
9133                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9134
9135                         if ( yy_next_state )
9136                                 {
9137                                 /* Consume the NUL. */
9138                                 yy_cp = ++(yy_c_buf_p);
9139                                 yy_current_state = yy_next_state;
9140                                 goto yy_match;
9141                                 }
9142
9143                         else
9144                                 {
9145                                 yy_cp = (yy_c_buf_p);
9146                                 goto yy_find_action;
9147                                 }
9148                         }
9149
9150                 else switch ( yy_get_next_buffer(  ) )
9151                         {
9152                         case EOB_ACT_END_OF_FILE:
9153                                 {
9154                                 (yy_did_buffer_switch_on_eof) = 0;
9155
9156                                 if ( surf_parse_wrap( ) )
9157                                         {
9158                                         /* Note: because we've taken care in
9159                                          * yy_get_next_buffer() to have set up
9160                                          * surf_parse_text, we can now set up
9161                                          * yy_c_buf_p so that if some total
9162                                          * hoser (like flex itself) wants to
9163                                          * call the scanner after we return the
9164                                          * YY_NULL, it'll still work - another
9165                                          * YY_NULL will get returned.
9166                                          */
9167                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
9168
9169                                         yy_act = YY_STATE_EOF(YY_START);
9170                                         goto do_action;
9171                                         }
9172
9173                                 else
9174                                         {
9175                                         if ( ! (yy_did_buffer_switch_on_eof) )
9176                                                 YY_NEW_FILE;
9177                                         }
9178                                 break;
9179                                 }
9180
9181                         case EOB_ACT_CONTINUE_SCAN:
9182                                 (yy_c_buf_p) =
9183                                         (yytext_ptr) + yy_amount_of_matched_text;
9184
9185                                 yy_current_state = yy_get_previous_state(  );
9186
9187                                 yy_cp = (yy_c_buf_p);
9188                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9189                                 goto yy_match;
9190
9191                         case EOB_ACT_LAST_MATCH:
9192                                 (yy_c_buf_p) =
9193                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
9194
9195                                 yy_current_state = yy_get_previous_state(  );
9196
9197                                 yy_cp = (yy_c_buf_p);
9198                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9199                                 goto yy_find_action;
9200                         }
9201                 break;
9202                 }
9203
9204         default:
9205                 YY_FATAL_ERROR(
9206                         "fatal flex scanner internal error--no action found" );
9207         } /* end of action switch */
9208                 } /* end of scanning one token */
9209 } /* end of surf_parse_lex */
9210
9211 /* yy_get_next_buffer - try to read in a new buffer
9212  *
9213  * Returns a code representing an action:
9214  *      EOB_ACT_LAST_MATCH -
9215  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
9216  *      EOB_ACT_END_OF_FILE - end of file
9217  */
9218 static int yy_get_next_buffer (void)
9219 {
9220         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
9221         register char *source = (yytext_ptr);
9222         register int number_to_move, i;
9223         int ret_val;
9224
9225         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
9226                 YY_FATAL_ERROR(
9227                 "fatal flex scanner internal error--end of buffer missed" );
9228
9229         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
9230                 { /* Don't try to fill the buffer, so this is an EOF. */
9231                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
9232                         {
9233                         /* We matched a single character, the EOB, so
9234                          * treat this as a final EOF.
9235                          */
9236                         return EOB_ACT_END_OF_FILE;
9237                         }
9238
9239                 else
9240                         {
9241                         /* We matched some text prior to the EOB, first
9242                          * process it.
9243                          */
9244                         return EOB_ACT_LAST_MATCH;
9245                         }
9246                 }
9247
9248         /* Try to read more data. */
9249
9250         /* First move last chars to start of buffer. */
9251         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
9252
9253         for ( i = 0; i < number_to_move; ++i )
9254                 *(dest++) = *(source++);
9255
9256         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
9257                 /* don't do the read, it's not guaranteed to return an EOF,
9258                  * just force an EOF
9259                  */
9260                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
9261
9262         else
9263                 {
9264                         int num_to_read =
9265                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
9266
9267                 while ( num_to_read <= 0 )
9268                         { /* Not enough room in the buffer - grow it. */
9269
9270                         /* just a shorter name for the current buffer */
9271                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
9272
9273                         int yy_c_buf_p_offset =
9274                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
9275
9276                         if ( b->yy_is_our_buffer )
9277                                 {
9278                                 int new_size = b->yy_buf_size * 2;
9279
9280                                 if ( new_size <= 0 )
9281                                         b->yy_buf_size += b->yy_buf_size / 8;
9282                                 else
9283                                         b->yy_buf_size *= 2;
9284
9285                                 b->yy_ch_buf = (char *)
9286                                         /* Include room in for 2 EOB chars. */
9287                                         surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
9288                                 }
9289                         else
9290                                 /* Can't grow it, we don't own it. */
9291                                 b->yy_ch_buf = 0;
9292
9293                         if ( ! b->yy_ch_buf )
9294                                 YY_FATAL_ERROR(
9295                                 "fatal error - scanner input buffer overflow" );
9296
9297                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
9298
9299                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
9300                                                 number_to_move - 1;
9301
9302                         }
9303
9304                 if ( num_to_read > YY_READ_BUF_SIZE )
9305                         num_to_read = YY_READ_BUF_SIZE;
9306
9307                 /* Read in more data. */
9308                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
9309                         (yy_n_chars), (size_t) num_to_read );
9310
9311                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9312                 }
9313
9314         if ( (yy_n_chars) == 0 )
9315                 {
9316                 if ( number_to_move == YY_MORE_ADJ )
9317                         {
9318                         ret_val = EOB_ACT_END_OF_FILE;
9319                         surf_parse_restart(surf_parse_in  );
9320                         }
9321
9322                 else
9323                         {
9324                         ret_val = EOB_ACT_LAST_MATCH;
9325                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
9326                                 YY_BUFFER_EOF_PENDING;
9327                         }
9328                 }
9329
9330         else
9331                 ret_val = EOB_ACT_CONTINUE_SCAN;
9332
9333         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
9334                 /* Extend the array by 50%, plus the number we really need. */
9335                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
9336                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) surf_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
9337                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
9338                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
9339         }
9340
9341         (yy_n_chars) += number_to_move;
9342         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
9343         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
9344
9345         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
9346
9347         return ret_val;
9348 }
9349
9350 /* yy_get_previous_state - get the state just before the EOB char was reached */
9351
9352     static yy_state_type yy_get_previous_state (void)
9353 {
9354         register yy_state_type yy_current_state;
9355         register char *yy_cp;
9356     
9357         yy_current_state = (yy_start);
9358
9359         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
9360                 {
9361                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
9362                 if ( yy_accept[yy_current_state] )
9363                         {
9364                         (yy_last_accepting_state) = yy_current_state;
9365                         (yy_last_accepting_cpos) = yy_cp;
9366                         }
9367                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9368                         {
9369                         yy_current_state = (int) yy_def[yy_current_state];
9370                         if ( yy_current_state >= 3218 )
9371                                 yy_c = yy_meta[(unsigned int) yy_c];
9372                         }
9373                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
9374                 }
9375
9376         return yy_current_state;
9377 }
9378
9379 /* yy_try_NUL_trans - try to make a transition on the NUL character
9380  *
9381  * synopsis
9382  *      next_state = yy_try_NUL_trans( current_state );
9383  */
9384     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
9385 {
9386         register int yy_is_jam;
9387         register char *yy_cp = (yy_c_buf_p);
9388
9389         register YY_CHAR yy_c = 1;
9390         if ( yy_accept[yy_current_state] )
9391                 {
9392                 (yy_last_accepting_state) = yy_current_state;
9393                 (yy_last_accepting_cpos) = yy_cp;
9394                 }
9395         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9396                 {
9397                 yy_current_state = (int) yy_def[yy_current_state];
9398                 if ( yy_current_state >= 3218 )
9399                         yy_c = yy_meta[(unsigned int) yy_c];
9400                 }
9401         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
9402         yy_is_jam = (yy_current_state == 3217);
9403
9404         return yy_is_jam ? 0 : yy_current_state;
9405 }
9406
9407 #ifndef YY_NO_INPUT
9408 #ifdef __cplusplus
9409     static int yyinput (void)
9410 #else
9411     static int input  (void)
9412 #endif
9413
9414 {
9415         int c;
9416     
9417         *(yy_c_buf_p) = (yy_hold_char);
9418
9419         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
9420                 {
9421                 /* yy_c_buf_p now points to the character we want to return.
9422                  * If this occurs *before* the EOB characters, then it's a
9423                  * valid NUL; if not, then we've hit the end of the buffer.
9424                  */
9425                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9426                         /* This was really a NUL. */
9427                         *(yy_c_buf_p) = '\0';
9428
9429                 else
9430                         { /* need more input */
9431                         int offset = (yy_c_buf_p) - (yytext_ptr);
9432                         ++(yy_c_buf_p);
9433
9434                         switch ( yy_get_next_buffer(  ) )
9435                                 {
9436                                 case EOB_ACT_LAST_MATCH:
9437                                         /* This happens because yy_g_n_b()
9438                                          * sees that we've accumulated a
9439                                          * token and flags that we need to
9440                                          * try matching the token before
9441                                          * proceeding.  But for input(),
9442                                          * there's no matching to consider.
9443                                          * So convert the EOB_ACT_LAST_MATCH
9444                                          * to EOB_ACT_END_OF_FILE.
9445                                          */
9446
9447                                         /* Reset buffer status. */
9448                                         surf_parse_restart(surf_parse_in );
9449
9450                                         /*FALLTHROUGH*/
9451
9452                                 case EOB_ACT_END_OF_FILE:
9453                                         {
9454                                         if ( surf_parse_wrap( ) )
9455                                                 return EOF;
9456
9457                                         if ( ! (yy_did_buffer_switch_on_eof) )
9458                                                 YY_NEW_FILE;
9459 #ifdef __cplusplus
9460                                         return yyinput();
9461 #else
9462                                         return input();
9463 #endif
9464                                         }
9465
9466                                 case EOB_ACT_CONTINUE_SCAN:
9467                                         (yy_c_buf_p) = (yytext_ptr) + offset;
9468                                         break;
9469                                 }
9470                         }
9471                 }
9472
9473         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
9474         *(yy_c_buf_p) = '\0';   /* preserve surf_parse_text */
9475         (yy_hold_char) = *++(yy_c_buf_p);
9476
9477         if ( c == '\n' )
9478                    
9479     surf_parse_lineno++;
9480 ;
9481
9482         return c;
9483 }
9484 #endif  /* ifndef YY_NO_INPUT */
9485
9486 /** Immediately switch to a different input stream.
9487  * @param input_file A readable stream.
9488  * 
9489  * @note This function does not reset the start condition to @c INITIAL .
9490  */
9491     void surf_parse_restart  (FILE * input_file )
9492 {
9493     
9494         if ( ! YY_CURRENT_BUFFER ){
9495         surf_parse_ensure_buffer_stack ();
9496                 YY_CURRENT_BUFFER_LVALUE =
9497             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
9498         }
9499
9500         surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
9501         surf_parse__load_buffer_state( );
9502 }
9503
9504 /** Switch to a different input buffer.
9505  * @param new_buffer The new input buffer.
9506  * 
9507  */
9508     void surf_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
9509 {
9510     
9511         /* TODO. We should be able to replace this entire function body
9512          * with
9513          *              surf_parse_pop_buffer_state();
9514          *              surf_parse_push_buffer_state(new_buffer);
9515      */
9516         surf_parse_ensure_buffer_stack ();
9517         if ( YY_CURRENT_BUFFER == new_buffer )
9518                 return;
9519
9520         if ( YY_CURRENT_BUFFER )
9521                 {
9522                 /* Flush out information for old buffer. */
9523                 *(yy_c_buf_p) = (yy_hold_char);
9524                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
9525                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9526                 }
9527
9528         YY_CURRENT_BUFFER_LVALUE = new_buffer;
9529         surf_parse__load_buffer_state( );
9530
9531         /* We don't actually know whether we did this switch during
9532          * EOF (surf_parse_wrap()) processing, but the only time this flag
9533          * is looked at is after surf_parse_wrap() is called, so it's safe
9534          * to go ahead and always set it.
9535          */
9536         (yy_did_buffer_switch_on_eof) = 1;
9537 }
9538
9539 static void surf_parse__load_buffer_state  (void)
9540 {
9541         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9542         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
9543         surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
9544         (yy_hold_char) = *(yy_c_buf_p);
9545 }
9546
9547 /** Allocate and initialize an input buffer state.
9548  * @param file A readable stream.
9549  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
9550  * 
9551  * @return the allocated buffer state.
9552  */
9553     YY_BUFFER_STATE surf_parse__create_buffer  (FILE * file, int  size )
9554 {
9555         YY_BUFFER_STATE b;
9556     
9557         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
9558         if ( ! b )
9559                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
9560
9561         b->yy_buf_size = size;
9562
9563         /* yy_ch_buf has to be 2 characters longer than the size given because
9564          * we need to put in 2 end-of-buffer characters.
9565          */
9566         b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2  );
9567         if ( ! b->yy_ch_buf )
9568                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
9569
9570         b->yy_is_our_buffer = 1;
9571
9572         surf_parse__init_buffer(b,file );
9573
9574         return b;
9575 }
9576
9577 /** Destroy the buffer.
9578  * @param b a buffer created with surf_parse__create_buffer()
9579  * 
9580  */
9581     void surf_parse__delete_buffer (YY_BUFFER_STATE  b )
9582 {
9583     
9584         if ( ! b )
9585                 return;
9586
9587         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
9588                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
9589
9590         if ( b->yy_is_our_buffer )
9591                 surf_parse_free((void *) b->yy_ch_buf  );
9592
9593         surf_parse_free((void *) b  );
9594 }
9595
9596 #ifndef __cplusplus
9597 extern int isatty (int );
9598 #endif /* __cplusplus */
9599     
9600 /* Initializes or reinitializes a buffer.
9601  * This function is sometimes called more than once on the same buffer,
9602  * such as during a surf_parse_restart() or at EOF.
9603  */
9604     static void surf_parse__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
9605
9606 {
9607         int oerrno = errno;
9608     
9609         surf_parse__flush_buffer(b );
9610
9611         b->yy_input_file = file;
9612         b->yy_fill_buffer = 1;
9613
9614     /* If b is the current buffer, then surf_parse__init_buffer was _probably_
9615      * called from surf_parse_restart() or through yy_get_next_buffer.
9616      * In that case, we don't want to reset the lineno or column.
9617      */
9618     if (b != YY_CURRENT_BUFFER){
9619         b->yy_bs_lineno = 1;
9620         b->yy_bs_column = 0;
9621     }
9622
9623         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
9624     
9625         errno = oerrno;
9626 }
9627
9628 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
9629  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
9630  * 
9631  */
9632     void surf_parse__flush_buffer (YY_BUFFER_STATE  b )
9633 {
9634         if ( ! b )
9635                 return;
9636
9637         b->yy_n_chars = 0;
9638
9639         /* We always need two end-of-buffer characters.  The first causes
9640          * a transition to the end-of-buffer state.  The second causes
9641          * a jam in that state.
9642          */
9643         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
9644         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
9645
9646         b->yy_buf_pos = &b->yy_ch_buf[0];
9647
9648         b->yy_at_bol = 1;
9649         b->yy_buffer_status = YY_BUFFER_NEW;
9650
9651         if ( b == YY_CURRENT_BUFFER )
9652                 surf_parse__load_buffer_state( );
9653 }
9654
9655 /** Pushes the new state onto the stack. The new state becomes
9656  *  the current state. This function will allocate the stack
9657  *  if necessary.
9658  *  @param new_buffer The new state.
9659  *  
9660  */
9661 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
9662 {
9663         if (new_buffer == NULL)
9664                 return;
9665
9666         surf_parse_ensure_buffer_stack();
9667
9668         /* This block is copied from surf_parse__switch_to_buffer. */
9669         if ( YY_CURRENT_BUFFER )
9670                 {
9671                 /* Flush out information for old buffer. */
9672                 *(yy_c_buf_p) = (yy_hold_char);
9673                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
9674                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9675                 }
9676
9677         /* Only push if top exists. Otherwise, replace top. */
9678         if (YY_CURRENT_BUFFER)
9679                 (yy_buffer_stack_top)++;
9680         YY_CURRENT_BUFFER_LVALUE = new_buffer;
9681
9682         /* copied from surf_parse__switch_to_buffer. */
9683         surf_parse__load_buffer_state( );
9684         (yy_did_buffer_switch_on_eof) = 1;
9685 }
9686
9687 /** Removes and deletes the top of the stack, if present.
9688  *  The next element becomes the new top.
9689  *  
9690  */
9691 void surf_parse_pop_buffer_state (void)
9692 {
9693         if (!YY_CURRENT_BUFFER)
9694                 return;
9695
9696         surf_parse__delete_buffer(YY_CURRENT_BUFFER );
9697         YY_CURRENT_BUFFER_LVALUE = NULL;
9698         if ((yy_buffer_stack_top) > 0)
9699                 --(yy_buffer_stack_top);
9700
9701         if (YY_CURRENT_BUFFER) {
9702                 surf_parse__load_buffer_state( );
9703                 (yy_did_buffer_switch_on_eof) = 1;
9704         }
9705 }
9706
9707 /* Allocates the stack if it does not exist.
9708  *  Guarantees space for at least one push.
9709  */
9710 static void surf_parse_ensure_buffer_stack (void)
9711 {
9712         int num_to_alloc;
9713     
9714         if (!(yy_buffer_stack)) {
9715
9716                 /* First allocation is just for 2 elements, since we don't know if this
9717                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
9718                  * immediate realloc on the next call.
9719          */
9720                 num_to_alloc = 1;
9721                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
9722                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
9723                                                                 );
9724                 if ( ! (yy_buffer_stack) )
9725                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
9726                                                                   
9727                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
9728                                 
9729                 (yy_buffer_stack_max) = num_to_alloc;
9730                 (yy_buffer_stack_top) = 0;
9731                 return;
9732         }
9733
9734         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
9735
9736                 /* Increase the buffer to prepare for a possible push. */
9737                 int grow_size = 8 /* arbitrary grow size */;
9738
9739                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
9740                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
9741                                                                 ((yy_buffer_stack),
9742                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
9743                                                                 );
9744                 if ( ! (yy_buffer_stack) )
9745                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
9746
9747                 /* zero only the new slots.*/
9748                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
9749                 (yy_buffer_stack_max) = num_to_alloc;
9750         }
9751 }
9752
9753 /** Setup the input buffer state to scan directly from a user-specified character buffer.
9754  * @param base the character buffer
9755  * @param size the size in bytes of the character buffer
9756  * 
9757  * @return the newly allocated buffer state object. 
9758  */
9759 YY_BUFFER_STATE surf_parse__scan_buffer  (char * base, yy_size_t  size )
9760 {
9761         YY_BUFFER_STATE b;
9762     
9763         if ( size < 2 ||
9764              base[size-2] != YY_END_OF_BUFFER_CHAR ||
9765              base[size-1] != YY_END_OF_BUFFER_CHAR )
9766                 /* They forgot to leave room for the EOB's. */
9767                 return 0;
9768
9769         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
9770         if ( ! b )
9771                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
9772
9773         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
9774         b->yy_buf_pos = b->yy_ch_buf = base;
9775         b->yy_is_our_buffer = 0;
9776         b->yy_input_file = 0;
9777         b->yy_n_chars = b->yy_buf_size;
9778         b->yy_is_interactive = 0;
9779         b->yy_at_bol = 1;
9780         b->yy_fill_buffer = 0;
9781         b->yy_buffer_status = YY_BUFFER_NEW;
9782
9783         surf_parse__switch_to_buffer(b  );
9784
9785         return b;
9786 }
9787
9788 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
9789  * scan from a @e copy of @a str.
9790  * @param yystr a NUL-terminated string to scan
9791  * 
9792  * @return the newly allocated buffer state object.
9793  * @note If you want to scan bytes that may contain NUL values, then use
9794  *       surf_parse__scan_bytes() instead.
9795  */
9796 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
9797 {
9798     
9799         return surf_parse__scan_bytes(yystr,strlen(yystr) );
9800 }
9801
9802 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
9803  * scan from a @e copy of @a bytes.
9804  * @param yybytes the byte buffer to scan
9805  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
9806  * 
9807  * @return the newly allocated buffer state object.
9808  */
9809 YY_BUFFER_STATE surf_parse__scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
9810 {
9811         YY_BUFFER_STATE b;
9812         char *buf;
9813         yy_size_t n;
9814         int i;
9815     
9816         /* Get memory for full buffer, including space for trailing EOB's. */
9817         n = _yybytes_len + 2;
9818         buf = (char *) surf_parse_alloc(n  );
9819         if ( ! buf )
9820                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
9821
9822         for ( i = 0; i < _yybytes_len; ++i )
9823                 buf[i] = yybytes[i];
9824
9825         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
9826
9827         b = surf_parse__scan_buffer(buf,n );
9828         if ( ! b )
9829                 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
9830
9831         /* It's okay to grow etc. this buffer, and we should throw it
9832          * away when we're done.
9833          */
9834         b->yy_is_our_buffer = 1;
9835
9836         return b;
9837 }
9838
9839     static void yy_push_state (int  new_state )
9840 {
9841         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
9842                 {
9843                 yy_size_t new_size;
9844
9845                 (yy_start_stack_depth) += YY_START_STACK_INCR;
9846                 new_size = (yy_start_stack_depth) * sizeof( int );
9847
9848                 if ( ! (yy_start_stack) )
9849                         (yy_start_stack) = (int *) surf_parse_alloc(new_size  );
9850
9851                 else
9852                         (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size  );
9853
9854                 if ( ! (yy_start_stack) )
9855                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
9856                 }
9857
9858         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
9859
9860         BEGIN(new_state);
9861 }
9862
9863     static void yy_pop_state  (void)
9864 {
9865         if ( --(yy_start_stack_ptr) < 0 )
9866                 YY_FATAL_ERROR( "start-condition stack underflow" );
9867
9868         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
9869 }
9870
9871 #ifndef YY_EXIT_FAILURE
9872 #define YY_EXIT_FAILURE 2
9873 #endif
9874
9875 static void yy_fatal_error (yyconst char* msg )
9876 {
9877         (void) fprintf( stderr, "%s\n", msg );
9878         exit( YY_EXIT_FAILURE );
9879 }
9880
9881 /* Redefine yyless() so it works in section 3 code. */
9882
9883 #undef yyless
9884 #define yyless(n) \
9885         do \
9886                 { \
9887                 /* Undo effects of setting up surf_parse_text. */ \
9888         int yyless_macro_arg = (n); \
9889         YY_LESS_LINENO(yyless_macro_arg);\
9890                 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
9891                 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
9892                 (yy_hold_char) = *(yy_c_buf_p); \
9893                 *(yy_c_buf_p) = '\0'; \
9894                 surf_parse_leng = yyless_macro_arg; \
9895                 } \
9896         while ( 0 )
9897
9898 /* Accessor  methods (get/set functions) to struct members. */
9899
9900 /** Get the current line number.
9901  * 
9902  */
9903 int surf_parse_get_lineno  (void)
9904 {
9905         
9906     return surf_parse_lineno;
9907 }
9908
9909 /** Get the input stream.
9910  * 
9911  */
9912 FILE *surf_parse_get_in  (void)
9913 {
9914         return surf_parse_in;
9915 }
9916
9917 /** Get the output stream.
9918  * 
9919  */
9920 FILE *surf_parse_get_out  (void)
9921 {
9922         return surf_parse_out;
9923 }
9924
9925 /** Get the length of the current token.
9926  * 
9927  */
9928 int surf_parse_get_leng  (void)
9929 {
9930         return surf_parse_leng;
9931 }
9932
9933 /** Get the current token.
9934  * 
9935  */
9936
9937 char *surf_parse_get_text  (void)
9938 {
9939         return surf_parse_text;
9940 }
9941
9942 /** Set the current line number.
9943  * @param line_number
9944  * 
9945  */
9946 void surf_parse_set_lineno (int  line_number )
9947 {
9948     
9949     surf_parse_lineno = line_number;
9950 }
9951
9952 /** Set the input stream. This does not discard the current
9953  * input buffer.
9954  * @param in_str A readable stream.
9955  * 
9956  * @see surf_parse__switch_to_buffer
9957  */
9958 void surf_parse_set_in (FILE *  in_str )
9959 {
9960         surf_parse_in = in_str ;
9961 }
9962
9963 void surf_parse_set_out (FILE *  out_str )
9964 {
9965         surf_parse_out = out_str ;
9966 }
9967
9968 int surf_parse_get_debug  (void)
9969 {
9970         return surf_parse__flex_debug;
9971 }
9972
9973 void surf_parse_set_debug (int  bdebug )
9974 {
9975         surf_parse__flex_debug = bdebug ;
9976 }
9977
9978 static int yy_init_globals (void)
9979 {
9980         /* Initialization is the same as for the non-reentrant scanner.
9981      * This function is called from surf_parse_lex_destroy(), so don't allocate here.
9982      */
9983
9984     /* We do not touch surf_parse_lineno unless the option is enabled. */
9985     surf_parse_lineno =  1;
9986     
9987     (yy_buffer_stack) = 0;
9988     (yy_buffer_stack_top) = 0;
9989     (yy_buffer_stack_max) = 0;
9990     (yy_c_buf_p) = (char *) 0;
9991     (yy_init) = 0;
9992     (yy_start) = 0;
9993
9994     (yy_start_stack_ptr) = 0;
9995     (yy_start_stack_depth) = 0;
9996     (yy_start_stack) =  NULL;
9997
9998 /* Defined in main.c */
9999 #ifdef YY_STDINIT
10000     surf_parse_in = stdin;
10001     surf_parse_out = stdout;
10002 #else
10003     surf_parse_in = (FILE *) 0;
10004     surf_parse_out = (FILE *) 0;
10005 #endif
10006
10007     /* For future reference: Set errno on error, since we are called by
10008      * surf_parse_lex_init()
10009      */
10010     return 0;
10011 }
10012
10013 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
10014 int surf_parse_lex_destroy  (void)
10015 {
10016     
10017     /* Pop the buffer stack, destroying each element. */
10018         while(YY_CURRENT_BUFFER){
10019                 surf_parse__delete_buffer(YY_CURRENT_BUFFER  );
10020                 YY_CURRENT_BUFFER_LVALUE = NULL;
10021                 surf_parse_pop_buffer_state();
10022         }
10023
10024         /* Destroy the stack itself. */
10025         surf_parse_free((yy_buffer_stack) );
10026         (yy_buffer_stack) = NULL;
10027
10028     /* Destroy the start condition stack. */
10029         surf_parse_free((yy_start_stack)  );
10030         (yy_start_stack) = NULL;
10031
10032     /* Reset the globals. This is important in a non-reentrant scanner so the next time
10033      * surf_parse_lex() is called, initialization will occur. */
10034     yy_init_globals( );
10035
10036     return 0;
10037 }
10038
10039 /*
10040  * Internal utility routines.
10041  */
10042
10043 #ifndef yytext_ptr
10044 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
10045 {
10046         register int i;
10047         for ( i = 0; i < n; ++i )
10048                 s1[i] = s2[i];
10049 }
10050 #endif
10051
10052 #ifdef YY_NEED_STRLEN
10053 static int yy_flex_strlen (yyconst char * s )
10054 {
10055         register int n;
10056         for ( n = 0; s[n]; ++n )
10057                 ;
10058
10059         return n;
10060 }
10061 #endif
10062
10063 void *surf_parse_alloc (yy_size_t  size )
10064 {
10065         return (void *) malloc( size );
10066 }
10067
10068 void *surf_parse_realloc  (void * ptr, yy_size_t  size )
10069 {
10070         /* The cast to (char *) in the following accommodates both
10071          * implementations that use char* generic pointers, and those
10072          * that use void* generic pointers.  It works with the latter
10073          * because both ANSI C and C++ allow castless assignment from
10074          * any pointer type to void*, and deal with argument conversions
10075          * as though doing an assignment.
10076          */
10077         return (void *) realloc( (char *) ptr, size );
10078 }
10079
10080 void surf_parse_free (void * ptr )
10081 {
10082         free( (char *) ptr );   /* see surf_parse_realloc() for (char *) cast */
10083 }
10084
10085 #define YYTABLES_NAME "yytables"
10086
10087 /* Element context stack lookup. */
10088 int surfxml_element_context(int i)
10089 {
10090   return (0<i && i<yy_start_stack_depth
10091           ? yy_start_stack[yy_start_stack_ptr - i]
10092           : 0);
10093 }
10094
10095 #ifdef FLEX_DEBUG
10096 void print_yy_stack(char* fmt, ...)
10097 {
10098   int i = 0; va_list ap; va_start(ap, fmt);
10099   vfprintf(stderr, fmt, ap);
10100   if (surfxml_statenames) {
10101       for (i=1; i<yy_start_stack_ptr; i++) {
10102           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
10103       }
10104       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
10105   }
10106   va_end(ap);
10107 }
10108
10109 void print_surfxml_bufferstack()
10110 {
10111     int i;
10112     fputs("Buffer: ", stderr);
10113     for (i = 0; i < blimit; i++) {
10114        if ( surfxml_bufferstack[i] == '\377' ) break;
10115          putc(surfxml_bufferstack[i], stderr);
10116     }
10117     putc('\n', stderr);
10118 }
10119
10120 static void debug_enter(int state, const char* statename) {
10121   yy_push_state(state);
10122   if (surf_parse__flex_debug) {
10123        print_yy_stack("--ENTER(%s) : ",statename);
10124        print_surfxml_bufferstack();
10125   }
10126 }
10127
10128 static void debug_leave(void) {
10129     if (surf_parse__flex_debug) {
10130         print_yy_stack("--LEAVE : ");
10131         print_surfxml_bufferstack();
10132     }
10133   yy_pop_state();
10134 }
10135
10136 static void debug_set(int state, const char* statename) {
10137   BEGIN(state);
10138   if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
10139 }
10140 #endif
10141
10142 static void cleanup(void)
10143 {
10144     if (surfxml_statenames) {
10145         free(surfxml_statenames);
10146         surfxml_statenames = NULL;
10147     }
10148     free(surfxml_bufferstack);
10149     surfxml_bufferstack = NULL;
10150
10151     free(indexstack);
10152     indexstack = NULL;
10153 }
10154
10155 static int fail(const char* fmt, ...)
10156 {
10157     int chars_left, used;
10158     va_list ap; va_start(ap, fmt);
10159 #ifdef FLEXML_yylineno
10160     used = sprintf(flexml_err_msg,
10161                    "Invalid XML (XML input line %d, state %d): ",
10162                    surf_parse_lineno, YY_START);
10163 #else
10164     used = sprintf(flexml_err_msg,
10165                    "Invalid XML (state %d): ",
10166                    YY_START);
10167 #endif
10168     chars_left = flexml_max_err_msg_size - used - 1;
10169     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
10170     va_end(ap);
10171
10172 #ifndef FLEXML_quiet_parser
10173     /* print directly to sdterr */
10174     fprintf(stderr, "%s\n", flexml_err_msg);
10175     flexml_err_msg[0] = '\0';
10176 #endif
10177
10178     cleanup();
10179
10180     return 1;
10181 }
10182