Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot//simgrid/simgrid
[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 459
407 #define YY_END_OF_BUFFER 460
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[2702] =
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,  460,  458,   15,   10,
442        10,   15,   15,  438,   10,  438,    5,    6,    5,    8,
443         9,    8,  454,  446,  447,  455,  452,  455,  453,  457,
444       446,  447,  457,  458,   22,   10,   22,   22,   22,   20,
445        22,   26,   10,   26,   26,  458,   26,  458,  458,   26,
446        33,   10,   33,   33,   33,   31,   33,   37,   10,   37,
447        37,   48,   10,   48,   48,   48,   46,   48,   48,   48,
448       455,  454,   78,   10,   78,   78,   78,   76,   78,   78,
449
450        78,   78,   78,   82,   10,   82,  458,   82,  101,   10,
451       101,  101,  101,   99,  101,  101,  101,  105,   10,  105,
452       114,   10,  114,  114,  114,  112,  114,  114,  118,   10,
453       118,  118,  458,  118,  118,  458,  458,  118,  458,  118,
454       458,  118,  129,   10,  129,  129,  129,  127,  129,  129,
455       129,  133,   10,  133,  133,  142,   10,  142,  142,  142,
456       140,  142,  142,  146,   10,  146,  146,  155,   10,  155,
457       155,  155,  153,  155,  155,  159,   10,  159,  168,   10,
458       168,  168,  168,  166,  168,  168,  172,   10,  172,  195,
459        10,  195,  195,  195,  193,  195,  195,  195,  195,  195,
460
461       199,   10,  199,  458,  199,  240,   10,  240,  240,  240,
462       238,  240,  240,  240,  240,  240,  240,  240,  240,  244,
463        10,  244,  265,   10,  265,  265,  265,  263,  265,  265,
464       265,  265,  265,  265,  265,  269,   10,  269,  278,   10,
465       278,  278,  278,  276,  278,  278,  282,   10,  282,  309,
466        10,  309,  309,  309,  307,  309,  309,  309,  309,  313,
467        10,  313,  313,  326,   10,  326,  326,  326,  324,  326,
468       326,  330,   10,  330,  458,  330,  347,   10,  347,  347,
469       347,  345,  347,  347,  347,  351,   10,  351,  351,  364,
470        10,  364,  364,  364,  362,  364,  364,  368,   10,  368,
471
472       381,   10,  381,  381,  381,  379,  381,  381,  381,  385,
473        10,  385,  385,  398,   10,  398,  398,  398,  396,  398,
474       398,  398,  398,  402,   10,  402,  458,  402,  409,   10,
475       409,  409,  409,  407,  409,  413,   10,  413,  420,   10,
476       420,  420,  420,  418,  420,  424,   10,  424,  424,  433,
477        10,  433,  433,  433,  431,  433,  433,  437,   10,  437,
478        10,    0,    2,    2,    0,    4,    7,  449,  448,    0,
479         0,    0,    0,    0,    0,    0,   21,   23,   23,    0,
480         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
481         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
482
483         0,    0,   32,   34,   34,    0,   47,   49,   49,   49,
484        49,    0,    0,    0,   77,   79,   79,   79,   79,   79,
485        79,   79,   79,   79,    0,    0,  100,  102,  102,  102,
486       102,    0,  113,  115,  115,  115,    0,    0,    0,    0,
487         0,    0,    0,    0,    0,    0,  128,  130,  130,  130,
488       130,    0,  141,  143,  143,  143,    0,  154,  156,  156,
489       156,    0,  167,  169,  169,  169,    0,  194,  196,  196,
490       196,  196,  196,  196,    0,    0,  239,  241,  241,  241,
491       241,  241,  241,  241,  241,  241,  241,  241,  241,  241,
492       241,    0,  264,  266,  266,  266,  266,  266,  266,  266,
493
494       266,    0,  277,  279,  279,  279,    0,  308,  310,  310,
495       310,  310,  310,  310,    0,  325,  327,  327,  327,  327,
496         0,    0,  346,  348,  348,  348,  348,  348,    0,  363,
497       365,  365,  365,    0,  380,  382,  382,  382,  382,    0,
498       397,  399,  399,  399,  399,  399,    0,    0,  408,  410,
499       410,    0,  419,  421,  421,    0,  432,  434,  434,  434,
500         0,    0,    0,    0,    0,    3,    0,    0,    0,    0,
501         0,    0,    0,  456,    0,   23,    0,    0,  107,    0,
502         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
503         0,    0,    0,    0,    0,    0,    0,  106,    0,    0,
504
505         0,    0,    0,   34,    0,    0,   49,    0,    0,   49,
506         0,    0,    0,  451,   79,    0,    0,   79,   79,   79,
507        79,   79,   79,    0,    0,    0,  102,  102,  102,    0,
508         0,    0,    0,  115,    0,    0,  107,    0,    0,    0,
509         0,    0,  106,    0,    0,  130,    0,    0,  130,    0,
510         0,    0,    0,  143,    0,    0,    0,    0,  156,    0,
511         0,  169,  169,    0,    0,  196,  196,  196,    0,    0,
512       196,  196,    0,    0,    0,    0,  241,  241,    0,    0,
513       241,    0,    0,  241,  241,  241,  241,  241,  241,  241,
514       241,    0,    0,  266,  266,  266,    0,    0,  266,  266,
515
516       266,    0,    0,  279,    0,    0,    0,    0,  310,    0,
517         0,  310,  310,  310,    0,    0,  327,  327,  327,    0,
518         0,    0,  348,  348,  348,  348,    0,    0,  365,    0,
519         0,    0,    0,  382,  382,  382,    0,    0,  399,  399,
520       399,  399,    0,    0,    0,  410,    0,    0,    0,    0,
521         0,    0,    0,    0,  434,    0,    0,    0,   14,    1,
522         0,    0,  444,    0,    0,    0,  441,  440,    0,    0,
523        23,    0,    0,   25,    0,  107,    0,    0,    0,    0,
524         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
525         0,    0,    0,    0,    0,  106,    0,    0,    0,    0,
526
527         0,   34,    0,    0,   36,    0,   49,    0,   41,   40,
528        49,    0,    0,    0,   51,    0,   79,    0,   55,   54,
529         0,    0,   79,    0,    0,   79,   79,   79,    0,    0,
530        81,    0,    0,  102,  102,  102,    0,    0,  104,    0,
531         0,  109,  108,  115,    0,    0,  117,    0,    0,    0,
532         0,    0,    0,    0,    0,    0,  130,    0,  122,  121,
533       130,    0,    0,  132,    0,    0,  137,  136,  143,    0,
534         0,  145,    0,    0,  150,  149,  156,    0,    0,  158,
535         0,  169,  169,    0,    0,  171,    0,  196,  196,  196,
536         0,  176,  175,  196,  196,    0,    0,  198,    0,    0,
537
538         0,  241,  241,  241,  241,    0,  215,  214,  241,    0,
539       203,  202,    0,    0,  241,  241,  241,  241,  241,  241,
540       241,    0,    0,  243,    0,  266,  266,  266,  266,    0,
541       248,  247,    0,    0,  266,  266,    0,    0,  268,    0,
542       279,    0,  273,  272,    0,    0,  281,    0,  310,    0,
543       286,  285,  310,  310,  310,    0,    0,  312,    0,    0,
544         0,    0,    0,  327,    0,    0,  329,    0,    0,    0,
545         0,  348,  348,    0,    0,  348,    0,    0,  350,    0,
546       365,    0,  355,  354,    0,    0,  367,    0,    0,    0,
547       382,  382,    0,    0,    0,    0,  384,    0,  399,  399,
548
549       399,  399,    0,    0,  401,    0,    0,  410,    0,    0,
550       412,    0,    0,  417,  416,    0,    0,  423,    0,    0,
551       428,  427,  434,    0,    0,  436,    0,    0,    0,  445,
552       439,    0,    0,    0,   23,    0,    0,    0,    0,    0,
553         0,  173,    0,  283,    0,    0,  246,    0,    0,  425,
554         0,    0,    0,    0,    0,    0,    0,    0,  245,    0,
555         0,    0,    0,    0,    0,    0,   49,    0,    0,   79,
556         0,   59,   58,    0,    0,    0,   57,   56,   79,    0,
557         0,   79,    0,  426,  102,    0,    0,  102,    0,  115,
558         0,  116,    0,    0,  174,  284,    0,    0,    0,    0,
559
560       130,  130,    0,  143,    0,    0,    0,    0,    0,    0,
561       169,    0,  196,  196,    0,    0,  196,  196,    0,    0,
562         0,  241,  241,  241,  241,    0,    0,    0,  217,  216,
563       241,  241,  241,  241,  241,  241,  241,    0,  266,  266,
564       266,  266,    0,  256,  255,  266,  266,    0,  279,    0,
565       310,  310,  310,  310,    0,    0,  319,  318,    0,  317,
566       316,  327,    0,  283,    0,  336,  335,  348,  348,    0,
567       334,  333,  348,    0,  365,    0,    0,  374,  373,  382,
568       382,    0,  372,  371,    0,  399,    0,    0,  399,  399,
569         0,    0,  410,    0,    0,  434,    0,    0,    0,    0,
570
571        12,    0,  442,  443,    0,   23,    0,    0,    0,    0,
572         0,    0,  173,    0,  283,    0,  147,    0,  246,    0,
573         0,  425,    0,  314,    0,   39,    0,    0,    0,    0,
574       245,    0,   38,    0,   30,   29,    0,    0,   43,   42,
575        49,    0,    0,   79,    0,   61,   60,   79,    0,   65,
576        64,   79,    0,  426,  102,    0,    0,    0,    0,    0,
577         0,  115,    0,    0,  174,  284,  315,    0,  315,  314,
578       130,    0,    0,    0,  143,    0,    0,  152,  151,    0,
579         0,  165,  164,  169,    0,  196,  196,    0,  180,  179,
580         0,    0,    0,    0,  196,    0,  148,    0,  241,    0,
581
582         0,  241,  241,    0,  213,  212,    0,    0,  241,  241,
583       241,  241,  241,  241,    0,  266,    0,    0,  266,  266,
584         0,    0,  266,    0,  279,    0,  310,  310,  310,    0,
585         0,  310,    0,  327,    0,    0,  348,  348,  348,    0,
586       365,    0,  382,  382,    0,  399,    0,  389,  388,  399,
587       399,    0,    0,    0,    0,    0,    0,    0,    0,    0,
588         0,    0,    0,   11,    0,   23,    0,    0,    0,    0,
589         0,  415,    0,    0,  147,    0,    0,    0,   53,  314,
590       270,    0,   39,    0,  414,   52,    0,    0,    0,   38,
591         0,    0,   49,    0,    0,   79,   79,   79,    0,  102,
592
593         0,    0,    0,    0,    0,    0,    0,    0,    0,   96,
594        95,    0,  115,    0,    0,  315,  271,    0,  130,    0,
595       124,  123,    0,    0,    0,    0,    0,    0,    0,    0,
596       196,  196,    0,  178,  177,    0,    0,    0,  196,    0,
597       197,  148,    0,  241,    0,  225,  224,    0,    0,  241,
598         0,  211,  210,    0,    0,  241,  241,  241,  241,    0,
599         0,    0,  266,    0,  252,  251,    0,    0,  266,    0,
600       250,  249,  266,    0,  267,  279,    0,  310,  310,  310,
601         0,    0,    0,  310,    0,  311,  327,    0,    0,    0,
602         0,    0,    0,  348,    0,  365,    0,    0,    0,    0,
603
604         0,    0,  399,  399,  399,    0,    0,    0,  406,  405,
605         0,    0,    0,  430,  429,    0,  435,    0,    0,    0,
606         0,    0,    0,    0,  331,    0,    0,  201,  415,   28,
607         0,    0,    0,  387,   53,  270,  134,    0,  414,   52,
608       200,   27,  386,    0,    0,   49,    0,    0,   50,   79,
609         0,    0,   79,    0,    0,    0,    0,    0,    0,    0,
610         0,    0,    0,    0,    0,    0,    0,    0,    0,  332,
611         0,  271,  135,    0,    0,    0,    0,  139,  138,    0,
612         0,  157,    0,  163,  162,    0,  196,  196,    0,    0,
613       196,    0,  241,    0,  227,  226,  241,    0,  205,  204,
614
615         0,    0,  241,  241,  241,    0,  207,  206,    0,  266,
616         0,  254,  253,  266,  266,  279,    0,  310,    0,    0,
617       310,  310,    0,    0,  310,  327,    0,  328,    0,    0,
618       340,  339,    0,  338,  337,  348,    0,  365,    0,    0,
619       378,  377,    0,  376,  375,    0,  399,  399,  399,    0,
620         0,    0,    0,    0,    0,    0,   17,    0,   19,   18,
621         0,  331,  403,    0,  201,   28,  352,  160,   16,  387,
622       134,    0,    0,  200,   27,  386,    0,    0,   49,  450,
623        79,    0,   67,   66,   79,    0,   80,    0,   98,   97,
624         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
625
626         0,    0,  111,  110,  332,    0,  135,    0,    0,  126,
627       125,    0,    0,    0,  196,  196,    0,    0,    0,    0,
628       196,  161,  241,  241,    0,  209,  208,  241,  241,  241,
629         0,  266,  266,  266,  279,    0,  280,  310,    0,  292,
630       291,  310,  310,    0,    0,    0,    0,  310,  327,  353,
631       348,    0,  365,    0,    0,    0,    0,  399,  399,    0,
632       404,    0,    0,  422,    0,    0,    0,   17,    0,  403,
633         0,  352,  160,   16,    0,    0,    0,    0,   35,   49,
634         0,    0,   79,    0,    0,    0,    0,    0,    0,    0,
635         0,    0,    0,    0,    0,    0,    0,    0,  144,    0,
636
637       196,  196,    0,  186,    0,  185,  196,  161,  241,  241,
638         0,    0,  241,  241,    0,  242,  266,  266,  266,  279,
639         0,    0,  310,  310,  310,    0,  296,    0,  295,  310,
640       327,  353,  348,    0,  349,    0,    0,    0,    0,    0,
641       391,  390,    0,    0,  399,    0,  400,  404,    0,    0,
642         0,    0,    0,   24,    0,    0,    0,    0,   49,    0,
643         0,    0,   79,    0,    0,    0,    0,    0,    0,    0,
644         0,    0,    0,    0,    0,    0,    0,    0,  170,  196,
645       196,  188,  187,    0,    0,  241,  241,    0,  237,  236,
646       241,    0,    0,  266,  266,    0,    0,  279,    0,  288,
647
648       287,  310,  310,  310,  298,  297,    0,    0,  327,  348,
649         0,    0,    0,    0,  366,    0,    0,  395,  394,    0,
650         0,    0,  411,    0,    0,    0,  369,    0,    0,    0,
651         0,    0,    0,    0,    0,    0,    0,    0,   79,    0,
652         0,    0,    0,   88,    0,    0,    0,    0,   87,    0,
653       370,    0,    0,  196,    0,    0,    0,  190,  189,  241,
654       241,  241,    0,  235,  234,  266,    0,    0,    0,  262,
655       261,    0,    0,  310,  310,  310,    0,  300,  299,    0,
656         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
657         0,  393,  392,    0,    0,    0,  369,  119,    0,    0,
658
659         0,   45,   44,    0,    0,    0,    0,    0,    0,    0,
660         0,   79,    0,    0,    0,    0,    0,    0,    0,    0,
661         0,  370,  120,    0,    0,    0,  196,    0,  192,  191,
662       241,  241,  241,  266,    0,  258,  257,    0,  275,  274,
663       310,    0,    0,  310,    0,    0,    0,    0,    0,    0,
664         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
665         0,  119,   84,   83,    0,    0,    0,    0,    0,    0,
666         0,    0,    0,    0,    0,    0,   94,    0,    0,    0,
667        93,    0,    0,  120,    0,    0,  182,  181,  196,  241,
668       241,  241,  266,  310,    0,  294,  293,  310,    0,    0,
669
670         0,    0,    0,    0,    0,    0,    0,    0,  357,    0,
671         0,  356,    0,  383,    0,    0,    0,    0,    0,    0,
672        84,   83,    0,    0,    0,    0,    0,    0,    0,    0,
673         0,   63,   62,    0,    0,    0,    0,    0,    0,    0,
674         0,  131,  196,  241,  241,    0,    0,  266,    0,    0,
675         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
676         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
677         0,   75,   71,    0,    0,   74,   70,    0,   92,    0,
678         0,   91,    0,    0,    0,  103,  196,  241,  241,    0,
679         0,    0,  266,    0,  290,  289,    0,    0,    0,  323,
680
681         0,  322,    0,  344,    0,  343,    0,  359,  361,  358,
682       360,    0,    0,    0,   12,    0,   12,    0,    0,    0,
683         0,    0,   86,   90,   85,   89,  196,  241,  241,    0,
684         0,    0,    0,  266,    0,    0,    0,    0,  321,  320,
685       342,  341,    0,    0,    0,    0,    0,    0,    0,    0,
686         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
687         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
688         0,    0,    0,   69,    0,   68,    0,    0,  184,  183,
689         0,  233,  232,    0,    0,    0,    0,    0,    0,    0,
690         0,    0,    0,  260,  259,    0,    0,    0,    0,    0,
691
692         0,    0,   11,    0,    0,    0,    0,    0,    0,    0,
693         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
694         0,    0,   73,   72,    0,    0,    0,    0,    0,    0,
695         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
696         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
697         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
698         0,    0,    0,    0,  219,    0,    0,  218,    0,    0,
699       302,    0,    0,  301,    0,    0,    0,    0,    0,  223,
700         0,  222,    0,  304,    0,  303,    0,    0,    0,    0,
701         0,    0,    0,    0,    0,    0,    0,    0,  229,    0,
702
703       228,    0,    0,    0,    0,    0,    0,  231,  230,  221,
704       220,  306,  305,    0,    0,    0,    0,    0,    0,    0,
705         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
706         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
707         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
708         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
709         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
710         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
711         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
712         0,    0,    0,    0,    0,    0,    0,    0,    0,   13,
713
714         0
715     } ;
716
717 static yyconst flex_int32_t yy_ec[256] =
718     {   0,
719         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
720         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
721         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
722         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
723         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
724        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
725        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
726        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
727        31,   38,   39,   40,   41,   42,   43,   44,   45,   31,
728        46,    1,   47,    1,   48,    1,   49,   50,   51,   52,
729
730        53,   54,   55,   56,   57,   31,   58,   59,   60,   61,
731        62,   63,   64,   65,   66,   67,   68,   69,   70,   71,
732        72,   31,    1,    1,    1,    1,    1,    1,    1,    1,
733         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
734         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
735         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
736         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
737         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
738         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
739         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
740
741         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
742         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
743         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
744         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
745         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
746         1,    1,    1,    1,    1
747     } ;
748
749 static yyconst flex_int32_t yy_meta[73] =
750     {   0,
751         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
752         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
753         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
754         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
755         5,    5,    5,    5,    5,    1,    1,    5,    9,    9,
756         9,    9,    9,    9,    5,    5,    5,    5,    5,    5,
757         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
758         5,    5
759     } ;
760
761 static yyconst flex_int16_t yy_base[3077] =
762     {   0,
763         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
764        14,   17,   33,   36,   49,   55,   45,   61,   66,   72,
765       108,  177,   75,   78,   83,  128,  131,  134,  138,  141,
766       158,  197,  200,  203,  207,  210,  227,  230,  233,  236,
767       239,  256,  274,  328,  294,  297,  300,  304,  307,  348,
768       351,  354,  382,  445,  359,  414,  508,  574,  405,  408,
769       412,  417,  465,  468,  471,  475,  640,  707,  478,  528,
770       774,  839,  531,  534,  538,  541,  594,  597,  600,  604,
771       607,  660,  663,  666,  670,  673,  727,  730,  733,  737,
772       740,  794,  797,  800,  804,  807,  859,  862,  865,  869,
773
774       872,  889,  907,  967,  927,  930,  933,  937,  987,  990,
775       993,  997, 1027, 1094, 1047, 1050, 1053, 1057, 1060, 1114,
776      1117, 1120, 1161, 1222, 1124, 1127, 1283, 1350, 1181, 1184,
777      1417, 1483, 1187, 1191, 1194, 1242, 1245, 1248, 1252, 1255,
778      1549,    0, 1303, 1306, 1621,    0, 1309, 1313, 1693, 1750,
779      1316, 1370, 1807, 1873, 1373, 1376, 1380, 1383, 1437, 1440,
780      1443, 1447, 1939, 2005, 1503, 1506, 1509, 1513, 1713, 1716,
781      1719, 1723, 2071, 2137, 1770, 1773, 1776, 1780, 1827, 1830,
782      1833, 1837, 2203, 2260, 1840, 1893, 2317, 2383, 1896, 1899,
783      1903, 1906, 1959, 1962, 1965, 1969, 2449, 2515, 1972, 2025,
784
785      2028, 2031, 2035, 2038, 2091, 2094, 2581, 2650, 2097, 2101,
786      2719, 2776, 2104, 2157, 2160, 2163, 2167, 2170, 2223, 2226,
787      2833, 2902, 2229, 2233,    0,    0, 7420, 9692, 9692,   95,
788       100,   29,   41, 9692,  103,   51, 9692, 9692, 7409, 9692,
789      9692, 7394, 9692, 7409, 7409,  498, 9692, 9692, 9692, 9692,
790      7403, 7403, 7358,  145, 9692,  161, 7380,    0,  146, 9692,
791      7346, 9692,  166, 2967,   88,  204,  205,  254, 7386, 7330,
792      9692,  169, 7372,    0,  153, 9692, 7334, 9692,  260, 7374,
793        31, 9692,  357, 7365,    0,  244, 9692, 7327, 7327, 7325,
794       359, 7330, 9692,  438, 7352,    0,  248, 9692, 7318, 7318,
795
796       441, 7316,  260, 9692,  567,  112,  181,  210, 9692,  624,
797      7344,    0,  360, 9692, 7304, 7301, 7292, 9692,  633,  422,
798      9692,  692, 7336,    0,  479, 9692, 7299, 7288, 9692,  697,
799      2226, 2234,   29,   35, 7327,   16,  135,  348, 2230,  207,
800      7332,  185, 9692,  700, 7323,    0,  480, 9692, 7280, 7285,
801      7274, 9692,  759,  361,  413, 9692,  764, 7315,    0,  482,
802      9692, 7278, 7257, 9692,  767,  425,  432, 9692,  824, 7308,
803         0,  543, 9692, 7271, 7273, 9692,  830,  546, 9692,  833,
804      7301,    0,  545, 9692, 7267, 7243, 9692,  895,  611, 9692,
805       898, 7294,    0,  609, 9692, 7240, 7246, 7255, 7240, 7234,
806
807      9692,  940,  818, 7288,  263, 9692,  957, 7275,    0,  612,
808      9692, 7225,  177, 7231, 7236, 7238,  314,  630,  615, 9692,
809      1000,  685, 9692, 1017, 7266,    0,  684, 9692, 6762, 6760,
810      6766, 6775, 6777, 6763, 6757, 9692, 1077,  752, 9692, 1083,
811      6803,    0,  751, 9692, 6760, 6768, 9692, 1086,  944, 9692,
812      1089, 6799,    0,  808, 9692, 6768, 6757, 6759,    4, 9692,
813      1144,  512,  527, 9692, 1150, 6786,    0,  874, 9692, 6732,
814       366, 9692, 1153, 1013, 6784, 6736, 9692, 1156, 6773,    0,
815       884, 9692, 6722, 6717,  432, 9692, 1211, 6773,  626, 9692,
816      1217, 6759,    0,  941, 9692, 6720, 6721, 9692, 1272,  945,
817
818      9692, 1278, 6751,    0,  942, 9692, 6704, 6698, 6695, 9692,
819      1333, 6747,  811, 9692, 1336, 6737,    0, 1001, 9692, 6688,
820      6692, 6692, 6680, 9692, 1339, 1204, 6730,  556, 9692, 1343,
821      6721,    0, 1002, 9692, 6690, 9692, 1400, 1005, 9692, 1403,
822      6714,    0, 1061, 9692, 6677, 9692, 1406,  356,  843, 9692,
823      1410, 6708,    0, 1062, 9692, 6674, 6672, 9692, 1450, 1455,
824      1467,  713, 6644, 9692, 6704, 6692, 9692, 9692, 9692, 1464,
825       686, 6630, 6629, 6626, 6673, 6626, 9692,    0, 6619, 6609,
826      6628, 6601, 6581,  688, 6590, 6589, 6588,  822, 1084, 1155,
827      6577, 6577,  755, 1215, 6598,  757, 6575, 1461, 6569,  950,
828
829      1480, 1483, 9692,    0, 6566, 6567, 9692,    0, 6561, 1726,
830      6543, 1268, 6540, 6580, 9692,    0, 6538, 1783, 6523, 6541,
831      6527, 6535, 6532, 6528, 6513, 1683, 9692,    0, 6524, 6514,
832      6512, 6475, 9692,    0, 2296, 6473, 6517, 6499, 6464, 6469,
833      6473, 1410, 6461, 6480, 1413, 1476, 9692,    0, 6457, 2337,
834      6464, 6447, 9692,    0, 2340, 6439, 6425, 9692,    0, 2343,
835      6430, 6428, 9692,    0, 6423, 6416, 6412, 9692,    0, 6422,
836      1071, 2346, 6399, 6406, 6398, 1144, 9692,    0, 6403, 6403,
837      2349, 6384, 2403, 6381, 6376, 6380, 6380, 6362, 6366, 6365,
838      6358, 6344, 9692,    0, 6345, 6343, 6326, 2406, 6319, 6314,
839
840      6334, 6318, 9692,    0, 6305, 2409, 6301, 9692,    0, 6303,
841      2412, 6291, 6307, 6302, 6291, 9692,    0, 6273, 6288, 6272,
842      6266, 6272, 9692,    0, 6256, 6273, 6265, 6253, 6282, 9692,
843         0, 6238, 2415, 6242, 9692,    0, 6233, 6232, 6225, 6221,
844      9692,    0, 6202, 6196, 6193, 6202, 6178, 6175, 9692,    0,
845      6171, 6180, 9692,    0, 2469, 6168, 9692,    0, 2472, 6159,
846      6153, 6188, 6191, 1114, 6138, 9692, 1846,    0, 6134, 6124,
847      6168, 6166, 6116, 9692, 6128, 6109, 2477, 2480, 1802, 6115,
848      6106, 6099, 6099, 6093, 6106, 6074, 6065, 6064, 6077, 6079,
849      6052, 6051, 6043, 6047, 6055, 6042, 6040, 1866, 6028, 6044,
850
851      6040, 6020, 6032, 6026, 2490, 2543, 6025, 2483, 1990, 6019,
852      6051, 2538, 2546, 9692, 6020, 2549, 2056, 2553, 6000, 2603,
853      6003, 6006, 6002, 2606, 2617, 5987, 5987, 5994, 5993, 2610,
854      2613, 2621, 2125, 5972, 2670, 2673, 1923, 5975, 5966, 5968,
855      5950, 5954, 1932, 5947, 5945, 5944, 2679, 2191, 5957, 2682,
856      2685, 2697, 2307, 5955, 2739, 2742, 2745, 2371, 5947, 2751,
857      2754, 5946, 5939, 2797, 2800, 5934, 5920, 5930, 2808, 2437,
858      5925, 5910, 2804, 2811, 5907, 5903, 5912, 1478, 2853, 2632,
859      5911, 2856, 2640, 2859, 5899, 5895, 5890, 5871, 5855, 5852,
860      5854, 2865, 2879, 5850, 1082, 5840, 2922, 2704, 2925, 5844,
861
862      5828, 2930, 2933, 5825, 2943, 2766, 2953, 2963, 5837, 2966,
863      2885, 5834, 5808, 5803, 2972, 2978, 2991, 3000, 3003, 3009,
864      3034, 5807, 3037, 3040, 3043, 3047, 3065, 3069, 5811, 3072,
865      3075, 3084, 3091, 3095, 3098, 3116, 3119, 3122, 5811, 5785,
866      5791, 5784, 3125, 3134, 5786, 5771, 3129, 3149, 3153, 3156,
867      3164, 3171, 3174, 3177, 5766, 3185, 3193, 5813, 9692, 9692,
868      1241, 5772, 9692, 5806, 5804, 5754, 9692, 9692, 5748, 5747,
869      5755, 3198, 3204, 9692, 3207, 1998, 5749, 5733, 5741, 5717,
870      5728, 5713, 5711, 5706, 5698, 5696, 5680, 5673,  831, 5687,
871      5663, 5664, 5676, 5672, 5657, 2064, 5641, 5645, 5637, 1007,
872
873      5627, 3213, 3217, 3226, 9692, 3232, 3236, 3239, 9692, 9692,
874      3247, 5646, 3257, 3260, 9692, 3265, 5599, 3269, 9692, 9692,
875      3284, 3287, 3296, 3302, 3314, 5612, 3308, 5603, 3322, 3326,
876      9692, 3329, 1330, 5598, 3332, 5593, 3335, 3341, 9692, 3350,
877      3354, 9692, 9692, 5588, 3362, 3365, 9692, 3369, 5577, 5586,
878      5554, 5562, 5551, 5548, 5538, 5537, 5540, 3372, 9692, 9692,
879      5532, 3384, 3389, 9692, 3392, 3399, 9692, 9692, 5557, 3411,
880      3414, 9692, 3417, 3420, 9692, 9692, 3436, 3439, 3442, 9692,
881      3445, 3448, 3454, 3466, 3472, 9692, 3478, 5523, 5528, 3485,
882      3491, 9692, 9692, 5509, 5519, 3499, 3503, 9692, 3506, 5472,
883
884      5462, 5464, 5442, 5461, 5446, 3512, 9692, 9692, 3525, 3528,
885      9692, 9692, 3536, 3544, 5436, 5436, 5441, 5437, 5432, 5434,
886      5428, 3539, 3554, 9692, 3558, 5424, 5421, 5412, 5427, 3561,
887      9692, 9692, 3573, 3577, 5412, 5402, 3585, 3591, 9692, 3594,
888      5396, 3597, 9692, 9692, 3605, 3613, 9692, 3616, 5377, 3625,
889      9692, 9692, 5380, 5375, 5377, 3619, 3638, 9692, 3641, 3646,
890      3650, 3660, 3664, 5372, 3672, 3678, 9692, 3683, 5366, 3686,
891      3691, 5356, 5348, 3704, 3707, 5359, 3715, 3718, 9692, 3722,
892      5359, 3725, 9692, 9692, 3737, 3741, 9692, 3744, 3750, 3756,
893      5343, 5342, 3764, 3768, 3776, 3782, 9692, 3786, 5332, 3789,
894
895      5346, 5326, 3795, 3807, 9692, 3810, 5323, 5337, 3814, 3817,
896      9692, 3820, 3829, 9692, 9692, 3839, 3842, 9692, 3848, 3851,
897      9692, 9692, 5335, 3861, 3867, 9692, 3874,  304, 3880, 9692,
898      9692, 5362, 5360, 5318, 5309, 3886, 5301, 5297, 5287, 5284,
899      5293, 2250, 5271, 2255, 5270, 5268, 2509, 5274, 5274, 2572,
900      5263, 5271, 5273, 5268, 5262, 5244, 5238, 5235, 2575, 5236,
901      5230, 3889, 3893, 3901, 3908, 3911, 5229, 5254, 3920, 5222,
902      3926, 9692, 9692, 3935, 3939, 3953, 9692, 9692, 5221, 3947,
903      3961, 5211, 3970, 2826, 5202, 3973, 3976, 3984, 3991, 5200,
904      3994, 9692, 5181, 5182, 2893, 3997, 5193, 5196, 5189, 5188,
905
906      5178, 4002, 4005, 5139, 4013, 4016, 4025, 4034, 4037, 4044,
907      5134, 4055, 5136, 5126, 4058, 4062, 4070, 4077, 4080, 5113,
908      5114, 5125, 4083, 5106, 5118, 4088, 4095, 4106, 9692, 9692,
909      4116, 5095, 5115, 5087, 5090, 5097, 5072, 4119, 5093, 4124,
910      5070, 5079, 4127, 9692, 9692, 4138, 5081, 4142, 5071, 4146,
911      5069, 5063, 5051, 4149, 4152, 4161, 9692, 9692, 4171, 9692,
912      9692, 5042, 4156, 4179, 4184, 9692, 9692, 5029, 5043, 4192,
913      9692, 9692, 5015, 4200, 5009, 4212, 4215, 9692, 9692, 5007,
914      5013, 4227, 9692, 9692, 4235, 5005, 4238, 4241, 4994, 5011,
915      4249, 4997, 4256, 4261, 4269, 4264, 4274, 1303, 5036, 4283,
916
917      9692, 5034, 9692, 9692, 4973, 4935, 4288, 4914, 4925, 4866,
918      4835, 4815, 2997, 4760, 4293, 4688, 4302, 4685, 4307, 4647,
919      4629, 4310, 4619, 4313, 4560, 4316, 4542, 4530, 4531, 4390,
920      4322, 4337, 4328, 4337, 9692, 9692, 4331, 4351, 9692, 9692,
921      4328, 4288, 4345, 4260, 4364, 9692, 9692, 4262, 4377, 9692,
922      9692, 4165, 4385, 4359, 4144, 4388, 1766, 2087, 4398, 4404,
923      4412,   28,   22,   82, 4416, 4419, 4422,  165, 4425, 4431,
924       223, 4434, 4437, 4446, 4452, 4455, 4458, 9692, 9692, 4466,
925      4470, 9692, 9692, 4478, 4481,  264,  255, 4496, 9692, 9692,
926      4489, 4507, 4515, 4518,  324, 4527, 4533,  355,  383, 4536,
927
928      4539, 4547,  441, 4550, 9692, 9692, 4558, 4561, 4569,  448,
929       512,  506,  559, 4572, 4576,  574, 4579, 4583, 4591,  595,
930      4597, 4600,  626, 4609,  691, 4615,  707,  718,  750, 4618,
931      4621,  770, 4629,  773, 4636,  852, 4642, 4648, 4651, 4655,
932       866, 4660, 4669, 4674, 4679,  876, 4688, 9692, 9692,  895,
933       916, 4682,  945, 4701, 4708, 4722, 4726, 4729, 4734, 4747,
934      1312, 1049, 1218, 9692,  951, 4750, 4753,  990, 1016, 1087,
935      1112, 4756, 1139, 1133, 4759, 1146, 1138, 1145, 4762, 4768,
936      4772, 1209, 4775, 1221, 4782, 4785, 1234, 1269, 1259, 4788,
937      1275, 4791, 1277, 1311, 4794, 1304, 4797, 1332, 4800, 4803,
938
939      1368, 1356, 1426, 1359, 1377, 1364, 1451, 1379, 4815, 9692,
940      9692, 4806, 4825, 1363, 1395, 4828, 4831, 1404, 4834, 4843,
941      9692, 9692, 4837, 4859, 4862, 4870, 4873, 4877, 4880, 4895,
942      1425, 1450, 4898, 9692, 9692, 4907, 1482, 1483, 1465, 4915,
943      9692, 4918, 1468, 1484, 4924, 9692, 9692, 4934, 4937, 1486,
944      4945, 9692, 9692, 4953, 4956, 4964, 1490, 1661, 1667, 4967,
945      4971, 4985, 1675, 4988, 9692, 9692, 4996, 5000, 1684, 5008,
946      9692, 9692, 1678, 5016, 9692, 1689, 5019, 1676, 5022, 1698,
947      5025, 1711, 1713, 1709, 5040, 9692, 1724, 5043, 1723, 5046,
948      5049, 5064, 5069, 1735, 5077, 1731, 5083, 5086, 5089, 5097,
949
950      5104, 5115, 1739, 1763, 1781, 5118, 1785, 5121, 9692, 9692,
951      5129, 5137, 5144, 9692, 9692, 5152, 9692, 1830, 2082, 1851,
952      1787, 5156, 5159, 5167, 5174, 1782, 1790, 5186, 5191, 5194,
953      1801, 1812, 1812, 5197, 5200, 5203, 5206, 1827, 5209, 5212,
954      5215, 5218, 5221, 1842, 5224, 1855, 1867, 5227, 9692, 1850,
955      5231, 5234, 1869, 5249, 5253, 5256, 1887, 1889, 1889, 1898,
956      1894, 1903, 1916, 1930, 1943, 1936, 5264, 5271, 5276, 5284,
957      1919, 5289, 5292, 5295, 5298, 5306, 5314, 9692, 9692, 5309,
958      5328, 9692, 5332, 9692, 9692, 5340, 1923, 1917, 1968, 2009,
959      1930, 1945, 1945, 5343, 9692, 9692, 1960, 5352, 9692, 9692,
960
961      5361, 5364, 1993, 1984, 1989, 5372, 9692, 9692, 5380, 1991,
962      5383, 9692, 9692, 1987, 1996, 1994, 5394, 2007, 5399, 5402,
963      2010, 2006, 2086, 2141, 2011, 2036, 5413, 9692, 2050, 5417,
964      9692, 9692, 5425, 9692, 9692, 2063, 5433, 2064, 5436, 5440,
965      9692, 9692, 5448, 9692, 9692, 5456, 5459, 5462, 5465, 5468,
966      2063, 5471, 5493, 5496, 2115, 2116, 5502, 5505, 9692, 9692,
967      5515, 5518, 5524, 2064, 5527, 5534, 5537, 5540, 5543, 5546,
968      5549, 2086, 2118, 5552, 5555, 5558, 2119, 5561, 2119, 9692,
969      5564, 5567, 9692, 9692, 5575, 5582, 9692, 5586, 9692, 9692,
970      2162, 2150, 2165, 2164, 2172, 2174, 2161, 2176, 2187, 2208,
971
972      5594, 5597, 9692, 9692, 5605, 2171, 5608, 2173, 5613, 9692,
973      9692, 5621, 5624, 5627, 2186, 2192, 2256, 2282, 2263, 2284,
974      2241, 5630, 2245, 2249, 5634, 9692, 9692, 5646, 2243, 2255,
975      5650, 2257, 2280, 2301, 2302, 5655, 9692, 5658, 5670, 9692,
976      9692, 2300, 2296, 2333, 2355, 2339, 2358, 2317, 2322, 5664,
977      2327, 5679, 5682, 5685, 5688, 5691, 5694, 5709, 5712, 5715,
978      5718, 5721, 5734, 9692, 5740, 2413, 2379, 5730, 5749, 5745,
979      2311, 5753, 5759, 5764, 2307, 2320, 2321, 5769, 9692, 2348,
980      5772, 5775, 5783, 2378, 2375, 2389, 2378, 2389, 2389, 2389,
981      2407, 2396, 2407, 5790, 2380, 2376, 5793, 5796, 9692, 5802,
982
983      2410, 2412, 2483, 9692, 2481, 9692, 5805, 5815, 2431, 2451,
984      5823, 5826, 2442, 5834, 5841, 9692, 2437, 2440, 5844, 2442,
985      5852, 5863, 2455, 2455, 2472, 2531, 9692, 2529, 9692, 5855,
986      2484, 5873, 2485, 5876, 9692, 5879, 5882, 5890, 5897, 5900,
987      9692, 9692, 5909, 5912, 5920, 5923, 9692, 5927, 5930, 2544,
988      2540, 2689, 5933, 9692, 2501, 2496, 2512, 2514, 5938, 5942,
989      2679, 2725, 5952, 2540, 2558, 2594, 2607, 2625, 2602, 2617,
990      2621, 2625, 2639, 5956, 2626, 2617, 5959, 5964, 9692, 2619,
991      5970, 9692, 9692, 5978, 5984, 2620, 2631, 5992, 9692, 9692,
992      2638, 6000, 6003, 2631, 6018, 6021, 6024, 6032, 6039, 9692,
993
994      9692, 2654, 2662, 2661, 9692, 9692, 6050, 6053, 6061, 6064,
995      6068, 2851, 2917, 6082, 9692, 6085, 6088, 9692, 9692, 6096,
996      6104, 6114, 9692, 2772, 2857, 2878, 6117, 2682, 2710, 2716,
997      6120, 6123, 2735, 2762, 2783, 2781, 2789, 2849, 6134, 2801,
998      2790, 2804, 2822, 9692, 2840, 2828, 2829, 2851, 9692, 6138,
999      6141, 2847, 6144, 6152, 6147, 6159, 6170, 9692, 9692, 2853,
1000      2868, 2880, 6178, 9692, 9692, 2892, 6186, 6190, 6200, 9692,
1001      9692, 6208, 6211, 2884, 6219, 2900, 6222, 9692, 9692, 6230,
1002      6233, 6241, 6244, 2918, 2924, 2924, 2927, 2928, 2940, 6252,
1003      6255, 9692, 9692, 2964, 3000, 6263, 6266, 6271, 2911, 2920,
1004
1005      6275, 9692, 9692, 2968, 2956, 2961, 2969, 2986, 2974, 2979,
1006      2987, 6283, 2981, 3006, 3042, 3030, 3013, 3035, 3049, 3038,
1007      6286, 6289, 6292, 6295, 6305, 6308, 3007, 6316, 9692, 9692,
1008      3010, 3006, 2998, 3026, 6324, 9692, 9692, 6332, 9692, 9692,
1009      3029, 6340, 6343, 3011, 6351, 3068, 3070, 6359, 3095, 3099,
1010      3047, 3074, 3104, 3069, 3081, 3132, 6367, 3150, 6370, 6373,
1011      6376, 6395, 6398, 6401, 3108, 3120, 3122, 3122, 3128, 3145,
1012      3157, 3146, 6404, 6407, 3161, 3162, 9692, 3168, 3174, 3182,
1013      9692, 3192, 6415, 6418, 6422, 6425, 9692, 9692, 3166, 3168,
1014      3169, 6434, 3174, 6437, 6441, 9692, 9692, 6455, 3208, 3221,
1015
1016      3217, 3228, 3221, 3239, 3234, 3248, 3241, 3253, 9692, 3246,
1017      3256, 9692, 6458, 9692, 3288, 6461, 6464, 6483, 6503, 6550,
1018      6473, 6491, 3259, 3286, 3288, 3255, 3272, 3292, 3293, 3267,
1019      6523, 9692, 9692, 3307, 3286, 3289, 3331, 3308, 3314, 6494,
1020      6497, 9692, 3289, 3300, 3311, 6541, 6531, 3318, 6544, 6570,
1021      6562, 6580, 3373, 3341, 3374, 3345, 3391, 3359, 3391, 3367,
1022      3401, 3404, 3402, 3416, 3407, 6589, 3457, 3444, 6609, 6656,
1023      3414, 9692, 9692, 3392, 3418, 9692, 9692, 3395, 9692, 3429,
1024      3430, 9692, 3451, 3452, 6599, 9692, 3413, 3418, 3406, 6629,
1025      3472, 3485, 3430, 6637, 9692, 9692, 6645, 3527, 3546, 9692,
1026
1027      3479, 9692, 3481, 9692, 3485, 9692, 3487, 9692, 9692, 9692,
1028      9692, 3531, 3516, 3548, 3511, 3562, 3511, 6602, 3510, 3507,
1029      3520, 3523, 9692, 9692, 9692, 9692, 6667, 6676, 6679, 3591,
1030      3523, 3616, 3555, 6685, 3650, 3561, 3655, 3573, 9692, 9692,
1031      9692, 9692, 6688, 3598, 3589, 3603, 6697, 3618, 3608, 3626,
1032      3615, 6703, 6707, 6716, 6721, 6729, 6734, 3606, 3618, 3633,
1033      3620, 3636, 3649, 6742, 6749, 3638, 3650, 3677, 3661, 3671,
1034      3690, 6760, 3694, 9692, 3681, 9692, 3696, 6763, 9692, 9692,
1035      6772, 9692, 9692, 6780, 3710, 3736, 3695, 3700, 3698, 3713,
1036      3722, 3718, 6788, 9692, 9692, 3736, 3743, 3743, 3745, 3761,
1037
1038      3757, 3780, 9692, 3795, 3794, 3782, 3778, 3804, 3799, 3799,
1039      3811, 3813, 3817, 3823, 3830, 3828, 3836, 3840, 3837, 3848,
1040      3848, 3859, 9692, 9692, 3840, 3863, 3846, 3885, 3879, 3877,
1041      3894, 3888, 3885, 3906, 3896, 3893, 3919, 3909, 3906, 3927,
1042      3941, 3921, 3930, 3932, 3945, 3958, 3952, 3985, 3976, 3973,
1043      4003, 3987, 3986, 4018, 4000, 3993, 4023, 4023, 4014, 4025,
1044      4022, 4029, 4057, 4034, 9692, 4060, 4043, 9692, 4082, 4060,
1045      9692, 4085, 4070, 9692, 4104, 4068, 4081, 4074, 4088, 9692,
1046      4088, 9692, 4090, 9692, 4106, 9692, 4108, 6798, 4111, 4155,
1047      4143, 4162, 4134, 4135, 4140, 4145, 6801, 4185, 9692, 4183,
1048
1049      9692, 4193, 4191, 4199, 4197, 4192, 4205, 9692, 9692, 9692,
1050      9692, 9692, 9692, 4189, 4215, 4226, 4234, 4259, 4282, 4206,
1051      4355, 4268, 4287, 4338, 4357, 4208, 4278, 4336, 4339, 4352,
1052      4384, 4354, 4375, 4458, 4492, 4431, 4432, 4411, 4425, 4483,
1053      4495, 4587, 4614, 4594, 4606, 4506, 4585, 4654, 4676, 4645,
1054      4646, 4505, 4588, 4687, 4695, 4487, 4512, 4188, 4707, 4760,
1055      4793, 4724, 4828, 4362, 4698, 4702, 4831, 4667, 4849, 4830,
1056      4847, 4616, 4894, 4318, 4839, 4867, 4874, 4903, 4922, 4836,
1057      4909, 4914, 4930, 4888, 4956, 4803, 4932, 4996, 5091, 4941,
1058      4981, 4965, 5010, 4988, 5017, 4508, 5095, 6809, 6812, 9692,
1059
1060      9692, 6832, 6841, 6850, 6859, 6868, 6877, 6886, 6895, 6904,
1061      6913, 6922, 6931, 6940, 6949, 6958, 6967, 6976, 6985, 6994,
1062      7003, 7012, 7021, 7030, 7039, 7048, 7057, 7066, 7075, 7084,
1063      7093, 7102, 7111, 7120, 7129, 7138, 7147, 7156, 7165, 7174,
1064      7183, 7192, 7201, 7210, 7219, 7228, 7237, 7246, 7255, 7264,
1065      7273, 7280, 7287, 7294, 7301, 7308, 7315, 7322, 7329, 7336,
1066      7343, 7350, 7357, 7364, 7371, 7378, 7385, 7392, 7399, 7406,
1067      7413, 7420, 7427, 7434, 7443, 7450, 7455, 7462, 7467, 7474,
1068      7479, 7486, 7491, 7498, 7503, 7510, 7515, 7522, 7527, 7534,
1069      7539, 7546, 7551, 7558, 7563, 7570, 7575, 7582, 7587, 7594,
1070
1071      7599, 7606, 7611, 7618, 7623, 7630, 7635, 7642, 7647, 7654,
1072      7659, 7666, 7671, 7678, 7683, 7690, 7695, 7702, 7707, 7714,
1073      7719, 7728, 7734, 7741, 7749, 7756, 7764, 7771, 7779, 7786,
1074      7794, 7801, 7809, 7816, 7824, 7831, 7839, 7846, 7854, 7861,
1075      7869, 7876, 7884, 7891, 7899, 7906, 7914, 7921, 7929, 7936,
1076      7944, 7951, 7959, 7967, 7975, 7983, 7991, 7998, 8006, 8014,
1077      8022, 8029, 8037, 8044, 8052, 8060, 8067, 8075, 8084, 8090,
1078      8097, 8105, 8113, 8121, 8129, 8137, 8144, 8152, 8159, 8167,
1079      8174, 8182, 8189, 8197, 8204, 8212, 8220, 8228, 8236, 8244,
1080      8251, 8259, 8266, 8274, 8281, 8289, 8296, 8304, 8311, 8319,
1081
1082      8326, 8334, 8341, 8349, 8356, 8364, 8371, 8379, 8386, 8394,
1083      8401, 8409, 8417, 8424, 8432, 8441, 8450, 8457, 8465, 8473,
1084      8480, 8488, 8495, 8503, 8510, 8518, 8525, 8532, 8540, 8547,
1085      8555, 8563, 8570, 8578, 8585, 8593, 8600, 8608, 8615, 8623,
1086      8630, 8638, 8645, 8653, 8660, 8668, 8675, 8683, 8690, 8698,
1087      8705, 8713, 8720, 8728, 8736, 8744, 8752, 8760, 8768, 8777,
1088      8786, 8793, 8801, 8809, 8816, 8824, 8831, 8839, 8846, 8854,
1089      8861, 8868, 8876, 8884, 8892, 8900, 8908, 8916, 8923, 8931,
1090      8938, 8946, 8953, 8961, 8968, 8976, 8983, 8991, 8998, 9006,
1091      9014, 9022, 9029, 9037, 9045, 9053, 9060, 9068, 9076, 9084,
1092
1093      9092, 9101, 9110, 9118, 9126, 9134, 9141, 9149, 9156, 9164,
1094      9172, 9180, 9188, 9196, 9204, 9212, 9220, 9228, 9235, 9242,
1095      9250, 9257, 9264, 9272, 9279, 9286, 9294, 9301, 9309, 9316,
1096      9324, 9332, 9339, 9347, 9355, 9363, 9372, 9381, 9389, 9397,
1097      9404, 9411, 9419, 9427, 9435, 9443, 9451, 9458, 9465, 9473,
1098      9480, 9487, 9495, 9502, 9509, 9516, 9524, 9531, 9539, 9547,
1099      9555, 9563, 9571, 9579, 9588, 9597, 9605, 9613, 9620, 9628,
1100      9637, 9646, 9655, 9664, 9673, 9682
1101     } ;
1102
1103 static yyconst flex_int16_t yy_def[3077] =
1104     {   0,
1105      2702, 2702, 2703, 2703, 2703, 2703, 2704, 2704, 2705, 2705,
1106      2706, 2706, 2707, 2707, 2707, 2707, 2708, 2708, 2702, 2702,
1107      2709, 2709, 2710, 2710, 2710, 2710, 2702, 2702, 2710, 2710,
1108      2710, 2710, 2702, 2702, 2710, 2710, 2702, 2702, 2710, 2710,
1109      2710, 2710, 2711, 2711, 2712, 2712, 2702, 2702, 2712, 2712,
1110      2712, 2712, 2713, 2713, 2707, 2707, 2714, 2714, 2715, 2715,
1111      2702, 2702, 2715, 2715, 2715, 2715, 2716, 2716, 2717, 2717,
1112      2718, 2718, 2719, 2719, 2719, 2719, 2702, 2702, 2719, 2719,
1113      2719, 2719, 2702, 2702, 2719, 2719, 2702, 2702, 2719, 2719,
1114      2719, 2719, 2702, 2702, 2719, 2719, 2702, 2702, 2719, 2719,
1115
1116      2719, 2719, 2720, 2720, 2721, 2721, 2702, 2702, 2721, 2721,
1117      2721, 2721, 2722, 2722, 2723, 2723, 2702, 2702, 2723, 2723,
1118      2723, 2723, 2724, 2724, 2725, 2725, 2726, 2726, 2727, 2727,
1119      2728, 2728, 2729, 2729, 2702, 2702, 2729, 2729, 2729, 2729,
1120      2701,  141, 2730, 2730, 2701,  145, 2731, 2731, 2732, 2732,
1121      2733, 2733, 2734, 2734, 2735, 2735, 2702, 2702, 2735, 2735,
1122      2735, 2735, 2736, 2736, 2737, 2737, 2702, 2702, 2737, 2737,
1123      2737, 2737, 2738, 2738, 2739, 2739, 2702, 2702, 2739, 2739,
1124      2739, 2739, 2740, 2740, 2741, 2741, 2742, 2742, 2743, 2743,
1125      2702, 2702, 2743, 2743, 2743, 2743, 2744, 2744, 2745, 2745,
1126
1127      2702, 2702, 2745, 2745, 2745, 2745, 2746, 2746, 2747, 2747,
1128      2748, 2748, 2749, 2749, 2702, 2702, 2749, 2749, 2749, 2749,
1129      2750, 2750, 2751, 2751, 2702, 2702, 2701, 2701, 2701, 2701,
1130      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1131      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1132      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2752, 2701, 2701,
1133      2752, 2701, 2701, 2701,  264,  264,  266,  264,  267,  267,
1134      2701, 2701, 2701, 2753, 2701, 2701, 2753, 2701, 2701,  268,
1135       267, 2701, 2701, 2701, 2754, 2701, 2701, 2754, 2754, 2754,
1136      2701, 2701, 2701, 2701, 2701, 2755, 2701, 2701, 2755, 2755,
1137
1138      2755, 2755, 2755, 2701, 2701,  267,  267,  267, 2701, 2701,
1139      2701, 2756, 2701, 2701, 2756, 2756, 2756, 2701, 2701, 2701,
1140      2701, 2701, 2701, 2757, 2701, 2701, 2757, 2757, 2701, 2701,
1141       268,  267,  268,  331,  332,  332,  332,  332,  338,  339,
1142       338,  338, 2701, 2701, 2701, 2758, 2701, 2701, 2758, 2758,
1143      2758, 2701, 2701,  267,  267, 2701, 2701, 2701, 2759, 2701,
1144      2701, 2759, 2759, 2701, 2701,  267,  267, 2701, 2701, 2701,
1145      2760, 2701, 2701, 2760, 2760, 2701, 2701, 2701, 2701, 2701,
1146      2701, 2761, 2701, 2701, 2761, 2761, 2701, 2701, 2701, 2701,
1147      2701, 2701, 2762, 2701, 2701, 2762, 2762, 2762, 2762, 2762,
1148
1149      2701, 2701,  267,  403,  403, 2701, 2701, 2701, 2763, 2701,
1150      2701, 2763, 2763, 2763, 2763, 2763, 2763, 2763, 2763, 2701,
1151      2701, 2701, 2701, 2701, 2701, 2764, 2701, 2701, 2764, 2764,
1152      2764, 2764, 2764, 2764, 2764, 2701, 2701, 2701, 2701, 2701,
1153      2701, 2765, 2701, 2701, 2765, 2765, 2701, 2701, 2701, 2701,
1154      2701, 2701, 2766, 2701, 2701, 2766, 2766, 2766, 2766, 2701,
1155      2701,  403,  267, 2701, 2701, 2701, 2767, 2701, 2701, 2767,
1156      2767, 2701, 2701,  267,  474,  474, 2701, 2701, 2701, 2768,
1157      2701, 2701, 2768, 2768, 2768, 2701, 2701,  474,  474, 2701,
1158      2701, 2701, 2769, 2701, 2701, 2769, 2769, 2701, 2701, 2701,
1159
1160      2701, 2701, 2701, 2770, 2701, 2701, 2770, 2770, 2770, 2701,
1161      2701,  474,  474, 2701, 2701, 2701, 2771, 2701, 2701, 2771,
1162      2771, 2771, 2771, 2701, 2701,  267,  526,  526, 2701, 2701,
1163      2701, 2772, 2701, 2701, 2772, 2701, 2701, 2701, 2701, 2701,
1164      2701, 2773, 2701, 2701, 2773, 2701, 2701,  526,  267, 2701,
1165      2701, 2701, 2774, 2701, 2701, 2774, 2774, 2701, 2701, 2701,
1166      2701, 2775, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1167      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2776, 2776, 2777,
1168      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1169      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1170
1171      2701, 2701, 2701, 2778, 2778, 2779, 2701, 2780, 2780, 2780,
1172      2780, 2701, 2781, 2701, 2701, 2782, 2782, 2782, 2782, 2782,
1173      2782, 2782, 2782, 2782, 2783, 2701, 2701, 2784, 2784, 2784,
1174      2784, 2785, 2701, 2786, 2786, 2786, 2787, 2701, 2701, 2701,
1175      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2788, 2788, 2788,
1176      2788, 2789, 2701, 2790, 2790, 2790, 2791, 2701, 2792, 2792,
1177      2792, 2793, 2701, 2794, 2794, 2794, 2795, 2701, 2796, 2796,
1178      2796, 2796, 2796, 2796, 2797, 2701, 2701, 2798, 2798, 2798,
1179      2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798,
1180      2798, 2799, 2701, 2800, 2800, 2800, 2800, 2800, 2800, 2800,
1181
1182      2800, 2801, 2701, 2802, 2802, 2802, 2803, 2701, 2804, 2804,
1183      2804, 2804, 2804, 2804, 2805, 2701, 2806, 2806, 2806, 2806,
1184      2807, 2701, 2701, 2808, 2808, 2808, 2808, 2808, 2809, 2701,
1185      2810, 2810, 2810, 2811, 2701, 2812, 2812, 2812, 2812, 2813,
1186      2701, 2814, 2814, 2814, 2814, 2814, 2815, 2701, 2701, 2816,
1187      2816, 2817, 2701, 2818, 2818, 2819, 2701, 2820, 2820, 2820,
1188      2821, 2822, 2701, 2822, 2701, 2701, 2701, 2823, 2701, 2701,
1189      2701, 2701, 2701, 2701, 2701, 2824, 2825, 2825, 2701, 2701,
1190      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1191      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1192
1193      2701, 2701, 2701, 2826, 2827, 2827, 2828, 2701, 2701, 2828,
1194      2701, 2829, 2829, 2701, 2830, 2701, 2701, 2830, 2830, 2830,
1195      2830, 2830, 2830, 2831, 2831, 2701, 2832, 2832, 2832, 2833,
1196      2833, 2701, 2701, 2834, 2835, 2835, 2701, 2701, 2701, 2701,
1197      2701, 2701, 2701, 2701, 2701, 2836, 2701, 2701, 2836, 2837,
1198      2837, 2701, 2701, 2838, 2839, 2839, 2701, 2701, 2840, 2841,
1199      2841, 2842, 2842, 2843, 2843, 2844, 2844, 2844, 2701, 2701,
1200      2844, 2844, 2845, 2845, 2701, 2701, 2846, 2846, 2701, 2701,
1201      2846, 2701, 2701, 2846, 2846, 2846, 2846, 2846, 2846, 2846,
1202      2846, 2847, 2847, 2848, 2848, 2848, 2701, 2701, 2848, 2848,
1203
1204      2848, 2849, 2849, 2850, 2701, 2701, 2851, 2851, 2852, 2701,
1205      2701, 2852, 2852, 2852, 2853, 2853, 2854, 2854, 2854, 2855,
1206      2855, 2701, 2856, 2856, 2856, 2856, 2857, 2857, 2858, 2701,
1207      2701, 2859, 2859, 2860, 2860, 2860, 2861, 2861, 2862, 2862,
1208      2862, 2862, 2863, 2863, 2701, 2864, 2865, 2865, 2701, 2701,
1209      2866, 2866, 2701, 2701, 2867, 2868, 2868, 2869, 2701, 2701,
1210      2869, 2701, 2701, 2870, 2701, 2701, 2701, 2701, 2701, 2701,
1211      2871, 2701, 2872, 2701, 2872, 2701, 2701, 2701, 2701, 2701,
1212      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1213      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1214
1215      2701, 2873, 2701, 2874, 2701, 2874, 2875, 2701, 2701, 2701,
1216      2875, 2701, 2701, 2876, 2701, 2876, 2877, 2701, 2701, 2701,
1217      2701, 2701, 2877, 2701, 2701, 2877, 2877, 2877, 2701, 2878,
1218      2701, 2878, 2701, 2879, 2879, 2879, 2701, 2880, 2701, 2880,
1219      2701, 2701, 2701, 2881, 2701, 2882, 2701, 2882, 2701, 2701,
1220      2701, 2701, 2701, 2701, 2701, 2701, 2883, 2701, 2701, 2701,
1221      2883, 2701, 2884, 2701, 2884, 2701, 2701, 2701, 2885, 2701,
1222      2886, 2701, 2886, 2701, 2701, 2701, 2887, 2701, 2888, 2701,
1223      2888, 2889, 2889, 2701, 2890, 2701, 2890, 2891, 2891, 2891,
1224      2701, 2701, 2701, 2891, 2891, 2701, 2892, 2701, 2892, 2701,
1225
1226      2701, 2893, 2893, 2893, 2893, 2701, 2701, 2701, 2893, 2701,
1227      2701, 2701, 2701, 2701, 2893, 2893, 2893, 2893, 2893, 2893,
1228      2893, 2701, 2894, 2701, 2894, 2895, 2895, 2895, 2895, 2701,
1229      2701, 2701, 2701, 2701, 2895, 2895, 2701, 2896, 2701, 2896,
1230      2897, 2701, 2701, 2701, 2701, 2898, 2701, 2898, 2899, 2701,
1231      2701, 2701, 2899, 2899, 2899, 2701, 2900, 2701, 2900, 2701,
1232      2701, 2701, 2701, 2901, 2701, 2902, 2701, 2902, 2701, 2701,
1233      2701, 2903, 2903, 2701, 2701, 2903, 2701, 2904, 2701, 2904,
1234      2905, 2701, 2701, 2701, 2701, 2906, 2701, 2906, 2701, 2701,
1235      2907, 2907, 2701, 2701, 2701, 2908, 2701, 2908, 2909, 2909,
1236
1237      2909, 2909, 2701, 2910, 2701, 2910, 2701, 2911, 2701, 2912,
1238      2701, 2912, 2701, 2701, 2701, 2701, 2913, 2701, 2913, 2701,
1239      2701, 2701, 2914, 2701, 2915, 2701, 2915, 2916, 2917, 2701,
1240      2701, 2701, 2701, 2701, 2918, 2919, 2701, 2701, 2701, 2701,
1241      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1242      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1243      2701, 2701, 2701, 2920, 2701, 2701, 2921, 2701, 2922, 2923,
1244      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2923, 2701,
1245      2701, 2923, 2924, 2701, 2925, 2701, 2701, 2925, 2926, 2927,
1246      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1247
1248      2928, 2928, 2929, 2930, 2931, 2701, 2701, 2932, 2701, 2701,
1249      2933, 2934, 2935, 2935, 2701, 2701, 2935, 2935, 2936, 2701,
1250      2701, 2937, 2937, 2937, 2937, 2701, 2701, 2701, 2701, 2701,
1251      2937, 2937, 2937, 2937, 2937, 2937, 2937, 2938, 2939, 2939,
1252      2939, 2939, 2701, 2701, 2701, 2939, 2939, 2940, 2941, 2942,
1253      2943, 2943, 2943, 2943, 2944, 2701, 2701, 2701, 2701, 2701,
1254      2701, 2945, 2946, 2701, 2701, 2701, 2701, 2947, 2947, 2701,
1255      2701, 2701, 2947, 2948, 2949, 2950, 2701, 2701, 2701, 2951,
1256      2951, 2701, 2701, 2701, 2952, 2953, 2701, 2701, 2953, 2953,
1257      2954, 2701, 2955, 2956, 2957, 2958, 2959, 2960, 2961, 2961,
1258
1259      2701, 2961, 2701, 2701, 2701, 2962, 2963, 2701, 2701, 2701,
1260      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1261      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1262      2701, 2701, 2701, 2701, 2701, 2701, 2964, 2701, 2701, 2701,
1263      2965, 2701, 2966, 2967, 2701, 2701, 2701, 2967, 2701, 2701,
1264      2701, 2967, 2968, 2701, 2969, 2701, 2701, 2701, 2701, 2701,
1265      2970, 2971, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1266      2972, 2701, 2701, 2973, 2974, 2975, 2701, 2701, 2701, 2976,
1267      2701, 2701, 2701, 2977, 2978, 2979, 2979, 2701, 2701, 2701,
1268      2701, 2701, 2701, 2701, 2979, 2980, 2701, 2701, 2981, 2701,
1269
1270      2701, 2981, 2981, 2701, 2701, 2701, 2701, 2701, 2981, 2981,
1271      2981, 2981, 2981, 2981, 2982, 2983, 2701, 2701, 2983, 2983,
1272      2701, 2701, 2983, 2984, 2985, 2986, 2987, 2987, 2987, 2701,
1273      2701, 2987, 2988, 2989, 2990, 2701, 2991, 2991, 2991, 2992,
1274      2993, 2994, 2995, 2995, 2996, 2997, 2701, 2701, 2701, 2997,
1275      2997, 2998, 2701, 2701, 2701, 2999, 3000, 2701, 2701, 3001,
1276      3002, 3003, 3003, 2701, 2701, 3004, 3005, 2701, 2701, 2701,
1277      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1278      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1279      2701, 3006, 3007, 2701, 3008, 3009, 3009, 3009, 3010, 3011,
1280
1281      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1282      2701, 3012, 3013, 2701, 2701, 2701, 2701, 2701, 3014, 2701,
1283      2701, 2701, 3015, 2701, 2701, 3016, 3017, 2701, 2701, 3018,
1284      3019, 3019, 2701, 2701, 2701, 2701, 2701, 2701, 3019, 2701,
1285      2701, 2701, 2701, 3020, 2701, 2701, 2701, 2701, 2701, 3020,
1286      2701, 2701, 2701, 2701, 2701, 3020, 3020, 3020, 3020, 2701,
1287      2701, 3021, 3022, 2701, 2701, 2701, 2701, 2701, 3022, 2701,
1288      2701, 2701, 3022, 2701, 2701, 3023, 3024, 3025, 3025, 3025,
1289      2701, 2701, 2701, 3025, 2701, 2701, 3026, 3027, 2701, 2701,
1290      2701, 2701, 2701, 3028, 3029, 3030, 3031, 2701, 2701, 2701,
1291
1292      2701, 3032, 3033, 3033, 3033, 3034, 2701, 2701, 2701, 2701,
1293      3035, 3036, 2701, 2701, 2701, 2701, 2701, 3037, 3038, 3038,
1294      2701, 2701, 2701, 3039, 2701, 2701, 2701, 2701, 2701, 2701,
1295      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1296      2701, 2701, 2701, 2701, 3040, 3041, 2701, 2701, 2701, 3042,
1297      2701, 2701, 3042, 3043, 2701, 2701, 2701, 2701, 2701, 2701,
1298      2701, 2701, 2701, 2701, 2701, 2701, 3044, 2701, 2701, 2701,
1299      2701, 2701, 2701, 2701, 2701, 3045, 2701, 2701, 2701, 3046,
1300      2701, 2701, 2701, 2701, 2701, 3047, 3048, 3048, 2701, 2701,
1301      3048, 2701, 3049, 2701, 2701, 2701, 3049, 2701, 2701, 2701,
1302
1303      2701, 2701, 3049, 3049, 3049, 2701, 2701, 2701, 3050, 3051,
1304      2701, 2701, 2701, 3051, 3051, 3052, 3053, 3054, 2701, 2701,
1305      3054, 3054, 2701, 2701, 3054, 3055, 2701, 2701, 2701, 2701,
1306      2701, 2701, 2701, 2701, 2701, 3056, 3057, 3058, 3059, 2701,
1307      2701, 2701, 2701, 2701, 2701, 3060, 3061, 3061, 3061, 3062,
1308      2701, 3063, 3064, 3065, 3066, 3066, 2701, 2701, 2701, 2701,
1309      3067, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1310      2701, 2701, 2701, 2701, 2701, 2701, 2701, 3068, 3069, 2701,
1311      3070, 2701, 2701, 2701, 3070, 2701, 2701, 2701, 2701, 2701,
1312      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1313
1314      3044, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1315      2701, 3045, 3046, 3047, 3048, 3048, 2701, 2701, 2701, 2701,
1316      3048, 2701, 3049, 3049, 2701, 2701, 2701, 3049, 3049, 3049,
1317      3050, 3051, 3051, 3051, 3052, 2701, 2701, 3054, 2701, 2701,
1318      2701, 3054, 3054, 2701, 2701, 2701, 2701, 3054, 3055, 2701,
1319      3056, 3057, 3058, 3059, 3060, 2701, 2701, 3061, 3061, 3062,
1320      2701, 3063, 2701, 2701, 3065, 3066, 3066, 2701, 3067, 2701,
1321      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 3069,
1322      2701, 2701, 3070, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1323      2701, 2701, 2701, 3044, 2701, 2701, 3045, 2701, 2701, 3047,
1324
1325      3048, 3048, 2701, 2701, 2701, 2701, 3048, 2701, 3049, 3049,
1326      2701, 2701, 3049, 3049, 2701, 2701, 3051, 3051, 3051, 3052,
1327      2701, 2701, 3054, 3054, 3054, 2701, 2701, 2701, 2701, 3054,
1328      3055, 2701, 3056, 2701, 2701, 2701, 2701, 3059, 3060, 2701,
1329      2701, 2701, 2701, 2701, 3061, 2701, 2701, 2701, 3063, 3065,
1330      3066, 3066, 2701, 2701, 2701, 2701, 2701, 2701, 3069, 2701,
1331      2701, 2701, 3070, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1332      2701, 2701, 2701, 3044, 2701, 2701, 3045, 2701, 2701, 3048,
1333      3048, 2701, 2701, 2701, 2701, 3049, 3049, 2701, 2701, 2701,
1334      3049, 2701, 2701, 3051, 3051, 2701, 2701, 3052, 2701, 2701,
1335
1336      2701, 3054, 3054, 3054, 2701, 2701, 2701, 2701, 3055, 3056,
1337      2701, 2701, 2701, 2701, 2701, 3060, 2701, 2701, 2701, 2701,
1338      2701, 2701, 2701, 3065, 3066, 3066, 2701, 2701, 2701, 2701,
1339      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 3070, 2701,
1340      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 3044,
1341      2701, 2701, 3045, 3048, 2701, 2701, 2701, 2701, 2701, 3049,
1342      3049, 3049, 2701, 2701, 2701, 3051, 2701, 2701, 2701, 2701,
1343      2701, 2701, 2701, 3054, 3054, 3054, 2701, 2701, 2701, 2701,
1344      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 3060,
1345      2701, 2701, 2701, 3065, 3066, 3066, 2701, 2701, 2701, 2701,
1346
1347      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1348      2701, 3070, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1349      3044, 2701, 2701, 3045, 2701, 2701, 3048, 2701, 2701, 2701,
1350      3049, 3049, 3049, 3051, 2701, 2701, 2701, 2701, 2701, 2701,
1351      3054, 2701, 2701, 3054, 2701, 2701, 2701, 2701, 2701, 2701,
1352      2701, 2701, 2701, 2701, 2701, 2701, 3060, 3065, 3066, 3066,
1353      3066, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1354      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1355      2701, 2701, 3044, 2701, 3045, 2701, 2701, 2701, 3048, 3049,
1356      3049, 3049, 3051, 3054, 2701, 2701, 2701, 3054, 2701, 2701,
1357
1358      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1359      2701, 2701, 2701, 2701, 3065, 3066, 3066, 3066, 3071, 3072,
1360      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1361      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 3044,
1362      2701, 2701, 3048, 3049, 3049, 2701, 2701, 3051, 2701, 2701,
1363      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1364      2701, 2701, 2701, 2701, 3065, 3066, 3073, 3074, 3071, 3072,
1365      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1366      2701, 2701, 2701, 2701, 2701, 2701, 3048, 3049, 3049, 2701,
1367      2701, 2701, 3051, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1368
1369      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1370      2701, 3065, 3073, 3066, 3075, 3074, 3076, 3066, 2701, 2701,
1371      2701, 2701, 2701, 2701, 2701, 2701, 3048, 3049, 3049, 2701,
1372      2701, 2701, 2701, 3051, 2701, 2701, 2701, 2701, 2701, 2701,
1373      2701, 2701, 3065, 3075, 2701, 3076, 3066, 2701, 2701, 2701,
1374      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1375      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1376      2701, 3065, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1377      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1378      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1379
1380      2701, 3065, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1381      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1382      2701, 3065, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1383      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1384      3065, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1385      2701, 2701, 2701, 2701, 2701, 2701, 2701, 3065, 2701, 2701,
1386      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1387      2701, 2701, 2701, 2701, 3065, 2701, 2701, 2701, 2701, 2701,
1388      2701, 2701, 2701, 2701, 2701, 2701, 2701, 3065, 2701, 2701,
1389      2701, 2701, 2701, 2701, 2701, 2701, 3065, 2701, 2701, 2701,
1390
1391      2701, 2701, 2701, 2701, 2701, 3065, 3065, 2701, 2701, 2701,
1392      2701, 2701, 2701, 3065, 3065, 3065, 3065, 3065, 3065, 3065,
1393      3065, 3065, 3065, 3065, 3065, 3065, 3065, 3065, 3065, 3065,
1394      3065, 3065, 3065, 3065, 3065, 3065, 3065, 3065, 3065, 3065,
1395      3065, 3065, 3065, 3065, 3065, 3065, 3065, 3065, 3065, 3065,
1396      3065, 3065, 3065, 3065, 3065, 3065, 3065, 3065, 3065, 3065,
1397      3065, 3065, 3065, 3065, 3065, 3065, 3065, 3065, 3065, 3065,
1398      3065, 3065, 3065, 3065, 3065, 3065, 3065, 3065, 3065, 3065,
1399      3065, 3065, 3065, 3065, 3065, 3065, 3065, 3065, 3065, 3065,
1400      3065, 3065, 3065, 3065, 3065, 3065, 3065, 3065, 3065, 2701,
1401
1402         0, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1403      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1404      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1405      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1406      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1407      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1408      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1409      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1410      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1411      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1412
1413      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1414      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1415      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1416      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1417      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1418      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1419      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1420      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1421      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1422      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1423
1424      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1425      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1426      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1427      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1428      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1429      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1430      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1431      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1432      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1433      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1434
1435      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1436      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1437      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1438      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1439      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1440      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1441      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
1442      2701, 2701, 2701, 2701, 2701, 2701
1443     } ;
1444
1445 static yyconst flex_int16_t yy_nxt[9765] =
1446     {   0,
1447      2701,  230,  231,  230,  230,  231,  230,  230,  231,  230,
1448       230,  231,  230,  235,  231,  235,  241,  232,  238,  241,
1449       232,  238, 2701,  233, 2701,  239,  233, 2701,  239,  236,
1450       235,  231,  235,  562,  242,  244,  245,  242,  244,  245,
1451       246,  247,  606,  246,  247,  562,  236,  251,  252,  563,
1452       248,  244,  245,  248,  249,  565,  246,  244,  245,  713,
1453       249,  564,  246,  251,  252,  583,  248,  231,  231,  231,
1454       714,  564,  248,  231,  231,  231,  263,  231,  263,  263,
1455       231,  263, 1613,  254,  263,  231,  263,  641, 1614,  254,
1456       585,  253,  264,  598,  643,  264,  561,  561,  561,  594,
1457
1458       265,  561,  561,  561,  561,  561,  561,  253,  255,  256,
1459       231,  256,  255,  255,  255,  255,  255,  255,  255,  257,
1460       255,  255,  255,  625,  255,  259,  255,  260,  255,  263,
1461       231,  263,  231,  231,  231,  231,  231,  231,  593,  263,
1462       231,  263,  263,  231,  263,  265, 2701, 1615,  266,  565,
1463       565,  266,  594,  255,  255,  264,  595,  565,  264,  263,
1464       231,  263,  561,  561,  561,  564,  564,  561,  561,  561,
1465       561,  561,  561,  564,  626,  267,  261,  255,  256,  231,
1466       256,  255,  255,  255,  255,  255,  255,  255,  257,  255,
1467       255,  255, 2701,  255,  259,  255,  260,  255,  263,  231,
1468
1469       263,  231,  231,  231,  231,  231,  231,  576,  263,  231,
1470       263,  263,  231,  263,  267, 2701,  580,  268,  637, 1618,
1471       268,  625,  255,  255,  265,  595,  680,  265,  231,  231,
1472       231,  231,  231,  231,  263,  231,  263,  263,  231,  263,
1473       263,  231,  263,  626,  269,  261,  681,  269,  565,  594,
1474       267,  599,  565,  267,  596,  600,  270,  263,  231,  263,
1475       597,  561,  561,  561,  564, 2701,  598,  601,  564,  594,
1476       599,  642,  598,  270,  271,  272,  231,  272,  271,  271,
1477       271,  271,  271,  271,  271,  273,  271,  271,  271, 1619,
1478       271,  275,  271,  276,  271,  279,  231,  279,  279,  231,
1479
1480       279,  231,  231,  231,  593,  231,  231,  231,  279,  231,
1481       279,  280,  623, 1631,  280, 1632,  602,  268,  594,  271,
1482       271,  268,  588,  959,  280,  598,  624,  277,  271,  272,
1483       231,  272,  271,  271,  271,  271,  271,  271,  271,  273,
1484       271,  271,  271, 1398,  271,  275,  271,  276,  271,  279,
1485       231,  279,  279,  231,  279,  279,  231,  279,  561,  561,
1486       561,  244,  245,  612,  565,  280,  246,  756,  281,  595,
1487       613,  281,  652,  271,  271,  685,  291, 1639,  686,  564,
1488       564,  277,  282,  283,  231,  283,  282,  282,  282,  282,
1489       282,  282,  282,  284,  282,  282,  282,  583,  282,  286,
1490
1491       282,  287,  282, 1643,  582,  292,  305,  231,  305,  305,
1492       231,  305,  645,  231,  231,  231,  244,  245,  231,  231,
1493       231,  246,  306,  626,  652,  306,  565,  282,  282,  307,
1494       719,  291, 1644,  632,  307,  288,  657,  720,  289,  561,
1495       561,  561,  564,  657,  290,  282,  283,  231,  283,  282,
1496       282,  282,  282,  282,  282,  282,  284,  282,  282,  282,
1497       292,  282,  286,  282,  287,  282,  305,  231,  305,  305,
1498       231,  305,  305,  231,  305,  598,  305,  231,  305,  319,
1499       231,  319,  306,  565,  565,  306,  565,  626,  308,  619,
1500       282,  282,  308,  620,  598,  320,  727,  621,  288,  564,
1501
1502       564,  289,  564,  728,  570, 1650, 1656,  290,  293,  294,
1503       231,  294,  293,  293,  293,  293,  293,  293,  293,  295,
1504       293,  293,  293,  715,  293,  297,  293,  298,  293,  319,
1505       231,  319,  330,  231,  330,  330,  231,  330,  715,  330,
1506       231,  330,  330,  231,  330,  320,  571,  565,  331,  565,
1507       565,  331,  572,  293,  293,  332,  573,  662,  332, 1657,
1508      1658,  574,  299,  564,  300,  564,  564,  301,  561,  561,
1509       561,  588,  302,  303,  293,  294,  231,  294,  293,  293,
1510       293,  293,  293,  293,  293,  295,  293,  293,  293,  598,
1511       293,  297,  293,  298,  293,  231,  231,  231,  231,  231,
1512
1513       231,  330,  231,  330,  582,  330,  231,  330,  330,  231,
1514       330,  333, 1659,  565,  333,  565,  565,  334,  598,  293,
1515       293,  334,  667, 1663,  335,  561,  561,  561,  299,  564,
1516       300,  564,  564,  301,  561,  561,  561,  729,  302,  303,
1517       309,  310,  231,  310,  309,  309,  309,  309,  309,  309,
1518       309,  311,  309,  309,  309, 1669,  309,  313,  309,  314,
1519       309,  330,  231,  330,  231,  231,  231,  231,  231,  231,
1520       689,  330,  231,  330,  330,  231,  330,  335,  687, 1673,
1521       336,  690,  691,  336,  587,  309,  309,  332,  565,  565,
1522       332,  688,  315,  561,  561,  561,  692,  316,  561,  561,
1523
1524       561,  561,  561,  561,  564,  564,  317,  309,  310,  231,
1525       310,  309,  309,  309,  309,  309,  309,  309,  311,  309,
1526       309,  309,  763,  309,  313,  309,  314,  309,  231,  231,
1527       231,  231,  231,  231,  330,  231,  330,  764,  330,  231,
1528       330,  330,  231,  330,  337,  769,  782,  337,  770,  783,
1529       335, 1676,  309,  309,  335,  565,  565,  338, 1678,  315,
1530       561,  561,  561,  702,  316,  561,  561,  561,  561,  561,
1531       561,  564,  564,  317,  321,  322,  231,  322,  321,  321,
1532       321,  321,  321,  321,  321,  323,  321,  321,  321, 1679,
1533       321,  325,  321,  326,  321,  330,  231,  330,  231,  231,
1534
1535       231,  231,  231,  231, 1680,  330,  231,  330,  330,  231,
1536       330,  338,  565,  782,  339,  799,  796,  339,  783,  321,
1537       321,  340,  740, 1684,  340,  561,  561,  561,  564,  675,
1538       327,  561,  561,  561,  561,  561,  561, 1687,  328,  321,
1539       322,  231,  322,  321,  321,  321,  321,  321,  321,  321,
1540       323,  321,  321,  321,  756,  321,  325,  321,  326,  321,
1541       231,  231,  231,  231,  231,  231,  330,  231,  330,  587,
1542       330,  231,  330,  330,  231,  330,  341,  676,  565,  341,
1543       626, 1249,  338,  787,  321,  321,  338,  788,  565,  342,
1544       330,  231,  330, 1250,  564,  327,  561,  561,  561,  561,
1545
1546       561,  561, 1689,  328,  564,  598,  342,  343,  344,  231,
1547       344,  343,  343,  343,  343,  343,  343,  343,  345,  343,
1548       343,  343, 1696,  343,  347,  343,  348,  343,  353,  231,
1549       353,  353,  231,  353,  231,  231,  231, 1703,  231,  231,
1550       231,  561,  561,  561,  354,  565,  565,  354,  565,  565,
1551       307, 1704,  343,  343,  307,  707,  734,  349,  561,  561,
1552       561,  564,  564,  350,  564,  564,  351,  343,  344,  231,
1553       344,  343,  343,  343,  343,  343,  343,  343,  345,  343,
1554       343,  343, 1705,  343,  347,  343,  348,  343,  353,  231,
1555       353,  353,  231,  353,  353,  231,  353, 1707,  353,  231,
1556
1557       353,  561,  561,  561,  354,  565,  565,  354,  799,  565,
1558       355,  796,  343,  343,  355, 1721,  752,  349,  561,  561,
1559       561,  564,  564,  350,  721,  564,  351,  356,  357,  231,
1560       357,  356,  356,  356,  356,  356,  356,  356,  358,  356,
1561       356,  356, 1725,  356,  360,  356,  361,  356,  365,  231,
1562       365,  365,  231,  365,  231,  231,  231, 1260,  231,  231,
1563       231,  365,  231,  365,  366,  565,  565,  366, 1401, 1250,
1564       307,  722,  356,  356,  307,  598, 1726,  366,  561,  561,
1565       561,  564,  564,  362,  561,  561,  561,  561,  561,  561,
1566       561,  561,  561,  363,  356,  357,  231,  357,  356,  356,
1567
1568       356,  356,  356,  356,  356,  358,  356,  356,  356, 1719,
1569       356,  360,  356,  361,  356,  365,  231,  365,  365,  231,
1570       365,  365,  231,  365, 1727,  377,  231,  377,  377,  231,
1571       377,  366,  867,  959,  367,  868,  789,  367, 1127,  356,
1572       356,  378,  790, 1128,  378,  561,  561,  561,  791,  961,
1573       362,  561,  561,  561,  561,  561,  561,  561,  561,  561,
1574       363,  368,  369,  231,  369,  368,  368,  368,  368,  368,
1575       368,  368,  370,  368,  368,  368, 1728,  368,  372,  368,
1576       373,  368,  388,  231,  388,  388,  231,  388,  402,  231,
1577       402, 1730,  402,  231,  402,  231,  231,  231,  389, 1731,
1578
1579      1732,  389, 1733,  792,  403,  875,  368,  368,  403,  876,
1580      1734,  404,  561,  561,  561,  747,  793,  374,  561,  561,
1581       561,  375,  368,  369,  231,  369,  368,  368,  368,  368,
1582       368,  368,  368,  370,  368,  368,  368, 1401,  368,  372,
1583       368,  373,  368,  231,  231,  231,  402,  231,  402,  402,
1584       231,  402,  748,  402,  231,  402,  402,  231,  402,  404,
1585       959, 1737,  403,  797, 1228,  403,  626,  368,  368,  405,
1586      1720, 1738,  405,  561,  561,  561,  793,  763,  374,  561,
1587       561,  561,  375,  379,  380,  231,  380,  379,  379,  379,
1588       379,  379,  379,  379,  381,  379,  379,  379, 1741,  379,
1589
1590       383,  379,  384,  379,  421,  231,  421,  421,  231,  421,
1591       437,  231,  437,  811,  437,  231,  437,  448,  231,  448,
1592       422, 1742,  959,  422, 1743, 1744,  438, 1746,  379,  379,
1593       438,  959, 1747,  449,  561,  561,  561,  561,  561,  561,
1594       561,  561,  561,  385,  561,  561,  561, 1561, 1718,  386,
1595       379,  380,  231,  380,  379,  379,  379,  379,  379,  379,
1596       379,  381,  379,  379,  379, 1750,  379,  383,  379,  384,
1597       379,  448,  231,  448,  461,  231,  461,  461,  231,  461,
1598      1260,  231,  231,  231,  231,  231,  231,  449, 1753, 1757,
1599       462, 1758, 1284,  462, 1761,  379,  379,  307, 1762, 1763,
1600
1601       307,  561,  561,  561,  561,  561,  561,  561,  561,  561,
1602       385,  561,  561,  561, 1766, 1770,  386,  390,  391,  231,
1603       391,  390,  390,  390,  390,  390,  390,  390,  392,  390,
1604       390,  390, 1771,  390,  394,  390,  395,  390,  461,  231,
1605       461,  461,  231,  461,  461,  231,  461, 1759,  461,  231,
1606       461,  561,  561,  561,  462, 1760, 1773,  462,  797,  565,
1607       463,  797,  390,  390,  463,  396,  761,  397,  561,  561,
1608       561,  841, 1764,  398,  844,  564,  767,  767,  767,  399,
1609      1765, 1787,  400,  390,  391,  231,  391,  390,  390,  390,
1610       390,  390,  390,  390,  392,  390,  390,  390, 1788,  390,
1611
1612       394,  390,  395,  390,  473,  231,  473,  473,  231,  473,
1613       231,  231,  231,  801,  231,  231,  231, 1789, 1790,  790,
1614       474, 1791, 1792,  474,  797,  802,  475, 1103,  390,  390,
1615       475,  396,  801,  397,  768,  789, 1104,  845,  790,  398,
1616      1793,  790, 1797, 1105,  791,  399, 1803,  802,  400,  406,
1617       407,  231,  407,  406,  406,  406,  406,  406,  406,  406,
1618       408,  406,  406,  406,  409,  406,  410,  406,  411,  406,
1619       409,  409,  409,  409,  409,  409,  409,  409,  409,  409,
1620       409,  409,  409,  409,  409,  409,  409,  409,  409,  409,
1621       409,  409,  409,  409,  406,  406,  409,  412,  413,  414,
1622
1623       409,  409,  409,  409,  409,  415,  409,  416,  409,  409,
1624       409,  417,  409,  418,  419,  409,  409,  409,  409,  409,
1625       409,  423,  424,  231,  424,  423,  423,  423,  423,  423,
1626       423,  423,  425,  423,  423,  423,  426,  423,  427,  423,
1627       428,  423,  426,  426,  426,  426,  426,  426,  426,  426,
1628       426,  426,  426,  426,  426,  426,  426,  426,  426,  426,
1629       426,  426,  426,  426,  426,  426,  423,  423,  426,  429,
1630       430,  431,  426,  426,  426,  426,  426,  432,  426,  433,
1631       426,  426,  426,  434,  426,  426,  435,  426,  426,  426,
1632       426,  426,  426,  439,  440,  231,  440,  439,  439,  439,
1633
1634       439,  439,  439,  439,  441,  439,  439,  439, 1804,  439,
1635       443,  439,  444,  439,  473,  231,  473,  473,  231,  473,
1636       473,  231,  473, 1805,  473,  231,  473,  808,  808,  808,
1637       474, 1810, 1814,  474, 1815,  801,  476, 1816,  439,  439,
1638       476,  790, 1818,  445,  809, 1822, 1823,  826, 1824,  446,
1639       439,  440,  231,  440,  439,  439,  439,  439,  439,  439,
1640       439,  441,  439,  439,  439, 1825,  439,  443,  439,  444,
1641       439,  487,  231,  487,  487,  231,  487,  231,  231,  231,
1642      1826,  231,  231,  231,  816,  816,  816,  488, 1601, 1829,
1643       488, 1836, 1838,  475, 1602,  439,  439,  475, 1603, 1847,
1644
1645       445,  817, 1604,  976,  976,  976,  446,  450,  451,  231,
1646       451,  450,  450,  450,  450,  450,  450,  450,  452,  450,
1647       450,  450, 1848,  450,  454,  450,  455,  450,  487,  231,
1648       487,  487,  231,  487,  487,  231,  487, 1849,  487,  231,
1649       487,  499,  231,  499,  488, 1851, 1857,  488, 1863,  959,
1650       489, 1864,  450,  450,  489, 1854,  456,  500,  767,  767,
1651       767, 1867,  963,  457, 1868,  458,  977,  996,  996,  996,
1652      1401, 1869,  459,  450,  451,  231,  451,  450,  450,  450,
1653       450,  450,  450,  450,  452,  450,  450,  450, 1873,  450,
1654       454,  450,  455,  450,  499,  231,  499,  511,  231,  511,
1655
1656       511,  231,  511, 1877,  231,  231,  231,  231,  231,  231,
1657       500, 1879, 1880,  512, 1881, 1856,  512, 1885,  450,  450,
1658       475, 1891,  456,  475,  976,  976,  976, 1892, 1893,  457,
1659       977,  458, 1894,  996,  996,  996, 1895, 1896,  459,  464,
1660       465,  231,  465,  464,  464,  464,  464,  464,  464,  464,
1661       466,  464,  464,  464, 1897,  464,  468,  464,  469,  464,
1662       511,  231,  511,  511,  231,  511,  511,  231,  511, 1898,
1663       511,  231,  511,  525,  231,  525,  512, 1899, 1900,  512,
1664      1906, 1915,  513, 1916,  464,  464,  513, 1049, 1921,  526,
1665       470, 1008, 1008, 1008, 1917, 1009, 1049, 1922, 1010,  976,
1666
1667       976,  976, 1918, 1923,  471,  464,  465,  231,  465,  464,
1668       464,  464,  464,  464,  464,  464,  466,  464,  464,  464,
1669      1924,  464,  468,  464,  469,  464,  525,  231,  525,  231,
1670       231,  231,  231,  231,  231, 1919,  525,  231,  525,  525,
1671       231,  525,  526, 1920, 1928,  527, 1929, 1930,  527, 1932,
1672       464,  464,  526, 1933, 1934,  526,  470, 1018, 1018, 1018,
1673      1935, 1019, 1938, 1942, 1020,  996,  996,  996, 1943, 1948,
1674       471,  477,  478,  231,  478,  477,  477,  477,  477,  477,
1675       477,  477,  479,  477,  477,  477, 1949,  477,  481,  477,
1676       482,  477,  525,  231,  525,  525,  231,  525,  537,  231,
1677
1678       537, 1401,  537,  231,  537,  547,  231,  547,  528, 1605,
1679      1950,  528, 1944, 1951,  538, 1606,  477,  477,  538, 1607,
1680      1945,  548,  483, 1608, 1953,  484, 1041, 1041, 1041, 1961,
1681      1042, 1971, 1855, 1043, 1401, 1401,  485,  477,  478,  231,
1682       478,  477,  477,  477,  477,  477,  477,  477,  479,  477,
1683       477,  477, 1975,  477,  481,  477,  482,  477,  547,  231,
1684       547,  231,  231,  231,  231,  231,  231, 1946,  547,  231,
1685       547,  547,  231,  547,  548, 1947, 1966,  307, 1976, 1977,
1686       307, 1967,  477,  477,  548, 1980, 1984,  548,  483, 1985,
1687      1986,  484, 1058, 1058, 1058, 1987, 1059, 1988, 1989, 1060,
1688
1689      1990, 1991,  485,  490,  491,  231,  491,  490,  490,  490,
1690       490,  490,  490,  490,  492,  490,  490,  490, 1992,  490,
1691       494,  490,  495,  490,  547,  231,  547,  547,  231,  547,
1692       559,  231,  559, 1993,  559,  231,  559,  637, 1995, 1996,
1693       549, 2701, 2001,  549, 2002,  637,  560,  638,  490,  490,
1694       560, 1413, 1413, 1413,  496,  644, 1415, 1415, 1415,  497,
1695       490,  491,  231,  491,  490,  490,  490,  490,  490,  490,
1696       490,  492,  490,  490,  490,  639,  490,  494,  490,  495,
1697       490,  640, 2003,  639,  641,  640,  586, 2004,  641, 2005,
1698       642,  643, 2006, 2007,  646,  643,  598,  832,  832,  832,
1699
1700       592, 2009, 1416, 2010, 2013,  490,  490, 2014, 1066, 1066,
1701      1066,  496, 1067, 2017,  833, 1068,  497,  501,  502,  231,
1702       502,  501,  501,  501,  501,  501,  501,  501,  503,  501,
1703       501,  501, 2018,  501,  505,  501,  506,  501,  847,  847,
1704       847,  852,  852,  852,  857,  857,  857,  869,  869,  869,
1705       879,  879,  879, 2019, 2020,  848, 2024, 2025,  853, 2026,
1706      2027,  858,  501,  501,  870, 2028, 2029,  880,  507, 2030,
1707      2031,  508, 1074, 1074, 1074, 2033, 1075, 2055, 2056, 1076,
1708      2057, 2058,  509,  501,  502,  231,  502,  501,  501,  501,
1709       501,  501,  501,  501,  503,  501,  501,  501, 1401,  501,
1710
1711       505,  501,  506,  501,  882,  882,  882,  897,  897,  897,
1712       905,  905,  905,  910,  910,  910,  930,  930,  930, 2059,
1713      2064,  883, 2065, 2066,  898, 2067, 2068,  906,  501,  501,
1714       911, 2069, 1401,  931,  507, 2052, 2070,  508, 1091, 1091,
1715      1091, 2071, 1092, 2072, 2073, 1093, 2075, 2076,  509,  514,
1716       515,  231,  515,  514,  514,  514,  514,  514,  514,  514,
1717       516,  514,  514,  514, 2051,  514,  518,  514,  519,  514,
1718       949,  949,  949,  953,  953,  953, 2080, 2081,  972,  972,
1719       972,  972,  972,  972,  808,  808,  808,  950, 2082, 2083,
1720       954, 1003, 1003, 1003,  514,  514,  974, 2086, 2087,  974,
1721
1722      2091,  809,  520, 2094,  521, 2095,  522, 2098, 2102, 1005,
1723      1419, 1419, 1419, 2103,  523,  514,  515,  231,  515,  514,
1724       514,  514,  514,  514,  514,  514,  516,  514,  514,  514,
1725      2104,  514,  518,  514,  519,  514, 2105, 2106,  975, 1013,
1726      1013, 1013, 2109, 2110, 1003, 1003, 1003, 1013, 1013, 1013,
1727       816,  816,  816, 2127, 1021, 1021, 1021, 1015, 2128, 1401,
1728       514,  514, 1005,  959, 2129, 1015, 2130,  817,  520, 2140,
1729       521, 1022,  522, 1422, 1422, 1422, 1431, 1431, 1431, 2141,
1730       523,  529,  530,  231,  530,  529,  529,  529,  529,  529,
1731       529,  529,  531,  529,  529,  529, 2125,  529,  533,  529,
1732
1733       534,  529, 2124, 1006, 1024, 1024, 1024, 1029, 1029, 1029,
1734      1016, 1037, 1037, 1037, 1037, 1037, 1037, 2142, 1029, 1029,
1735      1029, 1025,  832,  832,  832, 1031,  529,  529, 2143, 1039,
1736      2144, 2145, 1039, 1106, 1106, 1106, 1031, 1107, 2146,  833,
1737      1108, 1110, 1110, 1110, 2147, 1111, 2148, 2149, 1112,  535,
1738       529,  530,  231,  530,  529,  529,  529,  529,  529,  529,
1739       529,  531,  529,  529,  529, 1032,  529,  533,  529,  534,
1740       529, 1045, 1045, 1045, 1045, 1045, 1045, 1040, 2151, 2152,
1741       847,  847,  847, 1062, 1062, 1062, 1062, 1062, 1062, 1047,
1742      2154, 2160, 1047, 2161, 2162,  529,  529,  848,  852,  852,
1743
1744       852, 1064, 2166, 2133, 1064, 1130, 1130, 1130, 1401, 1131,
1745      2174, 1048, 1132, 2134, 2175,  853, 2135, 2176,  535,  539,
1746       540,  231,  540,  539,  539,  539,  539,  539,  539,  539,
1747       541,  539,  539,  539, 2198,  539,  543,  539,  544,  539,
1748      1070, 1070, 1070, 1070, 1070, 1070,  857,  857,  857, 2136,
1749      2126, 1065, 1078, 1078, 1078, 1078, 1078, 1078, 1072, 2137,
1750      2199, 1072, 2138,  858,  539,  539, 2200, 1142, 1142, 1142,
1751      1080, 1143, 2204, 1080, 1144,  545,  539,  540,  231,  540,
1752       539,  539,  539,  539,  539,  539,  539,  541,  539,  539,
1753       539,  959,  539,  543,  539,  544,  539, 2205, 1084, 1084,
1754
1755      1084, 1084, 1084, 1084, 2206, 1096, 1096, 1096, 1073,  869,
1756       869,  869, 1096, 1096, 1096, 1081, 1086, 2207, 2208, 1086,
1757      2194,  539,  539, 1098, 2209, 2213,  870, 1454, 1454, 1454,
1758      1098, 2214,  545,  550,  551,  231,  551,  550,  550,  550,
1759       550,  550,  550,  550,  552,  550,  550,  550, 2215,  550,
1760       554,  550,  555,  550,  879,  879,  879,  882,  882,  882,
1761      1113, 1113, 1113, 2216, 2217, 1087, 1122, 1122, 1122, 2218,
1762      2210,  880, 1099, 2219,  883, 2184, 1401, 1114,  550,  550,
1763      1122, 1122, 1122, 2211, 1124, 2185, 1150, 1150, 1150,  556,
1764      1151, 2186, 2220, 1152, 1465, 1465, 1465, 1401, 1124, 2223,
1765
1766      2231,  557,  550,  551,  231,  551,  550,  550,  550,  550,
1767       550,  550,  550,  552,  550,  550,  550, 2195,  550,  554,
1768       550,  555,  550,  897,  897,  897, 1133, 1133, 1133, 2232,
1769      2233, 1137, 1137, 1137, 1137, 1137, 1137, 1125, 2196, 2234,
1770       898, 2187, 2241, 1134,  905,  905,  905,  550,  550, 1139,
1771      2244, 2188, 1139, 2251, 1145, 1145, 1145, 2189,  556, 2252,
1772      2253,  906, 2254, 2255, 1145, 1145, 1145,  910,  910,  910,
1773       557,  565, 1147, 1156, 1156, 1156, 2256, 2263,  580, 1156,
1774      1156, 1156, 1147,  959,  911, 1140, 2264,  564,  581, 2265,
1775      2266, 1158, 1160, 1160, 1160, 2267, 2268, 1158, 1413, 1413,
1776
1777      1413, 1162, 1162, 1162, 2701, 2701, 2701, 2269, 2270, 1161,
1778      1165, 1165, 1165, 2271, 2272,  582,  583,  584, 1163, 1401,
1779      2275, 2701,  585,  586, 1148,  587,  588, 2276, 1167,  589,
1780      2258,  590,  591,  592, 1159, 1165, 1165, 1165, 1170, 1170,
1781      1170, 2701, 2701, 2701, 1174, 1174, 1174, 2277, 2701, 2701,
1782      2701, 2278, 2279, 1167, 2259, 1171, 2280, 2281, 2701, 2282,
1783      2289, 1175, 1164, 2290, 2291, 2701, 1177, 1177, 1177, 2292,
1784      1177, 1177, 1177,  930,  930,  930, 1182, 1182, 1182, 2293,
1785      1183, 2294, 2298, 1184, 1179, 1185, 1185, 1185, 1179, 2307,
1786       931, 1172, 1185, 1185, 1185, 1168, 1189, 1189, 1189, 2701,
1787
1788      2701, 2701, 2299, 1187, 2301, 1173, 1176, 1180, 2308, 2309,
1789      1187, 2310, 2300, 1190, 2302, 2311, 2701, 1193, 1193, 1193,
1790      1195, 1195, 1195, 1195, 1195, 1195, 1203, 1203, 1203, 2303,
1791      1209, 1209, 1209, 2305, 1194, 1203, 1203, 1203, 1197, 2304,
1792      2312, 1197, 2323, 2306, 1205, 2324, 2325, 1188, 1211, 1191,
1793      1209, 1209, 1209, 1205,  949,  949,  949, 1213, 1213, 1213,
1794      2326, 1214, 2327, 1192, 1215, 1216, 1216, 1216, 1211,  959,
1795      2328,  950, 1216, 1216, 1216,  953,  953,  953, 1220, 1220,
1796      1220, 2329, 1221, 1218, 2330, 1222, 1224, 1224, 1224, 2334,
1797      1218, 2335,  954, 1198, 1224, 1224, 1224, 2336, 1206,  972,
1798
1799       972,  972, 2337, 2315, 1226,  972,  972,  972,  972,  972,
1800       972, 2338, 1226, 1212, 1262, 1262, 1262,  974, 1003, 1003,
1801      1003, 2339, 2343,  974, 2344, 2345,  974, 1003, 1003, 1003,
1802      2348, 1263, 1219, 1003, 1003, 1003, 1005, 1265, 1265, 1265,
1803      1008, 1008, 1008, 2353, 1009, 1005, 2354, 1010, 2701, 2701,
1804      2701, 1005, 2355, 2356, 1266, 1236, 2357, 1227, 1013, 1013,
1805      1013, 1013, 1013, 1013, 2358, 2701, 1013, 1013, 1013, 2359,
1806      1018, 1018, 1018, 2360, 1019, 2361, 1015, 1020, 2362, 1015,
1807      2363, 2364, 1264, 2371, 1015, 1021, 1021, 1021, 1271, 1271,
1808      1271, 2372, 1272, 2373, 2374, 1273, 2375, 1274, 1274, 1274,
1809
1810      2376, 2377, 1022, 1024, 1024, 1024, 2378,  959, 1267, 1280,
1811      1280, 1280, 2379, 1269, 1275, 1276, 1276, 1276, 2380, 1277,
1812      1025, 2381, 1278, 1029, 1029, 1029, 1281, 1029, 1029, 1029,
1813      1029, 1029, 1029, 1286, 1286, 1286, 1037, 1037, 1037, 2382,
1814      2383, 1031, 1037, 1037, 1037, 1031, 2384, 2387, 1031, 2365,
1815      1287, 1037, 1037, 1037, 1039, 1041, 1041, 1041, 2388, 1042,
1816      1039, 2389, 1043, 1045, 1045, 1045, 1045, 1045, 1045, 1039,
1817      1291, 1291, 1291, 1058, 1058, 1058, 2393, 1059, 2400, 2401,
1818      1060, 1047, 2402, 2403, 1047, 1062, 1062, 1062, 1292, 1283,
1819      1062, 1062, 1062, 1062, 1062, 1062, 2404, 2405, 1289, 2406,
1820
1821      1066, 1066, 1066, 1064, 1067, 2407, 2408, 1068, 1064, 2409,
1822      2410, 1064, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070,
1823      1070, 1074, 1074, 1074, 2411, 1075,  959, 2419, 1076, 2420,
1824      1072, 2421, 2422, 1072, 2423, 2424, 1072, 1306, 1306, 1306,
1825      1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1309,
1826      1309, 1309, 2414, 1303, 1307, 2701, 2701, 2701, 1080, 2425,
1827      2426, 1080, 2414, 2417, 1080, 2427, 1310, 1084, 1084, 1084,
1828      2428, 2412, 2701, 1084, 1084, 1084, 2415, 2429, 1305, 1084,
1829      1084, 1084, 2434, 1311, 2439, 1086, 1315, 1315, 1315, 2440,
1830      2441, 1086, 1091, 1091, 1091, 2442, 1092, 1086, 2430, 1093,
1831
1832      1096, 1096, 1096, 1316, 1096, 1096, 1096, 1096, 1096, 1096,
1833      2431, 2432, 1308, 1106, 1106, 1106, 2445, 1107, 1098, 2445,
1834      1108, 2414, 1098, 2433, 2448, 1098, 1326, 1326, 1326, 1110,
1835      1110, 1110, 2449, 1111, 2450, 2415, 1112, 1113, 1113, 1113,
1836      1122, 1122, 1122, 1327, 1312, 1328, 1328, 1328, 2451, 1329,
1837       959, 2460, 1330, 2435, 1114, 1122, 1122, 1122, 1124, 1122,
1838      1122, 1122, 1130, 1130, 1130, 2436, 1131, 1401, 1402, 1132,
1839      2414, 1319, 2437, 1124, 1133, 1133, 1133, 1124, 1343, 1343,
1840      1343, 2417, 1344, 2463, 2438, 1345, 1137, 1137, 1137, 2468,
1841      2443, 1134, 1137, 1137, 1137, 1137, 1137, 1137, 1142, 1142,
1842
1843      1142, 2471, 1143, 2445, 1139, 1144, 1145, 1145, 1145, 2473,
1844      1139, 2445, 2458, 1139, 1145, 1145, 1145, 1145, 1145, 1145,
1845      1156, 1156, 1156, 2474, 1147, 1338, 1150, 1150, 1150, 2475,
1846      1151, 2459, 1147, 1152, 2476, 1147, 2477, 2461, 1158, 1156,
1847      1156, 1156, 1156, 1156, 1156, 2487, 1348, 1160, 1160, 1160,
1848      2488, 1356, 1356, 1356, 2489, 1357, 2462, 1158, 1358, 2490,
1849      1158, 1162, 1162, 1162, 1161, 1359, 1359, 1359, 2491, 1360,
1850      2492, 2466, 1361, 1165, 1165, 1165, 2469, 2496, 1163, 1165,
1851      1165, 1165, 2497, 1350, 1165, 1165, 1165, 1170, 1170, 1170,
1852      2467, 1167, 1365, 1365, 1365, 2470, 1366, 1167, 2498, 1367,
1853
1854      2499, 1355, 1167, 2500, 1171, 1174, 1174, 1174, 1370, 1370,
1855      1370, 2501, 1371, 2503, 2504, 1372, 1177, 1177, 1177, 1177,
1856      1177, 1177, 1175, 1177, 1177, 1177, 1182, 1182, 1182, 2505,
1857      1183, 2510, 2511, 1184, 1179, 2512, 2506, 1179, 1185, 1185,
1858      1185, 1179, 1185, 1185, 1185, 1185, 1185, 1185, 2507, 2513,
1859      1363, 1189, 1189, 1189, 2514, 2515, 1187, 1377, 1377, 1377,
1860      1187, 1378, 2508, 1187, 1379, 1193, 1193, 1193, 1190, 1382,
1861      1382, 1382, 2516, 1383, 2509, 2517, 1384, 1195, 1195, 1195,
1862      2518, 2519, 1194, 1195, 1195, 1195, 1374, 1195, 1195, 1195,
1863      1387, 1387, 1387, 2520, 2521, 1197, 1203, 1203, 1203,  959,
1864
1865      2523, 1197, 2524, 2525, 1376, 1197, 2526, 1388, 1203, 1203,
1866      1203, 1203, 1203, 1203, 1205, 1209, 1209, 1209, 1209, 1209,
1867      1209, 1209, 1209, 1209, 2522, 2527, 1205, 2528, 2529, 1205,
1868      1213, 1213, 1213, 1211, 1214, 2530, 1211, 1215, 2531, 1211,
1869      1216, 1216, 1216, 1216, 1216, 1216, 2532, 2533, 1385, 1216,
1870      1216, 1216, 1220, 1220, 1220, 2534, 1221, 2535, 1218, 1222,
1871      2536, 1218, 1224, 1224, 1224, 2537, 2538, 1218, 1224, 1224,
1872      1224, 1391, 2539, 2540, 1394, 1224, 1224, 1224,  959, 2542,
1873      1226, 1400, 1400, 1400, 2543, 2544, 1226,  972,  972,  972,
1874      1262, 1262, 1262, 1226, 1434, 1434, 1434, 2541, 1435, 1401,
1875
1876      1402, 1436, 1003, 1003, 1003,  974, 2545, 1263, 1395, 1265,
1877      1265, 1265, 1438, 1438, 1438, 2546, 1439, 2547, 2548, 1440,
1878      1005, 1013, 1013, 1013, 2549, 2550, 1266, 1271, 1271, 1271,
1879      2551, 1272, 2552, 2553, 1273, 1397, 1274, 1274, 1274, 1015,
1880      1445, 1445, 1445, 2554, 1446, 2555, 2556, 1447, 1280, 1280,
1881      1280, 2557, 1407, 1275, 1276, 1276, 1276, 2559, 1277, 1437,
1882       959, 1278, 1449, 1449, 1449, 1281, 1450, 2560, 2561, 1451,
1883      1443, 1029, 1029, 1029, 1286, 1286, 1286, 1456, 1456, 1456,
1884      2558, 1457, 2562, 2563, 1458, 1459, 1459, 1459, 2564, 1031,
1885      2565, 1287, 1037, 1037, 1037, 1291, 1291, 1291, 1466, 1466,
1886
1887      1466, 2566, 1460, 1472, 1472, 1472, 1062, 1062, 1062, 2567,
1888      1039, 2568, 2569, 1292, 1070, 1070, 1070, 1306, 1306, 1306,
1889      1473, 1453, 2570, 2571, 1064, 2572, 1477, 1477, 1477, 2573,
1890      1478, 2574, 1072, 1479, 1307, 1078, 1078, 1078, 1309, 1309,
1891      1309, 1461,  959, 2576, 1416, 1481, 1481, 1481, 2575, 1482,
1892      2577, 2578, 1483, 1080, 2579, 1310, 1084, 1084, 1084, 1315,
1893      1315, 1315, 2580, 1488, 1488, 1488, 2581, 1489, 2582, 1474,
1894      1490, 1491, 1491, 1491, 1086, 2583, 1316, 1476, 1493, 1493,
1895      1493, 1096, 1096, 1096, 1500, 1500, 1500, 2584, 1492, 1326,
1896      1326, 1326, 2585, 2586, 1480, 1494, 1504, 1504, 1504, 1098,
1897
1898      1505, 1501, 2587, 1506, 2589, 2590, 1327, 1328, 1328, 1328,
1899      2591, 1329, 2592, 2593, 1330, 2594, 1485, 1507, 1507, 1507,
1900      1122, 1122, 1122,  959, 1495, 1517, 1517, 1517, 1343, 1343,
1901      1343, 2595, 1344, 2596, 1508, 1345, 2598, 2588, 1124, 1521,
1902      1521, 1521, 1518, 1137, 1137, 1137, 1496, 1145, 1145, 1145,
1903      1530, 1530, 1530, 1156, 1156, 1156, 1522, 1165, 1165, 1165,
1904      2599, 1139, 1356, 1356, 1356, 1147, 1357, 1531, 2600, 1358,
1905      2601, 1158, 1359, 1359, 1359, 1167, 1360, 2602, 2603, 1361,
1906      1415, 1415, 1415, 2604, 1515, 1365, 1365, 1365, 2605, 1366,
1907      2608, 2609, 1367, 1370, 1370, 1370, 1532, 1371, 2610, 2611,
1908
1909      1372, 1177, 1177, 1177, 2612, 2613, 1524,  959,  959, 1533,
1910      1600,  959, 1526, 1185, 1185, 1185, 1377, 1377, 1377, 1179,
1911      1378, 2622, 1535, 1379,  959,  959, 1536,  959, 1382, 1382,
1912      1382, 1187, 1383, 1598,  959, 1384, 1195, 1195, 1195, 1387,
1913      1387, 1387, 1547, 1547, 1547,  959, 1548, 2614, 2660, 1549,
1914      1203, 1203, 1203,  959, 1197, 2616, 1388, 1554, 1554, 1554,
1915      2615, 1540, 1209, 1209, 1209, 1558, 1558, 1558, 1205, 1542,
1916      1216, 1216, 1216, 2628, 1555, 1224, 1224, 1224,  959, 2624,
1917      1211, 2617, 1559, 1545, 1400, 1400, 1400,  959, 1218,  972,
1918       972,  972, 2618, 1226, 1415, 1415, 1415,  959, 2625, 1552,
1919
1920      2619,  959, 1401, 1575, 1575, 1575,  959,  974, 1419, 1419,
1921      1419, 1422, 1422, 1422, 1580, 1580, 1580, 1583, 1583, 1583,
1922      1597, 2620, 1557, 1431, 1431, 1431, 1596, 1594, 1556, 1590,
1923      1590, 1590, 1003, 1003, 1003, 1562, 1560,  959, 1434, 1434,
1924      1434, 1567, 1435, 2629, 2621, 1436, 1013, 1013, 1013, 2626,
1925      1005, 1563, 1438, 1438, 1438,  959, 1439,  959,  959, 1440,
1926      1454, 1454, 1454, 1584, 1015, 1445, 1445, 1445, 2627, 1446,
1927      2623,  959, 1447,  959,  959, 1591,  959, 1581, 1449, 1449,
1928      1449,  959, 1450, 2676, 1593, 1451, 1029, 1029, 1029, 1456,
1929      1456, 1456, 2630, 1457,  959, 2631, 1458, 1595, 1592, 1459,
1930
1931      1459, 1459, 1589,  959, 1031, 1609, 1609, 1609, 2634, 1610,
1932      2666, 2632, 1611, 1037, 1037, 1037, 1460, 1465, 1465, 1465,
1933      1466, 1466, 1466, 1616, 1616, 1616, 1616, 1616, 1616, 2635,
1934       959, 1039, 1580, 1580, 1580, 1472, 1472, 1472, 1620, 1620,
1935      1620, 1588, 1621, 2633,  959, 1622, 1599, 1062, 1062, 1062,
1936       959,  959, 1473, 1624, 1624, 1624, 1070, 1070, 1070, 1477,
1937      1477, 1477, 2640, 1478, 1612, 1064, 1479, 1078, 1078, 1078,
1938      1625, 1481, 1481, 1481, 1072, 1482, 2641,  959, 1483, 1628,
1939      1628, 1628, 1084, 1084, 1084, 1080, 1617, 2638, 2639, 1581,
1940      1491, 1491, 1491, 2642, 1623, 1617, 1629, 1488, 1488, 1488,
1941
1942      1086, 1489,  959, 1626, 1490, 2643,  959, 1492, 1633, 1633,
1943      1633,  959, 1634, 2698,  959, 1635, 1493, 1493, 1493, 1636,
1944      1636, 1636, 2636, 1637,  959,  959, 1638,  959, 1640, 1640,
1945      1640,  959, 1627, 1494, 1642, 1642, 1642, 1500, 1500, 1500,
1946      1645, 1645, 1645, 2658, 1646, 1630, 1641, 1647, 1648, 1648,
1947      1648, 1504, 1504, 1504, 1501, 1505, 2637, 2654, 1506, 1507,
1948      1507, 1507, 1651, 1651, 1651, 1649, 1652, 2648, 2659, 1653,
1949      1654, 1654, 1654, 1660, 1660, 1660, 1508, 1122, 1122, 1122,
1950      1517, 1517, 1517, 1587, 1664, 1664, 1664, 1655, 1665, 1586,
1951      1661, 1666, 1667, 1667, 1667, 1124, 1585, 1518, 1521, 1521,
1952
1953      1521, 1670, 1670, 1670,  959, 1671,  959,  959, 1672, 1668,
1954      1674, 1674, 1674,  959, 1582, 1522, 1145, 1145, 1145, 1530,
1955      1530, 1530, 1681, 1681, 1681,  959, 1682, 2674, 1675, 1683,
1956      1685, 1685, 1685,  959, 1147,  959, 1531, 1165, 1165, 1165,
1957      2655, 2644, 1662, 1690, 1690, 1690, 2649, 2646, 1686, 1692,
1958      1692, 1692, 2701, 2701, 2701, 1167, 1177, 1177, 1177, 2647,
1959      1691, 1185, 1185, 1185,  959,  959, 1693, 1677, 2645, 2701,
1960      1698, 1698, 1698,  959, 1179, 1700, 1700, 1700, 1579, 1187,
1961      1195, 1195, 1195, 1203, 1203, 1203,  959, 1699, 1688, 1547,
1962      1547, 1547, 1701, 1548, 1578,  959, 1549, 2656, 1197, 2652,
1963
1964      2653, 1205, 1554, 1554, 1554, 2657,  959, 1697, 1577, 1708,
1965      1708, 1708, 2668, 1709,  959, 1694, 1710,  959, 2650, 1555,
1966      2670,  959, 1695, 1209, 1209, 1209,  959, 1216, 1216, 1216,
1967      1558, 1558, 1558, 1576, 1706, 1713, 1713, 1713, 1574, 1714,
1968      2651, 1211, 1715,  959, 1702, 1218, 2667, 1559, 1716, 1716,
1969      1716, 1722, 1722, 1722,  972,  972,  972, 1729, 1729, 1729,
1970      1575, 1575, 1575, 1735, 1735, 1735, 1717, 2661, 1723, 1580,
1971      1580, 1580,  974, 1736, 1736, 1736, 1583, 1583, 1583,  959,
1972      2664, 1711, 1712, 1739, 1739, 1739, 1740, 1740, 1740, 1590,
1973      1590, 1590, 1003, 1003, 1003, 1748, 1748, 1748, 1751, 1751,
1974
1975      1751, 1029, 1029, 1029, 1755, 1755, 1755, 1037, 1037, 1037,
1976      1005, 1573,  959, 1749, 1724, 1752, 1609, 1609, 1609, 1031,
1977      1610, 1756,  959, 1611, 2662, 1039, 1768, 1768, 1768, 1616,
1978      1616, 1616, 1772, 1772, 1772, 1774, 1774, 1774, 1062, 1062,
1979      1062, 2669, 1745, 1769, 1620, 1620, 1620,  959, 1621,  959,
1980       959, 1622, 1775, 1767, 2688,  959, 1064, 2663,  959, 1754,
1981      1624, 1624, 1624, 1777, 1777, 1777,  959, 1778,  959, 1572,
1982      1779, 1070, 1070, 1070, 1781, 1781, 1781, 1625, 1628, 1628,
1983      1628, 1783, 1783, 1783, 2665, 1784,  959, 1571, 1785, 1072,
1984      2682, 1776, 1782,  959, 2672, 1629, 1084, 1084, 1084, 1633,
1985
1986      1633, 1633, 2671, 1634, 2677, 2675, 1635,  959, 1636, 1636,
1987      1636, 2673, 1637,  959, 1086, 1638, 1640, 1640, 1640, 1642,
1988      1642, 1642,  959, 2678, 1780, 1645, 1645, 1645,  959, 1646,
1989      2679, 1570, 1647,  959, 1641, 1648, 1648, 1648, 1794, 1794,
1990      1794,  959, 1795, 1786, 2686, 1796, 1651, 1651, 1651,  959,
1991      1652,  959, 1649, 1653, 1654, 1654, 1654, 1798, 1798, 1798,
1992       959, 1799, 2680, 2683, 1800, 1801, 1801, 1801, 1660, 1660,
1993      1660, 1655, 1806, 1806, 1806,  959, 1807, 1569, 2684, 1808,
1994      1568, 2681, 1802, 2689,  959, 1661, 1122, 1122, 1122, 1664,
1995      1664, 1664, 2692, 1665, 2685, 1566, 1666, 1667, 1667, 1667,
1996
1997       959, 1811, 1811, 1811, 1124, 1812, 2690,  959, 1813, 1670,
1998      1670, 1670, 2687, 1671, 1668,  959, 1672, 1674, 1674, 1674,
1999      1145, 1145, 1145, 1819, 1819, 1819, 1681, 1681, 1681,  959,
2000      1682, 2694, 2693, 1683, 1565, 1675,  959, 1809, 1147, 2696,
2001      1820, 1685, 1685, 1685, 1827, 1827, 1827, 1690, 1690, 1690,
2002      1830, 1830, 1830, 1564, 1831, 1401, 1553, 1832, 1551, 1686,
2003      1550, 1546, 1828, 1544, 1691, 1692, 1692, 1692, 2697, 1821,
2004      1833, 1833, 1833, 1543, 1834, 1541, 2695, 1835, 1177, 1177,
2005      1177, 1539, 1693, 1817, 1185, 1185, 1185, 1698, 1698, 1698,
2006      1840, 1840, 1840, 1538, 1841, 1537, 1179, 1842, 1700, 1700,
2007
2008      1700, 2691, 1187, 2698, 1699, 1843, 1843, 1843, 1534, 1844,
2009       959, 1529, 1845, 1528,  959, 1701, 1195, 1195, 1195, 1203,
2010      1203, 1203, 1708, 1708, 1708, 1527, 1709, 1525, 1523, 1710,
2011      1209, 1209, 1209, 1839, 1197, 1520, 1519, 1205, 1216, 1216,
2012      1216, 1516, 1514, 1837, 1513, 1713, 1713, 1713, 1211, 1714,
2013      1512, 1511, 1715, 1716, 1716, 1716, 1218, 1722, 1722, 1722,
2014      1858, 1858, 1858, 1510, 1859, 1509, 1503, 1860,  972,  972,
2015       972, 1717, 1502, 1499, 1723, 1862, 1862, 1862, 1498, 1497,
2016      1846, 1852, 1487, 1850, 1486, 1484,  974, 1865, 1865, 1865,
2017      1475, 1853, 1729, 1729, 1729, 1866, 1866, 1866, 1870, 1870,
2018
2019      1870, 1735, 1735, 1735, 1736, 1736, 1736, 1871, 1871, 1871,
2020      1739, 1739, 1739, 1740, 1740, 1740, 1874, 1874, 1874, 1875,
2021      1875, 1875, 1876, 1876, 1876, 1003, 1003, 1003, 1748, 1748,
2022      1748, 1861, 1751, 1751, 1751, 1882, 1882, 1882, 1471, 1883,
2023      1470, 1469, 1884, 1005, 1468, 1467, 1749, 1464, 1463, 1752,
2024      1886, 1886, 1886, 1872, 1755, 1755, 1755, 1888, 1888, 1888,
2025      1462, 1889, 1455, 1452, 1890, 1037, 1037, 1037, 1887, 1448,
2026      1444, 1756, 1768, 1768, 1768, 1442, 1878, 1902, 1902, 1902,
2027      1441, 1903, 1433, 1039, 1904, 1905, 1905, 1905, 1432, 1769,
2028      1772, 1772, 1772, 1907, 1907, 1907, 1774, 1774, 1774, 1909,
2029
2030      1909, 1909, 1430, 1910, 1429, 1428, 1911, 1062, 1062, 1062,
2031      1070, 1070, 1070, 1775, 1901, 1777, 1777, 1777, 1427, 1778,
2032      1426, 1425, 1779, 1424, 1423, 1064, 1421, 1420, 1072, 1781,
2033      1781, 1781, 1418, 1783, 1783, 1783, 1417, 1784, 1414, 1908,
2034      1785, 1084, 1084, 1084, 1794, 1794, 1794, 1782, 1795, 1412,
2035      1411, 1796, 1410, 1798, 1798, 1798, 1409, 1799, 1912, 1086,
2036      1800, 1913, 1801, 1801, 1801, 1925, 1925, 1925, 1408, 1926,
2037      1406, 1405, 1927, 1806, 1806, 1806, 1404, 1807, 1403, 1802,
2038      1808, 1122, 1122, 1122, 1811, 1811, 1811, 1396, 1812, 1393,
2039      1392, 1813, 1390, 1389, 1914, 1936, 1936, 1936, 1386, 1124,
2040
2041      1819, 1819, 1819, 1939, 1939, 1939, 1381, 1940, 1380, 1375,
2042      1941, 1373, 1369, 1937, 1827, 1827, 1827, 1820, 1830, 1830,
2043      1830, 1368, 1831, 1364, 1362, 1832, 1833, 1833, 1833, 1354,
2044      1834, 1353, 1828, 1835, 1177, 1177, 1177, 1185, 1185, 1185,
2045      1352, 1840, 1840, 1840, 1931, 1841, 1351, 1349, 1842, 1843,
2046      1843, 1843, 1179, 1844, 1347, 1187, 1845, 1195, 1195, 1195,
2047      1956, 1956, 1956, 2701, 2701, 2701, 2701, 2701, 2701, 1203,
2048      1203, 1203, 1209, 1209, 1209, 1197, 1346, 1957, 1342, 1341,
2049      2701, 1340, 1339, 2701, 1337, 1952, 1336, 1205, 1335, 1334,
2050      1211, 1333, 1332, 1955, 1963, 1963, 1963, 1965, 1965, 1965,
2051
2052      1331, 1325, 1954, 1968, 1968, 1968, 1858, 1858, 1858, 1324,
2053      1859, 1323, 1964, 1860, 1958,  959,  972,  972,  972, 1862,
2054      1862, 1862, 1322, 1321, 1959, 1970, 1970, 1970, 1865, 1865,
2055      1865, 1962, 1320, 1960,  974, 1866, 1866, 1866, 1972, 1972,
2056      1972, 1973, 1973, 1973, 1974, 1974, 1974, 1870, 1870, 1870,
2057      1871, 1871, 1871, 1874, 1874, 1874, 1875, 1875, 1875, 1876,
2058      1876, 1876, 1978, 1978, 1978, 1981, 1981, 1981, 1882, 1882,
2059      1882, 1318, 1883, 1317, 1969, 1884, 2701, 2701, 2701, 1314,
2060      1979, 1313, 1982, 1886, 1886, 1886, 1304, 1888, 1888, 1888,
2061      1302, 1889, 1301, 2701, 1890, 1037, 1037, 1037, 1902, 1902,
2062
2063      1902, 1887, 1903, 1300, 1299, 1904, 1905, 1905, 1905, 1907,
2064      1907, 1907, 1298, 1039, 1909, 1909, 1909, 1297, 1910, 1296,
2065      1295, 1911, 1062, 1062, 1062, 1998, 1998, 1998, 1084, 1084,
2066      1084, 2008, 2008, 2008, 1294, 1925, 1925, 1925, 1293, 1926,
2067      1064, 1983, 1927, 1999, 1290, 1288, 1086, 2011, 2011, 2011,
2068      1285, 2015, 2015, 2015, 1282, 1994, 1936, 1936, 1936, 2021,
2069      2021, 2021, 1279, 1270, 2012, 2032, 2032, 2032, 1997, 2016,
2070      1268, 1939, 1939, 1939, 1937, 1940, 2022, 1261, 1941, 2000,
2071      2034, 2034, 2034, 2036, 2036, 2036, 1185, 1185, 1185, 1195,
2072      1195, 1195, 1956, 1956, 1956, 2040, 2040, 2040, 2035, 2041,
2073
2074      2037, 1259, 2042, 1258, 1187, 2023, 1257, 1197, 1256, 1957,
2075      2043, 2043, 2043, 2701, 2701, 2701, 2046, 2046, 2046, 2048,
2076      2048, 2048, 1209, 1209, 1209, 1255, 1254, 2044, 1253, 1252,
2077      2701, 1968, 1968, 1968, 2047, 1963, 1963, 1963, 1251, 1248,
2078      1211, 1965, 1965, 1965, 1247, 2038, 1970, 1970, 1970, 2039,
2079      2053, 2053, 2053, 1964, 1972, 1972, 1972, 1246, 1245,  959,
2080      1973, 1973, 1973, 1244, 2045, 1974, 1974, 1974, 2054, 1243,
2081      1978, 1978, 1978, 1981, 1981, 1981, 2060, 2060, 2060, 1242,
2082      2061, 1241, 1240, 2062, 2701, 2701, 2701, 2049, 1979, 1239,
2083      1982, 1037, 1037, 1037, 1062, 1062, 1062, 1998, 1998, 1998,
2084
2085      1238, 2701, 2050, 2078, 2078, 2078, 2084, 2084, 2084, 1039,
2086      1237, 1235, 1064, 1234, 1233, 1999, 2008, 2008, 2008, 1232,
2087      1231, 2079, 1230, 2085, 2011, 2011, 2011, 2088, 2088, 2088,
2088      1229, 2089,  959, 1223, 2090, 2092, 2092, 2092, 1208, 2063,
2089      1207, 2012, 2015, 2015, 2015, 2096, 2096, 2096, 1202, 1201,
2090      2074, 1200, 2093, 2021, 2021, 2021, 2107, 2107, 2107, 2077,
2091      2016, 1199, 2097, 1181, 2099, 2099, 2099, 1169, 2100, 1155,
2092      2022, 2101, 1154, 2108, 2032, 2032, 2032, 2034, 2034, 2034,
2093      2036, 2036, 2036, 2111, 2111, 2111, 1153, 2112, 1149, 1141,
2094      2113, 2114, 2114, 2114, 1136, 2035, 1135, 2037, 1195, 1195,
2095
2096      1195, 2040, 2040, 2040, 1129, 2041, 1126, 1121, 2042, 2115,
2097      2043, 2043, 2043, 2117, 2117, 2117, 1197, 2118, 1120, 1119,
2098      2119, 2120, 2120, 2120, 2046, 2046, 2046, 2044, 2048, 2048,
2099      2048, 2122, 2122, 2122, 2053, 2053, 2053, 1118, 2121, 2131,
2100      2131, 2131, 2047, 2060, 2060, 2060, 1117, 2061, 1116, 2123,
2101      2062, 1115, 2054, 2701, 2701, 2701, 2132, 1037, 1037, 1037,
2102      1062, 1062, 1062, 1109, 2116, 2078, 2078, 2078, 1102, 1101,
2103      2701, 2155, 2155, 2155, 1100, 1039, 1095, 1094, 1064, 2084,
2104      2084, 2084, 1090, 2079, 1089, 2157, 2157, 2157, 2156, 2158,
2105      1088, 1083, 2159, 2088, 2088, 2088, 2085, 2089, 1082, 1077,
2106
2107      2090, 2092, 2092, 2092, 2163, 2163, 2163, 1069, 2164, 1061,
2108      1057, 2165, 1056, 2139, 1055, 1054, 2150, 1053, 2093, 2167,
2109      2167, 2167, 2096, 2096, 2096, 2169, 2169, 2169, 1052, 2170,
2110      2153, 1051, 2171, 2172, 2172, 2172, 2168, 1050, 1044, 2097,
2111      2099, 2099, 2099, 1036, 2100, 1035, 1034, 2101, 1033, 1028,
2112      2173, 2107, 2107, 2107, 2177, 2177, 2177, 1027, 2178, 1026,
2113      1023, 2179, 2180, 2180, 2180, 2182, 2182, 2182, 2108, 2111,
2114      2111, 2111, 1017, 2112, 1012, 1011, 2113, 1007, 1002, 2181,
2115      1001, 1000, 2183, 2114, 2114, 2114, 1195, 1195, 1195, 2117,
2116      2117, 2117,  999, 2118,  998,  997, 2119, 2120, 2120, 2120,
2117
2118       995, 2115,  994,  993, 1197, 2191, 2191, 2191,  992, 2192,
2119       991,  990, 2193,  989, 2121, 2122, 2122, 2122, 2197, 2197,
2120      2197, 2131, 2131, 2131, 2201, 2201, 2201,  988, 2202,  987,
2121       986, 2203,  985, 2123,  984, 2701, 2701, 2701, 2132, 1037,
2122      1037, 1037, 2222, 2222, 2222, 1062, 1062, 1062, 2155, 2155,
2123      2155, 2190, 2701, 2225, 2225, 2225,  983, 1039,  982,  981,
2124      2228, 2228, 2228, 1064, 2229, 2156,  980, 2230,  979,  978,
2125      2226, 2157, 2157, 2157,  971, 2158,  970,  969, 2159, 2163,
2126      2163, 2163,  968, 2164,  967,  966, 2165, 2167, 2167, 2167,
2127      2221, 2235, 2235, 2235, 2212, 2236,  965,  962, 2237, 2227,
2128
2129       960, 2169, 2169, 2169, 2168, 2170, 2224,  959, 2171, 2172,
2130      2172, 2172, 2238, 2238, 2238,  957, 2239,  955,  952, 2240,
2131      2242, 2242, 2242, 2177, 2177, 2177, 2173, 2178,  948,  946,
2132      2179, 2180, 2180, 2180, 2245, 2245, 2245, 2243, 2246,  945,
2133       944, 2247, 2182, 2182, 2182, 2248, 2248, 2248, 2181, 2249,
2134       942,  941, 2250, 1195, 1195, 1195, 2191, 2191, 2191, 2183,
2135      2192,  940,  939, 2193, 2260, 2260, 2260, 2197, 2197, 2197,
2136       938, 1197, 2262, 2262, 2262,  936, 2201, 2201, 2201,  935,
2137      2202, 2261, 1401, 2203, 2273, 2273, 2273, 1037, 1037, 1037,
2138      2222, 2222, 2222, 2284, 2284, 2284, 1062, 1062, 1062,  934,
2139
2140       933, 2274,  929,  928, 2257, 1039, 2225, 2225, 2225, 2286,
2141      2286, 2286,  926, 2287, 1064,  925, 2288, 2228, 2228, 2228,
2142       924, 2229,  923, 2226, 2230, 2235, 2235, 2235,  922, 2236,
2143       921,  919, 2237, 2238, 2238, 2238, 2283, 2239,  918,  917,
2144      2240, 2242, 2242, 2242, 2295, 2295, 2295, 2285, 2296,  916,
2145       914, 2297, 2245, 2245, 2245,  913, 2246,  912, 2243, 2247,
2146      2248, 2248, 2248,  909, 2249,  908,  904, 2250, 2313, 2313,
2147      2313, 2316, 2316, 2316, 2260, 2260, 2260, 2318, 2318, 2318,
2148       903, 2319,  901,  900, 2320,  899, 2314,  896, 2317, 1401,
2149       895, 2261, 1401,  894,  893, 1401, 2262, 2262, 2262, 2321,
2150
2151      2321, 2321, 2322, 2322, 2322, 2273, 2273, 2273, 2331, 2331,
2152      2331,  891, 2332,  890,  889, 2333, 1037, 1037, 1037, 2284,
2153      2284, 2284, 2274, 2341, 2341, 2341, 2286, 2286, 2286,  888,
2154      2287,  887,  886, 2288, 1039, 2346, 2346, 2346, 2349, 2349,
2155      2349, 2342, 2295, 2295, 2295,  885, 2296,  884,  881, 2297,
2156       878,  877, 2347,  874,  872, 2350, 2351, 2351, 2351, 2313,
2157      2313, 2313, 2316, 2316, 2316, 2366, 2366, 2366,  871, 2367,
2158       866,  865, 2368, 2352, 2321, 2321, 2321, 2314,  863, 2317,
2159      1401, 2340,  862, 1401, 2318, 2318, 2318,  861, 2319,  859,
2160       856, 2320, 2322, 2322, 2322, 2385, 2385, 2385, 2341, 2341,
2161
2162      2341,  854, 1401, 1399, 1399, 1399, 1399, 1399, 1399, 1399,
2163      1399, 1399,  851, 2386, 1399,  849, 2342,  846,  843, 1399,
2164      1399, 1399, 1401, 1399, 2331, 2331, 2331,  842, 2332,  840,
2165       839, 2333, 2390, 2390, 2390,  838, 2391,  837,  836, 2392,
2166       834,  831, 2346, 2346, 2346, 2349, 2349, 2349, 1399, 1399,
2167      1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 2347,
2168       829, 1399, 2350, 2351, 2351, 2351, 1399, 1399, 1399, 1401,
2169      1399, 2394, 2394, 2394,  828, 2395,  827,  825, 2396,  823,
2170      2352, 2397, 2397, 2397,  822, 2398,  821,  820, 2399,  819,
2171      2366, 2366, 2366,  818, 2367, 1399, 1399, 2368,  815,  814,
2172
2173      2385, 2385, 2385, 2447, 2447, 2447,  813,  810, 1401, 1399,
2174      1399, 1399, 1399, 1399, 2418, 1399, 1399, 1399, 2386,  807,
2175      1399, 1401, 1402,  806,  804, 1399, 1399, 1399, 1401, 1399,
2176      2390, 2390, 2390,  803, 2391,  800,  798, 2392, 2394, 2394,
2177      2394,  795, 2395,  794,  786, 2396, 2397, 2397, 2397,  785,
2178      2398,  784,  781, 2399, 1399, 1399, 1399, 1399, 1399, 1399,
2179      1399, 1399, 1399, 1399, 2418,  780,  779, 1399, 2452, 2452,
2180      2452,  778, 1399, 1399, 1399, 1401, 1399, 2454, 2454, 2454,
2181      2456, 2456, 2456,  776,  775, 2453, 2464, 2464, 2464, 2472,
2182      2472, 2472,  774,  773, 2455,  772,  771, 2457, 2447, 2447,
2183
2184      2447, 1399, 1399, 2465, 2452, 2452, 2452,  959, 2478, 2478,
2185      2478,  766, 2479,  763,  765, 2480, 1401, 2454, 2454, 2454,
2186       760, 2453, 2481, 2481, 2481,  759, 2482,  757,  755, 2483,
2187      2456, 2456, 2456,  753, 2455, 2484, 2484, 2484,  751, 2485,
2188       749, 2701, 2486, 2464, 2464, 2464,  746, 2457,  745, 1562,
2189      2493, 2493, 2493,  744, 2494,  743,  741, 2495,  740,  739,
2190      2465, 2472, 2472, 2472, 2478, 2478, 2478,  738, 2479,  737,
2191       735, 2480,  733, 2481, 2481, 2481,  732, 2482,  730,  959,
2192      2483, 2484, 2484, 2484,  729, 2485,  726,  725, 2486, 2493,
2193      2493, 2493,  723, 2494,  587, 2701, 2495,  718, 2502, 2597,
2194
2195      2597, 2597, 2597, 2597, 2597,  716, 2606,  712,  711, 2607,
2196      2699, 2699, 2699, 2699, 2699, 2699,  710,  959,  708,  706,
2197       959,  705,  703,  701,  700,  699,  698,  697, 2700,  696,
2198       695, 2700,  228,  228,  228,  228,  228,  228,  228,  228,
2199       228,  229,  229,  229,  229,  229,  229,  229,  229,  229,
2200       234,  234,  234,  234,  234,  234,  234,  234,  234,  237,
2201       237,  237,  237,  237,  237,  237,  237,  237,  240,  240,
2202       240,  240,  240,  240,  240,  240,  240,  243,  243,  243,
2203       243,  243,  243,  243,  243,  243,  250,  250,  250,  250,
2204       250,  250,  250,  250,  250,  258,  258,  258,  258,  258,
2205
2206       258,  258,  258,  258,  262,  262,  262,  262,  262,  262,
2207       262,  262,  262,  274,  274,  274,  274,  274,  274,  274,
2208       274,  274,  278,  278,  278,  278,  278,  278,  278,  278,
2209       278,  285,  285,  285,  285,  285,  285,  285,  285,  285,
2210       296,  296,  296,  296,  296,  296,  296,  296,  296,  304,
2211       304,  304,  304,  304,  304,  304,  304,  304,  312,  312,
2212       312,  312,  312,  312,  312,  312,  312,  318,  318,  318,
2213       318,  318,  318,  318,  318,  318,  324,  324,  324,  324,
2214       324,  324,  324,  324,  324,  329,  329,  329,  329,  329,
2215       329,  329,  329,  329,  346,  346,  346,  346,  346,  346,
2216
2217       346,  346,  346,  352,  352,  352,  352,  352,  352,  352,
2218       352,  352,  359,  359,  359,  359,  359,  359,  359,  359,
2219       359,  364,  364,  364,  364,  364,  364,  364,  364,  364,
2220       371,  371,  371,  371,  371,  371,  371,  371,  371,  376,
2221       376,  376,  376,  376,  376,  376,  376,  376,  382,  382,
2222       382,  382,  382,  382,  382,  382,  382,  387,  387,  387,
2223       387,  387,  387,  387,  387,  387,  393,  393,  393,  393,
2224       393,  393,  393,  393,  393,  401,  401,  401,  401,  401,
2225       401,  401,  401,  401,  420,  420,  420,  420,  420,  420,
2226       420,  420,  420,  436,  436,  436,  436,  436,  436,  436,
2227
2228       436,  436,  442,  442,  442,  442,  442,  442,  442,  442,
2229       442,  447,  447,  447,  447,  447,  447,  447,  447,  447,
2230       453,  453,  453,  453,  453,  453,  453,  453,  453,  460,
2231       460,  460,  460,  460,  460,  460,  460,  460,  467,  467,
2232       467,  467,  467,  467,  467,  467,  467,  472,  472,  472,
2233       472,  472,  472,  472,  472,  472,  480,  480,  480,  480,
2234       480,  480,  480,  480,  480,  486,  486,  486,  486,  486,
2235       486,  486,  486,  486,  493,  493,  493,  493,  493,  493,
2236       493,  493,  493,  498,  498,  498,  498,  498,  498,  498,
2237       498,  498,  504,  504,  504,  504,  504,  504,  504,  504,
2238
2239       504,  510,  510,  510,  510,  510,  510,  510,  510,  510,
2240       517,  517,  517,  517,  517,  517,  517,  517,  517,  524,
2241       524,  524,  524,  524,  524,  524,  524,  524,  532,  532,
2242       532,  532,  532,  532,  532,  532,  532,  536,  536,  536,
2243       536,  536,  536,  536,  536,  536,  542,  542,  542,  542,
2244       542,  542,  542,  542,  542,  546,  546,  546,  546,  546,
2245       546,  546,  546,  546,  553,  553,  553,  553,  553,  553,
2246       553,  553,  553,  558,  558,  558,  558,  558,  558,  558,
2247       558,  558,  578,  578,  578,  693,  684,  683,  578,  604,
2248       604,  604,  682,  679,  677,  604,  608,  608,  608, 2701,
2249
2250       674,  673,  608,  616,  616,  616,  672,  671,  670,  616,
2251       628,  628,  628,  668,  666,  665,  628,  634,  634,  634,
2252       663,  661,  660,  634,  648,  648,  648,  658,  656,  655,
2253       648,  654,  654,  654,  653,  651,  650,  654,  659,  659,
2254       659,  649,  647, 2701,  659,  664,  664,  664,  595,  636,
2255       635,  664,  669,  669,  669,  633,  631,  630,  669,  678,
2256       678,  678,  629,  627,  622,  678,  694,  694,  694,  618,
2257       617,  615,  694,  704,  704,  704,  614,  611,  610,  704,
2258       709,  709,  709,  609,  607,  606,  709,  717,  717,  717,
2259       605,  603,  598,  717,  724,  724,  724, 2701,  579,  577,
2260
2261       724,  731,  731,  731,  575,  569,  568,  731,  736,  736,
2262       736,  569,  568,  567,  736,  742,  742,  742,  566, 2701,
2263      2701,  742,  750,  750,  750, 2701, 2701, 2701,  750,  754,
2264       754,  754, 2701, 2701, 2701,  754,  758,  758,  758, 2701,
2265      2701, 2701,  758,  762,  762,  762,  762,  762,  762,  762,
2266      2701,  762,  578,  578,  578, 2701, 2701, 2701,  578,  777,
2267      2701, 2701, 2701,  777,  604,  604,  604, 2701, 2701, 2701,
2268       604,  805, 2701, 2701, 2701,  805,  608,  608,  608, 2701,
2269      2701, 2701,  608,  812, 2701, 2701, 2701,  812,  616,  616,
2270       616, 2701, 2701, 2701,  616,  824, 2701, 2701, 2701,  824,
2271
2272       628,  628,  628, 2701, 2701, 2701,  628,  830, 2701, 2701,
2273      2701,  830,  634,  634,  634, 2701, 2701, 2701,  634,  835,
2274      2701, 2701, 2701,  835,  648,  648,  648, 2701, 2701, 2701,
2275       648,  850, 2701, 2701, 2701,  850,  654,  654,  654, 2701,
2276      2701, 2701,  654,  855, 2701, 2701, 2701,  855,  659,  659,
2277       659, 2701, 2701, 2701,  659,  860, 2701, 2701, 2701,  860,
2278       664,  664,  664, 2701, 2701, 2701,  664,  864, 2701, 2701,
2279      2701,  864,  669,  669,  669, 2701, 2701, 2701,  669,  873,
2280      2701, 2701, 2701,  873,  678,  678,  678, 2701, 2701, 2701,
2281       678,  892, 2701, 2701, 2701,  892,  694,  694,  694, 2701,
2282
2283      2701, 2701,  694,  902, 2701, 2701, 2701,  902,  704,  704,
2284       704, 2701, 2701, 2701,  704,  907, 2701, 2701, 2701,  907,
2285       709,  709,  709, 2701, 2701, 2701,  709,  915, 2701, 2701,
2286      2701,  915,  717,  717,  717, 2701, 2701, 2701,  717,  920,
2287      2701, 2701, 2701,  920,  724,  724,  724, 2701, 2701, 2701,
2288       724,  927, 2701, 2701, 2701,  927,  731,  731,  731, 2701,
2289      2701, 2701,  731,  932, 2701, 2701, 2701,  932,  736,  736,
2290       736, 2701, 2701, 2701,  736,  937, 2701, 2701, 2701,  937,
2291       742,  742,  742, 2701, 2701, 2701,  742,  943, 2701, 2701,
2292      2701,  943,  750,  750,  750, 2701, 2701, 2701,  750,  947,
2293
2294      2701, 2701, 2701,  947,  754,  754,  754, 2701, 2701, 2701,
2295       754,  951, 2701, 2701, 2701,  951,  758,  758,  758, 2701,
2296      2701, 2701,  758,  956, 2701, 2701, 2701,  956,  958,  958,
2297       958,  958,  958,  958,  958,  958,  958,  964, 2701, 2701,
2298      2701, 2701,  964,  578,  578,  578, 2701, 2701, 2701,  578,
2299       973,  973,  973,  973, 2701, 2701,  973,  973,  604,  604,
2300       604, 2701, 2701, 2701,  604, 1004, 1004, 1004, 1004, 2701,
2301      2701, 1004, 1004,  608,  608,  608, 2701, 2701, 2701,  608,
2302      1014, 1014, 1014, 1014, 2701, 2701, 1014, 1014,  616,  616,
2303       616, 2701, 2701, 2701,  616, 1030, 1030, 1030, 1030, 2701,
2304
2305      2701, 1030, 1030,  628,  628,  628, 2701, 2701, 2701,  628,
2306      1038, 1038, 1038, 1038, 2701, 2701, 1038, 1038,  634,  634,
2307       634, 2701, 2701, 2701,  634, 1046, 1046, 1046, 1046, 2701,
2308      2701, 1046, 1046,  648,  648,  648, 2701, 2701, 2701,  648,
2309      1063, 1063, 1063, 1063, 2701, 2701, 1063, 1063,  654,  654,
2310       654, 2701, 2701, 2701,  654, 1071, 1071, 1071, 1071, 2701,
2311      2701, 1071, 1071,  659,  659,  659, 2701, 2701, 2701,  659,
2312      1079, 1079, 1079, 1079, 2701, 2701, 1079, 1079,  664,  664,
2313       664, 2701, 2701, 2701,  664, 1085, 1085, 1085, 1085, 2701,
2314      2701, 1085, 1085,  669,  669,  669, 2701, 2701, 2701,  669,
2315
2316      1097, 1097, 1097, 1097, 2701, 2701, 1097, 1097,  678,  678,
2317       678, 2701, 2701, 2701,  678, 1123, 1123, 1123, 1123, 2701,
2318      2701, 1123, 1123,  694,  694,  694, 2701, 2701, 2701,  694,
2319      1138, 1138, 1138, 1138, 2701, 2701, 1138, 1138,  704,  704,
2320       704, 2701, 2701, 2701,  704, 1146, 1146, 1146, 1146, 2701,
2321      2701, 1146, 1146,  709,  709,  709, 2701, 2701, 2701,  709,
2322      1157, 1157, 1157, 1157, 2701, 2701, 1157, 1157,  717,  717,
2323       717,  717, 2701,  717, 2701,  717, 1166, 1166, 1166, 1166,
2324      2701, 2701, 1166, 1166,  724,  724,  724,  724, 2701,  724,
2325      2701,  724, 1178, 1178, 1178, 1178, 2701, 2701, 1178, 1178,
2326
2327       731,  731,  731, 2701, 2701, 2701,  731, 1186, 1186, 1186,
2328      1186, 2701, 2701, 1186, 1186,  736,  736,  736,  736, 2701,
2329       736, 2701,  736, 1196, 1196, 1196, 1196, 2701, 2701, 1196,
2330      1196,  742,  742,  742, 2701, 2701, 2701,  742, 1204, 1204,
2331      1204, 1204, 2701, 2701, 1204, 1204,  750,  750,  750, 2701,
2332      2701, 2701,  750, 1210, 1210, 1210, 1210, 2701, 2701, 1210,
2333      1210, 1217, 1217, 1217, 1217, 2701, 2701, 1217, 1217,  758,
2334       758,  758, 2701, 2701, 2701,  758, 1225, 1225, 1225, 1225,
2335      2701, 2701, 1225, 1225,  958,  958,  958,  958,  958,  958,
2336       958,  958,  958,  964, 2701,  964, 2701, 2701,  964,  578,
2337
2338       578,  578, 2701, 2701, 2701,  578,  973,  973,  973,  973,
2339      2701, 2701,  973,  973,  604,  604,  604,  604, 2701,  604,
2340      2701,  604, 1004, 1004, 1004, 1004, 2701, 2701, 1004, 1004,
2341       608,  608,  608,  608, 2701,  608, 2701,  608, 1014, 1014,
2342      1014, 1014, 2701, 2701, 1014, 1014,  616,  616,  616, 2701,
2343      2701, 2701,  616, 1030, 1030, 1030, 1030, 2701, 2701, 1030,
2344      1030,  628,  628,  628, 2701, 2701, 2701,  628, 1038, 1038,
2345      1038, 1038, 2701, 2701, 1038, 1038,  634,  634,  634, 2701,
2346      2701, 2701,  634, 1046, 1046, 1046, 1046, 2701, 2701, 1046,
2347      1046,  648,  648,  648, 2701, 2701, 2701,  648, 1063, 1063,
2348
2349      1063, 1063, 2701, 2701, 1063, 1063,  654,  654,  654, 2701,
2350      2701, 2701,  654, 1071, 1071, 1071, 1071, 2701, 2701, 1071,
2351      1071,  659,  659,  659,  659, 2701,  659, 2701,  659, 1079,
2352      1079, 1079, 1079, 2701, 2701, 1079, 1079,  664,  664,  664,
2353       664, 2701,  664, 2701,  664, 1085, 1085, 1085, 1085, 2701,
2354      2701, 1085, 1085,  669,  669,  669, 2701, 2701, 2701,  669,
2355      1097, 1097, 1097, 1097, 2701, 2701, 1097, 1097,  678,  678,
2356       678, 2701, 2701, 2701,  678, 1123, 1123, 1123, 1123, 2701,
2357      2701, 1123, 1123,  694,  694,  694, 2701, 2701, 2701,  694,
2358      1138, 1138, 1138, 1138, 2701, 2701, 1138, 1138,  704,  704,
2359
2360       704, 2701, 2701, 2701,  704, 1146, 1146, 1146, 1146, 2701,
2361      2701, 1146, 1146,  709,  709,  709, 2701, 2701, 2701,  709,
2362      1157, 1157, 1157, 1157, 2701, 2701, 1157, 1157,  717,  717,
2363       717, 2701, 2701, 2701,  717, 1166, 1166, 1166, 1166, 2701,
2364      2701, 1166, 1166,  724,  724,  724, 2701, 2701, 2701,  724,
2365      1178, 1178, 1178, 1178, 2701, 2701, 1178, 1178,  731,  731,
2366       731, 2701, 2701, 2701,  731, 1186, 1186, 1186, 1186, 2701,
2367      2701, 1186, 1186,  736,  736,  736, 2701, 2701, 2701,  736,
2368      1196, 1196, 1196, 1196, 2701, 2701, 1196, 1196,  742,  742,
2369       742, 2701, 2701, 2701,  742, 1204, 1204, 1204, 1204, 2701,
2370
2371      2701, 1204, 1204,  750,  750,  750, 2701, 2701, 2701,  750,
2372      1210, 1210, 1210, 1210, 2701, 2701, 1210, 1210, 1217, 1217,
2373      1217, 1217, 2701, 2701, 1217, 1217,  758,  758,  758, 2701,
2374      2701, 2701,  758, 1225, 1225, 1225, 1225, 2701, 2701, 1225,
2375      1225,  958,  958,  958,  958,  958,  958,  958,  958,  958,
2376      1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399,  578,
2377       578,  578, 2701, 2701, 2701,  578,  973,  973,  973,  973,
2378      2701, 2701,  973,  973, 1004, 1004, 1004, 1004, 2701, 2701,
2379      1004, 1004,  608,  608,  608, 2701, 2701, 2701,  608, 1014,
2380      1014, 1014, 1014, 2701, 2701, 1014, 1014,  616,  616,  616,
2381
2382      2701, 2701, 2701,  616, 1030, 1030, 1030, 1030, 2701, 2701,
2383      1030, 1030,  628,  628,  628, 2701, 2701, 2701,  628, 1038,
2384      1038, 1038, 1038, 2701, 2701, 1038, 1038,  634,  634,  634,
2385      2701, 2701, 2701,  634,  648,  648,  648, 2701, 2701, 2701,
2386       648, 1063, 1063, 1063, 1063, 2701, 2701, 1063, 1063,  654,
2387       654,  654, 2701, 2701, 2701,  654, 1071, 1071, 1071, 1071,
2388      2701, 2701, 1071, 1071, 1079, 1079, 1079, 1079, 2701, 2701,
2389      1079, 1079,  664,  664,  664, 2701, 2701, 2701,  664, 1085,
2390      1085, 1085, 1085, 2701, 2701, 1085, 1085,  669,  669,  669,
2391      2701, 2701, 2701,  669, 1097, 1097, 1097, 1097, 2701, 2701,
2392
2393      1097, 1097,  678,  678,  678, 2701, 2701, 2701,  678, 1123,
2394      1123, 1123, 1123, 2701, 2701, 1123, 1123,  694,  694,  694,
2395      2701, 2701, 2701,  694, 1138, 1138, 1138, 1138, 2701, 2701,
2396      1138, 1138,  704,  704,  704, 2701, 2701, 2701,  704, 1146,
2397      1146, 1146, 1146, 2701, 2701, 1146, 1146,  709,  709,  709,
2398      2701, 2701, 2701,  709, 1157, 1157, 1157, 1157, 2701, 2701,
2399      1157, 1157,  717,  717,  717, 2701, 2701, 2701,  717, 1166,
2400      1166, 1166, 1166, 2701, 2701, 1166, 1166,  724,  724,  724,
2401      2701, 2701, 2701,  724, 1178, 1178, 1178, 1178, 2701, 2701,
2402      1178, 1178,  731,  731,  731, 2701, 2701, 2701,  731, 1186,
2403
2404      1186, 1186, 1186, 2701, 2701, 1186, 1186,  736,  736,  736,
2405      2701, 2701, 2701,  736, 1196, 1196, 1196, 1196, 2701, 2701,
2406      1196, 1196,  742,  742,  742, 2701, 2701, 2701,  742, 1204,
2407      1204, 1204, 1204, 2701, 2701, 1204, 1204,  750,  750,  750,
2408       750, 2701,  750, 2701,  750, 1210, 1210, 1210, 1210, 2701,
2409      2701, 1210, 1210, 1217, 1217, 1217, 1217, 2701, 2701, 1217,
2410      1217,  758,  758,  758,  758, 2701,  758, 2701,  758, 1225,
2411      1225, 1225, 1225, 2701, 2701, 1225, 1225,  958,  958,  958,
2412       958,  958,  958,  958,  958,  958, 1399, 1399, 1399, 1399,
2413      1399, 1399, 1399, 1399, 1399,  578,  578,  578, 2701, 2701,
2414
2415      2701,  578,  973,  973,  973,  973, 2701, 2701,  973,  973,
2416      1004, 1004, 1004, 1004, 2701, 2701, 1004, 1004,  608,  608,
2417       608, 2701, 2701, 2701,  608, 1014, 1014, 1014, 1014, 2701,
2418      2701, 1014, 1014,  616,  616,  616, 2701, 2701, 2701,  616,
2419      1030, 1030, 1030, 1030, 2701, 2701, 1030, 1030,  628,  628,
2420       628, 2701, 2701, 2701,  628, 1038, 1038, 1038, 1038, 2701,
2421      2701, 1038, 1038,  634,  634,  634, 2701, 2701, 2701,  634,
2422       648,  648,  648, 2701, 2701, 2701,  648, 1063, 1063, 1063,
2423      1063, 2701, 2701, 1063, 1063,  654,  654,  654,  654, 2701,
2424       654, 2701,  654, 1071, 1071, 1071, 1071, 2701, 2701, 1071,
2425
2426      1071, 1079, 1079, 1079, 1079, 2701, 2701, 1079, 1079,  664,
2427       664,  664,  664, 2701,  664, 2701,  664, 1085, 1085, 1085,
2428      1085, 2701, 2701, 1085, 1085,  669,  669,  669, 2701, 2701,
2429      2701,  669, 1097, 1097, 1097, 1097, 2701, 2701, 1097, 1097,
2430       678,  678,  678, 2701, 2701, 2701,  678, 1123, 1123, 1123,
2431      1123, 2701, 2701, 1123, 1123,  694,  694,  694, 2701, 2701,
2432      2701,  694, 1138, 1138, 1138, 1138, 2701, 2701, 1138, 1138,
2433       704,  704,  704, 2701, 2701, 2701,  704, 1146, 1146, 1146,
2434      1146, 2701, 2701, 1146, 1146,  709,  709,  709, 2701, 2701,
2435      2701,  709, 1157, 1157, 1157, 1157, 2701, 2701, 1157, 1157,
2436
2437       717,  717,  717, 2701, 2701, 2701,  717, 1166, 1166, 1166,
2438      1166, 2701, 2701, 1166, 1166,  724,  724,  724,  724, 2701,
2439       724, 2701,  724, 1178, 1178, 1178, 1178, 2701, 2701, 1178,
2440      1178,  731,  731,  731, 2701, 2701, 2701,  731, 1186, 1186,
2441      1186, 1186, 2701, 2701, 1186, 1186,  736,  736,  736,  736,
2442      2701,  736, 2701,  736, 1196, 1196, 1196, 1196, 2701, 2701,
2443      1196, 1196,  742,  742,  742, 2701, 2701, 2701,  742, 1204,
2444      1204, 1204, 1204, 2701, 2701, 1204, 1204, 1210, 1210, 1210,
2445      1210, 2701, 2701, 1210, 1210, 1217, 1217, 1217, 1217, 2701,
2446      2701, 1217, 1217, 1225, 1225, 1225, 1225, 2701, 2701, 1225,
2447
2448      1225,  958,  958,  958,  958,  958,  958,  958,  958,  958,
2449      1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399,  578,
2450       578,  578,  578, 2701,  578, 2701,  578,  973,  973,  973,
2451       973, 2701, 2701,  973,  973, 1004, 1004, 1004, 1004, 2701,
2452      2701, 1004, 1004,  608,  608,  608, 2701, 2701, 2701,  608,
2453      1014, 1014, 1014, 1014, 2701, 2701, 1014, 1014,  616,  616,
2454       616, 2701, 2701, 2701,  616, 1030, 1030, 1030, 1030, 2701,
2455      2701, 1030, 1030,  628,  628,  628,  628, 2701,  628, 2701,
2456       628, 1038, 1038, 1038, 1038, 2701, 2701, 1038, 1038,  634,
2457       634,  634,  634, 2701,  634, 2701,  634,  648,  648,  648,
2458
2459       648, 2701,  648, 2701,  648, 1063, 1063, 1063, 1063, 2701,
2460      2701, 1063, 1063, 1071, 1071, 1071, 1071, 2701, 2701, 1071,
2461      1071, 1079, 1079, 1079, 1079, 2701, 2701, 1079, 1079, 1085,
2462      1085, 1085, 1085, 2701, 2701, 1085, 1085,  669,  669,  669,
2463      2701, 2701, 2701,  669,  678,  678,  678, 2701, 2701, 2701,
2464       678, 1123, 1123, 1123, 1123, 2701, 2701, 1123, 1123,  694,
2465       694,  694, 2701, 2701, 2701,  694,  704,  704,  704, 2701,
2466      2701, 2701,  704, 1146, 1146, 1146, 1146, 2701, 2701, 1146,
2467      1146,  709,  709,  709, 2701, 2701, 2701,  709,  717,  717,
2468       717, 2701, 2701, 2701,  717, 1166, 1166, 1166, 1166, 2701,
2469
2470      2701, 1166, 1166,  724,  724,  724, 2701, 2701, 2701,  724,
2471      1178, 1178, 1178, 1178, 2701, 2701, 1178, 1178,  731,  731,
2472       731, 2701, 2701, 2701,  731, 1186, 1186, 1186, 1186, 2701,
2473      2701, 1186, 1186, 1196, 1196, 1196, 1196, 2701, 2701, 1196,
2474      1196,  742,  742,  742, 2701, 2701, 2701,  742, 1204, 1204,
2475      1204, 1204, 2701, 2701, 1204, 1204, 1210, 1210, 1210, 1210,
2476      2701, 2701, 1210, 1210, 1217, 1217, 1217, 1217, 2701, 2701,
2477      1217, 1217,  958,  958,  958,  958,  958,  958,  958,  958,
2478       958, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399,
2479       973,  973,  973,  973, 2701, 2701,  973,  973, 1004, 1004,
2480
2481      1004, 1004, 2701, 2701, 1004, 1004,  608,  608,  608, 2701,
2482      2701, 2701,  608,  616,  616,  616, 2701, 2701, 2701,  616,
2483      1030, 1030, 1030, 1030, 2701, 2701, 1030, 1030, 1038, 1038,
2484      1038, 1038, 2701, 2701, 1038, 1038, 1063, 1063, 1063, 1063,
2485      2701, 2701, 1063, 1063, 1071, 1071, 1071, 1071, 2701, 2701,
2486      1071, 1071, 1085, 1085, 1085, 1085, 2701, 2701, 1085, 1085,
2487       669,  669,  669, 2701, 2701, 2701,  669,  678,  678,  678,
2488      2701, 2701, 2701,  678, 1123, 1123, 1123, 1123, 2701, 2701,
2489      1123, 1123,  694,  694,  694, 2701, 2701, 2701,  694,  704,
2490       704,  704, 2701, 2701, 2701,  704, 1146, 1146, 1146, 1146,
2491
2492      2701, 2701, 1146, 1146,  709,  709,  709, 2701, 2701, 2701,
2493       709,  717,  717,  717, 2701, 2701, 2701,  717,  724,  724,
2494       724, 2701, 2701, 2701,  724, 1178, 1178, 1178, 1178, 2701,
2495      2701, 1178, 1178,  731,  731,  731, 2701, 2701, 2701,  731,
2496      1186, 1186, 1186, 1186, 2701, 2701, 1186, 1186, 1196, 1196,
2497      1196, 1196, 2701, 2701, 1196, 1196,  742,  742,  742,  742,
2498      2701,  742, 2701,  742, 1204, 1204, 1204, 1204, 2701, 2701,
2499      1204, 1204, 1210, 1210, 1210, 1210, 2701, 2701, 1210, 1210,
2500      1217, 1217, 1217, 1217, 2701, 2701, 1217, 1217,  958,  958,
2501       958,  958,  958,  958,  958,  958,  958, 1399, 1399, 1399,
2502
2503      1399, 1399, 1399, 1399, 1399, 1399,  973,  973,  973,  973,
2504      2701, 2701,  973,  973, 1004, 1004, 1004, 1004, 2701, 2701,
2505      1004, 1004,  608,  608,  608, 2701, 2701, 2701,  608,  616,
2506       616,  616,  616, 2701,  616, 2701,  616, 2369, 2369, 2369,
2507      2369, 2369, 2369, 2369, 2369, 2369, 2370, 2370, 2370, 2370,
2508      2370, 2370, 2370, 2370, 2370, 2413, 2413, 2413, 2413, 2413,
2509      2413, 2413, 2413, 2413, 2416, 2416, 2416, 2416, 2416, 2416,
2510      2416, 2416, 2416, 2444, 2444, 2444, 2444, 2444, 2444, 2444,
2511      2444, 2444, 2446, 2446, 2446, 2446, 2446, 2446, 2446, 2446,
2512      2446,  227, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
2513
2514      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
2515      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
2516      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
2517      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
2518      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
2519      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
2520      2701, 2701, 2701, 2701
2521     } ;
2522
2523 static yyconst flex_int16_t yy_chk[9765] =
2524     {   0,
2525         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
2526         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
2527         4,   10,    0,    5,    0,    9,    6,  336,   10,    7,
2528         8,    8,    8,  232,   11,   13,   13,   12,   14,   14,
2529        13,   13,  281,   14,   14,  233,    8,   17,   17,  232,
2530        13,   15,   15,   14,   15,  236,   15,   16,   16,  459,
2531        16,  233,   16,   18,   18,  336,   15,   19,   19,   19,
2532       459,  236,   16,   20,   20,   20,   23,   23,   23,   24,
2533        24,   24, 1462,   19,   25,   25,   25,  333, 1463,   20,
2534       334,   17,   23,  281,  333,   24,  230,  230,  230,  334,
2535
2536        25,  231,  231,  231,  235,  235,  235,   18,   21,   21,
2537        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
2538        21,   21,   21,  306,   21,   21,   21,   21,   21,   26,
2539        26,   26,   27,   27,   27,   28,   28,   28,  265,   29,
2540        29,   29,   30,   30,   30,   26,  337, 1464,   27,  254,
2541       259,   28,  265,   21,   21,   29,  337,  275,   30,   31,
2542        31,   31,  256,  256,  256,  254,  259,  263,  263,  263,
2543       272,  272,  272,  275,  306,   31,   21,   22,   22,   22,
2544        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
2545        22,   22,  307,   22,   22,   22,   22,   22,   32,   32,
2546
2547        32,   33,   33,   33,   34,   34,   34,  254,   35,   35,
2548        35,   36,   36,   36,   32,  266,  267,   33,  340, 1468,
2549        34,  308,   22,   22,   35,  266,  413,   36,   37,   37,
2550        37,   38,   38,   38,   39,   39,   39,   40,   40,   40,
2551        41,   41,   41,  307,   37,   22,  413,   38,  286,  342,
2552        39,  342,  297,   40,  266,  267,   41,   42,   42,   42,
2553       266,  279,  279,  279,  286,  268,  266,  267,  297,  267,
2554       266,  340,  308,   42,   43,   43,   43,   43,   43,   43,
2555        43,   43,   43,   43,   43,   43,   43,   43,   43, 1471,
2556        43,   43,   43,   43,   43,   45,   45,   45,   46,   46,
2557
2558        46,   47,   47,   47,  268,   48,   48,   48,   49,   49,
2559        49,   45,  303, 1486,   46, 1487,  268,   47,  268,   43,
2560        43,   48,  405, 1228,   49,  405,  303,   43,   44,   44,
2561        44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
2562        44,   44,   44, 1228,   44,   44,   44,   44,   44,   50,
2563        50,   50,   51,   51,   51,   52,   52,   52,  283,  283,
2564       283,   55,   55,  291,  313,   50,   55,  548,   51,  338,
2565       291,   52,  354,   44,   44,  417,   55, 1495,  417,  291,
2566       313,   44,   53,   53,   53,   53,   53,   53,   53,   53,
2567        53,   53,   53,   53,   53,   53,   53,  338,   53,   53,
2568
2569        53,   53,   53, 1498,  548,   55,   59,   59,   59,   60,
2570        60,   60,  338,   61,   61,   61,   56,   56,   62,   62,
2571        62,   56,   59,  354,  355,   60,  320,   53,   53,   61,
2572       471,   56, 1499,  320,   62,   53,  366,  471,   53,  294,
2573       294,  294,  320,  367,   53,   54,   54,   54,   54,   54,
2574        54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
2575        56,   54,   54,   54,   54,   54,   63,   63,   63,   64,
2576        64,   64,   65,   65,   65,  355,   66,   66,   66,   69,
2577        69,   69,   63,  325,  347,   64,  360,  366,   65,  301,
2578        54,   54,   66,  301,  367,   69,  485,  301,   54,  325,
2579
2580       347,   54,  360,  485,  246, 1503, 1510,   54,   57,   57,
2581        57,   57,   57,   57,   57,   57,   57,   57,   57,   57,
2582        57,   57,   57,  462,   57,   57,   57,   57,   57,   70,
2583        70,   70,   73,   73,   73,   74,   74,   74,  463,   75,
2584        75,   75,   76,   76,   76,   70,  246,  372,   73,  383,
2585       378,   74,  246,   57,   57,   75,  246,  378,   76, 1511,
2586      1512,  246,   57,  372,   57,  383,  378,   57,  305,  305,
2587       305,  462,   57,   57,   58,   58,   58,   58,   58,   58,
2588        58,   58,   58,   58,   58,   58,   58,   58,   58,  463,
2589        58,   58,   58,   58,   58,   77,   77,   77,   78,   78,
2590
2591        78,   79,   79,   79,  528,   80,   80,   80,   81,   81,
2592        81,   77, 1513,  394,   78,  389,  410,   79,  528,   58,
2593        58,   80,  389, 1516,   81,  310,  310,  310,   58,  394,
2594        58,  389,  410,   58,  319,  319,  319,  489,   58,   58,
2595        67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
2596        67,   67,   67,   67,   67, 1520,   67,   67,   67,   67,
2597        67,   82,   82,   82,   83,   83,   83,   84,   84,   84,
2598       419,   85,   85,   85,   86,   86,   86,   82,  418, 1523,
2599        83,  419,  419,   84,  489,   67,   67,   85,  427,  422,
2600        86,  418,   67,  322,  322,  322,  422,   67,  330,  330,
2601
2602       330,  344,  344,  344,  427,  422,   67,   68,   68,   68,
2603        68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
2604        68,   68,  562,   68,   68,   68,   68,   68,   87,   87,
2605        87,   88,   88,   88,   89,   89,   89,  562,   90,   90,
2606        90,   91,   91,   91,   87,  571,  584,   88,  571,  584,
2607        89, 1525,   68,   68,   90,  443,  438,   91, 1527,   68,
2608       353,  353,  353,  438,   68,  357,  357,  357,  365,  365,
2609       365,  443,  438,   68,   71,   71,   71,   71,   71,   71,
2610        71,   71,   71,   71,   71,   71,   71,   71,   71, 1528,
2611        71,   71,   71,   71,   71,   92,   92,   92,   93,   93,
2612
2613        93,   94,   94,   94, 1529,   95,   95,   95,   96,   96,
2614        96,   92,  454,  593,   93,  596,  593,   94,  596,   71,
2615        71,   95,  513, 1532,   96,  369,  369,  369,  454,  403,
2616        71,  377,  377,  377,  380,  380,  380, 1534,   71,   72,
2617        72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
2618        72,   72,   72,   72,  549,   72,   72,   72,   72,   72,
2619        97,   97,   97,   98,   98,   98,   99,   99,   99,  513,
2620       100,  100,  100,  101,  101,  101,   97,  403,  468,   98,
2621       403,  989,   99,  588,   72,   72,  100,  588,  481,  101,
2622       102,  102,  102,  989,  468,   72,  388,  388,  388,  391,
2623
2624       391,  391, 1536,   72,  481,  549,  102,  103,  103,  103,
2625       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
2626       103,  103, 1541,  103,  103,  103,  103,  103,  105,  105,
2627       105,  106,  106,  106,  107,  107,  107, 1546,  108,  108,
2628       108,  402,  402,  402,  105,  494,  505,  106,  449,  500,
2629       107, 1550,  103,  103,  108,  449,  500,  103,  407,  407,
2630       407,  494,  505,  103,  449,  500,  103,  104,  104,  104,
2631       104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
2632       104,  104, 1551,  104,  104,  104,  104,  104,  109,  109,
2633       109,  110,  110,  110,  111,  111,  111, 1553,  112,  112,
2634
2635       112,  421,  421,  421,  109,  518,  533,  110,  600,  538,
2636       111,  600,  104,  104,  112, 1565,  538,  104,  424,  424,
2637       424,  518,  533,  104,  474,  538,  104,  113,  113,  113,
2638       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
2639       113,  113, 1568,  113,  113,  113,  113,  113,  115,  115,
2640       115,  116,  116,  116,  117,  117,  117, 1000,  118,  118,
2641       118,  119,  119,  119,  115,  543,  554,  116, 1562, 1000,
2642       117,  474,  113,  113,  118,  474, 1569,  119,  437,  437,
2643       437,  543,  554,  113,  440,  440,  440,  448,  448,  448,
2644       451,  451,  451,  113,  114,  114,  114,  114,  114,  114,
2645
2646       114,  114,  114,  114,  114,  114,  114,  114,  114, 1562,
2647       114,  114,  114,  114,  114,  120,  120,  120,  121,  121,
2648       121,  122,  122,  122, 1570,  125,  125,  125,  126,  126,
2649       126,  120,  671,  764,  121,  671,  589,  122,  895,  114,
2650       114,  125,  589,  895,  126,  461,  461,  461,  589,  764,
2651       114,  465,  465,  465,  473,  473,  473,  478,  478,  478,
2652       114,  123,  123,  123,  123,  123,  123,  123,  123,  123,
2653       123,  123,  123,  123,  123,  123, 1571,  123,  123,  123,
2654       123,  123,  129,  129,  129,  130,  130,  130,  133,  133,
2655       133, 1573,  134,  134,  134,  135,  135,  135,  129, 1574,
2656
2657      1576,  130, 1577,  590,  133,  676,  123,  123,  134,  676,
2658      1578,  135,  487,  487,  487,  526,  590,  123,  491,  491,
2659       491,  123,  124,  124,  124,  124,  124,  124,  124,  124,
2660       124,  124,  124,  124,  124,  124,  124, 1563,  124,  124,
2661       124,  124,  124,  136,  136,  136,  137,  137,  137,  138,
2662       138,  138,  526,  139,  139,  139,  140,  140,  140,  136,
2663       961, 1582,  137,  594,  961,  138,  526,  124,  124,  139,
2664      1563, 1584,  140,  499,  499,  499,  594,  612,  124,  502,
2665       502,  502,  124,  127,  127,  127,  127,  127,  127,  127,
2666       127,  127,  127,  127,  127,  127,  127,  127, 1587,  127,
2667
2668       127,  127,  127,  127,  143,  143,  143,  144,  144,  144,
2669       147,  147,  147,  612,  148,  148,  148,  151,  151,  151,
2670       143, 1588, 1398,  144, 1589, 1591,  147, 1593,  127,  127,
2671       148, 1561, 1594,  151,  511,  511,  511,  515,  515,  515,
2672       525,  525,  525,  127,  530,  530,  530, 1398, 1561,  127,
2673       128,  128,  128,  128,  128,  128,  128,  128,  128,  128,
2674       128,  128,  128,  128,  128, 1596,  128,  128,  128,  128,
2675       128,  152,  152,  152,  155,  155,  155,  156,  156,  156,
2676      1033,  157,  157,  157,  158,  158,  158,  152, 1598, 1601,
2677       155, 1602, 1033,  156, 1604,  128,  128,  157, 1605, 1606,
2678
2679       158,  537,  537,  537,  540,  540,  540,  547,  547,  547,
2680       128,  551,  551,  551, 1608, 1614,  128,  131,  131,  131,
2681       131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
2682       131,  131, 1615,  131,  131,  131,  131,  131,  159,  159,
2683       159,  160,  160,  160,  161,  161,  161, 1603,  162,  162,
2684       162,  559,  559,  559,  159, 1603, 1618,  160,  642,  560,
2685       161,  645,  131,  131,  162,  131,  560,  131,  561,  561,
2686       561,  642, 1607,  131,  645,  560,  570,  570,  570,  131,
2687      1607, 1631,  131,  132,  132,  132,  132,  132,  132,  132,
2688       132,  132,  132,  132,  132,  132,  132,  132, 1632,  132,
2689
2690       132,  132,  132,  132,  165,  165,  165,  166,  166,  166,
2691       167,  167,  167,  598,  168,  168,  168, 1637, 1638,  598,
2692       165, 1639, 1643,  166,  646,  598,  167,  878,  132,  132,
2693       168,  132,  601,  132,  570,  602,  878,  646,  601,  132,
2694      1644,  602, 1650,  878,  601,  132, 1657,  602,  132,  141,
2695       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2696       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2697       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2698       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2699       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2700
2701       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2702       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2703       141,  145,  145,  145,  145,  145,  145,  145,  145,  145,
2704       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
2705       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
2706       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
2707       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
2708       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
2709       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
2710       145,  145,  145,  149,  149,  149,  149,  149,  149,  149,
2711
2712       149,  149,  149,  149,  149,  149,  149,  149, 1658,  149,
2713       149,  149,  149,  149,  169,  169,  169,  170,  170,  170,
2714       171,  171,  171, 1659,  172,  172,  172,  610,  610,  610,
2715       169, 1663, 1669,  170, 1673,  626,  171, 1676,  149,  149,
2716       172,  626, 1678,  149,  610, 1680, 1682,  626, 1683,  149,
2717       150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
2718       150,  150,  150,  150,  150, 1684,  150,  150,  150,  150,
2719       150,  175,  175,  175,  176,  176,  176,  177,  177,  177,
2720      1687,  178,  178,  178,  618,  618,  618,  175, 1457, 1689,
2721       176, 1694, 1696,  177, 1457,  150,  150,  178, 1457, 1703,
2722
2723       150,  618, 1457,  779,  779,  779,  150,  153,  153,  153,
2724       153,  153,  153,  153,  153,  153,  153,  153,  153,  153,
2725       153,  153, 1704,  153,  153,  153,  153,  153,  179,  179,
2726       179,  180,  180,  180,  181,  181,  181, 1705,  182,  182,
2727       182,  185,  185,  185,  179, 1707, 1721,  180, 1726, 1718,
2728       181, 1727,  153,  153,  182, 1718,  153,  185,  767,  767,
2729       767, 1731,  767,  153, 1732,  153,  779,  798,  798,  798,
2730      1720, 1733,  153,  154,  154,  154,  154,  154,  154,  154,
2731       154,  154,  154,  154,  154,  154,  154,  154, 1738,  154,
2732       154,  154,  154,  154,  186,  186,  186,  189,  189,  189,
2733
2734       190,  190,  190, 1744,  191,  191,  191,  192,  192,  192,
2735       186, 1746, 1747,  189, 1750, 1720,  190, 1753,  154,  154,
2736       191, 1757,  154,  192,  837,  837,  837, 1758, 1759,  154,
2737       798,  154, 1760,  843,  843,  843, 1761, 1762,  154,  163,
2738       163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
2739       163,  163,  163,  163, 1763,  163,  163,  163,  163,  163,
2740       193,  193,  193,  194,  194,  194,  195,  195,  195, 1764,
2741       196,  196,  196,  199,  199,  199,  193, 1765, 1766,  194,
2742      1771, 1787,  195, 1788,  163,  163,  196,  837, 1791,  199,
2743       163,  809,  809,  809, 1789,  809,  843, 1792,  809,  976,
2744
2745       976,  976, 1789, 1793,  163,  164,  164,  164,  164,  164,
2746       164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
2747      1797,  164,  164,  164,  164,  164,  200,  200,  200,  201,
2748       201,  201,  202,  202,  202, 1790,  203,  203,  203,  204,
2749       204,  204,  200, 1790, 1803,  201, 1804, 1805,  202, 1810,
2750       164,  164,  203, 1814, 1815,  204,  164,  817,  817,  817,
2751      1816,  817, 1818, 1821,  817,  996,  996,  996, 1822, 1825,
2752       164,  173,  173,  173,  173,  173,  173,  173,  173,  173,
2753       173,  173,  173,  173,  173,  173, 1826,  173,  173,  173,
2754       173,  173,  205,  205,  205,  206,  206,  206,  209,  209,
2755
2756       209, 1719,  210,  210,  210,  213,  213,  213,  205, 1458,
2757      1829,  206, 1823, 1836,  209, 1458,  173,  173,  210, 1458,
2758      1823,  213,  173, 1458, 1838,  173,  833,  833,  833, 1851,
2759       833, 1864, 1719,  833, 1855, 1856,  173,  174,  174,  174,
2760       174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
2761       174,  174, 1872,  174,  174,  174,  174,  174,  214,  214,
2762       214,  215,  215,  215,  216,  216,  216, 1824,  217,  217,
2763       217,  218,  218,  218,  214, 1824, 1855,  215, 1873, 1877,
2764       216, 1856,  174,  174,  217, 1879, 1891,  218,  174, 1892,
2765      1893,  174,  848,  848,  848, 1894,  848, 1895, 1896,  848,
2766
2767      1897, 1898,  174,  183,  183,  183,  183,  183,  183,  183,
2768       183,  183,  183,  183,  183,  183,  183,  183, 1899,  183,
2769       183,  183,  183,  183,  219,  219,  219,  220,  220,  220,
2770       223,  223,  223, 1900,  224,  224,  224,  331, 1906, 1908,
2771       219,  339, 1915,  220, 1916,  332,  223,  331,  183,  183,
2772       224, 1242, 1242, 1242,  183,  332, 1244, 1244, 1244,  183,
2773       184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
2774       184,  184,  184,  184,  184,  331,  184,  184,  184,  184,
2775       184,  331, 1917,  332,  331,  339,  339, 1918,  339, 1919,
2776       331,  331, 1920, 1921,  339,  339,  332,  635,  635,  635,
2777
2778       332, 1923, 1244, 1924, 1929,  184,  184, 1930,  853,  853,
2779       853,  184,  853, 1932,  635,  853,  184,  187,  187,  187,
2780       187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
2781       187,  187, 1933,  187,  187,  187,  187,  187,  650,  650,
2782       650,  655,  655,  655,  660,  660,  660,  672,  672,  672,
2783       681,  681,  681, 1934, 1935,  650, 1942, 1943,  655, 1944,
2784      1945,  660,  187,  187,  672, 1946, 1947,  681,  187, 1948,
2785      1949,  187,  858,  858,  858, 1951,  858, 1971, 1975,  858,
2786      1976, 1977,  187,  188,  188,  188,  188,  188,  188,  188,
2787       188,  188,  188,  188,  188,  188,  188,  188, 1967,  188,
2788
2789       188,  188,  188,  188,  683,  683,  683,  698,  698,  698,
2790       706,  706,  706,  711,  711,  711,  733,  733,  733, 1980,
2791      1984,  683, 1985, 1986,  698, 1987, 1988,  706,  188,  188,
2792       711, 1989, 1966,  733,  188, 1967, 1990,  188,  870,  870,
2793       870, 1991,  870, 1992, 1993,  870, 1995, 1996,  188,  197,
2794       197,  197,  197,  197,  197,  197,  197,  197,  197,  197,
2795       197,  197,  197,  197, 1966,  197,  197,  197,  197,  197,
2796       755,  755,  755,  759,  759,  759, 2001, 2002,  777,  777,
2797       777,  778,  778,  778,  808,  808,  808,  755, 2003, 2005,
2798       759,  805,  805,  805,  197,  197,  777, 2009, 2010,  778,
2799
2800      2013,  808,  197, 2017,  197, 2018,  197, 2020, 2023,  805,
2801      1247, 1247, 1247, 2024,  197,  198,  198,  198,  198,  198,
2802       198,  198,  198,  198,  198,  198,  198,  198,  198,  198,
2803      2025,  198,  198,  198,  198,  198, 2026, 2028,  778,  812,
2804       812,  812, 2031, 2033,  806,  806,  806,  813,  813,  813,
2805       816,  816,  816, 2055,  818,  818,  818,  812, 2056, 2051,
2806       198,  198,  806, 2050, 2057,  813, 2058,  816,  198, 2064,
2807       198,  818,  198, 1250, 1250, 1250, 1259, 1259, 1259, 2065,
2808       198,  207,  207,  207,  207,  207,  207,  207,  207,  207,
2809       207,  207,  207,  207,  207,  207, 2051,  207,  207,  207,
2810
2811       207,  207, 2050,  806,  820,  820,  820,  824,  824,  824,
2812       813,  830,  830,  830,  831,  831,  831, 2066,  825,  825,
2813       825,  820,  832,  832,  832,  824,  207,  207, 2067,  830,
2814      2068, 2069,  831,  880,  880,  880,  825,  880, 2070,  832,
2815       880,  883,  883,  883, 2071,  883, 2072, 2073,  883,  207,
2816       208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
2817       208,  208,  208,  208,  208,  825,  208,  208,  208,  208,
2818       208,  835,  835,  835,  836,  836,  836,  831, 2075, 2076,
2819       847,  847,  847,  850,  850,  850,  851,  851,  851,  835,
2820      2080, 2086,  836, 2087, 2091,  208,  208,  847,  852,  852,
2821
2822       852,  850, 2094, 2061,  851,  898,  898,  898, 2052,  898,
2823      2102,  836,  898, 2061, 2103,  852, 2061, 2104,  208,  211,
2824       211,  211,  211,  211,  211,  211,  211,  211,  211,  211,
2825       211,  211,  211,  211, 2128,  211,  211,  211,  211,  211,
2826       855,  855,  855,  856,  856,  856,  857,  857,  857, 2062,
2827      2052,  851,  860,  860,  860,  861,  861,  861,  855, 2062,
2828      2129,  856, 2062,  857,  211,  211, 2130,  906,  906,  906,
2829       860,  906, 2133,  861,  906,  211,  212,  212,  212,  212,
2830       212,  212,  212,  212,  212,  212,  212,  212,  212,  212,
2831       212, 2124,  212,  212,  212,  212,  212, 2134,  864,  864,
2832
2833       864,  865,  865,  865, 2135,  873,  873,  873,  856,  869,
2834       869,  869,  874,  874,  874,  861,  864, 2135, 2136,  865,
2835      2124,  212,  212,  873, 2137, 2140,  869, 1284, 1284, 1284,
2836       874, 2141,  212,  221,  221,  221,  221,  221,  221,  221,
2837       221,  221,  221,  221,  221,  221,  221,  221, 2142,  221,
2838       221,  221,  221,  221,  879,  879,  879,  882,  882,  882,
2839       884,  884,  884, 2143, 2145,  865,  892,  892,  892, 2146,
2840      2138,  879,  874, 2147,  882, 2112, 2125,  884,  221,  221,
2841       893,  893,  893, 2138,  892, 2112,  911,  911,  911,  221,
2842       911, 2112, 2148,  911, 1295, 1295, 1295, 2126,  893, 2152,
2843
2844      2160,  221,  222,  222,  222,  222,  222,  222,  222,  222,
2845       222,  222,  222,  222,  222,  222,  222, 2125,  222,  222,
2846       222,  222,  222,  897,  897,  897,  899,  899,  899, 2161,
2847      2162,  902,  902,  902,  903,  903,  903,  893, 2126, 2166,
2848       897, 2113, 2174,  899,  905,  905,  905,  222,  222,  902,
2849      2176, 2113,  903, 2184,  907,  907,  907, 2113,  222, 2185,
2850      2186,  905, 2187, 2188,  908,  908,  908,  910,  910,  910,
2851       222,  264,  907,  915,  915,  915, 2189, 2199,  264,  916,
2852       916,  916,  908, 2194,  910,  903, 2200,  264,  264, 2204,
2853      2205,  915,  917,  917,  917, 2206, 2207,  916, 1413, 1413,
2854
2855      1413,  918,  918,  918,  919,  919,  919, 2208, 2209,  917,
2856       920,  920,  920, 2210, 2211,  264,  264,  264,  918, 2195,
2857      2213,  919,  264,  264,  908,  264,  264, 2214,  920,  264,
2858      2194,  264,  264,  264,  916,  921,  921,  921,  923,  923,
2859       923,  924,  924,  924,  925,  925,  925, 2215,  926,  926,
2860       926, 2216, 2217,  921, 2195,  923, 2218, 2219,  924, 2220,
2861      2227,  925,  919, 2231, 2232,  926,  927,  927,  927, 2233,
2862       928,  928,  928,  930,  930,  930,  931,  931,  931, 2234,
2863       931, 2241, 2244,  931,  927,  932,  932,  932,  928, 2251,
2864       930,  924,  933,  933,  933,  921,  934,  934,  934,  935,
2865
2866       935,  935, 2246,  932, 2247,  924,  926,  928, 2252, 2253,
2867       933, 2254, 2246,  934, 2247, 2255,  935,  936,  936,  936,
2868       937,  937,  937,  938,  938,  938,  943,  943,  943, 2249,
2869       947,  947,  947, 2250,  936,  944,  944,  944,  937, 2249,
2870      2256,  938, 2265, 2250,  943, 2266, 2267,  933,  947,  935,
2871       948,  948,  948,  944,  949,  949,  949,  950,  950,  950,
2872      2268,  950, 2269,  935,  950,  951,  951,  951,  948, 2258,
2873      2270,  949,  952,  952,  952,  953,  953,  953,  954,  954,
2874       954, 2271,  954,  951, 2272,  954,  956,  956,  956, 2275,
2875       952, 2276,  953,  938,  957,  957,  957, 2278,  944,  972,
2876
2877       972,  972, 2279, 2258,  956,  973,  973,  973,  975,  975,
2878       975, 2280,  957,  948, 1002, 1002, 1002,  972, 1003, 1003,
2879      1003, 2282, 2289,  973, 2290, 2291,  975, 1004, 1004, 1004,
2880      2293, 1002,  952, 1006, 1006, 1006, 1003, 1007, 1007, 1007,
2881      1008, 1008, 1008, 2299, 1008, 1004, 2300, 1008, 1011, 1011,
2882      1011, 1006, 2301, 2302, 1007,  975, 2303,  957, 1013, 1013,
2883      1013, 1014, 1014, 1014, 2304, 1011, 1016, 1016, 1016, 2305,
2884      1018, 1018, 1018, 2306, 1018, 2307, 1013, 1018, 2308, 1014,
2885      2310, 2311, 1006, 2323, 1016, 1021, 1021, 1021, 1022, 1022,
2886      1022, 2324, 1022, 2325, 2326, 1022, 2327, 1023, 1023, 1023,
2887
2888      2328, 2329, 1021, 1024, 1024, 1024, 2330, 2315, 1011, 1027,
2889      1027, 1027, 2334, 1016, 1023, 1025, 1025, 1025, 2335, 1025,
2890      1024, 2336, 1025, 1029, 1029, 1029, 1027, 1030, 1030, 1030,
2891      1032, 1032, 1032, 1035, 1035, 1035, 1037, 1037, 1037, 2337,
2892      2338, 1029, 1038, 1038, 1038, 1030, 2339, 2343, 1032, 2315,
2893      1035, 1040, 1040, 1040, 1037, 1041, 1041, 1041, 2344, 1041,
2894      1038, 2345, 1041, 1045, 1045, 1045, 1046, 1046, 1046, 1040,
2895      1048, 1048, 1048, 1058, 1058, 1058, 2348, 1058, 2353, 2354,
2896      1058, 1045, 2355, 2356, 1046, 1062, 1062, 1062, 1048, 1032,
2897      1063, 1063, 1063, 1065, 1065, 1065, 2357, 2358, 1040, 2359,
2898
2899      1066, 1066, 1066, 1062, 1066, 2360, 2361, 1066, 1063, 2362,
2900      2363, 1065, 1070, 1070, 1070, 1071, 1071, 1071, 1073, 1073,
2901      1073, 1074, 1074, 1074, 2364, 1074, 2365, 2371, 1074, 2374,
2902      1070, 2375, 2378, 1071, 2380, 2381, 1073, 1077, 1077, 1077,
2903      1078, 1078, 1078, 1079, 1079, 1079, 1081, 1081, 1081, 1082,
2904      1082, 1082, 2368, 1065, 1077, 1083, 1083, 1083, 1078, 2383,
2905      2384, 1079, 2367, 2368, 1081, 2387, 1082, 1084, 1084, 1084,
2906      2388, 2365, 1083, 1085, 1085, 1085, 2367, 2389, 1073, 1087,
2907      1087, 1087, 2393, 1083, 2401, 1084, 1090, 1090, 1090, 2403,
2908      2405, 1085, 1091, 1091, 1091, 2407, 1091, 1087, 2391, 1091,
2909
2910      1096, 1096, 1096, 1090, 1097, 1097, 1097, 1099, 1099, 1099,
2911      2391, 2392, 1081, 1106, 1106, 1106, 2415, 1106, 1096, 2417,
2912      1106, 2413, 1097, 2392, 2419, 1099, 1109, 1109, 1109, 1110,
2913      1110, 1110, 2420, 1110, 2421, 2413, 1110, 1113, 1113, 1113,
2914      1122, 1122, 1122, 1109, 1087, 1114, 1114, 1114, 2422, 1114,
2915      2412, 2431, 1114, 2398, 1113, 1123, 1123, 1123, 1122, 1125,
2916      1125, 1125, 1130, 1130, 1130, 2398, 1130, 2414, 2414, 1130,
2917      2416, 1099, 2399, 1123, 1133, 1133, 1133, 1125, 1134, 1134,
2918      1134, 2416, 1134, 2433, 2399, 1134, 1137, 1137, 1137, 2436,
2919      2412, 1133, 1138, 1138, 1138, 1140, 1140, 1140, 1142, 1142,
2920
2921      1142, 2438, 1142, 2444, 1137, 1142, 1145, 1145, 1145, 2445,
2922      1138, 2446, 2430, 1140, 1146, 1146, 1146, 1148, 1148, 1148,
2923      1156, 1156, 1156, 2448, 1145, 1125, 1150, 1150, 1150, 2449,
2924      1150, 2430, 1146, 1150, 2450, 1148, 2451, 2432, 1156, 1157,
2925      1157, 1157, 1159, 1159, 1159, 2458, 1140, 1160, 1160, 1160,
2926      2459, 1161, 1161, 1161, 2460, 1161, 2432, 1157, 1161, 2461,
2927      1159, 1162, 1162, 1162, 1160, 1163, 1163, 1163, 2462, 1163,
2928      2463, 2435, 1163, 1165, 1165, 1165, 2437, 2466, 1162, 1166,
2929      1166, 1166, 2467, 1148, 1168, 1168, 1168, 1170, 1170, 1170,
2930      2435, 1165, 1171, 1171, 1171, 2437, 1171, 1166, 2468, 1171,
2931
2932      2469, 1159, 1168, 2470, 1170, 1174, 1174, 1174, 1175, 1175,
2933      1175, 2471, 1175, 2473, 2475, 1175, 1177, 1177, 1177, 1178,
2934      1178, 1178, 1174, 1180, 1180, 1180, 1182, 1182, 1182, 2477,
2935      1182, 2487, 2488, 1182, 1177, 2489, 2485, 1178, 1185, 1185,
2936      1185, 1180, 1186, 1186, 1186, 1188, 1188, 1188, 2485, 2490,
2937      1168, 1189, 1189, 1189, 2491, 2492, 1185, 1190, 1190, 1190,
2938      1186, 1190, 2486, 1188, 1190, 1193, 1193, 1193, 1189, 1194,
2939      1194, 1194, 2496, 1194, 2486, 2497, 1194, 1195, 1195, 1195,
2940      2498, 2499, 1193, 1196, 1196, 1196, 1180, 1198, 1198, 1198,
2941      1200, 1200, 1200, 2500, 2501, 1195, 1203, 1203, 1203, 2502,
2942
2943      2504, 1196, 2505, 2506, 1188, 1198, 2507, 1200, 1204, 1204,
2944      1204, 1206, 1206, 1206, 1203, 1209, 1209, 1209, 1210, 1210,
2945      1210, 1212, 1212, 1212, 2502, 2508, 1204, 2509, 2510, 1206,
2946      1213, 1213, 1213, 1209, 1213, 2511, 1210, 1213, 2512, 1212,
2947      1216, 1216, 1216, 1217, 1217, 1217, 2513, 2514, 1198, 1219,
2948      1219, 1219, 1220, 1220, 1220, 2515, 1220, 2516, 1216, 1220,
2949      2517, 1217, 1224, 1224, 1224, 2518, 2519, 1219, 1225, 1225,
2950      1225, 1206, 2520, 2521, 1212, 1227, 1227, 1227, 2522, 2525,
2951      1224, 1229, 1229, 1229, 2526, 2527, 1225, 1236, 1236, 1236,
2952      1262, 1262, 1262, 1227, 1263, 1263, 1263, 2522, 1263, 1229,
2953
2954      1229, 1263, 1264, 1264, 1264, 1236, 2528, 1262, 1219, 1265,
2955      1265, 1265, 1266, 1266, 1266, 2529, 1266, 2530, 2531, 1266,
2956      1264, 1269, 1269, 1269, 2532, 2533, 1265, 1271, 1271, 1271,
2957      2534, 1271, 2535, 2536, 1271, 1227, 1274, 1274, 1274, 1269,
2958      1275, 1275, 1275, 2537, 1275, 2538, 2539, 1275, 1280, 1280,
2959      1280, 2540, 1236, 1274, 1276, 1276, 1276, 2542, 1276, 1264,
2960      2541, 1276, 1281, 1281, 1281, 1280, 1281, 2543, 2544, 1281,
2961      1269, 1283, 1283, 1283, 1286, 1286, 1286, 1287, 1287, 1287,
2962      2541, 1287, 2545, 2546, 1287, 1288, 1288, 1288, 2547, 1283,
2963      2548, 1286, 1289, 1289, 1289, 1291, 1291, 1291, 1296, 1296,
2964
2965      1296, 2549, 1288, 1302, 1302, 1302, 1303, 1303, 1303, 2550,
2966      1289, 2551, 2552, 1291, 1305, 1305, 1305, 1306, 1306, 1306,
2967      1302, 1283, 2553, 2554, 1303, 2555, 1307, 1307, 1307, 2556,
2968      1307, 2557, 1305, 1307, 1306, 1308, 1308, 1308, 1309, 1309,
2969      1309, 1289, 2558, 2559, 1296, 1310, 1310, 1310, 2558, 1310,
2970      2560, 2561, 1310, 1308, 2562, 1309, 1312, 1312, 1312, 1315,
2971      1315, 1315, 2563, 1316, 1316, 1316, 2564, 1316, 2566, 1303,
2972      1316, 1317, 1317, 1317, 1312, 2567, 1315, 1305, 1318, 1318,
2973      1318, 1319, 1319, 1319, 1323, 1323, 1323, 2569, 1317, 1326,
2974      1326, 1326, 2570, 2572, 1308, 1318, 1327, 1327, 1327, 1319,
2975
2976      1327, 1323, 2573, 1327, 2576, 2577, 1326, 1328, 1328, 1328,
2977      2578, 1328, 2579, 2581, 1328, 2583, 1312, 1331, 1331, 1331,
2978      1338, 1338, 1338, 2575, 1318, 1340, 1340, 1340, 1343, 1343,
2979      1343, 2585, 1343, 2587, 1331, 1343, 2589, 2575, 1338, 1346,
2980      1346, 1346, 1340, 1348, 1348, 1348, 1319, 1350, 1350, 1350,
2981      1354, 1354, 1354, 1355, 1355, 1355, 1346, 1363, 1363, 1363,
2982      2590, 1348, 1356, 1356, 1356, 1350, 1356, 1354, 2591, 1356,
2983      2592, 1355, 1359, 1359, 1359, 1363, 1359, 2593, 2594, 1359,
2984      1364, 1364, 1364, 2595, 1338, 1365, 1365, 1365, 2596, 1365,
2985      2598, 2600, 1365, 1370, 1370, 1370, 1354, 1370, 2602, 2603,
2986
2987      1370, 1374, 1374, 1374, 2604, 2605, 1348, 2658, 2614, 1355,
2988      1455, 2606, 1350, 1376, 1376, 1376, 1377, 1377, 1377, 1374,
2989      1377, 2620, 1363, 1377, 2607, 2620, 1364, 2626, 1382, 1382,
2990      1382, 1376, 1382, 1452, 2615, 1382, 1385, 1385, 1385, 1387,
2991      1387, 1387, 1388, 1388, 1388, 2616, 1388, 2606, 2658, 1388,
2992      1391, 1391, 1391, 2617, 1385, 2614, 1387, 1393, 1393, 1393,
2993      2607, 1374, 1394, 1394, 1394, 1396, 1396, 1396, 1391, 1376,
2994      1395, 1395, 1395, 2626, 1393, 1397, 1397, 1397, 2618, 2622,
2995      1394, 2615, 1396, 1385, 1400, 1400, 1400, 2622, 1395, 1407,
2996      1407, 1407, 2616, 1397, 1415, 1415, 1415, 2627, 2623, 1391,
2997
2998      2617, 2619, 1400, 1417, 1417, 1417, 2623, 1407, 1419, 1419,
2999      1419, 1422, 1422, 1422, 1424, 1424, 1424, 1426, 1426, 1426,
3000      1448, 2618, 1395, 1431, 1431, 1431, 1444, 1442, 1394, 1433,
3001      1433, 1433, 1437, 1437, 1437, 1400, 1397, 2674, 1434, 1434,
3002      1434, 1407, 1434, 2627, 2619, 1434, 1443, 1443, 1443, 2624,
3003      1437, 1400, 1438, 1438, 1438, 2628, 1438, 2624, 2629, 1438,
3004      1454, 1454, 1454, 1426, 1443, 1445, 1445, 1445, 2625, 1445,
3005      2621, 2630, 1445, 2632, 2621, 1433, 2625, 1424, 1449, 1449,
3006      1449, 2664, 1449, 2674, 1441, 1449, 1453, 1453, 1453, 1456,
3007      1456, 1456, 2628, 1456, 2633, 2629, 1456, 1443, 1437, 1459,
3008
3009      1459, 1459, 1432, 2631, 1453, 1460, 1460, 1460, 2632, 1460,
3010      2664, 2630, 1460, 1461, 1461, 1461, 1459, 1465, 1465, 1465,
3011      1466, 1466, 1466, 1467, 1467, 1467, 1469, 1469, 1469, 2633,
3012      2638, 1461, 1470, 1470, 1470, 1472, 1472, 1472, 1473, 1473,
3013      1473, 1430, 1473, 2631, 2639, 1473, 1453, 1474, 1474, 1474,
3014      2636, 2637, 1472, 1475, 1475, 1475, 1476, 1476, 1476, 1477,
3015      1477, 1477, 2638, 1477, 1461, 1474, 1477, 1480, 1480, 1480,
3016      1475, 1481, 1481, 1481, 1476, 1481, 2639, 2634, 1481, 1484,
3017      1484, 1484, 1485, 1485, 1485, 1480, 1467, 2636, 2637, 1469,
3018      1491, 1491, 1491, 2640, 1474, 1470, 1484, 1488, 1488, 1488,
3019
3020      1485, 1488, 2640, 1476, 1488, 2641, 2656, 1491, 1492, 1492,
3021      1492, 2635, 1492, 2696, 2641, 1492, 1493, 1493, 1493, 1494,
3022      1494, 1494, 2634, 1494, 2652, 2646, 1494, 2696, 1496, 1496,
3023      1496, 2657, 1480, 1493, 1497, 1497, 1497, 1500, 1500, 1500,
3024      1501, 1501, 1501, 2656, 1501, 1485, 1496, 1501, 1502, 1502,
3025      1502, 1504, 1504, 1504, 1500, 1504, 2635, 2652, 1504, 1507,
3026      1507, 1507, 1508, 1508, 1508, 1502, 1508, 2646, 2657, 1508,
3027      1509, 1509, 1509, 1514, 1514, 1514, 1507, 1515, 1515, 1515,
3028      1517, 1517, 1517, 1429, 1518, 1518, 1518, 1509, 1518, 1428,
3029      1514, 1518, 1519, 1519, 1519, 1515, 1427, 1517, 1521, 1521,
3030
3031      1521, 1522, 1522, 1522, 2647, 1522, 2642, 2653, 1522, 1519,
3032      1524, 1524, 1524, 2644, 1425, 1521, 1526, 1526, 1526, 1530,
3033      1530, 1530, 1531, 1531, 1531, 2645, 1531, 2672, 1524, 1531,
3034      1533, 1533, 1533, 2643, 1526, 2672, 1530, 1535, 1535, 1535,
3035      2653, 2642, 1515, 1537, 1537, 1537, 2647, 2644, 1533, 1538,
3036      1538, 1538, 1539, 1539, 1539, 1535, 1540, 1540, 1540, 2645,
3037      1537, 1542, 1542, 1542, 2650, 2651, 1538, 1526, 2643, 1539,
3038      1543, 1543, 1543, 2648, 1540, 1544, 1544, 1544, 1423, 1542,
3039      1545, 1545, 1545, 1552, 1552, 1552, 2668, 1543, 1535, 1547,
3040      1547, 1547, 1544, 1547, 1421, 2649, 1547, 2654, 1545, 2650,
3041
3042      2651, 1552, 1554, 1554, 1554, 2655, 2654, 1542, 1420, 1555,
3043      1555, 1555, 2666, 1555, 2655, 1539, 1555, 2665, 2648, 1554,
3044      2668, 2666, 1540, 1556, 1556, 1556, 2659, 1557, 1557, 1557,
3045      1558, 1558, 1558, 1418, 1552, 1559, 1559, 1559, 1416, 1559,
3046      2649, 1556, 1559, 2662, 1545, 1557, 2665, 1558, 1560, 1560,
3047      1560, 1566, 1566, 1566, 1567, 1567, 1567, 1572, 1572, 1572,
3048      1575, 1575, 1575, 1579, 1579, 1579, 1560, 2659, 1566, 1580,
3049      1580, 1580, 1567, 1581, 1581, 1581, 1583, 1583, 1583, 2660,
3050      2662, 1556, 1557, 1585, 1585, 1585, 1586, 1586, 1586, 1590,
3051      1590, 1590, 1592, 1592, 1592, 1595, 1595, 1595, 1597, 1597,
3052
3053      1597, 1599, 1599, 1599, 1600, 1600, 1600, 1612, 1612, 1612,
3054      1592, 1414, 2661, 1595, 1567, 1597, 1609, 1609, 1609, 1599,
3055      1609, 1600, 2686, 1609, 2660, 1612, 1613, 1613, 1613, 1616,
3056      1616, 1616, 1617, 1617, 1617, 1619, 1619, 1619, 1623, 1623,
3057      1623, 2667, 1592, 1613, 1620, 1620, 1620, 2663, 1620, 2670,
3058      2667, 1620, 1619, 1612, 2686, 2680, 1623, 2661, 2675, 1599,
3059      1624, 1624, 1624, 1625, 1625, 1625, 2671, 1625, 2669, 1412,
3060      1625, 1626, 1626, 1626, 1627, 1627, 1627, 1624, 1628, 1628,
3061      1628, 1629, 1629, 1629, 2663, 1629, 2676, 1411, 1629, 1626,
3062      2680, 1623, 1627, 2677, 2670, 1628, 1630, 1630, 1630, 1633,
3063
3064      1633, 1633, 2669, 1633, 2675, 2673, 1633, 2684, 1636, 1636,
3065      1636, 2671, 1636, 2673, 1630, 1636, 1640, 1640, 1640, 1642,
3066      1642, 1642, 2678, 2676, 1626, 1645, 1645, 1645, 2681, 1645,
3067      2677, 1410, 1645, 2682, 1640, 1648, 1648, 1648, 1649, 1649,
3068      1649, 2679, 1649, 1630, 2684, 1649, 1651, 1651, 1651, 2683,
3069      1651, 2687, 1648, 1651, 1654, 1654, 1654, 1655, 1655, 1655,
3070      2690, 1655, 2678, 2681, 1655, 1656, 1656, 1656, 1660, 1660,
3071      1660, 1654, 1661, 1661, 1661, 2685, 1661, 1409, 2682, 1661,
3072      1408, 2679, 1656, 2687, 2692, 1660, 1662, 1662, 1662, 1664,
3073      1664, 1664, 2690, 1664, 2683, 1406, 1664, 1667, 1667, 1667,
3074
3075      2691, 1668, 1668, 1668, 1662, 1668, 2688, 2694, 1668, 1670,
3076      1670, 1670, 2685, 1670, 1667, 2688, 1670, 1674, 1674, 1674,
3077      1677, 1677, 1677, 1679, 1679, 1679, 1681, 1681, 1681, 2693,
3078      1681, 2692, 2691, 1681, 1405, 1674, 2695, 1662, 1677, 2694,
3079      1679, 1685, 1685, 1685, 1688, 1688, 1688, 1690, 1690, 1690,
3080      1691, 1691, 1691, 1402, 1691, 1399, 1392, 1691, 1390, 1685,
3081      1389, 1386, 1688, 1381, 1690, 1692, 1692, 1692, 2695, 1679,
3082      1693, 1693, 1693, 1380, 1693, 1375, 2693, 1693, 1695, 1695,
3083      1695, 1373, 1692, 1677, 1697, 1697, 1697, 1698, 1698, 1698,
3084      1699, 1699, 1699, 1369, 1699, 1368, 1695, 1699, 1700, 1700,
3085
3086      1700, 2689, 1697, 2697, 1698, 1701, 1701, 1701, 1362, 1701,
3087      2689, 1353, 1701, 1352, 2697, 1700, 1702, 1702, 1702, 1706,
3088      1706, 1706, 1708, 1708, 1708, 1351, 1708, 1349, 1347, 1708,
3089      1711, 1711, 1711, 1697, 1702, 1342, 1341, 1706, 1712, 1712,
3090      1712, 1339, 1337, 1695, 1336, 1713, 1713, 1713, 1711, 1713,
3091      1335, 1334, 1713, 1716, 1716, 1716, 1712, 1722, 1722, 1722,
3092      1723, 1723, 1723, 1333, 1723, 1332, 1325, 1723, 1724, 1724,
3093      1724, 1716, 1324, 1322, 1722, 1725, 1725, 1725, 1321, 1320,
3094      1702, 1711, 1314, 1706, 1313, 1311, 1724, 1728, 1728, 1728,
3095      1304, 1712, 1729, 1729, 1729, 1730, 1730, 1730, 1734, 1734,
3096
3097      1734, 1735, 1735, 1735, 1736, 1736, 1736, 1737, 1737, 1737,
3098      1739, 1739, 1739, 1740, 1740, 1740, 1741, 1741, 1741, 1742,
3099      1742, 1742, 1743, 1743, 1743, 1745, 1745, 1745, 1748, 1748,
3100      1748, 1724, 1751, 1751, 1751, 1752, 1752, 1752, 1301, 1752,
3101      1300, 1299, 1752, 1745, 1298, 1297, 1748, 1294, 1293, 1751,
3102      1754, 1754, 1754, 1737, 1755, 1755, 1755, 1756, 1756, 1756,
3103      1290, 1756, 1285, 1282, 1756, 1767, 1767, 1767, 1754, 1279,
3104      1270, 1755, 1768, 1768, 1768, 1268, 1745, 1769, 1769, 1769,
3105      1267, 1769, 1261, 1767, 1769, 1770, 1770, 1770, 1260, 1768,
3106      1772, 1772, 1772, 1773, 1773, 1773, 1774, 1774, 1774, 1775,
3107
3108      1775, 1775, 1258, 1775, 1257, 1256, 1775, 1776, 1776, 1776,
3109      1780, 1780, 1780, 1774, 1767, 1777, 1777, 1777, 1255, 1777,
3110      1254, 1253, 1777, 1252, 1251, 1776, 1249, 1248, 1780, 1781,
3111      1781, 1781, 1246, 1783, 1783, 1783, 1245, 1783, 1243, 1773,
3112      1783, 1786, 1786, 1786, 1794, 1794, 1794, 1781, 1794, 1241,
3113      1240, 1794, 1239, 1798, 1798, 1798, 1238, 1798, 1776, 1786,
3114      1798, 1780, 1801, 1801, 1801, 1802, 1802, 1802, 1237, 1802,
3115      1235, 1234, 1802, 1806, 1806, 1806, 1233, 1806, 1232, 1801,
3116      1806, 1809, 1809, 1809, 1811, 1811, 1811, 1223, 1811, 1208,
3117      1207, 1811, 1202, 1201, 1786, 1817, 1817, 1817, 1199, 1809,
3118
3119      1819, 1819, 1819, 1820, 1820, 1820, 1192, 1820, 1191, 1181,
3120      1820, 1176, 1173, 1817, 1827, 1827, 1827, 1819, 1830, 1830,
3121      1830, 1172, 1830, 1169, 1164, 1830, 1833, 1833, 1833, 1155,
3122      1833, 1154, 1827, 1833, 1837, 1837, 1837, 1839, 1839, 1839,
3123      1153, 1840, 1840, 1840, 1809, 1840, 1149, 1141, 1840, 1843,
3124      1843, 1843, 1837, 1843, 1136, 1839, 1843, 1846, 1846, 1846,
3125      1847, 1847, 1847, 1848, 1848, 1848, 1849, 1849, 1849, 1850,
3126      1850, 1850, 1852, 1852, 1852, 1846, 1135, 1847, 1129, 1128,
3127      1848, 1127, 1126, 1849, 1121, 1837, 1120, 1850, 1119, 1118,
3128      1852, 1117, 1116, 1846, 1853, 1853, 1853, 1854, 1854, 1854,
3129
3130      1115, 1105, 1839, 1857, 1857, 1857, 1858, 1858, 1858, 1104,
3131      1858, 1103, 1853, 1858, 1848, 1854, 1861, 1861, 1861, 1862,
3132      1862, 1862, 1102, 1101, 1849, 1863, 1863, 1863, 1865, 1865,
3133      1865, 1852, 1100, 1850, 1861, 1866, 1866, 1866, 1867, 1867,
3134      1867, 1868, 1868, 1868, 1869, 1869, 1869, 1870, 1870, 1870,
3135      1871, 1871, 1871, 1874, 1874, 1874, 1875, 1875, 1875, 1876,
3136      1876, 1876, 1878, 1878, 1878, 1881, 1881, 1881, 1882, 1882,
3137      1882, 1095, 1882, 1094, 1861, 1882, 1885, 1885, 1885, 1089,
3138      1878, 1088, 1881, 1886, 1886, 1886, 1069, 1888, 1888, 1888,
3139      1061, 1888, 1057, 1885, 1888, 1901, 1901, 1901, 1902, 1902,
3140
3141      1902, 1886, 1902, 1056, 1055, 1902, 1905, 1905, 1905, 1907,
3142      1907, 1907, 1054, 1901, 1909, 1909, 1909, 1053, 1909, 1052,
3143      1051, 1909, 1912, 1912, 1912, 1913, 1913, 1913, 1914, 1914,
3144      1914, 1922, 1922, 1922, 1050, 1925, 1925, 1925, 1049, 1925,
3145      1912, 1885, 1925, 1913, 1044, 1036, 1914, 1928, 1928, 1928,
3146      1034, 1931, 1931, 1931, 1028, 1901, 1936, 1936, 1936, 1938,
3147      1938, 1938, 1026, 1017, 1928, 1950, 1950, 1950, 1912, 1931,
3148      1012, 1939, 1939, 1939, 1936, 1939, 1938, 1001, 1939, 1914,
3149      1952, 1952, 1952, 1953, 1953, 1953, 1954, 1954, 1954, 1955,
3150      1955, 1955, 1956, 1956, 1956, 1957, 1957, 1957, 1952, 1957,
3151
3152      1953,  999, 1957,  998, 1954, 1938,  997, 1955,  995, 1956,
3153      1958, 1958, 1958, 1959, 1959, 1959, 1960, 1960, 1960, 1961,
3154      1961, 1961, 1962, 1962, 1962,  994,  993, 1958,  992,  991,
3155      1959, 1968, 1968, 1968, 1960, 1963, 1963, 1963,  990,  988,
3156      1962, 1965, 1965, 1965,  987, 1954, 1970, 1970, 1970, 1955,
3157      1969, 1969, 1969, 1963, 1972, 1972, 1972,  986,  985, 1965,
3158      1973, 1973, 1973,  984, 1959, 1974, 1974, 1974, 1969,  983,
3159      1978, 1978, 1978, 1981, 1981, 1981, 1982, 1982, 1982,  982,
3160      1982,  981,  980, 1982, 1983, 1983, 1983, 1962, 1978,  979,
3161      1981, 1994, 1994, 1994, 1997, 1997, 1997, 1998, 1998, 1998,
3162
3163       978, 1983, 1965, 2000, 2000, 2000, 2007, 2007, 2007, 1994,
3164       977,  971, 1997,  970,  969, 1998, 2008, 2008, 2008,  966,
3165       965, 2000,  964, 2007, 2011, 2011, 2011, 2012, 2012, 2012,
3166       962, 2012,  958,  955, 2012, 2014, 2014, 2014,  946, 1983,
3167       945, 2011, 2015, 2015, 2015, 2019, 2019, 2019,  942,  941,
3168      1994,  940, 2014, 2021, 2021, 2021, 2030, 2030, 2030, 1997,
3169      2015,  939, 2019,  929, 2022, 2022, 2022,  922, 2022,  914,
3170      2021, 2022,  913, 2030, 2032, 2032, 2032, 2034, 2034, 2034,
3171      2036, 2036, 2036, 2037, 2037, 2037,  912, 2037,  909,  904,
3172      2037, 2038, 2038, 2038,  901, 2034,  900, 2036, 2039, 2039,
3173
3174      2039, 2040, 2040, 2040,  896, 2040,  894,  891, 2040, 2038,
3175      2043, 2043, 2043, 2044, 2044, 2044, 2039, 2044,  890,  889,
3176      2044, 2045, 2045, 2045, 2046, 2046, 2046, 2043, 2048, 2048,
3177      2048, 2049, 2049, 2049, 2053, 2053, 2053,  888, 2045, 2059,
3178      2059, 2059, 2046, 2060, 2060, 2060,  887, 2060,  886, 2049,
3179      2060,  885, 2053, 2063, 2063, 2063, 2059, 2074, 2074, 2074,
3180      2077, 2077, 2077,  881, 2039, 2078, 2078, 2078,  877,  876,
3181      2063, 2081, 2081, 2081,  875, 2074,  872,  871, 2077, 2084,
3182      2084, 2084,  868, 2078,  867, 2085, 2085, 2085, 2081, 2085,
3183       866,  863, 2085, 2088, 2088, 2088, 2084, 2088,  862,  859,
3184
3185      2088, 2092, 2092, 2092, 2093, 2093, 2093,  854, 2093,  849,
3186       846, 2093,  845, 2063,  844,  842, 2074,  841, 2092, 2095,
3187      2095, 2095, 2096, 2096, 2096, 2097, 2097, 2097,  840, 2097,
3188      2077,  839, 2097, 2098, 2098, 2098, 2095,  838,  834, 2096,
3189      2099, 2099, 2099,  829, 2099,  828,  827, 2099,  826,  823,
3190      2098, 2107, 2107, 2107, 2108, 2108, 2108,  822, 2108,  821,
3191       819, 2108, 2109, 2109, 2109, 2110, 2110, 2110, 2107, 2111,
3192      2111, 2111,  815, 2111,  811,  810, 2111,  807,  804, 2109,
3193       803,  802, 2110, 2114, 2114, 2114, 2116, 2116, 2116, 2117,
3194      2117, 2117,  801, 2117,  800,  799, 2117, 2120, 2120, 2120,
3195
3196       797, 2114,  796,  795, 2116, 2121, 2121, 2121,  794, 2121,
3197       793,  792, 2121,  791, 2120, 2122, 2122, 2122, 2127, 2127,
3198      2127, 2131, 2131, 2131, 2132, 2132, 2132,  790, 2132,  789,
3199       788, 2132,  787, 2122,  786, 2139, 2139, 2139, 2131, 2150,
3200      2150, 2150, 2151, 2151, 2151, 2153, 2153, 2153, 2155, 2155,
3201      2155, 2116, 2139, 2154, 2154, 2154,  785, 2150,  784,  783,
3202      2156, 2156, 2156, 2153, 2156, 2155,  782, 2156,  781,  780,
3203      2154, 2157, 2157, 2157,  776, 2157,  775,  773, 2157, 2163,
3204      2163, 2163,  772, 2163,  771,  770, 2163, 2167, 2167, 2167,
3205      2150, 2168, 2168, 2168, 2139, 2168,  769,  765, 2168, 2154,
3206
3207       763, 2169, 2169, 2169, 2167, 2169, 2153,  762, 2169, 2172,
3208      2172, 2172, 2173, 2173, 2173,  761, 2173,  760,  756, 2173,
3209      2175, 2175, 2175, 2177, 2177, 2177, 2172, 2177,  752,  751,
3210      2177, 2180, 2180, 2180, 2181, 2181, 2181, 2175, 2181,  748,
3211       747, 2181, 2182, 2182, 2182, 2183, 2183, 2183, 2180, 2183,
3212       746,  745, 2183, 2190, 2190, 2190, 2191, 2191, 2191, 2182,
3213      2191,  744,  743, 2191, 2196, 2196, 2196, 2197, 2197, 2197,
3214       740, 2190, 2198, 2198, 2198,  739, 2201, 2201, 2201,  738,
3215      2201, 2196, 2196, 2201, 2212, 2212, 2212, 2221, 2221, 2221,
3216      2222, 2222, 2222, 2223, 2223, 2223, 2224, 2224, 2224,  737,
3217
3218       734, 2212,  732,  729, 2190, 2221, 2225, 2225, 2225, 2226,
3219      2226, 2226,  728, 2226, 2224,  727, 2226, 2228, 2228, 2228,
3220       726, 2228,  725, 2225, 2228, 2235, 2235, 2235,  722, 2235,
3221       721,  720, 2235, 2238, 2238, 2238, 2221, 2238,  719,  718,
3222      2238, 2242, 2242, 2242, 2243, 2243, 2243, 2224, 2243,  715,
3223       714, 2243, 2245, 2245, 2245,  713, 2245,  712, 2242, 2245,
3224      2248, 2248, 2248,  710, 2248,  707,  705, 2248, 2257, 2257,
3225      2257, 2259, 2259, 2259, 2260, 2260, 2260, 2261, 2261, 2261,
3226       702, 2261,  701,  700, 2261,  699, 2257,  697, 2259, 2259,
3227       696, 2260, 2260,  695,  692, 2261, 2262, 2262, 2262, 2263,
3228
3229      2263, 2263, 2264, 2264, 2264, 2273, 2273, 2273, 2274, 2274,
3230      2274,  691, 2274,  690,  689, 2274, 2283, 2283, 2283, 2284,
3231      2284, 2284, 2273, 2285, 2285, 2285, 2286, 2286, 2286,  688,
3232      2286,  687,  686, 2286, 2283, 2292, 2292, 2292, 2294, 2294,
3233      2294, 2285, 2295, 2295, 2295,  685, 2295,  684,  682, 2295,
3234       680,  679, 2292,  675,  674, 2294, 2298, 2298, 2298, 2313,
3235      2313, 2313, 2316, 2316, 2316, 2317, 2317, 2317,  673, 2317,
3236       670,  667, 2317, 2298, 2321, 2321, 2321, 2313,  666, 2316,
3237      2316, 2283,  665, 2317, 2318, 2318, 2318,  662, 2318,  661,
3238       657, 2318, 2322, 2322, 2322, 2340, 2340, 2340, 2341, 2341,
3239
3240      2341,  656, 2318, 2319, 2319, 2319, 2319, 2319, 2319, 2319,
3241      2319, 2319,  652, 2340, 2319,  651, 2341,  649,  644, 2319,
3242      2319, 2319, 2319, 2319, 2331, 2331, 2331,  643, 2331,  641,
3243       640, 2331, 2347, 2347, 2347,  639, 2347,  638,  637, 2347,
3244       636,  632, 2346, 2346, 2346, 2349, 2349, 2349, 2319, 2319,
3245      2320, 2320, 2320, 2320, 2320, 2320, 2320, 2320, 2320, 2346,
3246       631, 2320, 2349, 2351, 2351, 2351, 2320, 2320, 2320, 2320,
3247      2320, 2350, 2350, 2350,  630, 2350,  629,  625, 2350,  624,
3248      2351, 2352, 2352, 2352,  623, 2352,  622,  621, 2352,  620,
3249      2366, 2366, 2366,  619, 2366, 2320, 2320, 2366,  617,  614,
3250
3251      2385, 2385, 2385, 2418, 2418, 2418,  613,  611, 2366, 2369,
3252      2369, 2369, 2369, 2369, 2369, 2369, 2369, 2369, 2385,  609,
3253      2369, 2418, 2418,  606,  605, 2369, 2369, 2369, 2369, 2369,
3254      2390, 2390, 2390,  599, 2390,  597,  595, 2390, 2394, 2394,
3255      2394,  592, 2394,  591,  587, 2394, 2397, 2397, 2397,  586,
3256      2397,  585,  583, 2397, 2369, 2369, 2370, 2370, 2370, 2370,
3257      2370, 2370, 2370, 2370, 2370,  582,  581, 2370, 2427, 2427,
3258      2427,  580, 2370, 2370, 2370, 2370, 2370, 2428, 2428, 2428,
3259      2429, 2429, 2429,  579,  576, 2427, 2434, 2434, 2434, 2443,
3260      2443, 2443,  575,  574, 2428,  573,  572, 2429, 2447, 2447,
3261
3262      2447, 2370, 2370, 2434, 2452, 2452, 2452, 2443, 2453, 2453,
3263      2453,  566, 2453,  565,  563, 2453, 2447, 2454, 2454, 2454,
3264       557, 2452, 2455, 2455, 2455,  556, 2455,  552,  545, 2455,
3265      2456, 2456, 2456,  541, 2454, 2457, 2457, 2457,  535, 2457,
3266       531,  527, 2457, 2464, 2464, 2464,  523, 2456,  522, 2447,
3267      2465, 2465, 2465,  521, 2465,  520,  516, 2465,  512,  509,
3268      2464, 2472, 2472, 2472, 2478, 2478, 2478,  508, 2478,  507,
3269       503, 2478,  497, 2481, 2481, 2481,  496, 2481,  492, 2472,
3270      2481, 2484, 2484, 2484,  488, 2484,  484,  483, 2484, 2493,
3271      2493, 2493,  479, 2493,  476,  475, 2493,  470, 2472, 2588,
3272
3273      2588, 2588, 2597, 2597, 2597,  466, 2597,  458,  457, 2597,
3274      2698, 2698, 2698, 2699, 2699, 2699,  456, 2588,  452,  446,
3275      2597,  445,  441,  435,  434,  433,  432,  431, 2698,  430,
3276       429, 2699, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
3277      2702, 2703, 2703, 2703, 2703, 2703, 2703, 2703, 2703, 2703,
3278      2704, 2704, 2704, 2704, 2704, 2704, 2704, 2704, 2704, 2705,
3279      2705, 2705, 2705, 2705, 2705, 2705, 2705, 2705, 2706, 2706,
3280      2706, 2706, 2706, 2706, 2706, 2706, 2706, 2707, 2707, 2707,
3281      2707, 2707, 2707, 2707, 2707, 2707, 2708, 2708, 2708, 2708,
3282      2708, 2708, 2708, 2708, 2708, 2709, 2709, 2709, 2709, 2709,
3283
3284      2709, 2709, 2709, 2709, 2710, 2710, 2710, 2710, 2710, 2710,
3285      2710, 2710, 2710, 2711, 2711, 2711, 2711, 2711, 2711, 2711,
3286      2711, 2711, 2712, 2712, 2712, 2712, 2712, 2712, 2712, 2712,
3287      2712, 2713, 2713, 2713, 2713, 2713, 2713, 2713, 2713, 2713,
3288      2714, 2714, 2714, 2714, 2714, 2714, 2714, 2714, 2714, 2715,
3289      2715, 2715, 2715, 2715, 2715, 2715, 2715, 2715, 2716, 2716,
3290      2716, 2716, 2716, 2716, 2716, 2716, 2716, 2717, 2717, 2717,
3291      2717, 2717, 2717, 2717, 2717, 2717, 2718, 2718, 2718, 2718,
3292      2718, 2718, 2718, 2718, 2718, 2719, 2719, 2719, 2719, 2719,
3293      2719, 2719, 2719, 2719, 2720, 2720, 2720, 2720, 2720, 2720,
3294
3295      2720, 2720, 2720, 2721, 2721, 2721, 2721, 2721, 2721, 2721,
3296      2721, 2721, 2722, 2722, 2722, 2722, 2722, 2722, 2722, 2722,
3297      2722, 2723, 2723, 2723, 2723, 2723, 2723, 2723, 2723, 2723,
3298      2724, 2724, 2724, 2724, 2724, 2724, 2724, 2724, 2724, 2725,
3299      2725, 2725, 2725, 2725, 2725, 2725, 2725, 2725, 2726, 2726,
3300      2726, 2726, 2726, 2726, 2726, 2726, 2726, 2727, 2727, 2727,
3301      2727, 2727, 2727, 2727, 2727, 2727, 2728, 2728, 2728, 2728,
3302      2728, 2728, 2728, 2728, 2728, 2729, 2729, 2729, 2729, 2729,
3303      2729, 2729, 2729, 2729, 2730, 2730, 2730, 2730, 2730, 2730,
3304      2730, 2730, 2730, 2731, 2731, 2731, 2731, 2731, 2731, 2731,
3305
3306      2731, 2731, 2732, 2732, 2732, 2732, 2732, 2732, 2732, 2732,
3307      2732, 2733, 2733, 2733, 2733, 2733, 2733, 2733, 2733, 2733,
3308      2734, 2734, 2734, 2734, 2734, 2734, 2734, 2734, 2734, 2735,
3309      2735, 2735, 2735, 2735, 2735, 2735, 2735, 2735, 2736, 2736,
3310      2736, 2736, 2736, 2736, 2736, 2736, 2736, 2737, 2737, 2737,
3311      2737, 2737, 2737, 2737, 2737, 2737, 2738, 2738, 2738, 2738,
3312      2738, 2738, 2738, 2738, 2738, 2739, 2739, 2739, 2739, 2739,
3313      2739, 2739, 2739, 2739, 2740, 2740, 2740, 2740, 2740, 2740,
3314      2740, 2740, 2740, 2741, 2741, 2741, 2741, 2741, 2741, 2741,
3315      2741, 2741, 2742, 2742, 2742, 2742, 2742, 2742, 2742, 2742,
3316
3317      2742, 2743, 2743, 2743, 2743, 2743, 2743, 2743, 2743, 2743,
3318      2744, 2744, 2744, 2744, 2744, 2744, 2744, 2744, 2744, 2745,
3319      2745, 2745, 2745, 2745, 2745, 2745, 2745, 2745, 2746, 2746,
3320      2746, 2746, 2746, 2746, 2746, 2746, 2746, 2747, 2747, 2747,
3321      2747, 2747, 2747, 2747, 2747, 2747, 2748, 2748, 2748, 2748,
3322      2748, 2748, 2748, 2748, 2748, 2749, 2749, 2749, 2749, 2749,
3323      2749, 2749, 2749, 2749, 2750, 2750, 2750, 2750, 2750, 2750,
3324      2750, 2750, 2750, 2751, 2751, 2751, 2751, 2751, 2751, 2751,
3325      2751, 2751, 2752, 2752, 2752,  425,  416,  415, 2752, 2753,
3326      2753, 2753,  414,  412,  408, 2753, 2754, 2754, 2754,  404,
3327
3328       400,  399, 2754, 2755, 2755, 2755,  398,  397,  396, 2755,
3329      2756, 2756, 2756,  392,  386,  385, 2756, 2757, 2757, 2757,
3330       381,  375,  374, 2757, 2758, 2758, 2758,  370,  363,  362,
3331      2758, 2759, 2759, 2759,  358,  351,  350, 2759, 2760, 2760,
3332      2760,  349,  345,  341, 2760, 2761, 2761, 2761,  335,  328,
3333       327, 2761, 2762, 2762, 2762,  323,  317,  316, 2762, 2763,
3334      2763, 2763,  315,  311,  302, 2763, 2764, 2764, 2764,  300,
3335       299,  295, 2764, 2765, 2765, 2765,  292,  290,  289, 2765,
3336      2766, 2766, 2766,  288,  284,  280, 2766, 2767, 2767, 2767,
3337       277,  273,  270, 2767, 2768, 2768, 2768,  269,  261,  257,
3338
3339      2768, 2769, 2769, 2769,  253,  252,  251, 2769, 2770, 2770,
3340      2770,  245,  244,  242, 2770, 2771, 2771, 2771,  239,  227,
3341         0, 2771, 2772, 2772, 2772,    0,    0,    0, 2772, 2773,
3342      2773, 2773,    0,    0,    0, 2773, 2774, 2774, 2774,    0,
3343         0,    0, 2774, 2775, 2775, 2775, 2775, 2775, 2775, 2775,
3344         0, 2775, 2776, 2776, 2776,    0,    0,    0, 2776, 2777,
3345         0,    0,    0, 2777, 2778, 2778, 2778,    0,    0,    0,
3346      2778, 2779,    0,    0,    0, 2779, 2780, 2780, 2780,    0,
3347         0,    0, 2780, 2781,    0,    0,    0, 2781, 2782, 2782,
3348      2782,    0,    0,    0, 2782, 2783,    0,    0,    0, 2783,
3349
3350      2784, 2784, 2784,    0,    0,    0, 2784, 2785,    0,    0,
3351         0, 2785, 2786, 2786, 2786,    0,    0,    0, 2786, 2787,
3352         0,    0,    0, 2787, 2788, 2788, 2788,    0,    0,    0,
3353      2788, 2789,    0,    0,    0, 2789, 2790, 2790, 2790,    0,
3354         0,    0, 2790, 2791,    0,    0,    0, 2791, 2792, 2792,
3355      2792,    0,    0,    0, 2792, 2793,    0,    0,    0, 2793,
3356      2794, 2794, 2794,    0,    0,    0, 2794, 2795,    0,    0,
3357         0, 2795, 2796, 2796, 2796,    0,    0,    0, 2796, 2797,
3358         0,    0,    0, 2797, 2798, 2798, 2798,    0,    0,    0,
3359      2798, 2799,    0,    0,    0, 2799, 2800, 2800, 2800,    0,
3360
3361         0,    0, 2800, 2801,    0,    0,    0, 2801, 2802, 2802,
3362      2802,    0,    0,    0, 2802, 2803,    0,    0,    0, 2803,
3363      2804, 2804, 2804,    0,    0,    0, 2804, 2805,    0,    0,
3364         0, 2805, 2806, 2806, 2806,    0,    0,    0, 2806, 2807,
3365         0,    0,    0, 2807, 2808, 2808, 2808,    0,    0,    0,
3366      2808, 2809,    0,    0,    0, 2809, 2810, 2810, 2810,    0,
3367         0,    0, 2810, 2811,    0,    0,    0, 2811, 2812, 2812,
3368      2812,    0,    0,    0, 2812, 2813,    0,    0,    0, 2813,
3369      2814, 2814, 2814,    0,    0,    0, 2814, 2815,    0,    0,
3370         0, 2815, 2816, 2816, 2816,    0,    0,    0, 2816, 2817,
3371
3372         0,    0,    0, 2817, 2818, 2818, 2818,    0,    0,    0,
3373      2818, 2819,    0,    0,    0, 2819, 2820, 2820, 2820,    0,
3374         0,    0, 2820, 2821,    0,    0,    0, 2821, 2822, 2822,
3375      2822, 2822, 2822, 2822, 2822, 2822, 2822, 2823,    0,    0,
3376         0,    0, 2823, 2824, 2824, 2824,    0,    0,    0, 2824,
3377      2825, 2825, 2825, 2825,    0,    0, 2825, 2825, 2826, 2826,
3378      2826,    0,    0,    0, 2826, 2827, 2827, 2827, 2827,    0,
3379         0, 2827, 2827, 2828, 2828, 2828,    0,    0,    0, 2828,
3380      2829, 2829, 2829, 2829,    0,    0, 2829, 2829, 2830, 2830,
3381      2830,    0,    0,    0, 2830, 2831, 2831, 2831, 2831,    0,
3382
3383         0, 2831, 2831, 2832, 2832, 2832,    0,    0,    0, 2832,
3384      2833, 2833, 2833, 2833,    0,    0, 2833, 2833, 2834, 2834,
3385      2834,    0,    0,    0, 2834, 2835, 2835, 2835, 2835,    0,
3386         0, 2835, 2835, 2836, 2836, 2836,    0,    0,    0, 2836,
3387      2837, 2837, 2837, 2837,    0,    0, 2837, 2837, 2838, 2838,
3388      2838,    0,    0,    0, 2838, 2839, 2839, 2839, 2839,    0,
3389         0, 2839, 2839, 2840, 2840, 2840,    0,    0,    0, 2840,
3390      2841, 2841, 2841, 2841,    0,    0, 2841, 2841, 2842, 2842,
3391      2842,    0,    0,    0, 2842, 2843, 2843, 2843, 2843,    0,
3392         0, 2843, 2843, 2844, 2844, 2844,    0,    0,    0, 2844,
3393
3394      2845, 2845, 2845, 2845,    0,    0, 2845, 2845, 2846, 2846,
3395      2846,    0,    0,    0, 2846, 2847, 2847, 2847, 2847,    0,
3396         0, 2847, 2847, 2848, 2848, 2848,    0,    0,    0, 2848,
3397      2849, 2849, 2849, 2849,    0,    0, 2849, 2849, 2850, 2850,
3398      2850,    0,    0,    0, 2850, 2851, 2851, 2851, 2851,    0,
3399         0, 2851, 2851, 2852, 2852, 2852,    0,    0,    0, 2852,
3400      2853, 2853, 2853, 2853,    0,    0, 2853, 2853, 2854, 2854,
3401      2854, 2854,    0, 2854,    0, 2854, 2855, 2855, 2855, 2855,
3402         0,    0, 2855, 2855, 2856, 2856, 2856, 2856,    0, 2856,
3403         0, 2856, 2857, 2857, 2857, 2857,    0,    0, 2857, 2857,
3404
3405      2858, 2858, 2858,    0,    0,    0, 2858, 2859, 2859, 2859,
3406      2859,    0,    0, 2859, 2859, 2860, 2860, 2860, 2860,    0,
3407      2860,    0, 2860, 2861, 2861, 2861, 2861,    0,    0, 2861,
3408      2861, 2862, 2862, 2862,    0,    0,    0, 2862, 2863, 2863,
3409      2863, 2863,    0,    0, 2863, 2863, 2864, 2864, 2864,    0,
3410         0,    0, 2864, 2865, 2865, 2865, 2865,    0,    0, 2865,
3411      2865, 2866, 2866, 2866, 2866,    0,    0, 2866, 2866, 2867,
3412      2867, 2867,    0,    0,    0, 2867, 2868, 2868, 2868, 2868,
3413         0,    0, 2868, 2868, 2869, 2869, 2869, 2869, 2869, 2869,
3414      2869, 2869, 2869, 2870,    0, 2870,    0,    0, 2870, 2871,
3415
3416      2871, 2871,    0,    0,    0, 2871, 2872, 2872, 2872, 2872,
3417         0,    0, 2872, 2872, 2873, 2873, 2873, 2873,    0, 2873,
3418         0, 2873, 2874, 2874, 2874, 2874,    0,    0, 2874, 2874,
3419      2875, 2875, 2875, 2875,    0, 2875,    0, 2875, 2876, 2876,
3420      2876, 2876,    0,    0, 2876, 2876, 2877, 2877, 2877,    0,
3421         0,    0, 2877, 2878, 2878, 2878, 2878,    0,    0, 2878,
3422      2878, 2879, 2879, 2879,    0,    0,    0, 2879, 2880, 2880,
3423      2880, 2880,    0,    0, 2880, 2880, 2881, 2881, 2881,    0,
3424         0,    0, 2881, 2882, 2882, 2882, 2882,    0,    0, 2882,
3425      2882, 2883, 2883, 2883,    0,    0,    0, 2883, 2884, 2884,
3426
3427      2884, 2884,    0,    0, 2884, 2884, 2885, 2885, 2885,    0,
3428         0,    0, 2885, 2886, 2886, 2886, 2886,    0,    0, 2886,
3429      2886, 2887, 2887, 2887, 2887,    0, 2887,    0, 2887, 2888,
3430      2888, 2888, 2888,    0,    0, 2888, 2888, 2889, 2889, 2889,
3431      2889,    0, 2889,    0, 2889, 2890, 2890, 2890, 2890,    0,
3432         0, 2890, 2890, 2891, 2891, 2891,    0,    0,    0, 2891,
3433      2892, 2892, 2892, 2892,    0,    0, 2892, 2892, 2893, 2893,
3434      2893,    0,    0,    0, 2893, 2894, 2894, 2894, 2894,    0,
3435         0, 2894, 2894, 2895, 2895, 2895,    0,    0,    0, 2895,
3436      2896, 2896, 2896, 2896,    0,    0, 2896, 2896, 2897, 2897,
3437
3438      2897,    0,    0,    0, 2897, 2898, 2898, 2898, 2898,    0,
3439         0, 2898, 2898, 2899, 2899, 2899,    0,    0,    0, 2899,
3440      2900, 2900, 2900, 2900,    0,    0, 2900, 2900, 2901, 2901,
3441      2901,    0,    0,    0, 2901, 2902, 2902, 2902, 2902,    0,
3442         0, 2902, 2902, 2903, 2903, 2903,    0,    0,    0, 2903,
3443      2904, 2904, 2904, 2904,    0,    0, 2904, 2904, 2905, 2905,
3444      2905,    0,    0,    0, 2905, 2906, 2906, 2906, 2906,    0,
3445         0, 2906, 2906, 2907, 2907, 2907,    0,    0,    0, 2907,
3446      2908, 2908, 2908, 2908,    0,    0, 2908, 2908, 2909, 2909,
3447      2909,    0,    0,    0, 2909, 2910, 2910, 2910, 2910,    0,
3448
3449         0, 2910, 2910, 2911, 2911, 2911,    0,    0,    0, 2911,
3450      2912, 2912, 2912, 2912,    0,    0, 2912, 2912, 2913, 2913,
3451      2913, 2913,    0,    0, 2913, 2913, 2914, 2914, 2914,    0,
3452         0,    0, 2914, 2915, 2915, 2915, 2915,    0,    0, 2915,
3453      2915, 2916, 2916, 2916, 2916, 2916, 2916, 2916, 2916, 2916,
3454      2917, 2917, 2917, 2917, 2917, 2917, 2917, 2917, 2917, 2918,
3455      2918, 2918,    0,    0,    0, 2918, 2919, 2919, 2919, 2919,
3456         0,    0, 2919, 2919, 2920, 2920, 2920, 2920,    0,    0,
3457      2920, 2920, 2921, 2921, 2921,    0,    0,    0, 2921, 2922,
3458      2922, 2922, 2922,    0,    0, 2922, 2922, 2923, 2923, 2923,
3459
3460         0,    0,    0, 2923, 2924, 2924, 2924, 2924,    0,    0,
3461      2924, 2924, 2925, 2925, 2925,    0,    0,    0, 2925, 2926,
3462      2926, 2926, 2926,    0,    0, 2926, 2926, 2927, 2927, 2927,
3463         0,    0,    0, 2927, 2928, 2928, 2928,    0,    0,    0,
3464      2928, 2929, 2929, 2929, 2929,    0,    0, 2929, 2929, 2930,
3465      2930, 2930,    0,    0,    0, 2930, 2931, 2931, 2931, 2931,
3466         0,    0, 2931, 2931, 2932, 2932, 2932, 2932,    0,    0,
3467      2932, 2932, 2933, 2933, 2933,    0,    0,    0, 2933, 2934,
3468      2934, 2934, 2934,    0,    0, 2934, 2934, 2935, 2935, 2935,
3469         0,    0,    0, 2935, 2936, 2936, 2936, 2936,    0,    0,
3470
3471      2936, 2936, 2937, 2937, 2937,    0,    0,    0, 2937, 2938,
3472      2938, 2938, 2938,    0,    0, 2938, 2938, 2939, 2939, 2939,
3473         0,    0,    0, 2939, 2940, 2940, 2940, 2940,    0,    0,
3474      2940, 2940, 2941, 2941, 2941,    0,    0,    0, 2941, 2942,
3475      2942, 2942, 2942,    0,    0, 2942, 2942, 2943, 2943, 2943,
3476         0,    0,    0, 2943, 2944, 2944, 2944, 2944,    0,    0,
3477      2944, 2944, 2945, 2945, 2945,    0,    0,    0, 2945, 2946,
3478      2946, 2946, 2946,    0,    0, 2946, 2946, 2947, 2947, 2947,
3479         0,    0,    0, 2947, 2948, 2948, 2948, 2948,    0,    0,
3480      2948, 2948, 2949, 2949, 2949,    0,    0,    0, 2949, 2950,
3481
3482      2950, 2950, 2950,    0,    0, 2950, 2950, 2951, 2951, 2951,
3483         0,    0,    0, 2951, 2952, 2952, 2952, 2952,    0,    0,
3484      2952, 2952, 2953, 2953, 2953,    0,    0,    0, 2953, 2954,
3485      2954, 2954, 2954,    0,    0, 2954, 2954, 2955, 2955, 2955,
3486      2955,    0, 2955,    0, 2955, 2956, 2956, 2956, 2956,    0,
3487         0, 2956, 2956, 2957, 2957, 2957, 2957,    0,    0, 2957,
3488      2957, 2958, 2958, 2958, 2958,    0, 2958,    0, 2958, 2959,
3489      2959, 2959, 2959,    0,    0, 2959, 2959, 2960, 2960, 2960,
3490      2960, 2960, 2960, 2960, 2960, 2960, 2961, 2961, 2961, 2961,
3491      2961, 2961, 2961, 2961, 2961, 2962, 2962, 2962,    0,    0,
3492
3493         0, 2962, 2963, 2963, 2963, 2963,    0,    0, 2963, 2963,
3494      2964, 2964, 2964, 2964,    0,    0, 2964, 2964, 2965, 2965,
3495      2965,    0,    0,    0, 2965, 2966, 2966, 2966, 2966,    0,
3496         0, 2966, 2966, 2967, 2967, 2967,    0,    0,    0, 2967,
3497      2968, 2968, 2968, 2968,    0,    0, 2968, 2968, 2969, 2969,
3498      2969,    0,    0,    0, 2969, 2970, 2970, 2970, 2970,    0,
3499         0, 2970, 2970, 2971, 2971, 2971,    0,    0,    0, 2971,
3500      2972, 2972, 2972,    0,    0,    0, 2972, 2973, 2973, 2973,
3501      2973,    0,    0, 2973, 2973, 2974, 2974, 2974, 2974,    0,
3502      2974,    0, 2974, 2975, 2975, 2975, 2975,    0,    0, 2975,
3503
3504      2975, 2976, 2976, 2976, 2976,    0,    0, 2976, 2976, 2977,
3505      2977, 2977, 2977,    0, 2977,    0, 2977, 2978, 2978, 2978,
3506      2978,    0,    0, 2978, 2978, 2979, 2979, 2979,    0,    0,
3507         0, 2979, 2980, 2980, 2980, 2980,    0,    0, 2980, 2980,
3508      2981, 2981, 2981,    0,    0,    0, 2981, 2982, 2982, 2982,
3509      2982,    0,    0, 2982, 2982, 2983, 2983, 2983,    0,    0,
3510         0, 2983, 2984, 2984, 2984, 2984,    0,    0, 2984, 2984,
3511      2985, 2985, 2985,    0,    0,    0, 2985, 2986, 2986, 2986,
3512      2986,    0,    0, 2986, 2986, 2987, 2987, 2987,    0,    0,
3513         0, 2987, 2988, 2988, 2988, 2988,    0,    0, 2988, 2988,
3514
3515      2989, 2989, 2989,    0,    0,    0, 2989, 2990, 2990, 2990,
3516      2990,    0,    0, 2990, 2990, 2991, 2991, 2991, 2991,    0,
3517      2991,    0, 2991, 2992, 2992, 2992, 2992,    0,    0, 2992,
3518      2992, 2993, 2993, 2993,    0,    0,    0, 2993, 2994, 2994,
3519      2994, 2994,    0,    0, 2994, 2994, 2995, 2995, 2995, 2995,
3520         0, 2995,    0, 2995, 2996, 2996, 2996, 2996,    0,    0,
3521      2996, 2996, 2997, 2997, 2997,    0,    0,    0, 2997, 2998,
3522      2998, 2998, 2998,    0,    0, 2998, 2998, 2999, 2999, 2999,
3523      2999,    0,    0, 2999, 2999, 3000, 3000, 3000, 3000,    0,
3524         0, 3000, 3000, 3001, 3001, 3001, 3001,    0,    0, 3001,
3525
3526      3001, 3002, 3002, 3002, 3002, 3002, 3002, 3002, 3002, 3002,
3527      3003, 3003, 3003, 3003, 3003, 3003, 3003, 3003, 3003, 3004,
3528      3004, 3004, 3004,    0, 3004,    0, 3004, 3005, 3005, 3005,
3529      3005,    0,    0, 3005, 3005, 3006, 3006, 3006, 3006,    0,
3530         0, 3006, 3006, 3007, 3007, 3007,    0,    0,    0, 3007,
3531      3008, 3008, 3008, 3008,    0,    0, 3008, 3008, 3009, 3009,
3532      3009,    0,    0,    0, 3009, 3010, 3010, 3010, 3010,    0,
3533         0, 3010, 3010, 3011, 3011, 3011, 3011,    0, 3011,    0,
3534      3011, 3012, 3012, 3012, 3012,    0,    0, 3012, 3012, 3013,
3535      3013, 3013, 3013,    0, 3013,    0, 3013, 3014, 3014, 3014,
3536
3537      3014,    0, 3014,    0, 3014, 3015, 3015, 3015, 3015,    0,
3538         0, 3015, 3015, 3016, 3016, 3016, 3016,    0,    0, 3016,
3539      3016, 3017, 3017, 3017, 3017,    0,    0, 3017, 3017, 3018,
3540      3018, 3018, 3018,    0,    0, 3018, 3018, 3019, 3019, 3019,
3541         0,    0,    0, 3019, 3020, 3020, 3020,    0,    0,    0,
3542      3020, 3021, 3021, 3021, 3021,    0,    0, 3021, 3021, 3022,
3543      3022, 3022,    0,    0,    0, 3022, 3023, 3023, 3023,    0,
3544         0,    0, 3023, 3024, 3024, 3024, 3024,    0,    0, 3024,
3545      3024, 3025, 3025, 3025,    0,    0,    0, 3025, 3026, 3026,
3546      3026,    0,    0,    0, 3026, 3027, 3027, 3027, 3027,    0,
3547
3548         0, 3027, 3027, 3028, 3028, 3028,    0,    0,    0, 3028,
3549      3029, 3029, 3029, 3029,    0,    0, 3029, 3029, 3030, 3030,
3550      3030,    0,    0,    0, 3030, 3031, 3031, 3031, 3031,    0,
3551         0, 3031, 3031, 3032, 3032, 3032, 3032,    0,    0, 3032,
3552      3032, 3033, 3033, 3033,    0,    0,    0, 3033, 3034, 3034,
3553      3034, 3034,    0,    0, 3034, 3034, 3035, 3035, 3035, 3035,
3554         0,    0, 3035, 3035, 3036, 3036, 3036, 3036,    0,    0,
3555      3036, 3036, 3037, 3037, 3037, 3037, 3037, 3037, 3037, 3037,
3556      3037, 3038, 3038, 3038, 3038, 3038, 3038, 3038, 3038, 3038,
3557      3039, 3039, 3039, 3039,    0,    0, 3039, 3039, 3040, 3040,
3558
3559      3040, 3040,    0,    0, 3040, 3040, 3041, 3041, 3041,    0,
3560         0,    0, 3041, 3042, 3042, 3042,    0,    0,    0, 3042,
3561      3043, 3043, 3043, 3043,    0,    0, 3043, 3043, 3044, 3044,
3562      3044, 3044,    0,    0, 3044, 3044, 3045, 3045, 3045, 3045,
3563         0,    0, 3045, 3045, 3046, 3046, 3046, 3046,    0,    0,
3564      3046, 3046, 3047, 3047, 3047, 3047,    0,    0, 3047, 3047,
3565      3048, 3048, 3048,    0,    0,    0, 3048, 3049, 3049, 3049,
3566         0,    0,    0, 3049, 3050, 3050, 3050, 3050,    0,    0,
3567      3050, 3050, 3051, 3051, 3051,    0,    0,    0, 3051, 3052,
3568      3052, 3052,    0,    0,    0, 3052, 3053, 3053, 3053, 3053,
3569
3570         0,    0, 3053, 3053, 3054, 3054, 3054,    0,    0,    0,
3571      3054, 3055, 3055, 3055,    0,    0,    0, 3055, 3056, 3056,
3572      3056,    0,    0,    0, 3056, 3057, 3057, 3057, 3057,    0,
3573         0, 3057, 3057, 3058, 3058, 3058,    0,    0,    0, 3058,
3574      3059, 3059, 3059, 3059,    0,    0, 3059, 3059, 3060, 3060,
3575      3060, 3060,    0,    0, 3060, 3060, 3061, 3061, 3061, 3061,
3576         0, 3061,    0, 3061, 3062, 3062, 3062, 3062,    0,    0,
3577      3062, 3062, 3063, 3063, 3063, 3063,    0,    0, 3063, 3063,
3578      3064, 3064, 3064, 3064,    0,    0, 3064, 3064, 3065, 3065,
3579      3065, 3065, 3065, 3065, 3065, 3065, 3065, 3066, 3066, 3066,
3580
3581      3066, 3066, 3066, 3066, 3066, 3066, 3067, 3067, 3067, 3067,
3582         0,    0, 3067, 3067, 3068, 3068, 3068, 3068,    0,    0,
3583      3068, 3068, 3069, 3069, 3069,    0,    0,    0, 3069, 3070,
3584      3070, 3070, 3070,    0, 3070,    0, 3070, 3071, 3071, 3071,
3585      3071, 3071, 3071, 3071, 3071, 3071, 3072, 3072, 3072, 3072,
3586      3072, 3072, 3072, 3072, 3072, 3073, 3073, 3073, 3073, 3073,
3587      3073, 3073, 3073, 3073, 3074, 3074, 3074, 3074, 3074, 3074,
3588      3074, 3074, 3074, 3075, 3075, 3075, 3075, 3075, 3075, 3075,
3589      3075, 3075, 3076, 3076, 3076, 3076, 3076, 3076, 3076, 3076,
3590      3076, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
3591
3592      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
3593      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
3594      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
3595      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
3596      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
3597      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
3598      2701, 2701, 2701, 2701
3599     } ;
3600
3601 /* Table of booleans, true if rule could match eol. */
3602 static yyconst flex_int32_t yy_rule_can_match_eol[460] =
3603     {   0,
3604 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
3605     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
3606     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3607     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
3608     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
3609     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
3610     1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 
3611     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
3612     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
3613     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
3614     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3615     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
3616     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3617     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
3618     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3619     1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 
3620     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3621     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 
3622     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
3623     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
3624     1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 
3625     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 
3626     0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 
3627         };
3628
3629 static yy_state_type yy_last_accepting_state;
3630 static char *yy_last_accepting_cpos;
3631
3632 extern int surf_parse__flex_debug;
3633 int surf_parse__flex_debug = 0;
3634
3635 /* The intent behind this definition is that it'll catch
3636  * any uses of REJECT which flex missed.
3637  */
3638 #define REJECT reject_used_but_not_detected
3639 #define yymore() yymore_used_but_not_detected
3640 #define YY_MORE_ADJ 0
3641 #define YY_RESTORE_YY_MORE_OFFSET
3642 char *surf_parse_text;
3643 /* Validating XML processor for src/surf/simgrid.dtd.
3644  *
3645  * This program was generated with the FleXML XML processor generator.
3646  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
3647  * FleXML is Copyright (C) 2003-2011 Martin Quinson.  All rights reserved.
3648  * (Id: flexml.pl,v 1.67 2011/11/01 20:49:21 mquinson Exp).
3649  * 
3650  * There are two, intertwined parts to this program, part A and part B.
3651  *
3652  * Part A
3653  * ------
3654  * 
3655  * Some parts, here collectively called "Part A", are found in the 
3656  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
3657  * and Copyright (C) 2003-2011 Martin Quinson. All rights reserved.
3658  *
3659  * You can redistribute, use, perform, display and/or modify "Part A"
3660  * provided the following two conditions hold:
3661  *
3662  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
3663  *    FleXML; without even the implied warranty of MERCHANTABILITY or
3664  *    FITNESS FOR A PARTICULAR PURPOSE.
3665  *
3666  * 2. The program distribution conditions do not in any way affect the
3667  *    distribution conditions of the FleXML system used to generate this
3668  *    file or any version of FleXML derived from that system.
3669  *
3670  * Notice that these are explicit rights granted to you for files
3671  * generated by the FleXML system.  For your rights in connection with
3672  * the FleXML system itself please consult the GNU General Public License.
3673  * 
3674  * Part B
3675  * ------
3676  * 
3677  * The other parts, here collectively called "Part B", and which came 
3678  * from the DTD used by FleXML to generate this program, can be 
3679  * distributed (or not, as the case may be) under the terms of whoever
3680  * wrote them, provided these terms respect and obey the two conditions 
3681  * above under the heading "Part A".
3682  *
3683  * The author of and contributors to FleXML specifically disclaim
3684  * any copyright interest in "Part B", unless "Part B" was written 
3685  * by the author of or contributors to FleXML.
3686  * 
3687  */
3688
3689 /* Version strings. */
3690 const char rcs_surfxml_flexml_skeleton[] =
3691  "$" "Id: skel,v 1.40 2007/10/11 09:57:24 mquinson Exp $";
3692 const char rcs_surfxml_flexml[] =
3693  "$" "Id: flexml.pl,v 1.67 2011/11/01 20:49:21 mquinson Exp $";
3694
3695 /* ANSI headers. */
3696 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
3697 #include <stdio.h>
3698 #include <string.h>
3699 #include <assert.h>
3700 #include <stdarg.h>
3701 #include <ctype.h>
3702      
3703 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
3704 # ifndef __STRICT_ANSI__
3705 #  include <io.h>
3706 #  include <process.h>
3707 # endif
3708 #else
3709 # include <unistd.h>
3710 #endif
3711      
3712 #ifndef FLEXML_INDEXSTACKSIZE
3713 #define FLEXML_INDEXSTACKSIZE 1000
3714 #endif
3715
3716 /* Generated definitions. */
3717 #define FLEXML_yylineno
3718 #ifndef FLEXML_BUFFERSTACKSIZE
3719 #define FLEXML_BUFFERSTACKSIZE 1000000
3720 #endif
3721 #define FLEXML_NEED_BUFFERLIT
3722
3723 /* XML processor api. */
3724 /* FleXML-provided data. */
3725 int surfxml_pcdata_ix;
3726 extern char *surfxml_bufferstack;
3727 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
3728 AT_surfxml_mount_name AX_surfxml_mount_name;
3729 #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
3730 short int surfxml_mount_name_isset;
3731 AT_surfxml_random_generator AX_surfxml_random_generator;
3732 #define A_surfxml_random_generator AX_surfxml_random_generator
3733 short int surfxml_random_generator_isset;
3734 AT_surfxml_ASroute_gw_dst AX_surfxml_ASroute_gw_dst;
3735 #define A_surfxml_ASroute_gw_dst (surfxml_bufferstack + AX_surfxml_ASroute_gw_dst)
3736 short int surfxml_ASroute_gw_dst_isset;
3737 AT_surfxml_trace_connect_element AX_surfxml_trace_connect_element;
3738 #define A_surfxml_trace_connect_element (surfxml_bufferstack + AX_surfxml_trace_connect_element)
3739 short int surfxml_trace_connect_element_isset;
3740 AT_surfxml_prop_id AX_surfxml_prop_id;
3741 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
3742 short int surfxml_prop_id_isset;
3743 AT_surfxml_host_id AX_surfxml_host_id;
3744 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
3745 short int surfxml_host_id_isset;
3746 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
3747 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
3748 short int surfxml_ASroute_symmetrical_isset;
3749 AT_surfxml_peer_lat AX_surfxml_peer_lat;
3750 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
3751 short int surfxml_peer_lat_isset;
3752 AT_surfxml_link_latency_file AX_surfxml_link_latency_file;
3753 #define A_surfxml_link_latency_file (surfxml_bufferstack + AX_surfxml_link_latency_file)
3754 short int surfxml_link_latency_file_isset;
3755 AT_surfxml_peer_availability_file AX_surfxml_peer_availability_file;
3756 #define A_surfxml_peer_availability_file (surfxml_bufferstack + AX_surfxml_peer_availability_file)
3757 short int surfxml_peer_availability_file_isset;
3758 AT_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction;
3759 #define A_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction
3760 short int surfxml_link_ctn_direction_isset;
3761 AT_surfxml_host_state AX_surfxml_host_state;
3762 #define A_surfxml_host_state AX_surfxml_host_state
3763 short int surfxml_host_state_isset;
3764 AT_surfxml_AS_id AX_surfxml_AS_id;
3765 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
3766 short int surfxml_AS_id_isset;
3767 AT_surfxml_host_power AX_surfxml_host_power;
3768 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
3769 short int surfxml_host_power_isset;
3770 AT_surfxml_router_id AX_surfxml_router_id;
3771 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
3772 short int surfxml_router_id_isset;
3773 AT_surfxml_storage_type_id AX_surfxml_storage_type_id;
3774 #define A_surfxml_storage_type_id (surfxml_bufferstack + AX_surfxml_storage_type_id)
3775 short int surfxml_storage_type_id_isset;
3776 AT_surfxml_process_start_time AX_surfxml_process_start_time;
3777 #define A_surfxml_process_start_time (surfxml_bufferstack + AX_surfxml_process_start_time)
3778 short int surfxml_process_start_time_isset;
3779 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
3780 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
3781 short int surfxml_cluster_suffix_isset;
3782 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
3783 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
3784 short int surfxml_ASroute_src_isset;
3785 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
3786 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
3787 short int surfxml_cluster_prefix_isset;
3788 AT_surfxml_trace_file AX_surfxml_trace_file;
3789 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
3790 short int surfxml_trace_file_isset;
3791 AT_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy;
3792 #define A_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy
3793 short int surfxml_link_sharing_policy_isset;
3794 AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
3795 #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
3796 short int surfxml_storage_typeId_isset;
3797 AT_surfxml_random_min AX_surfxml_random_min;
3798 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
3799 short int surfxml_random_min_isset;
3800 AT_surfxml_link_ctn_id AX_surfxml_link_ctn_id;
3801 #define A_surfxml_link_ctn_id (surfxml_bufferstack + AX_surfxml_link_ctn_id)
3802 short int surfxml_link_ctn_id_isset;
3803 AT_surfxml_peer_bw_out AX_surfxml_peer_bw_out;
3804 #define A_surfxml_peer_bw_out (surfxml_bufferstack + AX_surfxml_peer_bw_out)
3805 short int surfxml_peer_bw_out_isset;
3806 AT_surfxml_cluster_availability_file AX_surfxml_cluster_availability_file;
3807 #define A_surfxml_cluster_availability_file (surfxml_bufferstack + AX_surfxml_cluster_availability_file)
3808 short int surfxml_cluster_availability_file_isset;
3809 AT_surfxml_process_kill_time AX_surfxml_process_kill_time;
3810 #define A_surfxml_process_kill_time (surfxml_bufferstack + AX_surfxml_process_kill_time)
3811 short int surfxml_process_kill_time_isset;
3812 AT_surfxml_cluster_bb_bw AX_surfxml_cluster_bb_bw;
3813 #define A_surfxml_cluster_bb_bw (surfxml_bufferstack + AX_surfxml_cluster_bb_bw)
3814 short int surfxml_cluster_bb_bw_isset;
3815 AT_surfxml_argument_value AX_surfxml_argument_value;
3816 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
3817 short int surfxml_argument_value_isset;
3818 AT_surfxml_link_state AX_surfxml_link_state;
3819 #define A_surfxml_link_state AX_surfxml_link_state
3820 short int surfxml_link_state_isset;
3821 AT_surfxml_ASroute_gw_src AX_surfxml_ASroute_gw_src;
3822 #define A_surfxml_ASroute_gw_src (surfxml_bufferstack + AX_surfxml_ASroute_gw_src)
3823 short int surfxml_ASroute_gw_src_isset;
3824 AT_surfxml_AS_routing AX_surfxml_AS_routing;
3825 #define A_surfxml_AS_routing (surfxml_bufferstack + AX_surfxml_AS_routing)
3826 short int surfxml_AS_routing_isset;
3827 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
3828 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
3829 short int surfxml_link_bandwidth_isset;
3830 AT_surfxml_cluster_id AX_surfxml_cluster_id;
3831 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
3832 short int surfxml_cluster_id_isset;
3833 AT_surfxml_peer_bw_in AX_surfxml_peer_bw_in;
3834 #define A_surfxml_peer_bw_in (surfxml_bufferstack + AX_surfxml_peer_bw_in)
3835 short int surfxml_peer_bw_in_isset;
3836 AT_surfxml_random_mean AX_surfxml_random_mean;
3837 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
3838 short int surfxml_random_mean_isset;
3839 AT_surfxml_cluster_bb_lat AX_surfxml_cluster_bb_lat;
3840 #define A_surfxml_cluster_bb_lat (surfxml_bufferstack + AX_surfxml_cluster_bb_lat)
3841 short int surfxml_cluster_bb_lat_isset;
3842 AT_surfxml_link_latency AX_surfxml_link_latency;
3843 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
3844 short int surfxml_link_latency_isset;
3845 AT_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind;
3846 #define A_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind
3847 short int surfxml_trace_connect_kind_isset;
3848 AT_surfxml_random_seed AX_surfxml_random_seed;
3849 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
3850 short int surfxml_random_seed_isset;
3851 AT_surfxml_cluster_state_file AX_surfxml_cluster_state_file;
3852 #define A_surfxml_cluster_state_file (surfxml_bufferstack + AX_surfxml_cluster_state_file)
3853 short int surfxml_cluster_state_file_isset;
3854 AT_surfxml_link_bandwidth_file AX_surfxml_link_bandwidth_file;
3855 #define A_surfxml_link_bandwidth_file (surfxml_bufferstack + AX_surfxml_link_bandwidth_file)
3856 short int surfxml_link_bandwidth_file_isset;
3857 AT_surfxml_storage_type_content AX_surfxml_storage_type_content;
3858 #define A_surfxml_storage_type_content (surfxml_bufferstack + AX_surfxml_storage_type_content)
3859 short int surfxml_storage_type_content_isset;
3860 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
3861 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
3862 short int surfxml_route_symmetrical_isset;
3863 AT_surfxml_random_id AX_surfxml_random_id;
3864 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
3865 short int surfxml_random_id_isset;
3866 AT_surfxml_mstorage_name AX_surfxml_mstorage_name;
3867 #define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name)
3868 short int surfxml_mstorage_name_isset;
3869 AT_surfxml_random_max AX_surfxml_random_max;
3870 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
3871 short int surfxml_random_max_isset;
3872 AT_surfxml_link_id AX_surfxml_link_id;
3873 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
3874 short int surfxml_link_id_isset;
3875 AT_surfxml_process_host AX_surfxml_process_host;
3876 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
3877 short int surfxml_process_host_isset;
3878 AT_surfxml_host_availability_file AX_surfxml_host_availability_file;
3879 #define A_surfxml_host_availability_file (surfxml_bufferstack + AX_surfxml_host_availability_file)
3880 short int surfxml_host_availability_file_isset;
3881 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
3882 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
3883 short int surfxml_cluster_lat_isset;
3884 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
3885 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
3886 short int surfxml_trace_periodicity_isset;
3887 AT_surfxml_cluster_bb_sharing_policy AX_surfxml_cluster_bb_sharing_policy;
3888 #define A_surfxml_cluster_bb_sharing_policy AX_surfxml_cluster_bb_sharing_policy
3889 short int surfxml_cluster_bb_sharing_policy_isset;
3890 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
3891 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
3892 short int surfxml_router_coordinates_isset;
3893 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
3894 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
3895 short int surfxml_peer_coordinates_isset;
3896 AT_surfxml_peer_state_file AX_surfxml_peer_state_file;
3897 #define A_surfxml_peer_state_file (surfxml_bufferstack + AX_surfxml_peer_state_file)
3898 short int surfxml_peer_state_file_isset;
3899 AT_surfxml_prop_value AX_surfxml_prop_value;
3900 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
3901 short int surfxml_prop_value_isset;
3902 AT_surfxml_mstorage_typeId AX_surfxml_mstorage_typeId;
3903 #define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId)
3904 short int surfxml_mstorage_typeId_isset;
3905 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
3906 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
3907 short int surfxml_ASroute_dst_isset;
3908 AT_surfxml_link_state_file AX_surfxml_link_state_file;
3909 #define A_surfxml_link_state_file (surfxml_bufferstack + AX_surfxml_link_state_file)
3910 short int surfxml_link_state_file_isset;
3911 AT_surfxml_random_radical AX_surfxml_random_radical;
3912 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
3913 short int surfxml_random_radical_isset;
3914 AT_surfxml_trace_connect_trace AX_surfxml_trace_connect_trace;
3915 #define A_surfxml_trace_connect_trace (surfxml_bufferstack + AX_surfxml_trace_connect_trace)
3916 short int surfxml_trace_connect_trace_isset;
3917 AT_surfxml_mount_id AX_surfxml_mount_id;
3918 #define A_surfxml_mount_id (surfxml_bufferstack + AX_surfxml_mount_id)
3919 short int surfxml_mount_id_isset;
3920 AT_surfxml_cluster_power AX_surfxml_cluster_power;
3921 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
3922 short int surfxml_cluster_power_isset;
3923 AT_surfxml_process_function AX_surfxml_process_function;
3924 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
3925 short int surfxml_process_function_isset;
3926 AT_surfxml_peer_id AX_surfxml_peer_id;
3927 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
3928 short int surfxml_peer_id_isset;
3929 AT_surfxml_cluster_router_id AX_surfxml_cluster_router_id;
3930 #define A_surfxml_cluster_router_id (surfxml_bufferstack + AX_surfxml_cluster_router_id)
3931 short int surfxml_cluster_router_id_isset;
3932 AT_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy;
3933 #define A_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy
3934 short int surfxml_cluster_sharing_policy_isset;
3935 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
3936 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
3937 short int surfxml_bypassRoute_dst_isset;
3938 AT_surfxml_host_core AX_surfxml_host_core;
3939 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
3940 short int surfxml_host_core_isset;
3941 AT_surfxml_host_availability AX_surfxml_host_availability;
3942 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
3943 short int surfxml_host_availability_isset;
3944 AT_surfxml_storage_type_model AX_surfxml_storage_type_model;
3945 #define A_surfxml_storage_type_model (surfxml_bufferstack + AX_surfxml_storage_type_model)
3946 short int surfxml_storage_type_model_isset;
3947 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
3948 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
3949 short int surfxml_bypassRoute_src_isset;
3950 AT_surfxml_route_src AX_surfxml_route_src;
3951 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
3952 short int surfxml_route_src_isset;
3953 AT_surfxml_bypassRoute_gw_dst AX_surfxml_bypassRoute_gw_dst;
3954 #define A_surfxml_bypassRoute_gw_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_gw_dst)
3955 short int surfxml_bypassRoute_gw_dst_isset;
3956 AT_surfxml_storage_id AX_surfxml_storage_id;
3957 #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
3958 short int surfxml_storage_id_isset;
3959 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
3960 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
3961 short int surfxml_host_coordinates_isset;
3962 AT_surfxml_trace_id AX_surfxml_trace_id;
3963 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
3964 short int surfxml_trace_id_isset;
3965 AT_surfxml_peer_power AX_surfxml_peer_power;
3966 #define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power)
3967 short int surfxml_peer_power_isset;
3968 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
3969 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
3970 short int surfxml_cluster_radical_isset;
3971 AT_surfxml_config_id AX_surfxml_config_id;
3972 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
3973 short int surfxml_config_id_isset;
3974 AT_surfxml_bypassRoute_gw_src AX_surfxml_bypassRoute_gw_src;
3975 #define A_surfxml_bypassRoute_gw_src (surfxml_bufferstack + AX_surfxml_bypassRoute_gw_src)
3976 short int surfxml_bypassRoute_gw_src_isset;
3977 AT_surfxml_include_file AX_surfxml_include_file;
3978 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
3979 short int surfxml_include_file_isset;
3980 AT_surfxml_random_std_deviation AX_surfxml_random_std_deviation;
3981 #define A_surfxml_random_std_deviation (surfxml_bufferstack + AX_surfxml_random_std_deviation)
3982 short int surfxml_random_std_deviation_isset;
3983 AT_surfxml_cluster_core AX_surfxml_cluster_core;
3984 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
3985 short int surfxml_cluster_core_isset;
3986 AT_surfxml_host_state_file AX_surfxml_host_state_file;
3987 #define A_surfxml_host_state_file (surfxml_bufferstack + AX_surfxml_host_state_file)
3988 short int surfxml_host_state_file_isset;
3989 AT_surfxml_route_dst AX_surfxml_route_dst;
3990 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
3991 short int surfxml_route_dst_isset;
3992 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
3993 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
3994 short int surfxml_cluster_bw_isset;
3995 AT_surfxml_platform_version AX_surfxml_platform_version;
3996 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
3997 short int surfxml_platform_version_isset;
3998
3999 /* XML state. */
4000 #ifdef FLEX_DEBUG
4001 # define ENTER(state)   debug_enter(state,#state)
4002 # define LEAVE          debug_leave()
4003 # define SET(state)     debug_set(state,#state)
4004   static void debug_enter(int, const char*);
4005   static void debug_leave(void);
4006   static void debug_set(int, const char*);
4007 #else
4008 # define ENTER(state)   (yy_push_state(state))
4009 # define LEAVE          (yy_pop_state())
4010 # define SET(state)     BEGIN(state)
4011 #endif
4012
4013 /* Generic actions. */
4014 #define SKIP    /*skip*/
4015 #define SUCCEED        CLEANUP; return 0
4016
4017 #define FAIL    return fail
4018 static int fail(const char*, ...);
4019
4020 enum {flexml_max_err_msg_size = 512};
4021 static char flexml_err_msg[flexml_max_err_msg_size];
4022 const char * surfxml_parse_err_msg()
4023 {
4024     return flexml_err_msg;
4025 }
4026 static void reset_surfxml_parse_err_msg()
4027 {
4028     flexml_err_msg[0] = '\0';
4029 }
4030
4031 /* Cleanup */
4032 static void cleanup(void);
4033 #define CLEANUP  cleanup()
4034
4035 /* Text buffer stack handling. */
4036 char *surfxml_bufferstack = NULL;
4037 static int blimit = FLEXML_BUFFERSTACKSIZE;
4038 static int bnext = 1;
4039
4040 static int *indexstack = NULL;
4041 static int ilimit = FLEXML_INDEXSTACKSIZE;
4042 static int inext = 1;
4043
4044 #define BUFFERSET(P)  (P = bnext)
4045 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
4046 #define BUFFERDONE    (BUFFERPUTC('\0'))
4047
4048 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
4049
4050 /* after this is called, there are at least 2 slots left in the stack */
4051 static int ck_blimit()
4052 {
4053      if (bnext >= blimit) {
4054          blimit += FLEXML_BUFFERSTACKSIZE + 2;
4055          {
4056              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
4057              assert(temp);
4058              surfxml_bufferstack = temp;
4059          }
4060      }
4061      return 0;
4062 }
4063
4064 /* after this is called, there are at least 2 slots left in the stack */
4065 static int ck_ilimit()
4066 {
4067      if (inext >= ilimit) {
4068          ilimit += FLEXML_INDEXSTACKSIZE + 2;
4069          {
4070              int *temp = (int *) realloc(indexstack, ilimit);
4071              assert(temp);
4072              indexstack = temp;
4073          }
4074      }
4075      return 0;
4076 }
4077
4078 #ifdef FLEXML_NEED_BUFFERLIT
4079 static void surfxml_bufferliteral(char c, int* pp, const char* text)
4080 {
4081   const char *s = (c ? strchr(text,c) : text-1), *e = strrchr(text,c);
4082   assert(s <= e); BUFFERSET(*pp);
4083   while (++s<e) {
4084     if (isspace(*s) && c) { BUFFERPUTC(' '); while (isspace(*s)) ++s; }
4085     else BUFFERPUTC(*s);
4086   }
4087   BUFFERDONE;
4088 }
4089 #endif
4090
4091 static void pushbuffer(int p)
4092 {
4093     ck_ilimit();
4094     indexstack[inext++] = p;
4095     indexstack[inext++] = bnext;    
4096 }
4097
4098 static int popbuffer(void)
4099 {
4100     assert(inext >= 2);
4101     bnext = indexstack[--inext];
4102     return indexstack[--inext];
4103 }
4104
4105 /* General internal entities are `unput' back onto the input stream... */
4106 #define ENTITYTEXT(T) \
4107   { char *s = (T), *e = s+strlen(s);\
4108     while (--e >= s) { unput(*e); }}
4109
4110 /* Flex standard options. */
4111 #define YY_NO_INPUT 1
4112 /* Flex user-requested options. */
4113 /* XML character classes (currently restricted to ASCII). */
4114 /* "Common syntactic structures." */
4115 /* "Names and Tokens." */
4116 /* Miscellaneous. */
4117 /* Parser states (flex `exclusive start conditions'):
4118  *
4119  * PROLOG       the XML prolog of the document before <?xml...>
4120  * DOCTYPE      the XML prolog of the document after <?xml...>
4121  * EPILOG       after the root element
4122  * INCOMMENT    inside an XML comment <!--....-->
4123  * INPI         inside an XML PI <?...?>
4124  * VALUE1       inside a '...'-delimited literal
4125  * VALUE2       inside a "..."-delimited literal
4126  * CDATA        inside a <![CDATA[...] ]> section.
4127  * ROOT_<tag>   expect root element <tag>
4128  * AL_<tag>     inside the attribute list for <tag>
4129  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
4130  * IMPOSSIBLE   dummy to permit disabling rules; must be last
4131  */
4132
4133 /* State names. */
4134 const char* *surfxml_statenames=NULL;
4135
4136 #define INITIAL 0
4137 #define PROLOG 1
4138 #define DOCTYPE 2
4139 #define EPILOG 3
4140 #define INCOMMENT 4
4141 #define INPI 5
4142 #define VALUE1 6
4143 #define VALUE2 7
4144 #define CDATA 8
4145 #define ROOT_surfxml_platform 9
4146 #define AL_surfxml_platform 10
4147 #define S_surfxml_platform 11
4148 #define S_surfxml_platform_1 12
4149 #define S_surfxml_platform_2 13
4150 #define S_surfxml_platform_3 14
4151 #define S_surfxml_platform_4 15
4152 #define S_surfxml_platform_5 16
4153 #define S_surfxml_platform_6 17
4154 #define S_surfxml_platform_7 18
4155 #define S_surfxml_platform_8 19
4156 #define E_surfxml_platform 20
4157 #define AL_surfxml_include 21
4158 #define S_surfxml_include 22
4159 #define S_surfxml_include_1 23
4160 #define S_surfxml_include_2 24
4161 #define E_surfxml_include 25
4162 #define AL_surfxml_trace 26
4163 #define IN_trace 27
4164 #define AL_surfxml_random 28
4165 #define S_surfxml_random 29
4166 #define S_surfxml_random_1 30
4167 #define S_surfxml_random_2 31
4168 #define E_surfxml_random 32
4169 #define AL_surfxml_trace_connect 33
4170 #define E_surfxml_trace_connect 34
4171 #define AL_surfxml_AS 35
4172 #define S_surfxml_AS 36
4173 #define S_surfxml_AS_1 37
4174 #define S_surfxml_AS_2 38
4175 #define S_surfxml_AS_3 39
4176 #define S_surfxml_AS_4 40
4177 #define S_surfxml_AS_5 41
4178 #define S_surfxml_AS_6 42
4179 #define S_surfxml_AS_7 43
4180 #define S_surfxml_AS_8 44
4181 #define S_surfxml_AS_9 45
4182 #define S_surfxml_AS_10 46
4183 #define S_surfxml_AS_11 47
4184 #define S_surfxml_AS_12 48
4185 #define S_surfxml_AS_13 49
4186 #define E_surfxml_AS 50
4187 #define AL_surfxml_storage_type 51
4188 #define S_surfxml_storage_type 52
4189 #define S_surfxml_storage_type_1 53
4190 #define S_surfxml_storage_type_2 54
4191 #define E_surfxml_storage_type 55
4192 #define AL_surfxml_storage 56
4193 #define S_surfxml_storage 57
4194 #define S_surfxml_storage_1 58
4195 #define S_surfxml_storage_2 59
4196 #define E_surfxml_storage 60
4197 #define AL_surfxml_mount 61
4198 #define E_surfxml_mount 62
4199 #define AL_surfxml_mstorage 63
4200 #define E_surfxml_mstorage 64
4201 #define AL_surfxml_host 65
4202 #define S_surfxml_host 66
4203 #define S_surfxml_host_1 67
4204 #define S_surfxml_host_2 68
4205 #define E_surfxml_host 69
4206 #define AL_surfxml_cluster 70
4207 #define E_surfxml_cluster 71
4208 #define AL_surfxml_peer 72
4209 #define E_surfxml_peer 73
4210 #define AL_surfxml_router 74
4211 #define E_surfxml_router 75
4212 #define AL_surfxml_link 76
4213 #define S_surfxml_link 77
4214 #define S_surfxml_link_1 78
4215 #define S_surfxml_link_2 79
4216 #define E_surfxml_link 80
4217 #define AL_surfxml_route 81
4218 #define S_surfxml_route 82
4219 #define S_surfxml_route_1 83
4220 #define S_surfxml_route_2 84
4221 #define E_surfxml_route 85
4222 #define AL_surfxml_ASroute 86
4223 #define S_surfxml_ASroute 87
4224 #define S_surfxml_ASroute_1 88
4225 #define S_surfxml_ASroute_2 89
4226 #define E_surfxml_ASroute 90
4227 #define AL_surfxml_link_ctn 91
4228 #define E_surfxml_link_ctn 92
4229 #define AL_surfxml_bypassRoute 93
4230 #define S_surfxml_bypassRoute 94
4231 #define S_surfxml_bypassRoute_1 95
4232 #define S_surfxml_bypassRoute_2 96
4233 #define E_surfxml_bypassRoute 97
4234 #define AL_surfxml_process 98
4235 #define S_surfxml_process 99
4236 #define S_surfxml_process_1 100
4237 #define S_surfxml_process_2 101
4238 #define E_surfxml_process 102
4239 #define AL_surfxml_argument 103
4240 #define E_surfxml_argument 104
4241 #define AL_surfxml_config 105
4242 #define S_surfxml_config 106
4243 #define S_surfxml_config_1 107
4244 #define S_surfxml_config_2 108
4245 #define E_surfxml_config 109
4246 #define AL_surfxml_prop 110
4247 #define E_surfxml_prop 111
4248 #define IMPOSSIBLE 112
4249
4250 #ifndef YY_NO_UNISTD_H
4251 /* Special case for "unistd.h", since it is non-ANSI. We include it way
4252  * down here because we want the user's section 1 to have been scanned first.
4253  * The user has a chance to override it with an option.
4254  */
4255 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
4256 #  ifndef __STRICT_ANSI__
4257 #    include <io.h>
4258 #    include <process.h>
4259 #  endif
4260 #else
4261 #  include <unistd.h>
4262 #endif
4263 #endif
4264
4265 #ifndef YY_EXTRA_TYPE
4266 #define YY_EXTRA_TYPE void *
4267 #endif
4268
4269 static int yy_init_globals (void );
4270
4271 /* Accessor methods to globals.
4272    These are made visible to non-reentrant scanners for convenience. */
4273
4274 int surf_parse_lex_destroy (void );
4275
4276 int surf_parse_get_debug (void );
4277
4278 void surf_parse_set_debug (int debug_flag  );
4279
4280 YY_EXTRA_TYPE surf_parse_get_extra (void );
4281
4282 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined  );
4283
4284 FILE *surf_parse_get_in (void );
4285
4286 void surf_parse_set_in  (FILE * in_str  );
4287
4288 FILE *surf_parse_get_out (void );
4289
4290 void surf_parse_set_out  (FILE * out_str  );
4291
4292 int surf_parse_get_leng (void );
4293
4294 char *surf_parse_get_text (void );
4295
4296 int surf_parse_get_lineno (void );
4297
4298 void surf_parse_set_lineno (int line_number  );
4299
4300 /* Macros after this point can all be overridden by user definitions in
4301  * section 1.
4302  */
4303
4304 #ifndef YY_SKIP_YYWRAP
4305 #ifdef __cplusplus
4306 extern "C" int surf_parse_wrap (void );
4307 #else
4308 extern int surf_parse_wrap (void );
4309 #endif
4310 #endif
4311
4312 #ifndef yytext_ptr
4313 static void yy_flex_strncpy (char *,yyconst char *,int );
4314 #endif
4315
4316 #ifdef YY_NEED_STRLEN
4317 static int yy_flex_strlen (yyconst char * );
4318 #endif
4319
4320 #ifndef YY_NO_INPUT
4321
4322 #ifdef __cplusplus
4323 static int yyinput (void );
4324 #else
4325 static int input (void );
4326 #endif
4327
4328 #endif
4329
4330         static int yy_start_stack_ptr = 0;
4331         static int yy_start_stack_depth = 0;
4332         static int *yy_start_stack = NULL;
4333     
4334     static void yy_push_state (int new_state );
4335     
4336     static void yy_pop_state (void );
4337     
4338 /* Amount of stuff to slurp up with each read. */
4339 #ifndef YY_READ_BUF_SIZE
4340 #ifdef __ia64__
4341 /* On IA-64, the buffer size is 16k, not 8k */
4342 #define YY_READ_BUF_SIZE 16384
4343 #else
4344 #define YY_READ_BUF_SIZE 8192
4345 #endif /* __ia64__ */
4346 #endif
4347
4348 /* Copy whatever the last rule matched to the standard output. */
4349 #ifndef ECHO
4350 /* This used to be an fputs(), but since the string might contain NUL's,
4351  * we now use fwrite().
4352  */
4353 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
4354 #endif
4355
4356 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
4357  * is returned in "result".
4358  */
4359 #ifndef YY_INPUT
4360 #define YY_INPUT(buf,result,max_size) \
4361         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
4362                 { \
4363                 int c = '*'; \
4364                 size_t n; \
4365                 for ( n = 0; n < max_size && \
4366                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
4367                         buf[n] = (char) c; \
4368                 if ( c == '\n' ) \
4369                         buf[n++] = (char) c; \
4370                 if ( c == EOF && ferror( surf_parse_in ) ) \
4371                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
4372                 result = n; \
4373                 } \
4374         else \
4375                 { \
4376                 errno=0; \
4377                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
4378                         { \
4379                         if( errno != EINTR) \
4380                                 { \
4381                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
4382                                 break; \
4383                                 } \
4384                         errno=0; \
4385                         clearerr(surf_parse_in); \
4386                         } \
4387                 }\
4388 \
4389
4390 #endif
4391
4392 /* No semi-colon after return; correct usage is to write "yyterminate();" -
4393  * we don't want an extra ';' after the "return" because that will cause
4394  * some compilers to complain about unreachable statements.
4395  */
4396 #ifndef yyterminate
4397 #define yyterminate() return YY_NULL
4398 #endif
4399
4400 /* Number of entries by which start-condition stack grows. */
4401 #ifndef YY_START_STACK_INCR
4402 #define YY_START_STACK_INCR 25
4403 #endif
4404
4405 /* Report a fatal error. */
4406 #ifndef YY_FATAL_ERROR
4407 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
4408 #endif
4409
4410 /* end tables serialization structures and prototypes */
4411
4412 /* Default declaration of generated scanner - a define so the user can
4413  * easily add parameters.
4414  */
4415 #ifndef YY_DECL
4416 #define YY_DECL_IS_OURS 1
4417
4418 extern int surf_parse_lex (void);
4419
4420 #define YY_DECL int surf_parse_lex (void)
4421 #endif /* !YY_DECL */
4422
4423 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
4424  * have been set up.
4425  */
4426 #ifndef YY_USER_ACTION
4427 #define YY_USER_ACTION
4428 #endif
4429
4430 /* Code executed at the end of each rule. */
4431 #ifndef YY_BREAK
4432 #define YY_BREAK break;
4433 #endif
4434
4435 #define YY_RULE_SETUP \
4436         YY_USER_ACTION
4437
4438 /** The main scanner function which does all the work.
4439  */
4440 YY_DECL
4441 {
4442         register yy_state_type yy_current_state;
4443         register char *yy_cp, *yy_bp;
4444         register int yy_act;
4445     
4446  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
4447  SET(PROLOG);
4448  reset_surfxml_parse_err_msg();
4449  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
4450  assert(surfxml_bufferstack);
4451  #ifdef FLEX_DEBUG
4452  {
4453      int i;
4454      for (i = 0; i < blimit; i++) {
4455          surfxml_bufferstack[i] = '\377';
4456      }
4457  }
4458  #endif
4459  surfxml_bufferstack[0] = '\0';
4460  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
4461  assert(indexstack);
4462  indexstack[0] = 0;
4463
4464   /* FleXML_init */
4465   bnext = inext = 1;
4466   surfxml_bufferliteral('\0', &bnext, "0.0");
4467   surfxml_bufferliteral('\0', &bnext, "2147483647");
4468   surfxml_bufferliteral('\0', &bnext, "1");
4469   surfxml_bufferliteral('\0', &bnext, "1.0");
4470   surfxml_bufferliteral('\0', &bnext, "1");
4471   surfxml_bufferliteral('\0', &bnext, "0.0");
4472   surfxml_bufferliteral('\0', &bnext, "-1.0");
4473   surfxml_bufferliteral('\0', &bnext, "-1.0");
4474   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
4475   surfxml_statenames[PROLOG] = NULL;
4476   surfxml_statenames[DOCTYPE] = NULL;
4477   surfxml_statenames[EPILOG] = NULL;
4478   surfxml_statenames[INCOMMENT] = NULL;
4479   surfxml_statenames[INPI] = NULL;
4480   surfxml_statenames[VALUE1] = NULL;
4481   surfxml_statenames[VALUE2] = NULL;
4482   surfxml_statenames[CDATA] = NULL;
4483   surfxml_statenames[ROOT_surfxml_platform] = NULL;
4484   surfxml_statenames[AL_surfxml_platform] = NULL;
4485   surfxml_statenames[S_surfxml_platform] = "platform";
4486   surfxml_statenames[S_surfxml_platform_1] = "platform";
4487   surfxml_statenames[S_surfxml_platform_2] = "platform";
4488   surfxml_statenames[S_surfxml_platform_3] = "platform";
4489   surfxml_statenames[S_surfxml_platform_4] = "platform";
4490   surfxml_statenames[S_surfxml_platform_5] = "platform";
4491   surfxml_statenames[S_surfxml_platform_6] = "platform";
4492   surfxml_statenames[S_surfxml_platform_7] = "platform";
4493   surfxml_statenames[S_surfxml_platform_8] = "platform";
4494   surfxml_statenames[E_surfxml_platform] = "platform";
4495   surfxml_statenames[AL_surfxml_include] = NULL;
4496   surfxml_statenames[S_surfxml_include] = "include";
4497   surfxml_statenames[S_surfxml_include_1] = "include";
4498   surfxml_statenames[S_surfxml_include_2] = "include";
4499   surfxml_statenames[E_surfxml_include] = "include";
4500   surfxml_statenames[AL_surfxml_trace] = NULL;
4501   surfxml_statenames[IN_trace] = "trace";
4502   surfxml_statenames[AL_surfxml_random] = NULL;
4503   surfxml_statenames[S_surfxml_random] = "random";
4504   surfxml_statenames[S_surfxml_random_1] = "random";
4505   surfxml_statenames[S_surfxml_random_2] = "random";
4506   surfxml_statenames[E_surfxml_random] = "random";
4507   surfxml_statenames[AL_surfxml_trace_connect] = NULL;
4508   surfxml_statenames[E_surfxml_trace_connect] = "trace_connect";
4509   surfxml_statenames[AL_surfxml_AS] = NULL;
4510   surfxml_statenames[S_surfxml_AS] = "AS";
4511   surfxml_statenames[S_surfxml_AS_1] = "AS";
4512   surfxml_statenames[S_surfxml_AS_2] = "AS";
4513   surfxml_statenames[S_surfxml_AS_3] = "AS";
4514   surfxml_statenames[S_surfxml_AS_4] = "AS";
4515   surfxml_statenames[S_surfxml_AS_5] = "AS";
4516   surfxml_statenames[S_surfxml_AS_6] = "AS";
4517   surfxml_statenames[S_surfxml_AS_7] = "AS";
4518   surfxml_statenames[S_surfxml_AS_8] = "AS";
4519   surfxml_statenames[S_surfxml_AS_9] = "AS";
4520   surfxml_statenames[S_surfxml_AS_10] = "AS";
4521   surfxml_statenames[S_surfxml_AS_11] = "AS";
4522   surfxml_statenames[S_surfxml_AS_12] = "AS";
4523   surfxml_statenames[S_surfxml_AS_13] = "AS";
4524   surfxml_statenames[E_surfxml_AS] = "AS";
4525   surfxml_statenames[AL_surfxml_storage_type] = NULL;
4526   surfxml_statenames[S_surfxml_storage_type] = "storage_type";
4527   surfxml_statenames[S_surfxml_storage_type_1] = "storage_type";
4528   surfxml_statenames[S_surfxml_storage_type_2] = "storage_type";
4529   surfxml_statenames[E_surfxml_storage_type] = "storage_type";
4530   surfxml_statenames[AL_surfxml_storage] = NULL;
4531   surfxml_statenames[S_surfxml_storage] = "storage";
4532   surfxml_statenames[S_surfxml_storage_1] = "storage";
4533   surfxml_statenames[S_surfxml_storage_2] = "storage";
4534   surfxml_statenames[E_surfxml_storage] = "storage";
4535   surfxml_statenames[AL_surfxml_mount] = NULL;
4536   surfxml_statenames[E_surfxml_mount] = "mount";
4537   surfxml_statenames[AL_surfxml_mstorage] = NULL;
4538   surfxml_statenames[E_surfxml_mstorage] = "mstorage";
4539   surfxml_statenames[AL_surfxml_host] = NULL;
4540   surfxml_statenames[S_surfxml_host] = "host";
4541   surfxml_statenames[S_surfxml_host_1] = "host";
4542   surfxml_statenames[S_surfxml_host_2] = "host";
4543   surfxml_statenames[E_surfxml_host] = "host";
4544   surfxml_statenames[AL_surfxml_cluster] = NULL;
4545   surfxml_statenames[E_surfxml_cluster] = "cluster";
4546   surfxml_statenames[AL_surfxml_peer] = NULL;
4547   surfxml_statenames[E_surfxml_peer] = "peer";
4548   surfxml_statenames[AL_surfxml_router] = NULL;
4549   surfxml_statenames[E_surfxml_router] = "router";
4550   surfxml_statenames[AL_surfxml_link] = NULL;
4551   surfxml_statenames[S_surfxml_link] = "link";
4552   surfxml_statenames[S_surfxml_link_1] = "link";
4553   surfxml_statenames[S_surfxml_link_2] = "link";
4554   surfxml_statenames[E_surfxml_link] = "link";
4555   surfxml_statenames[AL_surfxml_route] = NULL;
4556   surfxml_statenames[S_surfxml_route] = "route";
4557   surfxml_statenames[S_surfxml_route_1] = "route";
4558   surfxml_statenames[S_surfxml_route_2] = "route";
4559   surfxml_statenames[E_surfxml_route] = "route";
4560   surfxml_statenames[AL_surfxml_ASroute] = NULL;
4561   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
4562   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
4563   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
4564   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
4565   surfxml_statenames[AL_surfxml_link_ctn] = NULL;
4566   surfxml_statenames[E_surfxml_link_ctn] = "link_ctn";
4567   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
4568   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
4569   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
4570   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
4571   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
4572   surfxml_statenames[AL_surfxml_process] = NULL;
4573   surfxml_statenames[S_surfxml_process] = "process";
4574   surfxml_statenames[S_surfxml_process_1] = "process";
4575   surfxml_statenames[S_surfxml_process_2] = "process";
4576   surfxml_statenames[E_surfxml_process] = "process";
4577   surfxml_statenames[AL_surfxml_argument] = NULL;
4578   surfxml_statenames[E_surfxml_argument] = "argument";
4579   surfxml_statenames[AL_surfxml_config] = NULL;
4580   surfxml_statenames[S_surfxml_config] = "config";
4581   surfxml_statenames[S_surfxml_config_1] = "config";
4582   surfxml_statenames[S_surfxml_config_2] = "config";
4583   surfxml_statenames[E_surfxml_config] = "config";
4584   surfxml_statenames[AL_surfxml_prop] = NULL;
4585   surfxml_statenames[E_surfxml_prop] = "prop";
4586   }
4587
4588  /* COMMENTS and PIs: handled uniformly for efficiency. */
4589
4590         if ( !(yy_init) )
4591                 {
4592                 (yy_init) = 1;
4593
4594 #ifdef YY_USER_INIT
4595                 YY_USER_INIT;
4596 #endif
4597
4598                 if ( ! (yy_start) )
4599                         (yy_start) = 1; /* first start state */
4600
4601                 if ( ! surf_parse_in )
4602                         surf_parse_in = stdin;
4603
4604                 if ( ! surf_parse_out )
4605                         surf_parse_out = stdout;
4606
4607                 if ( ! YY_CURRENT_BUFFER ) {
4608                         surf_parse_ensure_buffer_stack ();
4609                         YY_CURRENT_BUFFER_LVALUE =
4610                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
4611                 }
4612
4613                 surf_parse__load_buffer_state( );
4614                 }
4615
4616         while ( 1 )             /* loops until end-of-file is reached */
4617                 {
4618                 yy_cp = (yy_c_buf_p);
4619
4620                 /* Support of surf_parse_text. */
4621                 *yy_cp = (yy_hold_char);
4622
4623                 /* yy_bp points to the position in yy_ch_buf of the start of
4624                  * the current run.
4625                  */
4626                 yy_bp = yy_cp;
4627
4628                 yy_current_state = (yy_start);
4629 yy_match:
4630                 do
4631                         {
4632                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
4633                         if ( yy_accept[yy_current_state] )
4634                                 {
4635                                 (yy_last_accepting_state) = yy_current_state;
4636                                 (yy_last_accepting_cpos) = yy_cp;
4637                                 }
4638                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4639                                 {
4640                                 yy_current_state = (int) yy_def[yy_current_state];
4641                                 if ( yy_current_state >= 2702 )
4642                                         yy_c = yy_meta[(unsigned int) yy_c];
4643                                 }
4644                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
4645                         ++yy_cp;
4646                         }
4647                 while ( yy_base[yy_current_state] != 9692 );
4648
4649 yy_find_action:
4650                 yy_act = yy_accept[yy_current_state];
4651                 if ( yy_act == 0 )
4652                         { /* have to back up */
4653                         yy_cp = (yy_last_accepting_cpos);
4654                         yy_current_state = (yy_last_accepting_state);
4655                         yy_act = yy_accept[yy_current_state];
4656                         }
4657
4658                 YY_DO_BEFORE_ACTION;
4659
4660                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
4661                         {
4662                         int yyl;
4663                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
4664                                 if ( surf_parse_text[yyl] == '\n' )
4665                                            
4666     surf_parse_lineno++;
4667 ;
4668                         }
4669
4670 do_action:      /* This label is used only to access EOF actions. */
4671
4672                 switch ( yy_act )
4673         { /* beginning of action switch */
4674                         case 0: /* must back up */
4675                         /* undo the effects of YY_DO_BEFORE_ACTION */
4676                         *yy_cp = (yy_hold_char);
4677                         yy_cp = (yy_last_accepting_cpos);
4678                         yy_current_state = (yy_last_accepting_state);
4679                         goto yy_find_action;
4680
4681 case 1:
4682 YY_RULE_SETUP
4683 ENTER(INCOMMENT);
4684         YY_BREAK
4685 case 2:
4686 YY_RULE_SETUP
4687 ENTER(INPI);
4688         YY_BREAK
4689
4690 case 3:
4691 YY_RULE_SETUP
4692 LEAVE;
4693         YY_BREAK
4694 case 4:
4695 case 5:
4696 case 6:
4697 /* rule 6 can match eol */
4698 YY_RULE_SETUP
4699 SKIP;
4700         YY_BREAK
4701 case YY_STATE_EOF(INCOMMENT):
4702 FAIL("EOF in comment.");
4703         YY_BREAK
4704
4705 case 7:
4706 YY_RULE_SETUP
4707 LEAVE;
4708         YY_BREAK
4709 case 8:
4710 case 9:
4711 /* rule 9 can match eol */
4712 YY_RULE_SETUP
4713 SKIP;
4714         YY_BREAK
4715 case YY_STATE_EOF(INPI):
4716 FAIL("EOF in PI (processing instruction).");
4717         YY_BREAK
4718
4719 /* SPACES: skipped uniformly */
4720 case 10:
4721 /* rule 10 can match eol */
4722 YY_RULE_SETUP
4723 SKIP;
4724         YY_BREAK
4725 /* PROLOG: determine root element and process it. */
4726
4727 case 11:
4728 /* rule 11 can match eol */
4729 YY_RULE_SETUP
4730 SET(DOCTYPE); 
4731         YY_BREAK
4732 case 12:
4733 /* rule 12 can match eol */
4734 YY_RULE_SETUP
4735 FAIL("Bad declaration %s.",surf_parse_text);
4736         YY_BREAK
4737
4738 case 13:
4739 /* rule 13 can match eol */
4740 YY_RULE_SETUP
4741 SET(ROOT_surfxml_platform);
4742         YY_BREAK
4743 case 14:
4744 /* rule 14 can match eol */
4745 YY_RULE_SETUP
4746 FAIL("Bad declaration %s.",surf_parse_text);
4747         YY_BREAK
4748 case 15:
4749 YY_RULE_SETUP
4750 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
4751         YY_BREAK
4752 case YY_STATE_EOF(PROLOG):
4753 case YY_STATE_EOF(DOCTYPE):
4754 FAIL("EOF in prolog.");
4755         YY_BREAK
4756
4757 /* RULES DERIVED FROM DTD. */
4758 /* <!-- Small DTD for SURF based tools. -->  */
4759 case 16:
4760 /* rule 16 can match eol */
4761 YY_RULE_SETUP
4762 FAIL("Starting tag <platform> is not allowed here.");
4763         YY_BREAK
4764 case 17:
4765 /* rule 17 can match eol */
4766 YY_RULE_SETUP
4767 {
4768   AX_surfxml_platform_version = 1;
4769   surfxml_platform_version_isset = 0;
4770   ENTER(AL_surfxml_platform); pushbuffer(0);
4771   }
4772         YY_BREAK
4773
4774 case 18:
4775 /* rule 18 can match eol */
4776 YY_RULE_SETUP
4777 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);
4778         YY_BREAK
4779 case 19:
4780 /* rule 19 can match eol */
4781 YY_RULE_SETUP
4782 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);
4783         YY_BREAK
4784 case 20:
4785 YY_RULE_SETUP
4786 {
4787   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
4788  }
4789         YY_BREAK
4790 case 21:
4791 YY_RULE_SETUP
4792 {
4793   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
4794   switch (YY_START) {
4795    case ROOT_surfxml_platform: SET(EPILOG); break;
4796   }
4797  }
4798         YY_BREAK
4799 case 22:
4800 YY_RULE_SETUP
4801 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
4802         YY_BREAK
4803 case 23:
4804 YY_RULE_SETUP
4805 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
4806         YY_BREAK
4807 case YY_STATE_EOF(AL_surfxml_platform):
4808 FAIL("EOF in attribute list of `platform' element.");
4809         YY_BREAK
4810
4811 case 24:
4812 /* rule 24 can match eol */
4813 YY_RULE_SETUP
4814 {
4815   LEAVE;
4816   ETag_surfxml_platform();
4817   popbuffer(); /* attribute */
4818   switch (YY_START) {
4819    case ROOT_surfxml_platform: SET(EPILOG); break;
4820   }
4821  }
4822         YY_BREAK
4823 case 25:
4824 /* rule 25 can match eol */
4825 YY_RULE_SETUP
4826 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
4827         YY_BREAK
4828 case 26:
4829 YY_RULE_SETUP
4830 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
4831         YY_BREAK
4832 case YY_STATE_EOF(S_surfxml_platform_8):
4833 case YY_STATE_EOF(S_surfxml_platform_1):
4834 case YY_STATE_EOF(S_surfxml_platform_3):
4835 case YY_STATE_EOF(S_surfxml_platform):
4836 case YY_STATE_EOF(S_surfxml_platform_4):
4837 case YY_STATE_EOF(S_surfxml_platform_6):
4838 case YY_STATE_EOF(E_surfxml_platform):
4839 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</platform>' expected.");
4840         YY_BREAK
4841
4842 case 27:
4843 /* rule 27 can match eol */
4844 YY_RULE_SETUP
4845 FAIL("Starting tag <include> is not allowed here.");
4846         YY_BREAK
4847 case 28:
4848 /* rule 28 can match eol */
4849 YY_RULE_SETUP
4850 {
4851   AX_surfxml_include_file = 0;
4852   surfxml_include_file_isset = 0;
4853   ENTER(AL_surfxml_include); pushbuffer(0);
4854   }
4855         YY_BREAK
4856
4857 case 29:
4858 /* rule 29 can match eol */
4859 YY_RULE_SETUP
4860 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);
4861         YY_BREAK
4862 case 30:
4863 /* rule 30 can match eol */
4864 YY_RULE_SETUP
4865 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);
4866         YY_BREAK
4867 case 31:
4868 YY_RULE_SETUP
4869 {
4870   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
4871   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
4872  }
4873         YY_BREAK
4874 case 32:
4875 YY_RULE_SETUP
4876 {
4877   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
4878   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
4879   switch (YY_START) {
4880    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
4881    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
4882    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;
4883    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
4884   }
4885  }
4886         YY_BREAK
4887 case 33:
4888 YY_RULE_SETUP
4889 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
4890         YY_BREAK
4891 case 34:
4892 YY_RULE_SETUP
4893 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
4894         YY_BREAK
4895 case YY_STATE_EOF(AL_surfxml_include):
4896 FAIL("EOF in attribute list of `include' element.");
4897         YY_BREAK
4898
4899 case 35:
4900 /* rule 35 can match eol */
4901 YY_RULE_SETUP
4902 {
4903   LEAVE;
4904   ETag_surfxml_include();
4905   popbuffer(); /* attribute */
4906   switch (YY_START) {
4907    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
4908    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
4909    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;
4910    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
4911   }
4912  }
4913         YY_BREAK
4914 case 36:
4915 /* rule 36 can match eol */
4916 YY_RULE_SETUP
4917 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
4918         YY_BREAK
4919 case 37:
4920 YY_RULE_SETUP
4921 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
4922         YY_BREAK
4923 case YY_STATE_EOF(E_surfxml_include):
4924 case YY_STATE_EOF(S_surfxml_include):
4925 case YY_STATE_EOF(S_surfxml_include_2):
4926 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</include>' expected.");
4927         YY_BREAK
4928
4929 case 38:
4930 /* rule 38 can match eol */
4931 YY_RULE_SETUP
4932 FAIL("Starting tag <trace> is not allowed here.");
4933         YY_BREAK
4934 case 39:
4935 /* rule 39 can match eol */
4936 YY_RULE_SETUP
4937 {
4938   AX_surfxml_trace_id = 0;
4939   surfxml_trace_id_isset = 0;
4940   AX_surfxml_trace_file = 0;
4941   surfxml_trace_file_isset = 0;
4942   AX_surfxml_trace_periodicity = 0;
4943   surfxml_trace_periodicity_isset = 0;
4944   ENTER(AL_surfxml_trace); pushbuffer(0);
4945   }
4946         YY_BREAK
4947
4948 case 40:
4949 /* rule 40 can match eol */
4950 YY_RULE_SETUP
4951 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);
4952         YY_BREAK
4953 case 41:
4954 /* rule 41 can match eol */
4955 YY_RULE_SETUP
4956 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);
4957         YY_BREAK
4958 case 42:
4959 /* rule 42 can match eol */
4960 YY_RULE_SETUP
4961 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);
4962         YY_BREAK
4963 case 43:
4964 /* rule 43 can match eol */
4965 YY_RULE_SETUP
4966 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);
4967         YY_BREAK
4968 case 44:
4969 /* rule 44 can match eol */
4970 YY_RULE_SETUP
4971 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);
4972         YY_BREAK
4973 case 45:
4974 /* rule 45 can match eol */
4975 YY_RULE_SETUP
4976 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);
4977         YY_BREAK
4978 case 46:
4979 YY_RULE_SETUP
4980 {
4981   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
4982   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
4983   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
4984  }
4985         YY_BREAK
4986 case 47:
4987 YY_RULE_SETUP
4988 {
4989   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
4990   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
4991   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
4992   switch (YY_START) {
4993    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;
4994    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
4995    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
4996    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
4997    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;
4998    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
4999    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5000   }
5001  }
5002         YY_BREAK
5003 case 48:
5004 YY_RULE_SETUP
5005 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
5006         YY_BREAK
5007 case 49:
5008 YY_RULE_SETUP
5009 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
5010         YY_BREAK
5011 case YY_STATE_EOF(AL_surfxml_trace):
5012 FAIL("EOF in attribute list of `trace' element.");
5013         YY_BREAK
5014
5015 case 50:
5016 /* rule 50 can match eol */
5017 YY_RULE_SETUP
5018 {
5019   LEAVE;
5020   BUFFERDONE;
5021   ETag_surfxml_trace();
5022   surfxml_pcdata_ix = popbuffer();
5023   popbuffer(); /* attribute */
5024   switch (YY_START) {
5025    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;
5026    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5027    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
5028    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
5029    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;
5030    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
5031    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5032   }
5033  }
5034         YY_BREAK
5035 case 51:
5036 /* rule 51 can match eol */
5037 YY_RULE_SETUP
5038 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
5039         YY_BREAK
5040 case YY_STATE_EOF(IN_trace):
5041 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace>' expected.");
5042         YY_BREAK
5043
5044 case 52:
5045 /* rule 52 can match eol */
5046 YY_RULE_SETUP
5047 FAIL("Starting tag <random> is not allowed here.");
5048         YY_BREAK
5049 case 53:
5050 /* rule 53 can match eol */
5051 YY_RULE_SETUP
5052 {
5053   AX_surfxml_random_id = 0;
5054   surfxml_random_id_isset = 0;
5055   AX_surfxml_random_min = 0;
5056   surfxml_random_min_isset = 0;
5057   AX_surfxml_random_max = 0;
5058   surfxml_random_max_isset = 0;
5059   AX_surfxml_random_mean = 0;
5060   surfxml_random_mean_isset = 0;
5061   AX_surfxml_random_std_deviation = 0;
5062   surfxml_random_std_deviation_isset = 0;
5063   AX_surfxml_random_seed = 5;
5064   surfxml_random_seed_isset = 0;
5065   AX_surfxml_random_radical = 0;
5066   surfxml_random_radical_isset = 0;
5067   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
5068   surfxml_random_generator_isset = 0;
5069   ENTER(AL_surfxml_random); pushbuffer(0);
5070   }
5071         YY_BREAK
5072
5073 case 54:
5074 /* rule 54 can match eol */
5075 YY_RULE_SETUP
5076 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);
5077         YY_BREAK
5078 case 55:
5079 /* rule 55 can match eol */
5080 YY_RULE_SETUP
5081 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);
5082         YY_BREAK
5083 case 56:
5084 /* rule 56 can match eol */
5085 YY_RULE_SETUP
5086 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);
5087         YY_BREAK
5088 case 57:
5089 /* rule 57 can match eol */
5090 YY_RULE_SETUP
5091 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);
5092         YY_BREAK
5093 case 58:
5094 /* rule 58 can match eol */
5095 YY_RULE_SETUP
5096 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);
5097         YY_BREAK
5098 case 59:
5099 /* rule 59 can match eol */
5100 YY_RULE_SETUP
5101 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);
5102         YY_BREAK
5103 case 60:
5104 /* rule 60 can match eol */
5105 YY_RULE_SETUP
5106 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);
5107         YY_BREAK
5108 case 61:
5109 /* rule 61 can match eol */
5110 YY_RULE_SETUP
5111 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);
5112         YY_BREAK
5113 case 62:
5114 /* rule 62 can match eol */
5115 YY_RULE_SETUP
5116 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);
5117         YY_BREAK
5118 case 63:
5119 /* rule 63 can match eol */
5120 YY_RULE_SETUP
5121 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);
5122         YY_BREAK
5123 case 64:
5124 /* rule 64 can match eol */
5125 YY_RULE_SETUP
5126 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);
5127         YY_BREAK
5128 case 65:
5129 /* rule 65 can match eol */
5130 YY_RULE_SETUP
5131 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);
5132         YY_BREAK
5133 case 66:
5134 /* rule 66 can match eol */
5135 YY_RULE_SETUP
5136 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);
5137         YY_BREAK
5138 case 67:
5139 /* rule 67 can match eol */
5140 YY_RULE_SETUP
5141 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);
5142         YY_BREAK
5143 case 68:
5144 /* rule 68 can match eol */
5145 case 69:
5146 /* rule 69 can match eol */
5147 YY_RULE_SETUP
5148 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
5149         YY_BREAK
5150 case 70:
5151 /* rule 70 can match eol */
5152 case 71:
5153 /* rule 71 can match eol */
5154 YY_RULE_SETUP
5155 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
5156         YY_BREAK
5157 case 72:
5158 /* rule 72 can match eol */
5159 case 73:
5160 /* rule 73 can match eol */
5161 YY_RULE_SETUP
5162 A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
5163         YY_BREAK
5164 case 74:
5165 /* rule 74 can match eol */
5166 case 75:
5167 /* rule 75 can match eol */
5168 YY_RULE_SETUP
5169 A_surfxml_random_generator = A_surfxml_random_generator_NONE;
5170         YY_BREAK
5171 case 76:
5172 YY_RULE_SETUP
5173 {
5174   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
5175   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
5176   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
5177   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
5178   if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
5179   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(S_surfxml_random);
5180  }
5181         YY_BREAK
5182 case 77:
5183 YY_RULE_SETUP
5184 {
5185   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
5186   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
5187   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
5188   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
5189   if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
5190   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
5191   switch (YY_START) {
5192    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
5193   }
5194  }
5195         YY_BREAK
5196 case 78:
5197 YY_RULE_SETUP
5198 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
5199         YY_BREAK
5200 case 79:
5201 YY_RULE_SETUP
5202 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
5203         YY_BREAK
5204 case YY_STATE_EOF(AL_surfxml_random):
5205 FAIL("EOF in attribute list of `random' element.");
5206         YY_BREAK
5207
5208 case 80:
5209 /* rule 80 can match eol */
5210 YY_RULE_SETUP
5211 {
5212   LEAVE;
5213   ETag_surfxml_random();
5214   popbuffer(); /* attribute */
5215   switch (YY_START) {
5216    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
5217   }
5218  }
5219         YY_BREAK
5220 case 81:
5221 /* rule 81 can match eol */
5222 YY_RULE_SETUP
5223 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
5224         YY_BREAK
5225 case 82:
5226 YY_RULE_SETUP
5227 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
5228         YY_BREAK
5229 case YY_STATE_EOF(S_surfxml_random):
5230 case YY_STATE_EOF(S_surfxml_random_2):
5231 case YY_STATE_EOF(E_surfxml_random):
5232 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</random>' expected.");
5233         YY_BREAK
5234
5235 case 83:
5236 /* rule 83 can match eol */
5237 YY_RULE_SETUP
5238 FAIL("Starting tag <trace_connect> is not allowed here.");
5239         YY_BREAK
5240 case 84:
5241 /* rule 84 can match eol */
5242 YY_RULE_SETUP
5243 {
5244   AX_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_HOST_AVAIL;
5245   surfxml_trace_connect_kind_isset = 0;
5246   AX_surfxml_trace_connect_trace = 0;
5247   surfxml_trace_connect_trace_isset = 0;
5248   AX_surfxml_trace_connect_element = 0;
5249   surfxml_trace_connect_element_isset = 0;
5250   ENTER(AL_surfxml_trace_connect); pushbuffer(0);
5251   }
5252         YY_BREAK
5253
5254 case 85:
5255 /* rule 85 can match eol */
5256 case 86:
5257 /* rule 86 can match eol */
5258 YY_RULE_SETUP
5259 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_HOST_AVAIL;
5260         YY_BREAK
5261 case 87:
5262 /* rule 87 can match eol */
5263 case 88:
5264 /* rule 88 can match eol */
5265 YY_RULE_SETUP
5266 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_POWER;
5267         YY_BREAK
5268 case 89:
5269 /* rule 89 can match eol */
5270 case 90:
5271 /* rule 90 can match eol */
5272 YY_RULE_SETUP
5273 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_LINK_AVAIL;
5274         YY_BREAK
5275 case 91:
5276 /* rule 91 can match eol */
5277 case 92:
5278 /* rule 92 can match eol */
5279 YY_RULE_SETUP
5280 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_BANDWIDTH;
5281         YY_BREAK
5282 case 93:
5283 /* rule 93 can match eol */
5284 case 94:
5285 /* rule 94 can match eol */
5286 YY_RULE_SETUP
5287 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_LATENCY;
5288         YY_BREAK
5289 case 95:
5290 /* rule 95 can match eol */
5291 YY_RULE_SETUP
5292 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);
5293         YY_BREAK
5294 case 96:
5295 /* rule 96 can match eol */
5296 YY_RULE_SETUP
5297 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);
5298         YY_BREAK
5299 case 97:
5300 /* rule 97 can match eol */
5301 YY_RULE_SETUP
5302 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);
5303         YY_BREAK
5304 case 98:
5305 /* rule 98 can match eol */
5306 YY_RULE_SETUP
5307 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);
5308         YY_BREAK
5309 case 99:
5310 YY_RULE_SETUP
5311 {
5312   if (!AX_surfxml_trace_connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
5313   if (!AX_surfxml_trace_connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
5314   LEAVE; STag_surfxml_trace_connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace_connect);
5315  }
5316         YY_BREAK
5317 case 100:
5318 YY_RULE_SETUP
5319 {
5320   if (!AX_surfxml_trace_connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
5321   if (!AX_surfxml_trace_connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
5322   LEAVE; STag_surfxml_trace_connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace_connect(); popbuffer(); /* attribute */
5323   switch (YY_START) {
5324    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;
5325    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5326    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
5327    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
5328    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;
5329    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
5330    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5331   }
5332  }
5333         YY_BREAK
5334 case 101:
5335 YY_RULE_SETUP
5336 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", surf_parse_text[0]);
5337         YY_BREAK
5338 case 102:
5339 YY_RULE_SETUP
5340 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",surf_parse_text);
5341         YY_BREAK
5342 case YY_STATE_EOF(AL_surfxml_trace_connect):
5343 FAIL("EOF in attribute list of `trace_connect' element.");
5344         YY_BREAK
5345
5346 case 103:
5347 /* rule 103 can match eol */
5348 YY_RULE_SETUP
5349 {
5350   LEAVE;
5351   ETag_surfxml_trace_connect();
5352   popbuffer(); /* attribute */
5353   switch (YY_START) {
5354    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;
5355    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5356    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
5357    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
5358    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;
5359    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
5360    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5361   }
5362  }
5363         YY_BREAK
5364 case 104:
5365 /* rule 104 can match eol */
5366 YY_RULE_SETUP
5367 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",surf_parse_text);
5368         YY_BREAK
5369 case 105:
5370 YY_RULE_SETUP
5371 FAIL("Unexpected character `%c': `</trace_connect>' expected.",surf_parse_text[0]);
5372         YY_BREAK
5373 case YY_STATE_EOF(E_surfxml_trace_connect):
5374 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace_connect>' expected.");
5375         YY_BREAK
5376
5377 case 106:
5378 /* rule 106 can match eol */
5379 YY_RULE_SETUP
5380 FAIL("Starting tag <AS> is not allowed here.");
5381         YY_BREAK
5382 case 107:
5383 /* rule 107 can match eol */
5384 YY_RULE_SETUP
5385 {
5386   AX_surfxml_AS_id = 0;
5387   surfxml_AS_id_isset = 0;
5388   AX_surfxml_AS_routing = 0;
5389   surfxml_AS_routing_isset = 0;
5390   ENTER(AL_surfxml_AS); pushbuffer(0);
5391   }
5392         YY_BREAK
5393
5394 case 108:
5395 /* rule 108 can match eol */
5396 YY_RULE_SETUP
5397 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);
5398         YY_BREAK
5399 case 109:
5400 /* rule 109 can match eol */
5401 YY_RULE_SETUP
5402 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);
5403         YY_BREAK
5404 case 110:
5405 /* rule 110 can match eol */
5406 YY_RULE_SETUP
5407 if (surfxml_AS_routing_isset != 0) {FAIL("Multiple definition of attribute routing in <surfxml_AS>");} surfxml_AS_routing_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_AS_routing);
5408         YY_BREAK
5409 case 111:
5410 /* rule 111 can match eol */
5411 YY_RULE_SETUP
5412 if (surfxml_AS_routing_isset != 0) {FAIL("Multiple definition of attribute routing in <surfxml_AS>");}  surfxml_AS_routing_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_AS_routing);
5413         YY_BREAK
5414 case 112:
5415 YY_RULE_SETUP
5416 {
5417   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
5418   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
5419   LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
5420  }
5421         YY_BREAK
5422 case 113:
5423 YY_RULE_SETUP
5424 {
5425   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
5426   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
5427   LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
5428   switch (YY_START) {
5429    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5430    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;
5431    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5432   }
5433  }
5434         YY_BREAK
5435 case 114:
5436 YY_RULE_SETUP
5437 FAIL("Unexpected character `%c' in attribute list of AS element.", surf_parse_text[0]);
5438         YY_BREAK
5439 case 115:
5440 YY_RULE_SETUP
5441 FAIL("Bad attribute `%s' in `AS' element start tag.",surf_parse_text);
5442         YY_BREAK
5443 case YY_STATE_EOF(AL_surfxml_AS):
5444 FAIL("EOF in attribute list of `AS' element.");
5445         YY_BREAK
5446
5447 case 116:
5448 /* rule 116 can match eol */
5449 YY_RULE_SETUP
5450 {
5451   LEAVE;
5452   ETag_surfxml_AS();
5453   popbuffer(); /* attribute */
5454   switch (YY_START) {
5455    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5456    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;
5457    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5458   }
5459  }
5460         YY_BREAK
5461 case 117:
5462 /* rule 117 can match eol */
5463 YY_RULE_SETUP
5464 FAIL("Unexpected end-tag `%s': `</AS>' expected.",surf_parse_text);
5465         YY_BREAK
5466 case 118:
5467 YY_RULE_SETUP
5468 FAIL("Unexpected character `%c': `</AS>' expected.",surf_parse_text[0]);
5469         YY_BREAK
5470 case YY_STATE_EOF(S_surfxml_AS_9):
5471 case YY_STATE_EOF(S_surfxml_AS_1):
5472 case YY_STATE_EOF(S_surfxml_AS_11):
5473 case YY_STATE_EOF(S_surfxml_AS_6):
5474 case YY_STATE_EOF(E_surfxml_AS):
5475 case YY_STATE_EOF(S_surfxml_AS_3):
5476 case YY_STATE_EOF(S_surfxml_AS_13):
5477 case YY_STATE_EOF(S_surfxml_AS_8):
5478 case YY_STATE_EOF(S_surfxml_AS):
5479 case YY_STATE_EOF(S_surfxml_AS_4):
5480 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</AS>' expected.");
5481         YY_BREAK
5482
5483 case 119:
5484 /* rule 119 can match eol */
5485 YY_RULE_SETUP
5486 FAIL("Starting tag <storage_type> is not allowed here.");
5487         YY_BREAK
5488 case 120:
5489 /* rule 120 can match eol */
5490 YY_RULE_SETUP
5491 {
5492   AX_surfxml_storage_type_id = 0;
5493   surfxml_storage_type_id_isset = 0;
5494   AX_surfxml_storage_type_model = 0;
5495   surfxml_storage_type_model_isset = 0;
5496   AX_surfxml_storage_type_content = 0;
5497   surfxml_storage_type_content_isset = 0;
5498   ENTER(AL_surfxml_storage_type); pushbuffer(0);
5499   }
5500         YY_BREAK
5501
5502 case 121:
5503 /* rule 121 can match eol */
5504 YY_RULE_SETUP
5505 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);
5506         YY_BREAK
5507 case 122:
5508 /* rule 122 can match eol */
5509 YY_RULE_SETUP
5510 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);
5511         YY_BREAK
5512 case 123:
5513 /* rule 123 can match eol */
5514 YY_RULE_SETUP
5515 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);
5516         YY_BREAK
5517 case 124:
5518 /* rule 124 can match eol */
5519 YY_RULE_SETUP
5520 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);
5521         YY_BREAK
5522 case 125:
5523 /* rule 125 can match eol */
5524 YY_RULE_SETUP
5525 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);
5526         YY_BREAK
5527 case 126:
5528 /* rule 126 can match eol */
5529 YY_RULE_SETUP
5530 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);
5531         YY_BREAK
5532 case 127:
5533 YY_RULE_SETUP
5534 {
5535   if (!AX_surfxml_storage_type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
5536   if (!AX_surfxml_storage_type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
5537   LEAVE; STag_surfxml_storage_type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage_type);
5538  }
5539         YY_BREAK
5540 case 128:
5541 YY_RULE_SETUP
5542 {
5543   if (!AX_surfxml_storage_type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
5544   if (!AX_surfxml_storage_type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
5545   LEAVE; STag_surfxml_storage_type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage_type(); popbuffer(); /* attribute */
5546   switch (YY_START) {
5547    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5548    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5549   }
5550  }
5551         YY_BREAK
5552 case 129:
5553 YY_RULE_SETUP
5554 FAIL("Unexpected character `%c' in attribute list of storage_type element.", surf_parse_text[0]);
5555         YY_BREAK
5556 case 130:
5557 YY_RULE_SETUP
5558 FAIL("Bad attribute `%s' in `storage_type' element start tag.",surf_parse_text);
5559         YY_BREAK
5560 case YY_STATE_EOF(AL_surfxml_storage_type):
5561 FAIL("EOF in attribute list of `storage_type' element.");
5562         YY_BREAK
5563
5564 case 131:
5565 /* rule 131 can match eol */
5566 YY_RULE_SETUP
5567 {
5568   LEAVE;
5569   ETag_surfxml_storage_type();
5570   popbuffer(); /* attribute */
5571   switch (YY_START) {
5572    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5573    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5574   }
5575  }
5576         YY_BREAK
5577 case 132:
5578 /* rule 132 can match eol */
5579 YY_RULE_SETUP
5580 FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",surf_parse_text);
5581         YY_BREAK
5582 case 133:
5583 YY_RULE_SETUP
5584 FAIL("Unexpected character `%c': `</storage_type>' expected.",surf_parse_text[0]);
5585         YY_BREAK
5586 case YY_STATE_EOF(E_surfxml_storage_type):
5587 case YY_STATE_EOF(S_surfxml_storage_type_2):
5588 case YY_STATE_EOF(S_surfxml_storage_type):
5589 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage_type>' expected.");
5590         YY_BREAK
5591
5592 case 134:
5593 /* rule 134 can match eol */
5594 YY_RULE_SETUP
5595 FAIL("Starting tag <storage> is not allowed here.");
5596         YY_BREAK
5597 case 135:
5598 /* rule 135 can match eol */
5599 YY_RULE_SETUP
5600 {
5601   AX_surfxml_storage_id = 0;
5602   surfxml_storage_id_isset = 0;
5603   AX_surfxml_storage_typeId = 0;
5604   surfxml_storage_typeId_isset = 0;
5605   ENTER(AL_surfxml_storage); pushbuffer(0);
5606   }
5607         YY_BREAK
5608
5609 case 136:
5610 /* rule 136 can match eol */
5611 YY_RULE_SETUP
5612 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);
5613         YY_BREAK
5614 case 137:
5615 /* rule 137 can match eol */
5616 YY_RULE_SETUP
5617 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);
5618         YY_BREAK
5619 case 138:
5620 /* rule 138 can match eol */
5621 YY_RULE_SETUP
5622 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);
5623         YY_BREAK
5624 case 139:
5625 /* rule 139 can match eol */
5626 YY_RULE_SETUP
5627 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);
5628         YY_BREAK
5629 case 140:
5630 YY_RULE_SETUP
5631 {
5632   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
5633   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
5634   LEAVE; STag_surfxml_storage();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage);
5635  }
5636         YY_BREAK
5637 case 141:
5638 YY_RULE_SETUP
5639 {
5640   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
5641   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
5642   LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */
5643   switch (YY_START) {
5644    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5645    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5646   }
5647  }
5648         YY_BREAK
5649 case 142:
5650 YY_RULE_SETUP
5651 FAIL("Unexpected character `%c' in attribute list of storage element.", surf_parse_text[0]);
5652         YY_BREAK
5653 case 143:
5654 YY_RULE_SETUP
5655 FAIL("Bad attribute `%s' in `storage' element start tag.",surf_parse_text);
5656         YY_BREAK
5657 case YY_STATE_EOF(AL_surfxml_storage):
5658 FAIL("EOF in attribute list of `storage' element.");
5659         YY_BREAK
5660
5661 case 144:
5662 /* rule 144 can match eol */
5663 YY_RULE_SETUP
5664 {
5665   LEAVE;
5666   ETag_surfxml_storage();
5667   popbuffer(); /* attribute */
5668   switch (YY_START) {
5669    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5670    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5671   }
5672  }
5673         YY_BREAK
5674 case 145:
5675 /* rule 145 can match eol */
5676 YY_RULE_SETUP
5677 FAIL("Unexpected end-tag `%s': `</storage>' expected.",surf_parse_text);
5678         YY_BREAK
5679 case 146:
5680 YY_RULE_SETUP
5681 FAIL("Unexpected character `%c': `</storage>' expected.",surf_parse_text[0]);
5682         YY_BREAK
5683 case YY_STATE_EOF(E_surfxml_storage):
5684 case YY_STATE_EOF(S_surfxml_storage):
5685 case YY_STATE_EOF(S_surfxml_storage_2):
5686 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage>' expected.");
5687         YY_BREAK
5688
5689 case 147:
5690 /* rule 147 can match eol */
5691 YY_RULE_SETUP
5692 FAIL("Starting tag <mount> is not allowed here.");
5693         YY_BREAK
5694 case 148:
5695 /* rule 148 can match eol */
5696 YY_RULE_SETUP
5697 {
5698   AX_surfxml_mount_id = 0;
5699   surfxml_mount_id_isset = 0;
5700   AX_surfxml_mount_name = 0;
5701   surfxml_mount_name_isset = 0;
5702   ENTER(AL_surfxml_mount); pushbuffer(0);
5703   }
5704         YY_BREAK
5705
5706 case 149:
5707 /* rule 149 can match eol */
5708 YY_RULE_SETUP
5709 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);
5710         YY_BREAK
5711 case 150:
5712 /* rule 150 can match eol */
5713 YY_RULE_SETUP
5714 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);
5715         YY_BREAK
5716 case 151:
5717 /* rule 151 can match eol */
5718 YY_RULE_SETUP
5719 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);
5720         YY_BREAK
5721 case 152:
5722 /* rule 152 can match eol */
5723 YY_RULE_SETUP
5724 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);
5725         YY_BREAK
5726 case 153:
5727 YY_RULE_SETUP
5728 {
5729   if (!AX_surfxml_mount_id) FAIL("Required attribute `id' not set for `mount' element.");
5730   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
5731   LEAVE; STag_surfxml_mount();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mount);
5732  }
5733         YY_BREAK
5734 case 154:
5735 YY_RULE_SETUP
5736 {
5737   if (!AX_surfxml_mount_id) FAIL("Required attribute `id' not set for `mount' element.");
5738   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
5739   LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */
5740   switch (YY_START) {
5741    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
5742   }
5743  }
5744         YY_BREAK
5745 case 155:
5746 YY_RULE_SETUP
5747 FAIL("Unexpected character `%c' in attribute list of mount element.", surf_parse_text[0]);
5748         YY_BREAK
5749 case 156:
5750 YY_RULE_SETUP
5751 FAIL("Bad attribute `%s' in `mount' element start tag.",surf_parse_text);
5752         YY_BREAK
5753 case YY_STATE_EOF(AL_surfxml_mount):
5754 FAIL("EOF in attribute list of `mount' element.");
5755         YY_BREAK
5756
5757 case 157:
5758 /* rule 157 can match eol */
5759 YY_RULE_SETUP
5760 {
5761   LEAVE;
5762   ETag_surfxml_mount();
5763   popbuffer(); /* attribute */
5764   switch (YY_START) {
5765    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
5766   }
5767  }
5768         YY_BREAK
5769 case 158:
5770 /* rule 158 can match eol */
5771 YY_RULE_SETUP
5772 FAIL("Unexpected end-tag `%s': `</mount>' expected.",surf_parse_text);
5773         YY_BREAK
5774 case 159:
5775 YY_RULE_SETUP
5776 FAIL("Unexpected character `%c': `</mount>' expected.",surf_parse_text[0]);
5777         YY_BREAK
5778 case YY_STATE_EOF(E_surfxml_mount):
5779 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mount>' expected.");
5780         YY_BREAK
5781
5782 case 160:
5783 /* rule 160 can match eol */
5784 YY_RULE_SETUP
5785 FAIL("Starting tag <mstorage> is not allowed here.");
5786         YY_BREAK
5787 case 161:
5788 /* rule 161 can match eol */
5789 YY_RULE_SETUP
5790 {
5791   AX_surfxml_mstorage_typeId = 0;
5792   surfxml_mstorage_typeId_isset = 0;
5793   AX_surfxml_mstorage_name = 0;
5794   surfxml_mstorage_name_isset = 0;
5795   ENTER(AL_surfxml_mstorage); pushbuffer(0);
5796   }
5797         YY_BREAK
5798
5799 case 162:
5800 /* rule 162 can match eol */
5801 YY_RULE_SETUP
5802 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);
5803         YY_BREAK
5804 case 163:
5805 /* rule 163 can match eol */
5806 YY_RULE_SETUP
5807 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);
5808         YY_BREAK
5809 case 164:
5810 /* rule 164 can match eol */
5811 YY_RULE_SETUP
5812 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);
5813         YY_BREAK
5814 case 165:
5815 /* rule 165 can match eol */
5816 YY_RULE_SETUP
5817 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);
5818         YY_BREAK
5819 case 166:
5820 YY_RULE_SETUP
5821 {
5822   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
5823   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
5824   LEAVE; STag_surfxml_mstorage();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mstorage);
5825  }
5826         YY_BREAK
5827 case 167:
5828 YY_RULE_SETUP
5829 {
5830   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
5831   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
5832   LEAVE; STag_surfxml_mstorage(); surfxml_pcdata_ix = 0; ETag_surfxml_mstorage(); popbuffer(); /* attribute */
5833   switch (YY_START) {
5834    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
5835   }
5836  }
5837         YY_BREAK
5838 case 168:
5839 YY_RULE_SETUP
5840 FAIL("Unexpected character `%c' in attribute list of mstorage element.", surf_parse_text[0]);
5841         YY_BREAK
5842 case 169:
5843 YY_RULE_SETUP
5844 FAIL("Bad attribute `%s' in `mstorage' element start tag.",surf_parse_text);
5845         YY_BREAK
5846 case YY_STATE_EOF(AL_surfxml_mstorage):
5847 FAIL("EOF in attribute list of `mstorage' element.");
5848         YY_BREAK
5849
5850 case 170:
5851 /* rule 170 can match eol */
5852 YY_RULE_SETUP
5853 {
5854   LEAVE;
5855   ETag_surfxml_mstorage();
5856   popbuffer(); /* attribute */
5857   switch (YY_START) {
5858    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
5859   }
5860  }
5861         YY_BREAK
5862 case 171:
5863 /* rule 171 can match eol */
5864 YY_RULE_SETUP
5865 FAIL("Unexpected end-tag `%s': `</mstorage>' expected.",surf_parse_text);
5866         YY_BREAK
5867 case 172:
5868 YY_RULE_SETUP
5869 FAIL("Unexpected character `%c': `</mstorage>' expected.",surf_parse_text[0]);
5870         YY_BREAK
5871 case YY_STATE_EOF(E_surfxml_mstorage):
5872 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mstorage>' expected.");
5873         YY_BREAK
5874
5875 case 173:
5876 /* rule 173 can match eol */
5877 YY_RULE_SETUP
5878 FAIL("Starting tag <host> is not allowed here.");
5879         YY_BREAK
5880 case 174:
5881 /* rule 174 can match eol */
5882 YY_RULE_SETUP
5883 {
5884   AX_surfxml_host_id = 0;
5885   surfxml_host_id_isset = 0;
5886   AX_surfxml_host_power = 0;
5887   surfxml_host_power_isset = 0;
5888   AX_surfxml_host_core = 16;
5889   surfxml_host_core_isset = 0;
5890   AX_surfxml_host_availability = 18;
5891   surfxml_host_availability_isset = 0;
5892   AX_surfxml_host_availability_file = 0;
5893   surfxml_host_availability_file_isset = 0;
5894   AX_surfxml_host_state = A_surfxml_host_state_ON;
5895   surfxml_host_state_isset = 0;
5896   AX_surfxml_host_state_file = 0;
5897   surfxml_host_state_file_isset = 0;
5898   AX_surfxml_host_coordinates = 0;
5899   surfxml_host_coordinates_isset = 0;
5900   ENTER(AL_surfxml_host); pushbuffer(0);
5901   }
5902         YY_BREAK
5903
5904 case 175:
5905 /* rule 175 can match eol */
5906 YY_RULE_SETUP
5907 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);
5908         YY_BREAK
5909 case 176:
5910 /* rule 176 can match eol */
5911 YY_RULE_SETUP
5912 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);
5913         YY_BREAK
5914 case 177:
5915 /* rule 177 can match eol */
5916 YY_RULE_SETUP
5917 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);
5918         YY_BREAK
5919 case 178:
5920 /* rule 178 can match eol */
5921 YY_RULE_SETUP
5922 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);
5923         YY_BREAK
5924 case 179:
5925 /* rule 179 can match eol */
5926 YY_RULE_SETUP
5927 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);
5928         YY_BREAK
5929 case 180:
5930 /* rule 180 can match eol */
5931 YY_RULE_SETUP
5932 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);
5933         YY_BREAK
5934 case 181:
5935 /* rule 181 can match eol */
5936 YY_RULE_SETUP
5937 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);
5938         YY_BREAK
5939 case 182:
5940 /* rule 182 can match eol */
5941 YY_RULE_SETUP
5942 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);
5943         YY_BREAK
5944 case 183:
5945 /* rule 183 can match eol */
5946 YY_RULE_SETUP
5947 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);
5948         YY_BREAK
5949 case 184:
5950 /* rule 184 can match eol */
5951 YY_RULE_SETUP
5952 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);
5953         YY_BREAK
5954 case 185:
5955 /* rule 185 can match eol */
5956 case 186:
5957 /* rule 186 can match eol */
5958 YY_RULE_SETUP
5959 A_surfxml_host_state = A_surfxml_host_state_ON;
5960         YY_BREAK
5961 case 187:
5962 /* rule 187 can match eol */
5963 case 188:
5964 /* rule 188 can match eol */
5965 YY_RULE_SETUP
5966 A_surfxml_host_state = A_surfxml_host_state_OFF;
5967         YY_BREAK
5968 case 189:
5969 /* rule 189 can match eol */
5970 YY_RULE_SETUP
5971 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);
5972         YY_BREAK
5973 case 190:
5974 /* rule 190 can match eol */
5975 YY_RULE_SETUP
5976 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);
5977         YY_BREAK
5978 case 191:
5979 /* rule 191 can match eol */
5980 YY_RULE_SETUP
5981 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);
5982         YY_BREAK
5983 case 192:
5984 /* rule 192 can match eol */
5985 YY_RULE_SETUP
5986 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);
5987         YY_BREAK
5988 case 193:
5989 YY_RULE_SETUP
5990 {
5991   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
5992   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
5993   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
5994  }
5995         YY_BREAK
5996 case 194:
5997 YY_RULE_SETUP
5998 {
5999   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
6000   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
6001   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
6002   switch (YY_START) {
6003    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6004   }
6005  }
6006         YY_BREAK
6007 case 195:
6008 YY_RULE_SETUP
6009 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
6010         YY_BREAK
6011 case 196:
6012 YY_RULE_SETUP
6013 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
6014         YY_BREAK
6015 case YY_STATE_EOF(AL_surfxml_host):
6016 FAIL("EOF in attribute list of `host' element.");
6017         YY_BREAK
6018
6019 case 197:
6020 /* rule 197 can match eol */
6021 YY_RULE_SETUP
6022 {
6023   LEAVE;
6024   ETag_surfxml_host();
6025   popbuffer(); /* attribute */
6026   switch (YY_START) {
6027    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6028   }
6029  }
6030         YY_BREAK
6031 case 198:
6032 /* rule 198 can match eol */
6033 YY_RULE_SETUP
6034 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
6035         YY_BREAK
6036 case 199:
6037 YY_RULE_SETUP
6038 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
6039         YY_BREAK
6040 case YY_STATE_EOF(S_surfxml_host):
6041 case YY_STATE_EOF(E_surfxml_host):
6042 case YY_STATE_EOF(S_surfxml_host_2):
6043 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host>' expected.");
6044         YY_BREAK
6045
6046 case 200:
6047 /* rule 200 can match eol */
6048 YY_RULE_SETUP
6049 FAIL("Starting tag <cluster> is not allowed here.");
6050         YY_BREAK
6051 case 201:
6052 /* rule 201 can match eol */
6053 YY_RULE_SETUP
6054 {
6055   AX_surfxml_cluster_id = 0;
6056   surfxml_cluster_id_isset = 0;
6057   AX_surfxml_cluster_prefix = 0;
6058   surfxml_cluster_prefix_isset = 0;
6059   AX_surfxml_cluster_suffix = 0;
6060   surfxml_cluster_suffix_isset = 0;
6061   AX_surfxml_cluster_radical = 0;
6062   surfxml_cluster_radical_isset = 0;
6063   AX_surfxml_cluster_power = 0;
6064   surfxml_cluster_power_isset = 0;
6065   AX_surfxml_cluster_core = 22;
6066   surfxml_cluster_core_isset = 0;
6067   AX_surfxml_cluster_bw = 0;
6068   surfxml_cluster_bw_isset = 0;
6069   AX_surfxml_cluster_lat = 0;
6070   surfxml_cluster_lat_isset = 0;
6071   AX_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FULLDUPLEX;
6072   surfxml_cluster_sharing_policy_isset = 0;
6073   AX_surfxml_cluster_bb_bw = 0;
6074   surfxml_cluster_bb_bw_isset = 0;
6075   AX_surfxml_cluster_bb_lat = 0;
6076   surfxml_cluster_bb_lat_isset = 0;
6077   AX_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_SHARED;
6078   surfxml_cluster_bb_sharing_policy_isset = 0;
6079   AX_surfxml_cluster_availability_file = 0;
6080   surfxml_cluster_availability_file_isset = 0;
6081   AX_surfxml_cluster_state_file = 0;
6082   surfxml_cluster_state_file_isset = 0;
6083   AX_surfxml_cluster_router_id = 0;
6084   surfxml_cluster_router_id_isset = 0;
6085   ENTER(AL_surfxml_cluster); pushbuffer(0);
6086   }
6087         YY_BREAK
6088
6089 case 202:
6090 /* rule 202 can match eol */
6091 YY_RULE_SETUP
6092 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);
6093         YY_BREAK
6094 case 203:
6095 /* rule 203 can match eol */
6096 YY_RULE_SETUP
6097 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);
6098         YY_BREAK
6099 case 204:
6100 /* rule 204 can match eol */
6101 YY_RULE_SETUP
6102 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);
6103         YY_BREAK
6104 case 205:
6105 /* rule 205 can match eol */
6106 YY_RULE_SETUP
6107 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);
6108         YY_BREAK
6109 case 206:
6110 /* rule 206 can match eol */
6111 YY_RULE_SETUP
6112 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);
6113         YY_BREAK
6114 case 207:
6115 /* rule 207 can match eol */
6116 YY_RULE_SETUP
6117 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);
6118         YY_BREAK
6119 case 208:
6120 /* rule 208 can match eol */
6121 YY_RULE_SETUP
6122 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);
6123         YY_BREAK
6124 case 209:
6125 /* rule 209 can match eol */
6126 YY_RULE_SETUP
6127 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);
6128         YY_BREAK
6129 case 210:
6130 /* rule 210 can match eol */
6131 YY_RULE_SETUP
6132 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);
6133         YY_BREAK
6134 case 211:
6135 /* rule 211 can match eol */
6136 YY_RULE_SETUP
6137 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);
6138         YY_BREAK
6139 case 212:
6140 /* rule 212 can match eol */
6141 YY_RULE_SETUP
6142 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);
6143         YY_BREAK
6144 case 213:
6145 /* rule 213 can match eol */
6146 YY_RULE_SETUP
6147 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);
6148         YY_BREAK
6149 case 214:
6150 /* rule 214 can match eol */
6151 YY_RULE_SETUP
6152 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);
6153         YY_BREAK
6154 case 215:
6155 /* rule 215 can match eol */
6156 YY_RULE_SETUP
6157 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);
6158         YY_BREAK
6159 case 216:
6160 /* rule 216 can match eol */
6161 YY_RULE_SETUP
6162 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);
6163         YY_BREAK
6164 case 217:
6165 /* rule 217 can match eol */
6166 YY_RULE_SETUP
6167 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);
6168         YY_BREAK
6169 case 218:
6170 /* rule 218 can match eol */
6171 case 219:
6172 /* rule 219 can match eol */
6173 YY_RULE_SETUP
6174 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_SHARED;
6175         YY_BREAK
6176 case 220:
6177 /* rule 220 can match eol */
6178 case 221:
6179 /* rule 221 can match eol */
6180 YY_RULE_SETUP
6181 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FULLDUPLEX;
6182         YY_BREAK
6183 case 222:
6184 /* rule 222 can match eol */
6185 case 223:
6186 /* rule 223 can match eol */
6187 YY_RULE_SETUP
6188 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FATPIPE;
6189         YY_BREAK
6190 case 224:
6191 /* rule 224 can match eol */
6192 YY_RULE_SETUP
6193 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);
6194         YY_BREAK
6195 case 225:
6196 /* rule 225 can match eol */
6197 YY_RULE_SETUP
6198 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);
6199         YY_BREAK
6200 case 226:
6201 /* rule 226 can match eol */
6202 YY_RULE_SETUP
6203 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);
6204         YY_BREAK
6205 case 227:
6206 /* rule 227 can match eol */
6207 YY_RULE_SETUP
6208 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);
6209         YY_BREAK
6210 case 228:
6211 /* rule 228 can match eol */
6212 case 229:
6213 /* rule 229 can match eol */
6214 YY_RULE_SETUP
6215 A_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_SHARED;
6216         YY_BREAK
6217 case 230:
6218 /* rule 230 can match eol */
6219 case 231:
6220 /* rule 231 can match eol */
6221 YY_RULE_SETUP
6222 A_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_FATPIPE;
6223         YY_BREAK
6224 case 232:
6225 /* rule 232 can match eol */
6226 YY_RULE_SETUP
6227 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);
6228         YY_BREAK
6229 case 233:
6230 /* rule 233 can match eol */
6231 YY_RULE_SETUP
6232 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);
6233         YY_BREAK
6234 case 234:
6235 /* rule 234 can match eol */
6236 YY_RULE_SETUP
6237 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);
6238         YY_BREAK
6239 case 235:
6240 /* rule 235 can match eol */
6241 YY_RULE_SETUP
6242 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);
6243         YY_BREAK
6244 case 236:
6245 /* rule 236 can match eol */
6246 YY_RULE_SETUP
6247 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);
6248         YY_BREAK
6249 case 237:
6250 /* rule 237 can match eol */
6251 YY_RULE_SETUP
6252 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);
6253         YY_BREAK
6254 case 238:
6255 YY_RULE_SETUP
6256 {
6257   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
6258   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
6259   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
6260   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
6261   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
6262   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
6263   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
6264   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cluster);
6265  }
6266         YY_BREAK
6267 case 239:
6268 YY_RULE_SETUP
6269 {
6270   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
6271   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
6272   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
6273   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
6274   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
6275   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
6276   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
6277   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
6278   switch (YY_START) {
6279    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6280    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;
6281    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6282   }
6283  }
6284         YY_BREAK
6285 case 240:
6286 YY_RULE_SETUP
6287 FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
6288         YY_BREAK
6289 case 241:
6290 YY_RULE_SETUP
6291 FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
6292         YY_BREAK
6293 case YY_STATE_EOF(AL_surfxml_cluster):
6294 FAIL("EOF in attribute list of `cluster' element.");
6295         YY_BREAK
6296
6297 case 242:
6298 /* rule 242 can match eol */
6299 YY_RULE_SETUP
6300 {
6301   LEAVE;
6302   ETag_surfxml_cluster();
6303   popbuffer(); /* attribute */
6304   switch (YY_START) {
6305    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6306    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;
6307    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6308   }
6309  }
6310         YY_BREAK
6311 case 243:
6312 /* rule 243 can match eol */
6313 YY_RULE_SETUP
6314 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
6315         YY_BREAK
6316 case 244:
6317 YY_RULE_SETUP
6318 FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
6319         YY_BREAK
6320 case YY_STATE_EOF(E_surfxml_cluster):
6321 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cluster>' expected.");
6322         YY_BREAK
6323
6324 case 245:
6325 /* rule 245 can match eol */
6326 YY_RULE_SETUP
6327 FAIL("Starting tag <peer> is not allowed here.");
6328         YY_BREAK
6329 case 246:
6330 /* rule 246 can match eol */
6331 YY_RULE_SETUP
6332 {
6333   AX_surfxml_peer_id = 0;
6334   surfxml_peer_id_isset = 0;
6335   AX_surfxml_peer_power = 0;
6336   surfxml_peer_power_isset = 0;
6337   AX_surfxml_peer_bw_in = 0;
6338   surfxml_peer_bw_in_isset = 0;
6339   AX_surfxml_peer_bw_out = 0;
6340   surfxml_peer_bw_out_isset = 0;
6341   AX_surfxml_peer_lat = 0;
6342   surfxml_peer_lat_isset = 0;
6343   AX_surfxml_peer_coordinates = 0;
6344   surfxml_peer_coordinates_isset = 0;
6345   AX_surfxml_peer_availability_file = 0;
6346   surfxml_peer_availability_file_isset = 0;
6347   AX_surfxml_peer_state_file = 0;
6348   surfxml_peer_state_file_isset = 0;
6349   ENTER(AL_surfxml_peer); pushbuffer(0);
6350   }
6351         YY_BREAK
6352
6353 case 247:
6354 /* rule 247 can match eol */
6355 YY_RULE_SETUP
6356 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);
6357         YY_BREAK
6358 case 248:
6359 /* rule 248 can match eol */
6360 YY_RULE_SETUP
6361 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);
6362         YY_BREAK
6363 case 249:
6364 /* rule 249 can match eol */
6365 YY_RULE_SETUP
6366 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);
6367         YY_BREAK
6368 case 250:
6369 /* rule 250 can match eol */
6370 YY_RULE_SETUP
6371 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);
6372         YY_BREAK
6373 case 251:
6374 /* rule 251 can match eol */
6375 YY_RULE_SETUP
6376 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);
6377         YY_BREAK
6378 case 252:
6379 /* rule 252 can match eol */
6380 YY_RULE_SETUP
6381 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);
6382         YY_BREAK
6383 case 253:
6384 /* rule 253 can match eol */
6385 YY_RULE_SETUP
6386 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);
6387         YY_BREAK
6388 case 254:
6389 /* rule 254 can match eol */
6390 YY_RULE_SETUP
6391 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);
6392         YY_BREAK
6393 case 255:
6394 /* rule 255 can match eol */
6395 YY_RULE_SETUP
6396 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);
6397         YY_BREAK
6398 case 256:
6399 /* rule 256 can match eol */
6400 YY_RULE_SETUP
6401 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);
6402         YY_BREAK
6403 case 257:
6404 /* rule 257 can match eol */
6405 YY_RULE_SETUP
6406 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);
6407         YY_BREAK
6408 case 258:
6409 /* rule 258 can match eol */
6410 YY_RULE_SETUP
6411 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);
6412         YY_BREAK
6413 case 259:
6414 /* rule 259 can match eol */
6415 YY_RULE_SETUP
6416 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);
6417         YY_BREAK
6418 case 260:
6419 /* rule 260 can match eol */
6420 YY_RULE_SETUP
6421 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);
6422         YY_BREAK
6423 case 261:
6424 /* rule 261 can match eol */
6425 YY_RULE_SETUP
6426 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);
6427         YY_BREAK
6428 case 262:
6429 /* rule 262 can match eol */
6430 YY_RULE_SETUP
6431 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);
6432         YY_BREAK
6433 case 263:
6434 YY_RULE_SETUP
6435 {
6436   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
6437   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
6438   if (!AX_surfxml_peer_bw_in) FAIL("Required attribute `bw_in' not set for `peer' element.");
6439   if (!AX_surfxml_peer_bw_out) FAIL("Required attribute `bw_out' not set for `peer' element.");
6440   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
6441   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
6442  }
6443         YY_BREAK
6444 case 264:
6445 YY_RULE_SETUP
6446 {
6447   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
6448   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
6449   if (!AX_surfxml_peer_bw_in) FAIL("Required attribute `bw_in' not set for `peer' element.");
6450   if (!AX_surfxml_peer_bw_out) FAIL("Required attribute `bw_out' not set for `peer' element.");
6451   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
6452   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
6453   switch (YY_START) {
6454    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6455    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;
6456    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6457   }
6458  }
6459         YY_BREAK
6460 case 265:
6461 YY_RULE_SETUP
6462 FAIL("Unexpected character `%c' in attribute list of peer element.", surf_parse_text[0]);
6463         YY_BREAK
6464 case 266:
6465 YY_RULE_SETUP
6466 FAIL("Bad attribute `%s' in `peer' element start tag.",surf_parse_text);
6467         YY_BREAK
6468 case YY_STATE_EOF(AL_surfxml_peer):
6469 FAIL("EOF in attribute list of `peer' element.");
6470         YY_BREAK
6471
6472 case 267:
6473 /* rule 267 can match eol */
6474 YY_RULE_SETUP
6475 {
6476   LEAVE;
6477   ETag_surfxml_peer();
6478   popbuffer(); /* attribute */
6479   switch (YY_START) {
6480    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6481    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;
6482    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6483   }
6484  }
6485         YY_BREAK
6486 case 268:
6487 /* rule 268 can match eol */
6488 YY_RULE_SETUP
6489 FAIL("Unexpected end-tag `%s': `</peer>' expected.",surf_parse_text);
6490         YY_BREAK
6491 case 269:
6492 YY_RULE_SETUP
6493 FAIL("Unexpected character `%c': `</peer>' expected.",surf_parse_text[0]);
6494         YY_BREAK
6495 case YY_STATE_EOF(E_surfxml_peer):
6496 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</peer>' expected.");
6497         YY_BREAK
6498
6499 case 270:
6500 /* rule 270 can match eol */
6501 YY_RULE_SETUP
6502 FAIL("Starting tag <router> is not allowed here.");
6503         YY_BREAK
6504 case 271:
6505 /* rule 271 can match eol */
6506 YY_RULE_SETUP
6507 {
6508   AX_surfxml_router_id = 0;
6509   surfxml_router_id_isset = 0;
6510   AX_surfxml_router_coordinates = 0;
6511   surfxml_router_coordinates_isset = 0;
6512   ENTER(AL_surfxml_router); pushbuffer(0);
6513   }
6514         YY_BREAK
6515
6516 case 272:
6517 /* rule 272 can match eol */
6518 YY_RULE_SETUP
6519 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);
6520         YY_BREAK
6521 case 273:
6522 /* rule 273 can match eol */
6523 YY_RULE_SETUP
6524 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);
6525         YY_BREAK
6526 case 274:
6527 /* rule 274 can match eol */
6528 YY_RULE_SETUP
6529 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);
6530         YY_BREAK
6531 case 275:
6532 /* rule 275 can match eol */
6533 YY_RULE_SETUP
6534 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);
6535         YY_BREAK
6536 case 276:
6537 YY_RULE_SETUP
6538 {
6539   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
6540   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
6541  }
6542         YY_BREAK
6543 case 277:
6544 YY_RULE_SETUP
6545 {
6546   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
6547   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
6548   switch (YY_START) {
6549    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6550   }
6551  }
6552         YY_BREAK
6553 case 278:
6554 YY_RULE_SETUP
6555 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
6556         YY_BREAK
6557 case 279:
6558 YY_RULE_SETUP
6559 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
6560         YY_BREAK
6561 case YY_STATE_EOF(AL_surfxml_router):
6562 FAIL("EOF in attribute list of `router' element.");
6563         YY_BREAK
6564
6565 case 280:
6566 /* rule 280 can match eol */
6567 YY_RULE_SETUP
6568 {
6569   LEAVE;
6570   ETag_surfxml_router();
6571   popbuffer(); /* attribute */
6572   switch (YY_START) {
6573    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6574   }
6575  }
6576         YY_BREAK
6577 case 281:
6578 /* rule 281 can match eol */
6579 YY_RULE_SETUP
6580 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
6581         YY_BREAK
6582 case 282:
6583 YY_RULE_SETUP
6584 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
6585         YY_BREAK
6586 case YY_STATE_EOF(E_surfxml_router):
6587 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</router>' expected.");
6588         YY_BREAK
6589
6590 case 283:
6591 /* rule 283 can match eol */
6592 YY_RULE_SETUP
6593 FAIL("Starting tag <link> is not allowed here.");
6594         YY_BREAK
6595 case 284:
6596 /* rule 284 can match eol */
6597 YY_RULE_SETUP
6598 {
6599   AX_surfxml_link_id = 0;
6600   surfxml_link_id_isset = 0;
6601   AX_surfxml_link_bandwidth = 0;
6602   surfxml_link_bandwidth_isset = 0;
6603   AX_surfxml_link_bandwidth_file = 0;
6604   surfxml_link_bandwidth_file_isset = 0;
6605   AX_surfxml_link_latency = 24;
6606   surfxml_link_latency_isset = 0;
6607   AX_surfxml_link_latency_file = 0;
6608   surfxml_link_latency_file_isset = 0;
6609   AX_surfxml_link_state = A_surfxml_link_state_ON;
6610   surfxml_link_state_isset = 0;
6611   AX_surfxml_link_state_file = 0;
6612   surfxml_link_state_file_isset = 0;
6613   AX_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
6614   surfxml_link_sharing_policy_isset = 0;
6615   ENTER(AL_surfxml_link); pushbuffer(0);
6616   }
6617         YY_BREAK
6618
6619 case 285:
6620 /* rule 285 can match eol */
6621 YY_RULE_SETUP
6622 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);
6623         YY_BREAK
6624 case 286:
6625 /* rule 286 can match eol */
6626 YY_RULE_SETUP
6627 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);
6628         YY_BREAK
6629 case 287:
6630 /* rule 287 can match eol */
6631 YY_RULE_SETUP
6632 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);
6633         YY_BREAK
6634 case 288:
6635 /* rule 288 can match eol */
6636 YY_RULE_SETUP
6637 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);
6638         YY_BREAK
6639 case 289:
6640 /* rule 289 can match eol */
6641 YY_RULE_SETUP
6642 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);
6643         YY_BREAK
6644 case 290:
6645 /* rule 290 can match eol */
6646 YY_RULE_SETUP
6647 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);
6648         YY_BREAK
6649 case 291:
6650 /* rule 291 can match eol */
6651 YY_RULE_SETUP
6652 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);
6653         YY_BREAK
6654 case 292:
6655 /* rule 292 can match eol */
6656 YY_RULE_SETUP
6657 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);
6658         YY_BREAK
6659 case 293:
6660 /* rule 293 can match eol */
6661 YY_RULE_SETUP
6662 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);
6663         YY_BREAK
6664 case 294:
6665 /* rule 294 can match eol */
6666 YY_RULE_SETUP
6667 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);
6668         YY_BREAK
6669 case 295:
6670 /* rule 295 can match eol */
6671 case 296:
6672 /* rule 296 can match eol */
6673 YY_RULE_SETUP
6674 A_surfxml_link_state = A_surfxml_link_state_ON;
6675         YY_BREAK
6676 case 297:
6677 /* rule 297 can match eol */
6678 case 298:
6679 /* rule 298 can match eol */
6680 YY_RULE_SETUP
6681 A_surfxml_link_state = A_surfxml_link_state_OFF;
6682         YY_BREAK
6683 case 299:
6684 /* rule 299 can match eol */
6685 YY_RULE_SETUP
6686 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);
6687         YY_BREAK
6688 case 300:
6689 /* rule 300 can match eol */
6690 YY_RULE_SETUP
6691 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);
6692         YY_BREAK
6693 case 301:
6694 /* rule 301 can match eol */
6695 case 302:
6696 /* rule 302 can match eol */
6697 YY_RULE_SETUP
6698 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
6699         YY_BREAK
6700 case 303:
6701 /* rule 303 can match eol */
6702 case 304:
6703 /* rule 304 can match eol */
6704 YY_RULE_SETUP
6705 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FATPIPE;
6706         YY_BREAK
6707 case 305:
6708 /* rule 305 can match eol */
6709 case 306:
6710 /* rule 306 can match eol */
6711 YY_RULE_SETUP
6712 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FULLDUPLEX;
6713         YY_BREAK
6714 case 307:
6715 YY_RULE_SETUP
6716 {
6717   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
6718   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
6719   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
6720  }
6721         YY_BREAK
6722 case 308:
6723 YY_RULE_SETUP
6724 {
6725   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
6726   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
6727   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
6728   switch (YY_START) {
6729    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6730    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6731   }
6732  }
6733         YY_BREAK
6734 case 309:
6735 YY_RULE_SETUP
6736 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
6737         YY_BREAK
6738 case 310:
6739 YY_RULE_SETUP
6740 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
6741         YY_BREAK
6742 case YY_STATE_EOF(AL_surfxml_link):
6743 FAIL("EOF in attribute list of `link' element.");
6744         YY_BREAK
6745
6746 case 311:
6747 /* rule 311 can match eol */
6748 YY_RULE_SETUP
6749 {
6750   LEAVE;
6751   ETag_surfxml_link();
6752   popbuffer(); /* attribute */
6753   switch (YY_START) {
6754    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6755    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6756   }
6757  }
6758         YY_BREAK
6759 case 312:
6760 /* rule 312 can match eol */
6761 YY_RULE_SETUP
6762 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
6763         YY_BREAK
6764 case 313:
6765 YY_RULE_SETUP
6766 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
6767         YY_BREAK
6768 case YY_STATE_EOF(E_surfxml_link):
6769 case YY_STATE_EOF(S_surfxml_link_2):
6770 case YY_STATE_EOF(S_surfxml_link):
6771 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link>' expected.");
6772         YY_BREAK
6773
6774 case 314:
6775 /* rule 314 can match eol */
6776 YY_RULE_SETUP
6777 FAIL("Starting tag <route> is not allowed here.");
6778         YY_BREAK
6779 case 315:
6780 /* rule 315 can match eol */
6781 YY_RULE_SETUP
6782 {
6783   AX_surfxml_route_src = 0;
6784   surfxml_route_src_isset = 0;
6785   AX_surfxml_route_dst = 0;
6786   surfxml_route_dst_isset = 0;
6787   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
6788   surfxml_route_symmetrical_isset = 0;
6789   ENTER(AL_surfxml_route); pushbuffer(0);
6790   }
6791         YY_BREAK
6792
6793 case 316:
6794 /* rule 316 can match eol */
6795 YY_RULE_SETUP
6796 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);
6797         YY_BREAK
6798 case 317:
6799 /* rule 317 can match eol */
6800 YY_RULE_SETUP
6801 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);
6802         YY_BREAK
6803 case 318:
6804 /* rule 318 can match eol */
6805 YY_RULE_SETUP
6806 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);
6807         YY_BREAK
6808 case 319:
6809 /* rule 319 can match eol */
6810 YY_RULE_SETUP
6811 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);
6812         YY_BREAK
6813 case 320:
6814 /* rule 320 can match eol */
6815 case 321:
6816 /* rule 321 can match eol */
6817 YY_RULE_SETUP
6818 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
6819         YY_BREAK
6820 case 322:
6821 /* rule 322 can match eol */
6822 case 323:
6823 /* rule 323 can match eol */
6824 YY_RULE_SETUP
6825 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
6826         YY_BREAK
6827 case 324:
6828 YY_RULE_SETUP
6829 {
6830   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
6831   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
6832   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
6833  }
6834         YY_BREAK
6835 case 325:
6836 YY_RULE_SETUP
6837 {
6838   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
6839   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
6840   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
6841   switch (YY_START) {
6842    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;
6843   }
6844  }
6845         YY_BREAK
6846 case 326:
6847 YY_RULE_SETUP
6848 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
6849         YY_BREAK
6850 case 327:
6851 YY_RULE_SETUP
6852 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
6853         YY_BREAK
6854 case YY_STATE_EOF(AL_surfxml_route):
6855 FAIL("EOF in attribute list of `route' element.");
6856         YY_BREAK
6857
6858 case 328:
6859 /* rule 328 can match eol */
6860 YY_RULE_SETUP
6861 {
6862   LEAVE;
6863   ETag_surfxml_route();
6864   popbuffer(); /* attribute */
6865   switch (YY_START) {
6866    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;
6867   }
6868  }
6869         YY_BREAK
6870 case 329:
6871 /* rule 329 can match eol */
6872 YY_RULE_SETUP
6873 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
6874         YY_BREAK
6875 case 330:
6876 YY_RULE_SETUP
6877 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
6878         YY_BREAK
6879 case YY_STATE_EOF(S_surfxml_route):
6880 case YY_STATE_EOF(S_surfxml_route_2):
6881 case YY_STATE_EOF(E_surfxml_route):
6882 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</route>' expected.");
6883         YY_BREAK
6884
6885 case 331:
6886 /* rule 331 can match eol */
6887 YY_RULE_SETUP
6888 FAIL("Starting tag <ASroute> is not allowed here.");
6889         YY_BREAK
6890 case 332:
6891 /* rule 332 can match eol */
6892 YY_RULE_SETUP
6893 {
6894   AX_surfxml_ASroute_src = 0;
6895   surfxml_ASroute_src_isset = 0;
6896   AX_surfxml_ASroute_dst = 0;
6897   surfxml_ASroute_dst_isset = 0;
6898   AX_surfxml_ASroute_gw_src = 0;
6899   surfxml_ASroute_gw_src_isset = 0;
6900   AX_surfxml_ASroute_gw_dst = 0;
6901   surfxml_ASroute_gw_dst_isset = 0;
6902   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
6903   surfxml_ASroute_symmetrical_isset = 0;
6904   ENTER(AL_surfxml_ASroute); pushbuffer(0);
6905   }
6906         YY_BREAK
6907
6908 case 333:
6909 /* rule 333 can match eol */
6910 YY_RULE_SETUP
6911 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);
6912         YY_BREAK
6913 case 334:
6914 /* rule 334 can match eol */
6915 YY_RULE_SETUP
6916 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);
6917         YY_BREAK
6918 case 335:
6919 /* rule 335 can match eol */
6920 YY_RULE_SETUP
6921 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);
6922         YY_BREAK
6923 case 336:
6924 /* rule 336 can match eol */
6925 YY_RULE_SETUP
6926 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);
6927         YY_BREAK
6928 case 337:
6929 /* rule 337 can match eol */
6930 YY_RULE_SETUP
6931 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);
6932         YY_BREAK
6933 case 338:
6934 /* rule 338 can match eol */
6935 YY_RULE_SETUP
6936 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);
6937         YY_BREAK
6938 case 339:
6939 /* rule 339 can match eol */
6940 YY_RULE_SETUP
6941 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);
6942         YY_BREAK
6943 case 340:
6944 /* rule 340 can match eol */
6945 YY_RULE_SETUP
6946 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);
6947         YY_BREAK
6948 case 341:
6949 /* rule 341 can match eol */
6950 case 342:
6951 /* rule 342 can match eol */
6952 YY_RULE_SETUP
6953 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
6954         YY_BREAK
6955 case 343:
6956 /* rule 343 can match eol */
6957 case 344:
6958 /* rule 344 can match eol */
6959 YY_RULE_SETUP
6960 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
6961         YY_BREAK
6962 case 345:
6963 YY_RULE_SETUP
6964 {
6965   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
6966   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
6967   if (!AX_surfxml_ASroute_gw_src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
6968   if (!AX_surfxml_ASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
6969   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
6970  }
6971         YY_BREAK
6972 case 346:
6973 YY_RULE_SETUP
6974 {
6975   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
6976   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
6977   if (!AX_surfxml_ASroute_gw_src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
6978   if (!AX_surfxml_ASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
6979   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
6980   switch (YY_START) {
6981    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;
6982   }
6983  }
6984         YY_BREAK
6985 case 347:
6986 YY_RULE_SETUP
6987 FAIL("Unexpected character `%c' in attribute list of ASroute element.", surf_parse_text[0]);
6988         YY_BREAK
6989 case 348:
6990 YY_RULE_SETUP
6991 FAIL("Bad attribute `%s' in `ASroute' element start tag.",surf_parse_text);
6992         YY_BREAK
6993 case YY_STATE_EOF(AL_surfxml_ASroute):
6994 FAIL("EOF in attribute list of `ASroute' element.");
6995         YY_BREAK
6996
6997 case 349:
6998 /* rule 349 can match eol */
6999 YY_RULE_SETUP
7000 {
7001   LEAVE;
7002   ETag_surfxml_ASroute();
7003   popbuffer(); /* attribute */
7004   switch (YY_START) {
7005    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;
7006   }
7007  }
7008         YY_BREAK
7009 case 350:
7010 /* rule 350 can match eol */
7011 YY_RULE_SETUP
7012 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",surf_parse_text);
7013         YY_BREAK
7014 case 351:
7015 YY_RULE_SETUP
7016 FAIL("Unexpected character `%c': `</ASroute>' expected.",surf_parse_text[0]);
7017         YY_BREAK
7018 case YY_STATE_EOF(E_surfxml_ASroute):
7019 case YY_STATE_EOF(S_surfxml_ASroute):
7020 case YY_STATE_EOF(S_surfxml_ASroute_2):
7021 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</ASroute>' expected.");
7022         YY_BREAK
7023
7024 case 352:
7025 /* rule 352 can match eol */
7026 YY_RULE_SETUP
7027 FAIL("Starting tag <link_ctn> is not allowed here.");
7028         YY_BREAK
7029 case 353:
7030 /* rule 353 can match eol */
7031 YY_RULE_SETUP
7032 {
7033   AX_surfxml_link_ctn_id = 0;
7034   surfxml_link_ctn_id_isset = 0;
7035   AX_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_NONE;
7036   surfxml_link_ctn_direction_isset = 0;
7037   ENTER(AL_surfxml_link_ctn); pushbuffer(0);
7038   }
7039         YY_BREAK
7040
7041 case 354:
7042 /* rule 354 can match eol */
7043 YY_RULE_SETUP
7044 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);
7045         YY_BREAK
7046 case 355:
7047 /* rule 355 can match eol */
7048 YY_RULE_SETUP
7049 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);
7050         YY_BREAK
7051 case 356:
7052 /* rule 356 can match eol */
7053 case 357:
7054 /* rule 357 can match eol */
7055 YY_RULE_SETUP
7056 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_UP;
7057         YY_BREAK
7058 case 358:
7059 /* rule 358 can match eol */
7060 case 359:
7061 /* rule 359 can match eol */
7062 YY_RULE_SETUP
7063 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_DOWN;
7064         YY_BREAK
7065 case 360:
7066 /* rule 360 can match eol */
7067 case 361:
7068 /* rule 361 can match eol */
7069 YY_RULE_SETUP
7070 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_NONE;
7071         YY_BREAK
7072 case 362:
7073 YY_RULE_SETUP
7074 {
7075   if (!AX_surfxml_link_ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
7076   LEAVE; STag_surfxml_link_ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link_ctn);
7077  }
7078         YY_BREAK
7079 case 363:
7080 YY_RULE_SETUP
7081 {
7082   if (!AX_surfxml_link_ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
7083   LEAVE; STag_surfxml_link_ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link_ctn(); popbuffer(); /* attribute */
7084   switch (YY_START) {
7085    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
7086    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
7087    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
7088   }
7089  }
7090         YY_BREAK
7091 case 364:
7092 YY_RULE_SETUP
7093 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", surf_parse_text[0]);
7094         YY_BREAK
7095 case 365:
7096 YY_RULE_SETUP
7097 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",surf_parse_text);
7098         YY_BREAK
7099 case YY_STATE_EOF(AL_surfxml_link_ctn):
7100 FAIL("EOF in attribute list of `link_ctn' element.");
7101         YY_BREAK
7102
7103 case 366:
7104 /* rule 366 can match eol */
7105 YY_RULE_SETUP
7106 {
7107   LEAVE;
7108   ETag_surfxml_link_ctn();
7109   popbuffer(); /* attribute */
7110   switch (YY_START) {
7111    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
7112    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
7113    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
7114   }
7115  }
7116         YY_BREAK
7117 case 367:
7118 /* rule 367 can match eol */
7119 YY_RULE_SETUP
7120 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",surf_parse_text);
7121         YY_BREAK
7122 case 368:
7123 YY_RULE_SETUP
7124 FAIL("Unexpected character `%c': `</link_ctn>' expected.",surf_parse_text[0]);
7125         YY_BREAK
7126 case YY_STATE_EOF(E_surfxml_link_ctn):
7127 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link_ctn>' expected.");
7128         YY_BREAK
7129
7130 case 369:
7131 /* rule 369 can match eol */
7132 YY_RULE_SETUP
7133 FAIL("Starting tag <bypassRoute> is not allowed here.");
7134         YY_BREAK
7135 case 370:
7136 /* rule 370 can match eol */
7137 YY_RULE_SETUP
7138 {
7139   AX_surfxml_bypassRoute_src = 0;
7140   surfxml_bypassRoute_src_isset = 0;
7141   AX_surfxml_bypassRoute_dst = 0;
7142   surfxml_bypassRoute_dst_isset = 0;
7143   AX_surfxml_bypassRoute_gw_src = 0;
7144   surfxml_bypassRoute_gw_src_isset = 0;
7145   AX_surfxml_bypassRoute_gw_dst = 0;
7146   surfxml_bypassRoute_gw_dst_isset = 0;
7147   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
7148   }
7149         YY_BREAK
7150
7151 case 371:
7152 /* rule 371 can match eol */
7153 YY_RULE_SETUP
7154 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);
7155         YY_BREAK
7156 case 372:
7157 /* rule 372 can match eol */
7158 YY_RULE_SETUP
7159 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);
7160         YY_BREAK
7161 case 373:
7162 /* rule 373 can match eol */
7163 YY_RULE_SETUP
7164 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);
7165         YY_BREAK
7166 case 374:
7167 /* rule 374 can match eol */
7168 YY_RULE_SETUP
7169 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);
7170         YY_BREAK
7171 case 375:
7172 /* rule 375 can match eol */
7173 YY_RULE_SETUP
7174 if (surfxml_bypassRoute_gw_src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_bypassRoute>");} surfxml_bypassRoute_gw_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_gw_src);
7175         YY_BREAK
7176 case 376:
7177 /* rule 376 can match eol */
7178 YY_RULE_SETUP
7179 if (surfxml_bypassRoute_gw_src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_bypassRoute>");}  surfxml_bypassRoute_gw_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_gw_src);
7180         YY_BREAK
7181 case 377:
7182 /* rule 377 can match eol */
7183 YY_RULE_SETUP
7184 if (surfxml_bypassRoute_gw_dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_bypassRoute>");} surfxml_bypassRoute_gw_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_gw_dst);
7185         YY_BREAK
7186 case 378:
7187 /* rule 378 can match eol */
7188 YY_RULE_SETUP
7189 if (surfxml_bypassRoute_gw_dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_bypassRoute>");}  surfxml_bypassRoute_gw_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_gw_dst);
7190         YY_BREAK
7191 case 379:
7192 YY_RULE_SETUP
7193 {
7194   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
7195   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
7196   if (!AX_surfxml_bypassRoute_gw_src) FAIL("Required attribute `gw_src' not set for `bypassRoute' element.");
7197   if (!AX_surfxml_bypassRoute_gw_dst) FAIL("Required attribute `gw_dst' not set for `bypassRoute' element.");
7198   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
7199  }
7200         YY_BREAK
7201 case 380:
7202 YY_RULE_SETUP
7203 {
7204   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
7205   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
7206   if (!AX_surfxml_bypassRoute_gw_src) FAIL("Required attribute `gw_src' not set for `bypassRoute' element.");
7207   if (!AX_surfxml_bypassRoute_gw_dst) FAIL("Required attribute `gw_dst' not set for `bypassRoute' element.");
7208   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
7209   switch (YY_START) {
7210    case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_8); break;
7211   }
7212  }
7213         YY_BREAK
7214 case 381:
7215 YY_RULE_SETUP
7216 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", surf_parse_text[0]);
7217         YY_BREAK
7218 case 382:
7219 YY_RULE_SETUP
7220 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",surf_parse_text);
7221         YY_BREAK
7222 case YY_STATE_EOF(AL_surfxml_bypassRoute):
7223 FAIL("EOF in attribute list of `bypassRoute' element.");
7224         YY_BREAK
7225
7226 case 383:
7227 /* rule 383 can match eol */
7228 YY_RULE_SETUP
7229 {
7230   LEAVE;
7231   ETag_surfxml_bypassRoute();
7232   popbuffer(); /* attribute */
7233   switch (YY_START) {
7234    case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_8); break;
7235   }
7236  }
7237         YY_BREAK
7238 case 384:
7239 /* rule 384 can match eol */
7240 YY_RULE_SETUP
7241 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",surf_parse_text);
7242         YY_BREAK
7243 case 385:
7244 YY_RULE_SETUP
7245 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",surf_parse_text[0]);
7246         YY_BREAK
7247 case YY_STATE_EOF(S_surfxml_bypassRoute):
7248 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
7249 case YY_STATE_EOF(E_surfxml_bypassRoute):
7250 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassRoute>' expected.");
7251         YY_BREAK
7252
7253 case 386:
7254 /* rule 386 can match eol */
7255 YY_RULE_SETUP
7256 FAIL("Starting tag <process> is not allowed here.");
7257         YY_BREAK
7258 case 387:
7259 /* rule 387 can match eol */
7260 YY_RULE_SETUP
7261 {
7262   AX_surfxml_process_host = 0;
7263   surfxml_process_host_isset = 0;
7264   AX_surfxml_process_function = 0;
7265   surfxml_process_function_isset = 0;
7266   AX_surfxml_process_start_time = 28;
7267   surfxml_process_start_time_isset = 0;
7268   AX_surfxml_process_kill_time = 33;
7269   surfxml_process_kill_time_isset = 0;
7270   ENTER(AL_surfxml_process); pushbuffer(0);
7271   }
7272         YY_BREAK
7273
7274 case 388:
7275 /* rule 388 can match eol */
7276 YY_RULE_SETUP
7277 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);
7278         YY_BREAK
7279 case 389:
7280 /* rule 389 can match eol */
7281 YY_RULE_SETUP
7282 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);
7283         YY_BREAK
7284 case 390:
7285 /* rule 390 can match eol */
7286 YY_RULE_SETUP
7287 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);
7288         YY_BREAK
7289 case 391:
7290 /* rule 391 can match eol */
7291 YY_RULE_SETUP
7292 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);
7293         YY_BREAK
7294 case 392:
7295 /* rule 392 can match eol */
7296 YY_RULE_SETUP
7297 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);
7298         YY_BREAK
7299 case 393:
7300 /* rule 393 can match eol */
7301 YY_RULE_SETUP
7302 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);
7303         YY_BREAK
7304 case 394:
7305 /* rule 394 can match eol */
7306 YY_RULE_SETUP
7307 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);
7308         YY_BREAK
7309 case 395:
7310 /* rule 395 can match eol */
7311 YY_RULE_SETUP
7312 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);
7313         YY_BREAK
7314 case 396:
7315 YY_RULE_SETUP
7316 {
7317   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
7318   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
7319   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
7320  }
7321         YY_BREAK
7322 case 397:
7323 YY_RULE_SETUP
7324 {
7325   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
7326   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
7327   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
7328   switch (YY_START) {
7329    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;
7330   }
7331  }
7332         YY_BREAK
7333 case 398:
7334 YY_RULE_SETUP
7335 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
7336         YY_BREAK
7337 case 399:
7338 YY_RULE_SETUP
7339 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
7340         YY_BREAK
7341 case YY_STATE_EOF(AL_surfxml_process):
7342 FAIL("EOF in attribute list of `process' element.");
7343         YY_BREAK
7344
7345 case 400:
7346 /* rule 400 can match eol */
7347 YY_RULE_SETUP
7348 {
7349   LEAVE;
7350   ETag_surfxml_process();
7351   popbuffer(); /* attribute */
7352   switch (YY_START) {
7353    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;
7354   }
7355  }
7356         YY_BREAK
7357 case 401:
7358 /* rule 401 can match eol */
7359 YY_RULE_SETUP
7360 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
7361         YY_BREAK
7362 case 402:
7363 YY_RULE_SETUP
7364 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
7365         YY_BREAK
7366 case YY_STATE_EOF(E_surfxml_process):
7367 case YY_STATE_EOF(S_surfxml_process):
7368 case YY_STATE_EOF(S_surfxml_process_2):
7369 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</process>' expected.");
7370         YY_BREAK
7371
7372 case 403:
7373 /* rule 403 can match eol */
7374 YY_RULE_SETUP
7375 FAIL("Starting tag <argument> is not allowed here.");
7376         YY_BREAK
7377 case 404:
7378 /* rule 404 can match eol */
7379 YY_RULE_SETUP
7380 {
7381   AX_surfxml_argument_value = 0;
7382   surfxml_argument_value_isset = 0;
7383   ENTER(AL_surfxml_argument); pushbuffer(0);
7384   }
7385         YY_BREAK
7386
7387 case 405:
7388 /* rule 405 can match eol */
7389 YY_RULE_SETUP
7390 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);
7391         YY_BREAK
7392 case 406:
7393 /* rule 406 can match eol */
7394 YY_RULE_SETUP
7395 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);
7396         YY_BREAK
7397 case 407:
7398 YY_RULE_SETUP
7399 {
7400   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
7401   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
7402  }
7403         YY_BREAK
7404 case 408:
7405 YY_RULE_SETUP
7406 {
7407   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
7408   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
7409   switch (YY_START) {
7410    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
7411   }
7412  }
7413         YY_BREAK
7414 case 409:
7415 YY_RULE_SETUP
7416 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
7417         YY_BREAK
7418 case 410:
7419 YY_RULE_SETUP
7420 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
7421         YY_BREAK
7422 case YY_STATE_EOF(AL_surfxml_argument):
7423 FAIL("EOF in attribute list of `argument' element.");
7424         YY_BREAK
7425
7426 case 411:
7427 /* rule 411 can match eol */
7428 YY_RULE_SETUP
7429 {
7430   LEAVE;
7431   ETag_surfxml_argument();
7432   popbuffer(); /* attribute */
7433   switch (YY_START) {
7434    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
7435   }
7436  }
7437         YY_BREAK
7438 case 412:
7439 /* rule 412 can match eol */
7440 YY_RULE_SETUP
7441 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
7442         YY_BREAK
7443 case 413:
7444 YY_RULE_SETUP
7445 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
7446         YY_BREAK
7447 case YY_STATE_EOF(E_surfxml_argument):
7448 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</argument>' expected.");
7449         YY_BREAK
7450
7451 case 414:
7452 /* rule 414 can match eol */
7453 YY_RULE_SETUP
7454 FAIL("Starting tag <config> is not allowed here.");
7455         YY_BREAK
7456 case 415:
7457 /* rule 415 can match eol */
7458 YY_RULE_SETUP
7459 {
7460   AX_surfxml_config_id = 0;
7461   surfxml_config_id_isset = 0;
7462   ENTER(AL_surfxml_config); pushbuffer(0);
7463   }
7464         YY_BREAK
7465
7466 case 416:
7467 /* rule 416 can match eol */
7468 YY_RULE_SETUP
7469 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);
7470         YY_BREAK
7471 case 417:
7472 /* rule 417 can match eol */
7473 YY_RULE_SETUP
7474 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);
7475         YY_BREAK
7476 case 418:
7477 YY_RULE_SETUP
7478 {
7479   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
7480  }
7481         YY_BREAK
7482 case 419:
7483 YY_RULE_SETUP
7484 {
7485   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
7486   switch (YY_START) {
7487    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
7488   }
7489  }
7490         YY_BREAK
7491 case 420:
7492 YY_RULE_SETUP
7493 FAIL("Unexpected character `%c' in attribute list of config element.", surf_parse_text[0]);
7494         YY_BREAK
7495 case 421:
7496 YY_RULE_SETUP
7497 FAIL("Bad attribute `%s' in `config' element start tag.",surf_parse_text);
7498         YY_BREAK
7499 case YY_STATE_EOF(AL_surfxml_config):
7500 FAIL("EOF in attribute list of `config' element.");
7501         YY_BREAK
7502
7503 case 422:
7504 /* rule 422 can match eol */
7505 YY_RULE_SETUP
7506 {
7507   LEAVE;
7508   ETag_surfxml_config();
7509   popbuffer(); /* attribute */
7510   switch (YY_START) {
7511    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
7512   }
7513  }
7514         YY_BREAK
7515 case 423:
7516 /* rule 423 can match eol */
7517 YY_RULE_SETUP
7518 FAIL("Unexpected end-tag `%s': `</config>' expected.",surf_parse_text);
7519         YY_BREAK
7520 case 424:
7521 YY_RULE_SETUP
7522 FAIL("Unexpected character `%c': `</config>' expected.",surf_parse_text[0]);
7523         YY_BREAK
7524 case YY_STATE_EOF(S_surfxml_config):
7525 case YY_STATE_EOF(S_surfxml_config_2):
7526 case YY_STATE_EOF(E_surfxml_config):
7527 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</config>' expected.");
7528         YY_BREAK
7529
7530 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
7531   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
7532 case 425:
7533 /* rule 425 can match eol */
7534 YY_RULE_SETUP
7535 FAIL("Starting tag <prop> is not allowed here.");
7536         YY_BREAK
7537 case 426:
7538 /* rule 426 can match eol */
7539 YY_RULE_SETUP
7540 {
7541   AX_surfxml_prop_id = 0;
7542   surfxml_prop_id_isset = 0;
7543   AX_surfxml_prop_value = 0;
7544   surfxml_prop_value_isset = 0;
7545   ENTER(AL_surfxml_prop); pushbuffer(0);
7546   }
7547         YY_BREAK
7548
7549 case 427:
7550 /* rule 427 can match eol */
7551 YY_RULE_SETUP
7552 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);
7553         YY_BREAK
7554 case 428:
7555 /* rule 428 can match eol */
7556 YY_RULE_SETUP
7557 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);
7558         YY_BREAK
7559 case 429:
7560 /* rule 429 can match eol */
7561 YY_RULE_SETUP
7562 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);
7563         YY_BREAK
7564 case 430:
7565 /* rule 430 can match eol */
7566 YY_RULE_SETUP
7567 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);
7568         YY_BREAK
7569 case 431:
7570 YY_RULE_SETUP
7571 {
7572   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
7573   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
7574   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
7575  }
7576         YY_BREAK
7577 case 432:
7578 YY_RULE_SETUP
7579 {
7580   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
7581   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
7582   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
7583   switch (YY_START) {
7584    case S_surfxml_random: case S_surfxml_random_2: case S_surfxml_random_1: SET(S_surfxml_random_2); break;
7585    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
7586    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
7587    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
7588    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
7589    case S_surfxml_storage_type_2: case S_surfxml_storage_type: case S_surfxml_storage_type_1: SET(S_surfxml_storage_type_2); break;
7590    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
7591   }
7592  }
7593         YY_BREAK
7594 case 433:
7595 YY_RULE_SETUP
7596 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
7597         YY_BREAK
7598 case 434:
7599 YY_RULE_SETUP
7600 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
7601         YY_BREAK
7602 case YY_STATE_EOF(AL_surfxml_prop):
7603 FAIL("EOF in attribute list of `prop' element.");
7604         YY_BREAK
7605
7606 case 435:
7607 /* rule 435 can match eol */
7608 YY_RULE_SETUP
7609 {
7610   LEAVE;
7611   ETag_surfxml_prop();
7612   popbuffer(); /* attribute */
7613   switch (YY_START) {
7614    case S_surfxml_random: case S_surfxml_random_2: case S_surfxml_random_1: SET(S_surfxml_random_2); break;
7615    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
7616    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
7617    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
7618    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
7619    case S_surfxml_storage_type_2: case S_surfxml_storage_type: case S_surfxml_storage_type_1: SET(S_surfxml_storage_type_2); break;
7620    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
7621   }
7622  }
7623         YY_BREAK
7624 case 436:
7625 /* rule 436 can match eol */
7626 YY_RULE_SETUP
7627 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
7628         YY_BREAK
7629 case 437:
7630 YY_RULE_SETUP
7631 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
7632         YY_BREAK
7633 case YY_STATE_EOF(E_surfxml_prop):
7634 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</prop>' expected.");
7635         YY_BREAK
7636
7637 /* EPILOG: after the root element. */
7638
7639 case 438:
7640 YY_RULE_SETUP
7641 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
7642         YY_BREAK
7643 case YY_STATE_EOF(EPILOG):
7644 SUCCEED;
7645         YY_BREAK
7646
7647 /* CHARACTER DATA. */
7648
7649 /* Non-defined standard entities... */
7650 case 439:
7651 YY_RULE_SETUP
7652 BUFFERPUTC('&');
7653         YY_BREAK
7654 case 440:
7655 YY_RULE_SETUP
7656 BUFFERPUTC('<');
7657         YY_BREAK
7658 case 441:
7659 YY_RULE_SETUP
7660 BUFFERPUTC('>');
7661         YY_BREAK
7662 case 442:
7663 YY_RULE_SETUP
7664 BUFFERPUTC('\'');
7665         YY_BREAK
7666 case 443:
7667 YY_RULE_SETUP
7668 BUFFERPUTC('"');
7669         YY_BREAK
7670 /* Character entities. */
7671 case 444:
7672 YY_RULE_SETUP
7673 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
7674         YY_BREAK
7675 case 445:
7676 YY_RULE_SETUP
7677 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
7678         YY_BREAK
7679
7680 case 446:
7681 /* rule 446 can match eol */
7682 case 447:
7683 /* rule 447 can match eol */
7684 case 448:
7685 /* rule 448 can match eol */
7686 case 449:
7687 /* rule 449 can match eol */
7688 YY_RULE_SETUP
7689 BUFFERPUTC('\n');
7690         YY_BREAK
7691
7692 case 450:
7693 YY_RULE_SETUP
7694 ENTER(CDATA);
7695         YY_BREAK
7696 case 451:
7697 YY_RULE_SETUP
7698 FAIL("Unexpected `]""]>' in character data.");
7699         YY_BREAK
7700
7701 case 452:
7702 YY_RULE_SETUP
7703 BUFFERDONE; LEAVE;
7704         YY_BREAK
7705 case YY_STATE_EOF(VALUE1):
7706 FAIL("EOF in literal (\"'\" expected).");
7707         YY_BREAK
7708
7709 case 453:
7710 YY_RULE_SETUP
7711 BUFFERDONE; LEAVE;
7712         YY_BREAK
7713 case YY_STATE_EOF(VALUE2):
7714 FAIL("EOF in literal (`\"' expected).");
7715         YY_BREAK
7716
7717 case 454:
7718 /* rule 454 can match eol */
7719 YY_RULE_SETUP
7720 BUFFERPUTC(surf_parse_text[0]);
7721         YY_BREAK
7722 case 455:
7723 YY_RULE_SETUP
7724 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
7725         YY_BREAK
7726
7727 case 456:
7728 YY_RULE_SETUP
7729 LEAVE;
7730         YY_BREAK
7731 /* "]""]"               BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
7732 case 457:
7733 YY_RULE_SETUP
7734 BUFFERPUTC(surf_parse_text[0]);
7735         YY_BREAK
7736 case YY_STATE_EOF(CDATA):
7737 FAIL("EOF in CDATA section.");
7738         YY_BREAK
7739
7740 /* Impossible rules to avoid warnings from flex(1). */
7741 /* Ideally, this should be replaced by code in flexml.pl that
7742     generates just the states not covered by other rules. */
7743
7744 case 458:
7745 /* rule 458 can match eol */
7746 YY_RULE_SETUP
7747 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
7748         YY_BREAK
7749
7750 case 459:
7751 YY_RULE_SETUP
7752 ECHO;
7753         YY_BREAK
7754 case YY_STATE_EOF(INITIAL):
7755 case YY_STATE_EOF(ROOT_surfxml_platform):
7756 case YY_STATE_EOF(S_surfxml_platform_2):
7757 case YY_STATE_EOF(S_surfxml_platform_5):
7758 case YY_STATE_EOF(S_surfxml_platform_7):
7759 case YY_STATE_EOF(S_surfxml_include_1):
7760 case YY_STATE_EOF(S_surfxml_random_1):
7761 case YY_STATE_EOF(S_surfxml_AS_2):
7762 case YY_STATE_EOF(S_surfxml_AS_5):
7763 case YY_STATE_EOF(S_surfxml_AS_7):
7764 case YY_STATE_EOF(S_surfxml_AS_10):
7765 case YY_STATE_EOF(S_surfxml_AS_12):
7766 case YY_STATE_EOF(S_surfxml_storage_type_1):
7767 case YY_STATE_EOF(S_surfxml_storage_1):
7768 case YY_STATE_EOF(S_surfxml_host_1):
7769 case YY_STATE_EOF(S_surfxml_link_1):
7770 case YY_STATE_EOF(S_surfxml_route_1):
7771 case YY_STATE_EOF(S_surfxml_ASroute_1):
7772 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
7773 case YY_STATE_EOF(S_surfxml_process_1):
7774 case YY_STATE_EOF(S_surfxml_config_1):
7775 case YY_STATE_EOF(IMPOSSIBLE):
7776         yyterminate();
7777
7778         case YY_END_OF_BUFFER:
7779                 {
7780                 /* Amount of text matched not including the EOB char. */
7781                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
7782
7783                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
7784                 *yy_cp = (yy_hold_char);
7785                 YY_RESTORE_YY_MORE_OFFSET
7786
7787                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
7788                         {
7789                         /* We're scanning a new file or input source.  It's
7790                          * possible that this happened because the user
7791                          * just pointed surf_parse_in at a new source and called
7792                          * surf_parse_lex().  If so, then we have to assure
7793                          * consistency between YY_CURRENT_BUFFER and our
7794                          * globals.  Here is the right place to do so, because
7795                          * this is the first action (other than possibly a
7796                          * back-up) that will match for the new input source.
7797                          */
7798                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
7799                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
7800                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
7801                         }
7802
7803                 /* Note that here we test for yy_c_buf_p "<=" to the position
7804                  * of the first EOB in the buffer, since yy_c_buf_p will
7805                  * already have been incremented past the NUL character
7806                  * (since all states make transitions on EOB to the
7807                  * end-of-buffer state).  Contrast this with the test
7808                  * in input().
7809                  */
7810                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
7811                         { /* This was really a NUL. */
7812                         yy_state_type yy_next_state;
7813
7814                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
7815
7816                         yy_current_state = yy_get_previous_state(  );
7817
7818                         /* Okay, we're now positioned to make the NUL
7819                          * transition.  We couldn't have
7820                          * yy_get_previous_state() go ahead and do it
7821                          * for us because it doesn't know how to deal
7822                          * with the possibility of jamming (and we don't
7823                          * want to build jamming into it because then it
7824                          * will run more slowly).
7825                          */
7826
7827                         yy_next_state = yy_try_NUL_trans( yy_current_state );
7828
7829                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
7830
7831                         if ( yy_next_state )
7832                                 {
7833                                 /* Consume the NUL. */
7834                                 yy_cp = ++(yy_c_buf_p);
7835                                 yy_current_state = yy_next_state;
7836                                 goto yy_match;
7837                                 }
7838
7839                         else
7840                                 {
7841                                 yy_cp = (yy_c_buf_p);
7842                                 goto yy_find_action;
7843                                 }
7844                         }
7845
7846                 else switch ( yy_get_next_buffer(  ) )
7847                         {
7848                         case EOB_ACT_END_OF_FILE:
7849                                 {
7850                                 (yy_did_buffer_switch_on_eof) = 0;
7851
7852                                 if ( surf_parse_wrap( ) )
7853                                         {
7854                                         /* Note: because we've taken care in
7855                                          * yy_get_next_buffer() to have set up
7856                                          * surf_parse_text, we can now set up
7857                                          * yy_c_buf_p so that if some total
7858                                          * hoser (like flex itself) wants to
7859                                          * call the scanner after we return the
7860                                          * YY_NULL, it'll still work - another
7861                                          * YY_NULL will get returned.
7862                                          */
7863                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
7864
7865                                         yy_act = YY_STATE_EOF(YY_START);
7866                                         goto do_action;
7867                                         }
7868
7869                                 else
7870                                         {
7871                                         if ( ! (yy_did_buffer_switch_on_eof) )
7872                                                 YY_NEW_FILE;
7873                                         }
7874                                 break;
7875                                 }
7876
7877                         case EOB_ACT_CONTINUE_SCAN:
7878                                 (yy_c_buf_p) =
7879                                         (yytext_ptr) + yy_amount_of_matched_text;
7880
7881                                 yy_current_state = yy_get_previous_state(  );
7882
7883                                 yy_cp = (yy_c_buf_p);
7884                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
7885                                 goto yy_match;
7886
7887                         case EOB_ACT_LAST_MATCH:
7888                                 (yy_c_buf_p) =
7889                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
7890
7891                                 yy_current_state = yy_get_previous_state(  );
7892
7893                                 yy_cp = (yy_c_buf_p);
7894                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
7895                                 goto yy_find_action;
7896                         }
7897                 break;
7898                 }
7899
7900         default:
7901                 YY_FATAL_ERROR(
7902                         "fatal flex scanner internal error--no action found" );
7903         } /* end of action switch */
7904                 } /* end of scanning one token */
7905 } /* end of surf_parse_lex */
7906
7907 /* yy_get_next_buffer - try to read in a new buffer
7908  *
7909  * Returns a code representing an action:
7910  *      EOB_ACT_LAST_MATCH -
7911  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
7912  *      EOB_ACT_END_OF_FILE - end of file
7913  */
7914 static int yy_get_next_buffer (void)
7915 {
7916         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
7917         register char *source = (yytext_ptr);
7918         register int number_to_move, i;
7919         int ret_val;
7920
7921         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
7922                 YY_FATAL_ERROR(
7923                 "fatal flex scanner internal error--end of buffer missed" );
7924
7925         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
7926                 { /* Don't try to fill the buffer, so this is an EOF. */
7927                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
7928                         {
7929                         /* We matched a single character, the EOB, so
7930                          * treat this as a final EOF.
7931                          */
7932                         return EOB_ACT_END_OF_FILE;
7933                         }
7934
7935                 else
7936                         {
7937                         /* We matched some text prior to the EOB, first
7938                          * process it.
7939                          */
7940                         return EOB_ACT_LAST_MATCH;
7941                         }
7942                 }
7943
7944         /* Try to read more data. */
7945
7946         /* First move last chars to start of buffer. */
7947         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
7948
7949         for ( i = 0; i < number_to_move; ++i )
7950                 *(dest++) = *(source++);
7951
7952         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
7953                 /* don't do the read, it's not guaranteed to return an EOF,
7954                  * just force an EOF
7955                  */
7956                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
7957
7958         else
7959                 {
7960                         int num_to_read =
7961                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
7962
7963                 while ( num_to_read <= 0 )
7964                         { /* Not enough room in the buffer - grow it. */
7965
7966                         /* just a shorter name for the current buffer */
7967                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
7968
7969                         int yy_c_buf_p_offset =
7970                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
7971
7972                         if ( b->yy_is_our_buffer )
7973                                 {
7974                                 int new_size = b->yy_buf_size * 2;
7975
7976                                 if ( new_size <= 0 )
7977                                         b->yy_buf_size += b->yy_buf_size / 8;
7978                                 else
7979                                         b->yy_buf_size *= 2;
7980
7981                                 b->yy_ch_buf = (char *)
7982                                         /* Include room in for 2 EOB chars. */
7983                                         surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
7984                                 }
7985                         else
7986                                 /* Can't grow it, we don't own it. */
7987                                 b->yy_ch_buf = 0;
7988
7989                         if ( ! b->yy_ch_buf )
7990                                 YY_FATAL_ERROR(
7991                                 "fatal error - scanner input buffer overflow" );
7992
7993                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
7994
7995                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
7996                                                 number_to_move - 1;
7997
7998                         }
7999
8000                 if ( num_to_read > YY_READ_BUF_SIZE )
8001                         num_to_read = YY_READ_BUF_SIZE;
8002
8003                 /* Read in more data. */
8004                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
8005                         (yy_n_chars), (size_t) num_to_read );
8006
8007                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
8008                 }
8009
8010         if ( (yy_n_chars) == 0 )
8011                 {
8012                 if ( number_to_move == YY_MORE_ADJ )
8013                         {
8014                         ret_val = EOB_ACT_END_OF_FILE;
8015                         surf_parse_restart(surf_parse_in  );
8016                         }
8017
8018                 else
8019                         {
8020                         ret_val = EOB_ACT_LAST_MATCH;
8021                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
8022                                 YY_BUFFER_EOF_PENDING;
8023                         }
8024                 }
8025
8026         else
8027                 ret_val = EOB_ACT_CONTINUE_SCAN;
8028
8029         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
8030                 /* Extend the array by 50%, plus the number we really need. */
8031                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
8032                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) surf_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
8033                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
8034                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
8035         }
8036
8037         (yy_n_chars) += number_to_move;
8038         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
8039         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
8040
8041         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
8042
8043         return ret_val;
8044 }
8045
8046 /* yy_get_previous_state - get the state just before the EOB char was reached */
8047
8048     static yy_state_type yy_get_previous_state (void)
8049 {
8050         register yy_state_type yy_current_state;
8051         register char *yy_cp;
8052     
8053         yy_current_state = (yy_start);
8054
8055         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
8056                 {
8057                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
8058                 if ( yy_accept[yy_current_state] )
8059                         {
8060                         (yy_last_accepting_state) = yy_current_state;
8061                         (yy_last_accepting_cpos) = yy_cp;
8062                         }
8063                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
8064                         {
8065                         yy_current_state = (int) yy_def[yy_current_state];
8066                         if ( yy_current_state >= 2702 )
8067                                 yy_c = yy_meta[(unsigned int) yy_c];
8068                         }
8069                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
8070                 }
8071
8072         return yy_current_state;
8073 }
8074
8075 /* yy_try_NUL_trans - try to make a transition on the NUL character
8076  *
8077  * synopsis
8078  *      next_state = yy_try_NUL_trans( current_state );
8079  */
8080     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
8081 {
8082         register int yy_is_jam;
8083         register char *yy_cp = (yy_c_buf_p);
8084
8085         register YY_CHAR yy_c = 1;
8086         if ( yy_accept[yy_current_state] )
8087                 {
8088                 (yy_last_accepting_state) = yy_current_state;
8089                 (yy_last_accepting_cpos) = yy_cp;
8090                 }
8091         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
8092                 {
8093                 yy_current_state = (int) yy_def[yy_current_state];
8094                 if ( yy_current_state >= 2702 )
8095                         yy_c = yy_meta[(unsigned int) yy_c];
8096                 }
8097         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
8098         yy_is_jam = (yy_current_state == 2701);
8099
8100         return yy_is_jam ? 0 : yy_current_state;
8101 }
8102
8103 #ifndef YY_NO_INPUT
8104 #ifdef __cplusplus
8105     static int yyinput (void)
8106 #else
8107     static int input  (void)
8108 #endif
8109
8110 {
8111         int c;
8112     
8113         *(yy_c_buf_p) = (yy_hold_char);
8114
8115         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
8116                 {
8117                 /* yy_c_buf_p now points to the character we want to return.
8118                  * If this occurs *before* the EOB characters, then it's a
8119                  * valid NUL; if not, then we've hit the end of the buffer.
8120                  */
8121                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
8122                         /* This was really a NUL. */
8123                         *(yy_c_buf_p) = '\0';
8124
8125                 else
8126                         { /* need more input */
8127                         int offset = (yy_c_buf_p) - (yytext_ptr);
8128                         ++(yy_c_buf_p);
8129
8130                         switch ( yy_get_next_buffer(  ) )
8131                                 {
8132                                 case EOB_ACT_LAST_MATCH:
8133                                         /* This happens because yy_g_n_b()
8134                                          * sees that we've accumulated a
8135                                          * token and flags that we need to
8136                                          * try matching the token before
8137                                          * proceeding.  But for input(),
8138                                          * there's no matching to consider.
8139                                          * So convert the EOB_ACT_LAST_MATCH
8140                                          * to EOB_ACT_END_OF_FILE.
8141                                          */
8142
8143                                         /* Reset buffer status. */
8144                                         surf_parse_restart(surf_parse_in );
8145
8146                                         /*FALLTHROUGH*/
8147
8148                                 case EOB_ACT_END_OF_FILE:
8149                                         {
8150                                         if ( surf_parse_wrap( ) )
8151                                                 return EOF;
8152
8153                                         if ( ! (yy_did_buffer_switch_on_eof) )
8154                                                 YY_NEW_FILE;
8155 #ifdef __cplusplus
8156                                         return yyinput();
8157 #else
8158                                         return input();
8159 #endif
8160                                         }
8161
8162                                 case EOB_ACT_CONTINUE_SCAN:
8163                                         (yy_c_buf_p) = (yytext_ptr) + offset;
8164                                         break;
8165                                 }
8166                         }
8167                 }
8168
8169         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
8170         *(yy_c_buf_p) = '\0';   /* preserve surf_parse_text */
8171         (yy_hold_char) = *++(yy_c_buf_p);
8172
8173         if ( c == '\n' )
8174                    
8175     surf_parse_lineno++;
8176 ;
8177
8178         return c;
8179 }
8180 #endif  /* ifndef YY_NO_INPUT */
8181
8182 /** Immediately switch to a different input stream.
8183  * @param input_file A readable stream.
8184  * 
8185  * @note This function does not reset the start condition to @c INITIAL .
8186  */
8187     void surf_parse_restart  (FILE * input_file )
8188 {
8189     
8190         if ( ! YY_CURRENT_BUFFER ){
8191         surf_parse_ensure_buffer_stack ();
8192                 YY_CURRENT_BUFFER_LVALUE =
8193             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
8194         }
8195
8196         surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
8197         surf_parse__load_buffer_state( );
8198 }
8199
8200 /** Switch to a different input buffer.
8201  * @param new_buffer The new input buffer.
8202  * 
8203  */
8204     void surf_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
8205 {
8206     
8207         /* TODO. We should be able to replace this entire function body
8208          * with
8209          *              surf_parse_pop_buffer_state();
8210          *              surf_parse_push_buffer_state(new_buffer);
8211      */
8212         surf_parse_ensure_buffer_stack ();
8213         if ( YY_CURRENT_BUFFER == new_buffer )
8214                 return;
8215
8216         if ( YY_CURRENT_BUFFER )
8217                 {
8218                 /* Flush out information for old buffer. */
8219                 *(yy_c_buf_p) = (yy_hold_char);
8220                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
8221                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
8222                 }
8223
8224         YY_CURRENT_BUFFER_LVALUE = new_buffer;
8225         surf_parse__load_buffer_state( );
8226
8227         /* We don't actually know whether we did this switch during
8228          * EOF (surf_parse_wrap()) processing, but the only time this flag
8229          * is looked at is after surf_parse_wrap() is called, so it's safe
8230          * to go ahead and always set it.
8231          */
8232         (yy_did_buffer_switch_on_eof) = 1;
8233 }
8234
8235 static void surf_parse__load_buffer_state  (void)
8236 {
8237         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
8238         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
8239         surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
8240         (yy_hold_char) = *(yy_c_buf_p);
8241 }
8242
8243 /** Allocate and initialize an input buffer state.
8244  * @param file A readable stream.
8245  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
8246  * 
8247  * @return the allocated buffer state.
8248  */
8249     YY_BUFFER_STATE surf_parse__create_buffer  (FILE * file, int  size )
8250 {
8251         YY_BUFFER_STATE b;
8252     
8253         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
8254         if ( ! b )
8255                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
8256
8257         b->yy_buf_size = size;
8258
8259         /* yy_ch_buf has to be 2 characters longer than the size given because
8260          * we need to put in 2 end-of-buffer characters.
8261          */
8262         b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2  );
8263         if ( ! b->yy_ch_buf )
8264                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
8265
8266         b->yy_is_our_buffer = 1;
8267
8268         surf_parse__init_buffer(b,file );
8269
8270         return b;
8271 }
8272
8273 /** Destroy the buffer.
8274  * @param b a buffer created with surf_parse__create_buffer()
8275  * 
8276  */
8277     void surf_parse__delete_buffer (YY_BUFFER_STATE  b )
8278 {
8279     
8280         if ( ! b )
8281                 return;
8282
8283         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
8284                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
8285
8286         if ( b->yy_is_our_buffer )
8287                 surf_parse_free((void *) b->yy_ch_buf  );
8288
8289         surf_parse_free((void *) b  );
8290 }
8291
8292 #ifndef __cplusplus
8293 extern int isatty (int );
8294 #endif /* __cplusplus */
8295     
8296 /* Initializes or reinitializes a buffer.
8297  * This function is sometimes called more than once on the same buffer,
8298  * such as during a surf_parse_restart() or at EOF.
8299  */
8300     static void surf_parse__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
8301
8302 {
8303         int oerrno = errno;
8304     
8305         surf_parse__flush_buffer(b );
8306
8307         b->yy_input_file = file;
8308         b->yy_fill_buffer = 1;
8309
8310     /* If b is the current buffer, then surf_parse__init_buffer was _probably_
8311      * called from surf_parse_restart() or through yy_get_next_buffer.
8312      * In that case, we don't want to reset the lineno or column.
8313      */
8314     if (b != YY_CURRENT_BUFFER){
8315         b->yy_bs_lineno = 1;
8316         b->yy_bs_column = 0;
8317     }
8318
8319         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
8320     
8321         errno = oerrno;
8322 }
8323
8324 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
8325  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
8326  * 
8327  */
8328     void surf_parse__flush_buffer (YY_BUFFER_STATE  b )
8329 {
8330         if ( ! b )
8331                 return;
8332
8333         b->yy_n_chars = 0;
8334
8335         /* We always need two end-of-buffer characters.  The first causes
8336          * a transition to the end-of-buffer state.  The second causes
8337          * a jam in that state.
8338          */
8339         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
8340         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
8341
8342         b->yy_buf_pos = &b->yy_ch_buf[0];
8343
8344         b->yy_at_bol = 1;
8345         b->yy_buffer_status = YY_BUFFER_NEW;
8346
8347         if ( b == YY_CURRENT_BUFFER )
8348                 surf_parse__load_buffer_state( );
8349 }
8350
8351 /** Pushes the new state onto the stack. The new state becomes
8352  *  the current state. This function will allocate the stack
8353  *  if necessary.
8354  *  @param new_buffer The new state.
8355  *  
8356  */
8357 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
8358 {
8359         if (new_buffer == NULL)
8360                 return;
8361
8362         surf_parse_ensure_buffer_stack();
8363
8364         /* This block is copied from surf_parse__switch_to_buffer. */
8365         if ( YY_CURRENT_BUFFER )
8366                 {
8367                 /* Flush out information for old buffer. */
8368                 *(yy_c_buf_p) = (yy_hold_char);
8369                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
8370                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
8371                 }
8372
8373         /* Only push if top exists. Otherwise, replace top. */
8374         if (YY_CURRENT_BUFFER)
8375                 (yy_buffer_stack_top)++;
8376         YY_CURRENT_BUFFER_LVALUE = new_buffer;
8377
8378         /* copied from surf_parse__switch_to_buffer. */
8379         surf_parse__load_buffer_state( );
8380         (yy_did_buffer_switch_on_eof) = 1;
8381 }
8382
8383 /** Removes and deletes the top of the stack, if present.
8384  *  The next element becomes the new top.
8385  *  
8386  */
8387 void surf_parse_pop_buffer_state (void)
8388 {
8389         if (!YY_CURRENT_BUFFER)
8390                 return;
8391
8392         surf_parse__delete_buffer(YY_CURRENT_BUFFER );
8393         YY_CURRENT_BUFFER_LVALUE = NULL;
8394         if ((yy_buffer_stack_top) > 0)
8395                 --(yy_buffer_stack_top);
8396
8397         if (YY_CURRENT_BUFFER) {
8398                 surf_parse__load_buffer_state( );
8399                 (yy_did_buffer_switch_on_eof) = 1;
8400         }
8401 }
8402
8403 /* Allocates the stack if it does not exist.
8404  *  Guarantees space for at least one push.
8405  */
8406 static void surf_parse_ensure_buffer_stack (void)
8407 {
8408         int num_to_alloc;
8409     
8410         if (!(yy_buffer_stack)) {
8411
8412                 /* First allocation is just for 2 elements, since we don't know if this
8413                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
8414                  * immediate realloc on the next call.
8415          */
8416                 num_to_alloc = 1;
8417                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
8418                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
8419                                                                 );
8420                 if ( ! (yy_buffer_stack) )
8421                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
8422                                                                   
8423                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
8424                                 
8425                 (yy_buffer_stack_max) = num_to_alloc;
8426                 (yy_buffer_stack_top) = 0;
8427                 return;
8428         }
8429
8430         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
8431
8432                 /* Increase the buffer to prepare for a possible push. */
8433                 int grow_size = 8 /* arbitrary grow size */;
8434
8435                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
8436                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
8437                                                                 ((yy_buffer_stack),
8438                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
8439                                                                 );
8440                 if ( ! (yy_buffer_stack) )
8441                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
8442
8443                 /* zero only the new slots.*/
8444                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
8445                 (yy_buffer_stack_max) = num_to_alloc;
8446         }
8447 }
8448
8449 /** Setup the input buffer state to scan directly from a user-specified character buffer.
8450  * @param base the character buffer
8451  * @param size the size in bytes of the character buffer
8452  * 
8453  * @return the newly allocated buffer state object. 
8454  */
8455 YY_BUFFER_STATE surf_parse__scan_buffer  (char * base, yy_size_t  size )
8456 {
8457         YY_BUFFER_STATE b;
8458     
8459         if ( size < 2 ||
8460              base[size-2] != YY_END_OF_BUFFER_CHAR ||
8461              base[size-1] != YY_END_OF_BUFFER_CHAR )
8462                 /* They forgot to leave room for the EOB's. */
8463                 return 0;
8464
8465         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
8466         if ( ! b )
8467                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
8468
8469         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
8470         b->yy_buf_pos = b->yy_ch_buf = base;
8471         b->yy_is_our_buffer = 0;
8472         b->yy_input_file = 0;
8473         b->yy_n_chars = b->yy_buf_size;
8474         b->yy_is_interactive = 0;
8475         b->yy_at_bol = 1;
8476         b->yy_fill_buffer = 0;
8477         b->yy_buffer_status = YY_BUFFER_NEW;
8478
8479         surf_parse__switch_to_buffer(b  );
8480
8481         return b;
8482 }
8483
8484 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
8485  * scan from a @e copy of @a str.
8486  * @param yystr a NUL-terminated string to scan
8487  * 
8488  * @return the newly allocated buffer state object.
8489  * @note If you want to scan bytes that may contain NUL values, then use
8490  *       surf_parse__scan_bytes() instead.
8491  */
8492 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
8493 {
8494     
8495         return surf_parse__scan_bytes(yystr,strlen(yystr) );
8496 }
8497
8498 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
8499  * scan from a @e copy of @a bytes.
8500  * @param yybytes the byte buffer to scan
8501  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
8502  * 
8503  * @return the newly allocated buffer state object.
8504  */
8505 YY_BUFFER_STATE surf_parse__scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
8506 {
8507         YY_BUFFER_STATE b;
8508         char *buf;
8509         yy_size_t n;
8510         int i;
8511     
8512         /* Get memory for full buffer, including space for trailing EOB's. */
8513         n = _yybytes_len + 2;
8514         buf = (char *) surf_parse_alloc(n  );
8515         if ( ! buf )
8516                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
8517
8518         for ( i = 0; i < _yybytes_len; ++i )
8519                 buf[i] = yybytes[i];
8520
8521         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
8522
8523         b = surf_parse__scan_buffer(buf,n );
8524         if ( ! b )
8525                 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
8526
8527         /* It's okay to grow etc. this buffer, and we should throw it
8528          * away when we're done.
8529          */
8530         b->yy_is_our_buffer = 1;
8531
8532         return b;
8533 }
8534
8535     static void yy_push_state (int  new_state )
8536 {
8537         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
8538                 {
8539                 yy_size_t new_size;
8540
8541                 (yy_start_stack_depth) += YY_START_STACK_INCR;
8542                 new_size = (yy_start_stack_depth) * sizeof( int );
8543
8544                 if ( ! (yy_start_stack) )
8545                         (yy_start_stack) = (int *) surf_parse_alloc(new_size  );
8546
8547                 else
8548                         (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size  );
8549
8550                 if ( ! (yy_start_stack) )
8551                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
8552                 }
8553
8554         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
8555
8556         BEGIN(new_state);
8557 }
8558
8559     static void yy_pop_state  (void)
8560 {
8561         if ( --(yy_start_stack_ptr) < 0 )
8562                 YY_FATAL_ERROR( "start-condition stack underflow" );
8563
8564         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
8565 }
8566
8567 #ifndef YY_EXIT_FAILURE
8568 #define YY_EXIT_FAILURE 2
8569 #endif
8570
8571 static void yy_fatal_error (yyconst char* msg )
8572 {
8573         (void) fprintf( stderr, "%s\n", msg );
8574         exit( YY_EXIT_FAILURE );
8575 }
8576
8577 /* Redefine yyless() so it works in section 3 code. */
8578
8579 #undef yyless
8580 #define yyless(n) \
8581         do \
8582                 { \
8583                 /* Undo effects of setting up surf_parse_text. */ \
8584         int yyless_macro_arg = (n); \
8585         YY_LESS_LINENO(yyless_macro_arg);\
8586                 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
8587                 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
8588                 (yy_hold_char) = *(yy_c_buf_p); \
8589                 *(yy_c_buf_p) = '\0'; \
8590                 surf_parse_leng = yyless_macro_arg; \
8591                 } \
8592         while ( 0 )
8593
8594 /* Accessor  methods (get/set functions) to struct members. */
8595
8596 /** Get the current line number.
8597  * 
8598  */
8599 int surf_parse_get_lineno  (void)
8600 {
8601         
8602     return surf_parse_lineno;
8603 }
8604
8605 /** Get the input stream.
8606  * 
8607  */
8608 FILE *surf_parse_get_in  (void)
8609 {
8610         return surf_parse_in;
8611 }
8612
8613 /** Get the output stream.
8614  * 
8615  */
8616 FILE *surf_parse_get_out  (void)
8617 {
8618         return surf_parse_out;
8619 }
8620
8621 /** Get the length of the current token.
8622  * 
8623  */
8624 int surf_parse_get_leng  (void)
8625 {
8626         return surf_parse_leng;
8627 }
8628
8629 /** Get the current token.
8630  * 
8631  */
8632
8633 char *surf_parse_get_text  (void)
8634 {
8635         return surf_parse_text;
8636 }
8637
8638 /** Set the current line number.
8639  * @param line_number
8640  * 
8641  */
8642 void surf_parse_set_lineno (int  line_number )
8643 {
8644     
8645     surf_parse_lineno = line_number;
8646 }
8647
8648 /** Set the input stream. This does not discard the current
8649  * input buffer.
8650  * @param in_str A readable stream.
8651  * 
8652  * @see surf_parse__switch_to_buffer
8653  */
8654 void surf_parse_set_in (FILE *  in_str )
8655 {
8656         surf_parse_in = in_str ;
8657 }
8658
8659 void surf_parse_set_out (FILE *  out_str )
8660 {
8661         surf_parse_out = out_str ;
8662 }
8663
8664 int surf_parse_get_debug  (void)
8665 {
8666         return surf_parse__flex_debug;
8667 }
8668
8669 void surf_parse_set_debug (int  bdebug )
8670 {
8671         surf_parse__flex_debug = bdebug ;
8672 }
8673
8674 static int yy_init_globals (void)
8675 {
8676         /* Initialization is the same as for the non-reentrant scanner.
8677      * This function is called from surf_parse_lex_destroy(), so don't allocate here.
8678      */
8679
8680     /* We do not touch surf_parse_lineno unless the option is enabled. */
8681     surf_parse_lineno =  1;
8682     
8683     (yy_buffer_stack) = 0;
8684     (yy_buffer_stack_top) = 0;
8685     (yy_buffer_stack_max) = 0;
8686     (yy_c_buf_p) = (char *) 0;
8687     (yy_init) = 0;
8688     (yy_start) = 0;
8689
8690     (yy_start_stack_ptr) = 0;
8691     (yy_start_stack_depth) = 0;
8692     (yy_start_stack) =  NULL;
8693
8694 /* Defined in main.c */
8695 #ifdef YY_STDINIT
8696     surf_parse_in = stdin;
8697     surf_parse_out = stdout;
8698 #else
8699     surf_parse_in = (FILE *) 0;
8700     surf_parse_out = (FILE *) 0;
8701 #endif
8702
8703     /* For future reference: Set errno on error, since we are called by
8704      * surf_parse_lex_init()
8705      */
8706     return 0;
8707 }
8708
8709 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
8710 int surf_parse_lex_destroy  (void)
8711 {
8712     
8713     /* Pop the buffer stack, destroying each element. */
8714         while(YY_CURRENT_BUFFER){
8715                 surf_parse__delete_buffer(YY_CURRENT_BUFFER  );
8716                 YY_CURRENT_BUFFER_LVALUE = NULL;
8717                 surf_parse_pop_buffer_state();
8718         }
8719
8720         /* Destroy the stack itself. */
8721         surf_parse_free((yy_buffer_stack) );
8722         (yy_buffer_stack) = NULL;
8723
8724     /* Destroy the start condition stack. */
8725         surf_parse_free((yy_start_stack)  );
8726         (yy_start_stack) = NULL;
8727
8728     /* Reset the globals. This is important in a non-reentrant scanner so the next time
8729      * surf_parse_lex() is called, initialization will occur. */
8730     yy_init_globals( );
8731
8732     return 0;
8733 }
8734
8735 /*
8736  * Internal utility routines.
8737  */
8738
8739 #ifndef yytext_ptr
8740 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
8741 {
8742         register int i;
8743         for ( i = 0; i < n; ++i )
8744                 s1[i] = s2[i];
8745 }
8746 #endif
8747
8748 #ifdef YY_NEED_STRLEN
8749 static int yy_flex_strlen (yyconst char * s )
8750 {
8751         register int n;
8752         for ( n = 0; s[n]; ++n )
8753                 ;
8754
8755         return n;
8756 }
8757 #endif
8758
8759 void *surf_parse_alloc (yy_size_t  size )
8760 {
8761         return (void *) malloc( size );
8762 }
8763
8764 void *surf_parse_realloc  (void * ptr, yy_size_t  size )
8765 {
8766         /* The cast to (char *) in the following accommodates both
8767          * implementations that use char* generic pointers, and those
8768          * that use void* generic pointers.  It works with the latter
8769          * because both ANSI C and C++ allow castless assignment from
8770          * any pointer type to void*, and deal with argument conversions
8771          * as though doing an assignment.
8772          */
8773         return (void *) realloc( (char *) ptr, size );
8774 }
8775
8776 void surf_parse_free (void * ptr )
8777 {
8778         free( (char *) ptr );   /* see surf_parse_realloc() for (char *) cast */
8779 }
8780
8781 #define YYTABLES_NAME "yytables"
8782
8783 /* Element context stack lookup. */
8784 int surfxml_element_context(int i)
8785 {
8786   return (0<i && i<yy_start_stack_depth
8787           ? yy_start_stack[yy_start_stack_ptr - i]
8788           : 0);
8789 }
8790
8791 #ifdef FLEX_DEBUG
8792 void print_yy_stack(char* fmt, ...)
8793 {
8794   int i = 0; va_list ap; va_start(ap, fmt);
8795   vfprintf(stderr, fmt, ap);
8796   if (surfxml_statenames) {
8797       for (i=1; i<yy_start_stack_ptr; i++) {
8798           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
8799       }
8800       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
8801   }
8802   va_end(ap);
8803 }
8804
8805 void print_surfxml_bufferstack()
8806 {
8807     int i;
8808     fputs("Buffer: ", stderr);
8809     for (i = 0; i < blimit; i++) {
8810        if ( surfxml_bufferstack[i] == '\377' ) break;
8811          putc(surfxml_bufferstack[i], stderr);
8812     }
8813     putc('\n', stderr);
8814 }
8815
8816 static void debug_enter(int state, const char* statename) {
8817   yy_push_state(state);
8818   if (surf_parse__flex_debug) {
8819        print_yy_stack("--ENTER(%s) : ",statename);
8820        print_surfxml_bufferstack();
8821   }
8822 }
8823
8824 static void debug_leave(void) {
8825     if (surf_parse__flex_debug) {
8826         print_yy_stack("--LEAVE : ");
8827         print_surfxml_bufferstack();
8828     }
8829   yy_pop_state();
8830 }
8831
8832 static void debug_set(int state, const char* statename) {
8833   BEGIN(state);
8834   if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
8835 }
8836 #endif
8837
8838 static void cleanup(void)
8839 {
8840     if (surfxml_statenames) {
8841         free(surfxml_statenames);
8842         surfxml_statenames = NULL;
8843     }
8844     free(surfxml_bufferstack);
8845     surfxml_bufferstack = NULL;
8846
8847     free(indexstack);
8848     indexstack = NULL;
8849 }
8850
8851 static int fail(const char* fmt, ...)
8852 {
8853     int chars_left, used;
8854     va_list ap; va_start(ap, fmt);
8855 #ifdef FLEXML_yylineno
8856     used = sprintf(flexml_err_msg,
8857                    "Invalid XML (XML input line %d, state %d): ",
8858                    surf_parse_lineno, YY_START);
8859 #else
8860     used = sprintf(flexml_err_msg,
8861                    "Invalid XML (state %d): ",
8862                    YY_START);
8863 #endif
8864     chars_left = flexml_max_err_msg_size - used - 1;
8865     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
8866     va_end(ap);
8867
8868 #ifndef FLEXML_quiet_parser
8869     /* print directly to sdterr */
8870     fprintf(stderr, "%s\n", flexml_err_msg);
8871     flexml_err_msg[0] = '\0';
8872 #endif
8873
8874     cleanup();
8875
8876     return 1;
8877 }
8878