Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
model-checker : use rename() instead of system(mv ..)
[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 494
407 #define YY_END_OF_BUFFER 495
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[2960] =
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,  495,  493,   15,   10,
443        10,   15,   15,  473,   10,  473,    5,    6,    5,    8,
444         9,    8,  489,  481,  482,  490,  487,  490,  488,  492,
445       481,  482,  492,  493,   22,   10,   22,   22,   22,   20,
446        22,   26,   10,   26,   26,  493,   26,  493,  493,   26,
447        33,   10,   33,   33,   33,   31,   33,   37,   10,   37,
448        37,   48,   10,   48,   48,   48,   46,   48,   48,   48,
449
450       490,  489,   78,   10,   78,   78,   78,   76,   78,   78,
451        78,   78,   78,   82,   10,   82,  493,   82,  101,   10,
452       101,  101,  101,   99,  101,  101,  101,  105,   10,  105,
453       128,   10,  128,  128,  128,  126,  128,  128,  132,   10,
454       132,  132,  493,  132,  132,  493,  493,  132,  493,  132,
455       493,  132,  145,   10,  145,  145,  145,  143,  145,  145,
456       145,  145,  149,   10,  149,  149,  160,   10,  160,  160,
457       160,  158,  160,  160,  160,  164,   10,  164,  164,  173,
458        10,  173,  173,  173,  171,  173,  173,  177,   10,  177,
459       186,   10,  186,  186,  186,  184,  186,  186,  190,   10,
460
461       190,  213,   10,  213,  213,  213,  211,  213,  213,  213,
462       213,  213,  217,   10,  217,  493,  217,  258,   10,  258,
463       258,  258,  256,  258,  258,  258,  258,  258,  258,  258,
464       258,  262,   10,  262,  283,   10,  283,  283,  283,  281,
465       283,  283,  283,  283,  283,  283,  283,  287,   10,  287,
466       296,   10,  296,  296,  296,  294,  296,  296,  300,   10,
467       300,  327,   10,  327,  327,  327,  325,  327,  327,  327,
468       327,  331,   10,  331,  331,  344,   10,  344,  344,  344,
469       342,  344,  344,  348,   10,  348,  493,  348,  365,   10,
470       365,  365,  365,  363,  365,  365,  365,  369,   10,  369,
471
472       369,  382,   10,  382,  382,  382,  380,  382,  382,  386,
473        10,  386,  395,   10,  395,  395,  395,  393,  395,  395,
474       399,   10,  399,  399,  412,   10,  412,  412,  412,  410,
475       412,  412,  412,  416,   10,  416,  416,  433,   10,  433,
476       433,  433,  431,  433,  433,  433,  433,  433,  437,   10,
477       437,  493,  437,  444,   10,  444,  444,  444,  442,  444,
478       448,   10,  448,  455,   10,  455,  455,  455,  453,  455,
479       459,   10,  459,  459,  468,   10,  468,  468,  468,  466,
480       468,  468,  472,   10,  472,   10,    0,    2,    2,    0,
481         4,    7,  484,  483,    0,    0,    0,    0,    0,    0,
482
483         0,   21,   23,   23,    0,    0,    0,    0,    0,    0,
484         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
485         0,    0,    0,    0,    0,    0,    0,   32,   34,   34,
486         0,   47,   49,   49,   49,   49,    0,    0,    0,   77,
487        79,   79,   79,   79,   79,   79,   79,   79,   79,    0,
488         0,  100,  102,  102,  102,  102,    0,  127,  129,  129,
489       129,    0,    0,    0,    0,    0,    0,    0,    0,    0,
490         0,    0,    0,  144,  146,  146,  146,  146,  146,    0,
491       159,  161,  161,  161,  161,    0,  172,  174,  174,  174,
492         0,  185,  187,  187,  187,    0,  212,  214,  214,  214,
493
494       214,  214,  214,    0,    0,  257,  259,  259,  259,  259,
495       259,  259,  259,  259,  259,  259,  259,  259,  259,  259,
496         0,  282,  284,  284,  284,  284,  284,  284,  284,  284,
497         0,  295,  297,  297,  297,    0,  326,  328,  328,  328,
498       328,  328,  328,    0,  343,  345,  345,  345,  345,    0,
499         0,  364,  366,  366,  366,  366,  366,    0,  381,  383,
500       383,  383,    0,  394,  396,  396,  396,    0,  411,  413,
501       413,  413,  413,    0,  432,  434,  434,  434,  434,  434,
502       434,    0,    0,  443,  445,  445,    0,  454,  456,  456,
503         0,  467,  469,  469,  469,    0,    0,    0,    0,    0,
504
505         3,    0,    0,    0,    0,    0,    0,    0,  491,    0,
506        23,    0,    0,  107,    0,    0,    0,    0,    0,    0,
507         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
508         0,    0,  106,    0,    0,    0,    0,    0,   34,    0,
509         0,   49,    0,    0,   49,    0,    0,    0,  486,   79,
510         0,    0,   79,   79,   79,   79,   79,   79,    0,    0,
511         0,  102,  102,  102,    0,    0,    0,    0,  129,    0,
512         0,  107,    0,    0,    0,    0,    0,  106,    0,    0,
513         0,    0,  146,    0,    0,  146,  146,    0,    0,  161,
514         0,    0,  161,    0,    0,    0,    0,  174,    0,    0,
515
516       187,  187,    0,    0,  214,  214,  214,    0,    0,  214,
517       214,    0,    0,    0,    0,  259,  259,    0,    0,  259,
518         0,    0,  259,  259,  259,  259,  259,  259,  259,  259,
519         0,    0,  284,  284,  284,    0,    0,  284,  284,  284,
520         0,    0,  297,    0,    0,    0,    0,  328,    0,    0,
521       328,  328,  328,    0,    0,  345,  345,  345,    0,    0,
522         0,  366,  366,  366,  366,    0,    0,  383,    0,    0,
523         0,    0,  396,  396,    0,    0,  413,  413,  413,    0,
524         0,  434,  434,  434,  434,  434,    0,    0,    0,  445,
525         0,    0,    0,    0,    0,    0,    0,    0,  469,    0,
526
527         0,    0,   14,    1,    0,    0,  479,    0,    0,    0,
528       476,  475,    0,    0,   23,    0,    0,   25,    0,  107,
529         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
530         0,    0,    0,    0,    0,    0,    0,    0,    0,  106,
531         0,    0,    0,    0,    0,   34,    0,    0,   36,    0,
532        49,    0,   41,   40,   49,    0,    0,    0,   51,    0,
533        79,    0,   55,   54,    0,    0,   79,    0,    0,   79,
534        79,   79,    0,    0,   81,    0,    0,  102,  102,  102,
535         0,    0,  104,    0,    0,  109,  108,  129,    0,    0,
536       131,    0,    0,    0,    0,    0,    0,    0,    0,    0,
537
538         0,    0,  146,    0,  136,  135,  146,  146,    0,    0,
539       148,    0,  161,    0,  153,  152,  161,    0,    0,  163,
540         0,    0,  168,  167,  174,    0,    0,  176,    0,  187,
541       187,    0,    0,  189,    0,  214,  214,  214,    0,  194,
542       193,  214,  214,    0,    0,  216,    0,    0,    0,  259,
543       259,  259,  259,    0,  233,  232,  259,    0,  221,  220,
544         0,    0,  259,  259,  259,  259,  259,  259,  259,    0,
545         0,  261,    0,  284,  284,  284,  284,    0,  266,  265,
546         0,    0,  284,  284,    0,    0,  286,    0,  297,    0,
547       291,  290,    0,    0,  299,    0,  328,    0,  304,  303,
548
549       328,  328,  328,    0,    0,  330,    0,    0,    0,    0,
550         0,  345,    0,    0,  347,    0,    0,    0,    0,  366,
551       366,    0,    0,  366,    0,    0,  368,    0,  383,    0,
552       373,  372,    0,    0,  385,    0,    0,    0,    0,    0,
553         0,    0,  398,    0,    0,    0,  413,  413,    0,    0,
554         0,    0,  415,    0,  434,  434,  434,  434,  434,    0,
555         0,  436,    0,    0,  445,    0,    0,  447,    0,    0,
556       452,  451,    0,    0,  458,    0,    0,  463,  462,  469,
557         0,    0,  471,    0,    0,    0,  480,  474,    0,    0,
558         0,   23,    0,    0,    0,    0,    0,    0,  191,    0,
559
560       301,    0,    0,  264,    0,    0,  460,    0,    0,    0,
561         0,    0,    0,    0,    0,  263,    0,    0,    0,    0,
562         0,    0,    0,   49,    0,    0,   79,    0,   59,   58,
563         0,    0,    0,   57,   56,   79,    0,    0,   79,    0,
564       461,  102,    0,    0,  102,    0,  129,    0,  130,    0,
565         0,  192,  302,    0,    0,    0,    0,    0,    0,  146,
566       146,    0,    0,    0,  161,  161,    0,    0,    0,    0,
567         0,    0,  187,    0,  214,  214,    0,    0,  214,  214,
568         0,    0,    0,  259,  259,  259,  259,    0,    0,    0,
569       235,  234,  259,  259,  259,  259,  259,  259,  259,    0,
570
571       284,  284,  284,  284,    0,  274,  273,  284,  284,    0,
572       297,    0,  328,  328,  328,  328,    0,    0,  337,  336,
573         0,  335,  334,  345,    0,  301,    0,  354,  353,  366,
574       366,    0,  352,  351,  366,    0,  383,    0,    0,  392,
575       391,    0,  390,  389,    0,    0,  405,  404,  413,  413,
576         0,  403,  402,    0,  434,    0,    0,  434,  434,  434,
577         0,    0,  445,    0,    0,  469,    0,    0,    0,    0,
578        12,    0,  477,  478,    0,   23,    0,    0,    0,    0,
579         0,    0,  191,    0,  301,    0,  165,    0,  264,    0,
580         0,  460,    0,  332,    0,   39,    0,    0,    0,    0,
581
582       263,    0,   38,    0,   30,   29,    0,    0,   43,   42,
583        49,    0,    0,   79,    0,   61,   60,   79,    0,   65,
584        64,   79,    0,  461,  102,    0,    0,    0,    0,    0,
585         0,  129,    0,    0,  192,  302,  333,    0,    0,    0,
586       333,  332,  146,    0,    0,    0,  140,  139,    0,  161,
587       161,    0,    0,  170,  169,    0,    0,  183,  182,  187,
588         0,  214,  214,    0,  198,  197,    0,    0,    0,    0,
589       214,    0,  166,    0,  259,    0,    0,  259,  259,    0,
590       231,  230,    0,    0,  259,  259,  259,  259,  259,  259,
591         0,  284,    0,    0,  284,  284,    0,    0,  284,    0,
592
593       297,    0,  328,  328,  328,    0,    0,  328,    0,  345,
594         0,    0,  366,  366,  366,    0,  383,    0,    0,  413,
595       413,    0,  434,    0,  420,  419,  434,  434,  434,    0,
596         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
597         0,   11,    0,   23,    0,    0,    0,    0,    0,  450,
598         0,    0,  165,    0,    0,    0,   53,  332,  288,    0,
599        39,    0,  449,   52,    0,    0,    0,   38,    0,    0,
600        49,    0,    0,   79,   79,   79,    0,  102,    0,    0,
601         0,    0,    0,    0,    0,    0,    0,   96,   95,    0,
602       129,    0,    0,  333,  289,    0,    0,    0,  146,    0,
603
604       138,  137,    0,  161,    0,    0,    0,    0,    0,    0,
605         0,  214,  214,    0,  196,  195,    0,    0,    0,  214,
606         0,  215,  166,    0,  259,    0,  243,  242,    0,    0,
607       259,    0,  229,  228,    0,    0,  259,  259,  259,  259,
608         0,    0,    0,  284,    0,  270,  269,    0,    0,  284,
609         0,  268,  267,  284,    0,  285,  297,    0,  328,  328,
610       328,    0,    0,    0,  328,    0,  329,  345,    0,    0,
611         0,    0,    0,    0,  366,    0,  383,    0,    0,    0,
612         0,    0,    0,    0,  434,  434,  434,  434,    0,    0,
613         0,  441,  440,    0,    0,    0,  465,  464,    0,  470,
614
615         0,    0,    0,    0,    0,    0,    0,  349,    0,    0,
616         0,  219,  450,   28,    0,    0,    0,  418,   53,  288,
617       150,    0,  449,   52,  218,   27,  417,    0,    0,   49,
618         0,    0,   50,   79,    0,    0,   79,    0,    0,    0,
619         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
620         0,    0,    0,  350,    0,    0,  289,  151,    0,    0,
621         0,    0,    0,    0,  155,  154,    0,    0,  175,    0,
622       181,  180,    0,  214,  214,    0,    0,  214,    0,  259,
623         0,  245,  244,  259,    0,  223,  222,    0,    0,  259,
624       259,  259,    0,  225,  224,    0,  284,    0,  272,  271,
625
626       284,  284,  297,    0,  328,    0,    0,  328,  328,    0,
627         0,  328,  345,    0,  346,    0,    0,  358,  357,    0,
628       356,  355,  366,    0,  383,    0,    0,    0,  409,  408,
629         0,  407,  406,    0,  434,  434,  434,  434,    0,    0,
630         0,    0,    0,    0,    0,   17,    0,   19,   18,    0,
631       349,  438,    0,    0,  219,   28,  370,  178,   16,  418,
632       150,    0,    0,  218,   27,  417,    0,    0,   49,  485,
633        79,    0,   67,   66,   79,    0,   80,    0,   98,   97,
634         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
635         0,    0,    0,    0,  350,    0,    0,  151,    0,    0,
636
637       142,  141,    0,    0,  157,  156,    0,    0,  214,  214,
638         0,    0,    0,    0,  214,  179,  259,  259,    0,  227,
639       226,  259,  259,  259,    0,  284,  284,  284,  297,    0,
640       298,  328,    0,  310,  309,  328,  328,    0,    0,    0,
641         0,  328,  345,  371,  366,    0,  383,    0,    0,    0,
642         0,    0,  434,  434,  434,    0,  439,    0,    0,  457,
643         0,    0,    0,   17,    0,  438,    0,    0,  370,  178,
644        16,    0,    0,    0,    0,   35,   49,    0,    0,   79,
645         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
646         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
647
648         0,    0,    0,    0,    0,    0,    0,    0,  162,    0,
649       214,  214,    0,  204,    0,  203,  214,  179,  259,  259,
650         0,    0,  259,  259,    0,  260,  284,  284,  284,  297,
651         0,    0,  328,  328,  328,    0,  314,    0,  313,  328,
652       345,  371,  366,    0,  367,    0,    0,    0,    0,    0,
653         0,  422,  421,    0,    0,  434,  434,    0,  435,  439,
654         0,    0,    0,    0,    0,   24,    0,    0,    0,    0,
655         0,   49,    0,    0,    0,   79,    0,    0,    0,    0,
656         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
657         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
658
659         0,    0,    0,    0,    0,    0,  188,  214,  214,  206,
660       205,    0,    0,  259,  259,    0,  255,  254,  259,    0,
661         0,  284,  284,    0,    0,  297,    0,  306,  305,  328,
662       328,  328,  316,  315,    0,    0,  345,  366,    0,    0,
663         0,    0,  384,    0,    0,    0,  426,  425,    0,    0,
664         0,    0,    0,  446,    0,    0,    0,    0,  387,    0,
665         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
666        79,    0,    0,    0,    0,   88,    0,    0,    0,    0,
667        87,    0,    0,    0,    0,    0,    0,    0,    0,    0,
668         0,    0,    0,    0,    0,    0,    0,  388,    0,    0,
669
670       214,    0,    0,    0,  208,  207,  259,  259,  259,    0,
671       253,  252,  284,    0,    0,    0,  280,  279,    0,    0,
672       328,  328,  328,    0,  318,  317,    0,    0,    0,    0,
673         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
674         0,    0,  424,  423,    0,    0,    0,    0,  387,  133,
675         0,    0,    0,   45,   44,    0,    0,    0,    0,    0,
676         0,    0,    0,   79,    0,    0,    0,    0,    0,    0,
677         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
678         0,    0,    0,    0,    0,    0,    0,    0,  388,  134,
679         0,    0,    0,  214,    0,  210,  209,  259,  259,  259,
680
681       284,    0,  276,  275,    0,  293,  292,  328,    0,    0,
682       328,    0,    0,    0,    0,    0,    0,    0,    0,    0,
683         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
684         0,    0,    0,  400,  133,   84,   83,    0,    0,    0,
685         0,    0,    0,    0,    0,    0,    0,    0,    0,   94,
686         0,    0,    0,   93,    0,    0,    0,    0,    0,  111,
687       119,    0,    0,    0,    0,    0,  110,  118,    0,    0,
688       401,  134,    0,    0,  200,  199,  214,  259,  259,  259,
689       284,  328,    0,  312,  311,  328,    0,    0,    0,    0,
690         0,    0,    0,    0,    0,    0,  375,    0,    0,  374,
691
692         0,  397,    0,    0,    0,    0,    0,    0,    0,    0,
693         0,    0,    0,  400,   84,   83,    0,    0,    0,    0,
694         0,    0,    0,    0,    0,   63,   62,    0,    0,    0,
695         0,    0,    0,    0,    0,    0,  113,    0,    0,    0,
696         0,  112,    0,    0,  401,    0,  147,  214,  259,  259,
697         0,    0,  284,    0,    0,    0,    0,    0,    0,    0,
698         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
699         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
700         0,   75,   71,    0,    0,   74,   70,    0,   92,    0,
701         0,   91,    0,    0,    0,  103,    0,    0,    0,    0,
702
703         0,    0,    0,    0,  214,  259,  259,    0,    0,    0,
704       284,    0,  308,  307,    0,    0,    0,  341,    0,  340,
705         0,  362,    0,  361,    0,  377,  379,  376,  378,    0,
706       414,  428,    0,  427,    0,    0,    0,    0,   12,    0,
707        12,    0,    0,    0,    0,    0,   86,   90,   85,   89,
708       125,    0,    0,  123,  124,    0,    0,  122,  214,  259,
709       259,    0,    0,    0,    0,  284,    0,    0,    0,    0,
710       339,  338,  360,  359,    0,    0,    0,    0,    0,    0,
711         0,    0,    0,    0,    0,  115,    0,    0,  114,    0,
712         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
713
714         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
715         0,    0,    0,    0,    0,   69,    0,   68,    0,    0,
716       121,    0,  120,    0,  202,  201,    0,  251,  250,    0,
717         0,    0,    0,    0,    0,    0,    0,    0,    0,  278,
718       277,    0,    0,    0,    0,    0,    0,    0,    0,    0,
719        11,    0,    0,    0,    0,    0,    0,    0,    0,    0,
720         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
721         0,  430,  429,    0,   73,   72,    0,    0,    0,    0,
722         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
723         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
724
725         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
726         0,    0,    0,    0,  117,  116,    0,    0,    0,    0,
727         0,    0,  237,    0,    0,  236,    0,    0,  320,    0,
728         0,  319,    0,    0,    0,    0,    0,  241,    0,  240,
729         0,  322,    0,  321,    0,    0,    0,    0,    0,    0,
730         0,    0,    0,    0,    0,    0,  247,    0,  246,    0,
731         0,    0,    0,    0,    0,  249,  248,  239,  238,  324,
732       323,    0,    0,    0,    0,    0,    0,    0,    0,    0,
733         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
734         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
735
736         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
737         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
738         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
739         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
740         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
741         0,    0,    0,    0,    0,    0,    0,   13,    0
742     } ;
743
744 static yyconst flex_int32_t yy_ec[256] =
745     {   0,
746         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
747         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
748         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
749         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
750         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
751        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
752        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
753        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
754        31,   38,   39,   40,   41,   42,   43,   44,   45,   31,
755        46,    1,   47,    1,   48,    1,   49,   50,   51,   52,
756
757        53,   54,   55,   56,   57,   58,   59,   60,   61,   62,
758        63,   64,   65,   66,   67,   68,   69,   70,   71,   72,
759        73,   74,    1,    1,    1,    1,    1,    1,    1,    1,
760         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
761         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
762         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
763         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
764         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
765         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
766         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
767
768         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
769         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
770         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
771         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
772         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
773         1,    1,    1,    1,    1
774     } ;
775
776 static yyconst flex_int32_t yy_meta[75] =
777     {   0,
778         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
779         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
780         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
781         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
782         5,    5,    5,    5,    5,    1,    1,    5,    9,    9,
783         9,    9,    9,    9,    5,    5,    5,    5,    5,    5,
784         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
785         5,    5,    5,    5
786     } ;
787
788 static yyconst flex_int16_t yy_base[3358] =
789     {   0,
790         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
791        14,   17,   33,   36,   49,   55,   45,   61,   66,   72,
792       108,  178,   75,   78,   83,  128,  131,  134,  138,  141,
793       158,  198,  201,  204,  208,  211,  228,  231,  234,  237,
794       240,  257,  275,  329,  295,  298,  301,  305,  308,  349,
795       352,  355,  383,  447,  360,  416,  511,  578,  407,  410,
796       413,  467,  470,  473,  477,  480,  645,  713,  531,  534,
797       781,  847,  537,  541,  544,  598,  601,  604,  608,  611,
798       665,  668,  671,  675,  678,  733,  736,  739,  743,  746,
799       801,  804,  807,  811,  814,  867,  870,  873,  877,  880,
800
801       897,  903,  921,  988,  941,  944,  947,  951, 1008, 1011,
802      1014, 1018, 1055, 1123, 1075, 1078, 1081, 1085, 1143, 1146,
803      1149, 1153, 1191, 1253, 1211, 1214, 1315, 1383, 1217, 1221,
804      1451, 1518, 1224, 1273, 1276, 1279, 1283, 1286, 1335, 1338,
805      1585,    0, 1341, 1345, 1659, 1726, 1348, 1403, 1793, 1850,
806      1406, 1409, 1907, 1974, 1413, 1416, 1471, 1474, 1477, 1481,
807      1538, 1541, 2041, 2108, 1544, 1548, 1679, 1682, 1685, 1689,
808      1746, 1749, 2175, 2242, 1752, 1756, 1813, 1816, 1819, 1823,
809      1870, 1873, 2309, 2366, 1876, 1880, 2423, 2490, 1927, 1930,
810      1933, 1937, 1940, 1994, 1997, 2000, 2557, 2624, 2004, 2007,
811
812      2061, 2064, 2067, 2071, 2074, 2128, 2691, 2758, 2131, 2134,
813      2138, 2141, 2195, 2198, 2201, 2205, 2825, 2895, 2208, 2262,
814      2965, 3022, 2265, 2268, 2272, 2275, 2329, 2332, 2335, 2339,
815      3079, 3149, 2342, 2386,    0,    0, 8051,10209,10209,   95,
816       100,   29,   41,10209,  103,   51,10209,10209, 8038,10209,
817     10209, 8027,10209, 8042, 8038,  202,10209,10209,10209,10209,
818      8036, 8036, 7989,  153,10209,  161, 8015,    0,  145,10209,
819      7981,10209,  165, 3215,   73, 2342,  315,  357, 8017, 7964,
820     10209,  168, 8007,    0,  152,10209, 7967,10209,  261, 8011,
821        31,10209,  266, 8002,    0,  245,10209, 7960, 7964, 7962,
822
823       421, 7965,10209,  269, 7991,    0,  340,10209, 7957, 7953,
824       271, 7955,  238,10209,  441,  163,  313,  368,10209,  503,
825      7983,    0,  401,10209, 7940, 7942, 7932,10209,  506,  548,
826     10209,  561, 7973,    0,  481,10209, 7940, 7928,10209,  571,
827      2389, 2397,  161,  571,   38, 7976,  477, 2341,  574,  907,
828      7975,   79,10209,  697, 7966,    0,  482,10209, 7918, 7928,
829      7916, 7919,10209,  703,  426,  530,10209,  706, 7955,    0,
830       546,10209, 7911, 7917, 7895,10209,  765,  559,  564,10209,
831       771, 7947,    0,  549,10209, 7912, 7914,10209,  774,  682,
832     10209,  831, 7942,    0,  615,10209, 7908, 7883,10209,  837,
833
834       690,10209,  840, 7935,    0,  750,10209, 7882, 7888, 7898,
835      7882, 7876,10209,  906,  825, 7931,   87,10209,  914, 7920,
836         0,  758,10209, 7869,  203, 7875, 7881, 7883,  157,  311,
837       834,10209,  972,  958,10209,  981, 7911,    0,  815,10209,
838      7858, 7856, 7863, 7869, 7871, 7856, 7848,10209, 1021,  959,
839     10209, 1038, 7895,    0,  825,10209, 7851, 7857,10209, 1044,
840      1032,10209, 1048, 7888,    0,  891,10209, 7858, 7852, 7854,
841        15,10209, 1088,  899,  597,10209, 1105, 7882,    0,  956,
842     10209, 7830,  181,10209, 1111, 1098, 7884, 7835,10209, 1114,
843      7872,    0, 1022,10209, 7824, 7819,  299,10209, 1117, 7873,
844
845       302,10209, 1173, 7864,    0, 1033,10209, 7826, 7828,10209,
846      1179, 1167,10209, 1182, 7859,    0, 1090,10209, 7811, 7807,
847     10209, 1241, 7860,  630,10209, 1247, 7851,    0, 1168,10209,
848      7801, 7796, 7800,10209, 1303, 7849,  785,10209, 1309, 7840,
849         0, 1225,10209, 7790, 7793, 7798, 7792, 7781,10209, 1365,
850       814, 7836,  568,10209, 1368, 7827,    0, 1226,10209, 7795,
851     10209, 1371, 1420,10209, 1376, 7823,    0, 1231,10209, 7790,
852     10209, 1433,  387,  902,10209, 1436, 7817,    0, 1287,10209,
853      7784, 7786,10209, 1440, 1482, 1444,  687, 7760,10209, 7821,
854      7810,10209,10209,10209, 1491,  254, 7757, 7748, 7746, 7794,
855
856      7749,10209,    0, 7742, 7743, 7763, 7735, 7727,  437, 7732,
857      7732, 7736,  372, 1243,  378, 7720, 7721,  625,  429, 7747,
858       693, 7719, 1508, 7714,  702, 1517, 1518,10209,    0, 7719,
859      7717,10209,    0, 7713, 1692, 7706,  372, 7699, 7746,10209,
860         0, 7703, 1759, 7688, 7710, 7696, 7701, 7699, 7699, 7680,
861      1776,10209,    0, 7692, 7682, 7690, 7670,10209,    0, 1883,
862      7668, 7710, 7692, 7657, 7662, 7667,  695, 7655, 7679, 7644,
863      7643,  970, 1037,10209,    0, 7649, 2448, 7658, 7635, 7637,
864     10209,    0, 7641, 2455, 7638, 7630,10209,    0, 2460, 7635,
865      7634,10209,    0, 7629, 7625, 7627,10209,    0, 7634,  758,
866
867      2469, 7611, 7632, 7620,  889,10209,    0, 7626, 7626, 2510,
868      7603, 2513, 7600, 7596, 7609, 7609, 7591, 7606, 7605, 7599,
869      7120,10209,    0, 7121, 7120, 7104, 2516, 7098, 7094, 7115,
870      7099,10209,    0, 7099, 2519, 7094,10209,    0, 7097, 2522,
871      7089, 7100, 7099, 7086,10209,    0, 7070, 7086, 7074, 7063,
872      7070,10209,    0, 7054, 7073, 7068, 7053, 7091,10209,    0,
873      7040, 2577, 7044,10209,    0, 7035, 7050, 7038,10209,    0,
874      7019, 7037, 7026, 7026,10209,    0, 7012, 7006, 7011, 7018,
875      7016, 6995, 6992,10209,    0, 6996, 6995,10209,    0, 2580,
876      6992,10209,    0, 2583, 6979, 6974, 7016, 7025, 1278, 6950,
877
878     10209, 1496,    0, 6942, 6942, 6975, 6974, 6926,10209, 6935,
879      6916, 2394, 2586, 1718, 6926, 6912, 6906, 6911, 6897, 6912,
880      6900, 6890, 6890, 6894, 6897, 6878, 6878, 6869, 6873, 6886,
881      6871, 6865, 1777, 6850, 6867, 6863, 6847, 6860, 6854, 2590,
882      2645, 6845, 2648, 1551, 6836, 6855, 2652, 2655,10209, 6820,
883      2658, 1957, 2711, 6810, 2714, 6813, 6799, 6798, 2720, 2732,
884      6782, 6773, 6781, 6780, 2723, 2781, 2784, 2024, 6762, 2787,
885      2846, 1902, 6764, 6756, 6749, 6740, 6740, 1969, 6736, 6729,
886      6723, 6721, 6711, 2790, 2092, 6725, 6719, 2793, 2796, 6703,
887      2849, 2159, 6716, 2853, 2856, 2859, 2229, 6705, 2915, 2918,
888
889      6703, 6702, 2923, 2926, 6696, 6682, 6694, 2929, 2296, 6692,
890      6676, 2985, 2988, 6660, 6660, 6669, 1778, 2994, 2474, 6653,
891      2997, 2541, 3000, 6652, 6648, 6642, 6629, 6628, 6624, 6621,
892      3042, 3045, 6617,   37, 6606, 3051, 2611, 3054, 6613, 6596,
893      3057, 3112, 6593, 3099, 2678, 3104, 3108, 6606, 3118, 2877,
894      6595, 6581, 6577, 3127, 3171, 3174, 3178, 3181, 3184, 3205,
895      6577, 3199, 3210, 3213, 3219, 3231, 3250, 6585, 3237, 2885,
896      3241, 3282, 3244, 3255, 3288, 3291, 3294, 3301, 3297, 3315,
897      3320, 6585, 6563, 6570, 6570, 6556, 3323, 3326, 6564, 6548,
898      3329, 3334, 3348, 2947, 3353, 3356, 3359, 2955, 6540, 3367,
899
900      3377, 6588,10209,10209, 1074, 6543,10209, 6585, 6568, 6517,
901     10209,10209, 6514, 6502, 6506, 3381, 3386,10209, 3392, 1577,
902      6499, 6491, 6499, 6480, 6483, 6468, 6466, 6466, 6453, 6451,
903      6446, 6436, 1114, 6449, 6428, 6429, 6442, 6424, 6425, 1710,
904      6408, 6410, 6403, 1437, 6411, 3401, 3405, 3411,10209, 3414,
905      3419, 3136,10209,10209, 3425, 6430, 3433, 3443,10209, 3446,
906      6388, 3452,10209,10209, 3465, 3468, 3477, 3483, 3488, 6397,
907      3496, 6395, 3501, 3504,10209, 3507, 1651, 6377, 3510, 6375,
908      3514, 3528,10209, 3533, 3536,10209,10209, 6369, 3547, 3552,
909     10209, 3555, 6360, 6373, 6352, 6346, 6336, 6336, 6345, 6344,
910
911      6323, 6322, 6335, 3559,10209,10209, 6323, 3574, 3577, 3581,
912     10209, 3584, 6329, 3596,10209,10209, 6345, 3587, 3592,10209,
913      3606, 3611,10209,10209, 3619, 3625, 3628,10209, 3631, 3637,
914      3640, 3651, 3658,10209, 3661, 6313, 6317, 3664, 3670,10209,
915     10209, 6295, 6303, 3682, 3685,10209, 3688, 6292, 6290, 6291,
916      6272, 6289, 6281, 3692,10209,10209, 3707, 3710,10209,10209,
917      3718, 3721, 6269, 6273, 6274, 6271, 6265, 6258, 6253, 3729,
918      3732,10209, 3736, 6248, 6241, 6225, 6241, 3739,10209,10209,
919      3755, 3758, 6225, 6233, 3766, 3769,10209, 3773, 6233, 3776,
920     10209,10209, 3788, 3792,10209, 3795, 6209, 3798,10209,10209,
921
922      6217, 6220, 6219, 3807, 3814,10209, 3817, 3820, 3826, 3838,
923      3841, 6218, 3849, 3852,10209, 3856, 6210, 3859, 3864, 6200,
924      6198, 3878, 3881, 6189, 3889, 3892,10209, 3896, 6188, 3899,
925     10209,10209, 3911, 3915,10209, 3918, 3924, 3930, 3938, 3942,
926      3950, 3956,10209, 3961, 3964, 3969, 6163, 6163, 3982, 3985,
927      3993, 3996,10209, 4000, 6146, 4003, 6165, 6162, 6142, 4006,
928      4015,10209, 4025, 6130, 6145, 4028, 4034,10209, 4037, 4040,
929     10209,10209, 4048, 4056,10209, 4059, 4063,10209,10209, 6140,
930      4071, 4078,10209, 4081,  598, 4091,10209,10209, 6175, 6173,
931      6127, 6117, 4100, 6109, 6116, 6104, 6099, 6105, 1785, 6091,
932
933      1844, 6087, 6086, 2034, 6081, 6080, 2100, 6069, 6072, 6074,
934      6069, 6060, 6053, 6043, 6040, 2103, 6051, 6046, 4103, 4121,
935      4106, 4112, 4130, 6046, 6074, 4138, 6042, 4143,10209,10209,
936      4151, 4158, 4169,10209,10209, 6037, 4177, 4181, 6032, 4189,
937      2167, 6018, 4195, 4198, 4208, 4213, 6011, 4115,10209, 6003,
938      5999, 2170, 2237, 6002, 5999, 5978, 5977, 5989, 5949, 5932,
939      4216, 4219, 4222, 4240, 5920, 5913, 4243, 4246, 4249, 4264,
940      4267, 4270, 5883, 4278, 5845, 5836, 4285, 4288, 4297, 4308,
941      4311, 5792, 5760, 5769, 4315, 5748, 5712, 4318, 4326, 4336,
942     10209,10209, 4344, 5679, 5696, 5678, 5663, 5675, 5629, 4347,
943
944      5632, 4350, 5499, 5434, 4355,10209,10209, 4368, 5437, 4371,
945      5421, 4374, 5404, 5409, 5326, 4378, 4381, 4386,10209,10209,
946      4396,10209,10209, 5319, 4404, 2304, 4407,10209,10209, 5316,
947      5320, 4416,10209,10209, 5293, 4425, 5267, 4428, 4432,10209,
948     10209, 4447,10209,10209, 4455, 4458,10209,10209, 5209, 5221,
949      4467,10209,10209, 4475, 5141, 4478, 4487, 5114, 5057, 5063,
950      4481,    5, 4496, 4503, 4506, 4509, 4514, 1077,   69, 4517,
951     10209,  133,10209,10209,  114,  132, 4527,  150,  192,  189,
952       264,  316, 2413,  353, 2418,  395, 2482,  447, 2549,  487,
953       489, 2552,  500, 2619,  588, 3131,  621,  623,  676,  700,
954
955      2686,  703, 4536, 4539,10209,10209, 4547, 4550,10209,10209,
956       723,  772, 4559,  755, 4562,10209,10209,  771, 4571,10209,
957     10209,  817, 4586, 2753,  824, 4589, 1866, 2191, 4598, 4601,
958      4611,  842,  852,  870, 2816, 2820, 4616,  903,  914,  919,
959      4619, 4622,  919, 4625, 4630, 4639,10209,10209, 4648,  936,
960      4651, 4654, 4657,10209,10209, 4669, 4674,10209,10209, 4688,
961      4691,  978,  968, 4696,10209,10209, 4706, 4710, 4719, 4724,
962       977, 4732, 3072, 1022, 1054, 4737, 4740, 4751, 1039, 4756,
963     10209,10209, 4764, 4769, 4777, 1079, 1106, 1104, 1106, 4782,
964      4785, 1113, 4788, 4791, 4800, 1104, 4806, 4809, 1114, 4818,
965
966      1125, 4824, 1138, 1134, 1167, 4827, 4830, 1179, 4838, 1168,
967      4845, 1189, 4848, 4852, 4857, 4860, 1184, 4866, 4870, 4880,
968      4885, 4889, 1206, 4899,10209,10209, 1227, 1233, 1227, 4892,
969      1249, 4913, 4916, 4924, 4931, 4936, 4944, 4939, 1344, 1337,
970      1429,10209, 1265, 4958, 4961, 1293, 1292, 1338, 1289, 4321,
971      1305, 1297, 4964, 1327, 1348, 1355, 4967, 4970, 4976, 1370,
972      4980, 1375, 4987, 4990, 1362, 1380, 1383, 4993, 1416, 4996,
973      1435, 1468, 4999, 1428, 5002, 1436, 5005, 5008, 1474, 1471,
974      1668, 1476, 1492, 1480, 1695, 1481, 5011,10209,10209, 5026,
975      5030, 1481, 1744, 5033, 5036, 1496, 1747, 1811, 5039, 5048,
976
977     10209,10209, 5057, 5060, 5065, 5069, 5078, 5083, 5086, 5090,
978      5098, 1501, 1523, 5104,10209,10209, 5113, 1537, 1540, 1618,
979      5121,10209, 5124, 1644, 1644, 5128,10209,10209, 5136, 5140,
980      1647, 5148,10209,10209, 5156, 5159, 5167, 1661, 1676, 1685,
981      5170, 5174, 5188, 1700, 5191,10209,10209, 5199, 5203, 1716,
982      5211,10209,10209, 1711, 5219,10209, 1722, 5222, 1723, 5225,
983      1744, 5228, 1773, 1788, 1773, 5243,10209, 1775, 5246, 1767,
984      5249, 5252, 5267, 5272, 1809, 5280, 1818, 5287, 5290, 5293,
985      5299, 5311, 5314, 5322, 1828, 1832, 1831, 1866, 5325, 1876,
986      5330,10209,10209, 5347, 5350, 5356,10209,10209, 5370,10209,
987
988      1926, 2186, 1950, 1886, 5374, 5377, 5392, 5395, 1881, 1911,
989      1893, 5399, 5404, 5407, 1900, 1912, 1908, 5411, 5414, 5417,
990      5420, 1927, 5423, 5426, 5429, 5432, 5435, 1942, 5439, 1956,
991      1968, 5442,10209, 1951, 5445, 5448, 1970, 5463, 5467, 5470,
992      1988, 1990, 1992, 2004, 1997, 2022, 2033, 2040, 2046, 2040,
993      5478, 5485, 5491, 5499, 2045, 2023, 5503, 5506, 5509, 5512,
994      5520, 5523, 5528, 5541,10209,10209, 5549, 5554,10209, 5557,
995     10209,10209, 5568, 2030, 2023, 2112, 2123, 2037, 2046, 2040,
996      5573,10209,10209, 2062, 5581,10209,10209, 5589, 5592, 2096,
997      2087, 2093, 5601,10209,10209, 5609, 2097, 5612,10209,10209,
998
999      2096, 2106, 2099, 5622, 2135, 5628, 5631, 2161, 2153, 2246,
1000      2257, 2158, 2174, 5641,10209, 2167, 5646,10209,10209, 5654,
1001     10209,10209, 2183, 5662, 2174, 5665, 5668, 5674,10209,10209,
1002      5687,10209,10209, 5696, 5700, 5705, 5708, 5718, 5726, 2190,
1003      5732, 5736, 5739, 2262, 2281, 5745, 5751,10209,10209, 5760,
1004      5763, 5766, 2221, 2222, 5769, 5773, 5779, 5782, 5785, 5788,
1005      5793, 2227, 2234, 5796, 5799, 5802, 2241, 5805, 2236,10209,
1006      5808, 5811,10209,10209, 5820, 5826,10209, 5829,10209,10209,
1007      2315, 2309, 2325, 2326, 2333, 2337, 2325, 2356, 2360, 2368,
1008      5838, 5841, 2704, 5824, 5850, 2329, 2331, 5853, 2334, 5861,
1009
1010     10209,10209, 5869, 5872,10209,10209, 5880, 5883, 2346, 2352,
1011      2381, 2440, 2421, 2444, 2401, 5888, 2403, 2411, 5893,10209,
1012     10209, 5902, 2405, 2428, 5905, 2425, 2434, 2436, 2453, 5908,
1013     10209, 5911, 5920,10209,10209, 2470, 2465, 2503, 2525, 2506,
1014      2525, 2486, 2491, 5916, 2497, 5929, 5935, 5938, 5941, 5944,
1015      5948, 5966, 5974, 5977, 5982, 5953, 5985, 5988, 5995,10209,
1016      6003, 2553, 2596, 6007, 6014, 6010, 2485, 2481, 6017, 6022,
1017      6025, 2518, 2533, 2535, 6029,10209, 2525, 6034, 6037, 6055,
1018      2557, 2553, 2572, 2560, 2573, 2575, 2571, 2605, 2615, 2626,
1019      6048, 2606, 2611, 2609, 2610, 2605, 2626, 2626, 2662, 2672,
1020
1021      2657, 2675, 2691, 2686, 2683, 2680, 6058, 6061,10209, 6067,
1022      2706, 2713, 2776,10209, 2793,10209, 6073, 6080, 2738, 2760,
1023      6086, 6091, 2750, 6099, 6104,10209, 2743, 2748, 6111, 2774,
1024      6117, 6125, 2800, 2805, 2807, 2863,10209, 2861,10209, 6135,
1025      2814, 6138, 2815, 6141,10209, 6144, 6147, 6155, 6162, 6166,
1026      6170,10209,10209, 6181, 6185, 6193, 6199, 6202,10209, 6205,
1027      6213, 2903, 2995, 2873, 6217,10209, 2808, 2829, 2820, 2837,
1028      2839, 6221, 6232, 2909, 2982, 6224, 2881, 2915, 2915, 2918,
1029      2939, 2922, 2932, 2931, 2938, 2953, 6242, 2925, 2937, 2943,
1030      2949, 2948, 2954, 2948, 2952, 2980, 2987, 3003, 3002, 3006,
1031
1032      2997, 3002, 3019, 3014, 6245, 6248,10209, 3022, 6251,10209,
1033     10209, 6254, 6257, 3031, 3045, 6272,10209,10209, 3056, 6280,
1034      6286, 3044, 6294, 6298, 6303, 6312, 6317,10209,10209, 3062,
1035      3070, 3070,10209,10209, 6325, 6330, 6338, 6343, 6346, 3164,
1036      3448, 6356,10209, 6361, 6364, 6368,10209,10209, 6376, 6383,
1037      6394, 6397, 6405,10209, 3123, 3128, 3211, 3073, 6408, 3091,
1038      3095, 3141, 6412, 6415, 3156, 3162, 3189, 3172, 3190, 3299,
1039      6430, 3205, 3207, 3205, 3213,10209, 3235, 3225, 3224, 3236,
1040     10209, 6433, 3220, 3229, 3233, 3247, 3256, 3257, 3263, 3247,
1041      3256, 3268, 3282, 3291, 3292, 3298, 3280, 6436, 3312, 6439,
1042
1043      6442, 6448, 6454, 6462,10209,10209, 3318, 3309, 3323, 6470,
1044     10209,10209, 3327, 6478, 6485, 6496,10209,10209, 6504, 6507,
1045      3317, 6515, 3331, 6518,10209,10209, 6526, 6529, 6537, 6540,
1046      3350, 3355, 3361, 3363, 3366, 3373, 6548, 6551, 6555, 3386,
1047      3401, 6563,10209,10209, 3410, 3420, 6571, 3379, 6481, 6574,
1048      3365, 3374, 6577,10209,10209, 3429, 3417, 3422, 3431, 3438,
1049      3427, 3429, 3448, 6585, 3442, 3471, 3495, 3497, 3480, 3500,
1050      3514, 3503, 6590, 3458, 3461, 3481, 3535, 3537, 3521, 3486,
1051      3479, 3485, 3508, 3555, 3557, 3547, 3511, 3520, 6593, 6596,
1052      6603, 6609, 6612, 3520, 6623,10209,10209, 3538, 3543, 3533,
1053
1054      3557, 6631,10209,10209, 6640,10209,10209, 3563, 6648, 6651,
1055      3545, 6659, 3601, 3658, 6667, 3662, 3683, 3576, 3589, 3619,
1056      3594, 3614, 3641, 6675, 6678, 3622, 3631, 3628, 3649, 3697,
1057      6681, 6684, 6687, 6706, 6709, 6712, 6715, 3642, 3654, 3657,
1058      3660, 3669, 3680, 3690, 3705, 6718, 6721, 3717, 3717,10209,
1059      3720, 3724, 3724,10209, 3733, 6729, 3712, 3698, 3775,10209,
1060     10209, 3734, 3732, 3734, 3720, 3794,10209,10209, 3757, 3761,
1061      6732, 6736, 6739, 6748,10209,10209, 3757, 3768, 3774, 6758,
1062      3776, 6761, 6764,10209,10209, 6772, 3800, 3812, 3810, 3822,
1063      3813, 3839, 3835, 3848, 3840, 3851,10209, 3851, 3862,10209,
1064
1065      6779,10209, 6782, 3863, 3865, 3880, 3868, 3927, 6785, 6792,
1066      6804, 6835, 6882, 6812, 6815, 6818, 3885, 3905, 3917, 3884,
1067      3904, 3921, 3928, 3909, 6823,10209,10209, 3944, 3922, 3923,
1068      3952, 3936, 3941, 6846, 3911, 3913,10209, 3915, 3935, 3927,
1069      3945,10209, 3945, 3957, 6855, 6858,10209, 3955, 3961, 3972,
1070      6861, 6865, 3964, 6873, 6902, 6893, 6911, 4027, 3995, 4038,
1071      4014, 4049, 4017, 4061, 4032, 4071, 4072, 4077, 4078, 6919,
1072      4083, 4050, 4087, 4057, 4093, 6928, 4123, 4128, 6948, 6995,
1073      4085,10209,10209, 4062, 4114,10209,10209, 4100,10209, 4144,
1074      4145,10209, 4147, 4148, 6922,10209, 4157, 4116, 4116, 4168,
1075
1076      4167, 4128, 4129, 4177, 4135, 4141, 4122, 6968, 4256, 4266,
1077      4150, 6976,10209,10209, 6984, 4269, 4316,10209, 4199,10209,
1078      4197,10209, 4202,10209, 4204,10209,10209,10209,10209, 6941,
1079     10209,10209, 4207,10209, 4208, 4214, 4234, 4216, 4226, 4324,
1080      4230, 7006, 4241, 4231, 4244, 4235,10209,10209,10209,10209,
1081     10209, 4279, 4210,10209,10209, 4430, 4225,10209, 7015, 7018,
1082      7021, 4371, 4249, 4374, 4273, 7026, 4382, 4278, 4411, 4307,
1083     10209,10209,10209,10209, 4322, 4324, 7029, 4359, 4345, 4359,
1084      7044, 4380, 4381, 4408, 4399,10209, 4394, 4438,10209, 4397,
1085      4438, 7048, 7051, 7059, 7066, 7077, 7080, 4415, 4430, 4443,
1086
1087      4426, 4435, 4452, 7088, 7096, 4446, 4459, 4472, 4462, 4470,
1088      4492, 4482, 4485, 7091, 4507,10209, 4499,10209, 4501, 4485,
1089     10209, 4493,10209, 7106,10209,10209, 7114,10209,10209, 7122,
1090      4519, 4530, 4518, 4543, 4544, 4546, 4552, 4548, 7130,10209,
1091     10209, 4557, 4563, 4559, 4562, 4575, 4571, 4605, 4621, 4617,
1092     10209, 4629, 4629, 4584, 4590, 4625, 4636, 4645, 4640, 4645,
1093      4654, 4655, 4654, 4661, 4661, 4666, 4676, 4678, 4676, 4690,
1094      4691,10209,10209, 4709,10209,10209, 4665, 4667, 4684, 4709,
1095      4692, 4723, 4710, 4709, 4726, 4724, 4722, 4739, 4732, 4733,
1096      4751, 4740, 4741, 4773, 4797, 4793, 4797, 4777, 4778, 4786,
1097
1098      4786, 4809, 4806, 4839, 4831, 4829, 4866, 4852, 4842, 4875,
1099      4859, 4860, 4891, 4887,10209,10209, 4876, 4884, 4881, 4895,
1100      4918, 4897,10209, 4922, 4903,10209, 4943, 4919,10209, 4945,
1101      4924,10209, 5011, 4921, 4950, 4939, 4961,10209, 4961,10209,
1102      4992,10209, 4996,10209, 4997, 7138, 5000, 5038, 5021, 5044,
1103      5011, 5012, 5021, 5026, 7141, 5070,10209, 5074,10209, 5085,
1104      5086, 5091, 5095, 5089, 5100,10209,10209,10209,10209,10209,
1105     10209, 5116, 5128, 5165, 5167, 5115, 5146, 5220, 5244, 5109,
1106      5199, 5245, 5247, 5218, 5242, 5147, 5223, 5279, 5286, 5133,
1107      5144, 5278, 5302, 5284, 5299, 5259, 5311, 5326, 5344, 5161,
1108
1109      5349, 5267, 5436, 5433, 5457, 5499, 5515, 5420, 5513, 5464,
1110      5544, 5355, 5371, 5479, 5521, 5323, 5518, 5580, 5607, 5529,
1111      5542, 5589, 5602, 5528, 5535, 5599, 5600, 5608, 5621, 5443,
1112      5672, 5569, 5619, 5674, 5675, 5758, 5816, 5642, 5659, 5639,
1113      5814, 5693, 5841, 5817, 5914, 5706, 5942, 5943, 5951, 5848,
1114      5859, 6002, 6027, 5954, 5597, 7149, 7152,10209,10209, 7172,
1115      7181, 7190, 7199, 7208, 7217, 7226, 7235, 7244, 7253, 7262,
1116      7271, 7280, 7289, 7298, 7307, 7316, 7325, 7334, 7343, 7352,
1117      7361, 7370, 7379, 7388, 7397, 7406, 7415, 7424, 7433, 7442,
1118      7451, 7460, 7469, 7478, 7487, 7496, 7505, 7514, 7523, 7532,
1119
1120      7541, 7550, 7559, 7568, 7577, 7586, 7595, 7604, 7613, 7622,
1121      7631, 7640, 7647, 7654, 7661, 7668, 7675, 7682, 7689, 7696,
1122      7703, 7710, 7717, 7724, 7731, 7738, 7745, 7752, 7759, 7766,
1123      7773, 7780, 7787, 7794, 7801, 7808, 7817, 7824, 7829, 7836,
1124      7841, 7848, 7853, 7860, 7865, 7872, 7877, 7884, 7889, 7896,
1125      7901, 7908, 7913, 7920, 7925, 7932, 7937, 7944, 7949, 7956,
1126      7961, 7968, 7973, 7980, 7985, 7992, 7997, 8004, 8009, 8016,
1127      8021, 8028, 8033, 8040, 8045, 8052, 8057, 8064, 8069, 8076,
1128      8081, 8088, 8093, 8100, 8105, 8114, 8120, 8127, 8135, 8142,
1129      8150, 8157, 8165, 8172, 8180, 8187, 8195, 8202, 8210, 8217,
1130
1131      8225, 8232, 8240, 8247, 8255, 8262, 8270, 8277, 8285, 8292,
1132      8300, 8307, 8315, 8322, 8330, 8337, 8345, 8353, 8361, 8369,
1133      8377, 8384, 8392, 8400, 8408, 8416, 8424, 8431, 8439, 8446,
1134      8454, 8462, 8469, 8477, 8486, 8492, 8499, 8507, 8515, 8523,
1135      8531, 8539, 8546, 8554, 8561, 8569, 8576, 8584, 8591, 8599,
1136      8606, 8614, 8622, 8630, 8638, 8646, 8653, 8661, 8668, 8676,
1137      8683, 8691, 8698, 8706, 8713, 8721, 8728, 8736, 8743, 8751,
1138      8758, 8766, 8774, 8781, 8789, 8796, 8804, 8811, 8819, 8827,
1139      8834, 8842, 8851, 8860, 8867, 8875, 8883, 8890, 8898, 8905,
1140      8913, 8920, 8928, 8935, 8942, 8950, 8957, 8965, 8973, 8980,
1141
1142      8988, 8995, 9003, 9010, 9018, 9025, 9033, 9040, 9048, 9055,
1143      9063, 9070, 9078, 9085, 9093, 9100, 9108, 9116, 9123, 9131,
1144      9138, 9146, 9154, 9162, 9170, 9178, 9186, 9195, 9204, 9211,
1145      9219, 9227, 9234, 9242, 9249, 9257, 9264, 9272, 9279, 9286,
1146      9294, 9301, 9309, 9317, 9325, 9333, 9340, 9348, 9355, 9363,
1147      9370, 9378, 9385, 9393, 9400, 9408, 9415, 9423, 9431, 9439,
1148      9446, 9454, 9462, 9470, 9478, 9485, 9493, 9501, 9509, 9517,
1149      9526, 9535, 9543, 9551, 9559, 9566, 9574, 9581, 9589, 9597,
1150      9605, 9613, 9621, 9629, 9637, 9645, 9653, 9661, 9668, 9675,
1151      9683, 9690, 9697, 9705, 9712, 9719, 9727, 9734, 9742, 9749,
1152
1153      9757, 9765, 9773, 9780, 9788, 9796, 9804, 9813, 9822, 9830,
1154      9838, 9845, 9852, 9860, 9868, 9876, 9884, 9892, 9899, 9906,
1155      9914, 9921, 9928, 9936, 9943, 9950, 9957, 9965, 9972, 9980,
1156      9988, 9996,10004,10012,10020,10028,10037,10046,10054,10062,
1157     10069,10077,10085,10093,10101,10109,10116,10123,10131,10138,
1158     10145,10154,10163,10172,10181,10190,10199
1159     } ;
1160
1161 static yyconst flex_int16_t yy_def[3358] =
1162     {   0,
1163      2960, 2960, 2961, 2961, 2961, 2961, 2962, 2962, 2963, 2963,
1164      2964, 2964, 2965, 2965, 2965, 2965, 2966, 2966, 2960, 2960,
1165      2967, 2967, 2968, 2968, 2968, 2968, 2960, 2960, 2968, 2968,
1166      2968, 2968, 2960, 2960, 2968, 2968, 2960, 2960, 2968, 2968,
1167      2968, 2968, 2969, 2969, 2970, 2970, 2960, 2960, 2970, 2970,
1168      2970, 2970, 2971, 2971, 2965, 2965, 2972, 2972, 2973, 2973,
1169      2960, 2960, 2973, 2973, 2973, 2973, 2974, 2974, 2975, 2975,
1170      2976, 2976, 2977, 2977, 2977, 2977, 2960, 2960, 2977, 2977,
1171      2977, 2977, 2960, 2960, 2977, 2977, 2960, 2960, 2977, 2977,
1172      2977, 2977, 2960, 2960, 2977, 2977, 2960, 2960, 2977, 2977,
1173
1174      2977, 2977, 2978, 2978, 2979, 2979, 2960, 2960, 2979, 2979,
1175      2979, 2979, 2980, 2980, 2981, 2981, 2960, 2960, 2981, 2981,
1176      2981, 2981, 2982, 2982, 2983, 2983, 2984, 2984, 2985, 2985,
1177      2986, 2986, 2987, 2987, 2960, 2960, 2987, 2987, 2987, 2987,
1178      2959,  141, 2988, 2988, 2989, 2989, 2990, 2990, 2991, 2991,
1179      2992, 2992, 2993, 2993, 2994, 2994, 2960, 2960, 2994, 2994,
1180      2994, 2994, 2995, 2995, 2996, 2996, 2960, 2960, 2996, 2996,
1181      2996, 2996, 2997, 2997, 2998, 2998, 2960, 2960, 2998, 2998,
1182      2998, 2998, 2999, 2999, 3000, 3000, 3001, 3001, 3002, 3002,
1183      2960, 2960, 3002, 3002, 3002, 3002, 3003, 3003, 3004, 3004,
1184
1185      2960, 2960, 3004, 3004, 3004, 3004, 3005, 3005, 3006, 3006,
1186      2960, 2960, 3006, 3006, 3006, 3006, 3007, 3007, 3008, 3008,
1187      3009, 3009, 3010, 3010, 2960, 2960, 3010, 3010, 3010, 3010,
1188      3011, 3011, 3012, 3012, 2960, 2960, 2959, 2959, 2959, 2959,
1189      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1190      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1191      2959, 2959, 2959, 2959, 2959, 2959, 2959, 3013, 2959, 2959,
1192      3013, 2959, 2959, 2959,  274,  274,  276,  274,  277,  277,
1193      2959, 2959, 2959, 3014, 2959, 2959, 3014, 2959, 2959,  278,
1194       277, 2959, 2959, 2959, 3015, 2959, 2959, 3015, 3015, 3015,
1195
1196      2959, 2959, 2959, 2959, 2959, 3016, 2959, 2959, 3016, 3016,
1197      3016, 3016, 3016, 2959, 2959,  277,  277,  277, 2959, 2959,
1198      2959, 3017, 2959, 2959, 3017, 3017, 3017, 2959, 2959, 2959,
1199      2959, 2959, 2959, 3018, 2959, 2959, 3018, 3018, 2959, 2959,
1200       278,  277,  278,  341,  342,  342,  342,  342,  347,  349,
1201       348,  347, 2959, 2959, 2959, 3019, 2959, 2959, 3019, 3019,
1202      3019, 3019, 2959, 2959,  277,  277, 2959, 2959, 2959, 3020,
1203      2959, 2959, 3020, 3020, 3020, 2959, 2959,  277,  277, 2959,
1204      2959, 2959, 3021, 2959, 2959, 3021, 3021, 2959, 2959, 2959,
1205      2959, 2959, 2959, 3022, 2959, 2959, 3022, 3022, 2959, 2959,
1206
1207      2959, 2959, 2959, 2959, 3023, 2959, 2959, 3023, 3023, 3023,
1208      3023, 3023, 2959, 2959,  277,  415,  415, 2959, 2959, 2959,
1209      3024, 2959, 2959, 3024, 3024, 3024, 3024, 3024, 3024, 3024,
1210      3024, 2959, 2959, 2959, 2959, 2959, 2959, 3025, 2959, 2959,
1211      3025, 3025, 3025, 3025, 3025, 3025, 3025, 2959, 2959, 2959,
1212      2959, 2959, 2959, 3026, 2959, 2959, 3026, 3026, 2959, 2959,
1213      2959, 2959, 2959, 2959, 3027, 2959, 2959, 3027, 3027, 3027,
1214      3027, 2959, 2959,  415,  277, 2959, 2959, 2959, 3028, 2959,
1215      2959, 3028, 3028, 2959, 2959,  277,  486,  486, 2959, 2959,
1216      2959, 3029, 2959, 2959, 3029, 3029, 3029, 2959, 2959,  486,
1217
1218       486, 2959, 2959, 2959, 3030, 2959, 2959, 3030, 3030, 2959,
1219      2959, 2959, 2959, 2959, 2959, 3031, 2959, 2959, 3031, 3031,
1220      2959, 2959,  486,  486, 2959, 2959, 2959, 3032, 2959, 2959,
1221      3032, 3032, 3032, 2959, 2959,  486,  486, 2959, 2959, 2959,
1222      3033, 2959, 2959, 3033, 3033, 3033, 3033, 3033, 2959, 2959,
1223       277,  551,  551, 2959, 2959, 2959, 3034, 2959, 2959, 3034,
1224      2959, 2959, 2959, 2959, 2959, 2959, 3035, 2959, 2959, 3035,
1225      2959, 2959,  551,  277, 2959, 2959, 2959, 3036, 2959, 2959,
1226      3036, 3036, 2959, 2959, 2959, 2959, 3037, 2959, 2959, 2959,
1227      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1228
1229      2959, 2959, 3038, 3038, 3039, 2959, 2959, 2959, 2959, 2959,
1230      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1231      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 3040, 3040,
1232      3041, 2959, 3042, 3042, 3042, 3042, 2959, 3043, 2959, 2959,
1233      3044, 3044, 3044, 3044, 3044, 3044, 3044, 3044, 3044, 3045,
1234      2959, 2959, 3046, 3046, 3046, 3046, 3047, 2959, 3048, 3048,
1235      3048, 3049, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1236      2959, 2959, 2959, 2959, 3050, 3050, 3050, 3050, 3050, 3051,
1237      2959, 3052, 3052, 3052, 3052, 3053, 2959, 3054, 3054, 3054,
1238      3055, 2959, 3056, 3056, 3056, 3057, 2959, 3058, 3058, 3058,
1239
1240      3058, 3058, 3058, 3059, 2959, 2959, 3060, 3060, 3060, 3060,
1241      3060, 3060, 3060, 3060, 3060, 3060, 3060, 3060, 3060, 3060,
1242      3061, 2959, 3062, 3062, 3062, 3062, 3062, 3062, 3062, 3062,
1243      3063, 2959, 3064, 3064, 3064, 3065, 2959, 3066, 3066, 3066,
1244      3066, 3066, 3066, 3067, 2959, 3068, 3068, 3068, 3068, 3069,
1245      2959, 2959, 3070, 3070, 3070, 3070, 3070, 3071, 2959, 3072,
1246      3072, 3072, 3073, 2959, 3074, 3074, 3074, 3075, 2959, 3076,
1247      3076, 3076, 3076, 3077, 2959, 3078, 3078, 3078, 3078, 3078,
1248      3078, 3079, 2959, 2959, 3080, 3080, 3081, 2959, 3082, 3082,
1249      3083, 2959, 3084, 3084, 3084, 3085, 3086, 2959, 3086, 2959,
1250
1251      2959, 2959, 3087, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1252      3088, 3089, 3089, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1253      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1254      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 3090, 3091,
1255      3091, 3092, 2959, 2959, 3092, 2959, 3093, 3093, 2959, 3094,
1256      2959, 2959, 3094, 3094, 3094, 3094, 3094, 3094, 3095, 3095,
1257      2959, 3096, 3096, 3096, 3097, 3097, 2959, 2959, 3098, 3099,
1258      3099, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1259      2959, 2959, 3100, 2959, 2959, 3100, 3100, 3101, 3101, 3102,
1260      2959, 2959, 3102, 3103, 3103, 2959, 2959, 3104, 3105, 3105,
1261
1262      3106, 3106, 3107, 3107, 3108, 3108, 3108, 2959, 2959, 3108,
1263      3108, 3109, 3109, 2959, 2959, 3110, 3110, 2959, 2959, 3110,
1264      2959, 2959, 3110, 3110, 3110, 3110, 3110, 3110, 3110, 3110,
1265      3111, 3111, 3112, 3112, 3112, 2959, 2959, 3112, 3112, 3112,
1266      3113, 3113, 3114, 2959, 2959, 3115, 3115, 3116, 2959, 2959,
1267      3116, 3116, 3116, 3117, 3117, 3118, 3118, 3118, 3119, 3119,
1268      2959, 3120, 3120, 3120, 3120, 3121, 3121, 3122, 2959, 2959,
1269      3123, 3123, 3124, 3124, 3125, 3125, 3126, 3126, 3126, 3127,
1270      3127, 3128, 3128, 3128, 3128, 3128, 3129, 3129, 2959, 3130,
1271      3131, 3131, 2959, 2959, 3132, 3132, 2959, 2959, 3133, 3134,
1272
1273      3134, 3135, 2959, 2959, 3135, 2959, 2959, 3136, 2959, 2959,
1274      2959, 2959, 2959, 2959, 3137, 2959, 3138, 2959, 3138, 2959,
1275      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1276      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1277      2959, 2959, 2959, 2959, 2959, 3139, 2959, 3140, 2959, 3140,
1278      3141, 2959, 2959, 2959, 3141, 2959, 2959, 3142, 2959, 3142,
1279      3143, 2959, 2959, 2959, 2959, 2959, 3143, 2959, 2959, 3143,
1280      3143, 3143, 2959, 3144, 2959, 3144, 2959, 3145, 3145, 3145,
1281      2959, 3146, 2959, 3146, 2959, 2959, 2959, 3147, 2959, 3148,
1282      2959, 3148, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1283
1284      2959, 2959, 3149, 2959, 2959, 2959, 3149, 3149, 2959, 3150,
1285      2959, 3150, 3151, 2959, 2959, 2959, 3151, 2959, 3152, 2959,
1286      3152, 2959, 2959, 2959, 3153, 2959, 3154, 2959, 3154, 3155,
1287      3155, 2959, 3156, 2959, 3156, 3157, 3157, 3157, 2959, 2959,
1288      2959, 3157, 3157, 2959, 3158, 2959, 3158, 2959, 2959, 3159,
1289      3159, 3159, 3159, 2959, 2959, 2959, 3159, 2959, 2959, 2959,
1290      2959, 2959, 3159, 3159, 3159, 3159, 3159, 3159, 3159, 2959,
1291      3160, 2959, 3160, 3161, 3161, 3161, 3161, 2959, 2959, 2959,
1292      2959, 2959, 3161, 3161, 2959, 3162, 2959, 3162, 3163, 2959,
1293      2959, 2959, 2959, 3164, 2959, 3164, 3165, 2959, 2959, 2959,
1294
1295      3165, 3165, 3165, 2959, 3166, 2959, 3166, 2959, 2959, 2959,
1296      2959, 3167, 2959, 3168, 2959, 3168, 2959, 2959, 2959, 3169,
1297      3169, 2959, 2959, 3169, 2959, 3170, 2959, 3170, 3171, 2959,
1298      2959, 2959, 2959, 3172, 2959, 3172, 2959, 2959, 2959, 2959,
1299      2959, 3173, 2959, 3173, 2959, 2959, 3174, 3174, 2959, 2959,
1300      2959, 3175, 2959, 3175, 3176, 3176, 3176, 3176, 3176, 2959,
1301      3177, 2959, 3177, 2959, 3178, 2959, 3179, 2959, 3179, 2959,
1302      2959, 2959, 2959, 3180, 2959, 3180, 2959, 2959, 2959, 3181,
1303      2959, 3182, 2959, 3182, 3183, 3184, 2959, 2959, 2959, 2959,
1304      2959, 3185, 3186, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1305
1306      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1307      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1308      3187, 2959, 2959, 3188, 2959, 3189, 3190, 2959, 2959, 2959,
1309      2959, 2959, 2959, 2959, 2959, 3190, 2959, 2959, 3190, 3191,
1310      2959, 3192, 2959, 2959, 3192, 3193, 3194, 2959, 2959, 2959,
1311      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 3195,
1312      3195, 2959, 2959, 3196, 3197, 3197, 3198, 2959, 2959, 3199,
1313      2959, 2959, 3200, 3201, 3202, 3202, 2959, 2959, 3202, 3202,
1314      3203, 2959, 2959, 3204, 3204, 3204, 3204, 2959, 2959, 2959,
1315      2959, 2959, 3204, 3204, 3204, 3204, 3204, 3204, 3204, 3205,
1316
1317      3206, 3206, 3206, 3206, 2959, 2959, 2959, 3206, 3206, 3207,
1318      3208, 3209, 3210, 3210, 3210, 3210, 3211, 2959, 2959, 2959,
1319      2959, 2959, 2959, 3212, 3213, 2959, 2959, 2959, 2959, 3214,
1320      3214, 2959, 2959, 2959, 3214, 3215, 3216, 3217, 2959, 2959,
1321      2959, 2959, 2959, 2959, 3218, 2959, 2959, 2959, 3219, 3219,
1322      2959, 2959, 2959, 3220, 3221, 2959, 2959, 3221, 3221, 3221,
1323      3222, 2959, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3229,
1324      2959, 3229, 2959, 2959, 2959, 3230, 3231, 2959, 2959, 2959,
1325      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1326      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1327
1328      2959, 2959, 2959, 2959, 2959, 2959, 3232, 2959, 2959, 2959,
1329      3233, 2959, 3234, 3235, 2959, 2959, 2959, 3235, 2959, 2959,
1330      2959, 3235, 3236, 2959, 3237, 2959, 2959, 2959, 2959, 2959,
1331      3238, 3239, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1332      2959, 2959, 3240, 2959, 2959, 2959, 2959, 2959, 3241, 3242,
1333      3242, 3243, 2959, 2959, 2959, 3244, 2959, 2959, 2959, 3245,
1334      3246, 3247, 3247, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1335      3247, 3248, 2959, 2959, 3249, 2959, 2959, 3249, 3249, 2959,
1336      2959, 2959, 2959, 2959, 3249, 3249, 3249, 3249, 3249, 3249,
1337      3250, 3251, 2959, 2959, 3251, 3251, 2959, 2959, 3251, 3252,
1338
1339      3253, 3254, 3255, 3255, 3255, 2959, 2959, 3255, 3256, 3257,
1340      3258, 2959, 3259, 3259, 3259, 3260, 3261, 3262, 3263, 3264,
1341      3264, 3265, 3266, 2959, 2959, 2959, 3266, 3266, 3266, 3267,
1342      2959, 2959, 2959, 3268, 3269, 2959, 2959, 3270, 3271, 3272,
1343      3272, 2959, 2959, 3273, 3274, 2959, 2959, 2959, 2959, 2959,
1344      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1345      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 3275,
1346      3276, 2959, 3277, 3278, 3278, 3278, 3279, 3280, 2959, 2959,
1347      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 3281,
1348      3282, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 3283, 2959,
1349
1350      2959, 2959, 3284, 3285, 2959, 2959, 3286, 3287, 2959, 2959,
1351      3288, 3289, 3289, 2959, 2959, 2959, 2959, 2959, 2959, 3289,
1352      2959, 2959, 2959, 2959, 3290, 2959, 2959, 2959, 2959, 2959,
1353      3290, 2959, 2959, 2959, 2959, 2959, 3290, 3290, 3290, 3290,
1354      2959, 2959, 3291, 3292, 2959, 2959, 2959, 2959, 2959, 3292,
1355      2959, 2959, 2959, 3292, 2959, 2959, 3293, 3294, 3295, 3295,
1356      3295, 2959, 2959, 2959, 3295, 2959, 2959, 3296, 3297, 2959,
1357      2959, 2959, 2959, 2959, 3298, 3299, 3300, 3301, 3302, 2959,
1358      2959, 2959, 2959, 3303, 3304, 3304, 3304, 3304, 3305, 2959,
1359      2959, 2959, 2959, 3306, 3307, 2959, 2959, 2959, 2959, 2959,
1360
1361      3308, 3309, 3309, 2959, 2959, 2959, 3310, 2959, 2959, 2959,
1362      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1363      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 3311, 3312,
1364      2959, 2959, 2959, 3313, 2959, 2959, 3313, 3314, 2959, 2959,
1365      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1366      3315, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1367      3316, 2959, 2959, 2959, 2959, 2959, 3317, 2959, 2959, 2959,
1368      2959, 2959, 3318, 3319, 3319, 2959, 2959, 3319, 2959, 3320,
1369      2959, 2959, 2959, 3320, 2959, 2959, 2959, 2959, 2959, 3320,
1370      3320, 3320, 2959, 2959, 2959, 3321, 3322, 2959, 2959, 2959,
1371
1372      3322, 3322, 3323, 3324, 3325, 2959, 2959, 3325, 3325, 2959,
1373      2959, 3325, 3326, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1374      2959, 2959, 3327, 3328, 3329, 3330, 3331, 2959, 2959, 2959,
1375      2959, 2959, 2959, 3332, 3333, 3333, 3333, 3333, 3334, 2959,
1376      3335, 3336, 3337, 3338, 3338, 2959, 2959, 2959, 2959, 3339,
1377      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1378      2959, 2959, 2959, 2959, 2959, 2959, 2959, 3340, 3341, 2959,
1379      3342, 2959, 2959, 2959, 3342, 2959, 2959, 2959, 2959, 2959,
1380      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1381      3343, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1382
1383      2959, 2959, 3344, 2959, 2959, 2959, 3345, 3346, 3347, 3347,
1384      2959, 2959, 2959, 2959, 3347, 2959, 3348, 3348, 2959, 2959,
1385      2959, 3348, 3348, 3348, 3349, 3350, 3350, 3350, 3351, 2959,
1386      2959, 3325, 2959, 2959, 2959, 3325, 3325, 2959, 2959, 2959,
1387      2959, 3325, 3326, 2959, 3327, 3328, 3329, 3330, 3331, 3332,
1388      2959, 2959, 3333, 3333, 3333, 3334, 2959, 3335, 2959, 2959,
1389      3337, 3338, 3338, 2959, 3339, 2959, 2959, 2959, 2959, 2959,
1390      2959, 2959, 2959, 2959, 2959, 2959, 3341, 2959, 2959, 3342,
1391      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1392      3343, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1393
1394      2959, 2959, 2959, 2959, 2959, 2959, 3344, 2959, 2959, 3346,
1395      3347, 3347, 2959, 2959, 2959, 2959, 3347, 2959, 3348, 3348,
1396      2959, 2959, 3348, 3348, 2959, 2959, 3350, 3350, 3350, 3351,
1397      2959, 2959, 3325, 3325, 3325, 2959, 2959, 2959, 2959, 3325,
1398      3326, 2959, 3327, 2959, 2959, 2959, 2959, 3330, 3331, 3332,
1399      2959, 2959, 2959, 2959, 2959, 3333, 3333, 2959, 2959, 2959,
1400      3335, 3337, 3338, 3338, 2959, 2959, 2959, 2959, 2959, 2959,
1401      2959, 3341, 2959, 2959, 2959, 3342, 2959, 2959, 2959, 2959,
1402      2959, 2959, 2959, 2959, 2959, 2959, 3343, 2959, 2959, 2959,
1403      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1404
1405      2959, 2959, 2959, 2959, 3344, 2959, 2959, 3347, 3347, 2959,
1406      2959, 2959, 2959, 3348, 3348, 2959, 2959, 2959, 3348, 2959,
1407      2959, 3350, 3350, 2959, 2959, 3351, 2959, 2959, 2959, 3325,
1408      3325, 3325, 2959, 2959, 2959, 2959, 3326, 3327, 2959, 2959,
1409      2959, 2959, 2959, 3331, 3332, 2959, 2959, 2959, 2959, 2959,
1410      2959, 2959, 2959, 2959, 3337, 3338, 3338, 2959, 2959, 2959,
1411      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1412      3342, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1413      2959, 3343, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1414      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 3344,
1415
1416      3347, 2959, 2959, 2959, 2959, 2959, 3348, 3348, 3348, 2959,
1417      2959, 2959, 3350, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1418      3325, 3325, 3325, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1419      2959, 2959, 2959, 2959, 2959, 2959, 3331, 3332, 2959, 2959,
1420      2959, 2959, 2959, 2959, 3337, 3338, 3338, 2959, 2959, 2959,
1421      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1422      2959, 2959, 2959, 3342, 2959, 2959, 2959, 2959, 2959, 2959,
1423      2959, 2959, 3343, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1424      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1425      3344, 2959, 2959, 3347, 2959, 2959, 2959, 3348, 3348, 3348,
1426
1427      3350, 2959, 2959, 2959, 2959, 2959, 2959, 3325, 2959, 2959,
1428      3325, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1429      2959, 2959, 2959, 3331, 3332, 2959, 2959, 2959, 2959, 3337,
1430      3338, 3338, 3338, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1431      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1432      2959, 2959, 2959, 2959, 2959, 3343, 2959, 2959, 2959, 2959,
1433      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1434      2959, 2959, 3344, 2959, 2959, 2959, 3347, 3348, 3348, 3348,
1435      3350, 3325, 2959, 2959, 2959, 3325, 2959, 2959, 2959, 2959,
1436      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1437
1438      2959, 2959, 3332, 2959, 2959, 2959, 2959, 3337, 3338, 3338,
1439      3338, 3352, 3353, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1440      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1441      2959, 2959, 2959, 3343, 2959, 2959, 2959, 2959, 2959, 2959,
1442      2959, 2959, 2959, 2959, 2959, 2959, 2959, 3347, 3348, 3348,
1443      2959, 2959, 3350, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1444      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 3332,
1445      2959, 2959, 2959, 2959, 3337, 3338, 3354, 3355, 3352, 3353,
1446      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1447      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1448
1449      2959, 2959, 2959, 2959, 3347, 3348, 3348, 2959, 2959, 2959,
1450      3350, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1451      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1452      2959, 2959, 2959, 2959, 2959, 3337, 3354, 3338, 3356, 3355,
1453      3357, 3338, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1454      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 3347, 3348,
1455      3348, 2959, 2959, 2959, 2959, 3350, 2959, 2959, 2959, 2959,
1456      2959, 2959, 2959, 2959, 2959, 2959, 3337, 3356, 2959, 3357,
1457      3338, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1458      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1459
1460      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1461      2959, 2959, 2959, 3337, 2959, 2959, 2959, 2959, 2959, 2959,
1462      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1463      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1464      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 3337,
1465      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1466      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1467      2959, 2959, 2959, 3337, 2959, 2959, 2959, 2959, 2959, 2959,
1468      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1469      2959, 2959, 2959, 2959, 3337, 2959, 2959, 2959, 2959, 2959,
1470
1471      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1472      2959, 2959, 2959, 3337, 2959, 2959, 2959, 2959, 2959, 2959,
1473      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1474      2959, 2959, 3337, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1475      2959, 2959, 2959, 2959, 2959, 3337, 2959, 2959, 2959, 2959,
1476      2959, 2959, 2959, 2959, 3337, 2959, 2959, 2959, 2959, 2959,
1477      2959, 2959, 2959, 3337, 3337, 2959, 2959, 2959, 2959, 2959,
1478      2959, 3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337,
1479      3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337,
1480      3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337,
1481
1482      3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337,
1483      3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337,
1484      3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337,
1485      3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337,
1486      3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337,
1487      3337, 3337, 3337, 3337, 3337, 3337, 3337, 2959,    0, 2959,
1488      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1489      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1490      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1491      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1492
1493      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1494      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1495      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1496      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1497      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1498      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1499      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1500      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1501      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1502      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1503
1504      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1505      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1506      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1507      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1508      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1509      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1510      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1511      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1512      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1513      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1514
1515      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1516      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1517      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1518      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1519      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1520      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1521      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1522      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1523      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1524      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1525
1526      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1527      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1528      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1529      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1530      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
1531      2959, 2959, 2959, 2959, 2959, 2959, 2959
1532     } ;
1533
1534 static yyconst flex_int16_t yy_nxt[10284] =
1535     {   0,
1536      2959,  240,  241,  240,  240,  241,  240,  240,  241,  240,
1537       240,  241,  240,  245,  241,  245,  251,  242,  248,  251,
1538       242,  248, 2959,  243, 2959,  249,  243, 2959,  249,  246,
1539       245,  241,  245,  587,  252,  254,  255,  252,  254,  255,
1540       256,  257,  631,  256,  257,  587,  246,  261,  262,  588,
1541       258,  254,  255,  258,  259,  590,  256,  254,  255,  620,
1542       259,  589,  256,  261,  262, 1631,  258,  241,  241,  241,
1543       742,  589,  258,  241,  241,  241,  273,  241,  273,  273,
1544       241,  273,  743,  264,  273,  241,  273,  608, 1471,  264,
1545       662,  263,  274, 1175,  623,  274,  586,  586,  586, 1176,
1546
1547       275,  586,  586,  586,  586,  586,  586,  263,  265,  266,
1548       241,  266,  265,  265,  265,  265,  265,  265,  265,  267,
1549       265,  265,  265,  618,  265,  269,  265,  270,  265,  273,
1550       241,  273,  241,  241,  241,  241,  241,  241,  619,  273,
1551       241,  273,  273,  241,  273,  275,  624,  613,  276,  590,
1552       623,  276, 1642,  265,  265,  274,  590,  590,  274,  273,
1553       241,  273,  586,  586,  586,  589,  586,  586,  586,  586,
1554       586,  586,  589,  589,  650,  277, 1643,  271,  265,  266,
1555       241,  266,  265,  265,  265,  265,  265,  265,  265,  267,
1556       265,  265,  265, 1644,  265,  269,  265,  270,  265,  273,
1557
1558       241,  273,  241,  241,  241,  241,  241,  241,  595,  273,
1559       241,  273,  273,  241,  273,  277,  601, 1646,  278,  714,
1560       666,  278,  715,  265,  265,  275,  651,  668,  275,  241,
1561       241,  241,  241,  241,  241,  273,  241,  273,  273,  241,
1562       273,  273,  241,  273, 1647,  279,  748,  271,  279,  590,
1563       596,  277,  709,  749,  277, 1648,  597,  280,  273,  241,
1564       273,  598,  586,  586,  586,  589,  599,  586,  586,  586,
1565       586,  586,  586,  710,  280,  281,  282,  241,  282,  281,
1566       281,  281,  281,  281,  281,  281,  283,  281,  281,  281,
1567       648,  281,  285,  281,  286,  281,  289,  241,  289,  289,
1568
1569       241,  289,  241,  241,  241,  649,  241,  241,  241,  289,
1570       241,  289,  290,  758,  804,  290, 1649,  805,  278,  644,
1571       281,  281,  278,  645, 2959,  290,  605,  646,  287,  281,
1572       282,  241,  282,  281,  281,  281,  281,  281,  281,  281,
1573       283,  281,  281,  281,  590,  281,  285,  281,  286,  281,
1574       289,  241,  289,  289,  241,  289,  289,  241,  289,  716,
1575       589,  612,  254,  255,  756,  625,  290,  256, 2959,  291,
1576      1650,  757,  291,  717,  281,  281,  651,  301,  626,  650,
1577       619,  798,  287,  292,  293,  241,  293,  292,  292,  292,
1578       292,  292,  292,  292,  294,  292,  292,  292,  791,  292,
1579
1580       296,  292,  297,  292, 1651,  590,  302,  618,  315,  241,
1581       315,  315,  241,  315,  241,  241,  241,  846,  254,  255,
1582       627,  589,  619,  256,  316,  637,  827,  316,  292,  292,
1583       317,  623,  638,  301,  822,  607,  298,  680,  823,  299,
1584       828,  589,  586,  586,  586, 1652,  300,  292,  293,  241,
1585       293,  292,  292,  292,  292,  292,  292,  292,  294,  292,
1586       292,  292,  302,  292,  296,  292,  297,  292,  241,  241,
1587       241,  315,  241,  315,  315,  241,  315,  832,  315,  241,
1588       315,  315,  241,  315,  317,  590,  590,  316, 2959,  651,
1589       316,  828,  292,  292,  318, 1654,  817,  318,  620,  818,
1590
1591       298,  589,  589,  299,  586,  586,  586,  586,  586,  586,
1592       300,  303,  304,  241,  304,  303,  303,  303,  303,  303,
1593       303,  303,  305,  303,  303,  303,  608,  303,  307,  303,
1594       308,  303,  329,  241,  329,  329,  241,  329,  340,  241,
1595       340,  680,  340,  241,  340,  340,  241,  340,  330, 1655,
1596       590,  330,  590,  590,  341, 1656,  303,  303,  341,  657,
1597      1657,  342,  586,  586,  586,  309,  589,  310,  589,  589,
1598       686,  311,  586,  586,  586,  686,  312,  313,  303,  304,
1599       241,  304,  303,  303,  303,  303,  303,  303,  303,  305,
1600       303,  303,  303,  623,  303,  307,  303,  308,  303,  340,
1601
1602       241,  340,  241,  241,  241,  241,  241,  241,  744,  340,
1603       241,  340,  340,  241,  340,  342,  607, 1003,  343,  590,
1604       670,  343,  651,  303,  303,  344,  610,  623,  344,  665,
1605       611,  623,  309,  666,  310,  589,  619, 1468,  311,  673,
1606       668,  768, 1660,  312,  313,  319,  320,  241,  320,  319,
1607       319,  319,  319,  319,  319,  319,  321,  319,  319,  319,
1608       623,  319,  323,  319,  324,  319,  340,  241,  340,  340,
1609       241,  340,  241,  241,  241, 1663,  241,  241,  241,  340,
1610       241,  340,  345, 1664,  817,  345,  590,  831,  346,  612,
1611       319,  319,  346,  691,  590,  342,  798,  325,  586,  586,
1612
1613       586,  696,  589,  326,  586,  586,  586,  586,  586,  586,
1614       589,  799,  327,  319,  320,  241,  320,  319,  319,  319,
1615       319,  319,  319,  319,  321,  319,  319,  319, 1665,  319,
1616       323,  319,  324,  319,  340,  241,  340,  241,  241,  241,
1617       241,  241,  241,  832,  340,  241,  340,  340,  241,  340,
1618       342, 1666,  834,  347,  590,  818,  347,  876,  319,  319,
1619       345,  834,  590,  345,  831,  325,  586,  586,  586, 1667,
1620       589,  326,  586,  586,  586,  586,  586,  586,  589, 1671,
1621       327,  331,  332,  241,  332,  331,  331,  331,  331,  331,
1622       331,  331,  333,  331,  331,  331,  774,  331,  335,  331,
1623
1624       336,  331,  340,  241,  340,  340,  241,  340,  241,  241,
1625       241, 1672,  241,  241,  241,  340,  241,  340,  348,  590,
1626       906,  348, 1674,  907,  349,  782,  331,  331,  349,  590,
1627      1675,  350,  586,  586,  586,  589,  704,  337,  586,  586,
1628       586,  586,  586,  586,  612,  589,  338,  331,  332,  241,
1629       332,  331,  331,  331,  331,  331,  331,  331,  333,  331,
1630       331,  331,  783,  331,  335,  331,  336,  331,  340,  241,
1631       340,  241,  241,  241,  241,  241,  241,  651,  340,  241,
1632       340,  340,  241,  340,  350,  705, 1676,  351,  651,  718,
1633       351, 1678,  331,  331,  348,  590, 1691,  348,  340,  241,
1634
1635       340,  719,  720,  337,  340,  241,  340,  586,  586,  586,
1636       744,  589,  338,  791,  352,  586,  586,  586,  662, 1692,
1637       352,  353,  354,  241,  354,  353,  353,  353,  353,  353,
1638       353,  353,  355,  353,  353,  353, 1693,  353,  357,  353,
1639       358,  353,  364,  241,  364,  364,  241,  364,  241,  241,
1640       241,  914,  241,  241,  241,  915,  671, 1696,  365,  613,
1641       590,  365,  590,  590,  317,  623,  353,  353,  317,  721,
1642       731,  359,  667,  586,  586,  586,  589,  360,  589,  589,
1643      1697,  361,  586,  586,  586, 1698, 1699,  362,  353,  354,
1644       241,  354,  353,  353,  353,  353,  353,  353,  353,  355,
1645
1646       353,  353,  353, 1704,  353,  357,  353,  358,  353,  364,
1647       241,  364,  364,  241,  364,  364,  241,  364,  832,  364,
1648       241,  364,  586,  586,  586,  365,  590, 1712,  365, 1713,
1649      1720,  366,  881,  353,  353,  366,  590,  590,  359,  586,
1650       586,  586,  589,  736,  360,  586,  586,  586,  361,  586,
1651       586,  586,  589,  589,  362,  367,  368,  241,  368,  367,
1652       367,  367,  367,  367,  367,  367,  369,  367,  367,  367,
1653      1724,  367,  371,  367,  372,  367,  377,  241,  377,  377,
1654       241,  377,  241,  241,  241,  832,  241,  241,  241,  586,
1655       586,  586,  378, 1003,  590,  378, 1003, 1285,  317,  882,
1656
1657       367,  367,  317, 1725, 1731,  373,  586,  586,  586,  750,
1658       589,  374,  586,  586,  586,  586,  586,  586,  586,  586,
1659       586, 1639,  375,  367,  368,  241,  368,  367,  367,  367,
1660       367,  367,  367,  367,  369,  367,  367,  367, 1737,  367,
1661       371,  367,  372,  367,  377,  241,  377,  377,  241,  377,
1662       377,  241,  377, 1738,  377,  241,  377,  751, 1739, 1740,
1663       378,  623, 1744,  378, 1306, 1750,  379, 1754,  367,  367,
1664       379,  590,  590,  373,  586,  586,  586, 1307,  763,  374,
1665       586,  586,  586,  586,  586,  586, 1757,  589,  589, 1759,
1666       375,  380,  381,  241,  381,  380,  380,  380,  380,  380,
1667
1668       380,  380,  382,  380,  380,  380, 1760,  380,  384,  380,
1669       385,  380,  389,  241,  389,  389,  241,  389,  400,  241,
1670       400, 1761,  400,  241,  400,  414,  241,  414,  390,  590,
1671       590,  390, 1765, 1768,  401,  590,  380,  380,  401, 1770,
1672      1777,  415,  586,  586,  586,  589,  589,  386,  586,  586,
1673       586,  589,  387,  380,  381,  241,  381,  380,  380,  380,
1674       380,  380,  380,  380,  382,  380,  380,  380, 1785,  380,
1675       384,  380,  385,  380,  414,  241,  414,  241,  241,  241,
1676       241,  241,  241, 1786,  414,  241,  414,  414,  241,  414,
1677       415,  590, 1787,  416, 1788,  824,  416, 1003,  380,  380,
1678
1679       415, 1790,  825,  415,  586,  586,  586,  589,  826,  386,
1680       586,  586,  586, 1005,  387,  391,  392,  241,  392,  391,
1681       391,  391,  391,  391,  391,  391,  393,  391,  391,  391,
1682      1804,  391,  395,  391,  396,  391,  414,  241,  414,  414,
1683       241,  414,  433,  241,  433, 1808,  433,  241,  433,  449,
1684       241,  449,  417, 1809, 1812,  417, 1471, 1814,  434, 1810,
1685       391,  391,  434, 1003, 1815,  450,  586,  586,  586,  586,
1686       586,  586,  586,  586,  586, 1811,  397,  586,  586,  586,
1687      1801, 1816,  398,  391,  392,  241,  392,  391,  391,  391,
1688       391,  391,  391,  391,  393,  391,  391,  391, 1802,  391,
1689
1690       395,  391,  396,  391,  449,  241,  449,  460,  241,  460,
1691       460,  241,  460, 1817,  473,  241,  473,  473,  241,  473,
1692       450, 1818, 1821,  461,  590, 1822,  461, 1825,  391,  391,
1693       474,  787, 1826,  474,  586,  586,  586,  586,  586,  586,
1694       589,  586,  586,  586,  397,  586,  586,  586, 1471, 1827,
1695       398,  402,  403,  241,  403,  402,  402,  402,  402,  402,
1696       402,  402,  404,  402,  402,  402, 1828,  402,  406,  402,
1697       407,  402,  241,  241,  241,  241,  241,  241,  473,  241,
1698       473, 1803,  473,  241,  473, 1830,  590, 1317,  317, 1831,
1699      1834,  317, 1837,  796,  474, 1841,  402,  402,  474,  408,
1700
1701      1307,  409,  589,  802,  802,  802, 1842,  410,  802,  802,
1702       802, 1845, 1007, 1846,  411, 1847, 1850,  412,  402,  403,
1703       241,  403,  402,  402,  402,  402,  402,  402,  402,  404,
1704       402,  402,  402, 1854,  402,  406,  402,  407,  402,  473,
1705       241,  473,  473,  241,  473,  485,  241,  485, 1858,  485,
1706       241,  485, 1052, 1052, 1052,  475, 1053, 1874,  475, 1054,
1707       836,  486,  803,  402,  402,  486,  408,  825,  409,  836,
1708       824, 1875, 1876,  837,  410, 1877,  825,  825, 1020, 1020,
1709      1020,  411,  826,  837,  412,  418,  419,  241,  419,  418,
1710       418,  418,  418,  418,  418,  418,  420,  418,  418,  418,
1711
1712       421,  418,  422,  418,  423,  418,  421,  421,  421,  421,
1713       421,  421,  421,  421,  421,  421,  421,  421,  421,  421,
1714       421,  421,  421,  421,  421,  421,  421,  421,  421,  421,
1715       418,  418,  421,  424,  425,  426,  421,  421,  421,  421,
1716       421,  427,  421,  421,  428,  421,  421,  421,  429,  421,
1717       430,  431,  421,  421,  421,  421,  421,  421,  421,  435,
1718       436,  241,  436,  435,  435,  435,  435,  435,  435,  435,
1719       437,  435,  435,  435, 1878,  435,  439,  435,  440,  435,
1720       241,  241,  241,  241,  241,  241,  485,  241,  485, 1843,
1721       485,  241,  485,  843,  843,  843,  487, 1844, 1879,  487,
1722
1723      1880, 1317,  486, 1884,  435,  435,  486,  441,  442,  443,
1724       844, 1040, 1040, 1040, 1341,  444, 1848, 1890,  445, 1020,
1725      1020, 1020,  446, 1891, 1849,  447,  435,  436,  241,  436,
1726       435,  435,  435,  435,  435,  435,  435,  437,  435,  435,
1727       435, 1892,  435,  439,  435,  440,  435,  485,  241,  485,
1728       485,  241,  485,  499,  241,  499, 1897,  499,  241,  499,
1729       851,  851,  851,  488, 1901, 1855,  488, 1902, 1855,  500,
1730      1903,  435,  435,  500,  441,  442,  443,  852, 1040, 1040,
1731      1040, 1856,  444, 1021, 1811,  445, 1483, 1483, 1483,  446,
1732      1905, 1909,  447,  451,  452,  241,  452,  451,  451,  451,
1733
1734       451,  451,  451,  451,  453,  451,  451,  451, 1910,  451,
1735       455,  451,  456,  451,  241,  241,  241,  241,  241,  241,
1736       499,  241,  499, 1911,  499,  241,  499, 1151,  836, 1912,
1737       487, 1913, 1810,  487, 1916,  825,  500, 1152,  451,  451,
1738       500,  861, 1021,  457, 1153, 1485, 1485, 1485, 1856,  458,
1739       451,  452,  241,  452,  451,  451,  451,  451,  451,  451,
1740       451,  453,  451,  451,  451, 1923,  451,  455,  451,  456,
1741       451,  499,  241,  499,  499,  241,  499,  511,  241,  511,
1742      1925,  511,  241,  511,  867,  867,  867,  501, 1679, 1935,
1743       501, 1486, 1936,  512, 1680,  451,  451,  512, 1681, 1937,
1744
1745       457,  868, 1682, 1020, 1020, 1020,  458,  462,  463,  241,
1746       463,  462,  462,  462,  462,  462,  462,  462,  464,  462,
1747       462,  462, 1938,  462,  466,  462,  467,  462,  522,  241,
1748       522,  522,  241,  522,  241,  241,  241, 1940,  241,  241,
1749       241,  522,  241,  522,  523, 1003, 1946,  523, 1952, 1953,
1750       487, 1943,  462,  462,  487, 1954,  468,  523, 1062, 1062,
1751      1062, 1957, 1063,  469, 1958, 1064,  470, 1093, 1959, 1471,
1752      1040, 1040, 1040,  471,  462,  463,  241,  463,  462,  462,
1753       462,  462,  462,  462,  462,  464,  462,  462,  462, 1963,
1754       462,  466,  462,  467,  462,  522,  241,  522,  522,  241,
1755
1756       522,  522,  241,  522, 1967,  535,  241,  535,  535,  241,
1757       535,  523, 1969, 1970,  524, 1945, 1971,  524, 1975,  462,
1758       462,  536, 1981,  468,  536, 1085, 1085, 1085, 1982, 1086,
1759       469, 1983, 1087,  470, 1093, 1489, 1489, 1489, 1984, 1985,
1760       471,  476,  477,  241,  477,  476,  476,  476,  476,  476,
1761       476,  476,  478,  476,  476,  476, 1986,  476,  480,  476,
1762       481,  476,  241,  241,  241,  241,  241,  241,  535,  241,
1763       535, 1987,  535,  241,  535,  535,  241,  535,  487, 1988,
1764      1989,  487, 1990, 1996,  536, 1997,  476,  476,  536, 2009,
1765      2010,  537,  482, 1104, 1104, 1104, 2015, 1105, 2016, 2017,
1766
1767      1106, 1492, 1492, 1492, 1501, 1501, 1501,  483,  476,  477,
1768       241,  477,  476,  476,  476,  476,  476,  476,  476,  478,
1769       476,  476,  476, 2018,  476,  480,  476,  481,  476,  535,
1770       241,  535,  550,  241,  550,  550,  241,  550, 2011,  241,
1771       241,  241,  241,  241,  241,  537, 2012, 2022,  551, 2013,
1772      2023,  551, 2024,  476,  476,  552, 2026, 2014,  552,  482,
1773      1114, 1114, 1114, 2027, 1115, 2028, 2029, 1116, 1524, 1524,
1774      1524, 1535, 1535, 1535,  483,  489,  490,  241,  490,  489,
1775       489,  489,  489,  489,  489,  489,  491,  489,  489,  489,
1776      2032,  489,  493,  489,  494,  489,  550,  241,  550,  550,
1777
1778       241,  550,  550,  241,  550, 1471,  550,  241,  550,  562,
1779       241,  562,  551, 1683, 2036,  551, 2037, 2042,  553, 1684,
1780       489,  489,  553, 1685, 2043,  563,  495, 1686, 2044,  496,
1781      1122, 1122, 1122, 2045, 1123, 2047, 1944, 1124, 1536, 1536,
1782      1536,  497,  489,  490,  241,  490,  489,  489,  489,  489,
1783       489,  489,  489,  491,  489,  489,  489, 2057,  489,  493,
1784       489,  494,  489,  562,  241,  562,  572,  241,  572,  572,
1785       241,  572, 2038,  241,  241,  241,  241,  241,  241,  563,
1786      2039, 1471,  573, 2040, 1486,  573, 2067,  489,  489,  317,
1787      2068, 2041,  317,  495, 2072, 2073,  496, 1139, 1139, 1139,
1788
1789      1471, 1140, 2074, 2077, 1141, 1485, 1485, 1485,  497,  502,
1790       503,  241,  503,  502,  502,  502,  502,  502,  502,  502,
1791       504,  502,  502,  502, 2062,  502,  506,  502,  507,  502,
1792       572,  241,  572,  572,  241,  572,  572,  241,  572, 2081,
1793       572,  241,  572,  584,  241,  584,  573, 2063, 2082,  573,
1794      2083, 1612,  574, 2959,  502,  502,  574, 2084, 2085,  585,
1795       508, 2086,  620,  620, 2087,  509,  502,  503,  241,  503,
1796       502,  502,  502,  502,  502,  502,  502,  504,  502,  502,
1797       502, 2088,  502,  506,  502,  507,  502,  584,  241,  584,
1798       671, 2089,  621, 2090, 2104, 1016, 1016, 1016,  622, 2105,
1799
1800       662, 2106, 2111,  585, 2112,  623,  672, 2113,  662,  624,
1801       663,  502,  502, 1018, 1483, 1483, 1483,  508,  669, 1485,
1802      1485, 1485,  509,  513,  514,  241,  514,  513,  513,  513,
1803       513,  513,  513,  513,  515,  513,  513,  513,  664,  513,
1804       517,  513,  518,  513,  665, 2114,  670, 2115,  666,  884,
1805       884,  884, 2116, 2117,  667,  668,  891,  891,  891, 2119,
1806       623,  896,  896,  896,  617, 2120,  885, 2123,  513,  513,
1807       908,  908,  908,  892,  519, 1154, 1154, 1154,  897, 1155,
1808      2124, 2127, 1156, 1653, 1653, 1653, 2128,  909, 2129,  520,
1809       513,  514,  241,  514,  513,  513,  513,  513,  513,  513,
1810
1811       513,  515,  513,  513,  513, 2130,  513,  517,  513,  518,
1812       513,  918,  918,  918,  921,  921,  921,  936,  936,  936,
1813       944,  944,  944,  949,  949,  949, 2134, 2135,  919, 2136,
1814      2137,  922, 2138, 2139,  937,  513,  513,  945, 2140, 2141,
1815       950,  519, 1158, 1158, 1158, 2143, 1159, 2167, 2168, 1160,
1816      1489, 1489, 1489, 1492, 1492, 1492,  520,  525,  526,  241,
1817       526,  525,  525,  525,  525,  525,  525,  525,  527,  525,
1818       525,  525, 1471,  525,  529,  525,  530,  525,  969,  969,
1819       969,  993,  993,  993,  997,  997,  997, 1016, 1016, 1016,
1820      2169, 1047, 1047, 1047, 2170,  970, 2171, 2172,  994, 2177,
1821
1822      2178,  998,  525,  525, 2163, 1018, 2179, 2180,  531, 1049,
1823      2181,  532, 1178, 1178, 1178, 1471, 1179, 2182, 2183, 1180,
1824      1658, 1658, 1658,  533,  525,  526,  241,  526,  525,  525,
1825       525,  525,  525,  525,  525,  527,  525,  525,  525, 2184,
1826       525,  529,  525,  530,  525, 1019, 1047, 1047, 1047,  843,
1827       843,  843, 2164, 1057, 1057, 1057, 1057, 1057, 1057,  851,
1828       851,  851, 2185, 2186, 1049, 2188,  844, 2189, 2190,  525,
1829       525, 1059, 2192, 2193, 1059,  531,  852, 2191,  532, 1190,
1830      1190, 1190, 2194, 1191, 1659, 2195, 1192, 1501, 1501, 1501,
1831       533,  538,  539,  241,  539,  538,  538,  538,  538,  538,
1832
1833       538,  538,  540,  538,  538,  538, 1050,  538,  542,  538,
1834       543,  538, 1065, 1065, 1065, 1068, 1068, 1068, 2196, 2199,
1835      1060, 1073, 1073, 1073, 1081, 1081, 1081, 2092, 2093, 1066,
1836      2094, 2197, 1069, 1073, 1073, 1073,  538,  538, 2095, 1075,
1837      2198, 2096, 1083, 2200,  544, 2097,  545, 2201, 2202,  546,
1838      2203, 1075, 2204,  547, 1524, 1524, 1524,  548,  538,  539,
1839       241,  539,  538,  538,  538,  538,  538,  538,  538,  540,
1840       538,  538,  538, 2208,  538,  542,  538,  543,  538, 2209,
1841      1076, 2210, 1081, 1081, 1081,  867,  867,  867, 1089, 1089,
1842      1089,  884,  884,  884, 1109, 1109, 1109, 1109, 1109, 1109,
1843
1844      1083, 2211,  868,  538,  538, 2214, 1091, 2215,  885, 2219,
1845      2222,  544, 1111,  545, 2223, 1111,  546, 1535, 1535, 1535,
1846       547, 1536, 1536, 1536,  548,  554,  555,  241,  555,  554,
1847       554,  554,  554,  554,  554,  554,  556,  554,  554,  554,
1848      2226,  554,  558,  554,  559,  554, 1084, 1089, 1089, 1089,
1849       891,  891,  891, 2230, 1118, 1118, 1118, 1118, 1118, 1118,
1850       896,  896,  896, 1112, 2231, 1091, 2232,  892, 2233, 2234,
1851       554,  554, 1120, 2237, 2238, 1120, 2258,  897, 1198, 1198,
1852      1198, 2259, 1199, 2260, 1092, 1200, 1230, 1230, 1230, 2261,
1853      1231, 2262, 1471, 1232,  560,  554,  555,  241,  555,  554,
1854
1855       554,  554,  554,  554,  554,  554,  556,  554,  554,  554,
1856      2272,  554,  558,  554,  559,  554, 1126, 1126, 1126, 1126,
1857      1126, 1126, 1003, 1121, 1132, 1132, 1132, 1132, 1132, 1132,
1858       908,  908,  908, 2265, 1128, 2257, 2273, 1128, 2274, 2275,
1859       554,  554, 1134, 2266, 2276, 1134, 2267,  909, 1270, 1270,
1860      1270, 2277, 1271, 2278, 2279, 1272, 1277, 1277, 1277, 2280,
1861      1278, 2281, 2255, 1279,  560,  564,  565,  241,  565,  564,
1862       564,  564,  564,  564,  564,  564,  566,  564,  564,  564,
1863      1129,  564,  568,  564,  569,  564, 1144, 1144, 1144, 1144,
1864      1144, 1144, 1135, 2283, 2284,  918,  918,  918,  921,  921,
1865
1866       921, 1161, 1161, 1161, 1146, 2285, 2268, 1146, 2286, 2287,
1867       564,  564,  919, 2288, 1471,  922, 2269, 2289, 1162, 2270,
1868      2290,  570,  564,  565,  241,  565,  564,  564,  564,  564,
1869       564,  564,  564,  566,  564,  564,  564, 2291,  564,  568,
1870       564,  569,  564, 1170, 1170, 1170, 1170, 1170, 1170, 2292,
1871      1147, 2256,  936,  936,  936, 1181, 1181, 1181, 1185, 1185,
1872      1185, 1172, 2293, 2294, 1172, 2295, 2296,  564,  564,  937,
1873      2297, 2298, 1182, 1723, 1723, 1723, 1187, 2299,  570,  575,
1874       576,  241,  576,  575,  575,  575,  575,  575,  575,  575,
1875       577,  575,  575,  575, 2301,  575,  579,  575,  580,  575,
1876
1877       944,  944,  944, 2307, 1173, 1193, 1193, 1193, 2308, 1193,
1878      1193, 1193, 2309, 1185, 1185, 1185, 2313,  945, 2321,  949,
1879       949,  949, 2322, 1195,  575,  575, 2323, 1195, 1204, 1204,
1880      1204, 1187, 1661, 1661, 1661,  581,  950, 1052, 1052, 1052,
1881      2348, 1053, 1003, 2350, 1054, 2351, 1206, 1471,  582,  575,
1882       576,  241,  576,  575,  575,  575,  575,  575,  575,  575,
1883       577,  575,  575,  575, 1188,  575,  579,  575,  580,  575,
1884      1196, 2345, 1204, 1204, 1204, 1208, 1208, 1208, 1662, 1210,
1885      1210, 1210, 2959, 2959, 2959, 1213, 1213, 1213, 2331, 2346,
1886      1206, 2352, 1209, 2356,  575,  575, 1211, 2357, 2332, 2959,
1887
1888      1218, 1218, 1218, 1215, 2333,  581, 1213, 1213, 1213, 2360,
1889      2358, 2959, 2959, 2959, 1222, 1222, 1222, 1219,  582,  590,
1890      2959, 2959, 2959, 2359, 1215, 2361,  605, 1207, 2959, 2365,
1891      1471, 1223, 1225, 1225, 1225,  589,  606, 2959,  969,  969,
1892       969, 1212, 1233, 1233, 1233, 1237, 1237, 1237, 2366, 2367,
1893      1227, 1225, 1225, 1225, 2368,  970, 1239, 1239, 1239, 2369,
1894      1235, 1220, 1238,  607,  608,  609, 2370, 1216, 2371, 1227,
1895       610,  611, 2347, 1240,  612,  613, 1221, 2372,  614, 1224,
1896       615,  616,  617, 1233, 1233, 1233, 2374, 2375, 1228, 1241,
1897      1241, 1241, 1241, 1241, 1241, 1245, 1245, 1245, 1249, 1249,
1898
1899      1249, 1235, 2959, 2959, 2959, 2376, 2377, 1243, 2378, 2379,
1900      1243, 2380, 1246, 2381, 2382, 1250, 1251, 1251, 1251, 2959,
1901      2362, 1251, 1251, 1251, 1260, 1260, 1260, 1260, 1260, 1260,
1902      1266, 1266, 1266, 2363, 1253, 1266, 1266, 1266, 1236, 1253,
1903      2383, 2384, 1262, 2385, 2386, 1262, 2387, 2388, 1268,  993,
1904       993,  993, 1247, 1268, 1273, 1273, 1273, 1273, 1273, 1273,
1905       997,  997,  997, 1244, 2390, 2398,  994, 1248, 1281, 1281,
1906      1281, 2399, 1275, 2400, 2401, 1275, 2408,  998, 1281, 1281,
1907      1281, 2411, 1016, 1016, 1016, 2418, 1283, 1016, 1016, 1016,
1908      2419, 1263, 1254, 1016, 1016, 1016, 1283, 2420, 2421, 1269,
1909
1910      1018, 2422, 1319, 1319, 1319, 1018, 1047, 1047, 1047, 2423,
1911      2426, 1018, 1047, 1047, 1047, 1047, 1047, 1047, 1276, 1320,
1912      1322, 1322, 1322, 2427, 1049, 2428, 2959, 2959, 2959, 1003,
1913      1049, 2434, 2436, 1049, 1057, 1057, 1057, 1323, 2429, 1471,
1914      1293, 2437, 1284, 2959, 1057, 1057, 1057, 1057, 1057, 1057,
1915      2438, 2439, 1059, 1062, 1062, 1062, 2440, 1063, 2441, 2442,
1916      1064, 2443, 1059, 2444, 1321, 1059, 1065, 1065, 1065, 1328,
1917      1328, 1328, 2334, 1329, 2431, 2445, 1330, 2430, 1331, 1331,
1918      1331, 2448, 2335, 1066, 1068, 1068, 1068, 1324, 2336, 1333,
1919      1333, 1333, 2449, 1334, 1326, 1332, 1335, 1337, 1337, 1337,
1920
1921      2450, 1069, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073,
1922      1073, 1343, 1343, 1343, 1338, 1081, 1081, 1081, 2451, 2452,
1923      1075, 2453, 2454, 1075, 2455, 2457, 1075, 2458, 1344, 1081,
1924      1081, 1081, 2459, 1083, 1081, 1081, 1081, 1085, 1085, 1085,
1925      2460, 1086, 2461, 2462, 1087, 2463, 2464, 1083, 1089, 1089,
1926      1089, 2465, 1083, 1089, 1089, 1089, 1348, 1348, 1348, 2466,
1927      1104, 1104, 1104, 2467, 1105, 2468, 1091, 1106, 1340, 2469,
1928      2470, 1091, 2471, 2477, 1349, 1362, 1362, 1362, 1109, 1109,
1929      1109, 1346, 1109, 1109, 1109, 1109, 1109, 1109, 1118, 1118,
1930      1118, 2478, 1363, 1118, 1118, 1118, 1111, 1114, 1114, 1114,
1931
1932      1111, 1115, 2479, 1111, 1116, 2480, 1120, 1118, 1118, 1118,
1933      2481, 1120, 1122, 1122, 1122, 2482, 1123, 2486, 2495, 1124,
1934      1368, 1368, 1368, 2496, 2497, 1120, 1126, 1126, 1126, 1126,
1935      1126, 1126, 1126, 1126, 1126, 2487, 2498, 1369, 1371, 1371,
1936      1371, 2959, 2959, 2959, 1128, 2488, 1364, 1128, 2499, 2500,
1937      1128, 2504, 1132, 1132, 1132, 1372, 2505, 2506, 2959, 1132,
1938      1132, 1132, 1132, 1132, 1132, 1377, 1377, 1377, 1367, 1373,
1939      1134, 1139, 1139, 1139, 2507, 1140, 2517, 1134, 1141, 2518,
1940      1134, 2519, 1378, 1144, 1144, 1144, 1144, 1144, 1144, 1144,
1941      1144, 1144, 2489, 1154, 1154, 1154, 2491, 1155, 2520, 1370,
1942
1943      1156, 1146, 2490, 2521, 1146, 2522, 2492, 1146, 1388, 1388,
1944      1388, 1158, 1158, 1158, 2523, 1159, 1003, 2493, 1160, 1161,
1945      1161, 1161, 1390, 1390, 1390, 1389, 1391, 2494, 1374, 1392,
1946      1170, 1170, 1170, 1170, 1170, 1170, 1162, 1170, 1170, 1170,
1947      1178, 1178, 1178, 2524, 1179, 2528, 2529, 1180, 1172, 2530,
1948      2508, 1172, 2531, 2532, 1381, 1172, 1181, 1181, 1181, 1405,
1949      1405, 1405, 2533, 1406, 2535, 2536, 1407, 1185, 1185, 1185,
1950      1185, 1185, 1185, 1182, 1185, 1185, 1185, 1190, 1190, 1190,
1951      2537, 1191, 2538, 2539, 1192, 1187, 2540, 2541, 1187, 1193,
1952      1193, 1193, 1187, 1193, 1193, 1193, 1193, 1193, 1193, 1198,
1953
1954      1198, 1198, 2542, 1199, 1400, 2543, 1200, 1195, 1204, 1204,
1955      1204, 1195, 2544, 2548, 1195, 1204, 1204, 1204, 1204, 1204,
1956      1204, 1208, 1208, 1208, 2549, 1410, 1206, 1418, 1418, 1418,
1957      2550, 1419, 2553, 1206, 1420, 2558, 1206, 2559, 1209, 1210,
1958      1210, 1210, 1421, 1421, 1421, 2560, 1422, 2561, 2562, 1423,
1959      1213, 1213, 1213, 1213, 1213, 1213, 1211, 1213, 1213, 1213,
1960      1218, 1218, 1218, 1412, 2563, 1427, 1427, 1427, 1215, 1428,
1961      2564, 1215, 1429, 2565, 2566, 1215, 2567, 1219, 1417, 1222,
1962      1222, 1222, 1432, 1432, 1432, 2568, 1433, 2569, 2571, 1434,
1963      1225, 1225, 1225, 1225, 1225, 1225, 1223, 1225, 1225, 1225,
1964
1965      1230, 1230, 1230, 2572, 1231, 2573, 2574, 1232, 1227, 2581,
1966      2582, 1227, 1233, 1233, 1233, 1227, 1233, 1233, 1233, 1233,
1967      1233, 1233, 2583, 2584, 1425, 1237, 1237, 1237, 2585, 2586,
1968      1235, 1439, 1439, 1439, 1235, 1440, 2587, 1235, 1441, 1239,
1969      1239, 1239, 1238, 1442, 1442, 1442, 1003, 1443, 2588, 2589,
1970      1444, 1241, 1241, 1241, 2590, 2591, 1240, 1241, 1241, 1241,
1971      2592, 1436, 1241, 1241, 1241, 1245, 1245, 1245, 2593, 1243,
1972      1446, 1446, 1446, 2594, 1447, 1243, 2597, 1448, 2598, 1438,
1973      1243, 2599, 1246, 1249, 1249, 1249, 1451, 1451, 1451, 2575,
1974      1452, 2600, 2601, 1453, 1251, 1251, 1251, 1251, 1251, 1251,
1975
1976      1250, 1251, 1251, 1251, 1456, 1456, 1456, 1260, 1260, 1260,
1977      2602, 2603, 1253, 2604, 2605, 1253, 1260, 1260, 1260, 1253,
1978      2606, 1457, 2607, 2611, 1445, 1262, 1260, 1260, 1260, 1266,
1979      1266, 1266, 2618, 2619, 1262, 1266, 1266, 1266, 1266, 1266,
1980      1266, 1270, 1270, 1270, 1262, 1271, 2620, 1268, 1272, 1273,
1981      1273, 1273, 2621, 1268, 2622, 2623, 1268, 1273, 1273, 1273,
1982      1273, 1273, 1273, 1454, 1277, 1277, 1277, 1275, 1278, 2624,
1983      2625, 1279, 1281, 1281, 1281, 1275, 2626, 2627, 1275, 1281,
1984      1281, 1281, 1281, 1281, 1281, 2628, 2629, 1461, 2632, 2633,
1985      1283, 1464, 1470, 1470, 1470, 2634, 2635, 1283, 2643, 2644,
1986
1987      1283, 1016, 1016, 1016, 1319, 1319, 1319, 1047, 1047, 1047,
1988      1471, 1472, 1003, 1322, 1322, 1322, 1348, 1348, 1348, 1018,
1989      1465, 1320, 1504, 1504, 1504, 1049, 1505, 2645, 2638, 1506,
1990      1323, 1508, 1508, 1508, 1349, 1509, 2638, 2646, 1510, 1057,
1991      1057, 1057, 2639, 1467, 1328, 1328, 1328, 2641, 1329, 2647,
1992      2648, 1330, 1331, 1331, 1331, 2649, 2650, 1059, 2636, 1515,
1993      1515, 1515, 2651, 1516, 2652, 1507, 1517, 1477, 2653, 1332,
1994      1333, 1333, 1333, 2654, 1334, 2655, 2656, 1335, 1337, 1337,
1995      1337, 2657, 1519, 1519, 1519, 2658, 1520, 2659, 1513, 1521,
1996      1073, 1073, 1073, 2660, 2661, 1338, 1343, 1343, 1343, 1526,
1997
1998      1526, 1526, 2666, 1527, 2671, 2672, 1528, 2673, 1075, 1529,
1999      1529, 1529, 2674, 1344, 1081, 1081, 1081, 1544, 1544, 1544,
2000      1362, 1362, 1362, 1546, 1546, 1546, 1530, 1547, 2675, 2676,
2001      1548, 2679, 1083, 1003, 1545, 1471, 1472, 1363, 2679, 2638,
2002      1523, 1109, 1109, 1109, 1118, 1118, 1118, 1368, 1368, 1368,
2003      1553, 1553, 1553, 2639, 1554, 2682, 2683, 1555, 2684, 1111,
2004      2685, 2688, 1120, 1531, 1369, 1126, 1126, 1126, 1371, 1371,
2005      1371, 1557, 1557, 1557, 2677, 1558, 2691, 2700, 1559, 1132,
2006      1132, 1132, 2662, 1128, 2686, 1372, 1377, 1377, 1377, 1564,
2007      1564, 1564, 2664, 1565, 2663, 2667, 1566, 1134, 1567, 1567,
2008
2009      1567, 2703, 2687, 1378, 2665, 1549, 2708, 2668, 1552, 1569,
2010      1569, 1569, 1144, 1144, 1144, 1568, 1576, 1576, 1576, 1388,
2011      1388, 1388, 1813, 1813, 1813, 1556, 1570, 1580, 1580, 1580,
2012      1146, 1581, 2638, 1577, 1582, 2711, 1389, 1390, 1390, 1390,
2013      1561, 1391, 2669, 2641, 1392, 1583, 1583, 1583, 1170, 1170,
2014      1170, 1593, 1593, 1593, 2670, 1571, 1405, 1405, 1405, 2712,
2015      1406, 2713, 1584, 1407, 2679, 2715, 1172, 2679, 1594, 1597,
2016      1597, 1597, 1185, 1185, 1185, 1193, 1193, 1193, 1572, 1606,
2017      1606, 1606, 1204, 1204, 1204, 2716, 1598, 1418, 1418, 1418,
2018      1187, 1419, 2698, 1195, 1420, 2701, 1607, 1421, 1421, 1421,
2019
2020      1206, 1422, 2717, 2706, 1423, 1213, 1213, 1213, 1427, 1427,
2021      1427, 2699, 1428, 1591, 2702, 1429, 2718, 1432, 1432, 1432,
2022      2719, 1433, 2707, 1215, 1434, 1608, 1225, 1225, 1225, 1233,
2023      1233, 1233, 2709, 1439, 1439, 1439, 1600, 1440, 2689, 1609,
2024      1441, 1602, 2720, 2721, 1227, 2722, 2723, 1235, 1442, 1442,
2025      1442, 2710, 1443, 2690, 2733, 1444, 1241, 1241, 1241, 1446,
2026      1446, 1446, 2734, 1447, 2735, 2736, 1448, 2737, 1451, 1451,
2027      1451, 1611, 1452, 2738, 1243, 1453, 1251, 1251, 1251, 1456,
2028      1456, 1456, 1260, 1260, 1260, 2742, 1618, 1616, 1624, 1624,
2029      1624, 2743, 1625, 2744, 1253, 1626, 1457, 1632, 1632, 1632,
2030
2031      1262, 2745, 2746, 1619, 1266, 1266, 1266, 1273, 1273, 1273,
2032      1636, 1636, 1636, 2747, 1633, 1281, 1281, 1281, 1470, 1470,
2033      1470, 2748, 1268, 1622, 2749, 1275, 2751, 1637, 1016, 1016,
2034      1016, 1630, 2752, 1283, 2753, 2754, 1471, 1668, 1668, 1668,
2035      1504, 1504, 1504, 2755, 1505, 2756, 1018, 1506, 1047, 1047,
2036      1047, 1508, 1508, 1508, 2760, 1509, 2758, 2757, 1510, 1635,
2037      1057, 1057, 1057, 1515, 1515, 1515, 1049, 1516, 2759, 1640,
2038      1517, 1634, 1519, 1519, 1519, 2761, 1520, 1638, 1059, 1521,
2039      1645, 2762, 2763, 1669, 2764, 2765, 1641, 1073, 1073, 1073,
2040      1526, 1526, 1526, 2766, 1527, 2767, 2768, 1528, 2769, 1529,
2041
2042      1529, 1529, 1687, 1687, 1687, 1075, 1688, 2770, 2771, 1689,
2043      2772, 1673, 1081, 1081, 1081, 1670, 1530, 1694, 1694, 1694,
2044      1694, 1694, 1694, 1658, 1658, 1658, 1544, 1544, 1544, 2773,
2045      1083, 1700, 1700, 1700, 2775, 1701, 1003, 2776, 1702, 2777,
2046      1546, 1546, 1546, 1545, 1547, 2778, 2779, 1548, 1677, 1109,
2047      1109, 1109, 1705, 1705, 1705, 1118, 1118, 1118, 1553, 1553,
2048      1553, 2774, 1554, 1690, 2780, 1555, 2781, 1111, 2782, 1706,
2049      1126, 1126, 1126, 1120, 2783, 1557, 1557, 1557, 2784, 1558,
2050      2785, 1695, 1559, 2786, 1659, 2787, 2788, 1695, 1128, 1709,
2051      1709, 1709, 1132, 1132, 1132, 2789, 1703, 1564, 1564, 1564,
2052
2053      2790, 1565, 1707, 2791, 1566, 2792, 1710, 1567, 1567, 1567,
2054      1134, 1714, 1714, 1714, 2793, 1715, 2794, 2796, 1716, 2797,
2055      1569, 1569, 1569, 2798, 1568, 1717, 1717, 1717, 1003, 1718,
2056      2799, 2800, 1719, 1721, 1721, 1721, 1708, 1570, 1576, 1576,
2057      1576, 1726, 1726, 1726, 2801, 1727, 2802, 2795, 1728, 2803,
2058      2804, 1722, 1729, 1729, 1729, 1577, 1711, 1580, 1580, 1580,
2059      2805, 1581, 2806, 2807, 1582, 1583, 1583, 1583, 2808, 1730,
2060      1732, 1732, 1732, 2809, 1733, 2810, 2811, 1734, 1735, 1735,
2061      1735, 2812, 1584, 1741, 1741, 1741, 1170, 1170, 1170, 1593,
2062      1593, 1593, 1745, 1745, 1745, 1736, 1746, 2813, 2815, 1747,
2063
2064      1742, 1748, 1748, 1748, 1172, 2816, 1594, 1597, 1597, 1597,
2065      1751, 1751, 1751, 2817, 1752, 2818, 1003, 1753, 1749, 1755,
2066      1755, 1755, 2819, 2820, 1598, 1193, 1193, 1193, 1606, 1606,
2067      1606, 1762, 1762, 1762, 2821, 1763, 2814, 1756, 1764, 1766,
2068      1766, 1766, 2822, 1195, 2823, 1607, 1213, 1213, 1213, 1771,
2069      1771, 1771, 1743, 1773, 1773, 1773, 2824, 1767, 2959, 2959,
2070      2959, 1225, 1225, 1225, 1215, 2825, 1772, 1233, 1233, 1233,
2071      1774, 1241, 1241, 1241, 2826, 2959, 1758, 2827, 2828, 1227,
2072      2829, 1780, 1780, 1780, 2830, 1235, 1782, 1782, 1782, 1243,
2073      1251, 1251, 1251, 1260, 1260, 1260, 2831, 1769, 1781, 2832,
2074
2075      1624, 1624, 1624, 1783, 1625, 2834, 1003, 1626, 1253, 2835,
2076      2836, 1262, 2833, 1778, 1632, 1632, 1632, 1791, 1791, 1791,
2077      2837, 1792, 1775, 2838, 1793, 1266, 1266, 1266, 1776, 2839,
2078      2840, 1633, 1273, 1273, 1273, 2841, 1779, 1636, 1636, 1636,
2079      1799, 1799, 1799, 1268, 1789, 1796, 1796, 1796, 2842, 1797,
2080      1275, 2843, 1798, 2844, 1637, 1784, 2845, 2847, 1800, 1805,
2081      1805, 1805, 1016, 1016, 1016, 1653, 1653, 1653, 1819, 1819,
2082      1819, 1658, 1658, 1658, 2848, 2849, 1806, 1820, 1820, 1820,
2083      1018, 1661, 1661, 1661, 1794, 2850, 2851, 1795, 1823, 1823,
2084      1823, 1824, 1824, 1824, 1668, 1668, 1668, 1047, 1047, 1047,
2085
2086      1832, 1832, 1832, 1835, 1835, 1835, 1073, 1073, 1073, 1839,
2087      1839, 1839, 1687, 1687, 1687, 1049, 1688, 2852, 1833, 1689,
2088      1836, 2853, 2854, 1807, 1075, 2856, 1840, 1081, 1081, 1081,
2089      1003, 1852, 1852, 1852, 1694, 1694, 1694, 1857, 1857, 1857,
2090      1859, 1859, 1859, 2857, 2846, 1083, 2858, 1829, 1853, 1700,
2091      1700, 1700, 2859, 1701, 2860, 2861, 1702, 1860, 1109, 1109,
2092      1109, 1862, 1862, 1862, 2862, 1838, 1705, 1705, 1705, 2863,
2093      1864, 1864, 1864, 1851, 1865, 2866, 1111, 1866, 1863, 1118,
2094      1118, 1118, 2867, 1706, 1868, 1868, 1868, 1709, 1709, 1709,
2095      2868, 1870, 1870, 1870, 2869, 1871, 2870, 1120, 1872, 1132,
2096
2097      1132, 1132, 1869, 2871, 1710, 1714, 1714, 1714, 1003, 1715,
2098      1629, 1861, 1716, 1628, 1717, 1717, 1717, 1134, 1718, 1003,
2099      2882, 1719, 1721, 1721, 1721, 1723, 1723, 1723, 1003, 1726,
2100      1726, 1726, 1867, 1727, 1003, 1003, 1728, 1729, 1729, 1729,
2101      1722, 1881, 1881, 1881, 2872, 1882, 1873, 1003, 1883, 1732,
2102      1732, 1732, 1003, 1733, 1730, 2873, 1734, 1735, 1735, 1735,
2103      1885, 1885, 1885, 1003, 1886, 1003, 1003, 1887, 1888, 1888,
2104      1888, 1741, 1741, 1741, 1736, 1893, 1893, 1893, 2878, 1894,
2105      1003, 1627, 1895, 2874, 1003, 1889, 1003, 2892, 1742, 1170,
2106      1170, 1170, 1745, 1745, 1745, 2875, 1746, 1623, 2893, 1747,
2107
2108      1748, 1748, 1748, 2888, 1898, 1898, 1898, 1172, 1899, 2879,
2109      2883, 1900, 1751, 1751, 1751, 2902, 1752, 1749, 1003, 1753,
2110      1755, 1755, 1755, 1193, 1193, 1193, 1906, 1906, 1906, 1762,
2111      1762, 1762, 2876, 1763, 2877, 2880, 1764, 1003, 1756, 1003,
2112      1896, 1195, 1003, 1907, 1766, 1766, 1766, 1914, 1914, 1914,
2113      1771, 1771, 1771, 1917, 1917, 1917, 2884, 1918, 2885, 2881,
2114      1919, 1003, 1767, 1003, 1003, 1915, 1003, 1772, 1773, 1773,
2115      1773, 1621, 1908, 1920, 1920, 1920, 1620, 1921, 1003, 2889,
2116      1922, 1225, 1225, 1225, 2886, 1774, 1003, 1904, 1233, 1233,
2117      1233, 1241, 1241, 1241, 1780, 1780, 1780, 1003, 1003, 1227,
2118
2119      1928, 1928, 1928, 1003, 1929, 1003, 1235, 1930, 2887, 1243,
2120      2898, 1781, 1782, 1782, 1782, 1931, 1931, 1931, 1003, 1932,
2121      2904, 1003, 1933, 1251, 1251, 1251, 1260, 1260, 1260, 1783,
2122      1003, 1791, 1791, 1791, 1617, 1792, 2900, 1926, 1793, 2890,
2123      2896, 1253, 1003, 2894, 1262, 1003, 2891, 1924, 1266, 1266,
2124      1266, 1273, 1273, 1273, 2901, 2897, 1927, 1796, 1796, 1796,
2125      1615, 1797, 2899, 1003, 1798, 2914, 1268, 2895, 1003, 1275,
2126      1614, 1799, 1799, 1799, 1003, 1805, 1805, 1805, 1947, 1947,
2127      1947, 2915, 1948, 1613, 2918, 1949, 1610, 1605, 1934, 1800,
2128      1003, 1939, 1806, 1016, 1016, 1016, 1951, 1951, 1951, 1941,
2129
2130      1955, 1955, 1955, 2903, 1942, 1813, 1813, 1813, 1956, 1956,
2131      1956, 1018, 1960, 1960, 1960, 1819, 1819, 1819, 1820, 1820,
2132      1820, 1961, 1961, 1961, 1823, 1823, 1823, 1824, 1824, 1824,
2133      1964, 1964, 1964, 1965, 1965, 1965, 1966, 1966, 1966, 1003,
2134      1047, 1047, 1047, 1832, 1832, 1832, 1835, 1835, 1835, 1972,
2135      1972, 1972, 1003, 1973, 2932, 1003, 1974, 1950, 1049, 1604,
2136      1603, 1833, 1003, 1836, 1976, 1976, 1976, 1962, 1839, 1839,
2137      1839, 1978, 1978, 1978, 2910, 1979, 1003, 1601, 1980, 1081,
2138      1081, 1081, 1977, 1003, 1599, 1840, 1852, 1852, 1852, 2905,
2139      1596, 1968, 1992, 1992, 1992, 2906, 1993, 1083, 1003, 1994,
2140
2141      1995, 1995, 1995, 1853, 1857, 1857, 1857, 1998, 1998, 1998,
2142      1859, 1859, 1859, 2000, 2000, 2000, 2912, 2001, 1003, 2907,
2143      2002, 1109, 1109, 1109, 1862, 1862, 1862, 1860, 1991, 2004,
2144      2004, 2004, 1003, 2005, 1003, 2916, 2006, 1003, 2926, 1111,
2145      1003, 1863, 1864, 1864, 1864, 2927, 1865, 1003, 1003, 1866,
2146      1118, 1118, 1118, 1999, 1003, 1868, 1868, 1868, 1870, 1870,
2147      1870, 1003, 1871, 1003, 2908, 1872, 1595, 2911, 1120, 1132,
2148      1132, 1132, 2003, 1869, 1881, 1881, 1881, 2917, 1882, 2919,
2149      2909, 1883, 1885, 1885, 1885, 2922, 1886, 1134, 1003, 1887,
2150      1888, 1888, 1888, 2019, 2019, 2019, 2913, 2020, 2923, 1003,
2151
2152      2021, 2007, 1893, 1893, 1893, 2956, 1894, 1889, 1003, 1895,
2153      1170, 1170, 1170, 1898, 1898, 1898, 1003, 1899, 1003, 1003,
2154      1900, 1003, 2008, 2030, 2030, 2030, 1003, 1003, 1172, 1906,
2155      1906, 1906, 2033, 2033, 2033, 2934, 2034, 2924, 1003, 2035,
2156      1003, 2031, 1914, 1914, 1914, 2920, 1907, 1917, 1917, 1917,
2157      2925, 1918, 2928, 2929, 1919, 1920, 1920, 1920, 1003, 1921,
2158      1915, 1003, 1922, 1225, 1225, 1225, 1233, 1233, 1233, 1241,
2159      1241, 1241, 2921, 2930, 2025, 1928, 1928, 1928, 1003, 1929,
2160      1592, 1227, 1930, 2933, 1235, 2935, 2931, 1243, 1931, 1931,
2161      1931, 1003, 1932, 1003, 1003, 1933, 2940, 1251, 1251, 1251,
2162
2163      1590, 2051, 2051, 2051, 2942, 2049, 2959, 2959, 2959, 2959,
2164      2959, 2959, 1003, 2941, 2046, 1253, 2948, 2050, 2052, 2959,
2165      2959, 2959, 1589, 2959, 1588, 1003, 2959, 1260, 1260, 1260,
2166      2936, 2937, 2048, 1266, 1266, 1266, 2959, 2059, 2059, 2059,
2167      2061, 2061, 2061, 1587, 1586, 1262, 2064, 2064, 2064, 2944,
2168      1585, 1268, 1947, 1947, 1947, 2060, 1948, 2053, 1003, 1949,
2169      1579, 1016, 1016, 1016, 1951, 1951, 1951, 2066, 2066, 2066,
2170      1955, 1955, 1955, 2054, 1956, 1956, 1956, 1003, 2055, 1018,
2171      2069, 2069, 2069, 2070, 2070, 2070, 2071, 2071, 2071, 1960,
2172      1960, 1960, 2056, 2058, 1961, 1961, 1961, 1964, 1964, 1964,
2173
2174      1965, 1965, 1965, 1966, 1966, 1966, 2075, 2075, 2075, 2078,
2175      2078, 2078, 1972, 1972, 1972, 1578, 1973, 1575, 2938, 1974,
2176      2065, 2959, 2959, 2959, 2076, 1574, 2079, 1976, 1976, 1976,
2177      1978, 1978, 1978, 1003, 1979, 1003, 1003, 1980, 2959, 1081,
2178      1081, 1081, 1992, 1992, 1992, 1977, 1993, 2098, 2099, 1994,
2179      2100, 1995, 1995, 1995, 1998, 1998, 1998, 1083, 2101, 1573,
2180      1003, 2102, 2000, 2000, 2000, 2103, 2001, 1003, 2946, 2002,
2181      1109, 1109, 1109, 2004, 2004, 2004, 2939, 2005, 1003, 2943,
2182      2006, 2108, 2108, 2108, 1132, 1132, 1132, 2080, 1111, 2118,
2183      2118, 2118, 1563, 1562, 2019, 2019, 2019, 2945, 2020, 2109,
2184
2185      2091, 2021, 1134, 2121, 2121, 2121, 2125, 2125, 2125, 2030,
2186      2030, 2030, 2131, 2131, 2131, 2952, 2107, 2142, 2142, 2142,
2187      2122, 2033, 2033, 2033, 2126, 2034, 2953, 2031, 2035, 2132,
2188      2144, 2144, 2144, 1003, 1560, 2110, 2146, 2146, 2146, 1233,
2189      1233, 1233, 1241, 1241, 1241, 1251, 1251, 1251, 2145, 2051,
2190      2051, 2051, 2949, 2147, 2158, 2158, 2158, 1235, 2133, 2956,
2191      1243, 1003, 1003, 1253, 1551, 2947, 2052, 2151, 2151, 2151,
2192      1003, 2152, 2159, 1003, 2153, 2154, 2154, 2154, 2959, 2959,
2193      2959, 1550, 2150, 2959, 2959, 2959, 2160, 2160, 2160, 1266,
2194      1266, 1266, 2155, 1543, 2950, 2959, 2059, 2059, 2059, 2148,
2195
2196      2959, 1542, 2951, 2149, 2061, 2061, 2061, 1268, 2064, 2064,
2197      2064, 2066, 2066, 2066, 2060, 2165, 2165, 2165, 2069, 2069,
2198      2069, 1003, 1003, 2070, 2070, 2070, 2071, 2071, 2071, 2156,
2199      2075, 2075, 2075, 2166, 2157, 2078, 2078, 2078, 2173, 2173,
2200      2173, 1541, 2174, 1540, 1539, 2175, 1003, 1538, 2076, 1081,
2201      1081, 1081, 2079, 2954, 1537, 2161, 2959, 2959, 2959, 1109,
2202      1109, 1109, 2108, 2108, 2108, 1534, 2162, 1083, 2206, 2206,
2203      2206, 1533, 1532, 2959, 2212, 2212, 2212, 1111, 2955, 1525,
2204      2109, 2118, 2118, 2118, 1522, 1518, 2207, 2121, 2121, 2121,
2205      1514, 2213, 2216, 2216, 2216, 1512, 2217, 1511, 1503, 2218,
2206
2207      2220, 2220, 2220, 1502, 2122, 2125, 2125, 2125, 1500, 2187,
2208      1499, 2176, 2224, 2224, 2224, 1498, 1497, 2221, 2131, 2131,
2209      2131, 1496, 1495, 2126, 1494, 2205, 2227, 2227, 2227, 2225,
2210      2228, 1493, 1491, 2229, 1490, 2132, 2235, 2235, 2235, 2142,
2211      2142, 2142, 2144, 2144, 2144, 2146, 2146, 2146, 2239, 2239,
2212      2239, 1488, 2240, 2236, 1487, 2241, 2242, 2242, 2242, 1484,
2213      2145, 1482, 2147, 1241, 1241, 1241, 1481, 1251, 1251, 1251,
2214      1480, 2151, 2151, 2151, 2243, 2152, 1479, 1478, 2153, 1476,
2215      1475, 1243, 2154, 2154, 2154, 1253, 2246, 2246, 2246, 1474,
2216      2247, 1473, 1466, 2248, 2249, 2249, 2249, 1463, 1462, 2155,
2217
2218      2251, 2251, 2251, 2158, 2158, 2158, 2160, 2160, 2160, 1460,
2219      1459, 2250, 1458, 1455, 2253, 2253, 2253, 2252, 2165, 2165,
2220      2165, 2159, 2263, 2263, 2263, 2959, 2959, 2959, 1450, 1449,
2221      2244, 2245, 2254, 2173, 2173, 2173, 2166, 2174, 1437, 2264,
2222      2175, 1435, 2959, 1081, 1081, 1081, 1109, 1109, 1109, 2206,
2223      2206, 2206, 2302, 2302, 2302, 2212, 2212, 2212, 2304, 2304,
2224      2304, 1083, 2305, 1431, 1111, 2306, 1430, 2207, 1426, 2303,
2225      1424, 1416, 2213, 2216, 2216, 2216, 1415, 2217, 1414, 1413,
2226      2218, 2220, 2220, 2220, 1411, 1409, 2271, 2310, 2310, 2310,
2227      1408, 2311, 1404, 1403, 2312, 2314, 2314, 2314, 2221, 2224,
2228
2229      2224, 2224, 1402, 2282, 2316, 2316, 2316, 1401, 2317, 1399,
2230      1398, 2318, 2315, 2319, 2319, 2319, 2225, 2300, 2227, 2227,
2231      2227, 1397, 2228, 1396, 1395, 2229, 2235, 2235, 2235, 1394,
2232      2320, 2324, 2324, 2324, 1393, 2325, 1387, 1386, 2326, 2327,
2233      2327, 2327, 1385, 2236, 2329, 2329, 2329, 2239, 2239, 2239,
2234      1384, 2240, 1383, 1382, 2241, 1380, 2328, 2242, 2242, 2242,
2235      1379, 2330, 1241, 1241, 1241, 1251, 1251, 1251, 1376, 2246,
2236      2246, 2246, 1375, 2247, 1366, 2243, 2248, 2249, 2249, 2249,
2237      1243, 1365, 1361, 1253, 2339, 2339, 2339, 1360, 2340, 1359,
2238      1358, 2341, 1357, 1356, 2250, 2251, 2251, 2251, 2342, 2342,
2239
2240      2342, 1355, 2343, 1354, 1353, 2344, 2253, 2253, 2253, 2349,
2241      2349, 2349, 2252, 2263, 2263, 2263, 2353, 2353, 2353, 1352,
2242      2354, 1351, 1350, 2355, 2254, 1347, 2338, 1345, 2337, 1342,
2243      2264, 2959, 2959, 2959, 1081, 1081, 1081, 2389, 2389, 2389,
2244      1109, 1109, 1109, 2392, 2392, 2392, 1339, 1336, 2959, 2302,
2245      2302, 2302, 1083, 1327, 1325, 2395, 2395, 2395, 1111, 2396,
2246      2393, 1318, 2397, 2304, 2304, 2304, 2303, 2305, 1316, 1315,
2247      2306, 2310, 2310, 2310, 1314, 2311, 1313, 1312, 2312, 2314,
2248      2314, 2314, 2349, 2349, 2349, 2373, 2402, 2402, 2402, 2394,
2249      2403, 2364, 1311, 2404, 1310, 1309, 2315, 2316, 2316, 2316,
2250
2251      1308, 2317, 2391, 1305, 2318, 2319, 2319, 2319, 2405, 2405,
2252      2405, 1304, 2406, 1303, 1302, 2407, 2409, 2409, 2409, 2324,
2253      2324, 2324, 2320, 2325, 1301, 1300, 2326, 2327, 2327, 2327,
2254      2412, 2412, 2412, 2410, 2413, 1299, 1298, 2414, 2329, 2329,
2255      2329, 2415, 2415, 2415, 2328, 2416, 1297, 1296, 2417, 1241,
2256      1241, 1241, 1251, 1251, 1251, 2330, 2339, 2339, 2339, 1295,
2257      2340, 1294, 1292, 2341, 2342, 2342, 2342, 1243, 2343, 1291,
2258      1253, 2344, 2432, 2432, 2432, 2435, 2435, 2435, 2353, 2353,
2259      2353, 1290, 2354, 1289, 1288, 2355, 2446, 2446, 2446, 2433,
2260      1471, 1081, 1081, 1081, 2389, 2389, 2389, 2472, 2472, 2472,
2261
2262      2424, 1287, 1286, 2447, 1109, 1109, 1109, 1003, 1280, 1083,
2263      2392, 2392, 2392, 2474, 2474, 2474, 1265, 2475, 1264, 2425,
2264      2476, 1259, 1111, 1258, 2395, 2395, 2395, 2393, 2396, 1257,
2265      1256, 2397, 2402, 2402, 2402, 1255, 2403, 1229, 1217, 2404,
2266      2456, 2405, 2405, 2405, 1203, 2406, 1202, 1201, 2407, 2409,
2267      2409, 2409, 2483, 2483, 2483, 2473, 2484, 1197, 1189, 2485,
2268      2412, 2412, 2412, 1184, 2413, 1183, 2410, 2414, 2415, 2415,
2269      2415, 1177, 2416, 1174, 1169, 2417, 2501, 2501, 2501, 1251,
2270      1251, 1251, 2509, 2509, 2509, 2432, 2432, 2432, 2511, 2511,
2271      2511, 1168, 2512, 1167, 2502, 2513, 1166, 1253, 1165, 2510,
2272
2273      1471, 1164, 2433, 1471, 1163, 1157, 1471, 2514, 2514, 2514,
2274      2435, 2435, 2435, 2515, 2515, 2515, 2516, 2516, 2516, 2446,
2275      2446, 2446, 2525, 2525, 2525, 1150, 2526, 1149, 1148, 2527,
2276      1081, 1081, 1081, 2545, 2545, 2545, 2447, 2472, 2472, 2472,
2277      2546, 2546, 2546, 1143, 1142, 2503, 1138, 1137, 1083, 2474,
2278      2474, 2474, 1136, 2475, 1131, 1130, 2476, 1125, 2547, 2551,
2279      2551, 2551, 2554, 2554, 2554, 2483, 2483, 2483, 1117, 2484,
2280      1113, 1108, 2485, 2556, 2556, 2556, 2552, 1107, 1103, 2555,
2281      2501, 2501, 2501, 1251, 1251, 1251, 2509, 2509, 2509, 1102,
2282      2557, 1101, 1100, 2576, 2576, 2576, 2534, 2577, 2502, 1099,
2283
2284      2578, 1253, 1098, 2510, 1471, 2511, 2511, 2511, 1097, 2512,
2285      1096, 1471, 2513, 2514, 2514, 2514, 2515, 2515, 2515, 2516,
2286      2516, 2516, 1095, 1471, 2525, 2525, 2525, 1094, 2526, 1088,
2287      1080, 2527, 1079, 1078, 2570, 1469, 1469, 1469, 1469, 1469,
2288      1469, 1469, 1469, 1469, 1077, 1072, 1469, 2595, 2595, 2595,
2289      1071, 1469, 1469, 1469, 1471, 1469, 2545, 2545, 2545, 2546,
2290      2546, 2546, 2551, 2551, 2551, 2596, 2608, 2608, 2608, 1070,
2291      2609, 1067, 1061, 2610, 2554, 2554, 2554, 2547, 1056, 2552,
2292      1469, 1469, 1469, 1469, 1469, 1469, 1469, 1469, 1469, 1469,
2293      1469, 2555, 1055, 1469, 2556, 2556, 2556, 1051, 1469, 1469,
2294
2295      1469, 1471, 1469, 2612, 2612, 2612, 1046, 2613, 1045, 1044,
2296      2614, 2557, 2615, 2615, 2615, 1043, 2616, 1042, 1041, 2617,
2297      2630, 2630, 2630, 2595, 2595, 2595, 1039, 1469, 1469, 2576,
2298      2576, 2576, 1038, 2577, 1037, 1036, 2578, 1035, 2631, 1034,
2299      1033, 2596, 2630, 2630, 2630, 1032, 1031, 1471, 1469, 1469,
2300      1469, 1469, 1469, 2642, 1469, 1469, 1469, 1030, 1029, 1469,
2301      2631, 1028, 1027, 1026, 1469, 1469, 1469, 1471, 1469, 2608,
2302      2608, 2608, 1025, 2609, 1024, 1023, 2610, 2612, 2612, 2612,
2303      1022, 2613, 1015, 1014, 2614, 2615, 2615, 2615, 1013, 2616,
2304      1012, 1011, 2617, 1469, 1469, 1469, 1469, 1469, 1469, 1469,
2305
2306      1469, 1469, 1469, 2642, 1010, 1009, 1469, 2681, 2681, 2681,
2307      1006, 1469, 1469, 1469, 1471, 1469, 2692, 2692, 2692, 2694,
2308      2694, 2694, 2696, 2696, 2696, 1471, 1472, 2704, 2704, 2704,
2309      2714, 2714, 2714, 2693, 1004, 1003, 2695, 1001,  999, 2697,
2310      1469, 1469,  996,  992, 2705, 2681, 2681, 2681, 1003, 2692,
2311      2692, 2692, 2724, 2724, 2724,  990, 2725,  989,  988, 2726,
2312      2694, 2694, 2694, 1471,  986,  985, 2693, 2727, 2727, 2727,
2313       984, 2728,  983,  982, 2729,  981,  979, 2695, 2696, 2696,
2314      2696, 2730, 2730, 2730,  978, 2731,  977,  976, 2732, 2704,
2315      2704, 2704, 2714, 2714, 2714, 2697, 1640, 2739, 2739, 2739,
2316
2317       974, 2740,  973,  972, 2741,  968, 2705, 2724, 2724, 2724,
2318      1003, 2725,  967,  965, 2726, 2727, 2727, 2727,  964, 2728,
2319       963,  962, 2729, 2730, 2730, 2730,  961, 2731,  960, 2750,
2320      2732, 2739, 2739, 2739,  958, 2740,  957,  956, 2741, 2855,
2321      2855, 2855, 2855, 2855, 2855,  955, 2864,  953,  952, 2865,
2322      2957, 2957, 2957, 2957, 2957, 2957,  951, 1003,  948,  947,
2323      1003,  943,  942,  940,  939,  938,  935,  934, 2958,  933,
2324       932, 2958,  238,  238,  238,  238,  238,  238,  238,  238,
2325       238,  239,  239,  239,  239,  239,  239,  239,  239,  239,
2326       244,  244,  244,  244,  244,  244,  244,  244,  244,  247,
2327
2328       247,  247,  247,  247,  247,  247,  247,  247,  250,  250,
2329       250,  250,  250,  250,  250,  250,  250,  253,  253,  253,
2330       253,  253,  253,  253,  253,  253,  260,  260,  260,  260,
2331       260,  260,  260,  260,  260,  268,  268,  268,  268,  268,
2332       268,  268,  268,  268,  272,  272,  272,  272,  272,  272,
2333       272,  272,  272,  284,  284,  284,  284,  284,  284,  284,
2334       284,  284,  288,  288,  288,  288,  288,  288,  288,  288,
2335       288,  295,  295,  295,  295,  295,  295,  295,  295,  295,
2336       306,  306,  306,  306,  306,  306,  306,  306,  306,  314,
2337       314,  314,  314,  314,  314,  314,  314,  314,  322,  322,
2338
2339       322,  322,  322,  322,  322,  322,  322,  328,  328,  328,
2340       328,  328,  328,  328,  328,  328,  334,  334,  334,  334,
2341       334,  334,  334,  334,  334,  339,  339,  339,  339,  339,
2342       339,  339,  339,  339,  356,  356,  356,  356,  356,  356,
2343       356,  356,  356,  363,  363,  363,  363,  363,  363,  363,
2344       363,  363,  370,  370,  370,  370,  370,  370,  370,  370,
2345       370,  376,  376,  376,  376,  376,  376,  376,  376,  376,
2346       383,  383,  383,  383,  383,  383,  383,  383,  383,  388,
2347       388,  388,  388,  388,  388,  388,  388,  388,  394,  394,
2348       394,  394,  394,  394,  394,  394,  394,  399,  399,  399,
2349
2350       399,  399,  399,  399,  399,  399,  405,  405,  405,  405,
2351       405,  405,  405,  405,  405,  413,  413,  413,  413,  413,
2352       413,  413,  413,  413,  432,  432,  432,  432,  432,  432,
2353       432,  432,  432,  438,  438,  438,  438,  438,  438,  438,
2354       438,  438,  448,  448,  448,  448,  448,  448,  448,  448,
2355       448,  454,  454,  454,  454,  454,  454,  454,  454,  454,
2356       459,  459,  459,  459,  459,  459,  459,  459,  459,  465,
2357       465,  465,  465,  465,  465,  465,  465,  465,  472,  472,
2358       472,  472,  472,  472,  472,  472,  472,  479,  479,  479,
2359       479,  479,  479,  479,  479,  479,  484,  484,  484,  484,
2360
2361       484,  484,  484,  484,  484,  492,  492,  492,  492,  492,
2362       492,  492,  492,  492,  498,  498,  498,  498,  498,  498,
2363       498,  498,  498,  505,  505,  505,  505,  505,  505,  505,
2364       505,  505,  510,  510,  510,  510,  510,  510,  510,  510,
2365       510,  516,  516,  516,  516,  516,  516,  516,  516,  516,
2366       521,  521,  521,  521,  521,  521,  521,  521,  521,  528,
2367       528,  528,  528,  528,  528,  528,  528,  528,  534,  534,
2368       534,  534,  534,  534,  534,  534,  534,  541,  541,  541,
2369       541,  541,  541,  541,  541,  541,  549,  549,  549,  549,
2370       549,  549,  549,  549,  549,  557,  557,  557,  557,  557,
2371
2372       557,  557,  557,  557,  561,  561,  561,  561,  561,  561,
2373       561,  561,  561,  567,  567,  567,  567,  567,  567,  567,
2374       567,  567,  571,  571,  571,  571,  571,  571,  571,  571,
2375       571,  578,  578,  578,  578,  578,  578,  578,  578,  578,
2376       583,  583,  583,  583,  583,  583,  583,  583,  583,  603,
2377       603,  603,  930,  929,  928,  603,  629,  629,  629,  927,
2378       926,  925,  629,  633,  633,  633,  924,  923,  920,  633,
2379       641,  641,  641,  917,  916,  913,  641,  653,  653,  653,
2380       911,  910,  905,  653,  659,  659,  659,  904,  902,  901,
2381       659,  675,  675,  675,  900,  898,  895,  675,  682,  682,
2382
2383       682,  893,  890,  889,  682,  688,  688,  688,  887,  886,
2384       883,  688,  693,  693,  693,  880,  879,  878,  693,  698,
2385       698,  698,  877,  875,  874,  698,  707,  707,  707,  873,
2386       872,  871,  707,  723,  723,  723,  869,  866,  864,  723,
2387       733,  733,  733,  863,  862,  860,  733,  738,  738,  738,
2388       858,  857,  856,  738,  746,  746,  746,  855,  854,  853,
2389       746,  753,  753,  753,  850,  849,  848,  753,  760,  760,
2390       760,  845,  842,  841,  760,  765,  765,  765,  839,  838,
2391       835,  765,  770,  770,  770,  833,  830,  829,  770,  776,
2392       776,  776,  821,  820,  819,  776,  785,  785,  785,  816,
2393
2394       815,  814,  785,  789,  789,  789,  813,  811,  810,  789,
2395       793,  793,  793,  809,  808,  807,  793,  797,  797,  797,
2396       797,  797,  797,  797,  806,  797,  603,  603,  603,  801,
2397       798,  800,  603,  812,  795,  794,  792,  812,  629,  629,
2398       629,  790,  788,  786,  629,  840,  784, 2959,  781,  840,
2399       633,  633,  633,  780,  779,  778,  633,  847,  777,  775,
2400       774,  847,  641,  641,  641,  773,  772,  771,  641,  859,
2401       769,  768,  767,  859,  653,  653,  653,  766,  764,  762,
2402       653,  865,  761,  759,  758,  865,  659,  659,  659,  755,
2403       754,  752,  659,  870,  612, 2959,  747,  870,  675,  675,
2404
2405       675,  745,  741,  740,  675,  888,  739,  737,  735,  888,
2406       682,  682,  682,  734,  732,  730,  682,  894,  729,  728,
2407       727,  894,  688,  688,  688,  726,  725,  724,  688,  899,
2408       722,  713,  712,  899,  693,  693,  693,  711,  708,  706,
2409       693,  903, 2959,  703,  702,  903,  698,  698,  698,  701,
2410       700,  699,  698,  912,  697,  695,  694,  912,  707,  707,
2411       707,  692,  690,  689,  707,  931,  687,  685,  684,  931,
2412       723,  723,  723,  683,  681,  679,  723,  941,  678,  677,
2413       676,  941,  733,  733,  733,  674, 2959, 2959,  733,  946,
2414       661,  660,  658,  946,  738,  738,  738,  656,  655,  654,
2415
2416       738,  954,  652,  647,  643,  954,  746,  746,  746,  642,
2417       640,  639,  746,  959,  636,  635,  634,  959,  753,  753,
2418       753,  632,  631,  630,  753,  966,  628,  623, 2959,  966,
2419       760,  760,  760,  604,  602,  600,  760,  971,  594,  593,
2420       594,  971,  765,  765,  765,  593,  592,  591,  765,  975,
2421      2959, 2959, 2959,  975,  770,  770,  770, 2959, 2959, 2959,
2422       770,  980, 2959, 2959, 2959,  980,  776,  776,  776, 2959,
2423      2959, 2959,  776,  987, 2959, 2959, 2959,  987,  785,  785,
2424       785, 2959, 2959, 2959,  785,  991, 2959, 2959, 2959,  991,
2425       789,  789,  789, 2959, 2959, 2959,  789,  995, 2959, 2959,
2426
2427      2959,  995,  793,  793,  793, 2959, 2959, 2959,  793, 1000,
2428      2959, 2959, 2959, 1000, 1002, 1002, 1002, 1002, 1002, 1002,
2429      1002, 1002, 1002, 1008, 2959, 2959, 2959, 2959, 1008,  603,
2430       603,  603, 2959, 2959, 2959,  603, 1017, 1017, 1017, 1017,
2431      2959, 2959, 1017, 1017,  629,  629,  629, 2959, 2959, 2959,
2432       629, 1048, 1048, 1048, 1048, 2959, 2959, 1048, 1048,  633,
2433       633,  633, 2959, 2959, 2959,  633, 1058, 1058, 1058, 1058,
2434      2959, 2959, 1058, 1058,  641,  641,  641, 2959, 2959, 2959,
2435       641, 1074, 1074, 1074, 1074, 2959, 2959, 1074, 1074,  653,
2436       653,  653, 2959, 2959, 2959,  653, 1082, 1082, 1082, 1082,
2437
2438      2959, 2959, 1082, 1082,  659,  659,  659, 2959, 2959, 2959,
2439       659, 1090, 1090, 1090, 1090, 2959, 2959, 1090, 1090,  675,
2440       675,  675, 2959, 2959, 2959,  675, 1110, 1110, 1110, 1110,
2441      2959, 2959, 1110, 1110,  682,  682,  682, 2959, 2959, 2959,
2442       682, 1119, 1119, 1119, 1119, 2959, 2959, 1119, 1119,  688,
2443       688,  688, 2959, 2959, 2959,  688, 1127, 1127, 1127, 1127,
2444      2959, 2959, 1127, 1127,  693,  693,  693, 2959, 2959, 2959,
2445       693, 1133, 1133, 1133, 1133, 2959, 2959, 1133, 1133,  698,
2446       698,  698, 2959, 2959, 2959,  698, 1145, 1145, 1145, 1145,
2447      2959, 2959, 1145, 1145,  707,  707,  707, 2959, 2959, 2959,
2448
2449       707, 1171, 1171, 1171, 1171, 2959, 2959, 1171, 1171,  723,
2450       723,  723, 2959, 2959, 2959,  723, 1186, 1186, 1186, 1186,
2451      2959, 2959, 1186, 1186,  733,  733,  733, 2959, 2959, 2959,
2452       733, 1194, 1194, 1194, 1194, 2959, 2959, 1194, 1194,  738,
2453       738,  738, 2959, 2959, 2959,  738, 1205, 1205, 1205, 1205,
2454      2959, 2959, 1205, 1205,  746,  746,  746,  746, 2959,  746,
2455      2959,  746, 1214, 1214, 1214, 1214, 2959, 2959, 1214, 1214,
2456       753,  753,  753,  753, 2959,  753, 2959,  753, 1226, 1226,
2457      1226, 1226, 2959, 2959, 1226, 1226,  760,  760,  760, 2959,
2458      2959, 2959,  760, 1234, 1234, 1234, 1234, 2959, 2959, 1234,
2459
2460      1234,  765,  765,  765,  765, 2959,  765, 2959,  765, 1242,
2461      1242, 1242, 1242, 2959, 2959, 1242, 1242,  770,  770,  770,
2462       770, 2959,  770, 2959,  770, 1252, 1252, 1252, 1252, 2959,
2463      2959, 1252, 1252,  776,  776,  776, 2959, 2959, 2959,  776,
2464      1261, 1261, 1261, 1261, 2959, 2959, 1261, 1261,  785,  785,
2465       785, 2959, 2959, 2959,  785, 1267, 1267, 1267, 1267, 2959,
2466      2959, 1267, 1267, 1274, 1274, 1274, 1274, 2959, 2959, 1274,
2467      1274,  793,  793,  793, 2959, 2959, 2959,  793, 1282, 1282,
2468      1282, 1282, 2959, 2959, 1282, 1282, 1002, 1002, 1002, 1002,
2469      1002, 1002, 1002, 1002, 1002, 1008, 2959, 1008, 2959, 2959,
2470
2471      1008,  603,  603,  603, 2959, 2959, 2959,  603, 1017, 1017,
2472      1017, 1017, 2959, 2959, 1017, 1017,  629,  629,  629,  629,
2473      2959,  629, 2959,  629, 1048, 1048, 1048, 1048, 2959, 2959,
2474      1048, 1048,  633,  633,  633,  633, 2959,  633, 2959,  633,
2475      1058, 1058, 1058, 1058, 2959, 2959, 1058, 1058,  641,  641,
2476       641, 2959, 2959, 2959,  641, 1074, 1074, 1074, 1074, 2959,
2477      2959, 1074, 1074,  653,  653,  653, 2959, 2959, 2959,  653,
2478      1082, 1082, 1082, 1082, 2959, 2959, 1082, 1082,  659,  659,
2479       659, 2959, 2959, 2959,  659, 1090, 1090, 1090, 1090, 2959,
2480      2959, 1090, 1090,  675,  675,  675, 2959, 2959, 2959,  675,
2481
2482      1110, 1110, 1110, 1110, 2959, 2959, 1110, 1110,  682,  682,
2483       682, 2959, 2959, 2959,  682, 1119, 1119, 1119, 1119, 2959,
2484      2959, 1119, 1119,  688,  688,  688,  688, 2959,  688, 2959,
2485       688, 1127, 1127, 1127, 1127, 2959, 2959, 1127, 1127,  693,
2486       693,  693,  693, 2959,  693, 2959,  693, 1133, 1133, 1133,
2487      1133, 2959, 2959, 1133, 1133,  698,  698,  698, 2959, 2959,
2488      2959,  698, 1145, 1145, 1145, 1145, 2959, 2959, 1145, 1145,
2489       707,  707,  707, 2959, 2959, 2959,  707, 1171, 1171, 1171,
2490      1171, 2959, 2959, 1171, 1171,  723,  723,  723, 2959, 2959,
2491      2959,  723, 1186, 1186, 1186, 1186, 2959, 2959, 1186, 1186,
2492
2493       733,  733,  733, 2959, 2959, 2959,  733, 1194, 1194, 1194,
2494      1194, 2959, 2959, 1194, 1194,  738,  738,  738, 2959, 2959,
2495      2959,  738, 1205, 1205, 1205, 1205, 2959, 2959, 1205, 1205,
2496       746,  746,  746, 2959, 2959, 2959,  746, 1214, 1214, 1214,
2497      1214, 2959, 2959, 1214, 1214,  753,  753,  753, 2959, 2959,
2498      2959,  753, 1226, 1226, 1226, 1226, 2959, 2959, 1226, 1226,
2499       760,  760,  760, 2959, 2959, 2959,  760, 1234, 1234, 1234,
2500      1234, 2959, 2959, 1234, 1234, 1242, 1242, 1242, 1242, 2959,
2501      2959, 1242, 1242,  770,  770,  770, 2959, 2959, 2959,  770,
2502      1252, 1252, 1252, 1252, 2959, 2959, 1252, 1252,  776,  776,
2503
2504       776, 2959, 2959, 2959,  776, 1261, 1261, 1261, 1261, 2959,
2505      2959, 1261, 1261,  785,  785,  785, 2959, 2959, 2959,  785,
2506      1267, 1267, 1267, 1267, 2959, 2959, 1267, 1267, 1274, 1274,
2507      1274, 1274, 2959, 2959, 1274, 1274,  793,  793,  793, 2959,
2508      2959, 2959,  793, 1282, 1282, 1282, 1282, 2959, 2959, 1282,
2509      1282, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002,
2510      1469, 1469, 1469, 1469, 1469, 1469, 1469, 1469, 1469,  603,
2511       603,  603, 2959, 2959, 2959,  603, 1017, 1017, 1017, 1017,
2512      2959, 2959, 1017, 1017, 1048, 1048, 1048, 1048, 2959, 2959,
2513      1048, 1048,  633,  633,  633, 2959, 2959, 2959,  633, 1058,
2514
2515      1058, 1058, 1058, 2959, 2959, 1058, 1058,  641,  641,  641,
2516      2959, 2959, 2959,  641, 1074, 1074, 1074, 1074, 2959, 2959,
2517      1074, 1074,  653,  653,  653, 2959, 2959, 2959,  653, 1082,
2518      1082, 1082, 1082, 2959, 2959, 1082, 1082,  659,  659,  659,
2519      2959, 2959, 2959,  659,  675,  675,  675, 2959, 2959, 2959,
2520       675, 1110, 1110, 1110, 1110, 2959, 2959, 1110, 1110,  682,
2521       682,  682, 2959, 2959, 2959,  682, 1119, 1119, 1119, 1119,
2522      2959, 2959, 1119, 1119, 1127, 1127, 1127, 1127, 2959, 2959,
2523      1127, 1127,  693,  693,  693, 2959, 2959, 2959,  693, 1133,
2524      1133, 1133, 1133, 2959, 2959, 1133, 1133,  698,  698,  698,
2525
2526      2959, 2959, 2959,  698, 1145, 1145, 1145, 1145, 2959, 2959,
2527      1145, 1145,  707,  707,  707, 2959, 2959, 2959,  707, 1171,
2528      1171, 1171, 1171, 2959, 2959, 1171, 1171,  723,  723,  723,
2529      2959, 2959, 2959,  723, 1186, 1186, 1186, 1186, 2959, 2959,
2530      1186, 1186,  733,  733,  733, 2959, 2959, 2959,  733, 1194,
2531      1194, 1194, 1194, 2959, 2959, 1194, 1194,  738,  738,  738,
2532      2959, 2959, 2959,  738, 1205, 1205, 1205, 1205, 2959, 2959,
2533      1205, 1205,  746,  746,  746, 2959, 2959, 2959,  746, 1214,
2534      1214, 1214, 1214, 2959, 2959, 1214, 1214,  753,  753,  753,
2535      2959, 2959, 2959,  753, 1226, 1226, 1226, 1226, 2959, 2959,
2536
2537      1226, 1226,  760,  760,  760, 2959, 2959, 2959,  760, 1234,
2538      1234, 1234, 1234, 2959, 2959, 1234, 1234, 1242, 1242, 1242,
2539      1242, 2959, 2959, 1242, 1242,  770,  770,  770, 2959, 2959,
2540      2959,  770, 1252, 1252, 1252, 1252, 2959, 2959, 1252, 1252,
2541       776,  776,  776, 2959, 2959, 2959,  776, 1261, 1261, 1261,
2542      1261, 2959, 2959, 1261, 1261,  785,  785,  785,  785, 2959,
2543       785, 2959,  785, 1267, 1267, 1267, 1267, 2959, 2959, 1267,
2544      1267, 1274, 1274, 1274, 1274, 2959, 2959, 1274, 1274,  793,
2545       793,  793,  793, 2959,  793, 2959,  793, 1282, 1282, 1282,
2546      1282, 2959, 2959, 1282, 1282, 1002, 1002, 1002, 1002, 1002,
2547
2548      1002, 1002, 1002, 1002, 1469, 1469, 1469, 1469, 1469, 1469,
2549      1469, 1469, 1469,  603,  603,  603, 2959, 2959, 2959,  603,
2550      1017, 1017, 1017, 1017, 2959, 2959, 1017, 1017, 1048, 1048,
2551      1048, 1048, 2959, 2959, 1048, 1048,  633,  633,  633, 2959,
2552      2959, 2959,  633, 1058, 1058, 1058, 1058, 2959, 2959, 1058,
2553      1058,  641,  641,  641, 2959, 2959, 2959,  641, 1074, 1074,
2554      1074, 1074, 2959, 2959, 1074, 1074,  653,  653,  653, 2959,
2555      2959, 2959,  653, 1082, 1082, 1082, 1082, 2959, 2959, 1082,
2556      1082,  659,  659,  659, 2959, 2959, 2959,  659,  675,  675,
2557       675, 2959, 2959, 2959,  675, 1110, 1110, 1110, 1110, 2959,
2558
2559      2959, 1110, 1110,  682,  682,  682, 2959, 2959, 2959,  682,
2560      1119, 1119, 1119, 1119, 2959, 2959, 1119, 1119, 1127, 1127,
2561      1127, 1127, 2959, 2959, 1127, 1127,  693,  693,  693,  693,
2562      2959,  693, 2959,  693, 1133, 1133, 1133, 1133, 2959, 2959,
2563      1133, 1133,  698,  698,  698, 2959, 2959, 2959,  698, 1145,
2564      1145, 1145, 1145, 2959, 2959, 1145, 1145,  707,  707,  707,
2565      2959, 2959, 2959,  707, 1171, 1171, 1171, 1171, 2959, 2959,
2566      1171, 1171,  723,  723,  723, 2959, 2959, 2959,  723, 1186,
2567      1186, 1186, 1186, 2959, 2959, 1186, 1186,  733,  733,  733,
2568      2959, 2959, 2959,  733, 1194, 1194, 1194, 1194, 2959, 2959,
2569
2570      1194, 1194,  738,  738,  738, 2959, 2959, 2959,  738, 1205,
2571      1205, 1205, 1205, 2959, 2959, 1205, 1205,  746,  746,  746,
2572      2959, 2959, 2959,  746, 1214, 1214, 1214, 1214, 2959, 2959,
2573      1214, 1214,  753,  753,  753,  753, 2959,  753, 2959,  753,
2574      1226, 1226, 1226, 1226, 2959, 2959, 1226, 1226,  760,  760,
2575       760, 2959, 2959, 2959,  760, 1234, 1234, 1234, 1234, 2959,
2576      2959, 1234, 1234, 1242, 1242, 1242, 1242, 2959, 2959, 1242,
2577      1242,  770,  770,  770,  770, 2959,  770, 2959,  770, 1252,
2578      1252, 1252, 1252, 2959, 2959, 1252, 1252,  776,  776,  776,
2579      2959, 2959, 2959,  776, 1261, 1261, 1261, 1261, 2959, 2959,
2580
2581      1261, 1261, 1267, 1267, 1267, 1267, 2959, 2959, 1267, 1267,
2582      1274, 1274, 1274, 1274, 2959, 2959, 1274, 1274, 1282, 1282,
2583      1282, 1282, 2959, 2959, 1282, 1282, 1002, 1002, 1002, 1002,
2584      1002, 1002, 1002, 1002, 1002, 1469, 1469, 1469, 1469, 1469,
2585      1469, 1469, 1469, 1469,  603,  603,  603,  603, 2959,  603,
2586      2959,  603, 1017, 1017, 1017, 1017, 2959, 2959, 1017, 1017,
2587      1048, 1048, 1048, 1048, 2959, 2959, 1048, 1048,  633,  633,
2588       633, 2959, 2959, 2959,  633, 1058, 1058, 1058, 1058, 2959,
2589      2959, 1058, 1058,  641,  641,  641, 2959, 2959, 2959,  641,
2590      1074, 1074, 1074, 1074, 2959, 2959, 1074, 1074,  653,  653,
2591
2592       653,  653, 2959,  653, 2959,  653, 1082, 1082, 1082, 1082,
2593      2959, 2959, 1082, 1082,  659,  659,  659,  659, 2959,  659,
2594      2959,  659,  675,  675,  675,  675, 2959,  675, 2959,  675,
2595      1110, 1110, 1110, 1110, 2959, 2959, 1110, 1110,  682,  682,
2596       682,  682, 2959,  682, 2959,  682, 1119, 1119, 1119, 1119,
2597      2959, 2959, 1119, 1119, 1127, 1127, 1127, 1127, 2959, 2959,
2598      1127, 1127, 1133, 1133, 1133, 1133, 2959, 2959, 1133, 1133,
2599       698,  698,  698, 2959, 2959, 2959,  698,  707,  707,  707,
2600      2959, 2959, 2959,  707, 1171, 1171, 1171, 1171, 2959, 2959,
2601      1171, 1171,  723,  723,  723, 2959, 2959, 2959,  723,  733,
2602
2603       733,  733, 2959, 2959, 2959,  733, 1194, 1194, 1194, 1194,
2604      2959, 2959, 1194, 1194,  738,  738,  738, 2959, 2959, 2959,
2605       738,  746,  746,  746, 2959, 2959, 2959,  746, 1214, 1214,
2606      1214, 1214, 2959, 2959, 1214, 1214,  753,  753,  753, 2959,
2607      2959, 2959,  753, 1226, 1226, 1226, 1226, 2959, 2959, 1226,
2608      1226,  760,  760,  760, 2959, 2959, 2959,  760, 1234, 1234,
2609      1234, 1234, 2959, 2959, 1234, 1234, 1242, 1242, 1242, 1242,
2610      2959, 2959, 1242, 1242, 1252, 1252, 1252, 1252, 2959, 2959,
2611      1252, 1252,  776,  776,  776, 2959, 2959, 2959,  776, 1261,
2612      1261, 1261, 1261, 2959, 2959, 1261, 1261, 1267, 1267, 1267,
2613
2614      1267, 2959, 2959, 1267, 1267, 1274, 1274, 1274, 1274, 2959,
2615      2959, 1274, 1274, 1002, 1002, 1002, 1002, 1002, 1002, 1002,
2616      1002, 1002, 1469, 1469, 1469, 1469, 1469, 1469, 1469, 1469,
2617      1469, 1017, 1017, 1017, 1017, 2959, 2959, 1017, 1017, 1048,
2618      1048, 1048, 1048, 2959, 2959, 1048, 1048,  633,  633,  633,
2619      2959, 2959, 2959,  633,  641,  641,  641, 2959, 2959, 2959,
2620       641, 1074, 1074, 1074, 1074, 2959, 2959, 1074, 1074, 1082,
2621      1082, 1082, 1082, 2959, 2959, 1082, 1082, 1110, 1110, 1110,
2622      1110, 2959, 2959, 1110, 1110, 1119, 1119, 1119, 1119, 2959,
2623      2959, 1119, 1119, 1133, 1133, 1133, 1133, 2959, 2959, 1133,
2624
2625      1133,  698,  698,  698, 2959, 2959, 2959,  698,  707,  707,
2626       707, 2959, 2959, 2959,  707, 1171, 1171, 1171, 1171, 2959,
2627      2959, 1171, 1171,  723,  723,  723, 2959, 2959, 2959,  723,
2628       733,  733,  733, 2959, 2959, 2959,  733, 1194, 1194, 1194,
2629      1194, 2959, 2959, 1194, 1194,  738,  738,  738, 2959, 2959,
2630      2959,  738,  746,  746,  746, 2959, 2959, 2959,  746,  753,
2631       753,  753, 2959, 2959, 2959,  753, 1226, 1226, 1226, 1226,
2632      2959, 2959, 1226, 1226,  760,  760,  760, 2959, 2959, 2959,
2633       760, 1234, 1234, 1234, 1234, 2959, 2959, 1234, 1234, 1242,
2634      1242, 1242, 1242, 2959, 2959, 1242, 1242, 1252, 1252, 1252,
2635
2636      1252, 2959, 2959, 1252, 1252,  776,  776,  776,  776, 2959,
2637       776, 2959,  776, 1261, 1261, 1261, 1261, 2959, 2959, 1261,
2638      1261, 1267, 1267, 1267, 1267, 2959, 2959, 1267, 1267, 1274,
2639      1274, 1274, 1274, 2959, 2959, 1274, 1274, 1002, 1002, 1002,
2640      1002, 1002, 1002, 1002, 1002, 1002, 1469, 1469, 1469, 1469,
2641      1469, 1469, 1469, 1469, 1469, 1017, 1017, 1017, 1017, 2959,
2642      2959, 1017, 1017, 1048, 1048, 1048, 1048, 2959, 2959, 1048,
2643      1048,  633,  633,  633, 2959, 2959, 2959,  633,  641,  641,
2644       641,  641, 2959,  641, 2959,  641, 1082, 1082, 1082, 1082,
2645      2959, 2959, 1082, 1082, 1110, 1110, 1110, 1110, 2959, 2959,
2646
2647      1110, 1110, 1119, 1119, 1119, 1119, 2959, 2959, 1119, 1119,
2648      1133, 1133, 1133, 1133, 2959, 2959, 1133, 1133,  698,  698,
2649       698, 2959, 2959, 2959,  698,  707,  707,  707, 2959, 2959,
2650      2959,  707, 1171, 1171, 1171, 1171, 2959, 2959, 1171, 1171,
2651       723,  723,  723, 2959, 2959, 2959,  723,  733,  733,  733,
2652      2959, 2959, 2959,  733, 2579, 2579, 2579, 2579, 2579, 2579,
2653      2579, 2579, 2579, 2580, 2580, 2580, 2580, 2580, 2580, 2580,
2654      2580, 2580, 2637, 2637, 2637, 2637, 2637, 2637, 2637, 2637,
2655      2637, 2640, 2640, 2640, 2640, 2640, 2640, 2640, 2640, 2640,
2656      2678, 2678, 2678, 2678, 2678, 2678, 2678, 2678, 2678, 2680,
2657
2658      2680, 2680, 2680, 2680, 2680, 2680, 2680, 2680,  237, 2959,
2659      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
2660      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
2661      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
2662      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
2663      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
2664      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
2665      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
2666      2959, 2959, 2959
2667     } ;
2668
2669 static yyconst flex_int16_t yy_chk[10284] =
2670     {   0,
2671         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
2672         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
2673         4,   10,    0,    5,    0,    9,    6,    0,   10,    7,
2674         8,    8,    8,  242,   11,   13,   13,   12,   14,   14,
2675        13,   13,  291,   14,   14,  243,    8,   17,   17,  242,
2676        13,   15,   15,   14,   15,  246,   15,   16,   16,  345,
2677        16,  243,   16,   18,   18, 1462,   15,   19,   19,   19,
2678       471,  246,   16,   20,   20,   20,   23,   23,   23,   24,
2679        24,   24,  471,   19,   25,   25,   25,  345, 1469,   20,
2680       352,   17,   23,  934,  291,   24,  240,  240,  240,  934,
2681
2682        25,  241,  241,  241,  245,  245,  245,   18,   21,   21,
2683        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
2684        21,   21,   21,  275,   21,   21,   21,   21,   21,   26,
2685        26,   26,   27,   27,   27,   28,   28,   28,  275,   29,
2686        29,   29,   30,   30,   30,   26,  352,  417,   27,  269,
2687       417,   28, 1472,   21,   21,   29,  285,  264,   30,   31,
2688        31,   31,  266,  266,  266,  269,  273,  273,  273,  282,
2689       282,  282,  285,  264,  316,   31, 1475,   21,   22,   22,
2690        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
2691        22,   22,   22, 1476,   22,   22,   22,   22,   22,   32,
2692
2693        32,   32,   33,   33,   33,   34,   34,   34,  256,   35,
2694        35,   35,   36,   36,   36,   32,  264, 1478,   33,  429,
2695       343,   34,  429,   22,   22,   35,  316,  343,   36,   37,
2696        37,   37,   38,   38,   38,   39,   39,   39,   40,   40,
2697        40,   41,   41,   41, 1479,   37,  483,   22,   38,  296,
2698       256,   39,  425,  483,   40, 1480,  256,   41,   42,   42,
2699        42,  256,  289,  289,  289,  296,  256,  293,  293,  293,
2700       304,  304,  304,  425,   42,   43,   43,   43,   43,   43,
2701        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
2702       313,   43,   43,   43,   43,   43,   45,   45,   45,   46,
2703
2704        46,   46,   47,   47,   47,  313,   48,   48,   48,   49,
2705        49,   49,   45,  501,  596,   46, 1481,  596,   47,  311,
2706        43,   43,   48,  311,  317,   49,  277,  311,   43,   44,
2707        44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
2708        44,   44,   44,   44,  307,   44,   44,   44,   44,   44,
2709        50,   50,   50,   51,   51,   51,   52,   52,   52,  430,
2710       307,  501,   55,   55,  497,  277,   50,   55,  278,   51,
2711      1482,  497,   52,  430,   44,   44,  317,   55,  277,  318,
2712       277,  637,   44,   53,   53,   53,   53,   53,   53,   53,
2713        53,   53,   53,   53,   53,   53,   53,   53,  573,   53,
2714
2715        53,   53,   53,   53, 1484,  323,   55,  278,   59,   59,
2716        59,   60,   60,   60,   61,   61,   61,  637,   56,   56,
2717       278,  323,  278,   56,   59,  301,  615,   60,   53,   53,
2718        61,  318,  301,   56,  613,  573,   53,  365,  613,   53,
2719       615,  301,  315,  315,  315, 1486,   53,   54,   54,   54,
2720        54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
2721        54,   54,   56,   54,   54,   54,   54,   54,   62,   62,
2722        62,   63,   63,   63,   64,   64,   64,  619,   65,   65,
2723        65,   66,   66,   66,   62,  335,  357,   63,  347,  365,
2724        64,  619,   54,   54,   65, 1488,  609,   66,  347,  609,
2725
2726        54,  335,  357,   54,  320,  320,  320,  329,  329,  329,
2727        54,   57,   57,   57,   57,   57,   57,   57,   57,   57,
2728        57,   57,   57,   57,   57,   57,  347,   57,   57,   57,
2729        57,   57,   69,   69,   69,   70,   70,   70,   73,   73,
2730        73,  366,   74,   74,   74,   75,   75,   75,   69, 1490,
2731       371,   70,  330,  384,   73, 1491,   57,   57,   74,  330,
2732      1493,   75,  332,  332,  332,   57,  371,   57,  330,  384,
2733       378,   57,  340,  340,  340,  379,   57,   57,   58,   58,
2734        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
2735        58,   58,   58,  366,   58,   58,   58,   58,   58,   76,
2736
2737        76,   76,   77,   77,   77,   78,   78,   78,  475,   79,
2738        79,   79,   80,   80,   80,   76,  553, 1285,   77,  395,
2739       344,   78,  378,   58,   58,   79,  344,  379,   80,  349,
2740       349,  553,   58,  349,   58,  395,  344, 1285,   58,  349,
2741       349,  524, 1495,   58,   58,   67,   67,   67,   67,   67,
2742        67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
2743       475,   67,   67,   67,   67,   67,   81,   81,   81,   82,
2744        82,   82,   83,   83,   83, 1497,   84,   84,   84,   85,
2745        85,   85,   81, 1498,  618,   82,  390,  618,   83,  524,
2746        67,   67,   84,  390,  401,   85,  587,   67,  354,  354,
2747
2748       354,  401,  390,   67,  364,  364,  364,  368,  368,  368,
2749       401,  587,   67,   68,   68,   68,   68,   68,   68,   68,
2750        68,   68,   68,   68,   68,   68,   68,   68, 1499,   68,
2751        68,   68,   68,   68,   86,   86,   86,   87,   87,   87,
2752        88,   88,   88,  667,   89,   89,   89,   90,   90,   90,
2753        86, 1500,  621,   87,  406,  621,   88,  667,   68,   68,
2754        89,  625,  422,   90,  625,   68,  377,  377,  377, 1502,
2755       406,   68,  381,  381,  381,  389,  389,  389,  422, 1511,
2756        68,   71,   71,   71,   71,   71,   71,   71,   71,   71,
2757        71,   71,   71,   71,   71,   71,  537,   71,   71,   71,
2758
2759        71,   71,   91,   91,   91,   92,   92,   92,   93,   93,
2760        93, 1512,   94,   94,   94,   95,   95,   95,   91,  439,
2761       700,   92, 1514,  700,   93,  551,   71,   71,   94,  455,
2762      1518,   95,  392,  392,  392,  439,  415,   71,  400,  400,
2763       400,  403,  403,  403,  537,  455,   71,   72,   72,   72,
2764        72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
2765        72,   72,  551,   72,   72,   72,   72,   72,   96,   96,
2766        96,   97,   97,   97,   98,   98,   98,  551,   99,   99,
2767        99,  100,  100,  100,   96,  415, 1522,   97,  415,  431,
2768        98, 1525,   72,   72,   99,  466, 1532,  100,  101,  101,
2769
2770       101,  431,  431,   72,  102,  102,  102,  414,  414,  414,
2771       474,  466,   72,  574,  101,  419,  419,  419,  350, 1533,
2772       102,  103,  103,  103,  103,  103,  103,  103,  103,  103,
2773       103,  103,  103,  103,  103,  103, 1534,  103,  103,  103,
2774       103,  103,  105,  105,  105,  106,  106,  106,  107,  107,
2775       107,  705,  108,  108,  108,  705,  350, 1538,  105,  474,
2776       480,  106,  434,  450,  107,  574,  103,  103,  108,  434,
2777       450,  103,  350,  433,  433,  433,  480,  103,  434,  450,
2778      1539,  103,  436,  436,  436, 1540, 1543,  103,  104,  104,
2779       104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
2780
2781       104,  104,  104, 1550,  104,  104,  104,  104,  104,  109,
2782       109,  109,  110,  110,  110,  111,  111,  111,  672,  112,
2783       112,  112,  449,  449,  449,  109,  493, 1562,  110, 1563,
2784      1571,  111,  672,  104,  104,  112,  461,  506,  104,  452,
2785       452,  452,  493,  461,  104,  460,  460,  460,  104,  463,
2786       463,  463,  461,  506,  104,  113,  113,  113,  113,  113,
2787       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
2788      1574,  113,  113,  113,  113,  113,  115,  115,  115,  116,
2789       116,  116,  117,  117,  117,  673,  118,  118,  118,  473,
2790       473,  473,  115, 1005,  517,  116, 1468, 1005,  117,  673,
2791
2792       113,  113,  118, 1575, 1579,  113,  477,  477,  477,  486,
2793       517,  113,  485,  485,  485,  490,  490,  490,  499,  499,
2794       499, 1468,  113,  114,  114,  114,  114,  114,  114,  114,
2795       114,  114,  114,  114,  114,  114,  114,  114, 1586,  114,
2796       114,  114,  114,  114,  119,  119,  119,  120,  120,  120,
2797       121,  121,  121, 1587,  122,  122,  122,  486, 1588, 1589,
2798       119,  486, 1592,  120, 1033, 1596,  121, 1599,  114,  114,
2799       122,  512,  529,  114,  503,  503,  503, 1033,  512,  114,
2800       511,  511,  511,  514,  514,  514, 1601,  512,  529, 1603,
2801       114,  123,  123,  123,  123,  123,  123,  123,  123,  123,
2802
2803       123,  123,  123,  123,  123,  123, 1604,  123,  123,  123,
2804       123,  123,  125,  125,  125,  126,  126,  126,  129,  129,
2805       129, 1605,  130,  130,  130,  133,  133,  133,  125,  542,
2806       558,  126, 1608, 1610,  129,  568,  123,  123,  130, 1612,
2807      1617,  133,  522,  522,  522,  542,  558,  123,  526,  526,
2808       526,  568,  123,  124,  124,  124,  124,  124,  124,  124,
2809       124,  124,  124,  124,  124,  124,  124,  124, 1623,  124,
2810       124,  124,  124,  124,  134,  134,  134,  135,  135,  135,
2811       136,  136,  136, 1627,  137,  137,  137,  138,  138,  138,
2812       134,  579, 1628,  135, 1629,  614,  136,  799,  124,  124,
2813
2814       137, 1631,  614,  138,  535,  535,  535,  579,  614,  124,
2815       539,  539,  539,  799,  124,  127,  127,  127,  127,  127,
2816       127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
2817      1643,  127,  127,  127,  127,  127,  139,  139,  139,  140,
2818       140,  140,  143,  143,  143, 1646,  144,  144,  144,  147,
2819       147,  147,  139, 1647, 1649,  140, 1640, 1651,  143, 1648,
2820       127,  127,  144, 1639, 1652,  147,  550,  550,  550,  555,
2821       555,  555,  562,  562,  562, 1648,  127,  565,  565,  565,
2822      1639, 1654,  127,  128,  128,  128,  128,  128,  128,  128,
2823       128,  128,  128,  128,  128,  128,  128,  128, 1640,  128,
2824
2825       128,  128,  128,  128,  148,  148,  148,  151,  151,  151,
2826       152,  152,  152, 1655,  155,  155,  155,  156,  156,  156,
2827       148, 1656, 1660,  151,  563, 1662,  152, 1665,  128,  128,
2828       155,  563, 1666,  156,  572,  572,  572,  576,  576,  576,
2829       563,  584,  584,  584,  128,  586,  586,  586, 1641, 1667,
2830       128,  131,  131,  131,  131,  131,  131,  131,  131,  131,
2831       131,  131,  131,  131,  131,  131, 1669,  131,  131,  131,
2832       131,  131,  157,  157,  157,  158,  158,  158,  159,  159,
2833       159, 1641,  160,  160,  160, 1671,  585, 1044,  157, 1672,
2834      1674,  158, 1676,  585,  159, 1679,  131,  131,  160,  131,
2835
2836      1044,  131,  585,  595,  595,  595, 1680,  131,  802,  802,
2837       802, 1682,  802, 1683,  131, 1684, 1686,  131,  132,  132,
2838       132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
2839       132,  132,  132, 1692,  132,  132,  132,  132,  132,  161,
2840       161,  161,  162,  162,  162,  165,  165,  165, 1696,  166,
2841       166,  166,  844,  844,  844,  161,  844, 1712,  162,  844,
2842       623,  165,  595,  132,  132,  166,  132,  623,  132,  626,
2843       627, 1713, 1718,  623,  132, 1719,  626,  627, 1020, 1020,
2844      1020,  132,  626,  627,  132,  141,  141,  141,  141,  141,
2845       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2846
2847       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2848       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2849       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2850       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2851       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2852       141,  141,  141,  141,  141,  141,  141,  141,  141,  145,
2853       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
2854       145,  145,  145,  145, 1720,  145,  145,  145,  145,  145,
2855       167,  167,  167,  168,  168,  168,  169,  169,  169, 1681,
2856       170,  170,  170,  635,  635,  635,  167, 1681, 1724,  168,
2857
2858      1725, 1077,  169, 1731,  145,  145,  170,  145,  145,  145,
2859       635, 1040, 1040, 1040, 1077,  145, 1685, 1738,  145,  814,
2860       814,  814,  145, 1739, 1685,  145,  146,  146,  146,  146,
2861       146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
2862       146, 1740,  146,  146,  146,  146,  146,  171,  171,  171,
2863       172,  172,  172,  175,  175,  175, 1744,  176,  176,  176,
2864       643,  643,  643,  171, 1750, 1693,  172, 1754, 1697,  175,
2865      1757,  146,  146,  176,  146,  146,  146,  643,  833,  833,
2866       833, 1693,  146,  814, 1697,  146, 1299, 1299, 1299,  146,
2867      1759, 1761,  146,  149,  149,  149,  149,  149,  149,  149,
2868
2869       149,  149,  149,  149,  149,  149,  149,  149, 1763,  149,
2870       149,  149,  149,  149,  177,  177,  177,  178,  178,  178,
2871       179,  179,  179, 1764,  180,  180,  180,  917,  651, 1765,
2872       177, 1768, 1698,  178, 1770,  651,  179,  917,  149,  149,
2873       180,  651,  833,  149,  917, 1301, 1301, 1301, 1698,  149,
2874       150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
2875       150,  150,  150,  150,  150, 1775,  150,  150,  150,  150,
2876       150,  181,  181,  181,  182,  182,  182,  185,  185,  185,
2877      1777,  186,  186,  186,  660,  660,  660,  181, 1527, 1785,
2878       182, 1301, 1786,  185, 1527,  150,  150,  186, 1527, 1787,
2879
2880       150,  660, 1527,  872,  872,  872,  150,  153,  153,  153,
2881       153,  153,  153,  153,  153,  153,  153,  153,  153,  153,
2882       153,  153, 1788,  153,  153,  153,  153,  153,  189,  189,
2883       189,  190,  190,  190,  191,  191,  191, 1790,  192,  192,
2884       192,  193,  193,  193,  189, 1801, 1804,  190, 1809, 1810,
2885       191, 1801,  153,  153,  192, 1811,  153,  193,  852,  852,
2886       852, 1815,  852,  153, 1816,  852,  153,  872, 1817, 1803,
2887       878,  878,  878,  153,  154,  154,  154,  154,  154,  154,
2888       154,  154,  154,  154,  154,  154,  154,  154,  154, 1822,
2889       154,  154,  154,  154,  154,  194,  194,  194,  195,  195,
2890
2891       195,  196,  196,  196, 1828,  199,  199,  199,  200,  200,
2892       200,  194, 1830, 1831,  195, 1803, 1834,  196, 1837,  154,
2893       154,  199, 1841,  154,  200,  868,  868,  868, 1842,  868,
2894       154, 1843,  868,  154,  878, 1304, 1304, 1304, 1844, 1845,
2895       154,  163,  163,  163,  163,  163,  163,  163,  163,  163,
2896       163,  163,  163,  163,  163,  163, 1846,  163,  163,  163,
2897       163,  163,  201,  201,  201,  202,  202,  202,  203,  203,
2898       203, 1847,  204,  204,  204,  205,  205,  205,  201, 1848,
2899      1849,  202, 1850, 1855,  203, 1856,  163,  163,  204, 1874,
2900      1875,  205,  163,  885,  885,  885, 1878,  885, 1879, 1880,
2901
2902       885, 1307, 1307, 1307, 1316, 1316, 1316,  163,  164,  164,
2903       164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
2904       164,  164,  164, 1884,  164,  164,  164,  164,  164,  206,
2905       206,  206,  209,  209,  209,  210,  210,  210, 1876,  211,
2906       211,  211,  212,  212,  212,  206, 1876, 1890,  209, 1877,
2907      1891,  210, 1892,  164,  164,  211, 1897, 1877,  212,  164,
2908       892,  892,  892, 1901,  892, 1902, 1903,  892, 1341, 1341,
2909      1341, 1352, 1352, 1352,  164,  173,  173,  173,  173,  173,
2910       173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
2911      1905,  173,  173,  173,  173,  173,  213,  213,  213,  214,
2912
2913       214,  214,  215,  215,  215, 1802,  216,  216,  216,  219,
2914       219,  219,  213, 1528, 1908,  214, 1909, 1912,  215, 1528,
2915       173,  173,  216, 1528, 1913,  219,  173, 1528, 1916,  173,
2916       897,  897,  897, 1923,  897, 1925, 1802,  897, 1353, 1353,
2917      1353,  173,  174,  174,  174,  174,  174,  174,  174,  174,
2918       174,  174,  174,  174,  174,  174,  174, 1940,  174,  174,
2919       174,  174,  174,  220,  220,  220,  223,  223,  223,  224,
2920       224,  224, 1910,  225,  225,  225,  226,  226,  226,  220,
2921      1910, 1944,  223, 1911, 1353,  224, 1953,  174,  174,  225,
2922      1954, 1911,  226,  174, 1962, 1963,  174,  909,  909,  909,
2923
2924      1945,  909, 1967, 1969,  909, 1426, 1426, 1426,  174,  183,
2925       183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
2926       183,  183,  183,  183, 1944,  183,  183,  183,  183,  183,
2927       227,  227,  227,  228,  228,  228,  229,  229,  229, 1981,
2928       230,  230,  230,  233,  233,  233,  227, 1945, 1982,  228,
2929      1983, 1426,  229,  276,  183,  183,  230, 1984, 1985,  233,
2930       183, 1986,  348,  276, 1987,  183,  184,  184,  184,  184,
2931       184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
2932       184, 1988,  184,  184,  184,  184,  184,  234,  234,  234,
2933       348, 1989,  276, 1990, 1996,  812,  812,  812,  276, 1997,
2934
2935       341, 1999, 2009,  234, 2010,  276,  348, 2011,  342,  276,
2936       341,  184,  184,  812, 1483, 1483, 1483,  184,  342, 1485,
2937      1485, 1485,  184,  187,  187,  187,  187,  187,  187,  187,
2938       187,  187,  187,  187,  187,  187,  187,  187,  341,  187,
2939       187,  187,  187,  187,  341, 2012,  342, 2013,  341,  677,
2940       677,  677, 2014, 2015,  341,  341,  684,  684,  684, 2017,
2941       342,  689,  689,  689,  342, 2018,  677, 2023,  187,  187,
2942       701,  701,  701,  684,  187,  919,  919,  919,  689,  919,
2943      2024, 2026,  919, 1487, 1487, 1487, 2027,  701, 2028,  187,
2944       188,  188,  188,  188,  188,  188,  188,  188,  188,  188,
2945
2946       188,  188,  188,  188,  188, 2029,  188,  188,  188,  188,
2947       188,  710,  710,  710,  712,  712,  712,  727,  727,  727,
2948       735,  735,  735,  740,  740,  740, 2036, 2037,  710, 2038,
2949      2039,  712, 2040, 2041,  727,  188,  188,  735, 2042, 2043,
2950       740,  188,  922,  922,  922, 2045,  922, 2067, 2068,  922,
2951      1489, 1489, 1489, 1492, 1492, 1492,  188,  197,  197,  197,
2952       197,  197,  197,  197,  197,  197,  197,  197,  197,  197,
2953       197,  197, 2062,  197,  197,  197,  197,  197,  762,  762,
2954       762,  790,  790,  790,  794,  794,  794,  813,  813,  813,
2955      2072,  840,  840,  840, 2073,  762, 2074, 2077,  790, 2081,
2956
2957      2082,  794,  197,  197, 2062,  813, 2083, 2084,  197,  840,
2958      2085,  197,  937,  937,  937, 2063,  937, 2086, 2087,  937,
2959      1494, 1494, 1494,  197,  198,  198,  198,  198,  198,  198,
2960       198,  198,  198,  198,  198,  198,  198,  198,  198, 2088,
2961       198,  198,  198,  198,  198,  813,  841,  841,  841,  843,
2962       843,  843, 2063,  847,  847,  847,  848,  848,  848,  851,
2963       851,  851, 2089, 2090,  841, 2092,  843, 2093, 2094,  198,
2964       198,  847, 2095, 2096,  848,  198,  851, 2094,  198,  945,
2965       945,  945, 2097,  945, 1494, 2098,  945, 1501, 1501, 1501,
2966       198,  207,  207,  207,  207,  207,  207,  207,  207,  207,
2967
2968       207,  207,  207,  207,  207,  207,  841,  207,  207,  207,
2969       207,  207,  853,  853,  853,  855,  855,  855, 2099, 2101,
2970       848,  859,  859,  859,  865,  865,  865, 1993, 1993,  853,
2971      1993, 2100,  855,  860,  860,  860,  207,  207, 1993,  859,
2972      2100, 1993,  865, 2102,  207, 1993,  207, 2103, 2104,  207,
2973      2105,  860, 2106,  207, 1524, 1524, 1524,  207,  208,  208,
2974       208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
2975       208,  208,  208, 2111,  208,  208,  208,  208,  208, 2112,
2976       860, 2113,  866,  866,  866,  867,  867,  867,  870,  870,
2977       870,  884,  884,  884,  888,  888,  888,  889,  889,  889,
2978
2979       866, 2115,  867,  208,  208, 2119,  870, 2120,  884, 2123,
2980      2127,  208,  888,  208, 2128,  889,  208, 1535, 1535, 1535,
2981       208, 1536, 1536, 1536,  208,  217,  217,  217,  217,  217,
2982       217,  217,  217,  217,  217,  217,  217,  217,  217,  217,
2983      2130,  217,  217,  217,  217,  217,  866,  871,  871,  871,
2984       891,  891,  891, 2133,  894,  894,  894,  895,  895,  895,
2985       896,  896,  896,  889, 2134,  871, 2135,  891, 2136, 2138,
2986       217,  217,  894, 2141, 2143,  895, 2167,  896,  950,  950,
2987       950, 2168,  950, 2169,  871,  950,  970,  970,  970, 2170,
2988       970, 2171, 2164,  970,  217,  218,  218,  218,  218,  218,
2989
2990       218,  218,  218,  218,  218,  218,  218,  218,  218,  218,
2991      2177,  218,  218,  218,  218,  218,  899,  899,  899,  900,
2992       900,  900, 2162,  895,  903,  903,  903,  904,  904,  904,
2993       908,  908,  908, 2174,  899, 2164, 2178,  900, 2179, 2180,
2994       218,  218,  903, 2174, 2181,  904, 2174,  908,  994,  994,
2995       994, 2182,  994, 2183, 2184,  994,  998,  998,  998, 2185,
2996       998, 2186, 2162,  998,  218,  221,  221,  221,  221,  221,
2997       221,  221,  221,  221,  221,  221,  221,  221,  221,  221,
2998       900,  221,  221,  221,  221,  221,  912,  912,  912,  913,
2999       913,  913,  904, 2188, 2189,  918,  918,  918,  921,  921,
3000
3001       921,  923,  923,  923,  912, 2190, 2175,  913, 2191, 2192,
3002       221,  221,  918, 2193, 2163,  921, 2175, 2194,  923, 2175,
3003      2195,  221,  222,  222,  222,  222,  222,  222,  222,  222,
3004       222,  222,  222,  222,  222,  222,  222, 2196,  222,  222,
3005       222,  222,  222,  931,  931,  931,  932,  932,  932, 2197,
3006       913, 2163,  936,  936,  936,  938,  938,  938,  941,  941,
3007       941,  931, 2198, 2199,  932, 2200, 2201,  222,  222,  936,
3008      2202, 2203,  938, 1573, 1573, 1573,  941, 2204,  222,  231,
3009       231,  231,  231,  231,  231,  231,  231,  231,  231,  231,
3010       231,  231,  231,  231, 2208,  231,  231,  231,  231,  231,
3011
3012       944,  944,  944, 2214,  932,  946,  946,  946, 2215,  947,
3013       947,  947, 2219,  942,  942,  942, 2222,  944, 2230,  949,
3014       949,  949, 2231,  946,  231,  231, 2232,  947,  954,  954,
3015       954,  942, 1496, 1496, 1496,  231,  949, 1052, 1052, 1052,
3016      2258, 1052, 2255, 2260, 1052, 2261,  954, 2256,  231,  232,
3017       232,  232,  232,  232,  232,  232,  232,  232,  232,  232,
3018       232,  232,  232,  232,  942,  232,  232,  232,  232,  232,
3019       947, 2255,  955,  955,  955,  956,  956,  956, 1496,  957,
3020       957,  957,  958,  958,  958,  959,  959,  959, 2240, 2256,
3021       955, 2262,  956, 2265,  232,  232,  957, 2266, 2240,  958,
3022
3023       962,  962,  962,  959, 2240,  232,  960,  960,  960, 2268,
3024      2267,  963,  963,  963,  964,  964,  964,  962,  232,  274,
3025       965,  965,  965, 2267,  960, 2269,  274,  955,  963, 2272,
3026      2257,  964,  966,  966,  966,  274,  274,  965,  969,  969,
3027       969,  958,  971,  971,  971,  973,  973,  973, 2273, 2274,
3028       966,  967,  967,  967, 2275,  969,  974,  974,  974, 2277,
3029       971,  963,  973,  274,  274,  274, 2278,  960, 2279,  967,
3030       274,  274, 2257,  974,  274,  274,  963, 2280,  274,  965,
3031       274,  274,  274,  972,  972,  972, 2283, 2284,  967,  975,
3032       975,  975,  976,  976,  976,  977,  977,  977,  979,  979,
3033
3034       979,  972,  978,  978,  978, 2285, 2286,  975, 2287, 2288,
3035       976, 2289,  977, 2290, 2291,  979,  980,  980,  980,  978,
3036      2270,  981,  981,  981,  987,  987,  987,  988,  988,  988,
3037       991,  991,  991, 2270,  980,  992,  992,  992,  972,  981,
3038      2292, 2293,  987, 2294, 2295,  988, 2296, 2297,  991,  993,
3039       993,  993,  978,  992,  995,  995,  995,  996,  996,  996,
3040       997,  997,  997,  976, 2299, 2307,  993,  978, 1000, 1000,
3041      1000, 2308,  995, 2309, 2313,  996, 2321,  997, 1001, 1001,
3042      1001, 2323, 1016, 1016, 1016, 2331, 1000, 1017, 1017, 1017,
3043      2332,  988,  981, 1019, 1019, 1019, 1001, 2333, 2334,  992,
3044
3045      1016, 2335, 1046, 1046, 1046, 1017, 1047, 1047, 1047, 2336,
3046      2340, 1019, 1048, 1048, 1048, 1050, 1050, 1050,  996, 1046,
3047      1051, 1051, 1051, 2340, 1047, 2341, 1055, 1055, 1055, 2345,
3048      1048, 2348, 2351, 1050, 1057, 1057, 1057, 1051, 2341, 2346,
3049      1019, 2352, 1001, 1055, 1058, 1058, 1058, 1060, 1060, 1060,
3050      2356, 2357, 1057, 1062, 1062, 1062, 2358, 1062, 2359, 2360,
3051      1062, 2361, 1058, 2362, 1050, 1060, 1065, 1065, 1065, 1066,
3052      1066, 1066, 2241, 1066, 2346, 2363, 1066, 2345, 1067, 1067,
3053      1067, 2365, 2241, 1065, 1068, 1068, 1068, 1055, 2241, 1069,
3054      1069, 1069, 2366, 1069, 1060, 1067, 1069, 1071, 1071, 1071,
3055
3056      2367, 1068, 1073, 1073, 1073, 1074, 1074, 1074, 1076, 1076,
3057      1076, 1079, 1079, 1079, 1071, 1081, 1081, 1081, 2368, 2369,
3058      1073, 2370, 2371, 1074, 2372, 2374, 1076, 2375, 1079, 1082,
3059      1082, 1082, 2376, 1081, 1084, 1084, 1084, 1085, 1085, 1085,
3060      2377, 1085, 2378, 2379, 1085, 2380, 2381, 1082, 1089, 1089,
3061      1089, 2382, 1084, 1090, 1090, 1090, 1092, 1092, 1092, 2383,
3062      1104, 1104, 1104, 2384, 1104, 2385, 1089, 1104, 1076, 2386,
3063      2387, 1090, 2388, 2394, 1092, 1108, 1108, 1108, 1109, 1109,
3064      1109, 1084, 1110, 1110, 1110, 1112, 1112, 1112, 1118, 1118,
3065      1118, 2398, 1108, 1119, 1119, 1119, 1109, 1114, 1114, 1114,
3066
3067      1110, 1114, 2399, 1112, 1114, 2400, 1118, 1121, 1121, 1121,
3068      2401, 1119, 1122, 1122, 1122, 2408, 1122, 2411, 2418, 1122,
3069      1125, 1125, 1125, 2419, 2420, 1121, 1126, 1126, 1126, 1127,
3070      1127, 1127, 1129, 1129, 1129, 2413, 2421, 1125, 1130, 1130,
3071      1130, 1131, 1131, 1131, 1126, 2413, 1112, 1127, 2422, 2423,
3072      1129, 2426, 1132, 1132, 1132, 1130, 2427, 2428, 1131, 1133,
3073      1133, 1133, 1135, 1135, 1135, 1138, 1138, 1138, 1121, 1131,
3074      1132, 1139, 1139, 1139, 2429, 1139, 2438, 1133, 1139, 2439,
3075      1135, 2440, 1138, 1144, 1144, 1144, 1145, 1145, 1145, 1147,
3076      1147, 1147, 2414, 1154, 1154, 1154, 2416, 1154, 2441, 1129,
3077
3078      1154, 1144, 2414, 2442, 1145, 2443, 2416, 1147, 1157, 1157,
3079      1157, 1158, 1158, 1158, 2444, 1158, 2430, 2417, 1158, 1161,
3080      1161, 1161, 1162, 1162, 1162, 1157, 1162, 2417, 1135, 1162,
3081      1170, 1170, 1170, 1171, 1171, 1171, 1161, 1173, 1173, 1173,
3082      1178, 1178, 1178, 2445, 1178, 2448, 2449, 1178, 1170, 2451,
3083      2430, 1171, 2452, 2453, 1147, 1173, 1181, 1181, 1181, 1182,
3084      1182, 1182, 2455, 1182, 2457, 2458, 1182, 1185, 1185, 1185,
3085      1186, 1186, 1186, 1181, 1188, 1188, 1188, 1190, 1190, 1190,
3086      2459, 1190, 2462, 2463, 1190, 1185, 2464, 2465, 1186, 1193,
3087      1193, 1193, 1188, 1194, 1194, 1194, 1196, 1196, 1196, 1198,
3088
3089      1198, 1198, 2466, 1198, 1173, 2469, 1198, 1193, 1204, 1204,
3090      1204, 1194, 2470, 2477, 1196, 1205, 1205, 1205, 1207, 1207,
3091      1207, 1208, 1208, 1208, 2478, 1188, 1204, 1209, 1209, 1209,
3092      2479, 1209, 2481, 1205, 1209, 2487, 1207, 2488, 1208, 1210,
3093      1210, 1210, 1211, 1211, 1211, 2489, 1211, 2490, 2491, 1211,
3094      1213, 1213, 1213, 1214, 1214, 1214, 1210, 1216, 1216, 1216,
3095      1218, 1218, 1218, 1196, 2492, 1219, 1219, 1219, 1213, 1219,
3096      2493, 1214, 1219, 2494, 2495, 1216, 2496, 1218, 1207, 1222,
3097      1222, 1222, 1223, 1223, 1223, 2498, 1223, 2499, 2504, 1223,
3098      1225, 1225, 1225, 1226, 1226, 1226, 1222, 1228, 1228, 1228,
3099
3100      1230, 1230, 1230, 2505, 1230, 2506, 2507, 1230, 1225, 2517,
3101      2518, 1226, 1233, 1233, 1233, 1228, 1234, 1234, 1234, 1236,
3102      1236, 1236, 2519, 2520, 1216, 1237, 1237, 1237, 2521, 2522,
3103      1233, 1238, 1238, 1238, 1234, 1238, 2523, 1236, 1238, 1239,
3104      1239, 1239, 1237, 1240, 1240, 1240, 2508, 1240, 2524, 2528,
3105      1240, 1241, 1241, 1241, 2529, 2530, 1239, 1242, 1242, 1242,
3106      2531, 1228, 1244, 1244, 1244, 1245, 1245, 1245, 2532, 1241,
3107      1246, 1246, 1246, 2533, 1246, 1242, 2535, 1246, 2536, 1236,
3108      1244, 2538, 1245, 1249, 1249, 1249, 1250, 1250, 1250, 2508,
3109      1250, 2539, 2540, 1250, 1251, 1251, 1251, 1252, 1252, 1252,
3110
3111      1249, 1254, 1254, 1254, 1256, 1256, 1256, 1260, 1260, 1260,
3112      2541, 2543, 1251, 2544, 2548, 1252, 1261, 1261, 1261, 1254,
3113      2549, 1256, 2550, 2553, 1244, 1260, 1263, 1263, 1263, 1266,
3114      1266, 1266, 2558, 2559, 1261, 1267, 1267, 1267, 1269, 1269,
3115      1269, 1270, 1270, 1270, 1263, 1270, 2560, 1266, 1270, 1273,
3116      1273, 1273, 2561, 1267, 2562, 2563, 1269, 1274, 1274, 1274,
3117      1276, 1276, 1276, 1254, 1277, 1277, 1277, 1273, 1277, 2564,
3118      2565, 1277, 1281, 1281, 1281, 1274, 2566, 2567, 1276, 1282,
3119      1282, 1282, 1284, 1284, 1284, 2568, 2569, 1263, 2571, 2572,
3120      1281, 1269, 1286, 1286, 1286, 2573, 2574, 1282, 2581, 2584,
3121
3122      1284, 1293, 1293, 1293, 1319, 1319, 1319, 1321, 1321, 1321,
3123      1286, 1286, 2575, 1322, 1322, 1322, 1348, 1348, 1348, 1293,
3124      1276, 1319, 1320, 1320, 1320, 1321, 1320, 2585, 2577, 1320,
3125      1322, 1323, 1323, 1323, 1348, 1323, 2578, 2588, 1323, 1326,
3126      1326, 1326, 2577, 1284, 1328, 1328, 1328, 2578, 1328, 2590,
3127      2591, 1328, 1331, 1331, 1331, 2593, 2594, 1326, 2575, 1332,
3128      1332, 1332, 2597, 1332, 2598, 1321, 1332, 1293, 2599, 1331,
3129      1333, 1333, 1333, 2600, 1333, 2601, 2602, 1333, 1337, 1337,
3130      1337, 2603, 1338, 1338, 1338, 2604, 1338, 2605, 1326, 1338,
3131      1340, 1340, 1340, 2606, 2607, 1337, 1343, 1343, 1343, 1344,
3132
3133      1344, 1344, 2611, 1344, 2619, 2621, 1344, 2623, 1340, 1345,
3134      1345, 1345, 2625, 1343, 1346, 1346, 1346, 1361, 1361, 1361,
3135      1362, 1362, 1362, 1363, 1363, 1363, 1345, 1363, 2633, 2635,
3136      1363, 2639, 1346, 2636, 1361, 2638, 2638, 1362, 2641, 2637,
3137      1340, 1364, 1364, 1364, 1367, 1367, 1367, 1368, 1368, 1368,
3138      1369, 1369, 1369, 2637, 1369, 2643, 2644, 1369, 2645, 1364,
3139      2646, 2653, 1367, 1346, 1368, 1370, 1370, 1370, 1371, 1371,
3140      1371, 1372, 1372, 1372, 2636, 1372, 2657, 2663, 1372, 1374,
3141      1374, 1374, 2609, 1370, 2652, 1371, 1377, 1377, 1377, 1378,
3142      1378, 1378, 2610, 1378, 2609, 2616, 1378, 1374, 1379, 1379,
3143
3144      1379, 2665, 2652, 1377, 2610, 1364, 2668, 2616, 1367, 1380,
3145      1380, 1380, 1381, 1381, 1381, 1379, 1385, 1385, 1385, 1388,
3146      1388, 1388, 1650, 1650, 1650, 1370, 1380, 1389, 1389, 1389,
3147      1381, 1389, 2640, 1385, 1389, 2670, 1388, 1390, 1390, 1390,
3148      1374, 1390, 2617, 2640, 1390, 1393, 1393, 1393, 1400, 1400,
3149      1400, 1402, 1402, 1402, 2617, 1380, 1405, 1405, 1405, 2675,
3150      1405, 2676, 1393, 1405, 2678, 2679, 1400, 2680, 1402, 1408,
3151      1408, 1408, 1410, 1410, 1410, 1412, 1412, 1412, 1381, 1416,
3152      1416, 1416, 1417, 1417, 1417, 2682, 1408, 1418, 1418, 1418,
3153      1410, 1418, 2662, 1412, 1418, 2664, 1416, 1421, 1421, 1421,
3154
3155      1417, 1421, 2683, 2667, 1421, 1425, 1425, 1425, 1427, 1427,
3156      1427, 2662, 1427, 1400, 2664, 1427, 2684, 1432, 1432, 1432,
3157      2685, 1432, 2667, 1425, 1432, 1416, 1436, 1436, 1436, 1438,
3158      1438, 1438, 2669, 1439, 1439, 1439, 1410, 1439, 2656, 1417,
3159      1439, 1412, 2687, 2688, 1436, 2690, 2691, 1438, 1442, 1442,
3160      1442, 2669, 1442, 2656, 2698, 1442, 1445, 1445, 1445, 1446,
3161      1446, 1446, 2699, 1446, 2700, 2701, 1446, 2702, 1451, 1451,
3162      1451, 1425, 1451, 2703, 1445, 1451, 1454, 1454, 1454, 1456,
3163      1456, 1456, 1461, 1461, 1461, 2706, 1438, 1436, 1457, 1457,
3164      1457, 2707, 1457, 2708, 1454, 1457, 1456, 1463, 1463, 1463,
3165
3166      1461, 2709, 2710, 1445, 1464, 1464, 1464, 1465, 1465, 1465,
3167      1466, 1466, 1466, 2711, 1463, 1467, 1467, 1467, 1470, 1470,
3168      1470, 2712, 1464, 1454, 2713, 1465, 2715, 1466, 1477, 1477,
3169      1477, 1461, 2717, 1467, 2719, 2720, 1470, 1503, 1503, 1503,
3170      1504, 1504, 1504, 2722, 1504, 2731, 1477, 1504, 1507, 1507,
3171      1507, 1508, 1508, 1508, 2733, 1508, 2732, 2731, 1508, 1465,
3172      1513, 1513, 1513, 1515, 1515, 1515, 1507, 1515, 2732, 1470,
3173      1515, 1464, 1519, 1519, 1519, 2734, 1519, 1467, 1513, 1519,
3174      1477, 2735, 2736, 1503, 2737, 2738, 1470, 1523, 1523, 1523,
3175      1526, 1526, 1526, 2742, 1526, 2743, 2744, 1526, 2745, 1529,
3176
3177      1529, 1529, 1530, 1530, 1530, 1523, 1530, 2746, 2747, 1530,
3178      2748, 1513, 1531, 1531, 1531, 1507, 1529, 1537, 1537, 1537,
3179      1541, 1541, 1541, 1542, 1542, 1542, 1544, 1544, 1544, 2749,
3180      1531, 1545, 1545, 1545, 2752, 1545, 2750, 2753, 1545, 2754,
3181      1546, 1546, 1546, 1544, 1546, 2755, 2756, 1546, 1523, 1549,
3182      1549, 1549, 1551, 1551, 1551, 1552, 1552, 1552, 1553, 1553,
3183      1553, 2750, 1553, 1531, 2757, 1553, 2758, 1549, 2759, 1551,
3184      1556, 1556, 1556, 1552, 2760, 1557, 1557, 1557, 2761, 1557,
3185      2762, 1537, 1557, 2763, 1541, 2764, 2765, 1542, 1556, 1560,
3186      1560, 1560, 1561, 1561, 1561, 2766, 1549, 1564, 1564, 1564,
3187
3188      2767, 1564, 1552, 2768, 1564, 2769, 1560, 1567, 1567, 1567,
3189      1561, 1568, 1568, 1568, 2770, 1568, 2771, 2777, 1568, 2778,
3190      1569, 1569, 1569, 2779, 1567, 1570, 1570, 1570, 2774, 1570,
3191      2780, 2781, 1570, 1572, 1572, 1572, 1556, 1569, 1576, 1576,
3192      1576, 1577, 1577, 1577, 2782, 1577, 2783, 2774, 1577, 2784,
3193      2785, 1572, 1578, 1578, 1578, 1576, 1561, 1580, 1580, 1580,
3194      2786, 1580, 2787, 2788, 1580, 1583, 1583, 1583, 2789, 1578,
3195      1584, 1584, 1584, 2790, 1584, 2791, 2792, 1584, 1585, 1585,
3196      1585, 2793, 1583, 1590, 1590, 1590, 1591, 1591, 1591, 1593,
3197      1593, 1593, 1594, 1594, 1594, 1585, 1594, 2794, 2796, 1594,
3198
3199      1590, 1595, 1595, 1595, 1591, 2797, 1593, 1597, 1597, 1597,
3200      1598, 1598, 1598, 2798, 1598, 2799, 2795, 1598, 1595, 1600,
3201      1600, 1600, 2800, 2801, 1597, 1602, 1602, 1602, 1606, 1606,
3202      1606, 1607, 1607, 1607, 2802, 1607, 2795, 1600, 1607, 1609,
3203      1609, 1609, 2803, 1602, 2804, 1606, 1611, 1611, 1611, 1613,
3204      1613, 1613, 1591, 1614, 1614, 1614, 2805, 1609, 1615, 1615,
3205      1615, 1616, 1616, 1616, 1611, 2806, 1613, 1618, 1618, 1618,
3206      1614, 1619, 1619, 1619, 2807, 1615, 1602, 2808, 2809, 1616,
3207      2810, 1620, 1620, 1620, 2811, 1618, 1621, 1621, 1621, 1619,
3208      1622, 1622, 1622, 1630, 1630, 1630, 2812, 1611, 1620, 2813,
3209
3210      1624, 1624, 1624, 1621, 1624, 2817, 2814, 1624, 1622, 2818,
3211      2819, 1630, 2814, 1618, 1632, 1632, 1632, 1633, 1633, 1633,
3212      2820, 1633, 1615, 2821, 1633, 1634, 1634, 1634, 1616, 2822,
3213      2824, 1632, 1635, 1635, 1635, 2825, 1619, 1636, 1636, 1636,
3214      1638, 1638, 1638, 1634, 1630, 1637, 1637, 1637, 2827, 1637,
3215      1635, 2828, 1637, 2830, 1636, 1622, 2831, 2834, 1638, 1644,
3216      1644, 1644, 1645, 1645, 1645, 1653, 1653, 1653, 1657, 1657,
3217      1657, 1658, 1658, 1658, 2835, 2836, 1644, 1659, 1659, 1659,
3218      1645, 1661, 1661, 1661, 1634, 2837, 2839, 1635, 1663, 1663,
3219      1663, 1664, 1664, 1664, 1668, 1668, 1668, 1670, 1670, 1670,
3220
3221      1673, 1673, 1673, 1675, 1675, 1675, 1677, 1677, 1677, 1678,
3222      1678, 1678, 1687, 1687, 1687, 1670, 1687, 2841, 1673, 1687,
3223      1675, 2843, 2845, 1645, 1677, 2847, 1678, 1690, 1690, 1690,
3224      2833, 1691, 1691, 1691, 1694, 1694, 1694, 1695, 1695, 1695,
3225      1699, 1699, 1699, 2848, 2833, 1690, 2849, 1670, 1691, 1700,
3226      1700, 1700, 2850, 1700, 2851, 2852, 1700, 1699, 1703, 1703,
3227      1703, 1704, 1704, 1704, 2853, 1677, 1705, 1705, 1705, 2854,
3228      1706, 1706, 1706, 1690, 1706, 2856, 1703, 1706, 1704, 1707,
3229      1707, 1707, 2858, 1705, 1708, 1708, 1708, 1709, 1709, 1709,
3230      2860, 1710, 1710, 1710, 2861, 1710, 2862, 1707, 1710, 1711,
3231
3232      1711, 1711, 1708, 2863, 1709, 1714, 1714, 1714, 2864, 1714,
3233      1460, 1703, 1714, 1459, 1717, 1717, 1717, 1711, 1717, 2865,
3234      2880, 1717, 1721, 1721, 1721, 1723, 1723, 1723, 2880, 1726,
3235      1726, 1726, 1707, 1726, 2876, 2872, 1726, 1729, 1729, 1729,
3236      1721, 1730, 1730, 1730, 2864, 1730, 1711, 2873, 1730, 1732,
3237      1732, 1732, 2890, 1732, 1729, 2865, 1732, 1735, 1735, 1735,
3238      1736, 1736, 1736, 2891, 1736, 2877, 2886, 1736, 1737, 1737,
3239      1737, 1741, 1741, 1741, 1735, 1742, 1742, 1742, 2876, 1742,
3240      2900, 1458, 1742, 2872, 2874, 1737, 2875, 2890, 1741, 1743,
3241      1743, 1743, 1745, 1745, 1745, 2873, 1745, 1455, 2891, 1745,
3242
3243      1748, 1748, 1748, 2886, 1749, 1749, 1749, 1743, 1749, 2877,
3244      2881, 1749, 1751, 1751, 1751, 2900, 1751, 1748, 2881, 1751,
3245      1755, 1755, 1755, 1758, 1758, 1758, 1760, 1760, 1760, 1762,
3246      1762, 1762, 2874, 1762, 2875, 2878, 1762, 2884, 1755, 2878,
3247      1743, 1758, 2887, 1760, 1766, 1766, 1766, 1769, 1769, 1769,
3248      1771, 1771, 1771, 1772, 1772, 1772, 2882, 1772, 2883, 2879,
3249      1772, 2885, 1766, 2879, 2882, 1769, 2883, 1771, 1773, 1773,
3250      1773, 1450, 1760, 1774, 1774, 1774, 1449, 1774, 2896, 2887,
3251      1774, 1776, 1776, 1776, 2884, 1773, 2902, 1758, 1778, 1778,
3252      1778, 1779, 1779, 1779, 1780, 1780, 1780, 2892, 2888, 1776,
3253
3254      1781, 1781, 1781, 2894, 1781, 2889, 1778, 1781, 2885, 1779,
3255      2896, 1780, 1782, 1782, 1782, 1783, 1783, 1783, 2895, 1783,
3256      2902, 2893, 1783, 1784, 1784, 1784, 1789, 1789, 1789, 1782,
3257      2897, 1791, 1791, 1791, 1437, 1791, 2898, 1778, 1791, 2888,
3258      2894, 1784, 2916, 2892, 1789, 2898, 2889, 1776, 1794, 1794,
3259      1794, 1795, 1795, 1795, 2899, 2895, 1779, 1796, 1796, 1796,
3260      1435, 1796, 2897, 2899, 1796, 2912, 1794, 2893, 2901, 1795,
3261      1431, 1799, 1799, 1799, 2912, 1805, 1805, 1805, 1806, 1806,
3262      1806, 2913, 1806, 1430, 2916, 1806, 1424, 1415, 1784, 1799,
3263      2913, 1789, 1805, 1807, 1807, 1807, 1808, 1808, 1808, 1794,
3264
3265      1812, 1812, 1812, 2901, 1795, 1813, 1813, 1813, 1814, 1814,
3266      1814, 1807, 1818, 1818, 1818, 1819, 1819, 1819, 1820, 1820,
3267      1820, 1821, 1821, 1821, 1823, 1823, 1823, 1824, 1824, 1824,
3268      1825, 1825, 1825, 1826, 1826, 1826, 1827, 1827, 1827, 2908,
3269      1829, 1829, 1829, 1832, 1832, 1832, 1835, 1835, 1835, 1836,
3270      1836, 1836, 2904, 1836, 2930, 2903, 1836, 1807, 1829, 1414,
3271      1413, 1832, 2930, 1835, 1838, 1838, 1838, 1821, 1839, 1839,
3272      1839, 1840, 1840, 1840, 2908, 1840, 2905, 1411, 1840, 1851,
3273      1851, 1851, 1838, 2910, 1409, 1839, 1852, 1852, 1852, 2903,
3274      1404, 1829, 1853, 1853, 1853, 2904, 1853, 1851, 2914, 1853,
3275
3276      1854, 1854, 1854, 1852, 1857, 1857, 1857, 1858, 1858, 1858,
3277      1859, 1859, 1859, 1860, 1860, 1860, 2910, 1860, 2906, 2905,
3278      1860, 1861, 1861, 1861, 1862, 1862, 1862, 1859, 1851, 1863,
3279      1863, 1863, 2909, 1863, 2907, 2914, 1863, 2917, 2924, 1861,
3280      2915, 1862, 1864, 1864, 1864, 2925, 1864, 2924, 2920, 1864,
3281      1867, 1867, 1867, 1858, 2925, 1868, 1868, 1868, 1870, 1870,
3282      1870, 2921, 1870, 2911, 2906, 1870, 1403, 2909, 1867, 1873,
3283      1873, 1873, 1861, 1868, 1881, 1881, 1881, 2915, 1881, 2917,
3284      2907, 1881, 1885, 1885, 1885, 2920, 1885, 1873, 2932, 1885,
3285      1888, 1888, 1888, 1889, 1889, 1889, 2911, 1889, 2921, 2918,
3286
3287      1889, 1867, 1893, 1893, 1893, 2955, 1893, 1888, 2922, 1893,
3288      1896, 1896, 1896, 1898, 1898, 1898, 2955, 1898, 2926, 2927,
3289      1898, 2923, 1873, 1904, 1904, 1904, 2919, 2928, 1896, 1906,
3290      1906, 1906, 1907, 1907, 1907, 2932, 1907, 2922, 2933, 1907,
3291      2929, 1904, 1914, 1914, 1914, 2918, 1906, 1917, 1917, 1917,
3292      2923, 1917, 2926, 2927, 1917, 1920, 1920, 1920, 2940, 1920,
3293      1914, 2938, 1920, 1924, 1924, 1924, 1926, 1926, 1926, 1927,
3294      1927, 1927, 2919, 2928, 1896, 1928, 1928, 1928, 2939, 1928,
3295      1401, 1924, 1928, 2931, 1926, 2933, 2929, 1927, 1931, 1931,
3296      1931, 2931, 1931, 2934, 2935, 1931, 2938, 1934, 1934, 1934,
3297
3298      1399, 1935, 1935, 1935, 2940, 1927, 1936, 1936, 1936, 1937,
3299      1937, 1937, 2942, 2939, 1924, 1934, 2946, 1934, 1935, 1938,
3300      1938, 1938, 1398, 1936, 1397, 2946, 1937, 1939, 1939, 1939,
3301      2934, 2935, 1926, 1941, 1941, 1941, 1938, 1942, 1942, 1942,
3302      1943, 1943, 1943, 1396, 1395, 1939, 1946, 1946, 1946, 2942,
3303      1394, 1941, 1947, 1947, 1947, 1942, 1947, 1936, 1943, 1947,
3304      1387, 1950, 1950, 1950, 1951, 1951, 1951, 1952, 1952, 1952,
3305      1955, 1955, 1955, 1937, 1956, 1956, 1956, 2936, 1938, 1950,
3306      1957, 1957, 1957, 1958, 1958, 1958, 1959, 1959, 1959, 1960,
3307      1960, 1960, 1939, 1941, 1961, 1961, 1961, 1964, 1964, 1964,
3308
3309      1965, 1965, 1965, 1966, 1966, 1966, 1968, 1968, 1968, 1971,
3310      1971, 1971, 1972, 1972, 1972, 1386, 1972, 1384, 2936, 1972,
3311      1950, 1975, 1975, 1975, 1968, 1383, 1971, 1976, 1976, 1976,
3312      1978, 1978, 1978, 2941, 1978, 2937, 2944, 1978, 1975, 1991,
3313      1991, 1991, 1992, 1992, 1992, 1976, 1992, 1994, 1994, 1992,
3314      1994, 1995, 1995, 1995, 1998, 1998, 1998, 1991, 1994, 1382,
3315      2943, 1994, 2000, 2000, 2000, 1994, 2000, 2950, 2944, 2000,
3316      2003, 2003, 2003, 2004, 2004, 2004, 2937, 2004, 2951, 2941,
3317      2004, 2007, 2007, 2007, 2008, 2008, 2008, 1975, 2003, 2016,
3318      2016, 2016, 1376, 1375, 2019, 2019, 2019, 2943, 2019, 2007,
3319
3320      1991, 2019, 2008, 2022, 2022, 2022, 2025, 2025, 2025, 2030,
3321      2030, 2030, 2032, 2032, 2032, 2950, 2003, 2044, 2044, 2044,
3322      2022, 2033, 2033, 2033, 2025, 2033, 2951, 2030, 2033, 2032,
3323      2046, 2046, 2046, 2945, 1373, 2008, 2047, 2047, 2047, 2048,
3324      2048, 2048, 2049, 2049, 2049, 2050, 2050, 2050, 2046, 2051,
3325      2051, 2051, 2947, 2047, 2056, 2056, 2056, 2048, 2032, 2954,
3326      2049, 2947, 2948, 2050, 1366, 2945, 2051, 2052, 2052, 2052,
3327      2949, 2052, 2056, 2954, 2052, 2053, 2053, 2053, 2054, 2054,
3328      2054, 1365, 2050, 2055, 2055, 2055, 2057, 2057, 2057, 2058,
3329      2058, 2058, 2053, 1360, 2948, 2054, 2059, 2059, 2059, 2048,
3330
3331      2055, 1359, 2949, 2049, 2061, 2061, 2061, 2058, 2064, 2064,
3332      2064, 2066, 2066, 2066, 2059, 2065, 2065, 2065, 2069, 2069,
3333      2069, 2952, 2061, 2070, 2070, 2070, 2071, 2071, 2071, 2054,
3334      2075, 2075, 2075, 2065, 2055, 2078, 2078, 2078, 2079, 2079,
3335      2079, 1358, 2079, 1357, 1356, 2079, 2953, 1355, 2075, 2091,
3336      2091, 2091, 2078, 2952, 1354, 2058, 2080, 2080, 2080, 2107,
3337      2107, 2107, 2108, 2108, 2108, 1351, 2061, 2091, 2110, 2110,
3338      2110, 1350, 1347, 2080, 2117, 2117, 2117, 2107, 2953, 1342,
3339      2108, 2118, 2118, 2118, 1339, 1336, 2110, 2121, 2121, 2121,
3340      1327, 2117, 2122, 2122, 2122, 1325, 2122, 1324, 1318, 2122,
3341
3342      2124, 2124, 2124, 1317, 2121, 2125, 2125, 2125, 1315, 2091,
3343      1314, 2080, 2129, 2129, 2129, 1313, 1312, 2124, 2131, 2131,
3344      2131, 1311, 1310, 2125, 1309, 2107, 2132, 2132, 2132, 2129,
3345      2132, 1308, 1306, 2132, 1305, 2131, 2140, 2140, 2140, 2142,
3346      2142, 2142, 2144, 2144, 2144, 2146, 2146, 2146, 2147, 2147,
3347      2147, 1303, 2147, 2140, 1302, 2147, 2148, 2148, 2148, 1300,
3348      2144, 1298, 2146, 2149, 2149, 2149, 1297, 2150, 2150, 2150,
3349      1296, 2151, 2151, 2151, 2148, 2151, 1295, 1294, 2151, 1292,
3350      1291, 2149, 2154, 2154, 2154, 2150, 2155, 2155, 2155, 1290,
3351      2155, 1289, 1280, 2155, 2156, 2156, 2156, 1265, 1264, 2154,
3352
3353      2157, 2157, 2157, 2158, 2158, 2158, 2160, 2160, 2160, 1259,
3354      1258, 2156, 1257, 1255, 2161, 2161, 2161, 2157, 2165, 2165,
3355      2165, 2158, 2172, 2172, 2172, 2176, 2176, 2176, 1248, 1247,
3356      2149, 2150, 2161, 2173, 2173, 2173, 2165, 2173, 1229, 2172,
3357      2173, 1224, 2176, 2187, 2187, 2187, 2205, 2205, 2205, 2206,
3358      2206, 2206, 2209, 2209, 2209, 2212, 2212, 2212, 2213, 2213,
3359      2213, 2187, 2213, 1221, 2205, 2213, 1220, 2206, 1217, 2209,
3360      1212, 1203, 2212, 2216, 2216, 2216, 1202, 2216, 1201, 1197,
3361      2216, 2220, 2220, 2220, 1189, 1184, 2176, 2221, 2221, 2221,
3362      1183, 2221, 1177, 1176, 2221, 2223, 2223, 2223, 2220, 2224,
3363
3364      2224, 2224, 1175, 2187, 2225, 2225, 2225, 1174, 2225, 1169,
3365      1168, 2225, 2223, 2226, 2226, 2226, 2224, 2205, 2227, 2227,
3366      2227, 1167, 2227, 1166, 1165, 2227, 2235, 2235, 2235, 1164,
3367      2226, 2236, 2236, 2236, 1163, 2236, 1153, 1152, 2236, 2237,
3368      2237, 2237, 1151, 2235, 2238, 2238, 2238, 2239, 2239, 2239,
3369      1150, 2239, 1149, 1148, 2239, 1143, 2237, 2242, 2242, 2242,
3370      1142, 2238, 2244, 2244, 2244, 2245, 2245, 2245, 1137, 2246,
3371      2246, 2246, 1136, 2246, 1117, 2242, 2246, 2249, 2249, 2249,
3372      2244, 1113, 1107, 2245, 2250, 2250, 2250, 1103, 2250, 1102,
3373      1101, 2250, 1100, 1099, 2249, 2251, 2251, 2251, 2252, 2252,
3374
3375      2252, 1098, 2252, 1097, 1096, 2252, 2253, 2253, 2253, 2259,
3376      2259, 2259, 2251, 2263, 2263, 2263, 2264, 2264, 2264, 1095,
3377      2264, 1094, 1093, 2264, 2253, 1088, 2245, 1080, 2244, 1078,
3378      2263, 2271, 2271, 2271, 2282, 2282, 2282, 2298, 2298, 2298,
3379      2300, 2300, 2300, 2301, 2301, 2301, 1072, 1070, 2271, 2302,
3380      2302, 2302, 2282, 1061, 1056, 2303, 2303, 2303, 2300, 2303,
3381      2301, 1045, 2303, 2304, 2304, 2304, 2302, 2304, 1043, 1042,
3382      2304, 2310, 2310, 2310, 1041, 2310, 1039, 1038, 2310, 2314,
3383      2314, 2314, 2349, 2349, 2349, 2282, 2315, 2315, 2315, 2301,
3384      2315, 2271, 1037, 2315, 1036, 1035, 2314, 2316, 2316, 2316,
3385
3386      1034, 2316, 2300, 1032, 2316, 2319, 2319, 2319, 2320, 2320,
3387      2320, 1031, 2320, 1030, 1029, 2320, 2322, 2322, 2322, 2324,
3388      2324, 2324, 2319, 2324, 1028, 1027, 2324, 2327, 2327, 2327,
3389      2328, 2328, 2328, 2322, 2328, 1026, 1025, 2328, 2329, 2329,
3390      2329, 2330, 2330, 2330, 2327, 2330, 1024, 1023, 2330, 2337,
3391      2337, 2337, 2338, 2338, 2338, 2329, 2339, 2339, 2339, 1022,
3392      2339, 1021, 1015, 2339, 2342, 2342, 2342, 2337, 2342, 1014,
3393      2338, 2342, 2347, 2347, 2347, 2350, 2350, 2350, 2353, 2353,
3394      2353, 1013, 2353, 1010, 1009, 2353, 2364, 2364, 2364, 2347,
3395      2347, 2373, 2373, 2373, 2389, 2389, 2389, 2390, 2390, 2390,
3396
3397      2337, 1008, 1006, 2364, 2391, 2391, 2391, 1002,  999, 2373,
3398      2392, 2392, 2392, 2393, 2393, 2393,  990, 2393,  989, 2338,
3399      2393,  986, 2391,  985, 2395, 2395, 2395, 2392, 2395,  984,
3400       983, 2395, 2402, 2402, 2402,  982, 2402,  968,  961, 2402,
3401      2373, 2405, 2405, 2405,  953, 2405,  952,  951, 2405, 2409,
3402      2409, 2409, 2410, 2410, 2410, 2391, 2410,  948,  943, 2410,
3403      2412, 2412, 2412,  940, 2412,  939, 2409, 2412, 2415, 2415,
3404      2415,  935, 2415,  933,  930, 2415, 2424, 2424, 2424, 2425,
3405      2425, 2425, 2431, 2431, 2431, 2432, 2432, 2432, 2433, 2433,
3406      2433,  929, 2433,  928, 2424, 2433,  927, 2425,  926, 2431,
3407
3408      2431,  925, 2432, 2432,  924,  920, 2433, 2434, 2434, 2434,
3409      2435, 2435, 2435, 2436, 2436, 2436, 2437, 2437, 2437, 2446,
3410      2446, 2446, 2447, 2447, 2447,  916, 2447,  915,  914, 2447,
3411      2456, 2456, 2456, 2471, 2471, 2471, 2446, 2472, 2472, 2472,
3412      2473, 2473, 2473,  911,  910, 2425,  907,  906, 2456, 2474,
3413      2474, 2474,  905, 2474,  902,  901, 2474,  898, 2473, 2480,
3414      2480, 2480, 2482, 2482, 2482, 2483, 2483, 2483,  893, 2483,
3415       890,  887, 2483, 2486, 2486, 2486, 2480,  886,  883, 2482,
3416      2501, 2501, 2501, 2503, 2503, 2503, 2509, 2509, 2509,  882,
3417      2486,  881,  880, 2510, 2510, 2510, 2456, 2510, 2501,  879,
3418
3419      2510, 2503,  877, 2509, 2509, 2511, 2511, 2511,  876, 2511,
3420       875, 2510, 2511, 2514, 2514, 2514, 2515, 2515, 2515, 2516,
3421      2516, 2516,  874, 2511, 2525, 2525, 2525,  873, 2525,  869,
3422       864, 2525,  863,  862, 2503, 2512, 2512, 2512, 2512, 2512,
3423      2512, 2512, 2512, 2512,  861,  858, 2512, 2534, 2534, 2534,
3424       857, 2512, 2512, 2512, 2512, 2512, 2545, 2545, 2545, 2546,
3425      2546, 2546, 2551, 2551, 2551, 2534, 2552, 2552, 2552,  856,
3426      2552,  854,  850, 2552, 2554, 2554, 2554, 2546,  846, 2551,
3427      2512, 2512, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513,
3428      2513, 2554,  845, 2513, 2556, 2556, 2556,  842, 2513, 2513,
3429
3430      2513, 2513, 2513, 2555, 2555, 2555,  839, 2555,  838,  837,
3431      2555, 2556, 2557, 2557, 2557,  836, 2557,  835,  834, 2557,
3432      2570, 2570, 2570, 2595, 2595, 2595,  832, 2513, 2513, 2576,
3433      2576, 2576,  831, 2576,  830,  829, 2576,  828, 2570,  827,
3434       826, 2595, 2630, 2630, 2630,  825,  824, 2576, 2579, 2579,
3435      2579, 2579, 2579, 2579, 2579, 2579, 2579,  823,  822, 2579,
3436      2630,  821,  820,  819, 2579, 2579, 2579, 2579, 2579, 2608,
3437      2608, 2608,  818, 2608,  817,  816, 2608, 2612, 2612, 2612,
3438       815, 2612,  811,  810, 2612, 2615, 2615, 2615,  808, 2615,
3439       807,  806, 2615, 2579, 2579, 2580, 2580, 2580, 2580, 2580,
3440
3441      2580, 2580, 2580, 2580,  805,  804, 2580, 2642, 2642, 2642,
3442       800, 2580, 2580, 2580, 2580, 2580, 2659, 2659, 2659, 2660,
3443      2660, 2660, 2661, 2661, 2661, 2642, 2642, 2666, 2666, 2666,
3444      2677, 2677, 2677, 2659,  798,  797, 2660,  796,  795, 2661,
3445      2580, 2580,  791,  787, 2666, 2681, 2681, 2681, 2677, 2692,
3446      2692, 2692, 2693, 2693, 2693,  786, 2693,  783,  782, 2693,
3447      2694, 2694, 2694, 2681,  781,  780, 2692, 2695, 2695, 2695,
3448       779, 2695,  778,  777, 2695,  774,  773, 2694, 2696, 2696,
3449      2696, 2697, 2697, 2697,  772, 2697,  771,  768, 2697, 2704,
3450      2704, 2704, 2714, 2714, 2714, 2696, 2681, 2705, 2705, 2705,
3451
3452       767, 2705,  766,  763, 2705,  761, 2704, 2724, 2724, 2724,
3453      2714, 2724,  758,  757, 2724, 2727, 2727, 2727,  756, 2727,
3454       755,  754, 2727, 2730, 2730, 2730,  751, 2730,  750, 2714,
3455      2730, 2739, 2739, 2739,  749, 2739,  748,  747, 2739, 2846,
3456      2846, 2846, 2855, 2855, 2855,  744, 2855,  743,  742, 2855,
3457      2956, 2956, 2956, 2957, 2957, 2957,  741, 2846,  739,  736,
3458      2855,  734,  731,  730,  729,  728,  726,  725, 2956,  724,
3459       721, 2957, 2960, 2960, 2960, 2960, 2960, 2960, 2960, 2960,
3460      2960, 2961, 2961, 2961, 2961, 2961, 2961, 2961, 2961, 2961,
3461      2962, 2962, 2962, 2962, 2962, 2962, 2962, 2962, 2962, 2963,
3462
3463      2963, 2963, 2963, 2963, 2963, 2963, 2963, 2963, 2964, 2964,
3464      2964, 2964, 2964, 2964, 2964, 2964, 2964, 2965, 2965, 2965,
3465      2965, 2965, 2965, 2965, 2965, 2965, 2966, 2966, 2966, 2966,
3466      2966, 2966, 2966, 2966, 2966, 2967, 2967, 2967, 2967, 2967,
3467      2967, 2967, 2967, 2967, 2968, 2968, 2968, 2968, 2968, 2968,
3468      2968, 2968, 2968, 2969, 2969, 2969, 2969, 2969, 2969, 2969,
3469      2969, 2969, 2970, 2970, 2970, 2970, 2970, 2970, 2970, 2970,
3470      2970, 2971, 2971, 2971, 2971, 2971, 2971, 2971, 2971, 2971,
3471      2972, 2972, 2972, 2972, 2972, 2972, 2972, 2972, 2972, 2973,
3472      2973, 2973, 2973, 2973, 2973, 2973, 2973, 2973, 2974, 2974,
3473
3474      2974, 2974, 2974, 2974, 2974, 2974, 2974, 2975, 2975, 2975,
3475      2975, 2975, 2975, 2975, 2975, 2975, 2976, 2976, 2976, 2976,
3476      2976, 2976, 2976, 2976, 2976, 2977, 2977, 2977, 2977, 2977,
3477      2977, 2977, 2977, 2977, 2978, 2978, 2978, 2978, 2978, 2978,
3478      2978, 2978, 2978, 2979, 2979, 2979, 2979, 2979, 2979, 2979,
3479      2979, 2979, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980,
3480      2980, 2981, 2981, 2981, 2981, 2981, 2981, 2981, 2981, 2981,
3481      2982, 2982, 2982, 2982, 2982, 2982, 2982, 2982, 2982, 2983,
3482      2983, 2983, 2983, 2983, 2983, 2983, 2983, 2983, 2984, 2984,
3483      2984, 2984, 2984, 2984, 2984, 2984, 2984, 2985, 2985, 2985,
3484
3485      2985, 2985, 2985, 2985, 2985, 2985, 2986, 2986, 2986, 2986,
3486      2986, 2986, 2986, 2986, 2986, 2987, 2987, 2987, 2987, 2987,
3487      2987, 2987, 2987, 2987, 2988, 2988, 2988, 2988, 2988, 2988,
3488      2988, 2988, 2988, 2989, 2989, 2989, 2989, 2989, 2989, 2989,
3489      2989, 2989, 2990, 2990, 2990, 2990, 2990, 2990, 2990, 2990,
3490      2990, 2991, 2991, 2991, 2991, 2991, 2991, 2991, 2991, 2991,
3491      2992, 2992, 2992, 2992, 2992, 2992, 2992, 2992, 2992, 2993,
3492      2993, 2993, 2993, 2993, 2993, 2993, 2993, 2993, 2994, 2994,
3493      2994, 2994, 2994, 2994, 2994, 2994, 2994, 2995, 2995, 2995,
3494      2995, 2995, 2995, 2995, 2995, 2995, 2996, 2996, 2996, 2996,
3495
3496      2996, 2996, 2996, 2996, 2996, 2997, 2997, 2997, 2997, 2997,
3497      2997, 2997, 2997, 2997, 2998, 2998, 2998, 2998, 2998, 2998,
3498      2998, 2998, 2998, 2999, 2999, 2999, 2999, 2999, 2999, 2999,
3499      2999, 2999, 3000, 3000, 3000, 3000, 3000, 3000, 3000, 3000,
3500      3000, 3001, 3001, 3001, 3001, 3001, 3001, 3001, 3001, 3001,
3501      3002, 3002, 3002, 3002, 3002, 3002, 3002, 3002, 3002, 3003,
3502      3003, 3003, 3003, 3003, 3003, 3003, 3003, 3003, 3004, 3004,
3503      3004, 3004, 3004, 3004, 3004, 3004, 3004, 3005, 3005, 3005,
3504      3005, 3005, 3005, 3005, 3005, 3005, 3006, 3006, 3006, 3006,
3505      3006, 3006, 3006, 3006, 3006, 3007, 3007, 3007, 3007, 3007,
3506
3507      3007, 3007, 3007, 3007, 3008, 3008, 3008, 3008, 3008, 3008,
3508      3008, 3008, 3008, 3009, 3009, 3009, 3009, 3009, 3009, 3009,
3509      3009, 3009, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010,
3510      3010, 3011, 3011, 3011, 3011, 3011, 3011, 3011, 3011, 3011,
3511      3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3013,
3512      3013, 3013,  720,  719,  718, 3013, 3014, 3014, 3014,  717,
3513       716,  715, 3014, 3015, 3015, 3015,  714,  713,  711, 3015,
3514      3016, 3016, 3016,  709,  708,  704, 3016, 3017, 3017, 3017,
3515       703,  702,  699, 3017, 3018, 3018, 3018,  696,  695,  694,
3516      3018, 3019, 3019, 3019,  691,  690,  686, 3019, 3020, 3020,
3517
3518      3020,  685,  683,  680, 3020, 3021, 3021, 3021,  679,  678,
3519       676, 3021, 3022, 3022, 3022,  671,  670,  669, 3022, 3023,
3520      3023, 3023,  668,  666,  665, 3023, 3024, 3024, 3024,  664,
3521       663,  662, 3024, 3025, 3025, 3025,  661,  657,  656, 3025,
3522      3026, 3026, 3026,  655,  654,  650, 3026, 3027, 3027, 3027,
3523       649,  648,  647, 3027, 3028, 3028, 3028,  646,  645,  644,
3524      3028, 3029, 3029, 3029,  642,  639,  638, 3029, 3030, 3030,
3525      3030,  636,  634,  631, 3030, 3031, 3031, 3031,  630,  624,
3526       622, 3031, 3032, 3032, 3032,  620,  617,  616, 3032, 3033,
3527      3033, 3033,  612,  611,  610, 3033, 3034, 3034, 3034,  608,
3528
3529       607,  606, 3034, 3035, 3035, 3035,  605,  604,  601, 3035,
3530      3036, 3036, 3036,  600,  599,  598, 3036, 3037, 3037, 3037,
3531      3037, 3037, 3037, 3037,  597, 3037, 3038, 3038, 3038,  591,
3532       590,  588, 3038, 3039,  582,  581,  577, 3039, 3040, 3040,
3533      3040,  570,  566,  560, 3040, 3041,  556,  552,  548, 3041,
3534      3042, 3042, 3042,  547,  546,  545, 3042, 3043,  544,  540,
3535       536, 3043, 3044, 3044, 3044,  533,  532,  531, 3044, 3045,
3536       527,  523,  520, 3045, 3046, 3046, 3046,  519,  515,  509,
3537      3046, 3047,  508,  504,  500, 3047, 3048, 3048, 3048,  496,
3538       495,  491, 3048, 3049,  488,  487,  482, 3049, 3050, 3050,
3539
3540      3050,  478,  470,  469, 3050, 3051,  468,  464,  458, 3051,
3541      3052, 3052, 3052,  457,  453,  447, 3052, 3053,  446,  445,
3542       444, 3053, 3054, 3054, 3054,  443,  442,  441, 3054, 3055,
3543       437,  428,  427, 3055, 3056, 3056, 3056,  426,  424,  420,
3544      3056, 3057,  416,  412,  411, 3057, 3058, 3058, 3058,  410,
3545       409,  408, 3058, 3059,  404,  398,  397, 3059, 3060, 3060,
3546      3060,  393,  387,  386, 3060, 3061,  382,  375,  374, 3061,
3547      3062, 3062, 3062,  373,  369,  362, 3062, 3063,  361,  360,
3548       359, 3063, 3064, 3064, 3064,  355,  351,  346, 3064, 3065,
3549       338,  337,  333, 3065, 3066, 3066, 3066,  327,  326,  325,
3550
3551      3066, 3067,  321,  312,  310, 3067, 3068, 3068, 3068,  309,
3552       305,  302, 3068, 3069,  300,  299,  298, 3069, 3070, 3070,
3553      3070,  294,  290,  287, 3070, 3071,  283,  280,  279, 3071,
3554      3072, 3072, 3072,  271,  267,  263, 3072, 3073,  262,  261,
3555       255, 3073, 3074, 3074, 3074,  254,  252,  249, 3074, 3075,
3556       237,    0,    0, 3075, 3076, 3076, 3076,    0,    0,    0,
3557      3076, 3077,    0,    0,    0, 3077, 3078, 3078, 3078,    0,
3558         0,    0, 3078, 3079,    0,    0,    0, 3079, 3080, 3080,
3559      3080,    0,    0,    0, 3080, 3081,    0,    0,    0, 3081,
3560      3082, 3082, 3082,    0,    0,    0, 3082, 3083,    0,    0,
3561
3562         0, 3083, 3084, 3084, 3084,    0,    0,    0, 3084, 3085,
3563         0,    0,    0, 3085, 3086, 3086, 3086, 3086, 3086, 3086,
3564      3086, 3086, 3086, 3087,    0,    0,    0,    0, 3087, 3088,
3565      3088, 3088,    0,    0,    0, 3088, 3089, 3089, 3089, 3089,
3566         0,    0, 3089, 3089, 3090, 3090, 3090,    0,    0,    0,
3567      3090, 3091, 3091, 3091, 3091,    0,    0, 3091, 3091, 3092,
3568      3092, 3092,    0,    0,    0, 3092, 3093, 3093, 3093, 3093,
3569         0,    0, 3093, 3093, 3094, 3094, 3094,    0,    0,    0,
3570      3094, 3095, 3095, 3095, 3095,    0,    0, 3095, 3095, 3096,
3571      3096, 3096,    0,    0,    0, 3096, 3097, 3097, 3097, 3097,
3572
3573         0,    0, 3097, 3097, 3098, 3098, 3098,    0,    0,    0,
3574      3098, 3099, 3099, 3099, 3099,    0,    0, 3099, 3099, 3100,
3575      3100, 3100,    0,    0,    0, 3100, 3101, 3101, 3101, 3101,
3576         0,    0, 3101, 3101, 3102, 3102, 3102,    0,    0,    0,
3577      3102, 3103, 3103, 3103, 3103,    0,    0, 3103, 3103, 3104,
3578      3104, 3104,    0,    0,    0, 3104, 3105, 3105, 3105, 3105,
3579         0,    0, 3105, 3105, 3106, 3106, 3106,    0,    0,    0,
3580      3106, 3107, 3107, 3107, 3107,    0,    0, 3107, 3107, 3108,
3581      3108, 3108,    0,    0,    0, 3108, 3109, 3109, 3109, 3109,
3582         0,    0, 3109, 3109, 3110, 3110, 3110,    0,    0,    0,
3583
3584      3110, 3111, 3111, 3111, 3111,    0,    0, 3111, 3111, 3112,
3585      3112, 3112,    0,    0,    0, 3112, 3113, 3113, 3113, 3113,
3586         0,    0, 3113, 3113, 3114, 3114, 3114,    0,    0,    0,
3587      3114, 3115, 3115, 3115, 3115,    0,    0, 3115, 3115, 3116,
3588      3116, 3116,    0,    0,    0, 3116, 3117, 3117, 3117, 3117,
3589         0,    0, 3117, 3117, 3118, 3118, 3118, 3118,    0, 3118,
3590         0, 3118, 3119, 3119, 3119, 3119,    0,    0, 3119, 3119,
3591      3120, 3120, 3120, 3120,    0, 3120,    0, 3120, 3121, 3121,
3592      3121, 3121,    0,    0, 3121, 3121, 3122, 3122, 3122,    0,
3593         0,    0, 3122, 3123, 3123, 3123, 3123,    0,    0, 3123,
3594
3595      3123, 3124, 3124, 3124, 3124,    0, 3124,    0, 3124, 3125,
3596      3125, 3125, 3125,    0,    0, 3125, 3125, 3126, 3126, 3126,
3597      3126,    0, 3126,    0, 3126, 3127, 3127, 3127, 3127,    0,
3598         0, 3127, 3127, 3128, 3128, 3128,    0,    0,    0, 3128,
3599      3129, 3129, 3129, 3129,    0,    0, 3129, 3129, 3130, 3130,
3600      3130,    0,    0,    0, 3130, 3131, 3131, 3131, 3131,    0,
3601         0, 3131, 3131, 3132, 3132, 3132, 3132,    0,    0, 3132,
3602      3132, 3133, 3133, 3133,    0,    0,    0, 3133, 3134, 3134,
3603      3134, 3134,    0,    0, 3134, 3134, 3135, 3135, 3135, 3135,
3604      3135, 3135, 3135, 3135, 3135, 3136,    0, 3136,    0,    0,
3605
3606      3136, 3137, 3137, 3137,    0,    0,    0, 3137, 3138, 3138,
3607      3138, 3138,    0,    0, 3138, 3138, 3139, 3139, 3139, 3139,
3608         0, 3139,    0, 3139, 3140, 3140, 3140, 3140,    0,    0,
3609      3140, 3140, 3141, 3141, 3141, 3141,    0, 3141,    0, 3141,
3610      3142, 3142, 3142, 3142,    0,    0, 3142, 3142, 3143, 3143,
3611      3143,    0,    0,    0, 3143, 3144, 3144, 3144, 3144,    0,
3612         0, 3144, 3144, 3145, 3145, 3145,    0,    0,    0, 3145,
3613      3146, 3146, 3146, 3146,    0,    0, 3146, 3146, 3147, 3147,
3614      3147,    0,    0,    0, 3147, 3148, 3148, 3148, 3148,    0,
3615         0, 3148, 3148, 3149, 3149, 3149,    0,    0,    0, 3149,
3616
3617      3150, 3150, 3150, 3150,    0,    0, 3150, 3150, 3151, 3151,
3618      3151,    0,    0,    0, 3151, 3152, 3152, 3152, 3152,    0,
3619         0, 3152, 3152, 3153, 3153, 3153, 3153,    0, 3153,    0,
3620      3153, 3154, 3154, 3154, 3154,    0,    0, 3154, 3154, 3155,
3621      3155, 3155, 3155,    0, 3155,    0, 3155, 3156, 3156, 3156,
3622      3156,    0,    0, 3156, 3156, 3157, 3157, 3157,    0,    0,
3623         0, 3157, 3158, 3158, 3158, 3158,    0,    0, 3158, 3158,
3624      3159, 3159, 3159,    0,    0,    0, 3159, 3160, 3160, 3160,
3625      3160,    0,    0, 3160, 3160, 3161, 3161, 3161,    0,    0,
3626         0, 3161, 3162, 3162, 3162, 3162,    0,    0, 3162, 3162,
3627
3628      3163, 3163, 3163,    0,    0,    0, 3163, 3164, 3164, 3164,
3629      3164,    0,    0, 3164, 3164, 3165, 3165, 3165,    0,    0,
3630         0, 3165, 3166, 3166, 3166, 3166,    0,    0, 3166, 3166,
3631      3167, 3167, 3167,    0,    0,    0, 3167, 3168, 3168, 3168,
3632      3168,    0,    0, 3168, 3168, 3169, 3169, 3169,    0,    0,
3633         0, 3169, 3170, 3170, 3170, 3170,    0,    0, 3170, 3170,
3634      3171, 3171, 3171,    0,    0,    0, 3171, 3172, 3172, 3172,
3635      3172,    0,    0, 3172, 3172, 3173, 3173, 3173, 3173,    0,
3636         0, 3173, 3173, 3174, 3174, 3174,    0,    0,    0, 3174,
3637      3175, 3175, 3175, 3175,    0,    0, 3175, 3175, 3176, 3176,
3638
3639      3176,    0,    0,    0, 3176, 3177, 3177, 3177, 3177,    0,
3640         0, 3177, 3177, 3178, 3178, 3178,    0,    0,    0, 3178,
3641      3179, 3179, 3179, 3179,    0,    0, 3179, 3179, 3180, 3180,
3642      3180, 3180,    0,    0, 3180, 3180, 3181, 3181, 3181,    0,
3643         0,    0, 3181, 3182, 3182, 3182, 3182,    0,    0, 3182,
3644      3182, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183,
3645      3184, 3184, 3184, 3184, 3184, 3184, 3184, 3184, 3184, 3185,
3646      3185, 3185,    0,    0,    0, 3185, 3186, 3186, 3186, 3186,
3647         0,    0, 3186, 3186, 3187, 3187, 3187, 3187,    0,    0,
3648      3187, 3187, 3188, 3188, 3188,    0,    0,    0, 3188, 3189,
3649
3650      3189, 3189, 3189,    0,    0, 3189, 3189, 3190, 3190, 3190,
3651         0,    0,    0, 3190, 3191, 3191, 3191, 3191,    0,    0,
3652      3191, 3191, 3192, 3192, 3192,    0,    0,    0, 3192, 3193,
3653      3193, 3193, 3193,    0,    0, 3193, 3193, 3194, 3194, 3194,
3654         0,    0,    0, 3194, 3195, 3195, 3195,    0,    0,    0,
3655      3195, 3196, 3196, 3196, 3196,    0,    0, 3196, 3196, 3197,
3656      3197, 3197,    0,    0,    0, 3197, 3198, 3198, 3198, 3198,
3657         0,    0, 3198, 3198, 3199, 3199, 3199, 3199,    0,    0,
3658      3199, 3199, 3200, 3200, 3200,    0,    0,    0, 3200, 3201,
3659      3201, 3201, 3201,    0,    0, 3201, 3201, 3202, 3202, 3202,
3660
3661         0,    0,    0, 3202, 3203, 3203, 3203, 3203,    0,    0,
3662      3203, 3203, 3204, 3204, 3204,    0,    0,    0, 3204, 3205,
3663      3205, 3205, 3205,    0,    0, 3205, 3205, 3206, 3206, 3206,
3664         0,    0,    0, 3206, 3207, 3207, 3207, 3207,    0,    0,
3665      3207, 3207, 3208, 3208, 3208,    0,    0,    0, 3208, 3209,
3666      3209, 3209, 3209,    0,    0, 3209, 3209, 3210, 3210, 3210,
3667         0,    0,    0, 3210, 3211, 3211, 3211, 3211,    0,    0,
3668      3211, 3211, 3212, 3212, 3212,    0,    0,    0, 3212, 3213,
3669      3213, 3213, 3213,    0,    0, 3213, 3213, 3214, 3214, 3214,
3670         0,    0,    0, 3214, 3215, 3215, 3215, 3215,    0,    0,
3671
3672      3215, 3215, 3216, 3216, 3216,    0,    0,    0, 3216, 3217,
3673      3217, 3217, 3217,    0,    0, 3217, 3217, 3218, 3218, 3218,
3674      3218,    0,    0, 3218, 3218, 3219, 3219, 3219,    0,    0,
3675         0, 3219, 3220, 3220, 3220, 3220,    0,    0, 3220, 3220,
3676      3221, 3221, 3221,    0,    0,    0, 3221, 3222, 3222, 3222,
3677      3222,    0,    0, 3222, 3222, 3223, 3223, 3223, 3223,    0,
3678      3223,    0, 3223, 3224, 3224, 3224, 3224,    0,    0, 3224,
3679      3224, 3225, 3225, 3225, 3225,    0,    0, 3225, 3225, 3226,
3680      3226, 3226, 3226,    0, 3226,    0, 3226, 3227, 3227, 3227,
3681      3227,    0,    0, 3227, 3227, 3228, 3228, 3228, 3228, 3228,
3682
3683      3228, 3228, 3228, 3228, 3229, 3229, 3229, 3229, 3229, 3229,
3684      3229, 3229, 3229, 3230, 3230, 3230,    0,    0,    0, 3230,
3685      3231, 3231, 3231, 3231,    0,    0, 3231, 3231, 3232, 3232,
3686      3232, 3232,    0,    0, 3232, 3232, 3233, 3233, 3233,    0,
3687         0,    0, 3233, 3234, 3234, 3234, 3234,    0,    0, 3234,
3688      3234, 3235, 3235, 3235,    0,    0,    0, 3235, 3236, 3236,
3689      3236, 3236,    0,    0, 3236, 3236, 3237, 3237, 3237,    0,
3690         0,    0, 3237, 3238, 3238, 3238, 3238,    0,    0, 3238,
3691      3238, 3239, 3239, 3239,    0,    0,    0, 3239, 3240, 3240,
3692      3240,    0,    0,    0, 3240, 3241, 3241, 3241, 3241,    0,
3693
3694         0, 3241, 3241, 3242, 3242, 3242,    0,    0,    0, 3242,
3695      3243, 3243, 3243, 3243,    0,    0, 3243, 3243, 3244, 3244,
3696      3244, 3244,    0,    0, 3244, 3244, 3245, 3245, 3245, 3245,
3697         0, 3245,    0, 3245, 3246, 3246, 3246, 3246,    0,    0,
3698      3246, 3246, 3247, 3247, 3247,    0,    0,    0, 3247, 3248,
3699      3248, 3248, 3248,    0,    0, 3248, 3248, 3249, 3249, 3249,
3700         0,    0,    0, 3249, 3250, 3250, 3250, 3250,    0,    0,
3701      3250, 3250, 3251, 3251, 3251,    0,    0,    0, 3251, 3252,
3702      3252, 3252, 3252,    0,    0, 3252, 3252, 3253, 3253, 3253,
3703         0,    0,    0, 3253, 3254, 3254, 3254, 3254,    0,    0,
3704
3705      3254, 3254, 3255, 3255, 3255,    0,    0,    0, 3255, 3256,
3706      3256, 3256, 3256,    0,    0, 3256, 3256, 3257, 3257, 3257,
3707         0,    0,    0, 3257, 3258, 3258, 3258, 3258,    0,    0,
3708      3258, 3258, 3259, 3259, 3259, 3259,    0, 3259,    0, 3259,
3709      3260, 3260, 3260, 3260,    0,    0, 3260, 3260, 3261, 3261,
3710      3261,    0,    0,    0, 3261, 3262, 3262, 3262, 3262,    0,
3711         0, 3262, 3262, 3263, 3263, 3263, 3263,    0,    0, 3263,
3712      3263, 3264, 3264, 3264, 3264,    0, 3264,    0, 3264, 3265,
3713      3265, 3265, 3265,    0,    0, 3265, 3265, 3266, 3266, 3266,
3714         0,    0,    0, 3266, 3267, 3267, 3267, 3267,    0,    0,
3715
3716      3267, 3267, 3268, 3268, 3268, 3268,    0,    0, 3268, 3268,
3717      3269, 3269, 3269, 3269,    0,    0, 3269, 3269, 3270, 3270,
3718      3270, 3270,    0,    0, 3270, 3270, 3271, 3271, 3271, 3271,
3719      3271, 3271, 3271, 3271, 3271, 3272, 3272, 3272, 3272, 3272,
3720      3272, 3272, 3272, 3272, 3273, 3273, 3273, 3273,    0, 3273,
3721         0, 3273, 3274, 3274, 3274, 3274,    0,    0, 3274, 3274,
3722      3275, 3275, 3275, 3275,    0,    0, 3275, 3275, 3276, 3276,
3723      3276,    0,    0,    0, 3276, 3277, 3277, 3277, 3277,    0,
3724         0, 3277, 3277, 3278, 3278, 3278,    0,    0,    0, 3278,
3725      3279, 3279, 3279, 3279,    0,    0, 3279, 3279, 3280, 3280,
3726
3727      3280, 3280,    0, 3280,    0, 3280, 3281, 3281, 3281, 3281,
3728         0,    0, 3281, 3281, 3282, 3282, 3282, 3282,    0, 3282,
3729         0, 3282, 3283, 3283, 3283, 3283,    0, 3283,    0, 3283,
3730      3284, 3284, 3284, 3284,    0,    0, 3284, 3284, 3285, 3285,
3731      3285, 3285,    0, 3285,    0, 3285, 3286, 3286, 3286, 3286,
3732         0,    0, 3286, 3286, 3287, 3287, 3287, 3287,    0,    0,
3733      3287, 3287, 3288, 3288, 3288, 3288,    0,    0, 3288, 3288,
3734      3289, 3289, 3289,    0,    0,    0, 3289, 3290, 3290, 3290,
3735         0,    0,    0, 3290, 3291, 3291, 3291, 3291,    0,    0,
3736      3291, 3291, 3292, 3292, 3292,    0,    0,    0, 3292, 3293,
3737
3738      3293, 3293,    0,    0,    0, 3293, 3294, 3294, 3294, 3294,
3739         0,    0, 3294, 3294, 3295, 3295, 3295,    0,    0,    0,
3740      3295, 3296, 3296, 3296,    0,    0,    0, 3296, 3297, 3297,
3741      3297, 3297,    0,    0, 3297, 3297, 3298, 3298, 3298,    0,
3742         0,    0, 3298, 3299, 3299, 3299, 3299,    0,    0, 3299,
3743      3299, 3300, 3300, 3300,    0,    0,    0, 3300, 3301, 3301,
3744      3301, 3301,    0,    0, 3301, 3301, 3302, 3302, 3302, 3302,
3745         0,    0, 3302, 3302, 3303, 3303, 3303, 3303,    0,    0,
3746      3303, 3303, 3304, 3304, 3304,    0,    0,    0, 3304, 3305,
3747      3305, 3305, 3305,    0,    0, 3305, 3305, 3306, 3306, 3306,
3748
3749      3306,    0,    0, 3306, 3306, 3307, 3307, 3307, 3307,    0,
3750         0, 3307, 3307, 3308, 3308, 3308, 3308, 3308, 3308, 3308,
3751      3308, 3308, 3309, 3309, 3309, 3309, 3309, 3309, 3309, 3309,
3752      3309, 3310, 3310, 3310, 3310,    0,    0, 3310, 3310, 3311,
3753      3311, 3311, 3311,    0,    0, 3311, 3311, 3312, 3312, 3312,
3754         0,    0,    0, 3312, 3313, 3313, 3313,    0,    0,    0,
3755      3313, 3314, 3314, 3314, 3314,    0,    0, 3314, 3314, 3315,
3756      3315, 3315, 3315,    0,    0, 3315, 3315, 3316, 3316, 3316,
3757      3316,    0,    0, 3316, 3316, 3317, 3317, 3317, 3317,    0,
3758         0, 3317, 3317, 3318, 3318, 3318, 3318,    0,    0, 3318,
3759
3760      3318, 3319, 3319, 3319,    0,    0,    0, 3319, 3320, 3320,
3761      3320,    0,    0,    0, 3320, 3321, 3321, 3321, 3321,    0,
3762         0, 3321, 3321, 3322, 3322, 3322,    0,    0,    0, 3322,
3763      3323, 3323, 3323,    0,    0,    0, 3323, 3324, 3324, 3324,
3764      3324,    0,    0, 3324, 3324, 3325, 3325, 3325,    0,    0,
3765         0, 3325, 3326, 3326, 3326,    0,    0,    0, 3326, 3327,
3766      3327, 3327,    0,    0,    0, 3327, 3328, 3328, 3328, 3328,
3767         0,    0, 3328, 3328, 3329, 3329, 3329,    0,    0,    0,
3768      3329, 3330, 3330, 3330, 3330,    0,    0, 3330, 3330, 3331,
3769      3331, 3331, 3331,    0,    0, 3331, 3331, 3332, 3332, 3332,
3770
3771      3332,    0,    0, 3332, 3332, 3333, 3333, 3333, 3333,    0,
3772      3333,    0, 3333, 3334, 3334, 3334, 3334,    0,    0, 3334,
3773      3334, 3335, 3335, 3335, 3335,    0,    0, 3335, 3335, 3336,
3774      3336, 3336, 3336,    0,    0, 3336, 3336, 3337, 3337, 3337,
3775      3337, 3337, 3337, 3337, 3337, 3337, 3338, 3338, 3338, 3338,
3776      3338, 3338, 3338, 3338, 3338, 3339, 3339, 3339, 3339,    0,
3777         0, 3339, 3339, 3340, 3340, 3340, 3340,    0,    0, 3340,
3778      3340, 3341, 3341, 3341,    0,    0,    0, 3341, 3342, 3342,
3779      3342, 3342,    0, 3342,    0, 3342, 3343, 3343, 3343, 3343,
3780         0,    0, 3343, 3343, 3344, 3344, 3344, 3344,    0,    0,
3781
3782      3344, 3344, 3345, 3345, 3345, 3345,    0,    0, 3345, 3345,
3783      3346, 3346, 3346, 3346,    0,    0, 3346, 3346, 3347, 3347,
3784      3347,    0,    0,    0, 3347, 3348, 3348, 3348,    0,    0,
3785         0, 3348, 3349, 3349, 3349, 3349,    0,    0, 3349, 3349,
3786      3350, 3350, 3350,    0,    0,    0, 3350, 3351, 3351, 3351,
3787         0,    0,    0, 3351, 3352, 3352, 3352, 3352, 3352, 3352,
3788      3352, 3352, 3352, 3353, 3353, 3353, 3353, 3353, 3353, 3353,
3789      3353, 3353, 3354, 3354, 3354, 3354, 3354, 3354, 3354, 3354,
3790      3354, 3355, 3355, 3355, 3355, 3355, 3355, 3355, 3355, 3355,
3791      3356, 3356, 3356, 3356, 3356, 3356, 3356, 3356, 3356, 3357,
3792
3793      3357, 3357, 3357, 3357, 3357, 3357, 3357, 3357, 2959, 2959,
3794      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
3795      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
3796      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
3797      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
3798      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
3799      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
3800      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959,
3801      2959, 2959, 2959
3802     } ;
3803
3804 /* Table of booleans, true if rule could match eol. */
3805 static yyconst flex_int32_t yy_rule_can_match_eol[495] =
3806     {   0,
3807 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
3808     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
3809     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3810     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
3811     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
3812     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3813     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
3814     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
3815     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
3816     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3817     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
3818     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3819     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
3820     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3821     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
3822     0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3823     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 
3824     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3825     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3826     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
3827     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
3828     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
3829     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
3830     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
3831     0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,     };
3832
3833 static yy_state_type yy_last_accepting_state;
3834 static char *yy_last_accepting_cpos;
3835
3836 extern int surf_parse__flex_debug;
3837 int surf_parse__flex_debug = 0;
3838
3839 /* The intent behind this definition is that it'll catch
3840  * any uses of REJECT which flex missed.
3841  */
3842 #define REJECT reject_used_but_not_detected
3843 #define yymore() yymore_used_but_not_detected
3844 #define YY_MORE_ADJ 0
3845 #define YY_RESTORE_YY_MORE_OFFSET
3846 char *surf_parse_text;
3847 /* Validating XML processor for src/surf/simgrid.dtd.
3848  *
3849  * This program was generated with the FleXML XML processor generator.
3850  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
3851  * FleXML is Copyright (C) 2003-2011 Martin Quinson.  All rights reserved.
3852  * (Id: flexml.pl,v 1.67 2011/11/01 20:49:21 mquinson Exp).
3853  * 
3854  * There are two, intertwined parts to this program, part A and part B.
3855  *
3856  * Part A
3857  * ------
3858  * 
3859  * Some parts, here collectively called "Part A", are found in the 
3860  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
3861  * and Copyright (C) 2003-2011 Martin Quinson. All rights reserved.
3862  *
3863  * You can redistribute, use, perform, display and/or modify "Part A"
3864  * provided the following two conditions hold:
3865  *
3866  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
3867  *    FleXML; without even the implied warranty of MERCHANTABILITY or
3868  *    FITNESS FOR A PARTICULAR PURPOSE.
3869  *
3870  * 2. The program distribution conditions do not in any way affect the
3871  *    distribution conditions of the FleXML system used to generate this
3872  *    file or any version of FleXML derived from that system.
3873  *
3874  * Notice that these are explicit rights granted to you for files
3875  * generated by the FleXML system.  For your rights in connection with
3876  * the FleXML system itself please consult the GNU General Public License.
3877  * 
3878  * Part B
3879  * ------
3880  * 
3881  * The other parts, here collectively called "Part B", and which came 
3882  * from the DTD used by FleXML to generate this program, can be 
3883  * distributed (or not, as the case may be) under the terms of whoever
3884  * wrote them, provided these terms respect and obey the two conditions 
3885  * above under the heading "Part A".
3886  *
3887  * The author of and contributors to FleXML specifically disclaim
3888  * any copyright interest in "Part B", unless "Part B" was written 
3889  * by the author of or contributors to FleXML.
3890  * 
3891  */
3892
3893 /* Version strings. */
3894 const char rcs_surfxml_flexml_skeleton[] =
3895  "$" "Id: skel,v 1.40 2007/10/11 09:57:24 mquinson Exp $";
3896 const char rcs_surfxml_flexml[] =
3897  "$" "Id: flexml.pl,v 1.67 2011/11/01 20:49:21 mquinson Exp $";
3898
3899 /* ANSI headers. */
3900 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
3901 #include <stdio.h>
3902 #include <string.h>
3903 #include <assert.h>
3904 #include <stdarg.h>
3905 #include <ctype.h>
3906      
3907 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
3908 # ifndef __STRICT_ANSI__
3909 #  include <io.h>
3910 #  include <process.h>
3911 # endif
3912 #else
3913 # include <unistd.h>
3914 #endif
3915      
3916 #ifndef FLEXML_INDEXSTACKSIZE
3917 #define FLEXML_INDEXSTACKSIZE 1000
3918 #endif
3919
3920 /* Generated definitions. */
3921 #define FLEXML_yylineno
3922 #ifndef FLEXML_BUFFERSTACKSIZE
3923 #define FLEXML_BUFFERSTACKSIZE 1000000
3924 #endif
3925 #define FLEXML_NEED_BUFFERLIT
3926
3927 /* XML processor api. */
3928 /* FleXML-provided data. */
3929 int surfxml_pcdata_ix;
3930 extern char *surfxml_bufferstack;
3931 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
3932 AT_surfxml_mount_name AX_surfxml_mount_name;
3933 #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
3934 short int surfxml_mount_name_isset;
3935 AT_surfxml_random_generator AX_surfxml_random_generator;
3936 #define A_surfxml_random_generator AX_surfxml_random_generator
3937 short int surfxml_random_generator_isset;
3938 AT_surfxml_ASroute_gw_dst AX_surfxml_ASroute_gw_dst;
3939 #define A_surfxml_ASroute_gw_dst (surfxml_bufferstack + AX_surfxml_ASroute_gw_dst)
3940 short int surfxml_ASroute_gw_dst_isset;
3941 AT_surfxml_trace_connect_element AX_surfxml_trace_connect_element;
3942 #define A_surfxml_trace_connect_element (surfxml_bufferstack + AX_surfxml_trace_connect_element)
3943 short int surfxml_trace_connect_element_isset;
3944 AT_surfxml_prop_id AX_surfxml_prop_id;
3945 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
3946 short int surfxml_prop_id_isset;
3947 AT_surfxml_host_id AX_surfxml_host_id;
3948 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
3949 short int surfxml_host_id_isset;
3950 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
3951 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
3952 short int surfxml_ASroute_symmetrical_isset;
3953 AT_surfxml_peer_lat AX_surfxml_peer_lat;
3954 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
3955 short int surfxml_peer_lat_isset;
3956 AT_surfxml_process_on_failure AX_surfxml_process_on_failure;
3957 #define A_surfxml_process_on_failure AX_surfxml_process_on_failure
3958 short int surfxml_process_on_failure_isset;
3959 AT_surfxml_link_latency_file AX_surfxml_link_latency_file;
3960 #define A_surfxml_link_latency_file (surfxml_bufferstack + AX_surfxml_link_latency_file)
3961 short int surfxml_link_latency_file_isset;
3962 AT_surfxml_peer_availability_file AX_surfxml_peer_availability_file;
3963 #define A_surfxml_peer_availability_file (surfxml_bufferstack + AX_surfxml_peer_availability_file)
3964 short int surfxml_peer_availability_file_isset;
3965 AT_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction;
3966 #define A_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction
3967 short int surfxml_link_ctn_direction_isset;
3968 AT_surfxml_host_state AX_surfxml_host_state;
3969 #define A_surfxml_host_state AX_surfxml_host_state
3970 short int surfxml_host_state_isset;
3971 AT_surfxml_AS_id AX_surfxml_AS_id;
3972 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
3973 short int surfxml_AS_id_isset;
3974 AT_surfxml_host_power AX_surfxml_host_power;
3975 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
3976 short int surfxml_host_power_isset;
3977 AT_surfxml_router_id AX_surfxml_router_id;
3978 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
3979 short int surfxml_router_id_isset;
3980 AT_surfxml_storage_type_id AX_surfxml_storage_type_id;
3981 #define A_surfxml_storage_type_id (surfxml_bufferstack + AX_surfxml_storage_type_id)
3982 short int surfxml_storage_type_id_isset;
3983 AT_surfxml_process_start_time AX_surfxml_process_start_time;
3984 #define A_surfxml_process_start_time (surfxml_bufferstack + AX_surfxml_process_start_time)
3985 short int surfxml_process_start_time_isset;
3986 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
3987 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
3988 short int surfxml_cluster_suffix_isset;
3989 AT_surfxml_bypassASroute_dst AX_surfxml_bypassASroute_dst;
3990 #define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
3991 short int surfxml_bypassASroute_dst_isset;
3992 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
3993 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
3994 short int surfxml_ASroute_src_isset;
3995 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
3996 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
3997 short int surfxml_cluster_prefix_isset;
3998 AT_surfxml_trace_file AX_surfxml_trace_file;
3999 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
4000 short int surfxml_trace_file_isset;
4001 AT_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy;
4002 #define A_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy
4003 short int surfxml_link_sharing_policy_isset;
4004 AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
4005 #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
4006 short int surfxml_storage_typeId_isset;
4007 AT_surfxml_random_min AX_surfxml_random_min;
4008 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
4009 short int surfxml_random_min_isset;
4010 AT_surfxml_link_ctn_id AX_surfxml_link_ctn_id;
4011 #define A_surfxml_link_ctn_id (surfxml_bufferstack + AX_surfxml_link_ctn_id)
4012 short int surfxml_link_ctn_id_isset;
4013 AT_surfxml_peer_bw_out AX_surfxml_peer_bw_out;
4014 #define A_surfxml_peer_bw_out (surfxml_bufferstack + AX_surfxml_peer_bw_out)
4015 short int surfxml_peer_bw_out_isset;
4016 AT_surfxml_cluster_availability_file AX_surfxml_cluster_availability_file;
4017 #define A_surfxml_cluster_availability_file (surfxml_bufferstack + AX_surfxml_cluster_availability_file)
4018 short int surfxml_cluster_availability_file_isset;
4019 AT_surfxml_storage_content AX_surfxml_storage_content;
4020 #define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
4021 short int surfxml_storage_content_isset;
4022 AT_surfxml_process_kill_time AX_surfxml_process_kill_time;
4023 #define A_surfxml_process_kill_time (surfxml_bufferstack + AX_surfxml_process_kill_time)
4024 short int surfxml_process_kill_time_isset;
4025 AT_surfxml_cluster_bb_bw AX_surfxml_cluster_bb_bw;
4026 #define A_surfxml_cluster_bb_bw (surfxml_bufferstack + AX_surfxml_cluster_bb_bw)
4027 short int surfxml_cluster_bb_bw_isset;
4028 AT_surfxml_argument_value AX_surfxml_argument_value;
4029 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
4030 short int surfxml_argument_value_isset;
4031 AT_surfxml_link_state AX_surfxml_link_state;
4032 #define A_surfxml_link_state AX_surfxml_link_state
4033 short int surfxml_link_state_isset;
4034 AT_surfxml_ASroute_gw_src AX_surfxml_ASroute_gw_src;
4035 #define A_surfxml_ASroute_gw_src (surfxml_bufferstack + AX_surfxml_ASroute_gw_src)
4036 short int surfxml_ASroute_gw_src_isset;
4037 AT_surfxml_AS_routing AX_surfxml_AS_routing;
4038 #define A_surfxml_AS_routing AX_surfxml_AS_routing
4039 short int surfxml_AS_routing_isset;
4040 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
4041 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
4042 short int surfxml_link_bandwidth_isset;
4043 AT_surfxml_cluster_id AX_surfxml_cluster_id;
4044 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
4045 short int surfxml_cluster_id_isset;
4046 AT_surfxml_peer_bw_in AX_surfxml_peer_bw_in;
4047 #define A_surfxml_peer_bw_in (surfxml_bufferstack + AX_surfxml_peer_bw_in)
4048 short int surfxml_peer_bw_in_isset;
4049 AT_surfxml_random_mean AX_surfxml_random_mean;
4050 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
4051 short int surfxml_random_mean_isset;
4052 AT_surfxml_storage_type_size AX_surfxml_storage_type_size;
4053 #define A_surfxml_storage_type_size (surfxml_bufferstack + AX_surfxml_storage_type_size)
4054 short int surfxml_storage_type_size_isset;
4055 AT_surfxml_cluster_bb_lat AX_surfxml_cluster_bb_lat;
4056 #define A_surfxml_cluster_bb_lat (surfxml_bufferstack + AX_surfxml_cluster_bb_lat)
4057 short int surfxml_cluster_bb_lat_isset;
4058 AT_surfxml_link_latency AX_surfxml_link_latency;
4059 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
4060 short int surfxml_link_latency_isset;
4061 AT_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind;
4062 #define A_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind
4063 short int surfxml_trace_connect_kind_isset;
4064 AT_surfxml_random_seed AX_surfxml_random_seed;
4065 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
4066 short int surfxml_random_seed_isset;
4067 AT_surfxml_cluster_state_file AX_surfxml_cluster_state_file;
4068 #define A_surfxml_cluster_state_file (surfxml_bufferstack + AX_surfxml_cluster_state_file)
4069 short int surfxml_cluster_state_file_isset;
4070 AT_surfxml_link_bandwidth_file AX_surfxml_link_bandwidth_file;
4071 #define A_surfxml_link_bandwidth_file (surfxml_bufferstack + AX_surfxml_link_bandwidth_file)
4072 short int surfxml_link_bandwidth_file_isset;
4073 AT_surfxml_storage_type_content AX_surfxml_storage_type_content;
4074 #define A_surfxml_storage_type_content (surfxml_bufferstack + AX_surfxml_storage_type_content)
4075 short int surfxml_storage_type_content_isset;
4076 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
4077 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
4078 short int surfxml_route_symmetrical_isset;
4079 AT_surfxml_random_id AX_surfxml_random_id;
4080 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
4081 short int surfxml_random_id_isset;
4082 AT_surfxml_mstorage_name AX_surfxml_mstorage_name;
4083 #define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name)
4084 short int surfxml_mstorage_name_isset;
4085 AT_surfxml_random_max AX_surfxml_random_max;
4086 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
4087 short int surfxml_random_max_isset;
4088 AT_surfxml_link_id AX_surfxml_link_id;
4089 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
4090 short int surfxml_link_id_isset;
4091 AT_surfxml_process_host AX_surfxml_process_host;
4092 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
4093 short int surfxml_process_host_isset;
4094 AT_surfxml_host_availability_file AX_surfxml_host_availability_file;
4095 #define A_surfxml_host_availability_file (surfxml_bufferstack + AX_surfxml_host_availability_file)
4096 short int surfxml_host_availability_file_isset;
4097 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
4098 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
4099 short int surfxml_cluster_lat_isset;
4100 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
4101 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
4102 short int surfxml_trace_periodicity_isset;
4103 AT_surfxml_cluster_bb_sharing_policy AX_surfxml_cluster_bb_sharing_policy;
4104 #define A_surfxml_cluster_bb_sharing_policy AX_surfxml_cluster_bb_sharing_policy
4105 short int surfxml_cluster_bb_sharing_policy_isset;
4106 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
4107 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
4108 short int surfxml_router_coordinates_isset;
4109 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
4110 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
4111 short int surfxml_peer_coordinates_isset;
4112 AT_surfxml_peer_state_file AX_surfxml_peer_state_file;
4113 #define A_surfxml_peer_state_file (surfxml_bufferstack + AX_surfxml_peer_state_file)
4114 short int surfxml_peer_state_file_isset;
4115 AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src;
4116 #define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
4117 short int surfxml_bypassASroute_src_isset;
4118 AT_surfxml_prop_value AX_surfxml_prop_value;
4119 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
4120 short int surfxml_prop_value_isset;
4121 AT_surfxml_mstorage_typeId AX_surfxml_mstorage_typeId;
4122 #define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId)
4123 short int surfxml_mstorage_typeId_isset;
4124 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
4125 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
4126 short int surfxml_ASroute_dst_isset;
4127 AT_surfxml_link_state_file AX_surfxml_link_state_file;
4128 #define A_surfxml_link_state_file (surfxml_bufferstack + AX_surfxml_link_state_file)
4129 short int surfxml_link_state_file_isset;
4130 AT_surfxml_random_radical AX_surfxml_random_radical;
4131 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
4132 short int surfxml_random_radical_isset;
4133 AT_surfxml_bypassASroute_gw_src AX_surfxml_bypassASroute_gw_src;
4134 #define A_surfxml_bypassASroute_gw_src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw_src)
4135 short int surfxml_bypassASroute_gw_src_isset;
4136 AT_surfxml_trace_connect_trace AX_surfxml_trace_connect_trace;
4137 #define A_surfxml_trace_connect_trace (surfxml_bufferstack + AX_surfxml_trace_connect_trace)
4138 short int surfxml_trace_connect_trace_isset;
4139 AT_surfxml_mount_id AX_surfxml_mount_id;
4140 #define A_surfxml_mount_id (surfxml_bufferstack + AX_surfxml_mount_id)
4141 short int surfxml_mount_id_isset;
4142 AT_surfxml_cluster_power AX_surfxml_cluster_power;
4143 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
4144 short int surfxml_cluster_power_isset;
4145 AT_surfxml_process_function AX_surfxml_process_function;
4146 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
4147 short int surfxml_process_function_isset;
4148 AT_surfxml_peer_id AX_surfxml_peer_id;
4149 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
4150 short int surfxml_peer_id_isset;
4151 AT_surfxml_cluster_router_id AX_surfxml_cluster_router_id;
4152 #define A_surfxml_cluster_router_id (surfxml_bufferstack + AX_surfxml_cluster_router_id)
4153 short int surfxml_cluster_router_id_isset;
4154 AT_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy;
4155 #define A_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy
4156 short int surfxml_cluster_sharing_policy_isset;
4157 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
4158 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
4159 short int surfxml_bypassRoute_dst_isset;
4160 AT_surfxml_host_core AX_surfxml_host_core;
4161 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
4162 short int surfxml_host_core_isset;
4163 AT_surfxml_storage_type_model AX_surfxml_storage_type_model;
4164 #define A_surfxml_storage_type_model (surfxml_bufferstack + AX_surfxml_storage_type_model)
4165 short int surfxml_storage_type_model_isset;
4166 AT_surfxml_host_availability AX_surfxml_host_availability;
4167 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
4168 short int surfxml_host_availability_isset;
4169 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
4170 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
4171 short int surfxml_bypassRoute_src_isset;
4172 AT_surfxml_route_src AX_surfxml_route_src;
4173 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
4174 short int surfxml_route_src_isset;
4175 AT_surfxml_storage_id AX_surfxml_storage_id;
4176 #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
4177 short int surfxml_storage_id_isset;
4178 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
4179 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
4180 short int surfxml_host_coordinates_isset;
4181 AT_surfxml_trace_id AX_surfxml_trace_id;
4182 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
4183 short int surfxml_trace_id_isset;
4184 AT_surfxml_peer_power AX_surfxml_peer_power;
4185 #define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power)
4186 short int surfxml_peer_power_isset;
4187 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
4188 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
4189 short int surfxml_cluster_radical_isset;
4190 AT_surfxml_config_id AX_surfxml_config_id;
4191 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
4192 short int surfxml_config_id_isset;
4193 AT_surfxml_bypassASroute_gw_dst AX_surfxml_bypassASroute_gw_dst;
4194 #define A_surfxml_bypassASroute_gw_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw_dst)
4195 short int surfxml_bypassASroute_gw_dst_isset;
4196 AT_surfxml_include_file AX_surfxml_include_file;
4197 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
4198 short int surfxml_include_file_isset;
4199 AT_surfxml_random_std_deviation AX_surfxml_random_std_deviation;
4200 #define A_surfxml_random_std_deviation (surfxml_bufferstack + AX_surfxml_random_std_deviation)
4201 short int surfxml_random_std_deviation_isset;
4202 AT_surfxml_cluster_core AX_surfxml_cluster_core;
4203 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
4204 short int surfxml_cluster_core_isset;
4205 AT_surfxml_host_state_file AX_surfxml_host_state_file;
4206 #define A_surfxml_host_state_file (surfxml_bufferstack + AX_surfxml_host_state_file)
4207 short int surfxml_host_state_file_isset;
4208 AT_surfxml_route_dst AX_surfxml_route_dst;
4209 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
4210 short int surfxml_route_dst_isset;
4211 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
4212 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
4213 short int surfxml_cluster_bw_isset;
4214 AT_surfxml_platform_version AX_surfxml_platform_version;
4215 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
4216 short int surfxml_platform_version_isset;
4217
4218 /* XML state. */
4219 #ifdef FLEX_DEBUG
4220 # define ENTER(state)   debug_enter(state,#state)
4221 # define LEAVE          debug_leave()
4222 # define SET(state)     debug_set(state,#state)
4223   static void debug_enter(int, const char*);
4224   static void debug_leave(void);
4225   static void debug_set(int, const char*);
4226 #else
4227 # define ENTER(state)   (yy_push_state(state))
4228 # define LEAVE          (yy_pop_state())
4229 # define SET(state)     BEGIN(state)
4230 #endif
4231
4232 /* Generic actions. */
4233 #define SKIP    /*skip*/
4234 #define SUCCEED        CLEANUP; return 0
4235
4236 #define FAIL    return fail
4237 static int fail(const char*, ...);
4238
4239 enum {flexml_max_err_msg_size = 512};
4240 static char flexml_err_msg[flexml_max_err_msg_size];
4241 const char * surfxml_parse_err_msg()
4242 {
4243     return flexml_err_msg;
4244 }
4245 static void reset_surfxml_parse_err_msg()
4246 {
4247     flexml_err_msg[0] = '\0';
4248 }
4249
4250 /* Cleanup */
4251 static void cleanup(void);
4252 #define CLEANUP  cleanup()
4253
4254 /* Text buffer stack handling. */
4255 char *surfxml_bufferstack = NULL;
4256 static int blimit = FLEXML_BUFFERSTACKSIZE;
4257 static int bnext = 1;
4258
4259 static int *indexstack = NULL;
4260 static int ilimit = FLEXML_INDEXSTACKSIZE;
4261 static int inext = 1;
4262
4263 #define BUFFERSET(P)  (P = bnext)
4264 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
4265 #define BUFFERDONE    (BUFFERPUTC('\0'))
4266
4267 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
4268
4269 /* after this is called, there are at least 2 slots left in the stack */
4270 static int ck_blimit()
4271 {
4272      if (bnext >= blimit) {
4273          blimit += FLEXML_BUFFERSTACKSIZE + 2;
4274          {
4275              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
4276              assert(temp);
4277              surfxml_bufferstack = temp;
4278          }
4279      }
4280      return 0;
4281 }
4282
4283 /* after this is called, there are at least 2 slots left in the stack */
4284 static int ck_ilimit()
4285 {
4286      if (inext >= ilimit) {
4287          ilimit += FLEXML_INDEXSTACKSIZE + 2;
4288          {
4289              int *temp = (int *) realloc(indexstack, ilimit);
4290              assert(temp);
4291              indexstack = temp;
4292          }
4293      }
4294      return 0;
4295 }
4296
4297 #ifdef FLEXML_NEED_BUFFERLIT
4298 static void surfxml_bufferliteral(char c, int* pp, const char* text)
4299 {
4300   const char *s = (c ? strchr(text,c) : text-1), *e = strrchr(text,c);
4301   assert(s <= e); BUFFERSET(*pp);
4302   while (++s<e) {
4303     if (isspace(*s) && c) { BUFFERPUTC(' '); while (isspace(*s)) ++s; }
4304     else BUFFERPUTC(*s);
4305   }
4306   BUFFERDONE;
4307 }
4308 #endif
4309
4310 static void pushbuffer(int p)
4311 {
4312     ck_ilimit();
4313     indexstack[inext++] = p;
4314     indexstack[inext++] = bnext;    
4315 }
4316
4317 static int popbuffer(void)
4318 {
4319     assert(inext >= 2);
4320     bnext = indexstack[--inext];
4321     return indexstack[--inext];
4322 }
4323
4324 /* General internal entities are `unput' back onto the input stream... */
4325 #define ENTITYTEXT(T) \
4326   { char *s = (T), *e = s+strlen(s);\
4327     while (--e >= s) { unput(*e); }}
4328
4329 /* Flex standard options. */
4330 #define YY_NO_INPUT 1
4331 /* Flex user-requested options. */
4332 /* XML character classes (currently restricted to ASCII). */
4333 /* "Common syntactic structures." */
4334 /* "Names and Tokens." */
4335 /* Miscellaneous. */
4336 /* Parser states (flex `exclusive start conditions'):
4337  *
4338  * PROLOG       the XML prolog of the document before <?xml...>
4339  * DOCTYPE      the XML prolog of the document after <?xml...>
4340  * EPILOG       after the root element
4341  * INCOMMENT    inside an XML comment <!--....-->
4342  * INPI         inside an XML PI <?...?>
4343  * VALUE1       inside a '...'-delimited literal
4344  * VALUE2       inside a "..."-delimited literal
4345  * CDATA        inside a <![CDATA[...] ]> section.
4346  * ROOT_<tag>   expect root element <tag>
4347  * AL_<tag>     inside the attribute list for <tag>
4348  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
4349  * IMPOSSIBLE   dummy to permit disabling rules; must be last
4350  */
4351
4352 /* State names. */
4353 const char* *surfxml_statenames=NULL;
4354
4355 #define INITIAL 0
4356 #define PROLOG 1
4357 #define DOCTYPE 2
4358 #define EPILOG 3
4359 #define INCOMMENT 4
4360 #define INPI 5
4361 #define VALUE1 6
4362 #define VALUE2 7
4363 #define CDATA 8
4364 #define ROOT_surfxml_platform 9
4365 #define AL_surfxml_platform 10
4366 #define S_surfxml_platform 11
4367 #define S_surfxml_platform_1 12
4368 #define S_surfxml_platform_2 13
4369 #define S_surfxml_platform_3 14
4370 #define S_surfxml_platform_4 15
4371 #define S_surfxml_platform_5 16
4372 #define S_surfxml_platform_6 17
4373 #define S_surfxml_platform_7 18
4374 #define S_surfxml_platform_8 19
4375 #define E_surfxml_platform 20
4376 #define AL_surfxml_include 21
4377 #define S_surfxml_include 22
4378 #define S_surfxml_include_1 23
4379 #define S_surfxml_include_2 24
4380 #define E_surfxml_include 25
4381 #define AL_surfxml_trace 26
4382 #define IN_trace 27
4383 #define AL_surfxml_random 28
4384 #define S_surfxml_random 29
4385 #define S_surfxml_random_1 30
4386 #define S_surfxml_random_2 31
4387 #define E_surfxml_random 32
4388 #define AL_surfxml_trace_connect 33
4389 #define E_surfxml_trace_connect 34
4390 #define AL_surfxml_AS 35
4391 #define S_surfxml_AS 36
4392 #define S_surfxml_AS_1 37
4393 #define S_surfxml_AS_2 38
4394 #define S_surfxml_AS_3 39
4395 #define S_surfxml_AS_4 40
4396 #define S_surfxml_AS_5 41
4397 #define S_surfxml_AS_6 42
4398 #define S_surfxml_AS_7 43
4399 #define S_surfxml_AS_8 44
4400 #define S_surfxml_AS_9 45
4401 #define S_surfxml_AS_10 46
4402 #define S_surfxml_AS_11 47
4403 #define S_surfxml_AS_12 48
4404 #define S_surfxml_AS_13 49
4405 #define E_surfxml_AS 50
4406 #define AL_surfxml_storage_type 51
4407 #define S_surfxml_storage_type 52
4408 #define S_surfxml_storage_type_1 53
4409 #define S_surfxml_storage_type_2 54
4410 #define E_surfxml_storage_type 55
4411 #define AL_surfxml_storage 56
4412 #define S_surfxml_storage 57
4413 #define S_surfxml_storage_1 58
4414 #define S_surfxml_storage_2 59
4415 #define E_surfxml_storage 60
4416 #define AL_surfxml_mount 61
4417 #define E_surfxml_mount 62
4418 #define AL_surfxml_mstorage 63
4419 #define E_surfxml_mstorage 64
4420 #define AL_surfxml_host 65
4421 #define S_surfxml_host 66
4422 #define S_surfxml_host_1 67
4423 #define S_surfxml_host_2 68
4424 #define E_surfxml_host 69
4425 #define AL_surfxml_cluster 70
4426 #define E_surfxml_cluster 71
4427 #define AL_surfxml_peer 72
4428 #define E_surfxml_peer 73
4429 #define AL_surfxml_router 74
4430 #define E_surfxml_router 75
4431 #define AL_surfxml_link 76
4432 #define S_surfxml_link 77
4433 #define S_surfxml_link_1 78
4434 #define S_surfxml_link_2 79
4435 #define E_surfxml_link 80
4436 #define AL_surfxml_route 81
4437 #define S_surfxml_route 82
4438 #define S_surfxml_route_1 83
4439 #define S_surfxml_route_2 84
4440 #define E_surfxml_route 85
4441 #define AL_surfxml_ASroute 86
4442 #define S_surfxml_ASroute 87
4443 #define S_surfxml_ASroute_1 88
4444 #define S_surfxml_ASroute_2 89
4445 #define E_surfxml_ASroute 90
4446 #define AL_surfxml_link_ctn 91
4447 #define E_surfxml_link_ctn 92
4448 #define AL_surfxml_bypassRoute 93
4449 #define S_surfxml_bypassRoute 94
4450 #define S_surfxml_bypassRoute_1 95
4451 #define S_surfxml_bypassRoute_2 96
4452 #define E_surfxml_bypassRoute 97
4453 #define AL_surfxml_bypassASroute 98
4454 #define S_surfxml_bypassASroute 99
4455 #define S_surfxml_bypassASroute_1 100
4456 #define S_surfxml_bypassASroute_2 101
4457 #define E_surfxml_bypassASroute 102
4458 #define AL_surfxml_process 103
4459 #define S_surfxml_process 104
4460 #define S_surfxml_process_1 105
4461 #define S_surfxml_process_2 106
4462 #define E_surfxml_process 107
4463 #define AL_surfxml_argument 108
4464 #define E_surfxml_argument 109
4465 #define AL_surfxml_config 110
4466 #define S_surfxml_config 111
4467 #define S_surfxml_config_1 112
4468 #define S_surfxml_config_2 113
4469 #define E_surfxml_config 114
4470 #define AL_surfxml_prop 115
4471 #define E_surfxml_prop 116
4472 #define IMPOSSIBLE 117
4473
4474 #ifndef YY_NO_UNISTD_H
4475 /* Special case for "unistd.h", since it is non-ANSI. We include it way
4476  * down here because we want the user's section 1 to have been scanned first.
4477  * The user has a chance to override it with an option.
4478  */
4479 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
4480 #  ifndef __STRICT_ANSI__
4481 #    include <io.h>
4482 #    include <process.h>
4483 #  endif
4484 #else
4485 #  include <unistd.h>
4486 #endif
4487 #endif
4488
4489 #ifndef YY_EXTRA_TYPE
4490 #define YY_EXTRA_TYPE void *
4491 #endif
4492
4493 static int yy_init_globals (void );
4494
4495 /* Accessor methods to globals.
4496    These are made visible to non-reentrant scanners for convenience. */
4497
4498 int surf_parse_lex_destroy (void );
4499
4500 int surf_parse_get_debug (void );
4501
4502 void surf_parse_set_debug (int debug_flag  );
4503
4504 YY_EXTRA_TYPE surf_parse_get_extra (void );
4505
4506 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined  );
4507
4508 FILE *surf_parse_get_in (void );
4509
4510 void surf_parse_set_in  (FILE * in_str  );
4511
4512 FILE *surf_parse_get_out (void );
4513
4514 void surf_parse_set_out  (FILE * out_str  );
4515
4516 int surf_parse_get_leng (void );
4517
4518 char *surf_parse_get_text (void );
4519
4520 int surf_parse_get_lineno (void );
4521
4522 void surf_parse_set_lineno (int line_number  );
4523
4524 /* Macros after this point can all be overridden by user definitions in
4525  * section 1.
4526  */
4527
4528 #ifndef YY_SKIP_YYWRAP
4529 #ifdef __cplusplus
4530 extern "C" int surf_parse_wrap (void );
4531 #else
4532 extern int surf_parse_wrap (void );
4533 #endif
4534 #endif
4535
4536 #ifndef yytext_ptr
4537 static void yy_flex_strncpy (char *,yyconst char *,int );
4538 #endif
4539
4540 #ifdef YY_NEED_STRLEN
4541 static int yy_flex_strlen (yyconst char * );
4542 #endif
4543
4544 #ifndef YY_NO_INPUT
4545
4546 #ifdef __cplusplus
4547 static int yyinput (void );
4548 #else
4549 static int input (void );
4550 #endif
4551
4552 #endif
4553
4554         static int yy_start_stack_ptr = 0;
4555         static int yy_start_stack_depth = 0;
4556         static int *yy_start_stack = NULL;
4557     
4558     static void yy_push_state (int new_state );
4559     
4560     static void yy_pop_state (void );
4561     
4562 /* Amount of stuff to slurp up with each read. */
4563 #ifndef YY_READ_BUF_SIZE
4564 #ifdef __ia64__
4565 /* On IA-64, the buffer size is 16k, not 8k */
4566 #define YY_READ_BUF_SIZE 16384
4567 #else
4568 #define YY_READ_BUF_SIZE 8192
4569 #endif /* __ia64__ */
4570 #endif
4571
4572 /* Copy whatever the last rule matched to the standard output. */
4573 #ifndef ECHO
4574 /* This used to be an fputs(), but since the string might contain NUL's,
4575  * we now use fwrite().
4576  */
4577 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
4578 #endif
4579
4580 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
4581  * is returned in "result".
4582  */
4583 #ifndef YY_INPUT
4584 #define YY_INPUT(buf,result,max_size) \
4585         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
4586                 { \
4587                 int c = '*'; \
4588                 size_t n; \
4589                 for ( n = 0; n < max_size && \
4590                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
4591                         buf[n] = (char) c; \
4592                 if ( c == '\n' ) \
4593                         buf[n++] = (char) c; \
4594                 if ( c == EOF && ferror( surf_parse_in ) ) \
4595                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
4596                 result = n; \
4597                 } \
4598         else \
4599                 { \
4600                 errno=0; \
4601                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
4602                         { \
4603                         if( errno != EINTR) \
4604                                 { \
4605                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
4606                                 break; \
4607                                 } \
4608                         errno=0; \
4609                         clearerr(surf_parse_in); \
4610                         } \
4611                 }\
4612 \
4613
4614 #endif
4615
4616 /* No semi-colon after return; correct usage is to write "yyterminate();" -
4617  * we don't want an extra ';' after the "return" because that will cause
4618  * some compilers to complain about unreachable statements.
4619  */
4620 #ifndef yyterminate
4621 #define yyterminate() return YY_NULL
4622 #endif
4623
4624 /* Number of entries by which start-condition stack grows. */
4625 #ifndef YY_START_STACK_INCR
4626 #define YY_START_STACK_INCR 25
4627 #endif
4628
4629 /* Report a fatal error. */
4630 #ifndef YY_FATAL_ERROR
4631 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
4632 #endif
4633
4634 /* end tables serialization structures and prototypes */
4635
4636 /* Default declaration of generated scanner - a define so the user can
4637  * easily add parameters.
4638  */
4639 #ifndef YY_DECL
4640 #define YY_DECL_IS_OURS 1
4641
4642 extern int surf_parse_lex (void);
4643
4644 #define YY_DECL int surf_parse_lex (void)
4645 #endif /* !YY_DECL */
4646
4647 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
4648  * have been set up.
4649  */
4650 #ifndef YY_USER_ACTION
4651 #define YY_USER_ACTION
4652 #endif
4653
4654 /* Code executed at the end of each rule. */
4655 #ifndef YY_BREAK
4656 #define YY_BREAK break;
4657 #endif
4658
4659 #define YY_RULE_SETUP \
4660         YY_USER_ACTION
4661
4662 /** The main scanner function which does all the work.
4663  */
4664 YY_DECL
4665 {
4666         register yy_state_type yy_current_state;
4667         register char *yy_cp, *yy_bp;
4668         register int yy_act;
4669     
4670  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
4671  SET(PROLOG);
4672  reset_surfxml_parse_err_msg();
4673  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
4674  assert(surfxml_bufferstack);
4675  #ifdef FLEX_DEBUG
4676  {
4677      int i;
4678      for (i = 0; i < blimit; i++) {
4679          surfxml_bufferstack[i] = '\377';
4680      }
4681  }
4682  #endif
4683  surfxml_bufferstack[0] = '\0';
4684  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
4685  assert(indexstack);
4686  indexstack[0] = 0;
4687
4688   /* FleXML_init */
4689   bnext = inext = 1;
4690   surfxml_bufferliteral('\0', &bnext, "0.0");
4691   surfxml_bufferliteral('\0', &bnext, "2147483647");
4692   surfxml_bufferliteral('\0', &bnext, "1");
4693   surfxml_bufferliteral('\0', &bnext, "1.0");
4694   surfxml_bufferliteral('\0', &bnext, "1");
4695   surfxml_bufferliteral('\0', &bnext, "0.0");
4696   surfxml_bufferliteral('\0', &bnext, "-1.0");
4697   surfxml_bufferliteral('\0', &bnext, "-1.0");
4698   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
4699   surfxml_statenames[PROLOG] = NULL;
4700   surfxml_statenames[DOCTYPE] = NULL;
4701   surfxml_statenames[EPILOG] = NULL;
4702   surfxml_statenames[INCOMMENT] = NULL;
4703   surfxml_statenames[INPI] = NULL;
4704   surfxml_statenames[VALUE1] = NULL;
4705   surfxml_statenames[VALUE2] = NULL;
4706   surfxml_statenames[CDATA] = NULL;
4707   surfxml_statenames[ROOT_surfxml_platform] = NULL;
4708   surfxml_statenames[AL_surfxml_platform] = NULL;
4709   surfxml_statenames[S_surfxml_platform] = "platform";
4710   surfxml_statenames[S_surfxml_platform_1] = "platform";
4711   surfxml_statenames[S_surfxml_platform_2] = "platform";
4712   surfxml_statenames[S_surfxml_platform_3] = "platform";
4713   surfxml_statenames[S_surfxml_platform_4] = "platform";
4714   surfxml_statenames[S_surfxml_platform_5] = "platform";
4715   surfxml_statenames[S_surfxml_platform_6] = "platform";
4716   surfxml_statenames[S_surfxml_platform_7] = "platform";
4717   surfxml_statenames[S_surfxml_platform_8] = "platform";
4718   surfxml_statenames[E_surfxml_platform] = "platform";
4719   surfxml_statenames[AL_surfxml_include] = NULL;
4720   surfxml_statenames[S_surfxml_include] = "include";
4721   surfxml_statenames[S_surfxml_include_1] = "include";
4722   surfxml_statenames[S_surfxml_include_2] = "include";
4723   surfxml_statenames[E_surfxml_include] = "include";
4724   surfxml_statenames[AL_surfxml_trace] = NULL;
4725   surfxml_statenames[IN_trace] = "trace";
4726   surfxml_statenames[AL_surfxml_random] = NULL;
4727   surfxml_statenames[S_surfxml_random] = "random";
4728   surfxml_statenames[S_surfxml_random_1] = "random";
4729   surfxml_statenames[S_surfxml_random_2] = "random";
4730   surfxml_statenames[E_surfxml_random] = "random";
4731   surfxml_statenames[AL_surfxml_trace_connect] = NULL;
4732   surfxml_statenames[E_surfxml_trace_connect] = "trace_connect";
4733   surfxml_statenames[AL_surfxml_AS] = NULL;
4734   surfxml_statenames[S_surfxml_AS] = "AS";
4735   surfxml_statenames[S_surfxml_AS_1] = "AS";
4736   surfxml_statenames[S_surfxml_AS_2] = "AS";
4737   surfxml_statenames[S_surfxml_AS_3] = "AS";
4738   surfxml_statenames[S_surfxml_AS_4] = "AS";
4739   surfxml_statenames[S_surfxml_AS_5] = "AS";
4740   surfxml_statenames[S_surfxml_AS_6] = "AS";
4741   surfxml_statenames[S_surfxml_AS_7] = "AS";
4742   surfxml_statenames[S_surfxml_AS_8] = "AS";
4743   surfxml_statenames[S_surfxml_AS_9] = "AS";
4744   surfxml_statenames[S_surfxml_AS_10] = "AS";
4745   surfxml_statenames[S_surfxml_AS_11] = "AS";
4746   surfxml_statenames[S_surfxml_AS_12] = "AS";
4747   surfxml_statenames[S_surfxml_AS_13] = "AS";
4748   surfxml_statenames[E_surfxml_AS] = "AS";
4749   surfxml_statenames[AL_surfxml_storage_type] = NULL;
4750   surfxml_statenames[S_surfxml_storage_type] = "storage_type";
4751   surfxml_statenames[S_surfxml_storage_type_1] = "storage_type";
4752   surfxml_statenames[S_surfxml_storage_type_2] = "storage_type";
4753   surfxml_statenames[E_surfxml_storage_type] = "storage_type";
4754   surfxml_statenames[AL_surfxml_storage] = NULL;
4755   surfxml_statenames[S_surfxml_storage] = "storage";
4756   surfxml_statenames[S_surfxml_storage_1] = "storage";
4757   surfxml_statenames[S_surfxml_storage_2] = "storage";
4758   surfxml_statenames[E_surfxml_storage] = "storage";
4759   surfxml_statenames[AL_surfxml_mount] = NULL;
4760   surfxml_statenames[E_surfxml_mount] = "mount";
4761   surfxml_statenames[AL_surfxml_mstorage] = NULL;
4762   surfxml_statenames[E_surfxml_mstorage] = "mstorage";
4763   surfxml_statenames[AL_surfxml_host] = NULL;
4764   surfxml_statenames[S_surfxml_host] = "host";
4765   surfxml_statenames[S_surfxml_host_1] = "host";
4766   surfxml_statenames[S_surfxml_host_2] = "host";
4767   surfxml_statenames[E_surfxml_host] = "host";
4768   surfxml_statenames[AL_surfxml_cluster] = NULL;
4769   surfxml_statenames[E_surfxml_cluster] = "cluster";
4770   surfxml_statenames[AL_surfxml_peer] = NULL;
4771   surfxml_statenames[E_surfxml_peer] = "peer";
4772   surfxml_statenames[AL_surfxml_router] = NULL;
4773   surfxml_statenames[E_surfxml_router] = "router";
4774   surfxml_statenames[AL_surfxml_link] = NULL;
4775   surfxml_statenames[S_surfxml_link] = "link";
4776   surfxml_statenames[S_surfxml_link_1] = "link";
4777   surfxml_statenames[S_surfxml_link_2] = "link";
4778   surfxml_statenames[E_surfxml_link] = "link";
4779   surfxml_statenames[AL_surfxml_route] = NULL;
4780   surfxml_statenames[S_surfxml_route] = "route";
4781   surfxml_statenames[S_surfxml_route_1] = "route";
4782   surfxml_statenames[S_surfxml_route_2] = "route";
4783   surfxml_statenames[E_surfxml_route] = "route";
4784   surfxml_statenames[AL_surfxml_ASroute] = NULL;
4785   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
4786   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
4787   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
4788   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
4789   surfxml_statenames[AL_surfxml_link_ctn] = NULL;
4790   surfxml_statenames[E_surfxml_link_ctn] = "link_ctn";
4791   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
4792   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
4793   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
4794   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
4795   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
4796   surfxml_statenames[AL_surfxml_bypassASroute] = NULL;
4797   surfxml_statenames[S_surfxml_bypassASroute] = "bypassASroute";
4798   surfxml_statenames[S_surfxml_bypassASroute_1] = "bypassASroute";
4799   surfxml_statenames[S_surfxml_bypassASroute_2] = "bypassASroute";
4800   surfxml_statenames[E_surfxml_bypassASroute] = "bypassASroute";
4801   surfxml_statenames[AL_surfxml_process] = NULL;
4802   surfxml_statenames[S_surfxml_process] = "process";
4803   surfxml_statenames[S_surfxml_process_1] = "process";
4804   surfxml_statenames[S_surfxml_process_2] = "process";
4805   surfxml_statenames[E_surfxml_process] = "process";
4806   surfxml_statenames[AL_surfxml_argument] = NULL;
4807   surfxml_statenames[E_surfxml_argument] = "argument";
4808   surfxml_statenames[AL_surfxml_config] = NULL;
4809   surfxml_statenames[S_surfxml_config] = "config";
4810   surfxml_statenames[S_surfxml_config_1] = "config";
4811   surfxml_statenames[S_surfxml_config_2] = "config";
4812   surfxml_statenames[E_surfxml_config] = "config";
4813   surfxml_statenames[AL_surfxml_prop] = NULL;
4814   surfxml_statenames[E_surfxml_prop] = "prop";
4815   }
4816
4817  /* COMMENTS and PIs: handled uniformly for efficiency. */
4818
4819         if ( !(yy_init) )
4820                 {
4821                 (yy_init) = 1;
4822
4823 #ifdef YY_USER_INIT
4824                 YY_USER_INIT;
4825 #endif
4826
4827                 if ( ! (yy_start) )
4828                         (yy_start) = 1; /* first start state */
4829
4830                 if ( ! surf_parse_in )
4831                         surf_parse_in = stdin;
4832
4833                 if ( ! surf_parse_out )
4834                         surf_parse_out = stdout;
4835
4836                 if ( ! YY_CURRENT_BUFFER ) {
4837                         surf_parse_ensure_buffer_stack ();
4838                         YY_CURRENT_BUFFER_LVALUE =
4839                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
4840                 }
4841
4842                 surf_parse__load_buffer_state( );
4843                 }
4844
4845         while ( 1 )             /* loops until end-of-file is reached */
4846                 {
4847                 yy_cp = (yy_c_buf_p);
4848
4849                 /* Support of surf_parse_text. */
4850                 *yy_cp = (yy_hold_char);
4851
4852                 /* yy_bp points to the position in yy_ch_buf of the start of
4853                  * the current run.
4854                  */
4855                 yy_bp = yy_cp;
4856
4857                 yy_current_state = (yy_start);
4858 yy_match:
4859                 do
4860                         {
4861                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
4862                         if ( yy_accept[yy_current_state] )
4863                                 {
4864                                 (yy_last_accepting_state) = yy_current_state;
4865                                 (yy_last_accepting_cpos) = yy_cp;
4866                                 }
4867                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4868                                 {
4869                                 yy_current_state = (int) yy_def[yy_current_state];
4870                                 if ( yy_current_state >= 2960 )
4871                                         yy_c = yy_meta[(unsigned int) yy_c];
4872                                 }
4873                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
4874                         ++yy_cp;
4875                         }
4876                 while ( yy_base[yy_current_state] != 10209 );
4877
4878 yy_find_action:
4879                 yy_act = yy_accept[yy_current_state];
4880                 if ( yy_act == 0 )
4881                         { /* have to back up */
4882                         yy_cp = (yy_last_accepting_cpos);
4883                         yy_current_state = (yy_last_accepting_state);
4884                         yy_act = yy_accept[yy_current_state];
4885                         }
4886
4887                 YY_DO_BEFORE_ACTION;
4888
4889                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
4890                         {
4891                         int yyl;
4892                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
4893                                 if ( surf_parse_text[yyl] == '\n' )
4894                                            
4895     surf_parse_lineno++;
4896 ;
4897                         }
4898
4899 do_action:      /* This label is used only to access EOF actions. */
4900
4901                 switch ( yy_act )
4902         { /* beginning of action switch */
4903                         case 0: /* must back up */
4904                         /* undo the effects of YY_DO_BEFORE_ACTION */
4905                         *yy_cp = (yy_hold_char);
4906                         yy_cp = (yy_last_accepting_cpos);
4907                         yy_current_state = (yy_last_accepting_state);
4908                         goto yy_find_action;
4909
4910 case 1:
4911 YY_RULE_SETUP
4912 ENTER(INCOMMENT);
4913         YY_BREAK
4914 case 2:
4915 YY_RULE_SETUP
4916 ENTER(INPI);
4917         YY_BREAK
4918
4919 case 3:
4920 YY_RULE_SETUP
4921 LEAVE;
4922         YY_BREAK
4923 case 4:
4924 case 5:
4925 case 6:
4926 /* rule 6 can match eol */
4927 YY_RULE_SETUP
4928 SKIP;
4929         YY_BREAK
4930 case YY_STATE_EOF(INCOMMENT):
4931 FAIL("EOF in comment.");
4932         YY_BREAK
4933
4934 case 7:
4935 YY_RULE_SETUP
4936 LEAVE;
4937         YY_BREAK
4938 case 8:
4939 case 9:
4940 /* rule 9 can match eol */
4941 YY_RULE_SETUP
4942 SKIP;
4943         YY_BREAK
4944 case YY_STATE_EOF(INPI):
4945 FAIL("EOF in PI (processing instruction).");
4946         YY_BREAK
4947
4948 /* SPACES: skipped uniformly */
4949 case 10:
4950 /* rule 10 can match eol */
4951 YY_RULE_SETUP
4952 SKIP;
4953         YY_BREAK
4954 /* PROLOG: determine root element and process it. */
4955
4956 case 11:
4957 /* rule 11 can match eol */
4958 YY_RULE_SETUP
4959 SET(DOCTYPE); 
4960         YY_BREAK
4961 case 12:
4962 /* rule 12 can match eol */
4963 YY_RULE_SETUP
4964 FAIL("Bad declaration %s.",surf_parse_text);
4965         YY_BREAK
4966
4967 case 13:
4968 /* rule 13 can match eol */
4969 YY_RULE_SETUP
4970 SET(ROOT_surfxml_platform);
4971         YY_BREAK
4972 case 14:
4973 /* rule 14 can match eol */
4974 YY_RULE_SETUP
4975 FAIL("Bad declaration %s.",surf_parse_text);
4976         YY_BREAK
4977 case 15:
4978 YY_RULE_SETUP
4979 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
4980         YY_BREAK
4981 case YY_STATE_EOF(PROLOG):
4982 case YY_STATE_EOF(DOCTYPE):
4983 FAIL("EOF in prolog.");
4984         YY_BREAK
4985
4986 /* RULES DERIVED FROM DTD. */
4987 /* <!-- Small DTD for SURF based tools. -->  */
4988 case 16:
4989 /* rule 16 can match eol */
4990 YY_RULE_SETUP
4991 FAIL("Starting tag <platform> is not allowed here.");
4992         YY_BREAK
4993 case 17:
4994 /* rule 17 can match eol */
4995 YY_RULE_SETUP
4996 {
4997   AX_surfxml_platform_version = 1;
4998   surfxml_platform_version_isset = 0;
4999   ENTER(AL_surfxml_platform); pushbuffer(0);
5000   }
5001         YY_BREAK
5002
5003 case 18:
5004 /* rule 18 can match eol */
5005 YY_RULE_SETUP
5006 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);
5007         YY_BREAK
5008 case 19:
5009 /* rule 19 can match eol */
5010 YY_RULE_SETUP
5011 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);
5012         YY_BREAK
5013 case 20:
5014 YY_RULE_SETUP
5015 {
5016   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
5017  }
5018         YY_BREAK
5019 case 21:
5020 YY_RULE_SETUP
5021 {
5022   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
5023   switch (YY_START) {
5024    case ROOT_surfxml_platform: SET(EPILOG); break;
5025   }
5026  }
5027         YY_BREAK
5028 case 22:
5029 YY_RULE_SETUP
5030 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
5031         YY_BREAK
5032 case 23:
5033 YY_RULE_SETUP
5034 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
5035         YY_BREAK
5036 case YY_STATE_EOF(AL_surfxml_platform):
5037 FAIL("EOF in attribute list of `platform' element.");
5038         YY_BREAK
5039
5040 case 24:
5041 /* rule 24 can match eol */
5042 YY_RULE_SETUP
5043 {
5044   LEAVE;
5045   ETag_surfxml_platform();
5046   popbuffer(); /* attribute */
5047   switch (YY_START) {
5048    case ROOT_surfxml_platform: SET(EPILOG); break;
5049   }
5050  }
5051         YY_BREAK
5052 case 25:
5053 /* rule 25 can match eol */
5054 YY_RULE_SETUP
5055 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
5056         YY_BREAK
5057 case 26:
5058 YY_RULE_SETUP
5059 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
5060         YY_BREAK
5061 case YY_STATE_EOF(S_surfxml_platform_8):
5062 case YY_STATE_EOF(S_surfxml_platform_1):
5063 case YY_STATE_EOF(S_surfxml_platform_3):
5064 case YY_STATE_EOF(S_surfxml_platform):
5065 case YY_STATE_EOF(S_surfxml_platform_4):
5066 case YY_STATE_EOF(S_surfxml_platform_6):
5067 case YY_STATE_EOF(E_surfxml_platform):
5068 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</platform>' expected.");
5069         YY_BREAK
5070
5071 case 27:
5072 /* rule 27 can match eol */
5073 YY_RULE_SETUP
5074 FAIL("Starting tag <include> is not allowed here.");
5075         YY_BREAK
5076 case 28:
5077 /* rule 28 can match eol */
5078 YY_RULE_SETUP
5079 {
5080   AX_surfxml_include_file = 0;
5081   surfxml_include_file_isset = 0;
5082   ENTER(AL_surfxml_include); pushbuffer(0);
5083   }
5084         YY_BREAK
5085
5086 case 29:
5087 /* rule 29 can match eol */
5088 YY_RULE_SETUP
5089 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);
5090         YY_BREAK
5091 case 30:
5092 /* rule 30 can match eol */
5093 YY_RULE_SETUP
5094 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);
5095         YY_BREAK
5096 case 31:
5097 YY_RULE_SETUP
5098 {
5099   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5100   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
5101  }
5102         YY_BREAK
5103 case 32:
5104 YY_RULE_SETUP
5105 {
5106   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5107   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
5108   switch (YY_START) {
5109    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5110    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5111    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;
5112    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5113   }
5114  }
5115         YY_BREAK
5116 case 33:
5117 YY_RULE_SETUP
5118 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
5119         YY_BREAK
5120 case 34:
5121 YY_RULE_SETUP
5122 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
5123         YY_BREAK
5124 case YY_STATE_EOF(AL_surfxml_include):
5125 FAIL("EOF in attribute list of `include' element.");
5126         YY_BREAK
5127
5128 case 35:
5129 /* rule 35 can match eol */
5130 YY_RULE_SETUP
5131 {
5132   LEAVE;
5133   ETag_surfxml_include();
5134   popbuffer(); /* attribute */
5135   switch (YY_START) {
5136    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5137    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5138    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;
5139    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5140   }
5141  }
5142         YY_BREAK
5143 case 36:
5144 /* rule 36 can match eol */
5145 YY_RULE_SETUP
5146 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
5147         YY_BREAK
5148 case 37:
5149 YY_RULE_SETUP
5150 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
5151         YY_BREAK
5152 case YY_STATE_EOF(E_surfxml_include):
5153 case YY_STATE_EOF(S_surfxml_include):
5154 case YY_STATE_EOF(S_surfxml_include_2):
5155 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</include>' expected.");
5156         YY_BREAK
5157
5158 case 38:
5159 /* rule 38 can match eol */
5160 YY_RULE_SETUP
5161 FAIL("Starting tag <trace> is not allowed here.");
5162         YY_BREAK
5163 case 39:
5164 /* rule 39 can match eol */
5165 YY_RULE_SETUP
5166 {
5167   AX_surfxml_trace_id = 0;
5168   surfxml_trace_id_isset = 0;
5169   AX_surfxml_trace_file = 0;
5170   surfxml_trace_file_isset = 0;
5171   AX_surfxml_trace_periodicity = 0;
5172   surfxml_trace_periodicity_isset = 0;
5173   ENTER(AL_surfxml_trace); pushbuffer(0);
5174   }
5175         YY_BREAK
5176
5177 case 40:
5178 /* rule 40 can match eol */
5179 YY_RULE_SETUP
5180 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);
5181         YY_BREAK
5182 case 41:
5183 /* rule 41 can match eol */
5184 YY_RULE_SETUP
5185 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);
5186         YY_BREAK
5187 case 42:
5188 /* rule 42 can match eol */
5189 YY_RULE_SETUP
5190 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);
5191         YY_BREAK
5192 case 43:
5193 /* rule 43 can match eol */
5194 YY_RULE_SETUP
5195 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);
5196         YY_BREAK
5197 case 44:
5198 /* rule 44 can match eol */
5199 YY_RULE_SETUP
5200 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);
5201         YY_BREAK
5202 case 45:
5203 /* rule 45 can match eol */
5204 YY_RULE_SETUP
5205 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);
5206         YY_BREAK
5207 case 46:
5208 YY_RULE_SETUP
5209 {
5210   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5211   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5212   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
5213  }
5214         YY_BREAK
5215 case 47:
5216 YY_RULE_SETUP
5217 {
5218   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5219   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5220   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
5221   switch (YY_START) {
5222    case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_6: SET(S_surfxml_AS_8); break;
5223    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5224    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
5225    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
5226    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;
5227    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
5228    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5229   }
5230  }
5231         YY_BREAK
5232 case 48:
5233 YY_RULE_SETUP
5234 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
5235         YY_BREAK
5236 case 49:
5237 YY_RULE_SETUP
5238 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
5239         YY_BREAK
5240 case YY_STATE_EOF(AL_surfxml_trace):
5241 FAIL("EOF in attribute list of `trace' element.");
5242         YY_BREAK
5243
5244 case 50:
5245 /* rule 50 can match eol */
5246 YY_RULE_SETUP
5247 {
5248   LEAVE;
5249   BUFFERDONE;
5250   ETag_surfxml_trace();
5251   surfxml_pcdata_ix = popbuffer();
5252   popbuffer(); /* attribute */
5253   switch (YY_START) {
5254    case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_6: SET(S_surfxml_AS_8); break;
5255    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5256    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
5257    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
5258    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;
5259    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
5260    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5261   }
5262  }
5263         YY_BREAK
5264 case 51:
5265 /* rule 51 can match eol */
5266 YY_RULE_SETUP
5267 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
5268         YY_BREAK
5269 case YY_STATE_EOF(IN_trace):
5270 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace>' expected.");
5271         YY_BREAK
5272
5273 case 52:
5274 /* rule 52 can match eol */
5275 YY_RULE_SETUP
5276 FAIL("Starting tag <random> is not allowed here.");
5277         YY_BREAK
5278 case 53:
5279 /* rule 53 can match eol */
5280 YY_RULE_SETUP
5281 {
5282   AX_surfxml_random_id = 0;
5283   surfxml_random_id_isset = 0;
5284   AX_surfxml_random_min = 0;
5285   surfxml_random_min_isset = 0;
5286   AX_surfxml_random_max = 0;
5287   surfxml_random_max_isset = 0;
5288   AX_surfxml_random_mean = 0;
5289   surfxml_random_mean_isset = 0;
5290   AX_surfxml_random_std_deviation = 0;
5291   surfxml_random_std_deviation_isset = 0;
5292   AX_surfxml_random_seed = 5;
5293   surfxml_random_seed_isset = 0;
5294   AX_surfxml_random_radical = 0;
5295   surfxml_random_radical_isset = 0;
5296   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
5297   surfxml_random_generator_isset = 0;
5298   ENTER(AL_surfxml_random); pushbuffer(0);
5299   }
5300         YY_BREAK
5301
5302 case 54:
5303 /* rule 54 can match eol */
5304 YY_RULE_SETUP
5305 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);
5306         YY_BREAK
5307 case 55:
5308 /* rule 55 can match eol */
5309 YY_RULE_SETUP
5310 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);
5311         YY_BREAK
5312 case 56:
5313 /* rule 56 can match eol */
5314 YY_RULE_SETUP
5315 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);
5316         YY_BREAK
5317 case 57:
5318 /* rule 57 can match eol */
5319 YY_RULE_SETUP
5320 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);
5321         YY_BREAK
5322 case 58:
5323 /* rule 58 can match eol */
5324 YY_RULE_SETUP
5325 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);
5326         YY_BREAK
5327 case 59:
5328 /* rule 59 can match eol */
5329 YY_RULE_SETUP
5330 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);
5331         YY_BREAK
5332 case 60:
5333 /* rule 60 can match eol */
5334 YY_RULE_SETUP
5335 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);
5336         YY_BREAK
5337 case 61:
5338 /* rule 61 can match eol */
5339 YY_RULE_SETUP
5340 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);
5341         YY_BREAK
5342 case 62:
5343 /* rule 62 can match eol */
5344 YY_RULE_SETUP
5345 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);
5346         YY_BREAK
5347 case 63:
5348 /* rule 63 can match eol */
5349 YY_RULE_SETUP
5350 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);
5351         YY_BREAK
5352 case 64:
5353 /* rule 64 can match eol */
5354 YY_RULE_SETUP
5355 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);
5356         YY_BREAK
5357 case 65:
5358 /* rule 65 can match eol */
5359 YY_RULE_SETUP
5360 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);
5361         YY_BREAK
5362 case 66:
5363 /* rule 66 can match eol */
5364 YY_RULE_SETUP
5365 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);
5366         YY_BREAK
5367 case 67:
5368 /* rule 67 can match eol */
5369 YY_RULE_SETUP
5370 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);
5371         YY_BREAK
5372 case 68:
5373 /* rule 68 can match eol */
5374 case 69:
5375 /* rule 69 can match eol */
5376 YY_RULE_SETUP
5377 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
5378         YY_BREAK
5379 case 70:
5380 /* rule 70 can match eol */
5381 case 71:
5382 /* rule 71 can match eol */
5383 YY_RULE_SETUP
5384 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
5385         YY_BREAK
5386 case 72:
5387 /* rule 72 can match eol */
5388 case 73:
5389 /* rule 73 can match eol */
5390 YY_RULE_SETUP
5391 A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
5392         YY_BREAK
5393 case 74:
5394 /* rule 74 can match eol */
5395 case 75:
5396 /* rule 75 can match eol */
5397 YY_RULE_SETUP
5398 A_surfxml_random_generator = A_surfxml_random_generator_NONE;
5399         YY_BREAK
5400 case 76:
5401 YY_RULE_SETUP
5402 {
5403   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
5404   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
5405   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
5406   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
5407   if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
5408   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(S_surfxml_random);
5409  }
5410         YY_BREAK
5411 case 77:
5412 YY_RULE_SETUP
5413 {
5414   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
5415   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
5416   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
5417   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
5418   if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
5419   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
5420   switch (YY_START) {
5421    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
5422   }
5423  }
5424         YY_BREAK
5425 case 78:
5426 YY_RULE_SETUP
5427 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
5428         YY_BREAK
5429 case 79:
5430 YY_RULE_SETUP
5431 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
5432         YY_BREAK
5433 case YY_STATE_EOF(AL_surfxml_random):
5434 FAIL("EOF in attribute list of `random' element.");
5435         YY_BREAK
5436
5437 case 80:
5438 /* rule 80 can match eol */
5439 YY_RULE_SETUP
5440 {
5441   LEAVE;
5442   ETag_surfxml_random();
5443   popbuffer(); /* attribute */
5444   switch (YY_START) {
5445    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
5446   }
5447  }
5448         YY_BREAK
5449 case 81:
5450 /* rule 81 can match eol */
5451 YY_RULE_SETUP
5452 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
5453         YY_BREAK
5454 case 82:
5455 YY_RULE_SETUP
5456 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
5457         YY_BREAK
5458 case YY_STATE_EOF(S_surfxml_random):
5459 case YY_STATE_EOF(S_surfxml_random_2):
5460 case YY_STATE_EOF(E_surfxml_random):
5461 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</random>' expected.");
5462         YY_BREAK
5463
5464 case 83:
5465 /* rule 83 can match eol */
5466 YY_RULE_SETUP
5467 FAIL("Starting tag <trace_connect> is not allowed here.");
5468         YY_BREAK
5469 case 84:
5470 /* rule 84 can match eol */
5471 YY_RULE_SETUP
5472 {
5473   AX_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_HOST_AVAIL;
5474   surfxml_trace_connect_kind_isset = 0;
5475   AX_surfxml_trace_connect_trace = 0;
5476   surfxml_trace_connect_trace_isset = 0;
5477   AX_surfxml_trace_connect_element = 0;
5478   surfxml_trace_connect_element_isset = 0;
5479   ENTER(AL_surfxml_trace_connect); pushbuffer(0);
5480   }
5481         YY_BREAK
5482
5483 case 85:
5484 /* rule 85 can match eol */
5485 case 86:
5486 /* rule 86 can match eol */
5487 YY_RULE_SETUP
5488 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_HOST_AVAIL;
5489         YY_BREAK
5490 case 87:
5491 /* rule 87 can match eol */
5492 case 88:
5493 /* rule 88 can match eol */
5494 YY_RULE_SETUP
5495 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_POWER;
5496         YY_BREAK
5497 case 89:
5498 /* rule 89 can match eol */
5499 case 90:
5500 /* rule 90 can match eol */
5501 YY_RULE_SETUP
5502 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_LINK_AVAIL;
5503         YY_BREAK
5504 case 91:
5505 /* rule 91 can match eol */
5506 case 92:
5507 /* rule 92 can match eol */
5508 YY_RULE_SETUP
5509 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_BANDWIDTH;
5510         YY_BREAK
5511 case 93:
5512 /* rule 93 can match eol */
5513 case 94:
5514 /* rule 94 can match eol */
5515 YY_RULE_SETUP
5516 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_LATENCY;
5517         YY_BREAK
5518 case 95:
5519 /* rule 95 can match eol */
5520 YY_RULE_SETUP
5521 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);
5522         YY_BREAK
5523 case 96:
5524 /* rule 96 can match eol */
5525 YY_RULE_SETUP
5526 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);
5527         YY_BREAK
5528 case 97:
5529 /* rule 97 can match eol */
5530 YY_RULE_SETUP
5531 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);
5532         YY_BREAK
5533 case 98:
5534 /* rule 98 can match eol */
5535 YY_RULE_SETUP
5536 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);
5537         YY_BREAK
5538 case 99:
5539 YY_RULE_SETUP
5540 {
5541   if (!AX_surfxml_trace_connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
5542   if (!AX_surfxml_trace_connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
5543   LEAVE; STag_surfxml_trace_connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace_connect);
5544  }
5545         YY_BREAK
5546 case 100:
5547 YY_RULE_SETUP
5548 {
5549   if (!AX_surfxml_trace_connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
5550   if (!AX_surfxml_trace_connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
5551   LEAVE; STag_surfxml_trace_connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace_connect(); popbuffer(); /* attribute */
5552   switch (YY_START) {
5553    case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_6: SET(S_surfxml_AS_8); break;
5554    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5555    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
5556    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
5557    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;
5558    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
5559    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5560   }
5561  }
5562         YY_BREAK
5563 case 101:
5564 YY_RULE_SETUP
5565 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", surf_parse_text[0]);
5566         YY_BREAK
5567 case 102:
5568 YY_RULE_SETUP
5569 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",surf_parse_text);
5570         YY_BREAK
5571 case YY_STATE_EOF(AL_surfxml_trace_connect):
5572 FAIL("EOF in attribute list of `trace_connect' element.");
5573         YY_BREAK
5574
5575 case 103:
5576 /* rule 103 can match eol */
5577 YY_RULE_SETUP
5578 {
5579   LEAVE;
5580   ETag_surfxml_trace_connect();
5581   popbuffer(); /* attribute */
5582   switch (YY_START) {
5583    case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_6: SET(S_surfxml_AS_8); break;
5584    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5585    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
5586    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
5587    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;
5588    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
5589    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5590   }
5591  }
5592         YY_BREAK
5593 case 104:
5594 /* rule 104 can match eol */
5595 YY_RULE_SETUP
5596 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",surf_parse_text);
5597         YY_BREAK
5598 case 105:
5599 YY_RULE_SETUP
5600 FAIL("Unexpected character `%c': `</trace_connect>' expected.",surf_parse_text[0]);
5601         YY_BREAK
5602 case YY_STATE_EOF(E_surfxml_trace_connect):
5603 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace_connect>' expected.");
5604         YY_BREAK
5605
5606 case 106:
5607 /* rule 106 can match eol */
5608 YY_RULE_SETUP
5609 FAIL("Starting tag <AS> is not allowed here.");
5610         YY_BREAK
5611 case 107:
5612 /* rule 107 can match eol */
5613 YY_RULE_SETUP
5614 {
5615   AX_surfxml_AS_id = 0;
5616   surfxml_AS_id_isset = 0;
5617   AX_surfxml_AS_routing = A_surfxml_AS_routing_None;
5618   surfxml_AS_routing_isset = 0;
5619   ENTER(AL_surfxml_AS); pushbuffer(0);
5620   }
5621         YY_BREAK
5622
5623 case 108:
5624 /* rule 108 can match eol */
5625 YY_RULE_SETUP
5626 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);
5627         YY_BREAK
5628 case 109:
5629 /* rule 109 can match eol */
5630 YY_RULE_SETUP
5631 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);
5632         YY_BREAK
5633 case 110:
5634 /* rule 110 can match eol */
5635 case 111:
5636 /* rule 111 can match eol */
5637 YY_RULE_SETUP
5638 A_surfxml_AS_routing = A_surfxml_AS_routing_Full;
5639         YY_BREAK
5640 case 112:
5641 /* rule 112 can match eol */
5642 case 113:
5643 /* rule 113 can match eol */
5644 YY_RULE_SETUP
5645 A_surfxml_AS_routing = A_surfxml_AS_routing_Floyd;
5646         YY_BREAK
5647 case 114:
5648 /* rule 114 can match eol */
5649 case 115:
5650 /* rule 115 can match eol */
5651 YY_RULE_SETUP
5652 A_surfxml_AS_routing = A_surfxml_AS_routing_Dijkstra;
5653         YY_BREAK
5654 case 116:
5655 /* rule 116 can match eol */
5656 case 117:
5657 /* rule 117 can match eol */
5658 YY_RULE_SETUP
5659 A_surfxml_AS_routing = A_surfxml_AS_routing_DijkstraCache;
5660         YY_BREAK
5661 case 118:
5662 /* rule 118 can match eol */
5663 case 119:
5664 /* rule 119 can match eol */
5665 YY_RULE_SETUP
5666 A_surfxml_AS_routing = A_surfxml_AS_routing_None;
5667         YY_BREAK
5668 case 120:
5669 /* rule 120 can match eol */
5670 case 121:
5671 /* rule 121 can match eol */
5672 YY_RULE_SETUP
5673 A_surfxml_AS_routing = A_surfxml_AS_routing_RuleBased;
5674         YY_BREAK
5675 case 122:
5676 /* rule 122 can match eol */
5677 case 123:
5678 /* rule 123 can match eol */
5679 YY_RULE_SETUP
5680 A_surfxml_AS_routing = A_surfxml_AS_routing_Vivaldi;
5681         YY_BREAK
5682 case 124:
5683 /* rule 124 can match eol */
5684 case 125:
5685 /* rule 125 can match eol */
5686 YY_RULE_SETUP
5687 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster;
5688         YY_BREAK
5689 case 126:
5690 YY_RULE_SETUP
5691 {
5692   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
5693   LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
5694  }
5695         YY_BREAK
5696 case 127:
5697 YY_RULE_SETUP
5698 {
5699   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
5700   LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
5701   switch (YY_START) {
5702    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5703    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;
5704    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5705   }
5706  }
5707         YY_BREAK
5708 case 128:
5709 YY_RULE_SETUP
5710 FAIL("Unexpected character `%c' in attribute list of AS element.", surf_parse_text[0]);
5711         YY_BREAK
5712 case 129:
5713 YY_RULE_SETUP
5714 FAIL("Bad attribute `%s' in `AS' element start tag.",surf_parse_text);
5715         YY_BREAK
5716 case YY_STATE_EOF(AL_surfxml_AS):
5717 FAIL("EOF in attribute list of `AS' element.");
5718         YY_BREAK
5719
5720 case 130:
5721 /* rule 130 can match eol */
5722 YY_RULE_SETUP
5723 {
5724   LEAVE;
5725   ETag_surfxml_AS();
5726   popbuffer(); /* attribute */
5727   switch (YY_START) {
5728    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5729    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;
5730    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5731   }
5732  }
5733         YY_BREAK
5734 case 131:
5735 /* rule 131 can match eol */
5736 YY_RULE_SETUP
5737 FAIL("Unexpected end-tag `%s': `</AS>' expected.",surf_parse_text);
5738         YY_BREAK
5739 case 132:
5740 YY_RULE_SETUP
5741 FAIL("Unexpected character `%c': `</AS>' expected.",surf_parse_text[0]);
5742         YY_BREAK
5743 case YY_STATE_EOF(S_surfxml_AS_9):
5744 case YY_STATE_EOF(S_surfxml_AS_1):
5745 case YY_STATE_EOF(S_surfxml_AS_11):
5746 case YY_STATE_EOF(S_surfxml_AS_6):
5747 case YY_STATE_EOF(E_surfxml_AS):
5748 case YY_STATE_EOF(S_surfxml_AS_3):
5749 case YY_STATE_EOF(S_surfxml_AS_13):
5750 case YY_STATE_EOF(S_surfxml_AS_8):
5751 case YY_STATE_EOF(S_surfxml_AS):
5752 case YY_STATE_EOF(S_surfxml_AS_4):
5753 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</AS>' expected.");
5754         YY_BREAK
5755
5756 case 133:
5757 /* rule 133 can match eol */
5758 YY_RULE_SETUP
5759 FAIL("Starting tag <storage_type> is not allowed here.");
5760         YY_BREAK
5761 case 134:
5762 /* rule 134 can match eol */
5763 YY_RULE_SETUP
5764 {
5765   AX_surfxml_storage_type_id = 0;
5766   surfxml_storage_type_id_isset = 0;
5767   AX_surfxml_storage_type_model = 0;
5768   surfxml_storage_type_model_isset = 0;
5769   AX_surfxml_storage_type_size = 0;
5770   surfxml_storage_type_size_isset = 0;
5771   AX_surfxml_storage_type_content = 0;
5772   surfxml_storage_type_content_isset = 0;
5773   ENTER(AL_surfxml_storage_type); pushbuffer(0);
5774   }
5775         YY_BREAK
5776
5777 case 135:
5778 /* rule 135 can match eol */
5779 YY_RULE_SETUP
5780 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);
5781         YY_BREAK
5782 case 136:
5783 /* rule 136 can match eol */
5784 YY_RULE_SETUP
5785 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);
5786         YY_BREAK
5787 case 137:
5788 /* rule 137 can match eol */
5789 YY_RULE_SETUP
5790 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);
5791         YY_BREAK
5792 case 138:
5793 /* rule 138 can match eol */
5794 YY_RULE_SETUP
5795 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);
5796         YY_BREAK
5797 case 139:
5798 /* rule 139 can match eol */
5799 YY_RULE_SETUP
5800 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);
5801         YY_BREAK
5802 case 140:
5803 /* rule 140 can match eol */
5804 YY_RULE_SETUP
5805 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);
5806         YY_BREAK
5807 case 141:
5808 /* rule 141 can match eol */
5809 YY_RULE_SETUP
5810 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);
5811         YY_BREAK
5812 case 142:
5813 /* rule 142 can match eol */
5814 YY_RULE_SETUP
5815 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);
5816         YY_BREAK
5817 case 143:
5818 YY_RULE_SETUP
5819 {
5820   if (!AX_surfxml_storage_type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
5821   if (!AX_surfxml_storage_type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
5822   if (!AX_surfxml_storage_type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
5823   LEAVE; STag_surfxml_storage_type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage_type);
5824  }
5825         YY_BREAK
5826 case 144:
5827 YY_RULE_SETUP
5828 {
5829   if (!AX_surfxml_storage_type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
5830   if (!AX_surfxml_storage_type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
5831   if (!AX_surfxml_storage_type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
5832   LEAVE; STag_surfxml_storage_type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage_type(); popbuffer(); /* attribute */
5833   switch (YY_START) {
5834    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5835    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5836   }
5837  }
5838         YY_BREAK
5839 case 145:
5840 YY_RULE_SETUP
5841 FAIL("Unexpected character `%c' in attribute list of storage_type element.", surf_parse_text[0]);
5842         YY_BREAK
5843 case 146:
5844 YY_RULE_SETUP
5845 FAIL("Bad attribute `%s' in `storage_type' element start tag.",surf_parse_text);
5846         YY_BREAK
5847 case YY_STATE_EOF(AL_surfxml_storage_type):
5848 FAIL("EOF in attribute list of `storage_type' element.");
5849         YY_BREAK
5850
5851 case 147:
5852 /* rule 147 can match eol */
5853 YY_RULE_SETUP
5854 {
5855   LEAVE;
5856   ETag_surfxml_storage_type();
5857   popbuffer(); /* attribute */
5858   switch (YY_START) {
5859    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5860    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5861   }
5862  }
5863         YY_BREAK
5864 case 148:
5865 /* rule 148 can match eol */
5866 YY_RULE_SETUP
5867 FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",surf_parse_text);
5868         YY_BREAK
5869 case 149:
5870 YY_RULE_SETUP
5871 FAIL("Unexpected character `%c': `</storage_type>' expected.",surf_parse_text[0]);
5872         YY_BREAK
5873 case YY_STATE_EOF(E_surfxml_storage_type):
5874 case YY_STATE_EOF(S_surfxml_storage_type_2):
5875 case YY_STATE_EOF(S_surfxml_storage_type):
5876 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage_type>' expected.");
5877         YY_BREAK
5878
5879 case 150:
5880 /* rule 150 can match eol */
5881 YY_RULE_SETUP
5882 FAIL("Starting tag <storage> is not allowed here.");
5883         YY_BREAK
5884 case 151:
5885 /* rule 151 can match eol */
5886 YY_RULE_SETUP
5887 {
5888   AX_surfxml_storage_id = 0;
5889   surfxml_storage_id_isset = 0;
5890   AX_surfxml_storage_typeId = 0;
5891   surfxml_storage_typeId_isset = 0;
5892   AX_surfxml_storage_content = 0;
5893   surfxml_storage_content_isset = 0;
5894   ENTER(AL_surfxml_storage); pushbuffer(0);
5895   }
5896         YY_BREAK
5897
5898 case 152:
5899 /* rule 152 can match eol */
5900 YY_RULE_SETUP
5901 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);
5902         YY_BREAK
5903 case 153:
5904 /* rule 153 can match eol */
5905 YY_RULE_SETUP
5906 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);
5907         YY_BREAK
5908 case 154:
5909 /* rule 154 can match eol */
5910 YY_RULE_SETUP
5911 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);
5912         YY_BREAK
5913 case 155:
5914 /* rule 155 can match eol */
5915 YY_RULE_SETUP
5916 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);
5917         YY_BREAK
5918 case 156:
5919 /* rule 156 can match eol */
5920 YY_RULE_SETUP
5921 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);
5922         YY_BREAK
5923 case 157:
5924 /* rule 157 can match eol */
5925 YY_RULE_SETUP
5926 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);
5927         YY_BREAK
5928 case 158:
5929 YY_RULE_SETUP
5930 {
5931   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
5932   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
5933   LEAVE; STag_surfxml_storage();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage);
5934  }
5935         YY_BREAK
5936 case 159:
5937 YY_RULE_SETUP
5938 {
5939   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
5940   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
5941   LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */
5942   switch (YY_START) {
5943    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5944    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5945   }
5946  }
5947         YY_BREAK
5948 case 160:
5949 YY_RULE_SETUP
5950 FAIL("Unexpected character `%c' in attribute list of storage element.", surf_parse_text[0]);
5951         YY_BREAK
5952 case 161:
5953 YY_RULE_SETUP
5954 FAIL("Bad attribute `%s' in `storage' element start tag.",surf_parse_text);
5955         YY_BREAK
5956 case YY_STATE_EOF(AL_surfxml_storage):
5957 FAIL("EOF in attribute list of `storage' element.");
5958         YY_BREAK
5959
5960 case 162:
5961 /* rule 162 can match eol */
5962 YY_RULE_SETUP
5963 {
5964   LEAVE;
5965   ETag_surfxml_storage();
5966   popbuffer(); /* attribute */
5967   switch (YY_START) {
5968    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5969    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5970   }
5971  }
5972         YY_BREAK
5973 case 163:
5974 /* rule 163 can match eol */
5975 YY_RULE_SETUP
5976 FAIL("Unexpected end-tag `%s': `</storage>' expected.",surf_parse_text);
5977         YY_BREAK
5978 case 164:
5979 YY_RULE_SETUP
5980 FAIL("Unexpected character `%c': `</storage>' expected.",surf_parse_text[0]);
5981         YY_BREAK
5982 case YY_STATE_EOF(E_surfxml_storage):
5983 case YY_STATE_EOF(S_surfxml_storage):
5984 case YY_STATE_EOF(S_surfxml_storage_2):
5985 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage>' expected.");
5986         YY_BREAK
5987
5988 case 165:
5989 /* rule 165 can match eol */
5990 YY_RULE_SETUP
5991 FAIL("Starting tag <mount> is not allowed here.");
5992         YY_BREAK
5993 case 166:
5994 /* rule 166 can match eol */
5995 YY_RULE_SETUP
5996 {
5997   AX_surfxml_mount_id = 0;
5998   surfxml_mount_id_isset = 0;
5999   AX_surfxml_mount_name = 0;
6000   surfxml_mount_name_isset = 0;
6001   ENTER(AL_surfxml_mount); pushbuffer(0);
6002   }
6003         YY_BREAK
6004
6005 case 167:
6006 /* rule 167 can match eol */
6007 YY_RULE_SETUP
6008 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);
6009         YY_BREAK
6010 case 168:
6011 /* rule 168 can match eol */
6012 YY_RULE_SETUP
6013 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);
6014         YY_BREAK
6015 case 169:
6016 /* rule 169 can match eol */
6017 YY_RULE_SETUP
6018 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);
6019         YY_BREAK
6020 case 170:
6021 /* rule 170 can match eol */
6022 YY_RULE_SETUP
6023 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);
6024         YY_BREAK
6025 case 171:
6026 YY_RULE_SETUP
6027 {
6028   if (!AX_surfxml_mount_id) FAIL("Required attribute `id' not set for `mount' element.");
6029   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6030   LEAVE; STag_surfxml_mount();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mount);
6031  }
6032         YY_BREAK
6033 case 172:
6034 YY_RULE_SETUP
6035 {
6036   if (!AX_surfxml_mount_id) FAIL("Required attribute `id' not set for `mount' element.");
6037   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6038   LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */
6039   switch (YY_START) {
6040    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6041   }
6042  }
6043         YY_BREAK
6044 case 173:
6045 YY_RULE_SETUP
6046 FAIL("Unexpected character `%c' in attribute list of mount element.", surf_parse_text[0]);
6047         YY_BREAK
6048 case 174:
6049 YY_RULE_SETUP
6050 FAIL("Bad attribute `%s' in `mount' element start tag.",surf_parse_text);
6051         YY_BREAK
6052 case YY_STATE_EOF(AL_surfxml_mount):
6053 FAIL("EOF in attribute list of `mount' element.");
6054         YY_BREAK
6055
6056 case 175:
6057 /* rule 175 can match eol */
6058 YY_RULE_SETUP
6059 {
6060   LEAVE;
6061   ETag_surfxml_mount();
6062   popbuffer(); /* attribute */
6063   switch (YY_START) {
6064    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6065   }
6066  }
6067         YY_BREAK
6068 case 176:
6069 /* rule 176 can match eol */
6070 YY_RULE_SETUP
6071 FAIL("Unexpected end-tag `%s': `</mount>' expected.",surf_parse_text);
6072         YY_BREAK
6073 case 177:
6074 YY_RULE_SETUP
6075 FAIL("Unexpected character `%c': `</mount>' expected.",surf_parse_text[0]);
6076         YY_BREAK
6077 case YY_STATE_EOF(E_surfxml_mount):
6078 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mount>' expected.");
6079         YY_BREAK
6080
6081 case 178:
6082 /* rule 178 can match eol */
6083 YY_RULE_SETUP
6084 FAIL("Starting tag <mstorage> is not allowed here.");
6085         YY_BREAK
6086 case 179:
6087 /* rule 179 can match eol */
6088 YY_RULE_SETUP
6089 {
6090   AX_surfxml_mstorage_typeId = 0;
6091   surfxml_mstorage_typeId_isset = 0;
6092   AX_surfxml_mstorage_name = 0;
6093   surfxml_mstorage_name_isset = 0;
6094   ENTER(AL_surfxml_mstorage); pushbuffer(0);
6095   }
6096         YY_BREAK
6097
6098 case 180:
6099 /* rule 180 can match eol */
6100 YY_RULE_SETUP
6101 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);
6102         YY_BREAK
6103 case 181:
6104 /* rule 181 can match eol */
6105 YY_RULE_SETUP
6106 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);
6107         YY_BREAK
6108 case 182:
6109 /* rule 182 can match eol */
6110 YY_RULE_SETUP
6111 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);
6112         YY_BREAK
6113 case 183:
6114 /* rule 183 can match eol */
6115 YY_RULE_SETUP
6116 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);
6117         YY_BREAK
6118 case 184:
6119 YY_RULE_SETUP
6120 {
6121   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6122   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6123   LEAVE; STag_surfxml_mstorage();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mstorage);
6124  }
6125         YY_BREAK
6126 case 185:
6127 YY_RULE_SETUP
6128 {
6129   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6130   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6131   LEAVE; STag_surfxml_mstorage(); surfxml_pcdata_ix = 0; ETag_surfxml_mstorage(); popbuffer(); /* attribute */
6132   switch (YY_START) {
6133    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6134   }
6135  }
6136         YY_BREAK
6137 case 186:
6138 YY_RULE_SETUP
6139 FAIL("Unexpected character `%c' in attribute list of mstorage element.", surf_parse_text[0]);
6140         YY_BREAK
6141 case 187:
6142 YY_RULE_SETUP
6143 FAIL("Bad attribute `%s' in `mstorage' element start tag.",surf_parse_text);
6144         YY_BREAK
6145 case YY_STATE_EOF(AL_surfxml_mstorage):
6146 FAIL("EOF in attribute list of `mstorage' element.");
6147         YY_BREAK
6148
6149 case 188:
6150 /* rule 188 can match eol */
6151 YY_RULE_SETUP
6152 {
6153   LEAVE;
6154   ETag_surfxml_mstorage();
6155   popbuffer(); /* attribute */
6156   switch (YY_START) {
6157    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6158   }
6159  }
6160         YY_BREAK
6161 case 189:
6162 /* rule 189 can match eol */
6163 YY_RULE_SETUP
6164 FAIL("Unexpected end-tag `%s': `</mstorage>' expected.",surf_parse_text);
6165         YY_BREAK
6166 case 190:
6167 YY_RULE_SETUP
6168 FAIL("Unexpected character `%c': `</mstorage>' expected.",surf_parse_text[0]);
6169         YY_BREAK
6170 case YY_STATE_EOF(E_surfxml_mstorage):
6171 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mstorage>' expected.");
6172         YY_BREAK
6173
6174 case 191:
6175 /* rule 191 can match eol */
6176 YY_RULE_SETUP
6177 FAIL("Starting tag <host> is not allowed here.");
6178         YY_BREAK
6179 case 192:
6180 /* rule 192 can match eol */
6181 YY_RULE_SETUP
6182 {
6183   AX_surfxml_host_id = 0;
6184   surfxml_host_id_isset = 0;
6185   AX_surfxml_host_power = 0;
6186   surfxml_host_power_isset = 0;
6187   AX_surfxml_host_core = 16;
6188   surfxml_host_core_isset = 0;
6189   AX_surfxml_host_availability = 18;
6190   surfxml_host_availability_isset = 0;
6191   AX_surfxml_host_availability_file = 0;
6192   surfxml_host_availability_file_isset = 0;
6193   AX_surfxml_host_state = A_surfxml_host_state_ON;
6194   surfxml_host_state_isset = 0;
6195   AX_surfxml_host_state_file = 0;
6196   surfxml_host_state_file_isset = 0;
6197   AX_surfxml_host_coordinates = 0;
6198   surfxml_host_coordinates_isset = 0;
6199   ENTER(AL_surfxml_host); pushbuffer(0);
6200   }
6201         YY_BREAK
6202
6203 case 193:
6204 /* rule 193 can match eol */
6205 YY_RULE_SETUP
6206 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);
6207         YY_BREAK
6208 case 194:
6209 /* rule 194 can match eol */
6210 YY_RULE_SETUP
6211 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);
6212         YY_BREAK
6213 case 195:
6214 /* rule 195 can match eol */
6215 YY_RULE_SETUP
6216 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);
6217         YY_BREAK
6218 case 196:
6219 /* rule 196 can match eol */
6220 YY_RULE_SETUP
6221 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);
6222         YY_BREAK
6223 case 197:
6224 /* rule 197 can match eol */
6225 YY_RULE_SETUP
6226 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);
6227         YY_BREAK
6228 case 198:
6229 /* rule 198 can match eol */
6230 YY_RULE_SETUP
6231 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);
6232         YY_BREAK
6233 case 199:
6234 /* rule 199 can match eol */
6235 YY_RULE_SETUP
6236 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);
6237         YY_BREAK
6238 case 200:
6239 /* rule 200 can match eol */
6240 YY_RULE_SETUP
6241 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);
6242         YY_BREAK
6243 case 201:
6244 /* rule 201 can match eol */
6245 YY_RULE_SETUP
6246 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);
6247         YY_BREAK
6248 case 202:
6249 /* rule 202 can match eol */
6250 YY_RULE_SETUP
6251 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);
6252         YY_BREAK
6253 case 203:
6254 /* rule 203 can match eol */
6255 case 204:
6256 /* rule 204 can match eol */
6257 YY_RULE_SETUP
6258 A_surfxml_host_state = A_surfxml_host_state_ON;
6259         YY_BREAK
6260 case 205:
6261 /* rule 205 can match eol */
6262 case 206:
6263 /* rule 206 can match eol */
6264 YY_RULE_SETUP
6265 A_surfxml_host_state = A_surfxml_host_state_OFF;
6266         YY_BREAK
6267 case 207:
6268 /* rule 207 can match eol */
6269 YY_RULE_SETUP
6270 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);
6271         YY_BREAK
6272 case 208:
6273 /* rule 208 can match eol */
6274 YY_RULE_SETUP
6275 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);
6276         YY_BREAK
6277 case 209:
6278 /* rule 209 can match eol */
6279 YY_RULE_SETUP
6280 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);
6281         YY_BREAK
6282 case 210:
6283 /* rule 210 can match eol */
6284 YY_RULE_SETUP
6285 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);
6286         YY_BREAK
6287 case 211:
6288 YY_RULE_SETUP
6289 {
6290   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
6291   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
6292   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
6293  }
6294         YY_BREAK
6295 case 212:
6296 YY_RULE_SETUP
6297 {
6298   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
6299   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
6300   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
6301   switch (YY_START) {
6302    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6303   }
6304  }
6305         YY_BREAK
6306 case 213:
6307 YY_RULE_SETUP
6308 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
6309         YY_BREAK
6310 case 214:
6311 YY_RULE_SETUP
6312 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
6313         YY_BREAK
6314 case YY_STATE_EOF(AL_surfxml_host):
6315 FAIL("EOF in attribute list of `host' element.");
6316         YY_BREAK
6317
6318 case 215:
6319 /* rule 215 can match eol */
6320 YY_RULE_SETUP
6321 {
6322   LEAVE;
6323   ETag_surfxml_host();
6324   popbuffer(); /* attribute */
6325   switch (YY_START) {
6326    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6327   }
6328  }
6329         YY_BREAK
6330 case 216:
6331 /* rule 216 can match eol */
6332 YY_RULE_SETUP
6333 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
6334         YY_BREAK
6335 case 217:
6336 YY_RULE_SETUP
6337 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
6338         YY_BREAK
6339 case YY_STATE_EOF(S_surfxml_host):
6340 case YY_STATE_EOF(E_surfxml_host):
6341 case YY_STATE_EOF(S_surfxml_host_2):
6342 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host>' expected.");
6343         YY_BREAK
6344
6345 case 218:
6346 /* rule 218 can match eol */
6347 YY_RULE_SETUP
6348 FAIL("Starting tag <cluster> is not allowed here.");
6349         YY_BREAK
6350 case 219:
6351 /* rule 219 can match eol */
6352 YY_RULE_SETUP
6353 {
6354   AX_surfxml_cluster_id = 0;
6355   surfxml_cluster_id_isset = 0;
6356   AX_surfxml_cluster_prefix = 0;
6357   surfxml_cluster_prefix_isset = 0;
6358   AX_surfxml_cluster_suffix = 0;
6359   surfxml_cluster_suffix_isset = 0;
6360   AX_surfxml_cluster_radical = 0;
6361   surfxml_cluster_radical_isset = 0;
6362   AX_surfxml_cluster_power = 0;
6363   surfxml_cluster_power_isset = 0;
6364   AX_surfxml_cluster_core = 22;
6365   surfxml_cluster_core_isset = 0;
6366   AX_surfxml_cluster_bw = 0;
6367   surfxml_cluster_bw_isset = 0;
6368   AX_surfxml_cluster_lat = 0;
6369   surfxml_cluster_lat_isset = 0;
6370   AX_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FULLDUPLEX;
6371   surfxml_cluster_sharing_policy_isset = 0;
6372   AX_surfxml_cluster_bb_bw = 0;
6373   surfxml_cluster_bb_bw_isset = 0;
6374   AX_surfxml_cluster_bb_lat = 0;
6375   surfxml_cluster_bb_lat_isset = 0;
6376   AX_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_SHARED;
6377   surfxml_cluster_bb_sharing_policy_isset = 0;
6378   AX_surfxml_cluster_availability_file = 0;
6379   surfxml_cluster_availability_file_isset = 0;
6380   AX_surfxml_cluster_state_file = 0;
6381   surfxml_cluster_state_file_isset = 0;
6382   AX_surfxml_cluster_router_id = 0;
6383   surfxml_cluster_router_id_isset = 0;
6384   ENTER(AL_surfxml_cluster); pushbuffer(0);
6385   }
6386         YY_BREAK
6387
6388 case 220:
6389 /* rule 220 can match eol */
6390 YY_RULE_SETUP
6391 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);
6392         YY_BREAK
6393 case 221:
6394 /* rule 221 can match eol */
6395 YY_RULE_SETUP
6396 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);
6397         YY_BREAK
6398 case 222:
6399 /* rule 222 can match eol */
6400 YY_RULE_SETUP
6401 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);
6402         YY_BREAK
6403 case 223:
6404 /* rule 223 can match eol */
6405 YY_RULE_SETUP
6406 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);
6407         YY_BREAK
6408 case 224:
6409 /* rule 224 can match eol */
6410 YY_RULE_SETUP
6411 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);
6412         YY_BREAK
6413 case 225:
6414 /* rule 225 can match eol */
6415 YY_RULE_SETUP
6416 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);
6417         YY_BREAK
6418 case 226:
6419 /* rule 226 can match eol */
6420 YY_RULE_SETUP
6421 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);
6422         YY_BREAK
6423 case 227:
6424 /* rule 227 can match eol */
6425 YY_RULE_SETUP
6426 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);
6427         YY_BREAK
6428 case 228:
6429 /* rule 228 can match eol */
6430 YY_RULE_SETUP
6431 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);
6432         YY_BREAK
6433 case 229:
6434 /* rule 229 can match eol */
6435 YY_RULE_SETUP
6436 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);
6437         YY_BREAK
6438 case 230:
6439 /* rule 230 can match eol */
6440 YY_RULE_SETUP
6441 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);
6442         YY_BREAK
6443 case 231:
6444 /* rule 231 can match eol */
6445 YY_RULE_SETUP
6446 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);
6447         YY_BREAK
6448 case 232:
6449 /* rule 232 can match eol */
6450 YY_RULE_SETUP
6451 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);
6452         YY_BREAK
6453 case 233:
6454 /* rule 233 can match eol */
6455 YY_RULE_SETUP
6456 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);
6457         YY_BREAK
6458 case 234:
6459 /* rule 234 can match eol */
6460 YY_RULE_SETUP
6461 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);
6462         YY_BREAK
6463 case 235:
6464 /* rule 235 can match eol */
6465 YY_RULE_SETUP
6466 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);
6467         YY_BREAK
6468 case 236:
6469 /* rule 236 can match eol */
6470 case 237:
6471 /* rule 237 can match eol */
6472 YY_RULE_SETUP
6473 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_SHARED;
6474         YY_BREAK
6475 case 238:
6476 /* rule 238 can match eol */
6477 case 239:
6478 /* rule 239 can match eol */
6479 YY_RULE_SETUP
6480 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FULLDUPLEX;
6481         YY_BREAK
6482 case 240:
6483 /* rule 240 can match eol */
6484 case 241:
6485 /* rule 241 can match eol */
6486 YY_RULE_SETUP
6487 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FATPIPE;
6488         YY_BREAK
6489 case 242:
6490 /* rule 242 can match eol */
6491 YY_RULE_SETUP
6492 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);
6493         YY_BREAK
6494 case 243:
6495 /* rule 243 can match eol */
6496 YY_RULE_SETUP
6497 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);
6498         YY_BREAK
6499 case 244:
6500 /* rule 244 can match eol */
6501 YY_RULE_SETUP
6502 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);
6503         YY_BREAK
6504 case 245:
6505 /* rule 245 can match eol */
6506 YY_RULE_SETUP
6507 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);
6508         YY_BREAK
6509 case 246:
6510 /* rule 246 can match eol */
6511 case 247:
6512 /* rule 247 can match eol */
6513 YY_RULE_SETUP
6514 A_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_SHARED;
6515         YY_BREAK
6516 case 248:
6517 /* rule 248 can match eol */
6518 case 249:
6519 /* rule 249 can match eol */
6520 YY_RULE_SETUP
6521 A_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_FATPIPE;
6522         YY_BREAK
6523 case 250:
6524 /* rule 250 can match eol */
6525 YY_RULE_SETUP
6526 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);
6527         YY_BREAK
6528 case 251:
6529 /* rule 251 can match eol */
6530 YY_RULE_SETUP
6531 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);
6532         YY_BREAK
6533 case 252:
6534 /* rule 252 can match eol */
6535 YY_RULE_SETUP
6536 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);
6537         YY_BREAK
6538 case 253:
6539 /* rule 253 can match eol */
6540 YY_RULE_SETUP
6541 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);
6542         YY_BREAK
6543 case 254:
6544 /* rule 254 can match eol */
6545 YY_RULE_SETUP
6546 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);
6547         YY_BREAK
6548 case 255:
6549 /* rule 255 can match eol */
6550 YY_RULE_SETUP
6551 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);
6552         YY_BREAK
6553 case 256:
6554 YY_RULE_SETUP
6555 {
6556   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
6557   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
6558   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
6559   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
6560   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
6561   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
6562   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
6563   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cluster);
6564  }
6565         YY_BREAK
6566 case 257:
6567 YY_RULE_SETUP
6568 {
6569   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
6570   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
6571   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
6572   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
6573   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
6574   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
6575   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
6576   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
6577   switch (YY_START) {
6578    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6579    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;
6580    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6581   }
6582  }
6583         YY_BREAK
6584 case 258:
6585 YY_RULE_SETUP
6586 FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
6587         YY_BREAK
6588 case 259:
6589 YY_RULE_SETUP
6590 FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
6591         YY_BREAK
6592 case YY_STATE_EOF(AL_surfxml_cluster):
6593 FAIL("EOF in attribute list of `cluster' element.");
6594         YY_BREAK
6595
6596 case 260:
6597 /* rule 260 can match eol */
6598 YY_RULE_SETUP
6599 {
6600   LEAVE;
6601   ETag_surfxml_cluster();
6602   popbuffer(); /* attribute */
6603   switch (YY_START) {
6604    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6605    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;
6606    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6607   }
6608  }
6609         YY_BREAK
6610 case 261:
6611 /* rule 261 can match eol */
6612 YY_RULE_SETUP
6613 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
6614         YY_BREAK
6615 case 262:
6616 YY_RULE_SETUP
6617 FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
6618         YY_BREAK
6619 case YY_STATE_EOF(E_surfxml_cluster):
6620 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cluster>' expected.");
6621         YY_BREAK
6622
6623 case 263:
6624 /* rule 263 can match eol */
6625 YY_RULE_SETUP
6626 FAIL("Starting tag <peer> is not allowed here.");
6627         YY_BREAK
6628 case 264:
6629 /* rule 264 can match eol */
6630 YY_RULE_SETUP
6631 {
6632   AX_surfxml_peer_id = 0;
6633   surfxml_peer_id_isset = 0;
6634   AX_surfxml_peer_power = 0;
6635   surfxml_peer_power_isset = 0;
6636   AX_surfxml_peer_bw_in = 0;
6637   surfxml_peer_bw_in_isset = 0;
6638   AX_surfxml_peer_bw_out = 0;
6639   surfxml_peer_bw_out_isset = 0;
6640   AX_surfxml_peer_lat = 0;
6641   surfxml_peer_lat_isset = 0;
6642   AX_surfxml_peer_coordinates = 0;
6643   surfxml_peer_coordinates_isset = 0;
6644   AX_surfxml_peer_availability_file = 0;
6645   surfxml_peer_availability_file_isset = 0;
6646   AX_surfxml_peer_state_file = 0;
6647   surfxml_peer_state_file_isset = 0;
6648   ENTER(AL_surfxml_peer); pushbuffer(0);
6649   }
6650         YY_BREAK
6651
6652 case 265:
6653 /* rule 265 can match eol */
6654 YY_RULE_SETUP
6655 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);
6656         YY_BREAK
6657 case 266:
6658 /* rule 266 can match eol */
6659 YY_RULE_SETUP
6660 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);
6661         YY_BREAK
6662 case 267:
6663 /* rule 267 can match eol */
6664 YY_RULE_SETUP
6665 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);
6666         YY_BREAK
6667 case 268:
6668 /* rule 268 can match eol */
6669 YY_RULE_SETUP
6670 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);
6671         YY_BREAK
6672 case 269:
6673 /* rule 269 can match eol */
6674 YY_RULE_SETUP
6675 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);
6676         YY_BREAK
6677 case 270:
6678 /* rule 270 can match eol */
6679 YY_RULE_SETUP
6680 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);
6681         YY_BREAK
6682 case 271:
6683 /* rule 271 can match eol */
6684 YY_RULE_SETUP
6685 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);
6686         YY_BREAK
6687 case 272:
6688 /* rule 272 can match eol */
6689 YY_RULE_SETUP
6690 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);
6691         YY_BREAK
6692 case 273:
6693 /* rule 273 can match eol */
6694 YY_RULE_SETUP
6695 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);
6696         YY_BREAK
6697 case 274:
6698 /* rule 274 can match eol */
6699 YY_RULE_SETUP
6700 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);
6701         YY_BREAK
6702 case 275:
6703 /* rule 275 can match eol */
6704 YY_RULE_SETUP
6705 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);
6706         YY_BREAK
6707 case 276:
6708 /* rule 276 can match eol */
6709 YY_RULE_SETUP
6710 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);
6711         YY_BREAK
6712 case 277:
6713 /* rule 277 can match eol */
6714 YY_RULE_SETUP
6715 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);
6716         YY_BREAK
6717 case 278:
6718 /* rule 278 can match eol */
6719 YY_RULE_SETUP
6720 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);
6721         YY_BREAK
6722 case 279:
6723 /* rule 279 can match eol */
6724 YY_RULE_SETUP
6725 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);
6726         YY_BREAK
6727 case 280:
6728 /* rule 280 can match eol */
6729 YY_RULE_SETUP
6730 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);
6731         YY_BREAK
6732 case 281:
6733 YY_RULE_SETUP
6734 {
6735   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
6736   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
6737   if (!AX_surfxml_peer_bw_in) FAIL("Required attribute `bw_in' not set for `peer' element.");
6738   if (!AX_surfxml_peer_bw_out) FAIL("Required attribute `bw_out' not set for `peer' element.");
6739   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
6740   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
6741  }
6742         YY_BREAK
6743 case 282:
6744 YY_RULE_SETUP
6745 {
6746   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
6747   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
6748   if (!AX_surfxml_peer_bw_in) FAIL("Required attribute `bw_in' not set for `peer' element.");
6749   if (!AX_surfxml_peer_bw_out) FAIL("Required attribute `bw_out' not set for `peer' element.");
6750   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
6751   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
6752   switch (YY_START) {
6753    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6754    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;
6755    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6756   }
6757  }
6758         YY_BREAK
6759 case 283:
6760 YY_RULE_SETUP
6761 FAIL("Unexpected character `%c' in attribute list of peer element.", surf_parse_text[0]);
6762         YY_BREAK
6763 case 284:
6764 YY_RULE_SETUP
6765 FAIL("Bad attribute `%s' in `peer' element start tag.",surf_parse_text);
6766         YY_BREAK
6767 case YY_STATE_EOF(AL_surfxml_peer):
6768 FAIL("EOF in attribute list of `peer' element.");
6769         YY_BREAK
6770
6771 case 285:
6772 /* rule 285 can match eol */
6773 YY_RULE_SETUP
6774 {
6775   LEAVE;
6776   ETag_surfxml_peer();
6777   popbuffer(); /* attribute */
6778   switch (YY_START) {
6779    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6780    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;
6781    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6782   }
6783  }
6784         YY_BREAK
6785 case 286:
6786 /* rule 286 can match eol */
6787 YY_RULE_SETUP
6788 FAIL("Unexpected end-tag `%s': `</peer>' expected.",surf_parse_text);
6789         YY_BREAK
6790 case 287:
6791 YY_RULE_SETUP
6792 FAIL("Unexpected character `%c': `</peer>' expected.",surf_parse_text[0]);
6793         YY_BREAK
6794 case YY_STATE_EOF(E_surfxml_peer):
6795 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</peer>' expected.");
6796         YY_BREAK
6797
6798 case 288:
6799 /* rule 288 can match eol */
6800 YY_RULE_SETUP
6801 FAIL("Starting tag <router> is not allowed here.");
6802         YY_BREAK
6803 case 289:
6804 /* rule 289 can match eol */
6805 YY_RULE_SETUP
6806 {
6807   AX_surfxml_router_id = 0;
6808   surfxml_router_id_isset = 0;
6809   AX_surfxml_router_coordinates = 0;
6810   surfxml_router_coordinates_isset = 0;
6811   ENTER(AL_surfxml_router); pushbuffer(0);
6812   }
6813         YY_BREAK
6814
6815 case 290:
6816 /* rule 290 can match eol */
6817 YY_RULE_SETUP
6818 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);
6819         YY_BREAK
6820 case 291:
6821 /* rule 291 can match eol */
6822 YY_RULE_SETUP
6823 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);
6824         YY_BREAK
6825 case 292:
6826 /* rule 292 can match eol */
6827 YY_RULE_SETUP
6828 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);
6829         YY_BREAK
6830 case 293:
6831 /* rule 293 can match eol */
6832 YY_RULE_SETUP
6833 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);
6834         YY_BREAK
6835 case 294:
6836 YY_RULE_SETUP
6837 {
6838   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
6839   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
6840  }
6841         YY_BREAK
6842 case 295:
6843 YY_RULE_SETUP
6844 {
6845   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
6846   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
6847   switch (YY_START) {
6848    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6849   }
6850  }
6851         YY_BREAK
6852 case 296:
6853 YY_RULE_SETUP
6854 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
6855         YY_BREAK
6856 case 297:
6857 YY_RULE_SETUP
6858 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
6859         YY_BREAK
6860 case YY_STATE_EOF(AL_surfxml_router):
6861 FAIL("EOF in attribute list of `router' element.");
6862         YY_BREAK
6863
6864 case 298:
6865 /* rule 298 can match eol */
6866 YY_RULE_SETUP
6867 {
6868   LEAVE;
6869   ETag_surfxml_router();
6870   popbuffer(); /* attribute */
6871   switch (YY_START) {
6872    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6873   }
6874  }
6875         YY_BREAK
6876 case 299:
6877 /* rule 299 can match eol */
6878 YY_RULE_SETUP
6879 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
6880         YY_BREAK
6881 case 300:
6882 YY_RULE_SETUP
6883 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
6884         YY_BREAK
6885 case YY_STATE_EOF(E_surfxml_router):
6886 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</router>' expected.");
6887         YY_BREAK
6888
6889 case 301:
6890 /* rule 301 can match eol */
6891 YY_RULE_SETUP
6892 FAIL("Starting tag <link> is not allowed here.");
6893         YY_BREAK
6894 case 302:
6895 /* rule 302 can match eol */
6896 YY_RULE_SETUP
6897 {
6898   AX_surfxml_link_id = 0;
6899   surfxml_link_id_isset = 0;
6900   AX_surfxml_link_bandwidth = 0;
6901   surfxml_link_bandwidth_isset = 0;
6902   AX_surfxml_link_bandwidth_file = 0;
6903   surfxml_link_bandwidth_file_isset = 0;
6904   AX_surfxml_link_latency = 24;
6905   surfxml_link_latency_isset = 0;
6906   AX_surfxml_link_latency_file = 0;
6907   surfxml_link_latency_file_isset = 0;
6908   AX_surfxml_link_state = A_surfxml_link_state_ON;
6909   surfxml_link_state_isset = 0;
6910   AX_surfxml_link_state_file = 0;
6911   surfxml_link_state_file_isset = 0;
6912   AX_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
6913   surfxml_link_sharing_policy_isset = 0;
6914   ENTER(AL_surfxml_link); pushbuffer(0);
6915   }
6916         YY_BREAK
6917
6918 case 303:
6919 /* rule 303 can match eol */
6920 YY_RULE_SETUP
6921 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);
6922         YY_BREAK
6923 case 304:
6924 /* rule 304 can match eol */
6925 YY_RULE_SETUP
6926 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);
6927         YY_BREAK
6928 case 305:
6929 /* rule 305 can match eol */
6930 YY_RULE_SETUP
6931 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);
6932         YY_BREAK
6933 case 306:
6934 /* rule 306 can match eol */
6935 YY_RULE_SETUP
6936 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);
6937         YY_BREAK
6938 case 307:
6939 /* rule 307 can match eol */
6940 YY_RULE_SETUP
6941 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);
6942         YY_BREAK
6943 case 308:
6944 /* rule 308 can match eol */
6945 YY_RULE_SETUP
6946 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);
6947         YY_BREAK
6948 case 309:
6949 /* rule 309 can match eol */
6950 YY_RULE_SETUP
6951 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);
6952         YY_BREAK
6953 case 310:
6954 /* rule 310 can match eol */
6955 YY_RULE_SETUP
6956 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);
6957         YY_BREAK
6958 case 311:
6959 /* rule 311 can match eol */
6960 YY_RULE_SETUP
6961 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);
6962         YY_BREAK
6963 case 312:
6964 /* rule 312 can match eol */
6965 YY_RULE_SETUP
6966 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);
6967         YY_BREAK
6968 case 313:
6969 /* rule 313 can match eol */
6970 case 314:
6971 /* rule 314 can match eol */
6972 YY_RULE_SETUP
6973 A_surfxml_link_state = A_surfxml_link_state_ON;
6974         YY_BREAK
6975 case 315:
6976 /* rule 315 can match eol */
6977 case 316:
6978 /* rule 316 can match eol */
6979 YY_RULE_SETUP
6980 A_surfxml_link_state = A_surfxml_link_state_OFF;
6981         YY_BREAK
6982 case 317:
6983 /* rule 317 can match eol */
6984 YY_RULE_SETUP
6985 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);
6986         YY_BREAK
6987 case 318:
6988 /* rule 318 can match eol */
6989 YY_RULE_SETUP
6990 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);
6991         YY_BREAK
6992 case 319:
6993 /* rule 319 can match eol */
6994 case 320:
6995 /* rule 320 can match eol */
6996 YY_RULE_SETUP
6997 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
6998         YY_BREAK
6999 case 321:
7000 /* rule 321 can match eol */
7001 case 322:
7002 /* rule 322 can match eol */
7003 YY_RULE_SETUP
7004 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FATPIPE;
7005         YY_BREAK
7006 case 323:
7007 /* rule 323 can match eol */
7008 case 324:
7009 /* rule 324 can match eol */
7010 YY_RULE_SETUP
7011 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FULLDUPLEX;
7012         YY_BREAK
7013 case 325:
7014 YY_RULE_SETUP
7015 {
7016   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
7017   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
7018   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
7019  }
7020         YY_BREAK
7021 case 326:
7022 YY_RULE_SETUP
7023 {
7024   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
7025   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
7026   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
7027   switch (YY_START) {
7028    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
7029    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
7030   }
7031  }
7032         YY_BREAK
7033 case 327:
7034 YY_RULE_SETUP
7035 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
7036         YY_BREAK
7037 case 328:
7038 YY_RULE_SETUP
7039 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
7040         YY_BREAK
7041 case YY_STATE_EOF(AL_surfxml_link):
7042 FAIL("EOF in attribute list of `link' element.");
7043         YY_BREAK
7044
7045 case 329:
7046 /* rule 329 can match eol */
7047 YY_RULE_SETUP
7048 {
7049   LEAVE;
7050   ETag_surfxml_link();
7051   popbuffer(); /* attribute */
7052   switch (YY_START) {
7053    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
7054    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
7055   }
7056  }
7057         YY_BREAK
7058 case 330:
7059 /* rule 330 can match eol */
7060 YY_RULE_SETUP
7061 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
7062         YY_BREAK
7063 case 331:
7064 YY_RULE_SETUP
7065 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
7066         YY_BREAK
7067 case YY_STATE_EOF(E_surfxml_link):
7068 case YY_STATE_EOF(S_surfxml_link_2):
7069 case YY_STATE_EOF(S_surfxml_link):
7070 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link>' expected.");
7071         YY_BREAK
7072
7073 case 332:
7074 /* rule 332 can match eol */
7075 YY_RULE_SETUP
7076 FAIL("Starting tag <route> is not allowed here.");
7077         YY_BREAK
7078 case 333:
7079 /* rule 333 can match eol */
7080 YY_RULE_SETUP
7081 {
7082   AX_surfxml_route_src = 0;
7083   surfxml_route_src_isset = 0;
7084   AX_surfxml_route_dst = 0;
7085   surfxml_route_dst_isset = 0;
7086   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
7087   surfxml_route_symmetrical_isset = 0;
7088   ENTER(AL_surfxml_route); pushbuffer(0);
7089   }
7090         YY_BREAK
7091
7092 case 334:
7093 /* rule 334 can match eol */
7094 YY_RULE_SETUP
7095 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);
7096         YY_BREAK
7097 case 335:
7098 /* rule 335 can match eol */
7099 YY_RULE_SETUP
7100 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);
7101         YY_BREAK
7102 case 336:
7103 /* rule 336 can match eol */
7104 YY_RULE_SETUP
7105 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);
7106         YY_BREAK
7107 case 337:
7108 /* rule 337 can match eol */
7109 YY_RULE_SETUP
7110 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);
7111         YY_BREAK
7112 case 338:
7113 /* rule 338 can match eol */
7114 case 339:
7115 /* rule 339 can match eol */
7116 YY_RULE_SETUP
7117 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
7118         YY_BREAK
7119 case 340:
7120 /* rule 340 can match eol */
7121 case 341:
7122 /* rule 341 can match eol */
7123 YY_RULE_SETUP
7124 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
7125         YY_BREAK
7126 case 342:
7127 YY_RULE_SETUP
7128 {
7129   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
7130   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
7131   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
7132  }
7133         YY_BREAK
7134 case 343:
7135 YY_RULE_SETUP
7136 {
7137   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
7138   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
7139   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
7140   switch (YY_START) {
7141    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_11: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_13); break;
7142   }
7143  }
7144         YY_BREAK
7145 case 344:
7146 YY_RULE_SETUP
7147 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
7148         YY_BREAK
7149 case 345:
7150 YY_RULE_SETUP
7151 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
7152         YY_BREAK
7153 case YY_STATE_EOF(AL_surfxml_route):
7154 FAIL("EOF in attribute list of `route' element.");
7155         YY_BREAK
7156
7157 case 346:
7158 /* rule 346 can match eol */
7159 YY_RULE_SETUP
7160 {
7161   LEAVE;
7162   ETag_surfxml_route();
7163   popbuffer(); /* attribute */
7164   switch (YY_START) {
7165    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_11: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_13); break;
7166   }
7167  }
7168         YY_BREAK
7169 case 347:
7170 /* rule 347 can match eol */
7171 YY_RULE_SETUP
7172 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
7173         YY_BREAK
7174 case 348:
7175 YY_RULE_SETUP
7176 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
7177         YY_BREAK
7178 case YY_STATE_EOF(S_surfxml_route):
7179 case YY_STATE_EOF(S_surfxml_route_2):
7180 case YY_STATE_EOF(E_surfxml_route):
7181 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</route>' expected.");
7182         YY_BREAK
7183
7184 case 349:
7185 /* rule 349 can match eol */
7186 YY_RULE_SETUP
7187 FAIL("Starting tag <ASroute> is not allowed here.");
7188         YY_BREAK
7189 case 350:
7190 /* rule 350 can match eol */
7191 YY_RULE_SETUP
7192 {
7193   AX_surfxml_ASroute_src = 0;
7194   surfxml_ASroute_src_isset = 0;
7195   AX_surfxml_ASroute_dst = 0;
7196   surfxml_ASroute_dst_isset = 0;
7197   AX_surfxml_ASroute_gw_src = 0;
7198   surfxml_ASroute_gw_src_isset = 0;
7199   AX_surfxml_ASroute_gw_dst = 0;
7200   surfxml_ASroute_gw_dst_isset = 0;
7201   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
7202   surfxml_ASroute_symmetrical_isset = 0;
7203   ENTER(AL_surfxml_ASroute); pushbuffer(0);
7204   }
7205         YY_BREAK
7206
7207 case 351:
7208 /* rule 351 can match eol */
7209 YY_RULE_SETUP
7210 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);
7211         YY_BREAK
7212 case 352:
7213 /* rule 352 can match eol */
7214 YY_RULE_SETUP
7215 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);
7216         YY_BREAK
7217 case 353:
7218 /* rule 353 can match eol */
7219 YY_RULE_SETUP
7220 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);
7221         YY_BREAK
7222 case 354:
7223 /* rule 354 can match eol */
7224 YY_RULE_SETUP
7225 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);
7226         YY_BREAK
7227 case 355:
7228 /* rule 355 can match eol */
7229 YY_RULE_SETUP
7230 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);
7231         YY_BREAK
7232 case 356:
7233 /* rule 356 can match eol */
7234 YY_RULE_SETUP
7235 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);
7236         YY_BREAK
7237 case 357:
7238 /* rule 357 can match eol */
7239 YY_RULE_SETUP
7240 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);
7241         YY_BREAK
7242 case 358:
7243 /* rule 358 can match eol */
7244 YY_RULE_SETUP
7245 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);
7246         YY_BREAK
7247 case 359:
7248 /* rule 359 can match eol */
7249 case 360:
7250 /* rule 360 can match eol */
7251 YY_RULE_SETUP
7252 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
7253         YY_BREAK
7254 case 361:
7255 /* rule 361 can match eol */
7256 case 362:
7257 /* rule 362 can match eol */
7258 YY_RULE_SETUP
7259 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
7260         YY_BREAK
7261 case 363:
7262 YY_RULE_SETUP
7263 {
7264   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
7265   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
7266   if (!AX_surfxml_ASroute_gw_src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
7267   if (!AX_surfxml_ASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
7268   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
7269  }
7270         YY_BREAK
7271 case 364:
7272 YY_RULE_SETUP
7273 {
7274   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
7275   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
7276   if (!AX_surfxml_ASroute_gw_src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
7277   if (!AX_surfxml_ASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
7278   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
7279   switch (YY_START) {
7280    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;
7281   }
7282  }
7283         YY_BREAK
7284 case 365:
7285 YY_RULE_SETUP
7286 FAIL("Unexpected character `%c' in attribute list of ASroute element.", surf_parse_text[0]);
7287         YY_BREAK
7288 case 366:
7289 YY_RULE_SETUP
7290 FAIL("Bad attribute `%s' in `ASroute' element start tag.",surf_parse_text);
7291         YY_BREAK
7292 case YY_STATE_EOF(AL_surfxml_ASroute):
7293 FAIL("EOF in attribute list of `ASroute' element.");
7294         YY_BREAK
7295
7296 case 367:
7297 /* rule 367 can match eol */
7298 YY_RULE_SETUP
7299 {
7300   LEAVE;
7301   ETag_surfxml_ASroute();
7302   popbuffer(); /* attribute */
7303   switch (YY_START) {
7304    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;
7305   }
7306  }
7307         YY_BREAK
7308 case 368:
7309 /* rule 368 can match eol */
7310 YY_RULE_SETUP
7311 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",surf_parse_text);
7312         YY_BREAK
7313 case 369:
7314 YY_RULE_SETUP
7315 FAIL("Unexpected character `%c': `</ASroute>' expected.",surf_parse_text[0]);
7316         YY_BREAK
7317 case YY_STATE_EOF(E_surfxml_ASroute):
7318 case YY_STATE_EOF(S_surfxml_ASroute):
7319 case YY_STATE_EOF(S_surfxml_ASroute_2):
7320 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</ASroute>' expected.");
7321         YY_BREAK
7322
7323 case 370:
7324 /* rule 370 can match eol */
7325 YY_RULE_SETUP
7326 FAIL("Starting tag <link_ctn> is not allowed here.");
7327         YY_BREAK
7328 case 371:
7329 /* rule 371 can match eol */
7330 YY_RULE_SETUP
7331 {
7332   AX_surfxml_link_ctn_id = 0;
7333   surfxml_link_ctn_id_isset = 0;
7334   AX_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_NONE;
7335   surfxml_link_ctn_direction_isset = 0;
7336   ENTER(AL_surfxml_link_ctn); pushbuffer(0);
7337   }
7338         YY_BREAK
7339
7340 case 372:
7341 /* rule 372 can match eol */
7342 YY_RULE_SETUP
7343 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);
7344         YY_BREAK
7345 case 373:
7346 /* rule 373 can match eol */
7347 YY_RULE_SETUP
7348 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);
7349         YY_BREAK
7350 case 374:
7351 /* rule 374 can match eol */
7352 case 375:
7353 /* rule 375 can match eol */
7354 YY_RULE_SETUP
7355 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_UP;
7356         YY_BREAK
7357 case 376:
7358 /* rule 376 can match eol */
7359 case 377:
7360 /* rule 377 can match eol */
7361 YY_RULE_SETUP
7362 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_DOWN;
7363         YY_BREAK
7364 case 378:
7365 /* rule 378 can match eol */
7366 case 379:
7367 /* rule 379 can match eol */
7368 YY_RULE_SETUP
7369 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_NONE;
7370         YY_BREAK
7371 case 380:
7372 YY_RULE_SETUP
7373 {
7374   if (!AX_surfxml_link_ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
7375   LEAVE; STag_surfxml_link_ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link_ctn);
7376  }
7377         YY_BREAK
7378 case 381:
7379 YY_RULE_SETUP
7380 {
7381   if (!AX_surfxml_link_ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
7382   LEAVE; STag_surfxml_link_ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link_ctn(); popbuffer(); /* attribute */
7383   switch (YY_START) {
7384    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
7385    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
7386    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
7387    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
7388   }
7389  }
7390         YY_BREAK
7391 case 382:
7392 YY_RULE_SETUP
7393 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", surf_parse_text[0]);
7394         YY_BREAK
7395 case 383:
7396 YY_RULE_SETUP
7397 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",surf_parse_text);
7398         YY_BREAK
7399 case YY_STATE_EOF(AL_surfxml_link_ctn):
7400 FAIL("EOF in attribute list of `link_ctn' element.");
7401         YY_BREAK
7402
7403 case 384:
7404 /* rule 384 can match eol */
7405 YY_RULE_SETUP
7406 {
7407   LEAVE;
7408   ETag_surfxml_link_ctn();
7409   popbuffer(); /* attribute */
7410   switch (YY_START) {
7411    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
7412    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
7413    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
7414    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
7415   }
7416  }
7417         YY_BREAK
7418 case 385:
7419 /* rule 385 can match eol */
7420 YY_RULE_SETUP
7421 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",surf_parse_text);
7422         YY_BREAK
7423 case 386:
7424 YY_RULE_SETUP
7425 FAIL("Unexpected character `%c': `</link_ctn>' expected.",surf_parse_text[0]);
7426         YY_BREAK
7427 case YY_STATE_EOF(E_surfxml_link_ctn):
7428 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link_ctn>' expected.");
7429         YY_BREAK
7430
7431 case 387:
7432 /* rule 387 can match eol */
7433 YY_RULE_SETUP
7434 FAIL("Starting tag <bypassRoute> is not allowed here.");
7435         YY_BREAK
7436 case 388:
7437 /* rule 388 can match eol */
7438 YY_RULE_SETUP
7439 {
7440   AX_surfxml_bypassRoute_src = 0;
7441   surfxml_bypassRoute_src_isset = 0;
7442   AX_surfxml_bypassRoute_dst = 0;
7443   surfxml_bypassRoute_dst_isset = 0;
7444   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
7445   }
7446         YY_BREAK
7447
7448 case 389:
7449 /* rule 389 can match eol */
7450 YY_RULE_SETUP
7451 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);
7452         YY_BREAK
7453 case 390:
7454 /* rule 390 can match eol */
7455 YY_RULE_SETUP
7456 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);
7457         YY_BREAK
7458 case 391:
7459 /* rule 391 can match eol */
7460 YY_RULE_SETUP
7461 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);
7462         YY_BREAK
7463 case 392:
7464 /* rule 392 can match eol */
7465 YY_RULE_SETUP
7466 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);
7467         YY_BREAK
7468 case 393:
7469 YY_RULE_SETUP
7470 {
7471   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
7472   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
7473   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
7474  }
7475         YY_BREAK
7476 case 394:
7477 YY_RULE_SETUP
7478 {
7479   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
7480   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
7481   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
7482   switch (YY_START) {
7483    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_11: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_13); break;
7484   }
7485  }
7486         YY_BREAK
7487 case 395:
7488 YY_RULE_SETUP
7489 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", surf_parse_text[0]);
7490         YY_BREAK
7491 case 396:
7492 YY_RULE_SETUP
7493 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",surf_parse_text);
7494         YY_BREAK
7495 case YY_STATE_EOF(AL_surfxml_bypassRoute):
7496 FAIL("EOF in attribute list of `bypassRoute' element.");
7497         YY_BREAK
7498
7499 case 397:
7500 /* rule 397 can match eol */
7501 YY_RULE_SETUP
7502 {
7503   LEAVE;
7504   ETag_surfxml_bypassRoute();
7505   popbuffer(); /* attribute */
7506   switch (YY_START) {
7507    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_11: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_13); break;
7508   }
7509  }
7510         YY_BREAK
7511 case 398:
7512 /* rule 398 can match eol */
7513 YY_RULE_SETUP
7514 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",surf_parse_text);
7515         YY_BREAK
7516 case 399:
7517 YY_RULE_SETUP
7518 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",surf_parse_text[0]);
7519         YY_BREAK
7520 case YY_STATE_EOF(S_surfxml_bypassRoute):
7521 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
7522 case YY_STATE_EOF(E_surfxml_bypassRoute):
7523 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassRoute>' expected.");
7524         YY_BREAK
7525
7526 case 400:
7527 /* rule 400 can match eol */
7528 YY_RULE_SETUP
7529 FAIL("Starting tag <bypassASroute> is not allowed here.");
7530         YY_BREAK
7531 case 401:
7532 /* rule 401 can match eol */
7533 YY_RULE_SETUP
7534 {
7535   AX_surfxml_bypassASroute_src = 0;
7536   surfxml_bypassASroute_src_isset = 0;
7537   AX_surfxml_bypassASroute_dst = 0;
7538   surfxml_bypassASroute_dst_isset = 0;
7539   AX_surfxml_bypassASroute_gw_src = 0;
7540   surfxml_bypassASroute_gw_src_isset = 0;
7541   AX_surfxml_bypassASroute_gw_dst = 0;
7542   surfxml_bypassASroute_gw_dst_isset = 0;
7543   ENTER(AL_surfxml_bypassASroute); pushbuffer(0);
7544   }
7545         YY_BREAK
7546
7547 case 402:
7548 /* rule 402 can match eol */
7549 YY_RULE_SETUP
7550 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);
7551         YY_BREAK
7552 case 403:
7553 /* rule 403 can match eol */
7554 YY_RULE_SETUP
7555 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);
7556         YY_BREAK
7557 case 404:
7558 /* rule 404 can match eol */
7559 YY_RULE_SETUP
7560 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);
7561         YY_BREAK
7562 case 405:
7563 /* rule 405 can match eol */
7564 YY_RULE_SETUP
7565 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);
7566         YY_BREAK
7567 case 406:
7568 /* rule 406 can match eol */
7569 YY_RULE_SETUP
7570 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);
7571         YY_BREAK
7572 case 407:
7573 /* rule 407 can match eol */
7574 YY_RULE_SETUP
7575 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);
7576         YY_BREAK
7577 case 408:
7578 /* rule 408 can match eol */
7579 YY_RULE_SETUP
7580 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);
7581         YY_BREAK
7582 case 409:
7583 /* rule 409 can match eol */
7584 YY_RULE_SETUP
7585 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);
7586         YY_BREAK
7587 case 410:
7588 YY_RULE_SETUP
7589 {
7590   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
7591   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
7592   if (!AX_surfxml_bypassASroute_gw_src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
7593   if (!AX_surfxml_bypassASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
7594   LEAVE; STag_surfxml_bypassASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassASroute);
7595  }
7596         YY_BREAK
7597 case 411:
7598 YY_RULE_SETUP
7599 {
7600   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
7601   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
7602   if (!AX_surfxml_bypassASroute_gw_src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
7603   if (!AX_surfxml_bypassASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
7604   LEAVE; STag_surfxml_bypassASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */
7605   switch (YY_START) {
7606    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;
7607   }
7608  }
7609         YY_BREAK
7610 case 412:
7611 YY_RULE_SETUP
7612 FAIL("Unexpected character `%c' in attribute list of bypassASroute element.", surf_parse_text[0]);
7613         YY_BREAK
7614 case 413:
7615 YY_RULE_SETUP
7616 FAIL("Bad attribute `%s' in `bypassASroute' element start tag.",surf_parse_text);
7617         YY_BREAK
7618 case YY_STATE_EOF(AL_surfxml_bypassASroute):
7619 FAIL("EOF in attribute list of `bypassASroute' element.");
7620         YY_BREAK
7621
7622 case 414:
7623 /* rule 414 can match eol */
7624 YY_RULE_SETUP
7625 {
7626   LEAVE;
7627   ETag_surfxml_bypassASroute();
7628   popbuffer(); /* attribute */
7629   switch (YY_START) {
7630    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;
7631   }
7632  }
7633         YY_BREAK
7634 case 415:
7635 /* rule 415 can match eol */
7636 YY_RULE_SETUP
7637 FAIL("Unexpected end-tag `%s': `</bypassASroute>' expected.",surf_parse_text);
7638         YY_BREAK
7639 case 416:
7640 YY_RULE_SETUP
7641 FAIL("Unexpected character `%c': `</bypassASroute>' expected.",surf_parse_text[0]);
7642         YY_BREAK
7643 case YY_STATE_EOF(S_surfxml_bypassASroute_2):
7644 case YY_STATE_EOF(E_surfxml_bypassASroute):
7645 case YY_STATE_EOF(S_surfxml_bypassASroute):
7646 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassASroute>' expected.");
7647         YY_BREAK
7648
7649 case 417:
7650 /* rule 417 can match eol */
7651 YY_RULE_SETUP
7652 FAIL("Starting tag <process> is not allowed here.");
7653         YY_BREAK
7654 case 418:
7655 /* rule 418 can match eol */
7656 YY_RULE_SETUP
7657 {
7658   AX_surfxml_process_host = 0;
7659   surfxml_process_host_isset = 0;
7660   AX_surfxml_process_function = 0;
7661   surfxml_process_function_isset = 0;
7662   AX_surfxml_process_start_time = 28;
7663   surfxml_process_start_time_isset = 0;
7664   AX_surfxml_process_kill_time = 33;
7665   surfxml_process_kill_time_isset = 0;
7666   AX_surfxml_process_on_failure = A_surfxml_process_on_failure_DIE;
7667   surfxml_process_on_failure_isset = 0;
7668   ENTER(AL_surfxml_process); pushbuffer(0);
7669   }
7670         YY_BREAK
7671
7672 case 419:
7673 /* rule 419 can match eol */
7674 YY_RULE_SETUP
7675 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);
7676         YY_BREAK
7677 case 420:
7678 /* rule 420 can match eol */
7679 YY_RULE_SETUP
7680 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);
7681         YY_BREAK
7682 case 421:
7683 /* rule 421 can match eol */
7684 YY_RULE_SETUP
7685 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);
7686         YY_BREAK
7687 case 422:
7688 /* rule 422 can match eol */
7689 YY_RULE_SETUP
7690 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);
7691         YY_BREAK
7692 case 423:
7693 /* rule 423 can match eol */
7694 YY_RULE_SETUP
7695 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);
7696         YY_BREAK
7697 case 424:
7698 /* rule 424 can match eol */
7699 YY_RULE_SETUP
7700 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);
7701         YY_BREAK
7702 case 425:
7703 /* rule 425 can match eol */
7704 YY_RULE_SETUP
7705 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);
7706         YY_BREAK
7707 case 426:
7708 /* rule 426 can match eol */
7709 YY_RULE_SETUP
7710 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);
7711         YY_BREAK
7712 case 427:
7713 /* rule 427 can match eol */
7714 case 428:
7715 /* rule 428 can match eol */
7716 YY_RULE_SETUP
7717 A_surfxml_process_on_failure = A_surfxml_process_on_failure_DIE;
7718         YY_BREAK
7719 case 429:
7720 /* rule 429 can match eol */
7721 case 430:
7722 /* rule 430 can match eol */
7723 YY_RULE_SETUP
7724 A_surfxml_process_on_failure = A_surfxml_process_on_failure_RESTART;
7725         YY_BREAK
7726 case 431:
7727 YY_RULE_SETUP
7728 {
7729   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
7730   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
7731   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
7732  }
7733         YY_BREAK
7734 case 432:
7735 YY_RULE_SETUP
7736 {
7737   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
7738   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
7739   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
7740   switch (YY_START) {
7741    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;
7742   }
7743  }
7744         YY_BREAK
7745 case 433:
7746 YY_RULE_SETUP
7747 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
7748         YY_BREAK
7749 case 434:
7750 YY_RULE_SETUP
7751 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
7752         YY_BREAK
7753 case YY_STATE_EOF(AL_surfxml_process):
7754 FAIL("EOF in attribute list of `process' element.");
7755         YY_BREAK
7756
7757 case 435:
7758 /* rule 435 can match eol */
7759 YY_RULE_SETUP
7760 {
7761   LEAVE;
7762   ETag_surfxml_process();
7763   popbuffer(); /* attribute */
7764   switch (YY_START) {
7765    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;
7766   }
7767  }
7768         YY_BREAK
7769 case 436:
7770 /* rule 436 can match eol */
7771 YY_RULE_SETUP
7772 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
7773         YY_BREAK
7774 case 437:
7775 YY_RULE_SETUP
7776 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
7777         YY_BREAK
7778 case YY_STATE_EOF(E_surfxml_process):
7779 case YY_STATE_EOF(S_surfxml_process):
7780 case YY_STATE_EOF(S_surfxml_process_2):
7781 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</process>' expected.");
7782         YY_BREAK
7783
7784 case 438:
7785 /* rule 438 can match eol */
7786 YY_RULE_SETUP
7787 FAIL("Starting tag <argument> is not allowed here.");
7788         YY_BREAK
7789 case 439:
7790 /* rule 439 can match eol */
7791 YY_RULE_SETUP
7792 {
7793   AX_surfxml_argument_value = 0;
7794   surfxml_argument_value_isset = 0;
7795   ENTER(AL_surfxml_argument); pushbuffer(0);
7796   }
7797         YY_BREAK
7798
7799 case 440:
7800 /* rule 440 can match eol */
7801 YY_RULE_SETUP
7802 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);
7803         YY_BREAK
7804 case 441:
7805 /* rule 441 can match eol */
7806 YY_RULE_SETUP
7807 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);
7808         YY_BREAK
7809 case 442:
7810 YY_RULE_SETUP
7811 {
7812   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
7813   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
7814  }
7815         YY_BREAK
7816 case 443:
7817 YY_RULE_SETUP
7818 {
7819   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
7820   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
7821   switch (YY_START) {
7822    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
7823   }
7824  }
7825         YY_BREAK
7826 case 444:
7827 YY_RULE_SETUP
7828 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
7829         YY_BREAK
7830 case 445:
7831 YY_RULE_SETUP
7832 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
7833         YY_BREAK
7834 case YY_STATE_EOF(AL_surfxml_argument):
7835 FAIL("EOF in attribute list of `argument' element.");
7836         YY_BREAK
7837
7838 case 446:
7839 /* rule 446 can match eol */
7840 YY_RULE_SETUP
7841 {
7842   LEAVE;
7843   ETag_surfxml_argument();
7844   popbuffer(); /* attribute */
7845   switch (YY_START) {
7846    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
7847   }
7848  }
7849         YY_BREAK
7850 case 447:
7851 /* rule 447 can match eol */
7852 YY_RULE_SETUP
7853 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
7854         YY_BREAK
7855 case 448:
7856 YY_RULE_SETUP
7857 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
7858         YY_BREAK
7859 case YY_STATE_EOF(E_surfxml_argument):
7860 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</argument>' expected.");
7861         YY_BREAK
7862
7863 case 449:
7864 /* rule 449 can match eol */
7865 YY_RULE_SETUP
7866 FAIL("Starting tag <config> is not allowed here.");
7867         YY_BREAK
7868 case 450:
7869 /* rule 450 can match eol */
7870 YY_RULE_SETUP
7871 {
7872   AX_surfxml_config_id = 0;
7873   surfxml_config_id_isset = 0;
7874   ENTER(AL_surfxml_config); pushbuffer(0);
7875   }
7876         YY_BREAK
7877
7878 case 451:
7879 /* rule 451 can match eol */
7880 YY_RULE_SETUP
7881 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);
7882         YY_BREAK
7883 case 452:
7884 /* rule 452 can match eol */
7885 YY_RULE_SETUP
7886 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);
7887         YY_BREAK
7888 case 453:
7889 YY_RULE_SETUP
7890 {
7891   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
7892  }
7893         YY_BREAK
7894 case 454:
7895 YY_RULE_SETUP
7896 {
7897   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
7898   switch (YY_START) {
7899    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
7900   }
7901  }
7902         YY_BREAK
7903 case 455:
7904 YY_RULE_SETUP
7905 FAIL("Unexpected character `%c' in attribute list of config element.", surf_parse_text[0]);
7906         YY_BREAK
7907 case 456:
7908 YY_RULE_SETUP
7909 FAIL("Bad attribute `%s' in `config' element start tag.",surf_parse_text);
7910         YY_BREAK
7911 case YY_STATE_EOF(AL_surfxml_config):
7912 FAIL("EOF in attribute list of `config' element.");
7913         YY_BREAK
7914
7915 case 457:
7916 /* rule 457 can match eol */
7917 YY_RULE_SETUP
7918 {
7919   LEAVE;
7920   ETag_surfxml_config();
7921   popbuffer(); /* attribute */
7922   switch (YY_START) {
7923    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
7924   }
7925  }
7926         YY_BREAK
7927 case 458:
7928 /* rule 458 can match eol */
7929 YY_RULE_SETUP
7930 FAIL("Unexpected end-tag `%s': `</config>' expected.",surf_parse_text);
7931         YY_BREAK
7932 case 459:
7933 YY_RULE_SETUP
7934 FAIL("Unexpected character `%c': `</config>' expected.",surf_parse_text[0]);
7935         YY_BREAK
7936 case YY_STATE_EOF(S_surfxml_config):
7937 case YY_STATE_EOF(S_surfxml_config_2):
7938 case YY_STATE_EOF(E_surfxml_config):
7939 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</config>' expected.");
7940         YY_BREAK
7941
7942 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
7943   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
7944 case 460:
7945 /* rule 460 can match eol */
7946 YY_RULE_SETUP
7947 FAIL("Starting tag <prop> is not allowed here.");
7948         YY_BREAK
7949 case 461:
7950 /* rule 461 can match eol */
7951 YY_RULE_SETUP
7952 {
7953   AX_surfxml_prop_id = 0;
7954   surfxml_prop_id_isset = 0;
7955   AX_surfxml_prop_value = 0;
7956   surfxml_prop_value_isset = 0;
7957   ENTER(AL_surfxml_prop); pushbuffer(0);
7958   }
7959         YY_BREAK
7960
7961 case 462:
7962 /* rule 462 can match eol */
7963 YY_RULE_SETUP
7964 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);
7965         YY_BREAK
7966 case 463:
7967 /* rule 463 can match eol */
7968 YY_RULE_SETUP
7969 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);
7970         YY_BREAK
7971 case 464:
7972 /* rule 464 can match eol */
7973 YY_RULE_SETUP
7974 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);
7975         YY_BREAK
7976 case 465:
7977 /* rule 465 can match eol */
7978 YY_RULE_SETUP
7979 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);
7980         YY_BREAK
7981 case 466:
7982 YY_RULE_SETUP
7983 {
7984   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
7985   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
7986   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
7987  }
7988         YY_BREAK
7989 case 467:
7990 YY_RULE_SETUP
7991 {
7992   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
7993   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
7994   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
7995   switch (YY_START) {
7996    case S_surfxml_random: case S_surfxml_random_2: case S_surfxml_random_1: SET(S_surfxml_random_2); break;
7997    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
7998    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
7999    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8000    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
8001    case S_surfxml_storage_type_2: case S_surfxml_storage_type: case S_surfxml_storage_type_1: SET(S_surfxml_storage_type_2); break;
8002    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
8003   }
8004  }
8005         YY_BREAK
8006 case 468:
8007 YY_RULE_SETUP
8008 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
8009         YY_BREAK
8010 case 469:
8011 YY_RULE_SETUP
8012 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
8013         YY_BREAK
8014 case YY_STATE_EOF(AL_surfxml_prop):
8015 FAIL("EOF in attribute list of `prop' element.");
8016         YY_BREAK
8017
8018 case 470:
8019 /* rule 470 can match eol */
8020 YY_RULE_SETUP
8021 {
8022   LEAVE;
8023   ETag_surfxml_prop();
8024   popbuffer(); /* attribute */
8025   switch (YY_START) {
8026    case S_surfxml_random: case S_surfxml_random_2: case S_surfxml_random_1: SET(S_surfxml_random_2); break;
8027    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
8028    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
8029    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8030    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
8031    case S_surfxml_storage_type_2: case S_surfxml_storage_type: case S_surfxml_storage_type_1: SET(S_surfxml_storage_type_2); break;
8032    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
8033   }
8034  }
8035         YY_BREAK
8036 case 471:
8037 /* rule 471 can match eol */
8038 YY_RULE_SETUP
8039 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
8040         YY_BREAK
8041 case 472:
8042 YY_RULE_SETUP
8043 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
8044         YY_BREAK
8045 case YY_STATE_EOF(E_surfxml_prop):
8046 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</prop>' expected.");
8047         YY_BREAK
8048
8049 /* EPILOG: after the root element. */
8050
8051 case 473:
8052 YY_RULE_SETUP
8053 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
8054         YY_BREAK
8055 case YY_STATE_EOF(EPILOG):
8056 SUCCEED;
8057         YY_BREAK
8058
8059 /* CHARACTER DATA. */
8060
8061 /* Non-defined standard entities... */
8062 case 474:
8063 YY_RULE_SETUP
8064 BUFFERPUTC('&');
8065         YY_BREAK
8066 case 475:
8067 YY_RULE_SETUP
8068 BUFFERPUTC('<');
8069         YY_BREAK
8070 case 476:
8071 YY_RULE_SETUP
8072 BUFFERPUTC('>');
8073         YY_BREAK
8074 case 477:
8075 YY_RULE_SETUP
8076 BUFFERPUTC('\'');
8077         YY_BREAK
8078 case 478:
8079 YY_RULE_SETUP
8080 BUFFERPUTC('"');
8081         YY_BREAK
8082 /* Character entities. */
8083 case 479:
8084 YY_RULE_SETUP
8085 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
8086         YY_BREAK
8087 case 480:
8088 YY_RULE_SETUP
8089 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
8090         YY_BREAK
8091
8092 case 481:
8093 /* rule 481 can match eol */
8094 case 482:
8095 /* rule 482 can match eol */
8096 case 483:
8097 /* rule 483 can match eol */
8098 case 484:
8099 /* rule 484 can match eol */
8100 YY_RULE_SETUP
8101 BUFFERPUTC('\n');
8102         YY_BREAK
8103
8104 case 485:
8105 YY_RULE_SETUP
8106 ENTER(CDATA);
8107         YY_BREAK
8108 case 486:
8109 YY_RULE_SETUP
8110 FAIL("Unexpected `]""]>' in character data.");
8111         YY_BREAK
8112
8113 case 487:
8114 YY_RULE_SETUP
8115 BUFFERDONE; LEAVE;
8116         YY_BREAK
8117 case YY_STATE_EOF(VALUE1):
8118 FAIL("EOF in literal (\"'\" expected).");
8119         YY_BREAK
8120
8121 case 488:
8122 YY_RULE_SETUP
8123 BUFFERDONE; LEAVE;
8124         YY_BREAK
8125 case YY_STATE_EOF(VALUE2):
8126 FAIL("EOF in literal (`\"' expected).");
8127         YY_BREAK
8128
8129 case 489:
8130 /* rule 489 can match eol */
8131 YY_RULE_SETUP
8132 BUFFERPUTC(surf_parse_text[0]);
8133         YY_BREAK
8134 case 490:
8135 YY_RULE_SETUP
8136 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
8137         YY_BREAK
8138
8139 case 491:
8140 YY_RULE_SETUP
8141 LEAVE;
8142         YY_BREAK
8143 /* "]""]"               BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
8144 case 492:
8145 YY_RULE_SETUP
8146 BUFFERPUTC(surf_parse_text[0]);
8147         YY_BREAK
8148 case YY_STATE_EOF(CDATA):
8149 FAIL("EOF in CDATA section.");
8150         YY_BREAK
8151
8152 /* Impossible rules to avoid warnings from flex(1). */
8153 /* Ideally, this should be replaced by code in flexml.pl that
8154     generates just the states not covered by other rules. */
8155
8156 case 493:
8157 /* rule 493 can match eol */
8158 YY_RULE_SETUP
8159 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
8160         YY_BREAK
8161
8162 case 494:
8163 YY_RULE_SETUP
8164 ECHO;
8165         YY_BREAK
8166 case YY_STATE_EOF(INITIAL):
8167 case YY_STATE_EOF(ROOT_surfxml_platform):
8168 case YY_STATE_EOF(S_surfxml_platform_2):
8169 case YY_STATE_EOF(S_surfxml_platform_5):
8170 case YY_STATE_EOF(S_surfxml_platform_7):
8171 case YY_STATE_EOF(S_surfxml_include_1):
8172 case YY_STATE_EOF(S_surfxml_random_1):
8173 case YY_STATE_EOF(S_surfxml_AS_2):
8174 case YY_STATE_EOF(S_surfxml_AS_5):
8175 case YY_STATE_EOF(S_surfxml_AS_7):
8176 case YY_STATE_EOF(S_surfxml_AS_10):
8177 case YY_STATE_EOF(S_surfxml_AS_12):
8178 case YY_STATE_EOF(S_surfxml_storage_type_1):
8179 case YY_STATE_EOF(S_surfxml_storage_1):
8180 case YY_STATE_EOF(S_surfxml_host_1):
8181 case YY_STATE_EOF(S_surfxml_link_1):
8182 case YY_STATE_EOF(S_surfxml_route_1):
8183 case YY_STATE_EOF(S_surfxml_ASroute_1):
8184 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
8185 case YY_STATE_EOF(S_surfxml_bypassASroute_1):
8186 case YY_STATE_EOF(S_surfxml_process_1):
8187 case YY_STATE_EOF(S_surfxml_config_1):
8188 case YY_STATE_EOF(IMPOSSIBLE):
8189         yyterminate();
8190
8191         case YY_END_OF_BUFFER:
8192                 {
8193                 /* Amount of text matched not including the EOB char. */
8194                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
8195
8196                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
8197                 *yy_cp = (yy_hold_char);
8198                 YY_RESTORE_YY_MORE_OFFSET
8199
8200                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
8201                         {
8202                         /* We're scanning a new file or input source.  It's
8203                          * possible that this happened because the user
8204                          * just pointed surf_parse_in at a new source and called
8205                          * surf_parse_lex().  If so, then we have to assure
8206                          * consistency between YY_CURRENT_BUFFER and our
8207                          * globals.  Here is the right place to do so, because
8208                          * this is the first action (other than possibly a
8209                          * back-up) that will match for the new input source.
8210                          */
8211                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
8212                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
8213                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
8214                         }
8215
8216                 /* Note that here we test for yy_c_buf_p "<=" to the position
8217                  * of the first EOB in the buffer, since yy_c_buf_p will
8218                  * already have been incremented past the NUL character
8219                  * (since all states make transitions on EOB to the
8220                  * end-of-buffer state).  Contrast this with the test
8221                  * in input().
8222                  */
8223                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
8224                         { /* This was really a NUL. */
8225                         yy_state_type yy_next_state;
8226
8227                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
8228
8229                         yy_current_state = yy_get_previous_state(  );
8230
8231                         /* Okay, we're now positioned to make the NUL
8232                          * transition.  We couldn't have
8233                          * yy_get_previous_state() go ahead and do it
8234                          * for us because it doesn't know how to deal
8235                          * with the possibility of jamming (and we don't
8236                          * want to build jamming into it because then it
8237                          * will run more slowly).
8238                          */
8239
8240                         yy_next_state = yy_try_NUL_trans( yy_current_state );
8241
8242                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
8243
8244                         if ( yy_next_state )
8245                                 {
8246                                 /* Consume the NUL. */
8247                                 yy_cp = ++(yy_c_buf_p);
8248                                 yy_current_state = yy_next_state;
8249                                 goto yy_match;
8250                                 }
8251
8252                         else
8253                                 {
8254                                 yy_cp = (yy_c_buf_p);
8255                                 goto yy_find_action;
8256                                 }
8257                         }
8258
8259                 else switch ( yy_get_next_buffer(  ) )
8260                         {
8261                         case EOB_ACT_END_OF_FILE:
8262                                 {
8263                                 (yy_did_buffer_switch_on_eof) = 0;
8264
8265                                 if ( surf_parse_wrap( ) )
8266                                         {
8267                                         /* Note: because we've taken care in
8268                                          * yy_get_next_buffer() to have set up
8269                                          * surf_parse_text, we can now set up
8270                                          * yy_c_buf_p so that if some total
8271                                          * hoser (like flex itself) wants to
8272                                          * call the scanner after we return the
8273                                          * YY_NULL, it'll still work - another
8274                                          * YY_NULL will get returned.
8275                                          */
8276                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
8277
8278                                         yy_act = YY_STATE_EOF(YY_START);
8279                                         goto do_action;
8280                                         }
8281
8282                                 else
8283                                         {
8284                                         if ( ! (yy_did_buffer_switch_on_eof) )
8285                                                 YY_NEW_FILE;
8286                                         }
8287                                 break;
8288                                 }
8289
8290                         case EOB_ACT_CONTINUE_SCAN:
8291                                 (yy_c_buf_p) =
8292                                         (yytext_ptr) + yy_amount_of_matched_text;
8293
8294                                 yy_current_state = yy_get_previous_state(  );
8295
8296                                 yy_cp = (yy_c_buf_p);
8297                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
8298                                 goto yy_match;
8299
8300                         case EOB_ACT_LAST_MATCH:
8301                                 (yy_c_buf_p) =
8302                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
8303
8304                                 yy_current_state = yy_get_previous_state(  );
8305
8306                                 yy_cp = (yy_c_buf_p);
8307                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
8308                                 goto yy_find_action;
8309                         }
8310                 break;
8311                 }
8312
8313         default:
8314                 YY_FATAL_ERROR(
8315                         "fatal flex scanner internal error--no action found" );
8316         } /* end of action switch */
8317                 } /* end of scanning one token */
8318 } /* end of surf_parse_lex */
8319
8320 /* yy_get_next_buffer - try to read in a new buffer
8321  *
8322  * Returns a code representing an action:
8323  *      EOB_ACT_LAST_MATCH -
8324  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
8325  *      EOB_ACT_END_OF_FILE - end of file
8326  */
8327 static int yy_get_next_buffer (void)
8328 {
8329         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
8330         register char *source = (yytext_ptr);
8331         register int number_to_move, i;
8332         int ret_val;
8333
8334         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
8335                 YY_FATAL_ERROR(
8336                 "fatal flex scanner internal error--end of buffer missed" );
8337
8338         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
8339                 { /* Don't try to fill the buffer, so this is an EOF. */
8340                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
8341                         {
8342                         /* We matched a single character, the EOB, so
8343                          * treat this as a final EOF.
8344                          */
8345                         return EOB_ACT_END_OF_FILE;
8346                         }
8347
8348                 else
8349                         {
8350                         /* We matched some text prior to the EOB, first
8351                          * process it.
8352                          */
8353                         return EOB_ACT_LAST_MATCH;
8354                         }
8355                 }
8356
8357         /* Try to read more data. */
8358
8359         /* First move last chars to start of buffer. */
8360         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
8361
8362         for ( i = 0; i < number_to_move; ++i )
8363                 *(dest++) = *(source++);
8364
8365         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
8366                 /* don't do the read, it's not guaranteed to return an EOF,
8367                  * just force an EOF
8368                  */
8369                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
8370
8371         else
8372                 {
8373                         int num_to_read =
8374                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
8375
8376                 while ( num_to_read <= 0 )
8377                         { /* Not enough room in the buffer - grow it. */
8378
8379                         /* just a shorter name for the current buffer */
8380                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
8381
8382                         int yy_c_buf_p_offset =
8383                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
8384
8385                         if ( b->yy_is_our_buffer )
8386                                 {
8387                                 int new_size = b->yy_buf_size * 2;
8388
8389                                 if ( new_size <= 0 )
8390                                         b->yy_buf_size += b->yy_buf_size / 8;
8391                                 else
8392                                         b->yy_buf_size *= 2;
8393
8394                                 b->yy_ch_buf = (char *)
8395                                         /* Include room in for 2 EOB chars. */
8396                                         surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
8397                                 }
8398                         else
8399                                 /* Can't grow it, we don't own it. */
8400                                 b->yy_ch_buf = 0;
8401
8402                         if ( ! b->yy_ch_buf )
8403                                 YY_FATAL_ERROR(
8404                                 "fatal error - scanner input buffer overflow" );
8405
8406                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
8407
8408                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
8409                                                 number_to_move - 1;
8410
8411                         }
8412
8413                 if ( num_to_read > YY_READ_BUF_SIZE )
8414                         num_to_read = YY_READ_BUF_SIZE;
8415
8416                 /* Read in more data. */
8417                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
8418                         (yy_n_chars), (size_t) num_to_read );
8419
8420                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
8421                 }
8422
8423         if ( (yy_n_chars) == 0 )
8424                 {
8425                 if ( number_to_move == YY_MORE_ADJ )
8426                         {
8427                         ret_val = EOB_ACT_END_OF_FILE;
8428                         surf_parse_restart(surf_parse_in  );
8429                         }
8430
8431                 else
8432                         {
8433                         ret_val = EOB_ACT_LAST_MATCH;
8434                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
8435                                 YY_BUFFER_EOF_PENDING;
8436                         }
8437                 }
8438
8439         else
8440                 ret_val = EOB_ACT_CONTINUE_SCAN;
8441
8442         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
8443                 /* Extend the array by 50%, plus the number we really need. */
8444                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
8445                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) surf_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
8446                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
8447                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
8448         }
8449
8450         (yy_n_chars) += number_to_move;
8451         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
8452         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
8453
8454         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
8455
8456         return ret_val;
8457 }
8458
8459 /* yy_get_previous_state - get the state just before the EOB char was reached */
8460
8461     static yy_state_type yy_get_previous_state (void)
8462 {
8463         register yy_state_type yy_current_state;
8464         register char *yy_cp;
8465     
8466         yy_current_state = (yy_start);
8467
8468         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
8469                 {
8470                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
8471                 if ( yy_accept[yy_current_state] )
8472                         {
8473                         (yy_last_accepting_state) = yy_current_state;
8474                         (yy_last_accepting_cpos) = yy_cp;
8475                         }
8476                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
8477                         {
8478                         yy_current_state = (int) yy_def[yy_current_state];
8479                         if ( yy_current_state >= 2960 )
8480                                 yy_c = yy_meta[(unsigned int) yy_c];
8481                         }
8482                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
8483                 }
8484
8485         return yy_current_state;
8486 }
8487
8488 /* yy_try_NUL_trans - try to make a transition on the NUL character
8489  *
8490  * synopsis
8491  *      next_state = yy_try_NUL_trans( current_state );
8492  */
8493     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
8494 {
8495         register int yy_is_jam;
8496         register char *yy_cp = (yy_c_buf_p);
8497
8498         register YY_CHAR yy_c = 1;
8499         if ( yy_accept[yy_current_state] )
8500                 {
8501                 (yy_last_accepting_state) = yy_current_state;
8502                 (yy_last_accepting_cpos) = yy_cp;
8503                 }
8504         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
8505                 {
8506                 yy_current_state = (int) yy_def[yy_current_state];
8507                 if ( yy_current_state >= 2960 )
8508                         yy_c = yy_meta[(unsigned int) yy_c];
8509                 }
8510         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
8511         yy_is_jam = (yy_current_state == 2959);
8512
8513         return yy_is_jam ? 0 : yy_current_state;
8514 }
8515
8516 #ifndef YY_NO_INPUT
8517 #ifdef __cplusplus
8518     static int yyinput (void)
8519 #else
8520     static int input  (void)
8521 #endif
8522
8523 {
8524         int c;
8525     
8526         *(yy_c_buf_p) = (yy_hold_char);
8527
8528         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
8529                 {
8530                 /* yy_c_buf_p now points to the character we want to return.
8531                  * If this occurs *before* the EOB characters, then it's a
8532                  * valid NUL; if not, then we've hit the end of the buffer.
8533                  */
8534                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
8535                         /* This was really a NUL. */
8536                         *(yy_c_buf_p) = '\0';
8537
8538                 else
8539                         { /* need more input */
8540                         int offset = (yy_c_buf_p) - (yytext_ptr);
8541                         ++(yy_c_buf_p);
8542
8543                         switch ( yy_get_next_buffer(  ) )
8544                                 {
8545                                 case EOB_ACT_LAST_MATCH:
8546                                         /* This happens because yy_g_n_b()
8547                                          * sees that we've accumulated a
8548                                          * token and flags that we need to
8549                                          * try matching the token before
8550                                          * proceeding.  But for input(),
8551                                          * there's no matching to consider.
8552                                          * So convert the EOB_ACT_LAST_MATCH
8553                                          * to EOB_ACT_END_OF_FILE.
8554                                          */
8555
8556                                         /* Reset buffer status. */
8557                                         surf_parse_restart(surf_parse_in );
8558
8559                                         /*FALLTHROUGH*/
8560
8561                                 case EOB_ACT_END_OF_FILE:
8562                                         {
8563                                         if ( surf_parse_wrap( ) )
8564                                                 return EOF;
8565
8566                                         if ( ! (yy_did_buffer_switch_on_eof) )
8567                                                 YY_NEW_FILE;
8568 #ifdef __cplusplus
8569                                         return yyinput();
8570 #else
8571                                         return input();
8572 #endif
8573                                         }
8574
8575                                 case EOB_ACT_CONTINUE_SCAN:
8576                                         (yy_c_buf_p) = (yytext_ptr) + offset;
8577                                         break;
8578                                 }
8579                         }
8580                 }
8581
8582         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
8583         *(yy_c_buf_p) = '\0';   /* preserve surf_parse_text */
8584         (yy_hold_char) = *++(yy_c_buf_p);
8585
8586         if ( c == '\n' )
8587                    
8588     surf_parse_lineno++;
8589 ;
8590
8591         return c;
8592 }
8593 #endif  /* ifndef YY_NO_INPUT */
8594
8595 /** Immediately switch to a different input stream.
8596  * @param input_file A readable stream.
8597  * 
8598  * @note This function does not reset the start condition to @c INITIAL .
8599  */
8600     void surf_parse_restart  (FILE * input_file )
8601 {
8602     
8603         if ( ! YY_CURRENT_BUFFER ){
8604         surf_parse_ensure_buffer_stack ();
8605                 YY_CURRENT_BUFFER_LVALUE =
8606             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
8607         }
8608
8609         surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
8610         surf_parse__load_buffer_state( );
8611 }
8612
8613 /** Switch to a different input buffer.
8614  * @param new_buffer The new input buffer.
8615  * 
8616  */
8617     void surf_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
8618 {
8619     
8620         /* TODO. We should be able to replace this entire function body
8621          * with
8622          *              surf_parse_pop_buffer_state();
8623          *              surf_parse_push_buffer_state(new_buffer);
8624      */
8625         surf_parse_ensure_buffer_stack ();
8626         if ( YY_CURRENT_BUFFER == new_buffer )
8627                 return;
8628
8629         if ( YY_CURRENT_BUFFER )
8630                 {
8631                 /* Flush out information for old buffer. */
8632                 *(yy_c_buf_p) = (yy_hold_char);
8633                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
8634                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
8635                 }
8636
8637         YY_CURRENT_BUFFER_LVALUE = new_buffer;
8638         surf_parse__load_buffer_state( );
8639
8640         /* We don't actually know whether we did this switch during
8641          * EOF (surf_parse_wrap()) processing, but the only time this flag
8642          * is looked at is after surf_parse_wrap() is called, so it's safe
8643          * to go ahead and always set it.
8644          */
8645         (yy_did_buffer_switch_on_eof) = 1;
8646 }
8647
8648 static void surf_parse__load_buffer_state  (void)
8649 {
8650         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
8651         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
8652         surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
8653         (yy_hold_char) = *(yy_c_buf_p);
8654 }
8655
8656 /** Allocate and initialize an input buffer state.
8657  * @param file A readable stream.
8658  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
8659  * 
8660  * @return the allocated buffer state.
8661  */
8662     YY_BUFFER_STATE surf_parse__create_buffer  (FILE * file, int  size )
8663 {
8664         YY_BUFFER_STATE b;
8665     
8666         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
8667         if ( ! b )
8668                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
8669
8670         b->yy_buf_size = size;
8671
8672         /* yy_ch_buf has to be 2 characters longer than the size given because
8673          * we need to put in 2 end-of-buffer characters.
8674          */
8675         b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2  );
8676         if ( ! b->yy_ch_buf )
8677                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
8678
8679         b->yy_is_our_buffer = 1;
8680
8681         surf_parse__init_buffer(b,file );
8682
8683         return b;
8684 }
8685
8686 /** Destroy the buffer.
8687  * @param b a buffer created with surf_parse__create_buffer()
8688  * 
8689  */
8690     void surf_parse__delete_buffer (YY_BUFFER_STATE  b )
8691 {
8692     
8693         if ( ! b )
8694                 return;
8695
8696         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
8697                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
8698
8699         if ( b->yy_is_our_buffer )
8700                 surf_parse_free((void *) b->yy_ch_buf  );
8701
8702         surf_parse_free((void *) b  );
8703 }
8704
8705 #ifndef __cplusplus
8706 extern int isatty (int );
8707 #endif /* __cplusplus */
8708     
8709 /* Initializes or reinitializes a buffer.
8710  * This function is sometimes called more than once on the same buffer,
8711  * such as during a surf_parse_restart() or at EOF.
8712  */
8713     static void surf_parse__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
8714
8715 {
8716         int oerrno = errno;
8717     
8718         surf_parse__flush_buffer(b );
8719
8720         b->yy_input_file = file;
8721         b->yy_fill_buffer = 1;
8722
8723     /* If b is the current buffer, then surf_parse__init_buffer was _probably_
8724      * called from surf_parse_restart() or through yy_get_next_buffer.
8725      * In that case, we don't want to reset the lineno or column.
8726      */
8727     if (b != YY_CURRENT_BUFFER){
8728         b->yy_bs_lineno = 1;
8729         b->yy_bs_column = 0;
8730     }
8731
8732         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
8733     
8734         errno = oerrno;
8735 }
8736
8737 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
8738  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
8739  * 
8740  */
8741     void surf_parse__flush_buffer (YY_BUFFER_STATE  b )
8742 {
8743         if ( ! b )
8744                 return;
8745
8746         b->yy_n_chars = 0;
8747
8748         /* We always need two end-of-buffer characters.  The first causes
8749          * a transition to the end-of-buffer state.  The second causes
8750          * a jam in that state.
8751          */
8752         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
8753         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
8754
8755         b->yy_buf_pos = &b->yy_ch_buf[0];
8756
8757         b->yy_at_bol = 1;
8758         b->yy_buffer_status = YY_BUFFER_NEW;
8759
8760         if ( b == YY_CURRENT_BUFFER )
8761                 surf_parse__load_buffer_state( );
8762 }
8763
8764 /** Pushes the new state onto the stack. The new state becomes
8765  *  the current state. This function will allocate the stack
8766  *  if necessary.
8767  *  @param new_buffer The new state.
8768  *  
8769  */
8770 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
8771 {
8772         if (new_buffer == NULL)
8773                 return;
8774
8775         surf_parse_ensure_buffer_stack();
8776
8777         /* This block is copied from surf_parse__switch_to_buffer. */
8778         if ( YY_CURRENT_BUFFER )
8779                 {
8780                 /* Flush out information for old buffer. */
8781                 *(yy_c_buf_p) = (yy_hold_char);
8782                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
8783                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
8784                 }
8785
8786         /* Only push if top exists. Otherwise, replace top. */
8787         if (YY_CURRENT_BUFFER)
8788                 (yy_buffer_stack_top)++;
8789         YY_CURRENT_BUFFER_LVALUE = new_buffer;
8790
8791         /* copied from surf_parse__switch_to_buffer. */
8792         surf_parse__load_buffer_state( );
8793         (yy_did_buffer_switch_on_eof) = 1;
8794 }
8795
8796 /** Removes and deletes the top of the stack, if present.
8797  *  The next element becomes the new top.
8798  *  
8799  */
8800 void surf_parse_pop_buffer_state (void)
8801 {
8802         if (!YY_CURRENT_BUFFER)
8803                 return;
8804
8805         surf_parse__delete_buffer(YY_CURRENT_BUFFER );
8806         YY_CURRENT_BUFFER_LVALUE = NULL;
8807         if ((yy_buffer_stack_top) > 0)
8808                 --(yy_buffer_stack_top);
8809
8810         if (YY_CURRENT_BUFFER) {
8811                 surf_parse__load_buffer_state( );
8812                 (yy_did_buffer_switch_on_eof) = 1;
8813         }
8814 }
8815
8816 /* Allocates the stack if it does not exist.
8817  *  Guarantees space for at least one push.
8818  */
8819 static void surf_parse_ensure_buffer_stack (void)
8820 {
8821         int num_to_alloc;
8822     
8823         if (!(yy_buffer_stack)) {
8824
8825                 /* First allocation is just for 2 elements, since we don't know if this
8826                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
8827                  * immediate realloc on the next call.
8828          */
8829                 num_to_alloc = 1;
8830                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
8831                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
8832                                                                 );
8833                 if ( ! (yy_buffer_stack) )
8834                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
8835                                                                   
8836                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
8837                                 
8838                 (yy_buffer_stack_max) = num_to_alloc;
8839                 (yy_buffer_stack_top) = 0;
8840                 return;
8841         }
8842
8843         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
8844
8845                 /* Increase the buffer to prepare for a possible push. */
8846                 int grow_size = 8 /* arbitrary grow size */;
8847
8848                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
8849                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
8850                                                                 ((yy_buffer_stack),
8851                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
8852                                                                 );
8853                 if ( ! (yy_buffer_stack) )
8854                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
8855
8856                 /* zero only the new slots.*/
8857                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
8858                 (yy_buffer_stack_max) = num_to_alloc;
8859         }
8860 }
8861
8862 /** Setup the input buffer state to scan directly from a user-specified character buffer.
8863  * @param base the character buffer
8864  * @param size the size in bytes of the character buffer
8865  * 
8866  * @return the newly allocated buffer state object. 
8867  */
8868 YY_BUFFER_STATE surf_parse__scan_buffer  (char * base, yy_size_t  size )
8869 {
8870         YY_BUFFER_STATE b;
8871     
8872         if ( size < 2 ||
8873              base[size-2] != YY_END_OF_BUFFER_CHAR ||
8874              base[size-1] != YY_END_OF_BUFFER_CHAR )
8875                 /* They forgot to leave room for the EOB's. */
8876                 return 0;
8877
8878         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
8879         if ( ! b )
8880                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
8881
8882         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
8883         b->yy_buf_pos = b->yy_ch_buf = base;
8884         b->yy_is_our_buffer = 0;
8885         b->yy_input_file = 0;
8886         b->yy_n_chars = b->yy_buf_size;
8887         b->yy_is_interactive = 0;
8888         b->yy_at_bol = 1;
8889         b->yy_fill_buffer = 0;
8890         b->yy_buffer_status = YY_BUFFER_NEW;
8891
8892         surf_parse__switch_to_buffer(b  );
8893
8894         return b;
8895 }
8896
8897 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
8898  * scan from a @e copy of @a str.
8899  * @param yystr a NUL-terminated string to scan
8900  * 
8901  * @return the newly allocated buffer state object.
8902  * @note If you want to scan bytes that may contain NUL values, then use
8903  *       surf_parse__scan_bytes() instead.
8904  */
8905 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
8906 {
8907     
8908         return surf_parse__scan_bytes(yystr,strlen(yystr) );
8909 }
8910
8911 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
8912  * scan from a @e copy of @a bytes.
8913  * @param yybytes the byte buffer to scan
8914  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
8915  * 
8916  * @return the newly allocated buffer state object.
8917  */
8918 YY_BUFFER_STATE surf_parse__scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
8919 {
8920         YY_BUFFER_STATE b;
8921         char *buf;
8922         yy_size_t n;
8923         int i;
8924     
8925         /* Get memory for full buffer, including space for trailing EOB's. */
8926         n = _yybytes_len + 2;
8927         buf = (char *) surf_parse_alloc(n  );
8928         if ( ! buf )
8929                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
8930
8931         for ( i = 0; i < _yybytes_len; ++i )
8932                 buf[i] = yybytes[i];
8933
8934         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
8935
8936         b = surf_parse__scan_buffer(buf,n );
8937         if ( ! b )
8938                 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
8939
8940         /* It's okay to grow etc. this buffer, and we should throw it
8941          * away when we're done.
8942          */
8943         b->yy_is_our_buffer = 1;
8944
8945         return b;
8946 }
8947
8948     static void yy_push_state (int  new_state )
8949 {
8950         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
8951                 {
8952                 yy_size_t new_size;
8953
8954                 (yy_start_stack_depth) += YY_START_STACK_INCR;
8955                 new_size = (yy_start_stack_depth) * sizeof( int );
8956
8957                 if ( ! (yy_start_stack) )
8958                         (yy_start_stack) = (int *) surf_parse_alloc(new_size  );
8959
8960                 else
8961                         (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size  );
8962
8963                 if ( ! (yy_start_stack) )
8964                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
8965                 }
8966
8967         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
8968
8969         BEGIN(new_state);
8970 }
8971
8972     static void yy_pop_state  (void)
8973 {
8974         if ( --(yy_start_stack_ptr) < 0 )
8975                 YY_FATAL_ERROR( "start-condition stack underflow" );
8976
8977         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
8978 }
8979
8980 #ifndef YY_EXIT_FAILURE
8981 #define YY_EXIT_FAILURE 2
8982 #endif
8983
8984 static void yy_fatal_error (yyconst char* msg )
8985 {
8986         (void) fprintf( stderr, "%s\n", msg );
8987         exit( YY_EXIT_FAILURE );
8988 }
8989
8990 /* Redefine yyless() so it works in section 3 code. */
8991
8992 #undef yyless
8993 #define yyless(n) \
8994         do \
8995                 { \
8996                 /* Undo effects of setting up surf_parse_text. */ \
8997         int yyless_macro_arg = (n); \
8998         YY_LESS_LINENO(yyless_macro_arg);\
8999                 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
9000                 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
9001                 (yy_hold_char) = *(yy_c_buf_p); \
9002                 *(yy_c_buf_p) = '\0'; \
9003                 surf_parse_leng = yyless_macro_arg; \
9004                 } \
9005         while ( 0 )
9006
9007 /* Accessor  methods (get/set functions) to struct members. */
9008
9009 /** Get the current line number.
9010  * 
9011  */
9012 int surf_parse_get_lineno  (void)
9013 {
9014         
9015     return surf_parse_lineno;
9016 }
9017
9018 /** Get the input stream.
9019  * 
9020  */
9021 FILE *surf_parse_get_in  (void)
9022 {
9023         return surf_parse_in;
9024 }
9025
9026 /** Get the output stream.
9027  * 
9028  */
9029 FILE *surf_parse_get_out  (void)
9030 {
9031         return surf_parse_out;
9032 }
9033
9034 /** Get the length of the current token.
9035  * 
9036  */
9037 int surf_parse_get_leng  (void)
9038 {
9039         return surf_parse_leng;
9040 }
9041
9042 /** Get the current token.
9043  * 
9044  */
9045
9046 char *surf_parse_get_text  (void)
9047 {
9048         return surf_parse_text;
9049 }
9050
9051 /** Set the current line number.
9052  * @param line_number
9053  * 
9054  */
9055 void surf_parse_set_lineno (int  line_number )
9056 {
9057     
9058     surf_parse_lineno = line_number;
9059 }
9060
9061 /** Set the input stream. This does not discard the current
9062  * input buffer.
9063  * @param in_str A readable stream.
9064  * 
9065  * @see surf_parse__switch_to_buffer
9066  */
9067 void surf_parse_set_in (FILE *  in_str )
9068 {
9069         surf_parse_in = in_str ;
9070 }
9071
9072 void surf_parse_set_out (FILE *  out_str )
9073 {
9074         surf_parse_out = out_str ;
9075 }
9076
9077 int surf_parse_get_debug  (void)
9078 {
9079         return surf_parse__flex_debug;
9080 }
9081
9082 void surf_parse_set_debug (int  bdebug )
9083 {
9084         surf_parse__flex_debug = bdebug ;
9085 }
9086
9087 static int yy_init_globals (void)
9088 {
9089         /* Initialization is the same as for the non-reentrant scanner.
9090      * This function is called from surf_parse_lex_destroy(), so don't allocate here.
9091      */
9092
9093     /* We do not touch surf_parse_lineno unless the option is enabled. */
9094     surf_parse_lineno =  1;
9095     
9096     (yy_buffer_stack) = 0;
9097     (yy_buffer_stack_top) = 0;
9098     (yy_buffer_stack_max) = 0;
9099     (yy_c_buf_p) = (char *) 0;
9100     (yy_init) = 0;
9101     (yy_start) = 0;
9102
9103     (yy_start_stack_ptr) = 0;
9104     (yy_start_stack_depth) = 0;
9105     (yy_start_stack) =  NULL;
9106
9107 /* Defined in main.c */
9108 #ifdef YY_STDINIT
9109     surf_parse_in = stdin;
9110     surf_parse_out = stdout;
9111 #else
9112     surf_parse_in = (FILE *) 0;
9113     surf_parse_out = (FILE *) 0;
9114 #endif
9115
9116     /* For future reference: Set errno on error, since we are called by
9117      * surf_parse_lex_init()
9118      */
9119     return 0;
9120 }
9121
9122 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
9123 int surf_parse_lex_destroy  (void)
9124 {
9125     
9126     /* Pop the buffer stack, destroying each element. */
9127         while(YY_CURRENT_BUFFER){
9128                 surf_parse__delete_buffer(YY_CURRENT_BUFFER  );
9129                 YY_CURRENT_BUFFER_LVALUE = NULL;
9130                 surf_parse_pop_buffer_state();
9131         }
9132
9133         /* Destroy the stack itself. */
9134         surf_parse_free((yy_buffer_stack) );
9135         (yy_buffer_stack) = NULL;
9136
9137     /* Destroy the start condition stack. */
9138         surf_parse_free((yy_start_stack)  );
9139         (yy_start_stack) = NULL;
9140
9141     /* Reset the globals. This is important in a non-reentrant scanner so the next time
9142      * surf_parse_lex() is called, initialization will occur. */
9143     yy_init_globals( );
9144
9145     return 0;
9146 }
9147
9148 /*
9149  * Internal utility routines.
9150  */
9151
9152 #ifndef yytext_ptr
9153 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
9154 {
9155         register int i;
9156         for ( i = 0; i < n; ++i )
9157                 s1[i] = s2[i];
9158 }
9159 #endif
9160
9161 #ifdef YY_NEED_STRLEN
9162 static int yy_flex_strlen (yyconst char * s )
9163 {
9164         register int n;
9165         for ( n = 0; s[n]; ++n )
9166                 ;
9167
9168         return n;
9169 }
9170 #endif
9171
9172 void *surf_parse_alloc (yy_size_t  size )
9173 {
9174         return (void *) malloc( size );
9175 }
9176
9177 void *surf_parse_realloc  (void * ptr, yy_size_t  size )
9178 {
9179         /* The cast to (char *) in the following accommodates both
9180          * implementations that use char* generic pointers, and those
9181          * that use void* generic pointers.  It works with the latter
9182          * because both ANSI C and C++ allow castless assignment from
9183          * any pointer type to void*, and deal with argument conversions
9184          * as though doing an assignment.
9185          */
9186         return (void *) realloc( (char *) ptr, size );
9187 }
9188
9189 void surf_parse_free (void * ptr )
9190 {
9191         free( (char *) ptr );   /* see surf_parse_realloc() for (char *) cast */
9192 }
9193
9194 #define YYTABLES_NAME "yytables"
9195
9196 /* Element context stack lookup. */
9197 int surfxml_element_context(int i)
9198 {
9199   return (0<i && i<yy_start_stack_depth
9200           ? yy_start_stack[yy_start_stack_ptr - i]
9201           : 0);
9202 }
9203
9204 #ifdef FLEX_DEBUG
9205 void print_yy_stack(char* fmt, ...)
9206 {
9207   int i = 0; va_list ap; va_start(ap, fmt);
9208   vfprintf(stderr, fmt, ap);
9209   if (surfxml_statenames) {
9210       for (i=1; i<yy_start_stack_ptr; i++) {
9211           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
9212       }
9213       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
9214   }
9215   va_end(ap);
9216 }
9217
9218 void print_surfxml_bufferstack()
9219 {
9220     int i;
9221     fputs("Buffer: ", stderr);
9222     for (i = 0; i < blimit; i++) {
9223        if ( surfxml_bufferstack[i] == '\377' ) break;
9224          putc(surfxml_bufferstack[i], stderr);
9225     }
9226     putc('\n', stderr);
9227 }
9228
9229 static void debug_enter(int state, const char* statename) {
9230   yy_push_state(state);
9231   if (surf_parse__flex_debug) {
9232        print_yy_stack("--ENTER(%s) : ",statename);
9233        print_surfxml_bufferstack();
9234   }
9235 }
9236
9237 static void debug_leave(void) {
9238     if (surf_parse__flex_debug) {
9239         print_yy_stack("--LEAVE : ");
9240         print_surfxml_bufferstack();
9241     }
9242   yy_pop_state();
9243 }
9244
9245 static void debug_set(int state, const char* statename) {
9246   BEGIN(state);
9247   if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
9248 }
9249 #endif
9250
9251 static void cleanup(void)
9252 {
9253     if (surfxml_statenames) {
9254         free(surfxml_statenames);
9255         surfxml_statenames = NULL;
9256     }
9257     free(surfxml_bufferstack);
9258     surfxml_bufferstack = NULL;
9259
9260     free(indexstack);
9261     indexstack = NULL;
9262 }
9263
9264 static int fail(const char* fmt, ...)
9265 {
9266     int chars_left, used;
9267     va_list ap; va_start(ap, fmt);
9268 #ifdef FLEXML_yylineno
9269     used = sprintf(flexml_err_msg,
9270                    "Invalid XML (XML input line %d, state %d): ",
9271                    surf_parse_lineno, YY_START);
9272 #else
9273     used = sprintf(flexml_err_msg,
9274                    "Invalid XML (state %d): ",
9275                    YY_START);
9276 #endif
9277     chars_left = flexml_max_err_msg_size - used - 1;
9278     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
9279     va_end(ap);
9280
9281 #ifndef FLEXML_quiet_parser
9282     /* print directly to sdterr */
9283     fprintf(stderr, "%s\n", flexml_err_msg);
9284     flexml_err_msg[0] = '\0';
9285 #endif
9286
9287     cleanup();
9288
9289     return 1;
9290 }
9291