Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Use the same type name (network_link_GTNETS_t) as in the private header.
[simgrid.git] / src / surf / simgrid_dtd.c
1
2 #line 3 "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 34
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 #endif /* ! C99 */
76
77 /* Limits of integral types. */
78 #ifndef INT8_MIN
79 #define INT8_MIN               (-128)
80 #endif
81 #ifndef INT16_MIN
82 #define INT16_MIN              (-32767-1)
83 #endif
84 #ifndef INT32_MIN
85 #define INT32_MIN              (-2147483647-1)
86 #endif
87 #ifndef INT8_MAX
88 #define INT8_MAX               (127)
89 #endif
90 #ifndef INT16_MAX
91 #define INT16_MAX              (32767)
92 #endif
93 #ifndef INT32_MAX
94 #define INT32_MAX              (2147483647)
95 #endif
96 #ifndef UINT8_MAX
97 #define UINT8_MAX              (255U)
98 #endif
99 #ifndef UINT16_MAX
100 #define UINT16_MAX             (65535U)
101 #endif
102 #ifndef UINT32_MAX
103 #define UINT32_MAX             (4294967295U)
104 #endif
105
106 #endif /* ! FLEXINT_H */
107
108 #ifdef __cplusplus
109
110 /* The "const" storage-class-modifier is valid. */
111 #define YY_USE_CONST
112
113 #else   /* ! __cplusplus */
114
115 /* C99 requires __STDC__ to be defined as 1. */
116 #if defined (__STDC__)
117
118 #define YY_USE_CONST
119
120 #endif  /* defined (__STDC__) */
121 #endif  /* ! __cplusplus */
122
123 #ifdef YY_USE_CONST
124 #define yyconst const
125 #else
126 #define yyconst
127 #endif
128
129 /* Returned upon end-of-file. */
130 #define YY_NULL 0
131
132 /* Promotes a possibly negative, possibly signed char to an unsigned
133  * integer for use as an array index.  If the signed char is negative,
134  * we want to instead treat it as an 8-bit unsigned char, hence the
135  * double cast.
136  */
137 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
138
139 /* Enter a start condition.  This macro really ought to take a parameter,
140  * but we do it the disgusting crufty way forced on us by the ()-less
141  * definition of BEGIN.
142  */
143 #define BEGIN (yy_start) = 1 + 2 *
144
145 /* Translate the current start state into a value that can be later handed
146  * to BEGIN to return to the state.  The YYSTATE alias is for lex
147  * compatibility.
148  */
149 #define YY_START (((yy_start) - 1) / 2)
150 #define YYSTATE YY_START
151
152 /* Action number for EOF rule of a given start state. */
153 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
154
155 /* Special action meaning "start processing a new file". */
156 #define YY_NEW_FILE surf_parse_restart(surf_parse_in  )
157
158 #define YY_END_OF_BUFFER_CHAR 0
159
160 /* Size of default input buffer. */
161 #ifndef YY_BUF_SIZE
162 #define YY_BUF_SIZE 16384
163 #endif
164
165 /* The state buf must be large enough to hold one state per character in the main buffer.
166  */
167 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
168
169 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
170 #define YY_TYPEDEF_YY_BUFFER_STATE
171 typedef struct yy_buffer_state *YY_BUFFER_STATE;
172 #endif
173
174 extern int surf_parse_leng;
175
176 extern FILE *surf_parse_in, *surf_parse_out;
177
178 #define EOB_ACT_CONTINUE_SCAN 0
179 #define EOB_ACT_END_OF_FILE 1
180 #define EOB_ACT_LAST_MATCH 2
181
182     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
183      *       access to the local variable yy_act. Since yyless() is a macro, it would break
184      *       existing scanners that call yyless() from OUTSIDE surf_parse_lex. 
185      *       One obvious solution it to make yy_act a global. I tried that, and saw
186      *       a 5% performance hit in a non-surf_parse_lineno scanner, because yy_act is
187      *       normally declared as a register variable-- so it is not worth it.
188      */
189     #define  YY_LESS_LINENO(n) \
190             do { \
191                 int yyl;\
192                 for ( yyl = n; yyl < surf_parse_leng; ++yyl )\
193                     if ( surf_parse_text[yyl] == '\n' )\
194                         --surf_parse_lineno;\
195             }while(0)
196     
197 /* Return all but the first "n" matched characters back to the input stream. */
198 #define yyless(n) \
199         do \
200                 { \
201                 /* Undo effects of setting up surf_parse_text. */ \
202         int yyless_macro_arg = (n); \
203         YY_LESS_LINENO(yyless_macro_arg);\
204                 *yy_cp = (yy_hold_char); \
205                 YY_RESTORE_YY_MORE_OFFSET \
206                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
207                 YY_DO_BEFORE_ACTION; /* set up surf_parse_text again */ \
208                 } \
209         while ( 0 )
210
211 #define unput(c) yyunput( c, (yytext_ptr)  )
212
213 /* The following is because we cannot portably get our hands on size_t
214  * (without autoconf's help, which isn't available because we want
215  * flex-generated scanners to compile on their own).
216  * Given that the standard has decreed that size_t exists since 1989,
217  * I guess we can afford to depend on it. Manoj.
218  */
219
220 #ifndef YY_TYPEDEF_YY_SIZE_T
221 #define YY_TYPEDEF_YY_SIZE_T
222 typedef size_t yy_size_t;
223 #endif
224
225 #ifndef YY_STRUCT_YY_BUFFER_STATE
226 #define YY_STRUCT_YY_BUFFER_STATE
227 struct yy_buffer_state
228         {
229         FILE *yy_input_file;
230
231         char *yy_ch_buf;                /* input buffer */
232         char *yy_buf_pos;               /* current position in input buffer */
233
234         /* Size of input buffer in bytes, not including room for EOB
235          * characters.
236          */
237         yy_size_t yy_buf_size;
238
239         /* Number of characters read into yy_ch_buf, not including EOB
240          * characters.
241          */
242         int yy_n_chars;
243
244         /* Whether we "own" the buffer - i.e., we know we created it,
245          * and can realloc() it to grow it, and should free() it to
246          * delete it.
247          */
248         int yy_is_our_buffer;
249
250         /* Whether this is an "interactive" input source; if so, and
251          * if we're using stdio for input, then we want to use getc()
252          * instead of fread(), to make sure we stop fetching input after
253          * each newline.
254          */
255         int yy_is_interactive;
256
257         /* Whether we're considered to be at the beginning of a line.
258          * If so, '^' rules will be active on the next match, otherwise
259          * not.
260          */
261         int yy_at_bol;
262
263     int yy_bs_lineno; /**< The line count. */
264     int yy_bs_column; /**< The column count. */
265     
266         /* Whether to try to fill the input buffer when we reach the
267          * end of it.
268          */
269         int yy_fill_buffer;
270
271         int yy_buffer_status;
272
273 #define YY_BUFFER_NEW 0
274 #define YY_BUFFER_NORMAL 1
275         /* When an EOF's been seen but there's still some text to process
276          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
277          * shouldn't try reading from the input source any more.  We might
278          * still have a bunch of tokens to match, though, because of
279          * possible backing-up.
280          *
281          * When we actually see the EOF, we change the status to "new"
282          * (via surf_parse_restart()), so that the user can continue scanning by
283          * just pointing surf_parse_in at a new input file.
284          */
285 #define YY_BUFFER_EOF_PENDING 2
286
287         };
288 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
289
290 /* Stack of input buffers. */
291 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
292 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
293 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
294
295 /* We provide macros for accessing buffer states in case in the
296  * future we want to put the buffer states in a more general
297  * "scanner state".
298  *
299  * Returns the top of the stack, or NULL.
300  */
301 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
302                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
303                           : NULL)
304
305 /* Same as previous macro, but useful when we know that the buffer stack is not
306  * NULL or when we need an lvalue. For internal use only.
307  */
308 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
309
310 /* yy_hold_char holds the character lost when surf_parse_text is formed. */
311 static char yy_hold_char;
312 static int yy_n_chars;          /* number of characters read into yy_ch_buf */
313 int surf_parse_leng;
314
315 /* Points to current character in buffer. */
316 static char *yy_c_buf_p = (char *) 0;
317 static int yy_init = 0;         /* whether we need to initialize */
318 static int yy_start = 0;        /* start state number */
319
320 /* Flag which is used to allow surf_parse_wrap()'s to do buffer switches
321  * instead of setting up a fresh surf_parse_in.  A bit of a hack ...
322  */
323 static int yy_did_buffer_switch_on_eof;
324
325 void surf_parse_restart (FILE *input_file  );
326 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer  );
327 YY_BUFFER_STATE surf_parse__create_buffer (FILE *file,int size  );
328 void surf_parse__delete_buffer (YY_BUFFER_STATE b  );
329 void surf_parse__flush_buffer (YY_BUFFER_STATE b  );
330 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer  );
331 void surf_parse_pop_buffer_state (void );
332
333 static void surf_parse_ensure_buffer_stack (void );
334 static void surf_parse__load_buffer_state (void );
335 static void surf_parse__init_buffer (YY_BUFFER_STATE b,FILE *file  );
336
337 #define YY_FLUSH_BUFFER surf_parse__flush_buffer(YY_CURRENT_BUFFER )
338
339 YY_BUFFER_STATE surf_parse__scan_buffer (char *base,yy_size_t size  );
340 YY_BUFFER_STATE surf_parse__scan_string (yyconst char *yy_str  );
341 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char *bytes,int len  );
342
343 void *surf_parse_alloc (yy_size_t  );
344 void *surf_parse_realloc (void *,yy_size_t  );
345 void surf_parse_free (void *  );
346
347 #define yy_new_buffer surf_parse__create_buffer
348
349 #define yy_set_interactive(is_interactive) \
350         { \
351         if ( ! YY_CURRENT_BUFFER ){ \
352         surf_parse_ensure_buffer_stack (); \
353                 YY_CURRENT_BUFFER_LVALUE =    \
354             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
355         } \
356         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
357         }
358
359 #define yy_set_bol(at_bol) \
360         { \
361         if ( ! YY_CURRENT_BUFFER ){\
362         surf_parse_ensure_buffer_stack (); \
363                 YY_CURRENT_BUFFER_LVALUE =    \
364             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
365         } \
366         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
367         }
368
369 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
370
371 /* Begin user sect3 */
372
373 #define surf_parse_wrap(n) 1
374 #define YY_SKIP_YYWRAP
375
376 typedef unsigned char YY_CHAR;
377
378 FILE *surf_parse_in = (FILE *) 0, *surf_parse_out = (FILE *) 0;
379
380 typedef int yy_state_type;
381
382 extern int surf_parse_lineno;
383
384 int surf_parse_lineno = 1;
385
386 extern char *surf_parse_text;
387 #define yytext_ptr surf_parse_text
388
389 static yy_state_type yy_get_previous_state (void );
390 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
391 static int yy_get_next_buffer (void );
392 static void yy_fatal_error (yyconst char msg[]  );
393
394 /* Done after the current pattern has been matched and before the
395  * corresponding action - sets up surf_parse_text.
396  */
397 #define YY_DO_BEFORE_ACTION \
398         (yytext_ptr) = yy_bp; \
399         surf_parse_leng = (size_t) (yy_cp - yy_bp); \
400         (yy_hold_char) = *yy_cp; \
401         *yy_cp = '\0'; \
402         (yy_c_buf_p) = yy_cp;
403
404 #define YY_NUM_RULES 351
405 #define YY_END_OF_BUFFER 352
406 /* This struct is not used in this scanner,
407    but its presence is necessary. */
408 struct yy_trans_info
409         {
410         flex_int32_t yy_verify;
411         flex_int32_t yy_nxt;
412         };
413 static yyconst flex_int16_t yy_accept[2023] =
414     {   0,
415         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
416         0,    0,    0,    0,    0,    0,    0,    0,    0,    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
426         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
427         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
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,  352,  350,   15,   10,   10,   15,   15,  330,
431        10,  330,    5,    6,    5,    8,    9,    8,  346,  338,
432       339,  347,  344,  347,  345,  349,  338,  339,  349,  350,
433        26,   10,   26,   26,   26,   24,   26,   26,   30,   10,
434        30,   30,  350,  350,   30,   37,   10,   37,   37,   37,
435        35,   37,   41,   10,   41,   52,   10,   52,   52,   52,
436
437        50,   52,   52,   52,  347,  346,   74,   10,   74,   74,
438        74,   72,   74,   74,   74,   74,   78,   10,   78,  350,
439        78,   97,   10,   97,   97,   97,   95,   97,   97,   97,
440       101,   10,  101,  114,   10,  114,  114,  114,  112,  114,
441       114,  114,  114,  118,   10,  118,  125,   10,  125,  125,
442       125,  123,  125,  350,  350,  129,   10,  129,  156,   10,
443       156,  156,  156,  154,  156,  156,  156,  156,  156,  160,
444        10,  160,  160,  169,   10,  169,  169,  169,  167,  169,
445       169,  173,   10,  173,  196,   10,  196,  196,  196,  194,
446       196,  196,  196,  196,  196,  196,  200,   10,  200,  207,
447
448        10,  207,  207,  207,  205,  207,  211,   10,  211,  236,
449        10,  236,  236,  236,  234,  236,  236,  236,  236,  240,
450        10,  240,  240,  259,   10,  259,  259,  259,  257,  259,
451       259,  259,  350,  263,   10,  263,  263,  286,   10,  286,
452       286,  286,  284,  286,  286,  286,  286,  290,   10,  290,
453       290,  297,   10,  297,  297,  297,  295,  297,  301,   10,
454       301,  314,   10,  314,  314,  314,  312,  314,  314,  314,
455       314,  318,   10,  318,  350,  318,  325,   10,  325,  325,
456       325,  323,  325,  329,   10,  329,   10,    0,    2,    2,
457         0,    4,    7,  341,  340,    0,    0,    0,    0,    0,
458
459         0,    0,   25,   27,   27,   27,    0,    0,    0,    0,
460         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
461         0,    0,    0,    0,    0,    0,    0,    0,    0,   36,
462        38,   38,    0,   51,   53,   53,   53,   53,    0,    0,
463         0,   73,   75,   75,   75,   75,   75,   75,   75,    0,
464         0,   96,   98,   98,   98,   98,    0,  113,  115,  115,
465       115,  115,  115,    0,  124,  126,  126,    0,  155,  157,
466       157,  157,  157,  157,  157,  157,    0,  168,  170,  170,
467       170,    0,  195,  197,  197,  197,  197,  197,  197,  197,
468       197,  197,    0,  206,  208,  208,    0,  235,  237,  237,
469
470       237,  237,  237,  237,    0,  258,  260,  260,  260,  260,
471       260,    0,    0,  285,  287,  287,  287,  287,  287,    0,
472       296,  298,  298,    0,  313,  315,  315,  315,  315,  315,
473         0,    0,  324,  326,  326,    0,    0,    0,    0,    0,
474         3,    0,    0,    0,    0,    0,    0,    0,  348,    0,
475        27,   27,    0,    0,    0,    0,    0,    0,    0,    0,
476         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
477         0,    0,    0,    0,    0,    0,    0,    0,    0,   38,
478         0,    0,   53,    0,    0,   53,    0,    0,    0,  343,
479        75,    0,    0,   75,   75,   75,   75,    0,    0,    0,
480
481        98,   98,   98,    0,    0,    0,    0,  115,  115,  115,
482         0,    0,  126,    0,    0,  157,    0,    0,  157,  157,
483       157,  157,    0,    0,    0,    0,  170,    0,    0,  197,
484         0,    0,    0,    0,  197,  197,  197,  197,  197,    0,
485         0,    0,    0,    0,    0,  237,    0,    0,  237,  237,
486       237,    0,    0,  260,  260,  260,  260,    0,    0,    0,
487       287,  287,  287,  287,    0,    0,    0,    0,    0,    0,
488       315,  315,  315,  315,    0,    0,    0,  326,    0,    0,
489         0,   14,    1,    0,    0,  336,    0,    0,    0,  333,
490       332,    0,    0,   27,   27,    0,    0,   29,    0,    0,
491
492         0,    0,    0,    0,    0,    0,    0,    0,    0,  103,
493         0,    0,    0,    0,    0,    0,    0,  102,    0,    0,
494         0,    0,    0,    0,   38,    0,    0,   40,    0,   53,
495         0,   45,   44,   53,    0,    0,    0,   55,    0,   75,
496         0,   59,   58,    0,    0,   75,    0,    0,   75,    0,
497         0,   77,    0,    0,   98,   98,   98,    0,    0,  100,
498         0,    0,  105,  104,  115,  115,  115,    0,    0,  117,
499         0,  126,    0,    0,  128,    0,  157,    0,  133,  132,
500       157,  157,  157,  157,    0,    0,  159,    0,    0,  164,
501       163,  170,    0,    0,  172,    0,  197,  197,    0,  187,
502
503       186,    0,  177,  176,    0,    0,  197,  197,  197,  197,
504         0,    0,  199,    0,    0,  204,  203,    0,    0,  210,
505         0,  237,    0,  215,  214,  237,  237,  237,    0,    0,
506       239,    0,  260,    0,    0,    0,    0,  260,    0,    0,
507         0,  262,    0,  287,    0,    0,  287,    0,    0,    0,
508         0,  289,    0,    0,  294,  293,    0,    0,  300,    0,
509       315,  315,  315,  315,    0,    0,  317,    0,    0,  326,
510         0,    0,  328,    0,    0,    0,  337,  331,    0,    0,
511         0,   27,   27,    0,    0,    0,    0,  131,    0,  213,
512         0,    0,  161,    0,    0,  103,    0,    0,    0,  130,
513
514       212,    0,    0,  102,    0,    0,    0,    0,    0,    0,
515         0,    0,    0,    0,    0,   53,    0,    0,   75,    0,
516        63,   62,    0,    0,    0,   61,   60,   75,    0,  162,
517        98,    0,    0,   98,    0,  115,  115,  115,    0,  126,
518         0,  157,  157,  157,  157,  157,    0,  170,    0,  197,
519       197,    0,  189,  188,  197,  197,  197,  197,    0,    0,
520       237,  237,  237,  237,    0,  260,    0,  246,  245,    0,
521       244,  243,  260,  212,    0,  287,    0,  269,  268,  287,
522         0,  267,  266,    0,    0,  315,    0,    0,  315,  315,
523         0,    0,  326,    0,    0,    0,    0,   12,    0,  334,
524
525       335,    0,   27,   27,    0,    0,    0,    0,  131,    0,
526       213,    0,    0,    0,  161,    0,  265,   43,    0,    0,
527       130,  212,    0,  265,   42,    0,  264,    0,  264,   42,
528         0,   34,   33,    0,    0,   47,   46,   53,    0,    0,
529        75,    0,   65,   64,   75,    0,  162,   98,    0,    0,
530         0,    0,    0,    0,  115,  115,  115,    0,  116,  126,
531         0,  157,  157,  157,    0,    0,    0,    0,  157,    0,
532         0,    0,    0,    0,    0,  197,    0,    0,  197,  197,
533       197,    0,    0,  237,  237,  237,    0,    0,  237,    0,
534       260,  260,    0,    0,  287,  287,    0,    0,  315,    0,
535
536       305,  304,  315,  315,    0,    0,    0,    0,    0,    0,
537         0,    0,   11,    0,   27,   27,   27,    0,    0,    0,
538         0,    0,    0,    0,    0,   57,  265,    0,  202,   43,
539         0,    0,    0,   56,  201,   42,    0,  264,    0,    0,
540         0,    0,   53,    0,    0,   75,   75,    0,   98,    0,
541         0,    0,    0,    0,    0,    0,    0,    0,   92,   91,
542         0,    0,    0,  115,    0,    0,    0,    0,    0,  157,
543       157,  157,    0,  135,  134,    0,    0,    0,  157,    0,
544       158,    0,  166,  165,    0,  171,    0,  191,  190,    0,
545         0,    0,  185,  184,    0,    0,  197,    0,    0,    0,
546
547         0,  237,  237,  237,    0,    0,    0,  237,    0,  238,
548         0,    0,  260,    0,    0,    0,    0,  287,    0,    0,
549       315,  315,  315,    0,    0,    0,  322,  321,    0,    0,
550         0,    0,    0,    0,    0,   27,   27,    0,    0,  175,
551       120,   32,    0,    0,  303,   57,    0,  202,    0,  174,
552       119,   56,  201,  302,    0,   31,    0,    0,   53,    0,
553         0,   54,   75,   75,    0,    0,    0,    0,    0,    0,
554         0,    0,    0,    0,    0,    0,    0,    0,    0,  107,
555       106,    0,    0,    0,  109,  108,    0,  122,  121,    0,
556       157,  157,  157,    0,    0,  157,    0,  193,  192,    0,
557
558       179,  178,    0,    0,    0,  181,  180,    0,    0,  237,
559         0,    0,  237,  237,    0,    0,  237,    0,    0,    0,
560       260,    0,    0,    0,    0,    0,  287,    0,  288,    0,
561       315,  315,  315,    0,    0,    0,    0,    0,    0,   17,
562         0,   19,   18,   27,   27,    0,  319,  175,  120,   32,
563       291,   16,  303,    0,    0,  174,  119,  302,    0,   31,
564         0,    0,   53,  342,   75,   75,    0,   76,    0,   94,
565        93,    0,    0,    0,    0,    0,    0,    0,    0,    0,
566         0,    0,    0,  111,  110,    0,  157,  157,  157,    0,
567         0,    0,    0,  157,    0,  183,  182,    0,    0,  209,
568
569       237,    0,  221,  220,  237,  237,    0,    0,    0,    0,
570       237,    0,    0,    0,    0,  260,  292,    0,    0,    0,
571         0,    0,  287,    0,    0,    0,  315,  315,    0,  320,
572         0,    0,    0,    0,   17,   27,   27,    0,  319,  291,
573        16,    0,    0,    0,    0,    0,   39,   53,    0,    0,
574        75,    0,    0,    0,    0,    0,    0,    0,    0,    0,
575         0,    0,    0,  127,  157,  157,  157,    0,  141,    0,
576       140,  157,    0,  198,    0,    0,  237,  237,  237,    0,
577       225,    0,  224,  237,    0,    0,    0,    0,    0,    0,
578         0,    0,  292,    0,    0,    0,    0,    0,    0,    0,
579
580       287,    0,    0,  307,  306,    0,    0,  315,    0,  316,
581       320,    0,    0,    0,    0,    0,    0,   27,    0,   28,
582         0,    0,    0,    0,   53,    0,    0,    0,   75,    0,
583         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
584       157,  157,  157,  143,  142,    0,    0,    0,  217,  216,
585       237,  237,  237,  227,  226,    0,    0,    0,    0,    0,
586         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
587         0,    0,    0,  287,  287,    0,  299,    0,  311,  310,
588         0,    0,    0,  327,    0,    0,    0,    0,   21,   20,
589         0,    0,  242,    0,  241,    0,    0,    0,    0,    0,
590
591         0,    0,   75,    0,    0,    0,    0,   84,    0,    0,
592         0,    0,   83,    0,  157,  157,  157,    0,  145,  144,
593       237,  237,  237,    0,  229,  228,    0,    0,    0,    0,
594         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
595         0,    0,    0,  287,  287,    0,  309,  308,    0,    0,
596         0,    0,   23,   22,  242,    0,  241,    0,    0,   49,
597        48,    0,    0,    0,    0,   75,    0,    0,    0,    0,
598         0,    0,    0,    0,    0,    0,    0,  157,  157,  157,
599       237,    0,    0,  237,    0,    0,    0,    0,    0,    0,
600         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
601
602         0,  287,  287,    0,    0,    0,    0,   80,   79,    0,
603         0,    0,    0,    0,    0,    0,    0,   90,    0,    0,
604         0,   89,    0,    0,    0,  137,  136,  157,  157,  157,
605       157,  237,    0,  223,  222,  237,    0,    0,    0,    0,
606         0,    0,  256,    0,  255,    0,    0,  261,    0,    0,
607         0,    0,    0,    0,    0,    0,  287,    0,    0,  287,
608         0,    0,    0,    0,    0,    0,   80,   79,    0,    0,
609         0,    0,    0,   67,   66,    0,    0,    0,    0,    0,
610         0,    0,  157,  157,  157,  157,    0,    0,    0,    0,
611         0,    0,    0,    0,    0,    0,  254,  253,    0,    0,
612
613         0,    0,    0,    0,    0,  273,  272,  287,    0,  271,
614       270,  287,    0,    0,    0,    0,    0,    0,    0,   71,
615         0,   70,   88,    0,    0,   87,    0,    0,    0,   99,
616       157,  157,  157,  157,    0,  219,  218,    0,    0,    0,
617         0,    0,  250,    0,    0,  249,    0,    0,  281,    0,
618         0,  280,  287,  287,    0,    0,    0,   12,    0,   12,
619         0,    0,    0,   82,   86,   81,   85,  157,  157,  157,
620       157,    0,    0,    0,    0,  252,  248,  251,  247,  283,
621       279,  282,  278,  287,  287,    0,    0,    0,    0,    0,
622         0,    0,    0,    0,    0,    0,    0,    0,  157,    0,
623
624         0,    0,    0,    0,    0,  287,  287,    0,    0,   69,
625        68,    0,  139,  138,    0,  149,  148,    0,  147,  146,
626       157,    0,  153,  152,    0,    0,    0,    0,  287,  287,
627         0,   11,  157,    0,    0,    0,    0,  287,  287,    0,
628       157,    0,    0,    0,    0,  287,  287,    0,  157,    0,
629         0,    0,    0,  287,  287,    0,    0,    0,    0,  231,
630         0,  230,  287,  287,    0,    0,  151,  150,  233,  232,
631       287,  287,    0,  287,  287,    0,  287,  287,    0,    0,
632       287,  287,    0,    0,  287,  287,    0,    0,  287,  287,
633         0,    0,    0,    0,    0,    0,    0,    0,    0,  277,
634
635       276,    0,  275,  274,    0,    0,    0,    0,    0,    0,
636         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
637        13,    0
638     } ;
639
640 static yyconst flex_int32_t yy_ec[256] =
641     {   0,
642         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
643         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
644         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
645         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
646         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
647        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
648        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
649        28,   29,   30,   28,   31,   32,   33,   34,   35,   36,
650        28,   37,   38,   39,   28,   40,   41,   28,   42,   28,
651        43,    1,   44,    1,   45,    1,   46,   47,   48,   49,
652
653        50,   51,   52,   53,   54,   28,   55,   56,   57,   58,
654        59,   60,   61,   62,   63,   64,   65,   66,   67,   68,
655        69,   28,    1,    1,    1,    1,    1,    1,    1,    1,
656         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
657         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
658         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
659         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
660         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
661         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
662         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
663
664         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
665         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
666         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
667         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
668         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
669         1,    1,    1,    1,    1
670     } ;
671
672 static yyconst flex_int32_t yy_meta[70] =
673     {   0,
674         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
675         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
676         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
677         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
678         5,    5,    1,    1,    5,    9,    9,    9,    9,    9,
679         9,    5,    5,    5,    5,    5,    5,    5,    5,    5,
680         5,    5,    5,    5,    5,    5,    5,    5,    5
681     } ;
682
683 static yyconst flex_int16_t yy_base[2256] =
684     {   0,
685         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
686        14,   17,   33,   36,   49,   55,   45,   61,   66,   72,
687       105,  173,   75,   78,   83,  125,  128,  132,  135,  138,
688       193,  196,  200,  203,  206,  224,  242,  293,  262,  265,
689       344,  404,  271,  273,  464,  527,  269,  316,  320,  323,
690       364,  367,  371,  374,  590,  654,  424,  427,  718,  781,
691       431,  434,  844,  907,  484,  487,  491,  494,  497,  547,
692       970, 1033,  550,  554,  557,  560,  610,  613,  617,  620,
693      1096, 1162,  623,  674, 1228,    0,  677,  681, 1297, 1351,
694       684,  687, 1405, 1468,  738,  741,  745,  748,  751,  801,
695
696       804,  808, 1531, 1594,  811,  814,  864,  867,  871,  874,
697       877,  927, 1657, 1720,  930,  934,  937,  940,  990,  993,
698       997, 1000, 1783, 1837, 1003, 1053, 1891, 1954, 1056, 1060,
699      1063, 1066, 1116, 1119, 1123, 1126, 2017, 2083, 1129, 1182,
700         0,    0, 5066, 7094, 7094,   95,  100,   29,   41, 7094,
701       155,   51, 7094, 7094, 5055, 7094, 7094, 5043, 7094, 5058,
702      5042, 1141, 7094, 7094, 7094, 7094, 5036, 5032, 4990,  210,
703      7094,  158, 5012,    0,  142, 7094, 4977, 4969, 7094,  162,
704      2145, 2205,  160, 5007,  176, 7094,  165, 4998,    0,  149,
705      7094, 4961, 7094,  230,  378, 7094,  326, 4994,    0,  208,
706
707      7094, 4958, 4949, 4947,  379, 4950, 7094,  329, 4972,    0,
708       214, 7094, 4938, 4937,  238, 4915, 7094,  377,   11,   31,
709      4965, 7094,  399, 4948,    0,  435, 7094, 4907, 4905, 4888,
710      7094,  457,  441, 7094,  520, 4922,    0,  436, 7094, 4892,
711      4870, 4871, 4851, 7094,  583,  498, 7094,  640, 4894,    0,
712       499, 7094, 4862,  513, 4840, 7094,  644, 4879, 7094,  647,
713      4870,    0,  562, 7094, 4802,   34, 4821, 4797, 4788, 7094,
714       704,  177, 4838, 7094,  708, 4827,    0,  568, 7094, 4793,
715      4783, 7094,  711,  752, 7094,  772, 4808,    0,  631, 7094,
716       211, 4777, 4775,   93, 4773, 4753, 7094,  834,  818, 7094,
717
718       894, 4796,    0,  632, 7094, 4753, 7094,  897,  881, 7094,
719       901, 4781,    0,  695, 7094, 4739, 4735, 4736,   80, 7094,
720       957,  360, 4765, 7094,  960, 4755,    0,  696, 7094, 4726,
721      4709,   26,  304, 7094,  963,  330, 4746, 7094, 1149, 4726,
722         0,  885, 7094, 4694, 4675, 4679, 4673, 7094, 1152,  499,
723      4721, 7094, 1155, 4705,    0,  948, 7094, 4672, 7094, 1186,
724      1005, 7094, 1192, 4696,    0, 1004, 7094, 4650, 4654, 4655,
725      4643, 7094, 1205, 1100, 4694, 4691, 7094, 1208, 4678,    0,
726      1007, 7094, 4650, 7094, 1211, 1068, 1215,  429, 4627, 7094,
727      4683, 4665, 7094, 7094, 7094, 1306,  283, 4614, 4612, 4607,
728
729      4647, 4609, 7094,    0, 4598, 4601, 4586, 4583, 4584, 4580,
730      4574, 4570, 4573,    4,  166, 4567, 4554, 4558, 4546, 4545,
731      4541,  404, 4544, 4530,   38,  467, 4530,  712, 4523, 7094,
732         0, 4526, 4527, 7094,    0, 4523, 1320, 4516,  533, 4512,
733      4555, 7094,    0, 4514, 1323, 4486, 4507, 4493, 4497, 4477,
734        89, 7094,    0, 4488, 4462, 4473, 4453, 7094,    0, 1326,
735      4459, 4459, 4455, 4435, 7094,    0, 4429, 4441, 7094,    0,
736      4444, 1329, 4422, 4400, 4400, 4419, 4407, 7094,    0, 1373,
737      4398, 4393, 7094,    0, 4406, 1377, 1380, 4375, 4371, 4386,
738      4372, 4366, 4367, 7094,    0, 1383, 4348, 7094,    0, 4351,
739
740      1425, 4340, 4357, 4355, 4340, 7094,    0, 4327, 4326, 4340,
741      4326, 4323, 4308, 7094,    0, 4305, 4289, 4291, 4298, 4283,
742      7094,    0, 1428, 4287, 7094,    0, 4277, 4271, 4272, 4280,
743      4264, 4261, 7094,    0, 4265, 4267, 4286, 4295,  807, 4246,
744      7094, 1207,    0, 4229, 4229, 4269, 4268, 4224, 7094, 4231,
745      4213, 4213, 1431, 1434, 4218, 4203, 4205, 4201, 4215, 4194,
746      4202, 4187, 4187, 4178, 4170, 4186, 4165, 4167, 4164, 4155,
747      4154, 4145, 4145, 4157, 4143, 4135, 4141, 4122, 4139, 4128,
748      1437, 1489, 4127, 1494, 1497, 4108, 4137, 1551, 1556, 7094,
749      4106, 1559, 1514, 1562, 4097, 1565, 4108, 1619, 1627, 4090,
750
751      4091, 4097, 4083, 1622, 1630, 1677, 1583, 4079, 4065, 4067,
752      1682, 1695, 4068, 1685, 1740, 4058, 1691, 1642, 4059, 4062,
753      4056, 4037, 1745, 1748, 1751, 1710, 4035, 1755, 1808,  583,
754      1811, 1814, 1857, 1860, 1869, 4032, 4030, 4025, 4021, 1911,
755      1920, 1914, 1880, 1917, 1923, 4022, 1926, 1975, 4014, 3994,
756      3987, 1983, 1986, 3996, 1989, 1992, 3981, 3977, 2039, 2046,
757      3979, 1997, 3983, 2043, 2049, 2052, 2061, 2072, 2104, 2110,
758      3976, 3952, 3959, 3943, 2113, 2116, 3952, 3927, 2119, 2138,
759      3970, 7094, 7094,  315, 3922, 7094, 3934, 3933, 3878, 7094,
760      7094, 3872, 3870, 3879, 3868, 2141, 2149, 7094, 2168, 3865,
761
762      3859, 3871, 3849, 3854, 3849, 3830,  261, 3839, 3819, 1223,
763      3834, 3802, 3814, 3798, 3796, 3801, 3784, 1332, 3795,  384,
764      3777, 3784, 3774, 3788, 2144, 2172, 2177, 7094, 2182, 2209,
765      2216, 7094, 7094, 2229, 3810, 2232, 2235, 7094, 2240, 3756,
766      2268, 7094, 7094, 2243, 2276, 2287, 2290, 2293, 3767, 2301,
767      2308, 7094, 2311,  432, 3761, 2314, 3760, 2320, 2323, 7094,
768      2332, 2335, 7094, 7094, 3754, 3751, 3743, 2343, 2346, 7094,
769      2351, 3739, 2354, 2357, 7094, 2377, 3735, 2380, 7094, 7094,
770      3728, 3721, 3717, 3727, 2388, 2391, 7094, 2396, 2400, 7094,
771      7094, 3722, 2410, 2415, 7094, 2418, 3702, 3717, 2422, 7094,
772
773      7094, 2438, 7094, 7094, 2430, 2448, 3700, 3698, 3703, 3695,
774      2458, 2461, 7094, 2464, 2467, 7094, 7094, 2483, 2486, 7094,
775      2489, 3673, 2492, 7094, 7094, 3679, 3672, 3662, 2508, 2511,
776      7094, 2514, 3611, 2517, 2521, 2536, 2539, 3618, 3612, 2547,
777      2554, 7094, 2557, 3602, 2560, 2567, 3607, 2578, 2581, 2589,
778      2592, 7094, 2596, 2599, 7094, 7094, 2611, 2615, 7094, 2621,
779      3590, 2624, 3607, 3576, 2630, 2634, 7094, 2642, 3573, 3586,
780      2645, 2649, 7094, 2653,  726, 2656, 7094, 7094, 3618, 3616,
781      3569, 3560, 3587, 2664, 3545, 3528, 3544, 1386, 3520, 2152,
782      3533, 3532, 1460, 3512, 3519, 1463, 3518, 3502, 3518, 1523,
783
784      2678, 3504, 3511, 1526, 3497, 3496, 3494, 3478, 3491, 3490,
785      2668, 2686, 2694, 2700, 2704, 3489, 3504, 2713, 3479, 2718,
786      7094, 7094, 2727, 2732, 2745, 7094, 7094, 3473, 2740, 1650,
787      3457, 2753, 2760, 2771, 2774, 3446, 3466, 3439, 2777, 3457,
788      2780, 3458, 3452, 3436, 2783, 2789, 2801, 2807, 2811, 2814,
789      2821, 2833, 7094, 7094, 2825, 2843, 2847, 2850, 2853, 2856,
790      3442, 3447, 3431, 2876, 2879, 3430, 2885, 7094, 7094, 2894,
791      7094, 7094, 3418, 2903, 2906, 3419, 2921, 7094, 7094, 3412,
792      2929, 7094, 7094, 2937, 2940, 3420, 2910, 2943, 3401, 3418,
793      2951, 3402, 2959, 2962,  181, 3437, 2965, 7094, 3436, 7094,
794
795      7094, 3395, 3388,  518, 2970, 3395, 3393, 3394, 1705, 3391,
796      1769, 3387, 3375, 3365, 1774, 3370, 2973, 2977, 3375, 3365,
797      1777, 1829, 3354, 2984, 2994, 3347, 3000, 3358, 3003, 3009,
798      3020, 7094, 7094, 3030, 3034, 7094, 7094, 3351, 3362, 3049,
799      3328, 3052, 7094, 7094, 3325, 3064, 1832, 3325, 3068, 1059,
800      1113, 3045, 3076, 3084, 3087, 3090, 3094, 3098, 7094, 3108,
801      3112, 3337, 3333, 3317, 3117, 3122, 3135, 3138, 3328, 3146,
802      3149, 3153, 3161, 3167, 3170, 3180, 3185, 3188, 3198, 3203,
803      3206, 3209, 3212, 3328, 3307, 3321, 3216, 3224, 3321, 3234,
804      3237, 3241, 3322, 3244, 3247, 3265, 3268, 3273, 3310, 3276,
805
806      7094, 7094, 3313, 3302, 3288, 3306, 3293, 3296, 3311, 1422,
807       612,  568, 7094, 3279, 3317, 3320, 3323, 3326, 3282, 3275,
808      3282, 3267, 3252, 3249, 3246, 1875, 1945, 3250, 1948, 2010,
809      3258, 3242, 3248, 3330, 3341, 3345, 3224, 3348, 3229, 3233,
810      3233, 3351, 3226, 3243, 3355, 3204, 3207, 3358, 3361, 3236,
811      3222,  260, 3220, 3231, 3217,  421, 3207, 3384, 7094, 7094,
812      3392, 3395, 3400, 3414, 3417, 3420, 3428, 3435, 3446, 3180,
813      3169, 3172, 3449, 7094, 7094, 3458, 3188, 3186, 3149, 3466,
814      7094, 3469, 7094, 7094, 3477, 7094, 3481, 7094, 7094, 3489,
815      3496, 3507, 7094, 7094, 3515, 3518, 3526, 3529, 3533, 3547,
816
817      3550, 3134, 3553, 3151, 3556, 3160, 3158, 3131, 3571, 7094,
818      3574, 3577, 3585, 3116, 3597, 3592, 3612, 3603, 3606, 3621,
819      3120, 3120, 3121, 3625, 3109, 3628, 7094, 7094, 3640,  808,
820      1330,  747, 3104, 3644, 3647, 3655, 3662, 3669, 3096, 3673,
821      3676, 3680, 3087, 3086, 3683, 3689, 3070, 3692, 3074, 3695,
822      3698, 3701, 3704, 3707, 3065, 3712, 3070, 3715, 3068, 3074,
823      3718, 7094, 3046, 3061, 3721, 3726, 3730, 3071, 3065, 3044,
824      3047, 3035, 3041, 3035, 3024, 3026, 3018, 3740, 3744, 7094,
825      7094, 3752, 3755, 3764, 7094, 7094, 3772, 7094, 7094, 3780,
826      3001, 2995, 2985,  669,  743, 2986, 3783, 7094, 7094, 3792,
827
828      7094, 7094, 3800, 3803, 3811, 7094, 7094, 3819, 3822, 2988,
829      3825, 3828, 2988, 2970,  806,  857, 2972, 3843,  358,  361,
830      3851, 2962, 3854, 3857,  658,  785, 3865, 3869, 7094, 3873,
831      3876, 2968, 2960, 3883, 2950, 3894, 3888,  927, 1009, 3898,
832      3903, 7094, 7094, 3913, 3916, 3922, 3925, 3936, 3941, 3945,
833      3951, 3954, 3957, 2953, 2950, 3960, 3963, 3967, 2938, 3970,
834      2934, 3973, 2927, 7094, 3979, 2920, 3982, 7094, 3985, 7094,
835      7094, 2958, 2920, 2932, 2925, 2925, 2925, 2909, 2911, 2905,
836      2902, 3993, 3997, 7094, 7094, 4005, 2868, 2859, 2848, 2865,
837      2878, 2850, 2865, 2818, 4008, 7094, 7094, 4016, 4019, 7094,
838
839      4024, 4028, 7094, 7094, 2810, 2784, 2761, 2746, 2713, 2723,
840      2624,   81,  919,  466,  985, 4038, 4042, 4045,  474, 1048,
841       477, 1057, 4051, 4056, 4059, 4071, 4064,  527, 4082, 4085,
842      4088, 4091,  748,  840, 4095, 4101, 4113, 4119, 4122, 4125,
843      4131,  518,  548,  565,  624, 4134, 7094,  665, 4138, 4141,
844       706,  738,  786,  838,  838,  886,  894,  901,  915,  912,
845       931, 4156, 4162, 7094,  934,  971,  965, 1025, 7094, 1023,
846      7094, 4165, 4168, 7094, 4171, 4177,  998, 1005, 1019, 1080,
847      7094, 1115, 7094, 4189, 1109, 1100, 1117, 1135, 1140, 1165,
848      4192, 4195, 4203, 4213, 1166, 1160, 1173, 1175, 1165, 1178,
849
850      4216, 4219, 4222, 7094, 7094, 4234, 4238, 4247, 4252, 7094,
851      4255, 4258, 1293, 1347, 1384, 4271, 4278, 4289, 4292, 7094,
852      1169, 1287, 1284, 1293, 4295, 4298, 1366, 1470, 1285, 1316,
853      1325, 1349, 1371, 1391, 1368, 1378, 1397, 1423, 1437, 4307,
854      1381, 1403, 1403, 7094, 7094, 4313, 4316, 4327, 7094, 7094,
855      1402, 1410, 1430, 7094, 7094, 4335, 4338, 1457, 1463, 1468,
856      1468, 1469, 1474, 4346, 1548, 1549, 4354, 1477, 1480, 1485,
857      1519, 1518, 1534, 4357, 4360, 4364, 7094, 4369, 7094, 7094,
858      4378, 4383, 4391, 7094, 1573, 1552, 1559, 4396, 7094, 7094,
859      4404, 4410, 4422, 1525, 4425, 1540, 4428, 4431, 1579, 1598,
860
861      1590, 1606, 1577, 1611, 1601, 1607, 1615, 7094, 1631, 1642,
862      1641, 1650, 7094, 4439, 4442, 1646, 1659, 4446, 7094, 7094,
863      1661, 4454, 1670, 4460, 7094, 7094, 1699, 1710, 1730, 1724,
864      1726, 1741, 1747, 1779, 1771, 1782, 4468, 1772, 1783, 1795,
865      1785, 1788, 1799, 4472, 4475, 4493, 7094, 7094, 1916, 1833,
866      4481, 4501, 7094, 7094, 4478, 1765, 4509, 1801, 4512, 7094,
867      7094, 1845, 1834, 1852, 1841, 4522, 1848, 1868, 1901, 1910,
868      1899, 1917, 1932, 1931, 4525, 4528, 4531, 1919, 1995, 1921,
869      1952, 4540, 4546, 1935, 1980, 1989, 1999, 2009, 2018, 2033,
870      2062, 2032, 2062, 2035, 4554, 2047, 2053, 2048, 2069, 2083,
871
872      2076, 4558, 4561, 2108, 4564, 4567, 4587, 4595, 4598, 2091,
873      2104, 2097, 2107, 4606, 4609, 2105, 2105, 7094, 2107, 2109,
874      2130, 7094, 2132, 4617, 4620, 7094, 7094, 2111, 2117, 2123,
875      2131, 4628, 4632, 7094, 7094, 4640, 2157, 2149, 2162, 2164,
876      2156, 2169, 7094, 2189, 7094, 2194, 4646, 7094, 2179, 2172,
877      2190, 2191, 2187, 2198, 4649, 4652, 4660, 4667, 4671, 4680,
878      2204, 4685, 4688, 4708, 4747, 4791, 4698, 4716, 2202, 2223,
879      2215, 2232, 4720, 7094, 7094, 2243, 2218, 2222, 2248, 2232,
880      2234, 4737, 2217, 2227, 2218, 2217, 4741, 4728, 4759, 4767,
881      2257, 2259, 2281, 2272, 2275, 2292, 7094, 7094, 2281, 2283,
882
883      2313, 2294, 2304, 2321, 4777, 7094, 7094, 4785, 4811, 7094,
884      7094, 4803, 2345, 4821, 2356, 2355, 4857, 4901, 2318, 7094,
885      2328, 7094, 7094, 2345, 2361, 7094, 2359, 2361, 4829, 7094,
886      2322, 2307, 2336, 2337, 4834, 7094, 7094, 4842, 2410, 2418,
887      2382, 2390, 7094, 2392, 2396, 7094, 2404, 2417, 7094, 2418,
888      2420, 7094, 4851, 4869, 2423, 2452, 2454, 2430, 2488, 2437,
889      4877, 2438, 2440, 7094, 7094, 7094, 7094, 4880, 4892, 4921,
890      4924, 2457, 2453, 2461, 2470, 7094, 7094, 7094, 7094, 7094,
891      7094, 7094, 7094, 4927, 4932, 4935, 2494, 2481, 2495, 4945,
892      2499, 2498, 4950, 4883, 4954, 4958, 4968, 4972, 2460, 4980,
893
894      4987, 2487, 2510, 2494, 2513, 4998, 5001, 5004, 2517, 7094,
895      7094, 5007, 7094, 7094, 5019, 7094, 7094, 5027, 7094, 7094,
896      2494, 5035, 7094, 7094, 2510, 2510, 2516, 2516, 5045, 5048,
897      2546, 7094, 2517, 2538, 2549, 2548, 2560, 5051, 5054, 2569,
898      2538, 2570, 2585, 2575, 2595, 5057, 5075, 2601, 5078, 2603,
899      2624, 2613, 2633, 5081, 5084, 2665, 5087, 5110, 2657, 7094,
900      2655, 7094, 5118, 5121, 2666, 5139, 7094, 7094, 7094, 7094,
901      5147, 5150, 5153, 5156, 5159, 5168, 5182, 5187, 2655, 2663,
902      5194, 5201, 2658, 2691, 5205, 5208, 2680, 2738, 5212, 5226,
903      2673, 2719, 5231, 5237, 5253, 5256, 2703, 2739, 5264, 7094,
904
905      7094, 5273, 7094, 7094, 2778, 2787, 2747, 2750, 2850, 2852,
906      2799, 2818, 2689, 2748, 2855, 2866, 2800, 2881, 5281, 5284,
907      7094, 7094, 5304, 5313, 5322, 5331, 5340, 5349, 5358, 5367,
908      5376, 5385, 5394, 5403, 5412, 5421, 5430, 5439, 5448, 5457,
909      5466, 5475, 5484, 5493, 5502, 5511, 5520, 5529, 5538, 5547,
910      5556, 5565, 5574, 5583, 5592, 5601, 5610, 5619, 5628, 5637,
911      5646, 5653, 5660, 5667, 5674, 5681, 5688, 5695, 5702, 5709,
912      5716, 5723, 5730, 5737, 5744, 5751, 5758, 5765, 5774, 5779,
913      5784, 5789, 5794, 5799, 5804, 5809, 5814, 5819, 5826, 5831,
914      5838, 5843, 5850, 5855, 5862, 5867, 5874, 5879, 5886, 5891,
915
916      5898, 5903, 5910, 5915, 5924, 5930, 5937, 5945, 5952, 5960,
917      5967, 5975, 5982, 5990, 5997, 6005, 6012, 6020, 6027, 6035,
918      6042, 6050, 6057, 6065, 6072, 6080, 6088, 6095, 6103, 6110,
919      6118, 6125, 6133, 6141, 6148, 6156, 6163, 6171, 6180, 6186,
920      6193, 6201, 6209, 6217, 6225, 6233, 6240, 6248, 6255, 6263,
921      6270, 6278, 6285, 6293, 6300, 6308, 6315, 6323, 6330, 6338,
922      6346, 6353, 6361, 6368, 6376, 6383, 6391, 6399, 6406, 6414,
923      6421, 6429, 6438, 6447, 6454, 6462, 6470, 6477, 6485, 6492,
924      6500, 6507, 6515, 6522, 6530, 6537, 6545, 6552, 6560, 6568,
925      6576, 6584, 6592, 6600, 6607, 6615, 6622, 6630, 6637, 6645,
926
927      6653, 6660, 6668, 6676, 6684, 6693, 6702, 6709, 6717, 6725,
928      6732, 6740, 6747, 6755, 6762, 6770, 6778, 6786, 6794, 6801,
929      6809, 6817, 6825, 6833, 6841, 6848, 6856, 6864, 6872, 6880,
930      6888, 6896, 6903, 6911, 6919, 6928, 6937, 6945, 6953, 6961,
931      6968, 6976, 6983, 6991, 6999, 7007, 7015, 7023, 7030, 7039,
932      7048, 7057, 7066, 7075, 7084
933     } ;
934
935 static yyconst flex_int16_t yy_def[2256] =
936     {   0,
937      2023, 2023, 2024, 2024, 2024, 2024, 2025, 2025, 2026, 2026,
938      2027, 2027, 2028, 2028, 2028, 2028, 2029, 2029, 2023, 2023,
939      2030, 2030, 2031, 2031, 2031, 2031, 2023, 2023, 2031, 2031,
940      2023, 2023, 2031, 2031, 2031, 2031, 2032, 2032, 2033, 2033,
941      2034, 2034, 2028, 2028, 2035, 2035, 2036, 2036, 2023, 2023,
942      2036, 2036, 2036, 2036, 2037, 2037, 2038, 2038, 2039, 2039,
943      2040, 2040, 2041, 2041, 2023, 2023, 2023, 2023, 2042, 2042,
944      2043, 2043, 2044, 2044, 2023, 2023, 2044, 2044, 2044, 2044,
945      2045, 2045, 2046, 2046, 2022,   85, 2047, 2047, 2048, 2048,
946      2049, 2049, 2050, 2050, 2051, 2051, 2023, 2023, 2051, 2051,
947
948      2051, 2051, 2052, 2052, 2023, 2023, 2023, 2023, 2053, 2053,
949      2053, 2053, 2054, 2054, 2055, 2055, 2023, 2023, 2055, 2055,
950      2055, 2055, 2056, 2056, 2057, 2057, 2058, 2058, 2059, 2059,
951      2023, 2023, 2059, 2059, 2059, 2059, 2060, 2060, 2061, 2061,
952      2023, 2023, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
953      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
954      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
955      2022, 2022, 2022, 2062, 2022, 2022, 2062, 2062, 2022, 2022,
956      2022, 2022,  181,  182,  182, 2022, 2022, 2022, 2063, 2022,
957      2022, 2063, 2022, 2022, 2022, 2022, 2022, 2022, 2064, 2022,
958
959      2022, 2064, 2064, 2064, 2022, 2022, 2022, 2022, 2022, 2065,
960      2022, 2022, 2065, 2065, 2065, 2065, 2022, 2022,  185,  185,
961       185, 2022, 2022, 2022, 2066, 2022, 2022, 2066, 2066, 2066,
962      2022, 2022, 2022, 2022, 2022, 2022, 2067, 2022, 2022, 2067,
963      2067, 2067, 2067, 2022, 2022, 2022, 2022, 2022, 2022, 2068,
964      2022, 2022, 2068,  185,  254, 2022, 2022,  185, 2022, 2022,
965      2022, 2069, 2022, 2022, 2069, 2069, 2069, 2069, 2069, 2022,
966      2022,  185,  185, 2022, 2022, 2022, 2070, 2022, 2022, 2070,
967      2070, 2022, 2022, 2022, 2022, 2022, 2022, 2071, 2022, 2022,
968      2071, 2071, 2071, 2071, 2071, 2071, 2022, 2022, 2022, 2022,
969
970      2022, 2022, 2072, 2022, 2022, 2072, 2022, 2022, 2022, 2022,
971      2022, 2022, 2073, 2022, 2022, 2073, 2073, 2073, 2073, 2022,
972      2022,  185,  185, 2022, 2022, 2022, 2074, 2022, 2022, 2074,
973      2074, 2074,  185, 2022, 2022,  185,  185, 2022, 2022, 2022,
974      2075, 2022, 2022, 2075, 2075, 2075, 2075, 2022, 2022,  185,
975       185, 2022, 2022, 2022, 2076, 2022, 2022, 2076, 2022, 2022,
976      2022, 2022, 2022, 2022, 2077, 2022, 2022, 2077, 2077, 2077,
977      2077, 2022, 2022,  185,  374,  185, 2022, 2022, 2022, 2078,
978      2022, 2022, 2078, 2022, 2022, 2022, 2022, 2079, 2022, 2022,
979      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
980
981      2022, 2022, 2022, 2062, 2062, 2062, 2080, 2022, 2022, 2022,
982      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
983      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
984      2063, 2063, 2081, 2022, 2064, 2064, 2064, 2064, 2022, 2082,
985      2022, 2022, 2065, 2065, 2065, 2065, 2065, 2065, 2065, 2083,
986      2022, 2022, 2066, 2066, 2066, 2066, 2084, 2022, 2067, 2067,
987      2067, 2067, 2067, 2085, 2022, 2068, 2068, 2086, 2022, 2069,
988      2069, 2069, 2069, 2069, 2069, 2069, 2087, 2022, 2070, 2070,
989      2070, 2088, 2022, 2089, 2089, 2089, 2089, 2089, 2089, 2089,
990      2089, 2089, 2090, 2022, 2091, 2091, 2092, 2022, 2093, 2093,
991
992      2093, 2093, 2093, 2093, 2094, 2022, 2095, 2095, 2095, 2095,
993      2095, 2022, 2096, 2022, 2097, 2097, 2097, 2097, 2097, 2098,
994      2022, 2099, 2099, 2100, 2022, 2101, 2101, 2101, 2101, 2101,
995      2102, 2022, 2022, 2103, 2103, 2104, 2105, 2022, 2105, 2022,
996      2022, 2022, 2106, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
997      2107, 2107, 2108, 2108, 2022, 2022, 2022, 2022, 2022, 2022,
998      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
999      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2109,
1000      2110, 2110, 2111, 2022, 2022, 2111, 2022, 2112, 2112, 2022,
1001      2113, 2022, 2022, 2113, 2113, 2113, 2113, 2114, 2114, 2022,
1002
1003      2115, 2115, 2115, 2116, 2116, 2022, 2022, 2117, 2117, 2117,
1004      2118, 2118, 2119, 2120, 2120, 2121, 2022, 2022, 2121, 2121,
1005      2121, 2121, 2122, 2122, 2022, 2022, 2123, 2124, 2124, 2125,
1006      2022, 2022, 2022, 2022, 2125, 2125, 2125, 2125, 2125, 2126,
1007      2126, 2022, 2022, 2127, 2127, 2128, 2022, 2022, 2128, 2128,
1008      2128, 2129, 2129, 2130, 2130, 2130, 2130, 2022, 2131, 2131,
1009      2132, 2132, 2132, 2132, 2133, 2133, 2022, 2022, 2134, 2134,
1010      2135, 2135, 2135, 2135, 2136, 2136, 2022, 2137, 2138, 2138,
1011      2139, 2022, 2022, 2139, 2022, 2022, 2140, 2022, 2022, 2022,
1012      2022, 2022, 2022, 2141, 2141, 2022, 2142, 2022, 2142, 2022,
1013
1014      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1015      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1016      2022, 2022, 2022, 2022, 2143, 2022, 2144, 2022, 2144, 2145,
1017      2022, 2022, 2022, 2145, 2022, 2022, 2146, 2022, 2146, 2147,
1018      2022, 2022, 2022, 2022, 2022, 2147, 2022, 2022, 2147, 2022,
1019      2148, 2022, 2148, 2022, 2149, 2149, 2149, 2022, 2150, 2022,
1020      2150, 2022, 2022, 2022, 2151, 2151, 2151, 2022, 2152, 2022,
1021      2152, 2153, 2022, 2154, 2022, 2154, 2155, 2022, 2022, 2022,
1022      2155, 2155, 2155, 2155, 2022, 2156, 2022, 2156, 2022, 2022,
1023      2022, 2157, 2022, 2158, 2022, 2158, 2159, 2159, 2022, 2022,
1024
1025      2022, 2022, 2022, 2022, 2022, 2022, 2159, 2159, 2159, 2159,
1026      2022, 2160, 2022, 2160, 2022, 2022, 2022, 2022, 2161, 2022,
1027      2161, 2162, 2022, 2022, 2022, 2162, 2162, 2162, 2022, 2163,
1028      2022, 2163, 2164, 2022, 2022, 2022, 2022, 2164, 2022, 2022,
1029      2165, 2022, 2165, 2166, 2022, 2022, 2166, 2022, 2022, 2022,
1030      2167, 2022, 2167, 2022, 2022, 2022, 2022, 2168, 2022, 2168,
1031      2169, 2169, 2169, 2169, 2022, 2170, 2022, 2170, 2022, 2171,
1032      2022, 2172, 2022, 2172, 2173, 2174, 2022, 2022, 2022, 2022,
1033      2022, 2175, 2175, 2176, 2022, 2022, 2022, 2022, 2022, 2022,
1034      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1035
1036      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1037      2022, 2022, 2177, 2022, 2022, 2178, 2022, 2179, 2180, 2022,
1038      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2180, 2181, 2022,
1039      2182, 2022, 2022, 2182, 2183, 2184, 2184, 2184, 2185, 2186,
1040      2187, 2188, 2188, 2188, 2188, 2188, 2189, 2190, 2191, 2192,
1041      2192, 2022, 2022, 2022, 2192, 2192, 2192, 2192, 2193, 2194,
1042      2195, 2195, 2195, 2195, 2196, 2197, 2022, 2022, 2022, 2022,
1043      2022, 2022, 2197, 2022, 2198, 2199, 2022, 2022, 2022, 2199,
1044      2022, 2022, 2022, 2200, 2201, 2202, 2022, 2022, 2202, 2202,
1045      2203, 2022, 2204, 2205, 2206, 2207, 2207, 2022, 2207, 2022,
1046
1047      2022, 2022, 2208, 2208, 2209, 2022, 2022, 2022, 2022, 2022,
1048      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1049      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1050      2022, 2022, 2022, 2210, 2022, 2022, 2022, 2211, 2022, 2212,
1051      2213, 2022, 2022, 2022, 2213, 2214, 2022, 2215, 2022, 2022,
1052      2022, 2022, 2022, 2216, 2217, 2217, 2217, 2022, 2022, 2218,
1053      2219, 2220, 2220, 2220, 2022, 2022, 2022, 2022, 2220, 2221,
1054      2022, 2022, 2222, 2022, 2022, 2223, 2022, 2022, 2223, 2223,
1055      2223, 2224, 2225, 2226, 2226, 2226, 2022, 2022, 2226, 2227,
1056      2228, 2228, 2022, 2229, 2230, 2230, 2231, 2232, 2233, 2022,
1057
1058      2022, 2022, 2233, 2233, 2234, 2022, 2022, 2022, 2235, 2236,
1059      2237, 2237, 2022, 2022, 2238, 2238, 2238, 2239, 2022, 2022,
1060      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1061      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1062      2022, 2240, 2241, 2022, 2242, 2243, 2243, 2244, 2245, 2022,
1063      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1064      2246, 2022, 2022, 2247, 2022, 2022, 2022, 2022, 2248, 2249,
1065      2249, 2249, 2022, 2022, 2022, 2022, 2022, 2022, 2249, 2022,
1066      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1067      2022, 2022, 2022, 2022, 2022, 2022, 2223, 2022, 2022, 2224,
1068
1069      2225, 2226, 2226, 2226, 2022, 2022, 2022, 2226, 2022, 2022,
1070      2022, 2022, 2228, 2022, 2229, 2022, 2022, 2230, 2231, 2232,
1071      2233, 2233, 2233, 2234, 2022, 2022, 2022, 2022, 2235, 2236,
1072      2237, 2237, 2022, 2022, 2022, 2238, 2238, 2239, 2022, 2022,
1073      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1074      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2240, 2241, 2022,
1075      2022, 2022, 2243, 2243, 2244, 2022, 2022, 2022, 2022, 2022,
1076      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2246, 2022, 2022,
1077      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2248,
1078      2249, 2249, 2249, 2022, 2022, 2249, 2022, 2022, 2022, 2022,
1079
1080      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2224, 2225, 2226,
1081      2022, 2022, 2226, 2226, 2022, 2022, 2226, 2022, 2022, 2022,
1082      2228, 2022, 2229, 2022, 2022, 2022, 2230, 2022, 2022, 2232,
1083      2233, 2233, 2233, 2234, 2022, 2235, 2236, 2237, 2237, 2022,
1084      2022, 2022, 2022, 2238, 2238, 2239, 2022, 2022, 2022, 2022,
1085      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1086      2022, 2240, 2241, 2022, 2243, 2243, 2022, 2022, 2022, 2022,
1087      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1088      2022, 2246, 2022, 2022, 2022, 2248, 2249, 2249, 2249, 2022,
1089      2022, 2022, 2022, 2249, 2022, 2022, 2022, 2224, 2022, 2022,
1090
1091      2226, 2022, 2022, 2022, 2226, 2226, 2022, 2022, 2022, 2022,
1092      2226, 2022, 2022, 2022, 2022, 2228, 2022, 2229, 2022, 2022,
1093      2022, 2022, 2230, 2232, 2022, 2022, 2233, 2233, 2234, 2022,
1094      2235, 2236, 2237, 2237, 2022, 2238, 2238, 2239, 2022, 2022,
1095      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2241, 2022, 2022,
1096      2243, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1097      2022, 2246, 2022, 2022, 2249, 2249, 2249, 2022, 2022, 2022,
1098      2022, 2249, 2022, 2022, 2022, 2022, 2226, 2226, 2226, 2022,
1099      2022, 2022, 2022, 2226, 2022, 2022, 2022, 2022, 2022, 2022,
1100      2022, 2022, 2022, 2229, 2022, 2022, 2022, 2022, 2022, 2022,
1101
1102      2230, 2232, 2022, 2022, 2022, 2022, 2022, 2233, 2022, 2022,
1103      2022, 2235, 2236, 2237, 2237, 2022, 2022, 2238, 2022, 2022,
1104      2022, 2022, 2022, 2022, 2241, 2022, 2022, 2022, 2243, 2022,
1105      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2246,
1106      2249, 2249, 2249, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1107      2226, 2226, 2226, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1108      2022, 2022, 2022, 2022, 2022, 2022, 2229, 2022, 2022, 2022,
1109      2022, 2022, 2022, 2230, 2230, 2022, 2022, 2022, 2022, 2022,
1110      2022, 2022, 2022, 2022, 2236, 2237, 2237, 2022, 2022, 2022,
1111      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1112
1113      2022, 2022, 2243, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1114      2022, 2022, 2022, 2246, 2249, 2249, 2249, 2022, 2022, 2022,
1115      2226, 2226, 2226, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1116      2022, 2022, 2022, 2022, 2022, 2022, 2229, 2022, 2022, 2022,
1117      2022, 2022, 2022, 2230, 2230, 2022, 2022, 2022, 2236, 2237,
1118      2237, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1119      2022, 2022, 2022, 2022, 2022, 2243, 2022, 2022, 2022, 2022,
1120      2022, 2022, 2022, 2022, 2246, 2022, 2022, 2249, 2249, 2249,
1121      2226, 2022, 2022, 2226, 2022, 2022, 2022, 2022, 2022, 2022,
1122      2022, 2022, 2022, 2022, 2229, 2022, 2022, 2022, 2022, 2022,
1123
1124      2022, 2230, 2230, 2236, 2237, 2237, 2237, 2022, 2022, 2022,
1125      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1126      2022, 2022, 2022, 2246, 2022, 2022, 2022, 2249, 2249, 2249,
1127      2249, 2226, 2022, 2022, 2022, 2226, 2022, 2022, 2022, 2022,
1128      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1129      2022, 2022, 2022, 2022, 2022, 2022, 2230, 2022, 2022, 2230,
1130      2236, 2237, 2237, 2237, 2250, 2251, 2022, 2022, 2022, 2022,
1131      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1132      2022, 2246, 2249, 2249, 2249, 2249, 2022, 2022, 2022, 2022,
1133      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1134
1135      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2230, 2022, 2022,
1136      2022, 2230, 2236, 2237, 2252, 2253, 2250, 2251, 2022, 2022,
1137      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1138      2249, 2249, 2249, 2249, 2022, 2022, 2022, 2022, 2022, 2022,
1139      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1140      2022, 2022, 2230, 2230, 2236, 2252, 2237, 2254, 2253, 2255,
1141      2237, 2022, 2022, 2022, 2022, 2022, 2022, 2249, 2249, 2249,
1142      2249, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1143      2022, 2022, 2022, 2230, 2230, 2236, 2254, 2022, 2255, 2237,
1144      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2249, 2022,
1145
1146      2022, 2022, 2022, 2022, 2022, 2230, 2230, 2236, 2022, 2022,
1147      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1148      2249, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2230, 2230,
1149      2236, 2022, 2249, 2022, 2022, 2022, 2022, 2230, 2230, 2236,
1150      2249, 2022, 2022, 2022, 2022, 2230, 2230, 2236, 2249, 2022,
1151      2022, 2022, 2022, 2230, 2230, 2236, 2022, 2022, 2022, 2022,
1152      2022, 2022, 2230, 2230, 2236, 2022, 2022, 2022, 2022, 2022,
1153      2230, 2230, 2236, 2230, 2230, 2236, 2230, 2230, 2236, 2236,
1154      2230, 2230, 2236, 2236, 2230, 2230, 2236, 2236, 2230, 2230,
1155      2236, 2236, 2022, 2022, 2022, 2022, 2236, 2236, 2022, 2022,
1156
1157      2022, 2022, 2022, 2022, 2236, 2236, 2236, 2236, 2236, 2236,
1158      2236, 2236, 2236, 2236, 2236, 2236, 2236, 2236, 2236, 2236,
1159      2022,    0, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1160      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1161      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1162      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1163      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1164      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1165      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1166      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1167
1168      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1169      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1170      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1171      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1172      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1173      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1174      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1175      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1176      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1177      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1178
1179      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1180      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1181      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1182      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1183      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1184      2022, 2022, 2022, 2022, 2022
1185     } ;
1186
1187 static yyconst flex_int16_t yy_nxt[7164] =
1188     {   0,
1189      2022,  146,  147,  146,  146,  147,  146,  146,  147,  146,
1190       146,  147,  146,  151,  147,  151,  157,  148,  154,  157,
1191       148,  154,  450,  149, 2022,  155,  149, 2022,  155,  152,
1192       151,  147,  151,  388,  158,  160,  161,  158,  160,  161,
1193       162,  163, 2022,  162,  163,  388,  152,  167,  168,  389,
1194       164,  160,  161,  164,  165,  391,  162,  160,  161,  561,
1195       165,  390,  162,  167,  168,  562,  164,  147,  147,  147,
1196       451,  390,  164,  147,  147,  147,  180,  147,  180,  180,
1197       147,  180,  472,  170,  180,  147,  180,  510,  169,  170,
1198       451,  473,  181,  561,  511,  181,  387,  387,  387,  575,
1199
1200       182,  387,  387,  387,  169,  171,  172,  147,  172,  171,
1201       171,  171,  171,  171,  171,  171,  173,  171,  171,  171,
1202      1485,  171,  175,  171,  176,  171,  180,  147,  180,  147,
1203       147,  147,  503,  147,  147,  147,  180,  147,  180,  180,
1204       147,  180,  182,  504,  561,  183,  391,  171,  171,  183,
1205       600,  489,  181,  391,  490,  181,  387,  387,  387,  387,
1206       387,  387,  390,  387,  387,  387,  387,  387,  387,  390,
1207       177, 2022,  178,  171,  172,  147,  172,  171,  171,  171,
1208       171,  171,  171,  171,  173,  171,  171,  171,  477,  171,
1209       175,  171,  176,  171,  147,  147,  147,  147,  147,  147,
1210
1211       682,  180,  147,  180,  180,  147,  180,  180,  147,  180,
1212       184,  563,  391,  184,  391,  171,  171,  182,  391,  425,
1213       182,  426, 1110,  185,  564,  180,  147,  180,  390,  427,
1214       390,  387,  387,  387,  390,  425,  451,  428,  177,  429,
1215       178,  185,  186,  187,  147,  187,  186,  186,  186,  186,
1216       186,  186,  186,  188,  186,  186,  186,  485,  186,  190,
1217       186,  191,  186,  194,  147,  194,  194,  147,  194,  402,
1218       218,  147,  218,  160,  161,  160,  161,  486,  162,  195,
1219       162, 1270,  195,  446,  186,  186,  219,  447,  205, 1271,
1220       205,  448,  192,  186,  187,  147,  187,  186,  186,  186,
1221
1222       186,  186,  186,  186,  188,  186,  186,  186,  892,  186,
1223       190,  186,  191,  186,  206, 2022,  206,  218,  147,  218,
1224       893,  147,  147,  147,  147,  147,  147,  387,  387,  387,
1225       387,  387,  387,  219,  682,  186,  186,  220,  875,  544,
1226       220,  513,  545,  192,  196,  197,  147,  197,  196,  196,
1227       196,  196,  196,  196,  196,  198,  196,  196,  196,  512,
1228       196,  200,  196,  201,  196,  218,  147,  218,  218,  147,
1229       218,  505,  218,  147,  218,  218,  147,  218,  387,  387,
1230       387,  219,  391,  439,  219,  512,  196,  196,  221,  433,
1231       440,  221, 1412, 1413,  202, 1414, 1415,  203,  390,  390,
1232
1233       387,  387,  387,  204,  196,  197,  147,  197,  196,  196,
1234       196,  196,  196,  196,  196,  198,  196,  196,  196,  451,
1235       196,  200,  196,  201,  196,  232,  147,  232,  232,  147,
1236       232,  906,  245,  147,  245,  245,  147,  245,  538,  391,
1237       391,  233, 1275,  893,  233,  391,  196,  196,  246,  571,
1238      1276,  246,  457,  539,  202,  390,  390,  203,  387,  387,
1239       387,  390,  572,  204,  207,  208,  147,  208,  207,  207,
1240       207,  207,  207,  207,  207,  209,  207,  207,  207,  906,
1241       207,  211,  207,  212,  207,  147,  147,  147,  147,  147,
1242       147,  930,  147,  147,  147,  147,  147,  147,  257,  147,
1243
1244       257,  254,  391,  391,  254, 1488,  207,  207,  255,  464,
1245       520,  255,  563, 1495,  258,  213, 1498,  214,  390,  390,
1246       215,  387,  387,  387, 2022,  576,  216,  207,  208,  147,
1247       208,  207,  207,  207,  207,  207,  207,  207,  209,  207,
1248       207,  207,  538,  207,  211,  207,  212,  207,  257,  147,
1249       257,  271,  147,  271,  512,  271,  147,  271,  147,  147,
1250       147,  147,  147,  147,  258,  411,  391,  272,  413,  207,
1251       207,  272,  391, 1116,  220,  587, 1508,  220,  213, 1117,
1252       214, 1521,  390,  215,  387,  387,  387,  998,  390,  216,
1253       222,  223,  147,  223,  222,  222,  222,  222,  222,  222,
1254
1255       222,  224,  222,  222,  222, 1522,  222,  226,  222,  227,
1256       222,  271,  147,  271,  271,  147,  271, 1232,  271,  147,
1257       271,  271,  147,  271,  283,  147,  283,  272, 1523,  797,
1258       272,  998,  222,  222,  273,  391,  391,  273,  798,  228,
1259       284,  387,  387,  387,  229,  387,  387,  387,  387,  387,
1260       387,  390,  390,  230,  222,  223,  147,  223,  222,  222,
1261       222,  222,  222,  222,  222,  224,  222,  222,  222, 1231,
1262       222,  226,  222,  227,  222,  283,  147,  283,  298,  147,
1263       298, 1524,  298,  147,  298,  308,  147,  308,  308,  147,
1264       308,  284, 1419, 1420,  299, 1390,  222,  222,  299,  391,
1265
1266       391,  309, 1391,  228,  309,  387,  387,  387,  229,  387,
1267       387,  387,  387,  387,  387,  390,  390,  230,  234,  235,
1268       147,  235,  234,  234,  234,  234,  234,  234,  234,  236,
1269       234,  234,  234, 1525,  234,  238,  234,  239,  234,  321,
1270       147,  321,  321,  147,  321,  682,  147,  147,  147,  147,
1271       147,  147,  321,  147,  321,  322,  391,  571,  322, 1529,
1272       234,  234,  220,  482,  995,  220,  998,  998,  322, 1392,
1273       578,  240,  390,  387,  387,  387, 1393,  241, 1530,  242,
1274       243,  234,  235,  147,  235,  234,  234,  234,  234,  234,
1275       234,  234,  236,  234,  234,  234, 1514,  234,  238,  234,
1276
1277       239,  234,  321,  147,  321,  321,  147,  321, 1339,  321,
1278       147,  321,  147,  147,  147,  147,  147,  147,  322, 1421,
1279      1422,  323,  391,  234,  234,  323,  682,  682,  333,  493,
1280      1531,  333, 1407, 1337,  240,  387,  387,  387,  390, 1408,
1281       241,  684,  242,  243,  247,  248,  147,  248,  247,  247,
1282       247,  247,  247,  247,  247,  249,  247,  247,  247,  998,
1283       247,  251,  247,  252,  247,  147,  147,  147,  147,  147,
1284       147, 1532,  335,  147,  335,  335,  147,  335,  335,  147,
1285       335,  333, 1533, 1409,  333,  391,  247,  247,  336,  391,
1286      1410,  336,  497, 1515,  337,  387,  387,  387,  387,  387,
1287
1288       387,  390,  387,  387,  387,  390,  253,  247,  248,  147,
1289       248,  247,  247,  247,  247,  247,  247,  247,  249,  247,
1290       247,  247, 1534,  247,  251,  247,  252,  247,  335,  147,
1291       335,  349,  147,  349, 1535,  349,  147,  349,  147,  147,
1292       147,  147,  147,  147,  337, 1536,  998,  350, 1537,  247,
1293       247,  350,  391, 1486,  333, 1487, 1538,  333,  387,  387,
1294       387,  387,  387,  387,  387,  387,  387, 1539,  390,  253,
1295       259,  260,  147,  260,  259,  259,  259,  259,  259,  259,
1296       259,  261,  259,  259,  259, 1433,  259,  263,  259,  264,
1297       259,  349,  147,  349,  349,  147,  349, 1541,  349,  147,
1298
1299       349,  349,  147,  349,  360,  147,  360,  350,  391,  391,
1300       350,  391,  259,  259,  351,  265,  524,  351, 1542, 1489,
1301       361, 1490, 1543,  266,  390,  390,  267,  390,  998,  268,
1302      1544, 1545,  269,  259,  260,  147,  260,  259,  259,  259,
1303       259,  259,  259,  259,  261,  259,  259,  259, 1551,  259,
1304       263,  259,  264,  259,  360,  147,  360,  373,  147,  373,
1305      1552,  373,  147,  373,  147,  147,  147,  147,  147,  147,
1306       361, 1434,  391,  374, 1553,  259,  259,  374,  265,  536,
1307       375, 1150, 1496,  375, 1497, 1554,  266, 1151,  390,  267,
1308      1152, 1499,  268, 1500, 1153,  269,  274,  275,  147,  275,
1309
1310       274,  274,  274,  274,  274,  274,  274,  276,  274,  274,
1311       274,  531,  274,  278,  274,  279,  274,  373,  147,  373,
1312       373,  147,  373, 1555,  373,  147,  373,  373,  147,  373,
1313       385,  147,  385,  374, 1558, 1154,  374, 1559,  274,  274,
1314       376, 1155, 1560,  376, 1156,  532,  386,  396, 1157,  280,
1315       387,  387,  387,  387,  387,  387,  387,  387,  387,  451,
1316      1561,  281,  274,  275,  147,  275,  274,  274,  274,  274,
1317       274,  274,  274,  276,  274,  274,  274, 1562,  274,  278,
1318       274,  279,  274,  385,  147,  385,  397,  387,  387,  387,
1319      1563, 1568,  398,  387,  387,  387,  399, 1569, 1570,  386,
1320
1321      1571,  400, 1572, 1573,  274,  274,  387,  387,  387,  387,
1322       387,  387,  387,  387,  387,  280,  387,  387,  387,  542,
1323       542,  542, 1593,  686,  896,  896,  896,  281,  285,  286,
1324       147,  286,  285,  285,  285,  285,  285,  285,  285,  287,
1325       285,  285,  285,  288,  285,  289,  285,  290,  285,  288,
1326       288,  288,  288,  288,  288,  288,  288,  288,  288,  288,
1327       288,  288,  288,  288,  288,  288,  288,  288,  288,  288,
1328       285,  285,  288,  288,  291,  288,  288,  288,  288,  288,
1329       288,  292,  288,  293,  288,  288,  288,  294,  288,  295,
1330       296,  288,  288,  288,  288,  288,  288,  300,  301,  147,
1331
1332       301,  300,  300,  300,  300,  300,  300,  300,  302,  300,
1333       300,  300,  682,  300,  304,  300,  305,  300,  542,  542,
1334       542,  584,  584,  584,  592,  592,  592,  606,  606,  606,
1335       617,  617,  617,  904,  904,  904, 1594, 1595,  585,  300,
1336       300,  593, 1596, 1603,  607, 1604, 1605,  618, 1585,  998,
1337       306,  300,  301,  147,  301,  300,  300,  300,  300,  300,
1338       300,  300,  302,  300,  300,  300,  998,  300,  304,  300,
1339       305,  300, 1606,  543,  625,  625,  625, 1338,  631,  631,
1340       631,  633,  633,  633,  642,  642,  642, 1009, 1009, 1009,
1341      1599,  626, 1607,  300,  300,  632, 1608, 1609,  634, 1610,
1342
1343      1586,  643, 1600,  998,  306,  310,  311,  147,  311,  310,
1344       310,  310,  310,  310,  310,  310,  312,  310,  310,  310,
1345      1611,  310,  314,  310,  315,  310,  647,  647,  647,  667,
1346       667,  667,  696,  696,  696,  696,  696,  696,  726,  726,
1347       726,  682, 1587,  648, 1612, 1613,  668,  310,  310, 1615,
1348       698,  316, 1616,  698, 1617, 1621,  728, 1230,  317, 1622,
1349       318, 1015, 1015, 1015,  896,  896,  896,  319,  310,  311,
1350       147,  311,  310,  310,  310,  310,  310,  310,  310,  312,
1351       310,  310,  310, 1623,  310,  314,  310,  315,  310,  699,
1352       726,  726,  726, 1627, 1601,  584,  584,  584,  731,  731,
1353
1354       731, 1628,  732, 1629, 1630,  733, 1602, 1631,  728, 1632,
1355       310,  310,  585, 1638,  316,  741,  741,  741, 1639,  742,
1356      1640,  317,  743,  318, 1021, 1021, 1021,  904,  904,  904,
1357       319,  324,  325,  147,  325,  324,  324,  324,  324,  324,
1358       324,  324,  326,  324,  324,  324,  729,  324,  328,  324,
1359       329,  324,  736,  736,  736, 1641, 1642,  736,  736,  736,
1360       592,  592,  592,  744,  744,  744,  747,  747,  747, 1643,
1361       738,  998, 1656,  324,  324,  738,  330,  593,  998,  331,
1362       745, 1633, 1635,  748,  762,  762,  762, 1658,  763, 1634,
1363      1636,  764,  682,  332,  324,  325,  147,  325,  324,  324,
1364
1365       324,  324,  324,  324,  324,  326,  324,  324,  324, 1650,
1366       324,  328,  324,  329,  324, 1662, 1651,  739, 1649, 1663,
1367       750,  750,  750,  758,  758,  758, 1664, 1665,  750,  750,
1368       750,  758,  758,  758, 1666, 1667,  324,  324,  752,  330,
1369      1668,  760,  331,  778,  778,  778,  752,  779, 1669,  760,
1370       780, 1047, 1047, 1047, 1670, 1671,  332,  338,  339,  147,
1371       339,  338,  338,  338,  338,  338,  338,  338,  340,  338,
1372       338,  338,  753,  338,  342,  338,  343,  338,  606,  606,
1373       606, 1672, 1673,  768,  768,  768,  773,  773,  773, 1674,
1374      1679,  761,  617,  617,  617,  607,  768,  768,  768,  338,
1375
1376       338,  770,  344, 1680,  775,  345, 1009, 1009, 1009,  618,
1377       346,  789,  789,  789,  770,  790, 1681, 1684,  791,  347,
1378       338,  339,  147,  339,  338,  338,  338,  338,  338,  338,
1379       338,  340,  338,  338,  338, 1685,  338,  342,  338,  343,
1380       338,  773,  773,  773,  771, 1686,  785,  785,  785,  785,
1381       785,  785,  625,  625,  625, 1687,  793,  793,  793,  775,
1382      1688, 1689,  338,  338,  787,  344, 1690,  787,  345,  626,
1383      1011, 1011, 1011,  346,  795, 1015, 1015, 1015, 1021, 1021,
1384      1021, 1691,  347,  352,  353,  147,  353,  352,  352,  352,
1385       352,  352,  352,  352,  354,  352,  352,  352,  776,  352,
1386
1387       356,  352,  357,  352, 1692, 1693,  788, 1694, 1696,  793,
1388       793,  793,  631,  631,  631,  799,  799,  799, 1697,  800,
1389      1698, 1699,  801, 1700, 1701,  352,  352,  795, 1708,  632,
1390      1022, 1022, 1022, 1047, 1047, 1047,  358,  352,  353,  147,
1391       353,  352,  352,  352,  352,  352,  352,  352,  354,  352,
1392       352,  352,  998,  352,  356,  352,  357,  352,  633,  633,
1393       633,  802,  802,  802, 1709,  803, 1710, 1711,  804,  796,
1394       805,  805,  805, 1712, 1713,  634, 1246, 1246, 1246,  352,
1395       352,  815,  815,  815, 1705,  816, 1716,  806,  817, 1717,
1396       358,  362,  363,  147,  363,  362,  362,  362,  362,  362,
1397
1398       362,  362,  364,  362,  362,  362, 1718,  362,  366,  362,
1399       367,  362,  811,  811,  811,  642,  642,  642,  818,  818,
1400       818,  811,  811,  811,  818,  818,  818,  647,  647,  647,
1401       813, 1719,  643,  362,  362,  682,  820, 1720, 1721,  813,
1402      1722,  368,  820,  369,  648,  370, 1127, 1127, 1127, 1248,
1403      1248, 1248, 1723,  371,  362,  363,  147,  363,  362,  362,
1404       362,  362,  362,  362,  362,  364,  362,  362,  362, 1728,
1405       362,  366,  362,  367,  362,  814,  823,  823,  823, 1704,
1406       824,  821, 1731,  825,  829,  829,  829,  829,  829,  829,
1407       834,  834,  834,  836,  836,  836,  362,  362,  845,  845,
1408
1409       845, 1732,  831, 1736,  368,  831,  369,  835,  370, 1737,
1410       837, 1130, 1130, 1130, 1738,  846,  371,  377,  378,  147,
1411       378,  377,  377,  377,  377,  377,  377,  377,  379,  377,
1412       377,  377, 1739,  377,  381,  377,  382,  377, 1740,  832,
1413       840,  840,  840, 1741,  848,  848,  848,  840,  840,  840,
1414       850,  850,  850,  850,  850,  850, 1729, 1730,  842,  377,
1415       377,  849,  667,  667,  667,  842, 1742, 1743,  852, 1744,
1416      1745,  852, 1746,  854,  854,  854, 1749,  855, 1750,  668,
1417       856, 1751,  383,  377,  378,  147,  378,  377,  377,  377,
1418       377,  377,  377,  377,  379,  377,  377,  377, 1752,  377,
1419
1420       381,  377,  382,  377,  843,  857,  857,  857, 1753, 1754,
1421       853,  857,  857,  857,  865,  865,  865,  865,  865,  865,
1422       871,  871,  871,  859, 1769,  377,  377,  682, 1770,  859,
1423      1771, 1772,  867, 1776, 1777,  867, 1778, 1779,  873,  871,
1424       871,  871,  696,  696,  696,  911,  911,  911,  383,  391,
1425       696,  696,  696, 1011, 1011, 1011,  407,  873, 1761, 1780,
1426       698, 1781,  912,  860, 1783,  390, 1784, 1012,  698,  696,
1427       696,  696, 1785,  726,  726,  726, 1786,  868,  726,  726,
1428       726, 1791, 1792,  726,  726,  726, 1793,  698, 1794, 1795,
1429       408,  728,  409, 1796, 1797,  410,  728,  411,  412,  874,
1430
1431       413,  728, 1798, 1799,  414, 1800,  415,  416,  417,  391,
1432       914,  914,  914,  884, 1801, 1802,  407,  731,  731,  731,
1433      1803,  732, 1804,  682,  733,  390, 1819,  915, 1820,  913,
1434      2022, 2022, 2022,  736,  736,  736,  736,  736,  736, 1821,
1435      1822,  736,  736,  736,  744,  744,  744, 2022, 1823, 1824,
1436       408,  738,  418, 1825,  738,  419, 1826,  420,  412,  738,
1437       421,  745, 1813, 1827,  414, 1828,  422,  423,  424,  741,
1438       741,  741, 1831,  742, 1832, 1833,  743,  920,  920,  920,
1439      1834,  921, 1841, 1842,  922,  918, 1843,  916,  923,  923,
1440       923,  747,  747,  747,  925,  925,  925, 1844,  926, 1845,
1441
1442      1846,  927,  750,  750,  750,  924, 1847, 1848,  748,  750,
1443       750,  750,  750,  750,  750,  932,  932,  932, 1849, 1850,
1444       752,  758,  758,  758,  758,  758,  758,  752, 1851, 1852,
1445       752, 1862,  933,  758,  758,  758,  762,  762,  762,  760,
1446       763, 1863,  760,  764,  768,  768,  768,  768,  768,  768,
1447      1864,  760,  768,  768,  768,  773,  773,  773,  773,  773,
1448       773, 1857,  770, 1857,  682,  770, 1865, 1866,  929, 1867,
1449       770, 1868, 1869,  775, 1860, 1858,  775,  935,  773,  773,
1450       773,  778,  778,  778, 1870,  779, 1871, 1876,  780,  785,
1451       785,  785,  785,  785,  785, 1877,  775,  785,  785,  785,
1452
1453      1878,  789,  789,  789, 1879,  790, 1855,  787,  791, 1880,
1454       787,  793,  793,  793,  939,  787,  793,  793,  793,  793,
1455       793,  793, 1881,  799,  799,  799, 1882,  800, 1883,  795,
1456       801,  805,  805,  805,  795, 1888, 1872,  795,  941,  802,
1457       802,  802,  682,  803, 1874, 1888,  804, 1873,  806,  952,
1458       952,  952, 1891,  953, 1892, 1875,  954, 1857,  947,  811,
1459       811,  811,  811,  811,  811,  811,  811,  811,  815,  815,
1460       815, 1858,  816,  998,  999,  817,  949,  813, 1902, 1886,
1461       813, 1903, 1904,  813,  818,  818,  818,  818,  818,  818,
1462       818,  818,  818,  823,  823,  823, 1857,  824, 1905, 1888,
1463
1464       825, 1909,  820, 1888, 1910,  820, 1911, 1860,  820,  829,
1465       829,  829,  829,  829,  829,  829,  829,  829,  834,  834,
1466       834, 1921,  967,  967,  967, 1925,  968,  831,  959,  969,
1467       831, 1926, 1927,  831, 1928,  835, 1932,  836,  836,  836,
1468       970,  970,  970, 1933,  971, 1934, 1935,  972,  840,  840,
1469       840, 1936, 1937,  960,  837,  840,  840,  840,  840,  840,
1470       840,  845,  845,  845, 1941,  682,  842, 1942,  977,  977,
1471       977,  965,  978,  842, 1943,  979,  842, 1944,  846,  848,
1472       848,  848,  981,  981,  981, 1945,  982, 1940,  682,  983,
1473       850,  850,  850,  850,  850,  850,  849,  850,  850,  850,
1474
1475       854,  854,  854, 1949,  855, 1950, 1948,  856,  852, 1951,
1476      1952,  852,  857,  857,  857,  852,  857,  857,  857, 1953,
1477       682,  975,  857,  857,  857,  987,  987,  987, 1959, 1960,
1478       859,  865,  865,  865,  859,  865,  865,  865, 1961, 1956,
1479       859, 1962,  988,  865,  865,  865,  871,  871,  871,  867,
1480       871,  871,  871,  867,  871,  871,  871,  997,  997,  997,
1481       984,  867, 1969, 1970,  873,  696,  696,  696,  873,  911,
1482       911,  911,  873, 1484,  682,  998,  999,  682,  985, 1022,
1483      1022, 1022,  682,  698,  682,  682,  912, 1031, 1031, 1031,
1484      1965, 1032,  682, 1012, 1033,  726,  726,  726, 1973,  682,
1485
1486       991,  914,  914,  914,  994, 1035, 1035, 1035,  682, 1036,
1487       682, 1987, 1037,  728,  736,  736,  736, 1983,  915,  920,
1488       920,  920,  682,  921, 1997, 1984,  922, 1005,  923,  923,
1489       923, 1483,  738, 1042, 1042, 1042, 1991, 1043,  682, 1482,
1490      1044,  750,  750,  750, 1988,  924,  925,  925,  925, 1034,
1491       926, 1481, 2015,  927,  932,  932,  932,  682,  682,  752,
1492      1040, 1049, 1049, 1049, 2005, 1050,  682,  682, 1051,  682,
1493      1998,  933, 1052, 1052, 1052,  758,  758,  758, 1058, 1058,
1494      1058,  773,  773,  773, 1065, 1065, 1065, 1480, 1046, 1053,
1495      1067, 1067, 1067,  760, 1992, 2009, 1059,  682, 2010,  775,
1496
1497      2006, 1066,  785,  785,  785, 2019,  682, 1068, 1071, 1071,
1498      1071, 2016,  793,  793,  793, 1074, 1074, 1074,  682,  682,
1499       787, 1054, 2022, 2022, 2022, 1072, 1077, 1077, 1077, 1061,
1500       795, 2007, 1075, 1069,  952,  952,  952,  682,  953, 2022,
1501      2008,  954, 1479, 1078, 2022, 2022, 2022, 2013, 2022, 2022,
1502      2022, 2022, 2022, 2022,  811,  811,  811,  818,  818,  818,
1503      2011, 2022, 2012, 1478, 1070, 2022, 2014, 1472, 2022,  682,
1504      1073,  682,  813, 1471,  682,  820, 1470, 1087, 1087, 1087,
1505       829,  829,  829, 1469, 1076,  682,  967,  967,  967, 2019,
1506       968, 1468, 1080,  969, 1088,  970,  970,  970,  831,  971,
1507
1508       682, 1467,  972, 2017, 1022, 1022, 1022,  840,  840,  840,
1509      1079,  987,  987,  987, 2018, 1082, 1466, 1081, 1093, 1083,
1510      1089, 1465,  977,  977,  977,  842,  978, 1461,  988,  979,
1511       981,  981,  981, 1090,  982, 1460, 1459,  983,  850,  850,
1512       850,  857,  857,  857, 1100, 1100, 1100, 1458, 1101, 1457,
1513      1456, 1102,  865,  865,  865, 1455,  852, 1454, 1453,  859,
1514      1107, 1107, 1107,  871,  871,  871,  997,  997,  997, 1094,
1515       867,  696,  696,  696, 1127, 1127, 1127, 1108, 1130, 1130,
1516      1130,  873, 1452, 1451,  998, 1127, 1127, 1127, 1128,  698,
1517      1448, 1445, 1131, 1444, 1098, 1136, 1136, 1136, 1105, 1128,
1518
1519      1097, 1138, 1138, 1138, 1138, 1138, 1138, 1443, 1442, 1131,
1520      1136, 1136, 1136, 1430, 1111, 1139, 1428, 1427, 1139, 1417,
1521      1118, 1031, 1031, 1031, 1141, 1032, 1109, 1411, 1033, 1406,
1522      1112,  726,  726,  726, 1129, 1035, 1035, 1035, 1405, 1036,
1523      1401, 1394, 1037, 1389, 1388, 1135, 1052, 1052, 1052,  728,
1524       736,  736,  736, 1042, 1042, 1042, 1387, 1043, 1381, 1380,
1525      1044, 1129, 1379, 1053, 1135,  750,  750,  750,  738, 1049,
1526      1049, 1049, 1378, 1050, 1377, 1376, 1051, 1158, 1158, 1158,
1527      1375, 1159, 1374,  752, 1160,  758,  758,  758, 1162, 1162,
1528      1162, 2022, 2022, 2022, 1142, 1165, 1165, 1165, 1145, 1058,
1529
1530      1058, 1058, 1373,  760, 1372, 1163, 1366, 1365, 2022, 1167,
1531      1167, 1167, 1166,  773,  773,  773, 1364, 1059, 1065, 1065,
1532      1065, 1363, 1148, 1173, 1173, 1173, 1168, 1174, 1361, 1359,
1533      1175,  775, 1355, 1161, 1354, 1066, 1067, 1067, 1067, 1176,
1534      1176, 1176, 1352, 1177, 1351, 1164, 1178, 1180, 1180, 1180,
1535      1071, 1071, 1071, 1068, 1182, 1182, 1182, 1169, 1183, 1347,
1536      1340, 1184, 1185, 1185, 1185, 1181, 1335, 1072, 1074, 1074,
1537      1074, 1187, 1187, 1187, 1333, 1188, 1332, 1331, 1189, 1322,
1538      1186, 1190, 1190, 1190, 1317, 1075, 1077, 1077, 1077, 1192,
1539      1192, 1192, 1316, 1193, 1315, 1314, 1194, 1310, 1191, 1195,
1540
1541      1195, 1195, 1296, 1078, 2022, 2022, 2022, 1198, 1198, 1198,
1542       811,  811,  811,  818,  818,  818, 1196, 1087, 1087, 1087,
1543      1295, 2022, 1294, 1293, 1199, 1205, 1205, 1205,  813, 1206,
1544      1292,  820, 1207, 1291, 1088, 1209, 1209, 1209, 1211, 1211,
1545      1211, 1277, 2022, 2022, 2022,  840,  840,  840, 1216, 1216,
1546      1216, 1274, 1273, 1210, 1272, 1212, 1269, 1268, 1197, 2022,
1547      1264, 1201, 1263,  842, 1260, 1217, 2022, 2022, 2022,  850,
1548       850,  850, 1200, 1259,  857,  857,  857, 1100, 1100, 1100,
1549      1257, 1101, 1256, 2022, 1102, 1255, 1254,  852, 1220,  865,
1550       865,  865,  859, 1215, 1107, 1107, 1107, 1226, 1226, 1226,
1551
1552      1251, 1227, 1213, 1250, 1228, 1249, 1247,  867, 1245, 1218,
1553      1244, 1108,  871,  871,  871, 1243, 1242, 1219, 1234, 1234,
1554      1234, 2022, 2022, 2022, 2022, 2022, 2022,  696,  696,  696,
1555       873, 1252, 1252, 1252, 1241, 1235, 1240, 1224, 2022, 1239,
1556      1233, 2022, 1253, 1253, 1253,  698, 1136, 1136, 1136, 1138,
1557      1138, 1138,  726,  726,  726, 1225, 1261, 1261, 1261,  750,
1558       750,  750, 1266, 1266, 1266, 1223, 1222, 1229, 1221, 1214,
1559       728, 1208, 1204, 1236, 1262, 1203, 1202,  752, 1179, 1267,
1560      1172, 1237, 1171, 1170, 1238, 1158, 1158, 1158, 1149, 1159,
1561      1147, 1146, 1160,  758,  758,  758, 1162, 1162, 1162, 1258,
1562
1563      1144, 1279, 1279, 1279, 1143, 1280, 1140, 1278, 1281, 1137,
1564      1134,  760, 1133, 1163, 1265, 1282, 1282, 1282, 1165, 1165,
1565      1165, 1284, 1284, 1284, 1132, 1285, 1126, 1125, 1286, 1167,
1566      1167, 1167, 1283, 1124, 1123, 1166, 1287, 1287, 1287, 1122,
1567      1288, 1121, 1120, 1289, 1119, 1115, 1168,  773,  773,  773,
1568      1173, 1173, 1173, 1114, 1174, 1113,  998, 1175, 1106, 1176,
1569      1176, 1176, 1104, 1177, 1103,  775, 1178, 1180, 1180, 1180,
1570      1182, 1182, 1182, 1099, 1183, 1096, 1095, 1184, 1185, 1185,
1571      1185, 1092, 1187, 1187, 1187, 1181, 1188, 1091, 1086, 1189,
1572      1190, 1190, 1190, 1290, 1085, 1084, 1186, 1297, 1297, 1297,
1573
1574      1064, 1298, 1063, 1062, 1299, 1060, 1057, 1191, 1192, 1192,
1575      1192, 1056, 1193, 1055, 1048, 1194, 1195, 1195, 1195, 1300,
1576      1300, 1300, 1045, 1301, 1041, 1039, 1302, 1303, 1303, 1303,
1577      1198, 1198, 1198, 1196, 1305, 1305, 1305, 1038, 1306, 1030,
1578      1029, 1307, 1028, 1027, 1304, 1026, 1025, 1199,  811,  811,
1579       811,  818,  818,  818, 1311, 1311, 1311, 1205, 1205, 1205,
1580      1024, 1206, 1023, 1020, 1207, 1019,  813, 1018, 1017,  820,
1581      1016, 1312, 1209, 1209, 1209, 1211, 1211, 1211, 1318, 1318,
1582      1318, 1014, 1319, 1013, 1010, 1320, 2022, 2022, 2022, 1008,
1583      1210, 1007, 1212, 1216, 1216, 1216, 1308, 1313,  840,  840,
1584
1585       840, 1006, 1004, 2022, 2022, 2022, 2022, 1328, 1328, 1328,
1586      1217, 1309, 1323, 1324, 1324, 1324,  842, 1325, 1003, 1002,
1587      1326, 2022,  857,  857,  857, 1329,  865,  865,  865, 1226,
1588      1226, 1226, 1001, 1227, 1000,  993, 1228,  992, 1321,  990,
1589       859,  871,  871,  871,  867, 1234, 1234, 1234, 1341, 1341,
1590      1341,  989, 1342,  986,  980, 1343, 2022, 2022, 2022,  873,
1591       976, 1327, 1235, 2022, 2022, 2022,  974,  973, 1330,  966,
1592       696,  696,  696, 2022, 1348, 1348, 1348, 1349, 1349, 1349,
1593      2022, 1350, 1350, 1350, 1353, 1353, 1353, 1334,  698, 1336,
1594      1246, 1246, 1246, 1248, 1248, 1248, 1356, 1356, 1356, 1357,
1595
1596      1357, 1357, 1252, 1252, 1252, 1253, 1253, 1253, 1358, 1358,
1597      1358,  964, 1344, 1360, 1360, 1360,  726,  726,  726, 1261,
1598      1261, 1261, 1367, 1367, 1367,  963, 1345, 1266, 1266, 1266,
1599      1346, 1369, 1369, 1369,  728, 1370,  962, 1262, 1371,  961,
1600      1368,  758,  758,  758, 1267, 1279, 1279, 1279,  958, 1280,
1601       957,  956, 1281, 1282, 1282, 1282, 1383, 1383, 1383,  760,
1602      1384,  955,  951, 1385, 1362, 1284, 1284, 1284,  950, 1285,
1603      1283,  948, 1286, 1287, 1287, 1287,  946, 1288,  945,  944,
1604      1289,  773,  773,  773, 1297, 1297, 1297, 1382, 1298,  943,
1605       942, 1299,  940, 1300, 1300, 1300,  938, 1301,  937,  775,
1606
1607      1302, 1303, 1303, 1303, 1395, 1395, 1395,  936, 1396,  934,
1608       931, 1397, 1305, 1305, 1305,  928, 1306,  919, 1304, 1307,
1609       811,  811,  811, 1399, 1399, 1399, 1311, 1311, 1311, 1402,
1610      1402, 1402, 1386, 1403,  917,  910, 1404,  909,  813,  908,
1611       907, 1400,  905, 1312, 1318, 1318, 1318,  903, 1319,  902,
1612       901, 1320, 2022, 2022, 2022,  840,  840,  840, 1324, 1324,
1613      1324,  900, 1325,  899,  898, 1326, 2022, 2022, 2022, 2022,
1614      1328, 1328, 1328,  842,  857,  857,  857, 1425, 1425, 1425,
1615      1398,  897,  895, 2022,  865,  865,  865,  894, 1329, 1432,
1616      1432, 1432,  859,  891, 1426,  871,  871,  871, 1416, 1435,
1617
1618      1435, 1435,  867,  890, 1341, 1341, 1341,  682, 1342,  889,
1619      1418, 1343,  888,  873, 2022, 2022, 2022, 2022, 2022, 2022,
1620       887,  886, 1423,  696,  696,  696, 1439, 1439, 1439,  885,
1621       883, 2022,  882,  881, 2022,  880, 1424, 1348, 1348, 1348,
1622       879,  698, 1349, 1349, 1349, 1429, 1350, 1350, 1350,  878,
1623       877, 1431, 1440, 1440, 1440, 1441, 1441, 1441, 1353, 1353,
1624      1353, 1356, 1356, 1356, 1357, 1357, 1357, 1436, 1358, 1358,
1625      1358, 1360, 1360, 1360, 1446, 1446, 1446,  876, 1438, 1437,
1626      1449, 1449, 1449, 1367, 1367, 1367, 1369, 1369, 1369,  682,
1627      1370,  870, 1447, 1371,  758,  758,  758, 1450, 1383, 1383,
1628
1629      1383, 1368, 1384,  869,  864, 1385, 1463, 1463, 1463, 1395,
1630      1395, 1395,  760, 1396,  863,  862, 1397, 1473, 1473, 1473,
1631      1399, 1399, 1399,  861, 1464, 1475, 1475, 1475,  847, 1402,
1632      1402, 1402,  844, 1403,  839, 1474, 1404,  838, 1400, 1491,
1633      1491, 1491, 1476, 1493, 1493, 1493,  840,  840,  840,  833,
1634       828, 1462, 2022, 2022, 2022,  827, 1492,  857,  857,  857,
1635      1425, 1425, 1425,  826,  842, 1506, 1506, 1506, 1477, 2022,
1636       822,  810, 1503, 1503, 1503,  859, 1504, 1426,  809, 1505,
1637       808,  807, 1507, 1509, 1509, 1509, 1511, 1511, 1511,  871,
1638       871,  871, 1432, 1432, 1432, 1501, 1435, 1435, 1435,  792,
1639
1640       784, 1510, 1516, 1516, 1516,  783,  782,  873,  781, 1494,
1641       682,  777,  772, 1502, 2022, 2022, 2022,  767,  766, 1517,
1642      1519, 1519, 1519, 1439, 1439, 1439, 1440, 1440, 1440,  765,
1643       757, 2022, 1441, 1441, 1441, 1446, 1446, 1446, 1520, 1449,
1644      1449, 1449, 1526, 1526, 1526,  756, 1527,  755,  754, 1528,
1645      1513, 1512,  749, 1447,  746,  740, 1450,  758,  758,  758,
1646       735,  734, 1518, 1463, 1463, 1463, 1546, 1546, 1546, 1473,
1647      1473, 1473, 1475, 1475, 1475,  760,  730,  725, 1548, 1548,
1648      1548, 1464, 1549, 1547,  724, 1550,  723, 1474,  722, 1476,
1649      1556, 1556, 1556, 1491, 1491, 1491, 1564, 1564, 1564,  721,
1650
1651      1565,  720,  719, 1566, 1493, 1493, 1493, 1557,  718,  717,
1652      1492,  716,  715, 1540,  840,  840,  840, 2022, 2022, 2022,
1653      1576, 1576, 1576, 1503, 1503, 1503,  714, 1504,  713,  712,
1654      1505,  711,  842,  710, 2022, 1506, 1506, 1506, 1577, 1578,
1655      1578, 1578,  709, 1579,  708,  707, 1580,  706, 1581, 1581,
1656      1581,  705, 1507, 1509, 1509, 1509, 1511, 1511, 1511, 1583,
1657      1583, 1583,  704,  703, 1574, 1582,  702,  701, 1567,  700,
1658       695, 1510, 1516, 1516, 1516,  694,  693, 1584, 1575, 1588,
1659      1588, 1588,  692, 1589,  691,  690, 1590,  689,  688, 1517,
1660      1591, 1591, 1591, 1519, 1519, 1519, 1597, 1597, 1597, 1526,
1661
1662      1526, 1526,  685, 1527,  683,  682, 1528, 1592,  758,  758,
1663       758, 1520,  680, 1598, 1546, 1546, 1546, 1618, 1618, 1618,
1664       678, 1619,  677,  676, 1620,  674,  760,  673, 1548, 1548,
1665      1548, 1547, 1549,  672,  671, 1550, 1556, 1556, 1556, 1624,
1666      1624, 1624,  670, 1625,  666,  664, 1626, 1564, 1564, 1564,
1667       663, 1565,  662, 1557, 1566,  840,  840,  840, 2022, 2022,
1668      2022, 2022, 2022, 2022, 1614, 1576, 1576, 1576,  661,  660,
1669      1578, 1578, 1578,  842, 1579, 2022,  658, 1580, 2022, 1581,
1670      1581, 1581,  657, 1577, 1646, 1646, 1646,  656, 1647,  655,
1671       654, 1648, 1583, 1583, 1583,  653, 1582, 1588, 1588, 1588,
1672
1673       651, 1589,  650,  649, 1590, 1591, 1591, 1591,  646,  645,
1674      1584, 1652, 1652, 1652,  641, 1653,  639, 1637, 1654, 1644,
1675       638, 1645, 1592, 1655, 1655, 1655, 1657, 1657, 1657, 1597,
1676      1597, 1597, 1659, 1659, 1659,  637, 1660,  636,  635, 1661,
1677       758,  758,  758, 1676, 1676, 1676, 1598, 1618, 1618, 1618,
1678       630, 1619,  629,  627, 1620, 1682, 1682, 1682,  760,  624,
1679      1677, 1624, 1624, 1624,  622, 1625,  621,  620, 1626,  840,
1680       840,  840, 1683, 2022, 2022, 2022, 2022, 2022, 2022, 1655,
1681      1655, 1655, 1706, 1706, 1706,  619, 1678,  842, 1675,  616,
1682      2022,  615,  613, 2022, 1646, 1646, 1646,  612, 1647, 1707,
1683
1684       998, 1648, 1652, 1652, 1652,  610, 1653,  609,  608, 1654,
1685      1657, 1657, 1657, 1659, 1659, 1659,  605, 1660,  603,  602,
1686      1661, 1695, 1703, 1714, 1714, 1714,  758,  758,  758, 1676,
1687      1676, 1676, 1725, 1725, 1725, 1702, 1726,  601,  599, 1727,
1688      1715, 1682, 1682, 1682,  760,  597, 1677, 1733, 1733, 1733,
1689       596, 1734,  595,  594, 1735, 1747, 1747, 1747, 1683, 1755,
1690      1755, 1755, 1758, 1758, 1758, 1762, 1762, 1762, 1706, 1706,
1691      1706,  591, 1724, 1748,  590,  589, 1756,  586,  583, 1759,
1692       582,  580, 1763,  998,  579, 1707,  998,  577, 1764, 1764,
1693      1764,  574, 1765,  573,  570, 1766, 1767, 1767, 1767, 1768,
1694
1695      1768, 1768, 1757,  569,  568, 1760,  998, 1714, 1714, 1714,
1696      1773, 1773, 1773,  567, 1774,  566,  565, 1775,  758,  758,
1697       758, 1725, 1725, 1725, 1715, 1726,  560,  559, 1727, 1787,
1698      1787, 1787,  558, 1733, 1733, 1733,  760, 1734,  557,  556,
1699      1735, 1789, 1789, 1789,  555,  554, 1788, 1747, 1747, 1747,
1700      1755, 1755, 1755, 1805, 1805, 1805,  552, 1806, 1790,  551,
1701      1807, 2022, 2022, 2022,  550, 1748,  549, 1756, 1758, 1758,
1702      1758,  548, 1809, 1809, 1809,  547, 1810,  546, 2022, 1811,
1703      1782, 2022, 2022, 2022,  541, 1759, 1762, 1762, 1762, 1814,
1704      1814, 1814,  538, 1815,  540,  535, 1816,  533, 2022, 1767,
1705
1706      1767, 1767,  531, 1763,  998, 2022,  530,  998,  529, 1764,
1707      1764, 1764,  528, 1765,  527,  525, 1766, 1768, 1768, 1768,
1708       523, 1773, 1773, 1773,  521, 1774, 1808,  998, 1775, 1835,
1709      1835, 1835,  520, 1836,  519,  518, 1837,  517, 1829, 1829,
1710      1829,  516, 1787, 1787, 1787,  514, 1812,  996,  996,  996,
1711       996,  996,  996,  996,  996,  996, 1830,  513,  996, 1788,
1712      1789, 1789, 1789,  996,  996,  996,  998,  996, 1838, 1838,
1713      1838,  509, 1839,  508,  506, 1840,  505, 1790, 1805, 1805,
1714      1805,  502, 1806,  501,  500, 1807, 2022, 2022, 2022,  996,
1715       996,  996,  996,  996,  996,  996,  996,  996,  996,  996,
1716
1717       498,  496,  996, 2022, 2022, 2022, 2022,  996,  996,  996,
1718       998,  996, 1809, 1809, 1809,  494, 1810,  492,  491, 1811,
1719       488, 2022, 1814, 1814, 1814,  487, 1815,  483,  481, 1816,
1720      1829, 1829, 1829,  996,  996, 1835, 1835, 1835, 1853, 1836,
1721       998,  480, 1837, 1838, 1838, 1838,  478, 1839, 1830,  477,
1722      1840,  476, 2022, 2022, 2022,  475, 1854,  996,  996,  996,
1723       996,  996, 1861,  996,  996,  996,  474,  471,  996, 2022,
1724      2022, 2022, 2022,  996,  996,  996,  998,  996, 1890, 1890,
1725      1890, 1893, 1893, 1893, 1912, 1912, 1912, 2022, 1913,  469,
1726       468, 1914,  420, 1895, 1895, 1895,  998,  999, 1894,  996,
1727
1728       996,  996,  996,  996,  996,  996,  996,  996,  996, 1861,
1729      1896,  467,  996,  465, 1884,  463,  462,  996,  996,  996,
1730       998,  996, 1897, 1897, 1897, 1900, 1900, 1900, 2022, 2022,
1731      2022,  461, 1885, 2022, 2022, 2022, 1908, 1908, 1908, 1898,
1732       460,  458, 1901,  996,  996, 2022, 1890, 1890, 1890,  456,
1733      2022, 1893, 1893, 1893,  682, 1895, 1895, 1895,  455, 1915,
1734      1915, 1915,  454, 1916,  998, 1899, 1917,  452, 1894, 1897,
1735      1897, 1897, 1896, 1918, 1918, 1918,  450, 1919,  449, 1906,
1736      1920, 1900, 1900, 1900, 1907,  445, 1898,  444, 1922, 1922,
1737      1922,  442, 1923,  441, 1111, 1924,  438,  437, 1901, 2022,
1738
1739      2022, 2022, 2022, 2022, 2022, 1908, 1908, 1908, 1912, 1912,
1740      1912,  436, 1913,  434,  432, 1914, 2022,  430, 2022, 2022,
1741      1915, 1915, 1915,  682, 1916,  406,  405, 1917, 1918, 1918,
1742      1918,  403, 1919,  401,  395, 1920, 1922, 1922, 1922,  394,
1743      1923, 1931, 1929, 1924,  395, 1930, 2022, 2022, 2022, 2022,
1744      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1745      2022,  394,  393, 2022,  392, 2022, 2022, 2022, 2022, 2022,
1746      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 1957,
1747      1957, 1957, 2022, 2022, 2022, 2022, 2022, 2022, 1957, 1957,
1748      1957, 2022, 2022, 2022, 2022, 2022, 1958, 2022, 2022, 2022,
1749
1750      2022, 2022, 2022, 1938, 2022, 1958, 1939, 2022, 2022, 1954,
1751      2022, 1966, 1966, 1966, 1946, 1967, 2022, 1947, 1968, 2022,
1752      2022, 2022, 2022, 2022, 2022, 2022, 2022, 1955, 2022, 2022,
1753      1963, 2022, 2022, 1964, 2022, 2022, 2022, 2022, 2022, 2022,
1754      1966, 1966, 1966, 2022, 1967, 2022, 2022, 1968, 2022, 2022,
1755      2022, 2022, 2022, 2022, 1976, 1976, 1976, 2022, 2022, 2022,
1756      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 1976,
1757      1976, 1976,  682, 1979, 2022, 2022, 1980, 2022, 2022, 1971,
1758      2022, 2022, 1972, 2022, 2022, 2022, 2022,  682, 2022, 2022,
1759      2022, 1974, 2022, 2022, 1975, 2022, 2022, 2022, 2022, 2022,
1760
1761      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1762      2022, 2022, 2022, 1993, 1993, 1993, 2022, 2022, 1977, 2022,
1763      1978, 2022, 2022, 2022, 2022, 2022, 2022, 1995, 1995, 1995,
1764      1994, 1981, 1993, 1993, 1993, 2022, 1982, 2022, 1999, 1999,
1765      1999, 2022, 2000, 2022, 1996, 2001, 2022, 2022, 1986, 1994,
1766      2022, 1985, 2022, 1989, 1995, 1995, 1995, 2002, 2002, 2002,
1767      2022, 2003, 2022, 2022, 2004, 1999, 1999, 1999, 2022, 2000,
1768      2022, 1996, 2001, 1990, 2002, 2002, 2002, 2022, 2003, 2022,
1769      2022, 2004, 2020, 2020, 2020, 2020, 2020, 2020, 2022, 2022,
1770      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1771
1772      2021, 2022, 2022, 2021,  144,  144,  144,  144,  144,  144,
1773       144,  144,  144,  145,  145,  145,  145,  145,  145,  145,
1774       145,  145,  150,  150,  150,  150,  150,  150,  150,  150,
1775       150,  153,  153,  153,  153,  153,  153,  153,  153,  153,
1776       156,  156,  156,  156,  156,  156,  156,  156,  156,  159,
1777       159,  159,  159,  159,  159,  159,  159,  159,  166,  166,
1778       166,  166,  166,  166,  166,  166,  166,  174,  174,  174,
1779       174,  174,  174,  174,  174,  174,  179,  179,  179,  179,
1780       179,  179,  179,  179,  179,  189,  189,  189,  189,  189,
1781       189,  189,  189,  189,  193,  193,  193,  193,  193,  193,
1782
1783       193,  193,  193,  199,  199,  199,  199,  199,  199,  199,
1784       199,  199,  210,  210,  210,  210,  210,  210,  210,  210,
1785       210,  217,  217,  217,  217,  217,  217,  217,  217,  217,
1786       225,  225,  225,  225,  225,  225,  225,  225,  225,  231,
1787       231,  231,  231,  231,  231,  231,  231,  231,  237,  237,
1788       237,  237,  237,  237,  237,  237,  237,  244,  244,  244,
1789       244,  244,  244,  244,  244,  244,  250,  250,  250,  250,
1790       250,  250,  250,  250,  250,  256,  256,  256,  256,  256,
1791       256,  256,  256,  256,  262,  262,  262,  262,  262,  262,
1792       262,  262,  262,  270,  270,  270,  270,  270,  270,  270,
1793
1794       270,  270,  277,  277,  277,  277,  277,  277,  277,  277,
1795       277,  282,  282,  282,  282,  282,  282,  282,  282,  282,
1796       297,  297,  297,  297,  297,  297,  297,  297,  297,  303,
1797       303,  303,  303,  303,  303,  303,  303,  303,  307,  307,
1798       307,  307,  307,  307,  307,  307,  307,  313,  313,  313,
1799       313,  313,  313,  313,  313,  313,  320,  320,  320,  320,
1800       320,  320,  320,  320,  320,  327,  327,  327,  327,  327,
1801       327,  327,  327,  327,  334,  334,  334,  334,  334,  334,
1802       334,  334,  334,  341,  341,  341,  341,  341,  341,  341,
1803       341,  341,  348,  348,  348,  348,  348,  348,  348,  348,
1804
1805       348,  355,  355,  355,  355,  355,  355,  355,  355,  355,
1806       359,  359,  359,  359,  359,  359,  359,  359,  359,  365,
1807       365,  365,  365,  365,  365,  365,  365,  365,  372,  372,
1808       372,  372,  372,  372,  372,  372,  372,  380,  380,  380,
1809       380,  380,  380,  380,  380,  380,  384,  384,  384,  384,
1810       384,  384,  384,  384,  384,  404,  404,  404, 2022, 2022,
1811      2022,  404,  431,  431,  431, 2022, 2022, 2022,  431,  435,
1812       435,  435, 2022, 2022, 2022,  435,  443,  443,  443, 2022,
1813      2022, 2022,  443,  453,  453,  453, 2022, 2022, 2022,  453,
1814       459,  459,  459, 2022, 2022, 2022,  459,  466,  466,  466,
1815
1816      2022, 2022, 2022,  466,  470,  470,  470, 2022, 2022, 2022,
1817       470,  479,  479,  479, 2022, 2022, 2022,  479,  484,  484,
1818       484, 2022, 2022, 2022,  484,  495,  495,  495, 2022, 2022,
1819      2022,  495,  499,  499,  499, 2022, 2022, 2022,  499,  507,
1820       507,  507, 2022, 2022, 2022,  507,  515,  515,  515, 2022,
1821      2022, 2022,  515,  522,  522,  522, 2022, 2022, 2022,  522,
1822       526,  526,  526, 2022, 2022, 2022,  526,  534,  534,  534,
1823      2022, 2022, 2022,  534,  537,  537,  537,  537,  537,  537,
1824       537, 2022,  537,  553, 2022, 2022, 2022,  553,  581, 2022,
1825      2022, 2022,  581,  588, 2022, 2022, 2022,  588,  598, 2022,
1826
1827      2022, 2022,  598,  604, 2022, 2022, 2022,  604,  611, 2022,
1828      2022, 2022,  611,  614, 2022, 2022, 2022,  614,  623, 2022,
1829      2022, 2022,  623,  628, 2022, 2022, 2022,  628,  484,  484,
1830       484, 2022, 2022, 2022,  484,  640, 2022, 2022, 2022,  640,
1831       495,  495,  495, 2022, 2022, 2022,  495,  644, 2022, 2022,
1832      2022,  644,  499,  499,  499, 2022, 2022, 2022,  499,  652,
1833      2022, 2022, 2022,  652,  507,  507,  507, 2022, 2022, 2022,
1834       507,  659, 2022, 2022, 2022,  659,  515,  515,  515, 2022,
1835      2022, 2022,  515,  665, 2022, 2022, 2022,  665,  522,  522,
1836       522, 2022, 2022, 2022,  522,  669, 2022, 2022, 2022,  669,
1837
1838       526,  526,  526, 2022, 2022, 2022,  526,  675, 2022, 2022,
1839      2022,  675,  534,  534,  534, 2022, 2022, 2022,  534,  679,
1840      2022, 2022, 2022,  679,  681,  681,  681,  681,  681,  681,
1841       681,  681,  681,  687, 2022, 2022, 2022, 2022,  687,  404,
1842       404,  404, 2022, 2022, 2022,  404,  697,  697,  697,  697,
1843      2022, 2022,  697,  697,  431,  431,  431, 2022, 2022, 2022,
1844       431,  727,  727,  727,  727, 2022, 2022,  727,  727,  435,
1845       435,  435, 2022, 2022, 2022,  435,  737,  737,  737,  737,
1846      2022, 2022,  737,  737,  443,  443,  443, 2022, 2022, 2022,
1847       443,  751,  751,  751,  751, 2022, 2022,  751,  751,  453,
1848
1849       453,  453, 2022, 2022, 2022,  453,  759,  759,  759,  759,
1850      2022, 2022,  759,  759,  459,  459,  459, 2022, 2022, 2022,
1851       459,  769,  769,  769,  769, 2022, 2022,  769,  769,  466,
1852       466,  466, 2022, 2022, 2022,  466,  774,  774,  774,  774,
1853      2022, 2022,  774,  774,  470,  470,  470, 2022, 2022, 2022,
1854       470,  786,  786,  786,  786, 2022, 2022,  786,  786,  479,
1855       479,  479, 2022, 2022, 2022,  479,  794,  794,  794,  794,
1856      2022, 2022,  794,  794,  484,  484,  484, 2022, 2022, 2022,
1857       484,  812,  812,  812,  812, 2022, 2022,  812,  812,  819,
1858       819,  819,  819, 2022, 2022,  819,  819,  499,  499,  499,
1859
1860      2022, 2022, 2022,  499,  830,  830,  830,  830, 2022, 2022,
1861       830,  830,  507,  507,  507, 2022, 2022, 2022,  507,  841,
1862       841,  841,  841, 2022, 2022,  841,  841,  515,  515,  515,
1863      2022, 2022, 2022,  515,  851,  851,  851,  851, 2022, 2022,
1864       851,  851,  858,  858,  858,  858, 2022, 2022,  858,  858,
1865       526,  526,  526, 2022, 2022, 2022,  526,  866,  866,  866,
1866       866, 2022, 2022,  866,  866,  534,  534,  534, 2022, 2022,
1867      2022,  534,  872,  872,  872,  872, 2022, 2022,  872,  872,
1868       681,  681,  681,  681,  681,  681,  681,  681,  681,  687,
1869      2022,  687, 2022, 2022,  687,  404,  404,  404, 2022, 2022,
1870
1871      2022,  404,  697,  697,  697,  697, 2022, 2022,  697,  697,
1872       431,  431,  431,  431, 2022,  431, 2022,  431,  727,  727,
1873       727,  727, 2022, 2022,  727,  727,  435,  435,  435,  435,
1874      2022,  435, 2022,  435,  737,  737,  737,  737, 2022, 2022,
1875       737,  737,  443,  443,  443, 2022, 2022, 2022,  443,  751,
1876       751,  751,  751, 2022, 2022,  751,  751,  453,  453,  453,
1877      2022, 2022, 2022,  453,  759,  759,  759,  759, 2022, 2022,
1878       759,  759,  459,  459,  459, 2022, 2022, 2022,  459,  769,
1879       769,  769,  769, 2022, 2022,  769,  769,  466,  466,  466,
1880      2022, 2022, 2022,  466,  774,  774,  774,  774, 2022, 2022,
1881
1882       774,  774,  470,  470,  470, 2022, 2022, 2022,  470,  786,
1883       786,  786,  786, 2022, 2022,  786,  786,  479,  479,  479,
1884      2022, 2022, 2022,  479,  794,  794,  794,  794, 2022, 2022,
1885       794,  794,  484,  484,  484, 2022, 2022, 2022,  484,  812,
1886       812,  812,  812, 2022, 2022,  812,  812,  819,  819,  819,
1887       819, 2022, 2022,  819,  819,  499,  499,  499, 2022, 2022,
1888      2022,  499,  830,  830,  830,  830, 2022, 2022,  830,  830,
1889       507,  507,  507, 2022, 2022, 2022,  507,  841,  841,  841,
1890       841, 2022, 2022,  841,  841,  515,  515,  515, 2022, 2022,
1891      2022,  515,  851,  851,  851,  851, 2022, 2022,  851,  851,
1892
1893       858,  858,  858,  858, 2022, 2022,  858,  858,  526,  526,
1894       526, 2022, 2022, 2022,  526,  866,  866,  866,  866, 2022,
1895      2022,  866,  866,  534,  534,  534, 2022, 2022, 2022,  534,
1896       872,  872,  872,  872, 2022, 2022,  872,  872,  681,  681,
1897       681,  681,  681,  681,  681,  681,  681,  996,  996,  996,
1898       996,  996,  996,  996,  996,  996,  404,  404,  404, 2022,
1899      2022, 2022,  404,  697,  697,  697,  697, 2022, 2022,  697,
1900       697,  727,  727,  727,  727, 2022, 2022,  727,  727,  435,
1901       435,  435, 2022, 2022, 2022,  435,  737,  737,  737,  737,
1902      2022, 2022,  737,  737,  443,  443,  443, 2022, 2022, 2022,
1903
1904       443,  751,  751,  751,  751, 2022, 2022,  751,  751,  453,
1905       453,  453, 2022, 2022, 2022,  453,  759,  759,  759,  759,
1906      2022, 2022,  759,  759,  459,  459,  459, 2022, 2022, 2022,
1907       459,  769,  769,  769,  769, 2022, 2022,  769,  769,  466,
1908       466,  466, 2022, 2022, 2022,  466,  774,  774,  774,  774,
1909      2022, 2022,  774,  774,  470,  470,  470, 2022, 2022, 2022,
1910       470,  786,  786,  786,  786, 2022, 2022,  786,  786,  479,
1911       479,  479,  479, 2022,  479, 2022,  479,  794,  794,  794,
1912       794, 2022, 2022,  794,  794,  484,  484,  484,  484, 2022,
1913       484, 2022,  484,  812,  812,  812,  812, 2022, 2022,  812,
1914
1915       812,  819,  819,  819,  819, 2022, 2022,  819,  819,  499,
1916       499,  499, 2022, 2022, 2022,  499,  830,  830,  830,  830,
1917      2022, 2022,  830,  830,  507,  507,  507, 2022, 2022, 2022,
1918       507,  841,  841,  841,  841, 2022, 2022,  841,  841,  515,
1919       515,  515, 2022, 2022, 2022,  515,  851,  851,  851,  851,
1920      2022, 2022,  851,  851,  858,  858,  858,  858, 2022, 2022,
1921       858,  858,  526,  526,  526, 2022, 2022, 2022,  526,  866,
1922       866,  866,  866, 2022, 2022,  866,  866,  534,  534,  534,
1923       534, 2022,  534, 2022,  534,  872,  872,  872,  872, 2022,
1924      2022,  872,  872,  681,  681,  681,  681,  681,  681,  681,
1925
1926       681,  681,  996,  996,  996,  996,  996,  996,  996,  996,
1927       996,  404,  404,  404, 2022, 2022, 2022,  404,  697,  697,
1928       697,  697, 2022, 2022,  697,  697,  727,  727,  727,  727,
1929      2022, 2022,  727,  727,  435,  435,  435, 2022, 2022, 2022,
1930       435,  737,  737,  737,  737, 2022, 2022,  737,  737,  443,
1931       443,  443, 2022, 2022, 2022,  443,  751,  751,  751,  751,
1932      2022, 2022,  751,  751,  453,  453,  453, 2022, 2022, 2022,
1933       453,  759,  759,  759,  759, 2022, 2022,  759,  759,  459,
1934       459,  459,  459, 2022,  459, 2022,  459,  466,  466,  466,
1935       466, 2022,  466, 2022,  466,  774,  774,  774,  774, 2022,
1936
1937      2022,  774,  774,  470,  470,  470, 2022, 2022, 2022,  470,
1938       786,  786,  786,  786, 2022, 2022,  786,  786,  794,  794,
1939       794,  794, 2022, 2022,  794,  794,  484,  484,  484,  484,
1940      2022,  484, 2022,  484,  812,  812,  812,  812, 2022, 2022,
1941       812,  812,  819,  819,  819,  819, 2022, 2022,  819,  819,
1942       499,  499,  499, 2022, 2022, 2022,  499,  830,  830,  830,
1943       830, 2022, 2022,  830,  830,  507,  507,  507,  507, 2022,
1944       507, 2022,  507,  841,  841,  841,  841, 2022, 2022,  841,
1945       841,  515,  515,  515,  515, 2022,  515, 2022,  515,  851,
1946       851,  851,  851, 2022, 2022,  851,  851,  858,  858,  858,
1947
1948       858, 2022, 2022,  858,  858,  526,  526,  526, 2022, 2022,
1949      2022,  526,  866,  866,  866,  866, 2022, 2022,  866,  866,
1950       872,  872,  872,  872, 2022, 2022,  872,  872,  681,  681,
1951       681,  681,  681,  681,  681,  681,  681,  996,  996,  996,
1952       996,  996,  996,  996,  996,  996,  404,  404,  404,  404,
1953      2022,  404, 2022,  404,  697,  697,  697,  697, 2022, 2022,
1954       697,  697,  727,  727,  727,  727, 2022, 2022,  727,  727,
1955       435,  435,  435, 2022, 2022, 2022,  435,  737,  737,  737,
1956       737, 2022, 2022,  737,  737,  443,  443,  443, 2022, 2022,
1957      2022,  443,  751,  751,  751,  751, 2022, 2022,  751,  751,
1958
1959       453,  453,  453,  453, 2022,  453, 2022,  453,  759,  759,
1960       759,  759, 2022, 2022,  759,  759,  459,  459,  459,  459,
1961      2022,  459, 2022,  459,  774,  774,  774,  774, 2022, 2022,
1962       774,  774,  470,  470,  470, 2022, 2022, 2022,  470, 1817,
1963      1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1818, 1818,
1964      1818, 1818, 1818, 1818, 1818, 1818, 1818, 1856, 1856, 1856,
1965      1856, 1856, 1856, 1856, 1856, 1856, 1859, 1859, 1859, 1859,
1966      1859, 1859, 1859, 1859, 1859, 1887, 1887, 1887, 1887, 1887,
1967      1887, 1887, 1887, 1887, 1889, 1889, 1889, 1889, 1889, 1889,
1968      1889, 1889, 1889,  143, 2022, 2022, 2022, 2022, 2022, 2022,
1969
1970      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1971      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1972      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1973      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1974      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1975      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1976      2022, 2022, 2022
1977     } ;
1978
1979 static yyconst flex_int16_t yy_chk[7164] =
1980     {   0,
1981         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
1982         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
1983         4,   10,  219,    5,    0,    9,    6,    0,   10,    7,
1984         8,    8,    8,  148,   11,   13,   13,   12,   14,   14,
1985        13,   13,  220,   14,   14,  149,    8,   17,   17,  148,
1986        13,   15,   15,   14,   15,  152,   15,   16,   16,  414,
1987        16,  149,   16,   18,   18,  414,   15,   19,   19,   19,
1988       219,  152,   16,   20,   20,   20,   23,   23,   23,   24,
1989        24,   24,  266,   19,   25,   25,   25,  332,   17,   20,
1990       220,  266,   23,  425,  332,   24,  146,  146,  146,  425,
1991
1992        25,  147,  147,  147,   18,   21,   21,   21,   21,   21,
1993        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
1994      1412,   21,   21,   21,   21,   21,   26,   26,   26,   27,
1995        27,   27,  319,   28,   28,   28,   29,   29,   29,   30,
1996        30,   30,   26,  319,  451,   27,  175,   21,   21,   28,
1997       451,  294,   29,  190,  294,   30,  151,  151,  151,  172,
1998       172,  172,  175,  180,  180,  180,  187,  187,  187,  190,
1999        21,  183,   21,   22,   22,   22,   22,   22,   22,   22,
2000        22,   22,   22,   22,   22,   22,   22,   22,  272,   22,
2001        22,   22,   22,   22,   31,   31,   31,   32,   32,   32,
2002
2003       995,   33,   33,   33,   34,   34,   34,   35,   35,   35,
2004        31,  415,  200,   32,  170,   22,   22,   33,  211,  183,
2005        34,  183,  995,   35,  415,   36,   36,   36,  200,  185,
2006       170,  194,  194,  194,  211,  185,  272,  185,   22,  185,
2007        22,   36,   37,   37,   37,   37,   37,   37,   37,   37,
2008        37,   37,   37,   37,   37,   37,   37,  291,   37,   37,
2009        37,   37,   37,   39,   39,   39,   40,   40,   40,  170,
2010        47,   47,   47,   43,   43,   44,   44,  291,   43,   39,
2011        44, 1152,   40,  215,   37,   37,   47,  215,   43, 1152,
2012        44,  215,   37,   38,   38,   38,   38,   38,   38,   38,
2013
2014        38,   38,   38,   38,   38,   38,   38,   38,  707,   38,
2015        38,   38,   38,   38,   43,  333,   44,   48,   48,   48,
2016       707,   49,   49,   49,   50,   50,   50,  197,  197,  197,
2017       208,  208,  208,   48,  684,   38,   38,   49,  684,  397,
2018        50,  336,  397,   38,   41,   41,   41,   41,   41,   41,
2019        41,   41,   41,   41,   41,   41,   41,   41,   41,  333,
2020        41,   41,   41,   41,   41,   51,   51,   51,   52,   52,
2021        52,  322,   53,   53,   53,   54,   54,   54,  218,  218,
2022       218,   51,  195,  205,   52,  336,   41,   41,   53,  195,
2023       205,   54, 1319, 1319,   41, 1320, 1320,   41,  195,  205,
2024
2025       223,  223,  223,   41,   42,   42,   42,   42,   42,   42,
2026        42,   42,   42,   42,   42,   42,   42,   42,   42,  322,
2027        42,   42,   42,   42,   42,   57,   57,   57,   58,   58,
2028        58,  720,   61,   61,   61,   62,   62,   62,  388,  226,
2029       238,   57, 1156,  720,   58,  233,   42,   42,   61,  422,
2030      1156,   62,  233,  388,   42,  226,  238,   42,  232,  232,
2031       232,  233,  422,   42,   45,   45,   45,   45,   45,   45,
2032        45,   45,   45,   45,   45,   45,   45,   45,   45,  754,
2033        45,   45,   45,   45,   45,   65,   65,   65,   66,   66,
2034        66,  754,   67,   67,   67,   68,   68,   68,   69,   69,
2035
2036        69,   65,  246,  251,   66, 1414,   45,   45,   67,  246,
2037       350,   68,  426, 1419,   69,   45, 1421,   45,  246,  251,
2038        45,  235,  235,  235,  254,  426,   45,   46,   46,   46,
2039        46,   46,   46,   46,   46,   46,   46,   46,   46,   46,
2040        46,   46,  439,   46,   46,   46,   46,   46,   70,   70,
2041        70,   73,   73,   73,  350,   74,   74,   74,   75,   75,
2042        75,   76,   76,   76,   70,  254,  263,   73,  254,   46,
2043        46,   74,  278, 1004,   75,  439, 1428,   76,   46, 1004,
2044        46, 1442,  263,   46,  245,  245,  245, 1112,  278,   46,
2045        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
2046
2047        55,   55,   55,   55,   55, 1443,   55,   55,   55,   55,
2048        55,   77,   77,   77,   78,   78,   78, 1112,   79,   79,
2049        79,   80,   80,   80,   83,   83,   83,   77, 1444,  630,
2050        78, 1111,   55,   55,   79,  289,  304,   80,  630,   55,
2051        83,  248,  248,  248,   55,  257,  257,  257,  260,  260,
2052       260,  289,  304,   55,   56,   56,   56,   56,   56,   56,
2053        56,   56,   56,   56,   56,   56,   56,   56,   56, 1111,
2054        56,   56,   56,   56,   56,   84,   84,   84,   87,   87,
2055        87, 1445,   88,   88,   88,   91,   91,   91,   92,   92,
2056        92,   84, 1325, 1325,   87, 1294,   56,   56,   88,  314,
2057
2058       328,   91, 1294,   56,   92,  271,  271,  271,   56,  275,
2059       275,  275,  283,  283,  283,  314,  328,   56,   59,   59,
2060        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
2061        59,   59,   59, 1448,   59,   59,   59,   59,   59,   95,
2062        95,   95,   96,   96,   96,  875,   97,   97,   97,   98,
2063        98,   98,   99,   99,   99,   95,  284,  428,   96, 1451,
2064        59,   59,   97,  284,  875,   98, 1232, 1433,   99, 1295,
2065       428,   59,  284,  286,  286,  286, 1295,   59, 1452,   59,
2066        59,   60,   60,   60,   60,   60,   60,   60,   60,   60,
2067        60,   60,   60,   60,   60,   60, 1433,   60,   60,   60,
2068
2069        60,   60,  100,  100,  100,  101,  101,  101, 1232,  102,
2070       102,  102,  105,  105,  105,  106,  106,  106,  100, 1326,
2071      1326,  101,  299,   60,   60,  102,  539, 1230,  105,  299,
2072      1453,  106, 1315, 1230,   60,  298,  298,  298,  299, 1315,
2073        60,  539,   60,   60,   63,   63,   63,   63,   63,   63,
2074        63,   63,   63,   63,   63,   63,   63,   63,   63, 1434,
2075        63,   63,   63,   63,   63,  107,  107,  107,  108,  108,
2076       108, 1454,  109,  109,  109,  110,  110,  110,  111,  111,
2077       111,  107, 1455, 1316,  108,  309,   63,   63,  109,  342,
2078      1316,  110,  309, 1434,  111,  301,  301,  301,  308,  308,
2079
2080       308,  309,  311,  311,  311,  342,   63,   64,   64,   64,
2081        64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
2082        64,   64, 1456,   64,   64,   64,   64,   64,  112,  112,
2083       112,  115,  115,  115, 1457,  116,  116,  116,  117,  117,
2084       117,  118,  118,  118,  112, 1458, 1338,  115, 1459,   64,
2085        64,  116,  356, 1413,  117, 1413, 1460,  118,  321,  321,
2086       321,  325,  325,  325,  335,  335,  335, 1461,  356,   64,
2087        71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
2088        71,   71,   71,   71,   71, 1338,   71,   71,   71,   71,
2089        71,  119,  119,  119,  120,  120,  120, 1465,  121,  121,
2090
2091       121,  122,  122,  122,  125,  125,  125,  119,  366,  361,
2092       120,  381,   71,   71,  121,   71,  361,  122, 1466, 1415,
2093       125, 1415, 1467,   71,  366,  361,   71,  381, 1339,   71,
2094      1468, 1470,   71,   72,   72,   72,   72,   72,   72,   72,
2095        72,   72,   72,   72,   72,   72,   72,   72, 1477,   72,
2096        72,   72,   72,   72,  126,  126,  126,  129,  129,  129,
2097      1478,  130,  130,  130,  131,  131,  131,  132,  132,  132,
2098       126, 1339,  386,  129, 1479,   72,   72,  130,   72,  386,
2099       131, 1050, 1420,  132, 1420, 1480,   72, 1050,  386,   72,
2100      1050, 1422,   72, 1422, 1050,   72,   81,   81,   81,   81,
2101
2102        81,   81,   81,   81,   81,   81,   81,   81,   81,   81,
2103        81,  374,   81,   81,   81,   81,   81,  133,  133,  133,
2104       134,  134,  134, 1482,  135,  135,  135,  136,  136,  136,
2105       139,  139,  139,  133, 1485, 1051,  134, 1486,   81,   81,
2106       135, 1051, 1487,  136, 1051,  374,  139,  162, 1051,   81,
2107       339,  339,  339,  349,  349,  349,  353,  353,  353,  374,
2108      1488,   81,   82,   82,   82,   82,   82,   82,   82,   82,
2109        82,   82,   82,   82,   82,   82,   82, 1489,   82,   82,
2110        82,   82,   82,  140,  140,  140,  162,  360,  360,  360,
2111      1490, 1495,  162,  363,  363,  363,  162, 1496, 1497,  140,
2112
2113      1498,  162, 1499, 1500,   82,   82,  373,  373,  373,  378,
2114       378,  378,  385,  385,  385,   82,  387,  387,  387,  542,
2115       542,  542, 1521,  542,  710,  710,  710,   82,   85,   85,
2116        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
2117        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
2118        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
2119        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
2120        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
2121        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
2122        85,   85,   85,   85,   85,   85,   85,   89,   89,   89,
2123
2124        89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
2125        89,   89, 1513,   89,   89,   89,   89,   89,  396,  396,
2126       396,  437,  437,  437,  445,  445,  445,  460,  460,  460,
2127       472,  472,  472,  718,  718,  718, 1522, 1523,  437,   89,
2128        89,  445, 1524, 1529,  460, 1530, 1531,  472, 1513, 1231,
2129        89,   90,   90,   90,   90,   90,   90,   90,   90,   90,
2130        90,   90,   90,   90,   90,   90, 1514,   90,   90,   90,
2131        90,   90, 1532,  396,  480,  480,  480, 1231,  486,  486,
2132       486,  487,  487,  487,  496,  496,  496,  888,  888,  888,
2133      1527,  480, 1533,   90,   90,  486, 1534, 1535,  487, 1536,
2134
2135      1514,  496, 1527, 1515,   90,   93,   93,   93,   93,   93,
2136        93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
2137      1537,   93,   93,   93,   93,   93,  501,  501,  501,  523,
2138       523,  523,  553,  553,  553,  554,  554,  554,  581,  581,
2139       581, 1110, 1515,  501, 1538, 1539,  523,   93,   93, 1541,
2140       553,   93, 1542,  554, 1543, 1551,  581, 1110,   93, 1552,
2141        93,  893,  893,  893,  896,  896,  896,   93,   94,   94,
2142        94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
2143        94,   94,   94, 1553,   94,   94,   94,   94,   94,  554,
2144       582,  582,  582, 1558, 1528,  584,  584,  584,  585,  585,
2145
2146       585, 1559,  585, 1560, 1561,  585, 1528, 1562,  582, 1563,
2147        94,   94,  584, 1568,   94,  593,  593,  593, 1569,  593,
2148      1570,   94,  593,   94,  900,  900,  900,  904,  904,  904,
2149        94,  103,  103,  103,  103,  103,  103,  103,  103,  103,
2150       103,  103,  103,  103,  103,  103,  582,  103,  103,  103,
2151       103,  103,  588,  588,  588, 1571, 1572,  589,  589,  589,
2152       592,  592,  592,  594,  594,  594,  596,  596,  596, 1573,
2153       588, 1586, 1594,  103,  103,  589,  103,  592, 1587,  103,
2154       594, 1565, 1566,  596,  607,  607,  607, 1596,  607, 1565,
2155      1566,  607, 1585,  103,  104,  104,  104,  104,  104,  104,
2156
2157       104,  104,  104,  104,  104,  104,  104,  104,  104, 1586,
2158       104,  104,  104,  104,  104, 1599, 1587,  589, 1585, 1600,
2159       598,  598,  598,  604,  604,  604, 1601, 1602,  599,  599,
2160       599,  605,  605,  605, 1603, 1604,  104,  104,  598,  104,
2161      1605,  604,  104,  618,  618,  618,  599,  618, 1606,  605,
2162       618,  930,  930,  930, 1607, 1609,  104,  113,  113,  113,
2163       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
2164       113,  113,  599,  113,  113,  113,  113,  113,  606,  606,
2165       606, 1610, 1611,  611,  611,  611,  614,  614,  614, 1612,
2166      1616,  605,  617,  617,  617,  606,  612,  612,  612,  113,
2167
2168       113,  611,  113, 1617,  614,  113, 1009, 1009, 1009,  617,
2169       113,  626,  626,  626,  612,  626, 1621, 1623,  626,  113,
2170       114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
2171       114,  114,  114,  114,  114, 1627,  114,  114,  114,  114,
2172       114,  615,  615,  615,  612, 1628,  623,  623,  623,  624,
2173       624,  624,  625,  625,  625, 1629,  628,  628,  628,  615,
2174      1630, 1631,  114,  114,  623,  114, 1632,  624,  114,  625,
2175      1011, 1011, 1011,  114,  628, 1015, 1015, 1015, 1021, 1021,
2176      1021, 1633,  114,  123,  123,  123,  123,  123,  123,  123,
2177       123,  123,  123,  123,  123,  123,  123,  123,  615,  123,
2178
2179       123,  123,  123,  123, 1634, 1635,  624, 1636, 1638,  629,
2180       629,  629,  631,  631,  631,  632,  632,  632, 1639,  632,
2181      1640, 1641,  632, 1642, 1643,  123,  123,  629, 1656,  631,
2182      1022, 1022, 1022, 1047, 1047, 1047,  123,  124,  124,  124,
2183       124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
2184       124,  124, 1650,  124,  124,  124,  124,  124,  633,  633,
2185       633,  634,  634,  634, 1658,  634, 1662, 1663,  634,  629,
2186       635,  635,  635, 1664, 1665,  633, 1126, 1126, 1126,  124,
2187       124,  643,  643,  643, 1650,  643, 1667,  635,  643, 1668,
2188       124,  127,  127,  127,  127,  127,  127,  127,  127,  127,
2189
2190       127,  127,  127,  127,  127,  127, 1669,  127,  127,  127,
2191       127,  127,  640,  640,  640,  642,  642,  642,  644,  644,
2192       644,  641,  641,  641,  645,  645,  645,  647,  647,  647,
2193       640, 1670,  642,  127,  127, 1649,  644, 1671, 1672,  641,
2194      1673,  127,  645,  127,  647,  127, 1127, 1127, 1127, 1129,
2195      1129, 1129, 1674,  127,  128,  128,  128,  128,  128,  128,
2196       128,  128,  128,  128,  128,  128,  128,  128,  128, 1678,
2197       128,  128,  128,  128,  128,  641,  648,  648,  648, 1649,
2198       648,  645, 1680,  648,  652,  652,  652,  653,  653,  653,
2199       655,  655,  655,  656,  656,  656,  128,  128,  662,  662,
2200
2201       662, 1681,  652, 1684,  128,  653,  128,  655,  128, 1685,
2202       656, 1130, 1130, 1130, 1686,  662,  128,  137,  137,  137,
2203       137,  137,  137,  137,  137,  137,  137,  137,  137,  137,
2204       137,  137, 1687,  137,  137,  137,  137,  137, 1688,  653,
2205       659,  659,  659, 1689,  664,  664,  664,  660,  660,  660,
2206       665,  665,  665,  666,  666,  666, 1679, 1679,  659,  137,
2207       137,  664,  667,  667,  667,  660, 1690, 1691,  665, 1692,
2208      1693,  666, 1694,  668,  668,  668, 1696,  668, 1697,  667,
2209       668, 1698,  137,  138,  138,  138,  138,  138,  138,  138,
2210       138,  138,  138,  138,  138,  138,  138,  138, 1699,  138,
2211
2212       138,  138,  138,  138,  660,  669,  669,  669, 1700, 1701,
2213       666,  670,  670,  670,  675,  675,  675,  676,  676,  676,
2214       679,  679,  679,  669, 1710,  138,  138, 1704, 1711,  670,
2215      1712, 1713,  675, 1716, 1717,  676, 1719, 1720,  679,  680,
2216       680,  680,  696,  696,  696,  725,  725,  725,  138,  181,
2217       697,  697,  697,  890,  890,  890,  181,  680, 1704, 1721,
2218       696, 1723,  725,  670, 1728,  181, 1729,  890,  697,  699,
2219       699,  699, 1730,  726,  726,  726, 1731,  676,  727,  727,
2220       727, 1737, 1738,  729,  729,  729, 1739,  699, 1740, 1741,
2221       181,  726,  181, 1742, 1744,  181,  727,  181,  181,  680,
2222
2223       181,  729, 1746, 1749,  181, 1750,  181,  181,  181,  182,
2224       730,  730,  730,  699, 1751, 1752,  182,  731,  731,  731,
2225      1753,  731, 1754, 1761,  731,  182, 1769,  730, 1770,  729,
2226       734,  734,  734,  736,  736,  736,  737,  737,  737, 1771,
2227      1772,  739,  739,  739,  744,  744,  744,  734, 1776, 1777,
2228       182,  736,  182, 1778,  737,  182, 1779,  182,  182,  739,
2229       182,  744, 1761, 1780,  182, 1781,  182,  182,  182,  741,
2230       741,  741, 1783,  741, 1784, 1785,  741,  745,  745,  745,
2231      1786,  745, 1791, 1792,  745,  739, 1793,  734,  746,  746,
2232       746,  747,  747,  747,  748,  748,  748, 1794,  748, 1795,
2233
2234      1796,  748,  750,  750,  750,  746, 1799, 1800,  747,  751,
2235       751,  751,  753,  753,  753,  756,  756,  756, 1801, 1802,
2236       750,  758,  758,  758,  759,  759,  759,  751, 1803, 1804,
2237       753, 1819,  756,  761,  761,  761,  762,  762,  762,  758,
2238       762, 1821,  759,  762,  768,  768,  768,  769,  769,  769,
2239      1824,  761,  771,  771,  771,  773,  773,  773,  774,  774,
2240       774, 1815,  768, 1816, 1813,  769, 1825, 1827,  753, 1828,
2241       771, 1831, 1832,  773, 1816, 1815,  774,  761,  776,  776,
2242       776,  778,  778,  778, 1833,  778, 1834, 1841,  778,  785,
2243       785,  785,  786,  786,  786, 1842,  776,  788,  788,  788,
2244
2245      1844,  789,  789,  789, 1845,  789, 1813,  785,  789, 1847,
2246       786,  793,  793,  793,  771,  788,  794,  794,  794,  796,
2247       796,  796, 1848,  799,  799,  799, 1850,  799, 1851,  793,
2248       799,  805,  805,  805,  794, 1858, 1839,  796,  776,  802,
2249       802,  802, 1855,  802, 1840, 1860,  802, 1839,  805,  806,
2250       806,  806, 1862,  806, 1863, 1840,  806, 1856,  788,  811,
2251       811,  811,  812,  812,  812,  814,  814,  814,  815,  815,
2252       815, 1856,  815, 1857, 1857,  815,  796,  811, 1872, 1855,
2253       812, 1873, 1874,  814,  818,  818,  818,  819,  819,  819,
2254       821,  821,  821,  823,  823,  823, 1859,  823, 1875, 1887,
2255
2256       823, 1888,  818, 1889, 1891,  819, 1892, 1859,  821,  829,
2257       829,  829,  830,  830,  830,  832,  832,  832,  834,  834,
2258       834, 1899,  835,  835,  835, 1902,  835,  829,  814,  835,
2259       830, 1903, 1904,  832, 1905,  834, 1909,  836,  836,  836,
2260       837,  837,  837, 1921,  837, 1925, 1926,  837,  840,  840,
2261       840, 1927, 1928,  821,  836,  841,  841,  841,  843,  843,
2262       843,  845,  845,  845, 1933, 1931,  840, 1934,  846,  846,
2263       846,  832,  846,  841, 1935,  846,  843, 1936,  845,  848,
2264       848,  848,  849,  849,  849, 1937,  849, 1931, 1940,  849,
2265       850,  850,  850,  851,  851,  851,  848,  853,  853,  853,
2266
2267       854,  854,  854, 1941,  854, 1942, 1940,  854,  850, 1943,
2268      1944,  851,  857,  857,  857,  853,  858,  858,  858, 1945,
2269      1948,  843,  860,  860,  860,  862,  862,  862, 1950, 1951,
2270       857,  865,  865,  865,  858,  866,  866,  866, 1952, 1948,
2271       860, 1953,  862,  868,  868,  868,  871,  871,  871,  865,
2272       872,  872,  872,  866,  874,  874,  874,  876,  876,  876,
2273       853,  868, 1959, 1961,  871,  884,  884,  884,  872,  911,
2274       911,  911,  874, 1411, 1979,  876,  876, 1983,  860,  901,
2275       901,  901, 1980,  884, 1956, 1965,  911,  912,  912,  912,
2276      1956,  912, 1991,  901,  912,  913,  913,  913, 1965, 1987,
2277
2278       868,  914,  914,  914,  874,  915,  915,  915, 2013,  915,
2279      1984, 1983,  915,  913,  918,  918,  918, 1979,  914,  920,
2280       920,  920, 1997,  920, 1991, 1980,  920,  884,  923,  923,
2281       923, 1410,  918,  924,  924,  924, 1987,  924, 1992, 1409,
2282       924,  929,  929,  929, 1984,  923,  925,  925,  925,  913,
2283       925, 1408, 2013,  925,  932,  932,  932, 1988, 1998,  929,
2284       918,  933,  933,  933, 1997,  933, 2007, 2014,  933, 2008,
2285      1992,  932,  934,  934,  934,  935,  935,  935,  939,  939,
2286       939,  941,  941,  941,  945,  945,  945, 1407,  929,  934,
2287       946,  946,  946,  935, 1988, 2007,  939, 2005, 2008,  941,
2288
2289      1998,  945,  947,  947,  947, 2017, 2006,  946,  948,  948,
2290       948, 2014,  949,  949,  949,  950,  950,  950, 2011, 2017,
2291       947,  935,  951,  951,  951,  948,  955,  955,  955,  941,
2292       949, 2005,  950,  946,  952,  952,  952, 2012,  952,  951,
2293      2006,  952, 1406,  955,  956,  956,  956, 2011,  957,  957,
2294       957,  958,  958,  958,  959,  959,  959,  960,  960,  960,
2295      2009,  956, 2010, 1405,  947,  957, 2012, 1394,  958, 2009,
2296       949, 2010,  959, 1393, 2015,  960, 1392,  964,  964,  964,
2297       965,  965,  965, 1391,  951, 2016,  967,  967,  967, 2018,
2298       967, 1390,  957,  967,  964,  970,  970,  970,  965,  970,
2299
2300      2018, 1389,  970, 2015,  974,  974,  974,  975,  975,  975,
2301       956,  987,  987,  987, 2016,  959, 1388,  958,  974,  960,
2302       964, 1387,  977,  977,  977,  975,  977, 1381,  987,  977,
2303       981,  981,  981,  965,  981, 1380, 1379,  981,  984,  984,
2304       984,  985,  985,  985,  988,  988,  988, 1378,  988, 1377,
2305      1376,  988,  991,  991,  991, 1375,  984, 1374, 1373,  985,
2306       993,  993,  993,  994,  994,  994,  997,  997,  997,  975,
2307       991, 1005, 1005, 1005, 1017, 1017, 1017,  993, 1018, 1018,
2308      1018,  994, 1372, 1366,  997, 1024, 1024, 1024, 1017, 1005,
2309      1363, 1361, 1018, 1359,  985, 1025, 1025, 1025,  991, 1024,
2310
2311       984, 1027, 1027, 1027, 1029, 1029, 1029, 1355, 1354, 1025,
2312      1030, 1030, 1030, 1335,  997, 1027, 1333, 1332, 1029, 1322,
2313      1005, 1031, 1031, 1031, 1030, 1031,  994, 1317, 1031, 1314,
2314       997, 1034, 1034, 1034, 1017, 1035, 1035, 1035, 1313, 1035,
2315      1310, 1296, 1035, 1293, 1292, 1024, 1052, 1052, 1052, 1034,
2316      1040, 1040, 1040, 1042, 1042, 1042, 1291, 1042, 1277, 1276,
2317      1042, 1027, 1275, 1052, 1029, 1046, 1046, 1046, 1040, 1049,
2318      1049, 1049, 1274, 1049, 1273, 1272, 1049, 1053, 1053, 1053,
2319      1271, 1053, 1270, 1046, 1053, 1054, 1054, 1054, 1055, 1055,
2320      1055, 1056, 1056, 1056, 1034, 1057, 1057, 1057, 1040, 1058,
2321
2322      1058, 1058, 1269, 1054, 1268, 1055, 1264, 1263, 1056, 1060,
2323      1060, 1060, 1057, 1061, 1061, 1061, 1260, 1058, 1065, 1065,
2324      1065, 1259, 1046, 1066, 1066, 1066, 1060, 1066, 1257, 1255,
2325      1066, 1061, 1249, 1054, 1247, 1065, 1067, 1067, 1067, 1068,
2326      1068, 1068, 1244, 1068, 1243, 1056, 1068, 1070, 1070, 1070,
2327      1071, 1071, 1071, 1067, 1072, 1072, 1072, 1061, 1072, 1239,
2328      1233, 1072, 1073, 1073, 1073, 1070, 1225, 1071, 1074, 1074,
2329      1074, 1075, 1075, 1075, 1223, 1075, 1222, 1221, 1075, 1214,
2330      1073, 1076, 1076, 1076, 1208, 1074, 1077, 1077, 1077, 1078,
2331      1078, 1078, 1207, 1078, 1206, 1204, 1078, 1202, 1076, 1079,
2332
2333      1079, 1079, 1179, 1077, 1080, 1080, 1080, 1081, 1081, 1081,
2334      1082, 1082, 1082, 1083, 1083, 1083, 1079, 1087, 1087, 1087,
2335      1178, 1080, 1177, 1172, 1081, 1088, 1088, 1088, 1082, 1088,
2336      1171, 1083, 1088, 1170, 1087, 1090, 1090, 1090, 1091, 1091,
2337      1091, 1157, 1092, 1092, 1092, 1094, 1094, 1094, 1095, 1095,
2338      1095, 1155, 1154, 1090, 1153, 1091, 1151, 1150, 1080, 1092,
2339      1147, 1083, 1146, 1094, 1144, 1095, 1096, 1096, 1096, 1097,
2340      1097, 1097, 1082, 1143, 1098, 1098, 1098, 1100, 1100, 1100,
2341      1141, 1100, 1140, 1096, 1100, 1139, 1137, 1097, 1098, 1105,
2342      1105, 1105, 1098, 1094, 1107, 1107, 1107, 1108, 1108, 1108,
2343
2344      1133, 1108, 1092, 1132, 1108, 1131, 1128, 1105, 1125, 1096,
2345      1124, 1107, 1109, 1109, 1109, 1123, 1122, 1097, 1115, 1115,
2346      1115, 1116, 1116, 1116, 1117, 1117, 1117, 1118, 1118, 1118,
2347      1109, 1134, 1134, 1134, 1121, 1115, 1120, 1105, 1116, 1119,
2348      1114, 1117, 1135, 1135, 1135, 1118, 1136, 1136, 1136, 1138,
2349      1138, 1138, 1142, 1142, 1142, 1106, 1145, 1145, 1145, 1148,
2350      1148, 1148, 1149, 1149, 1149, 1104, 1103, 1109, 1099, 1093,
2351      1142, 1089, 1086, 1116, 1145, 1085, 1084, 1148, 1069, 1149,
2352      1064, 1117, 1063, 1062, 1118, 1158, 1158, 1158, 1048, 1158,
2353      1045, 1041, 1158, 1161, 1161, 1161, 1162, 1162, 1162, 1142,
2354
2355      1039, 1163, 1163, 1163, 1038, 1163, 1028, 1161, 1163, 1026,
2356      1023, 1161, 1020, 1162, 1148, 1164, 1164, 1164, 1165, 1165,
2357      1165, 1166, 1166, 1166, 1019, 1166, 1016, 1014, 1166, 1167,
2358      1167, 1167, 1164, 1013, 1012, 1165, 1168, 1168, 1168, 1010,
2359      1168, 1008, 1007, 1168, 1006, 1003, 1167, 1169, 1169, 1169,
2360      1173, 1173, 1173, 1002, 1173,  999,  996, 1173,  992, 1176,
2361      1176, 1176,  990, 1176,  989, 1169, 1176, 1180, 1180, 1180,
2362      1182, 1182, 1182,  986, 1182,  980,  976, 1182, 1185, 1185,
2363      1185,  973, 1187, 1187, 1187, 1180, 1187,  966,  963, 1187,
2364      1190, 1190, 1190, 1169,  962,  961, 1185, 1191, 1191, 1191,
2365
2366       944, 1191,  943,  942, 1191,  940,  938, 1190, 1192, 1192,
2367      1192,  937, 1192,  936,  931, 1192, 1195, 1195, 1195, 1196,
2368      1196, 1196,  928, 1196,  919,  917, 1196, 1197, 1197, 1197,
2369      1198, 1198, 1198, 1195, 1199, 1199, 1199,  916, 1199,  910,
2370       909, 1199,  908,  907, 1197,  906,  905, 1198, 1200, 1200,
2371      1200, 1201, 1201, 1201, 1203, 1203, 1203, 1205, 1205, 1205,
2372       903, 1205,  902,  899, 1205,  898, 1200,  897,  895, 1201,
2373       894, 1203, 1209, 1209, 1209, 1211, 1211, 1211, 1212, 1212,
2374      1212,  892, 1212,  891,  889, 1212, 1213, 1213, 1213,  887,
2375      1209,  886, 1211, 1216, 1216, 1216, 1200, 1203, 1215, 1215,
2376
2377      1215,  885,  883, 1213, 1218, 1218, 1218, 1219, 1219, 1219,
2378      1216, 1201, 1215, 1217, 1217, 1217, 1215, 1217,  882,  881,
2379      1217, 1218, 1220, 1220, 1220, 1219, 1224, 1224, 1224, 1226,
2380      1226, 1226,  880, 1226,  879,  870, 1226,  869, 1213,  864,
2381      1220, 1229, 1229, 1229, 1224, 1234, 1234, 1234, 1235, 1235,
2382      1235,  863, 1235,  861,  847, 1235, 1236, 1236, 1236, 1229,
2383       844, 1218, 1234, 1237, 1237, 1237,  839,  838, 1220,  833,
2384      1238, 1238, 1238, 1236, 1240, 1240, 1240, 1241, 1241, 1241,
2385      1237, 1242, 1242, 1242, 1245, 1245, 1245, 1224, 1238, 1229,
2386      1246, 1246, 1246, 1248, 1248, 1248, 1250, 1250, 1250, 1251,
2387
2388      1251, 1251, 1252, 1252, 1252, 1253, 1253, 1253, 1254, 1254,
2389      1254,  828, 1236, 1256, 1256, 1256, 1258, 1258, 1258, 1261,
2390      1261, 1261, 1265, 1265, 1265,  827, 1237, 1266, 1266, 1266,
2391      1238, 1267, 1267, 1267, 1258, 1267,  826, 1261, 1267,  822,
2392      1265, 1278, 1278, 1278, 1266, 1279, 1279, 1279,  810, 1279,
2393       809,  808, 1279, 1282, 1282, 1282, 1283, 1283, 1283, 1278,
2394      1283,  807,  798, 1283, 1258, 1284, 1284, 1284,  797, 1284,
2395      1282,  792, 1284, 1287, 1287, 1287,  784, 1287,  783,  782,
2396      1287, 1290, 1290, 1290, 1297, 1297, 1297, 1278, 1297,  781,
2397       777, 1297,  772, 1300, 1300, 1300,  767, 1300,  766, 1290,
2398
2399      1300, 1303, 1303, 1303, 1304, 1304, 1304,  765, 1304,  757,
2400       755, 1304, 1305, 1305, 1305,  749, 1305,  740, 1303, 1305,
2401      1308, 1308, 1308, 1309, 1309, 1309, 1311, 1311, 1311, 1312,
2402      1312, 1312, 1290, 1312,  735,  724, 1312,  723, 1308,  722,
2403       721, 1309,  719, 1311, 1318, 1318, 1318,  717, 1318,  716,
2404       715, 1318, 1321, 1321, 1321, 1323, 1323, 1323, 1324, 1324,
2405      1324,  714, 1324,  713,  712, 1324, 1327, 1327, 1327, 1321,
2406      1328, 1328, 1328, 1323, 1330, 1330, 1330, 1331, 1331, 1331,
2407      1308,  711,  709, 1327, 1334, 1334, 1334,  708, 1328, 1337,
2408      1337, 1337, 1330,  706, 1331, 1336, 1336, 1336, 1321, 1340,
2409
2410      1340, 1340, 1334,  705, 1341, 1341, 1341, 1337, 1341,  704,
2411      1323, 1341,  703, 1336, 1344, 1344, 1344, 1345, 1345, 1345,
2412       702,  701, 1327, 1346, 1346, 1346, 1347, 1347, 1347,  700,
2413       695, 1344,  694,  693, 1345,  692, 1330, 1348, 1348, 1348,
2414       689, 1346, 1349, 1349, 1349, 1334, 1350, 1350, 1350,  688,
2415       687, 1336, 1351, 1351, 1351, 1352, 1352, 1352, 1353, 1353,
2416      1353, 1356, 1356, 1356, 1357, 1357, 1357, 1344, 1358, 1358,
2417      1358, 1360, 1360, 1360, 1362, 1362, 1362,  685, 1346, 1345,
2418      1365, 1365, 1365, 1367, 1367, 1367, 1369, 1369, 1369,  681,
2419      1369,  678, 1362, 1369, 1382, 1382, 1382, 1365, 1383, 1383,
2420
2421      1383, 1367, 1383,  677,  674, 1383, 1386, 1386, 1386, 1395,
2422      1395, 1395, 1382, 1395,  673,  672, 1395, 1398, 1398, 1398,
2423      1399, 1399, 1399,  671, 1386, 1401, 1401, 1401,  663, 1402,
2424      1402, 1402,  661, 1402,  658, 1398, 1402,  657, 1399, 1416,
2425      1416, 1416, 1401, 1417, 1417, 1417, 1418, 1418, 1418,  654,
2426       651, 1382, 1423, 1423, 1423,  650, 1416, 1424, 1424, 1424,
2427      1425, 1425, 1425,  649, 1418, 1427, 1427, 1427, 1401, 1423,
2428       646,  639, 1426, 1426, 1426, 1424, 1426, 1425,  638, 1426,
2429       637,  636, 1427, 1429, 1429, 1429, 1430, 1430, 1430, 1431,
2430      1431, 1431, 1432, 1432, 1432, 1423, 1435, 1435, 1435,  627,
2431
2432       622, 1429, 1436, 1436, 1436,  621,  620, 1431,  619, 1418,
2433      1432,  616,  613, 1424, 1437, 1437, 1437,  610,  609, 1436,
2434      1438, 1438, 1438, 1439, 1439, 1439, 1440, 1440, 1440,  608,
2435       603, 1437, 1441, 1441, 1441, 1446, 1446, 1446, 1438, 1449,
2436      1449, 1449, 1450, 1450, 1450,  602, 1450,  601,  600, 1450,
2437      1432, 1431,  597, 1446,  595,  591, 1449, 1462, 1462, 1462,
2438       587,  586, 1437, 1463, 1463, 1463, 1472, 1472, 1472, 1473,
2439      1473, 1473, 1475, 1475, 1475, 1462,  583,  580, 1476, 1476,
2440      1476, 1463, 1476, 1472,  579, 1476,  578, 1473,  577, 1475,
2441      1484, 1484, 1484, 1491, 1491, 1491, 1492, 1492, 1492,  576,
2442
2443      1492,  575,  574, 1492, 1493, 1493, 1493, 1484,  573,  572,
2444      1491,  571,  570, 1462, 1494, 1494, 1494, 1501, 1501, 1501,
2445      1502, 1502, 1502, 1503, 1503, 1503,  569, 1503,  568,  567,
2446      1503,  566, 1494,  565, 1501, 1506, 1506, 1506, 1502, 1507,
2447      1507, 1507,  564, 1507,  563,  562, 1507,  561, 1508, 1508,
2448      1508,  560, 1506, 1509, 1509, 1509, 1511, 1511, 1511, 1512,
2449      1512, 1512,  559,  558, 1501, 1508,  557,  556, 1494,  555,
2450       552, 1509, 1516, 1516, 1516,  551,  550, 1512, 1501, 1517,
2451      1517, 1517,  548, 1517,  547,  546, 1517,  545,  544, 1516,
2452      1518, 1518, 1518, 1519, 1519, 1519, 1525, 1525, 1525, 1526,
2453
2454      1526, 1526,  540, 1526,  538,  537, 1526, 1518, 1540, 1540,
2455      1540, 1519,  536, 1525, 1546, 1546, 1546, 1547, 1547, 1547,
2456       535, 1547,  532,  531, 1547,  530, 1540,  529, 1548, 1548,
2457      1548, 1546, 1548,  528,  527, 1548, 1556, 1556, 1556, 1557,
2458      1557, 1557,  524, 1557,  520,  519, 1557, 1564, 1564, 1564,
2459       518, 1564,  517, 1556, 1564, 1567, 1567, 1567, 1574, 1574,
2460      1574, 1575, 1575, 1575, 1540, 1576, 1576, 1576,  516,  513,
2461      1578, 1578, 1578, 1567, 1578, 1574,  512, 1578, 1575, 1581,
2462      1581, 1581,  511, 1576, 1582, 1582, 1582,  510, 1582,  509,
2463       508, 1582, 1583, 1583, 1583,  505, 1581, 1588, 1588, 1588,
2464
2465       504, 1588,  503,  502, 1588, 1591, 1591, 1591,  500,  497,
2466      1583, 1592, 1592, 1592,  493, 1592,  492, 1567, 1592, 1574,
2467       491, 1575, 1591, 1593, 1593, 1593, 1595, 1595, 1595, 1597,
2468      1597, 1597, 1598, 1598, 1598,  490, 1598,  489,  488, 1598,
2469      1614, 1614, 1614, 1615, 1615, 1615, 1597, 1618, 1618, 1618,
2470       485, 1618,  482,  481, 1618, 1622, 1622, 1622, 1614,  477,
2471      1615, 1624, 1624, 1624,  476, 1624,  475,  474, 1624, 1637,
2472      1637, 1637, 1622, 1644, 1644, 1644, 1645, 1645, 1645, 1655,
2473      1655, 1655, 1651, 1651, 1651,  473, 1615, 1637, 1614,  471,
2474      1644,  468,  467, 1645, 1646, 1646, 1646,  464, 1646, 1651,
2475
2476      1651, 1646, 1652, 1652, 1652,  463, 1652,  462,  461, 1652,
2477      1657, 1657, 1657, 1659, 1659, 1659,  457, 1659,  456,  455,
2478      1659, 1637, 1645, 1666, 1666, 1666, 1675, 1675, 1675, 1676,
2479      1676, 1676, 1677, 1677, 1677, 1644, 1677,  454,  450, 1677,
2480      1666, 1682, 1682, 1682, 1675,  449, 1676, 1683, 1683, 1683,
2481       448, 1683,  447,  446, 1683, 1695, 1695, 1695, 1682, 1702,
2482      1702, 1702, 1703, 1703, 1703, 1705, 1705, 1705, 1706, 1706,
2483      1706,  444, 1675, 1695,  441,  440, 1702,  438,  436, 1703,
2484       433,  432, 1705, 1705,  429, 1706, 1706,  427, 1707, 1707,
2485      1707,  424, 1707,  423,  421, 1707, 1708, 1708, 1708, 1709,
2486
2487      1709, 1709, 1702,  420,  419, 1703, 1707, 1714, 1714, 1714,
2488      1715, 1715, 1715,  418, 1715,  417,  416, 1715, 1724, 1724,
2489      1724, 1725, 1725, 1725, 1714, 1725,  413,  412, 1725, 1732,
2490      1732, 1732,  411, 1733, 1733, 1733, 1724, 1733,  410,  409,
2491      1733, 1736, 1736, 1736,  408,  407, 1732, 1747, 1747, 1747,
2492      1755, 1755, 1755, 1756, 1756, 1756,  406, 1756, 1736,  405,
2493      1756, 1757, 1757, 1757,  402, 1747,  401, 1755, 1758, 1758,
2494      1758,  400, 1759, 1759, 1759,  399, 1759,  398, 1757, 1759,
2495      1724, 1760, 1760, 1760,  392, 1758, 1762, 1762, 1762, 1763,
2496      1763, 1763,  391, 1763,  389,  383, 1763,  379, 1760, 1767,
2497
2498      1767, 1767,  376, 1762, 1762,  375,  371, 1763,  370, 1764,
2499      1764, 1764,  369, 1764,  368,  364, 1764, 1768, 1768, 1768,
2500       358, 1773, 1773, 1773,  354, 1773, 1757, 1764, 1773, 1788,
2501      1788, 1788,  351, 1788,  347,  346, 1788,  345, 1782, 1782,
2502      1782,  344, 1787, 1787, 1787,  340, 1760, 1765, 1765, 1765,
2503      1765, 1765, 1765, 1765, 1765, 1765, 1782,  337, 1765, 1787,
2504      1789, 1789, 1789, 1765, 1765, 1765, 1765, 1765, 1790, 1790,
2505      1790,  331, 1790,  330,  326, 1790,  323, 1789, 1805, 1805,
2506      1805,  318, 1805,  317,  316, 1805, 1808, 1808, 1808, 1765,
2507      1765, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766,
2508
2509       312,  306, 1766, 1808, 1812, 1812, 1812, 1766, 1766, 1766,
2510      1766, 1766, 1809, 1809, 1809,  302, 1809,  296,  295, 1809,
2511       293, 1812, 1814, 1814, 1814,  292, 1814,  287,  281, 1814,
2512      1829, 1829, 1829, 1766, 1766, 1835, 1835, 1835, 1808, 1835,
2513      1814,  280, 1835, 1838, 1838, 1838,  276, 1838, 1829,  273,
2514      1838,  269, 1853, 1853, 1853,  268, 1812, 1817, 1817, 1817,
2515      1817, 1817, 1817, 1817, 1817, 1817,  267,  265, 1817, 1853,
2516      1854, 1854, 1854, 1817, 1817, 1817, 1817, 1817, 1861, 1861,
2517      1861, 1868, 1868, 1868, 1894, 1894, 1894, 1854, 1894,  261,
2518       258, 1894,  255, 1869, 1869, 1869, 1861, 1861, 1868, 1817,
2519
2520      1817, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818,
2521      1869,  253, 1818,  249, 1853,  243,  242, 1818, 1818, 1818,
2522      1818, 1818, 1870, 1870, 1870, 1871, 1871, 1871, 1884, 1884,
2523      1884,  241, 1854, 1885, 1885, 1885, 1886, 1886, 1886, 1870,
2524       240,  236, 1871, 1818, 1818, 1884, 1890, 1890, 1890,  230,
2525      1885, 1893, 1893, 1893, 1886, 1895, 1895, 1895,  229, 1896,
2526      1896, 1896,  228, 1896, 1890, 1870, 1896,  224, 1893, 1897,
2527      1897, 1897, 1895, 1898, 1898, 1898,  221, 1898,  216, 1884,
2528      1898, 1900, 1900, 1900, 1885,  214, 1897,  213, 1901, 1901,
2529      1901,  209, 1901,  206, 1890, 1901,  204,  203, 1900, 1906,
2530
2531      1906, 1906, 1907, 1907, 1907, 1908, 1908, 1908, 1912, 1912,
2532      1912,  202, 1912,  198,  192, 1912, 1906,  188,  184, 1907,
2533      1915, 1915, 1915, 1908, 1915,  178,  177, 1915, 1918, 1918,
2534      1918,  173, 1918,  169,  168, 1918, 1922, 1922, 1922,  167,
2535      1922, 1908, 1906, 1922,  161, 1907, 1929, 1929, 1929, 1930,
2536      1930, 1930, 1938, 1938, 1938, 1939, 1939, 1939, 1946, 1946,
2537      1946,  160,  158, 1929,  155,  143, 1930,    0,    0, 1938,
2538         0,    0, 1939,    0,    0, 1946, 1947, 1947, 1947, 1949,
2539      1949, 1949, 1954, 1954, 1954, 1955, 1955, 1955, 1957, 1957,
2540      1957,    0,    0, 1947,    0,    0, 1949,    0,    0, 1954,
2541
2542         0,    0, 1955, 1929,    0, 1957, 1930,    0,    0, 1946,
2543         0, 1958, 1958, 1958, 1938, 1958,    0, 1939, 1958, 1963,
2544      1963, 1963, 1964, 1964, 1964,    0,    0, 1947,    0,    0,
2545      1954,    0,    0, 1955,    0,    0, 1963,    0,    0, 1964,
2546      1966, 1966, 1966,    0, 1966,    0,    0, 1966, 1971, 1971,
2547      1971, 1972, 1972, 1972, 1973, 1973, 1973, 1974, 1974, 1974,
2548      1975, 1975, 1975,    0,    0, 1971,    0,    0, 1972, 1976,
2549      1976, 1976, 1973, 1976, 1974,    0, 1976, 1975,    0, 1963,
2550         0,    0, 1964, 1977, 1977, 1977,    0, 1976, 1978, 1978,
2551      1978, 1971,    0,    0, 1972, 1981, 1981, 1981,    0,    0,
2552
2553      1977,    0, 1982, 1982, 1982, 1978, 1985, 1985, 1985, 1986,
2554      1986, 1986, 1981, 1989, 1989, 1989,    0,    0, 1974, 1982,
2555      1975,    0,    0, 1985,    0,    0, 1986, 1990, 1990, 1990,
2556      1989, 1977, 1993, 1993, 1993,    0, 1978,    0, 1994, 1994,
2557      1994,    0, 1994,    0, 1990, 1994,    0,    0, 1982, 1993,
2558         0, 1981,    0, 1985, 1995, 1995, 1995, 1996, 1996, 1996,
2559         0, 1996,    0,    0, 1996, 1999, 1999, 1999,    0, 1999,
2560         0, 1995, 1999, 1986, 2002, 2002, 2002,    0, 2002,    0,
2561         0, 2002, 2019, 2019, 2019, 2020, 2020, 2020,    0,    0,
2562         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2563
2564      2019,    0,    0, 2020, 2023, 2023, 2023, 2023, 2023, 2023,
2565      2023, 2023, 2023, 2024, 2024, 2024, 2024, 2024, 2024, 2024,
2566      2024, 2024, 2025, 2025, 2025, 2025, 2025, 2025, 2025, 2025,
2567      2025, 2026, 2026, 2026, 2026, 2026, 2026, 2026, 2026, 2026,
2568      2027, 2027, 2027, 2027, 2027, 2027, 2027, 2027, 2027, 2028,
2569      2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2029, 2029,
2570      2029, 2029, 2029, 2029, 2029, 2029, 2029, 2030, 2030, 2030,
2571      2030, 2030, 2030, 2030, 2030, 2030, 2031, 2031, 2031, 2031,
2572      2031, 2031, 2031, 2031, 2031, 2032, 2032, 2032, 2032, 2032,
2573      2032, 2032, 2032, 2032, 2033, 2033, 2033, 2033, 2033, 2033,
2574
2575      2033, 2033, 2033, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
2576      2034, 2034, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
2577      2035, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036,
2578      2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2038,
2579      2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2039, 2039,
2580      2039, 2039, 2039, 2039, 2039, 2039, 2039, 2040, 2040, 2040,
2581      2040, 2040, 2040, 2040, 2040, 2040, 2041, 2041, 2041, 2041,
2582      2041, 2041, 2041, 2041, 2041, 2042, 2042, 2042, 2042, 2042,
2583      2042, 2042, 2042, 2042, 2043, 2043, 2043, 2043, 2043, 2043,
2584      2043, 2043, 2043, 2044, 2044, 2044, 2044, 2044, 2044, 2044,
2585
2586      2044, 2044, 2045, 2045, 2045, 2045, 2045, 2045, 2045, 2045,
2587      2045, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
2588      2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2048,
2589      2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2049, 2049,
2590      2049, 2049, 2049, 2049, 2049, 2049, 2049, 2050, 2050, 2050,
2591      2050, 2050, 2050, 2050, 2050, 2050, 2051, 2051, 2051, 2051,
2592      2051, 2051, 2051, 2051, 2051, 2052, 2052, 2052, 2052, 2052,
2593      2052, 2052, 2052, 2052, 2053, 2053, 2053, 2053, 2053, 2053,
2594      2053, 2053, 2053, 2054, 2054, 2054, 2054, 2054, 2054, 2054,
2595      2054, 2054, 2055, 2055, 2055, 2055, 2055, 2055, 2055, 2055,
2596
2597      2055, 2056, 2056, 2056, 2056, 2056, 2056, 2056, 2056, 2056,
2598      2057, 2057, 2057, 2057, 2057, 2057, 2057, 2057, 2057, 2058,
2599      2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2059, 2059,
2600      2059, 2059, 2059, 2059, 2059, 2059, 2059, 2060, 2060, 2060,
2601      2060, 2060, 2060, 2060, 2060, 2060, 2061, 2061, 2061, 2061,
2602      2061, 2061, 2061, 2061, 2061, 2062, 2062, 2062,    0,    0,
2603         0, 2062, 2063, 2063, 2063,    0,    0,    0, 2063, 2064,
2604      2064, 2064,    0,    0,    0, 2064, 2065, 2065, 2065,    0,
2605         0,    0, 2065, 2066, 2066, 2066,    0,    0,    0, 2066,
2606      2067, 2067, 2067,    0,    0,    0, 2067, 2068, 2068, 2068,
2607
2608         0,    0,    0, 2068, 2069, 2069, 2069,    0,    0,    0,
2609      2069, 2070, 2070, 2070,    0,    0,    0, 2070, 2071, 2071,
2610      2071,    0,    0,    0, 2071, 2072, 2072, 2072,    0,    0,
2611         0, 2072, 2073, 2073, 2073,    0,    0,    0, 2073, 2074,
2612      2074, 2074,    0,    0,    0, 2074, 2075, 2075, 2075,    0,
2613         0,    0, 2075, 2076, 2076, 2076,    0,    0,    0, 2076,
2614      2077, 2077, 2077,    0,    0,    0, 2077, 2078, 2078, 2078,
2615         0,    0,    0, 2078, 2079, 2079, 2079, 2079, 2079, 2079,
2616      2079,    0, 2079, 2080,    0,    0,    0, 2080, 2081,    0,
2617         0,    0, 2081, 2082,    0,    0,    0, 2082, 2083,    0,
2618
2619         0,    0, 2083, 2084,    0,    0,    0, 2084, 2085,    0,
2620         0,    0, 2085, 2086,    0,    0,    0, 2086, 2087,    0,
2621         0,    0, 2087, 2088,    0,    0,    0, 2088, 2089, 2089,
2622      2089,    0,    0,    0, 2089, 2090,    0,    0,    0, 2090,
2623      2091, 2091, 2091,    0,    0,    0, 2091, 2092,    0,    0,
2624         0, 2092, 2093, 2093, 2093,    0,    0,    0, 2093, 2094,
2625         0,    0,    0, 2094, 2095, 2095, 2095,    0,    0,    0,
2626      2095, 2096,    0,    0,    0, 2096, 2097, 2097, 2097,    0,
2627         0,    0, 2097, 2098,    0,    0,    0, 2098, 2099, 2099,
2628      2099,    0,    0,    0, 2099, 2100,    0,    0,    0, 2100,
2629
2630      2101, 2101, 2101,    0,    0,    0, 2101, 2102,    0,    0,
2631         0, 2102, 2103, 2103, 2103,    0,    0,    0, 2103, 2104,
2632         0,    0,    0, 2104, 2105, 2105, 2105, 2105, 2105, 2105,
2633      2105, 2105, 2105, 2106,    0,    0,    0,    0, 2106, 2107,
2634      2107, 2107,    0,    0,    0, 2107, 2108, 2108, 2108, 2108,
2635         0,    0, 2108, 2108, 2109, 2109, 2109,    0,    0,    0,
2636      2109, 2110, 2110, 2110, 2110,    0,    0, 2110, 2110, 2111,
2637      2111, 2111,    0,    0,    0, 2111, 2112, 2112, 2112, 2112,
2638         0,    0, 2112, 2112, 2113, 2113, 2113,    0,    0,    0,
2639      2113, 2114, 2114, 2114, 2114,    0,    0, 2114, 2114, 2115,
2640
2641      2115, 2115,    0,    0,    0, 2115, 2116, 2116, 2116, 2116,
2642         0,    0, 2116, 2116, 2117, 2117, 2117,    0,    0,    0,
2643      2117, 2118, 2118, 2118, 2118,    0,    0, 2118, 2118, 2119,
2644      2119, 2119,    0,    0,    0, 2119, 2120, 2120, 2120, 2120,
2645         0,    0, 2120, 2120, 2121, 2121, 2121,    0,    0,    0,
2646      2121, 2122, 2122, 2122, 2122,    0,    0, 2122, 2122, 2123,
2647      2123, 2123,    0,    0,    0, 2123, 2124, 2124, 2124, 2124,
2648         0,    0, 2124, 2124, 2125, 2125, 2125,    0,    0,    0,
2649      2125, 2126, 2126, 2126, 2126,    0,    0, 2126, 2126, 2127,
2650      2127, 2127, 2127,    0,    0, 2127, 2127, 2128, 2128, 2128,
2651
2652         0,    0,    0, 2128, 2129, 2129, 2129, 2129,    0,    0,
2653      2129, 2129, 2130, 2130, 2130,    0,    0,    0, 2130, 2131,
2654      2131, 2131, 2131,    0,    0, 2131, 2131, 2132, 2132, 2132,
2655         0,    0,    0, 2132, 2133, 2133, 2133, 2133,    0,    0,
2656      2133, 2133, 2134, 2134, 2134, 2134,    0,    0, 2134, 2134,
2657      2135, 2135, 2135,    0,    0,    0, 2135, 2136, 2136, 2136,
2658      2136,    0,    0, 2136, 2136, 2137, 2137, 2137,    0,    0,
2659         0, 2137, 2138, 2138, 2138, 2138,    0,    0, 2138, 2138,
2660      2139, 2139, 2139, 2139, 2139, 2139, 2139, 2139, 2139, 2140,
2661         0, 2140,    0,    0, 2140, 2141, 2141, 2141,    0,    0,
2662
2663         0, 2141, 2142, 2142, 2142, 2142,    0,    0, 2142, 2142,
2664      2143, 2143, 2143, 2143,    0, 2143,    0, 2143, 2144, 2144,
2665      2144, 2144,    0,    0, 2144, 2144, 2145, 2145, 2145, 2145,
2666         0, 2145,    0, 2145, 2146, 2146, 2146, 2146,    0,    0,
2667      2146, 2146, 2147, 2147, 2147,    0,    0,    0, 2147, 2148,
2668      2148, 2148, 2148,    0,    0, 2148, 2148, 2149, 2149, 2149,
2669         0,    0,    0, 2149, 2150, 2150, 2150, 2150,    0,    0,
2670      2150, 2150, 2151, 2151, 2151,    0,    0,    0, 2151, 2152,
2671      2152, 2152, 2152,    0,    0, 2152, 2152, 2153, 2153, 2153,
2672         0,    0,    0, 2153, 2154, 2154, 2154, 2154,    0,    0,
2673
2674      2154, 2154, 2155, 2155, 2155,    0,    0,    0, 2155, 2156,
2675      2156, 2156, 2156,    0,    0, 2156, 2156, 2157, 2157, 2157,
2676         0,    0,    0, 2157, 2158, 2158, 2158, 2158,    0,    0,
2677      2158, 2158, 2159, 2159, 2159,    0,    0,    0, 2159, 2160,
2678      2160, 2160, 2160,    0,    0, 2160, 2160, 2161, 2161, 2161,
2679      2161,    0,    0, 2161, 2161, 2162, 2162, 2162,    0,    0,
2680         0, 2162, 2163, 2163, 2163, 2163,    0,    0, 2163, 2163,
2681      2164, 2164, 2164,    0,    0,    0, 2164, 2165, 2165, 2165,
2682      2165,    0,    0, 2165, 2165, 2166, 2166, 2166,    0,    0,
2683         0, 2166, 2167, 2167, 2167, 2167,    0,    0, 2167, 2167,
2684
2685      2168, 2168, 2168, 2168,    0,    0, 2168, 2168, 2169, 2169,
2686      2169,    0,    0,    0, 2169, 2170, 2170, 2170, 2170,    0,
2687         0, 2170, 2170, 2171, 2171, 2171,    0,    0,    0, 2171,
2688      2172, 2172, 2172, 2172,    0,    0, 2172, 2172, 2173, 2173,
2689      2173, 2173, 2173, 2173, 2173, 2173, 2173, 2174, 2174, 2174,
2690      2174, 2174, 2174, 2174, 2174, 2174, 2175, 2175, 2175,    0,
2691         0,    0, 2175, 2176, 2176, 2176, 2176,    0,    0, 2176,
2692      2176, 2177, 2177, 2177, 2177,    0,    0, 2177, 2177, 2178,
2693      2178, 2178,    0,    0,    0, 2178, 2179, 2179, 2179, 2179,
2694         0,    0, 2179, 2179, 2180, 2180, 2180,    0,    0,    0,
2695
2696      2180, 2181, 2181, 2181, 2181,    0,    0, 2181, 2181, 2182,
2697      2182, 2182,    0,    0,    0, 2182, 2183, 2183, 2183, 2183,
2698         0,    0, 2183, 2183, 2184, 2184, 2184,    0,    0,    0,
2699      2184, 2185, 2185, 2185, 2185,    0,    0, 2185, 2185, 2186,
2700      2186, 2186,    0,    0,    0, 2186, 2187, 2187, 2187, 2187,
2701         0,    0, 2187, 2187, 2188, 2188, 2188,    0,    0,    0,
2702      2188, 2189, 2189, 2189, 2189,    0,    0, 2189, 2189, 2190,
2703      2190, 2190, 2190,    0, 2190,    0, 2190, 2191, 2191, 2191,
2704      2191,    0,    0, 2191, 2191, 2192, 2192, 2192, 2192,    0,
2705      2192,    0, 2192, 2193, 2193, 2193, 2193,    0,    0, 2193,
2706
2707      2193, 2194, 2194, 2194, 2194,    0,    0, 2194, 2194, 2195,
2708      2195, 2195,    0,    0,    0, 2195, 2196, 2196, 2196, 2196,
2709         0,    0, 2196, 2196, 2197, 2197, 2197,    0,    0,    0,
2710      2197, 2198, 2198, 2198, 2198,    0,    0, 2198, 2198, 2199,
2711      2199, 2199,    0,    0,    0, 2199, 2200, 2200, 2200, 2200,
2712         0,    0, 2200, 2200, 2201, 2201, 2201, 2201,    0,    0,
2713      2201, 2201, 2202, 2202, 2202,    0,    0,    0, 2202, 2203,
2714      2203, 2203, 2203,    0,    0, 2203, 2203, 2204, 2204, 2204,
2715      2204,    0, 2204,    0, 2204, 2205, 2205, 2205, 2205,    0,
2716         0, 2205, 2205, 2206, 2206, 2206, 2206, 2206, 2206, 2206,
2717
2718      2206, 2206, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207,
2719      2207, 2208, 2208, 2208,    0,    0,    0, 2208, 2209, 2209,
2720      2209, 2209,    0,    0, 2209, 2209, 2210, 2210, 2210, 2210,
2721         0,    0, 2210, 2210, 2211, 2211, 2211,    0,    0,    0,
2722      2211, 2212, 2212, 2212, 2212,    0,    0, 2212, 2212, 2213,
2723      2213, 2213,    0,    0,    0, 2213, 2214, 2214, 2214, 2214,
2724         0,    0, 2214, 2214, 2215, 2215, 2215,    0,    0,    0,
2725      2215, 2216, 2216, 2216, 2216,    0,    0, 2216, 2216, 2217,
2726      2217, 2217, 2217,    0, 2217,    0, 2217, 2218, 2218, 2218,
2727      2218,    0, 2218,    0, 2218, 2219, 2219, 2219, 2219,    0,
2728
2729         0, 2219, 2219, 2220, 2220, 2220,    0,    0,    0, 2220,
2730      2221, 2221, 2221, 2221,    0,    0, 2221, 2221, 2222, 2222,
2731      2222, 2222,    0,    0, 2222, 2222, 2223, 2223, 2223, 2223,
2732         0, 2223,    0, 2223, 2224, 2224, 2224, 2224,    0,    0,
2733      2224, 2224, 2225, 2225, 2225, 2225,    0,    0, 2225, 2225,
2734      2226, 2226, 2226,    0,    0,    0, 2226, 2227, 2227, 2227,
2735      2227,    0,    0, 2227, 2227, 2228, 2228, 2228, 2228,    0,
2736      2228,    0, 2228, 2229, 2229, 2229, 2229,    0,    0, 2229,
2737      2229, 2230, 2230, 2230, 2230,    0, 2230,    0, 2230, 2231,
2738      2231, 2231, 2231,    0,    0, 2231, 2231, 2232, 2232, 2232,
2739
2740      2232,    0,    0, 2232, 2232, 2233, 2233, 2233,    0,    0,
2741         0, 2233, 2234, 2234, 2234, 2234,    0,    0, 2234, 2234,
2742      2235, 2235, 2235, 2235,    0,    0, 2235, 2235, 2236, 2236,
2743      2236, 2236, 2236, 2236, 2236, 2236, 2236, 2237, 2237, 2237,
2744      2237, 2237, 2237, 2237, 2237, 2237, 2238, 2238, 2238, 2238,
2745         0, 2238,    0, 2238, 2239, 2239, 2239, 2239,    0,    0,
2746      2239, 2239, 2240, 2240, 2240, 2240,    0,    0, 2240, 2240,
2747      2241, 2241, 2241,    0,    0,    0, 2241, 2242, 2242, 2242,
2748      2242,    0,    0, 2242, 2242, 2243, 2243, 2243,    0,    0,
2749         0, 2243, 2244, 2244, 2244, 2244,    0,    0, 2244, 2244,
2750
2751      2245, 2245, 2245, 2245,    0, 2245,    0, 2245, 2246, 2246,
2752      2246, 2246,    0,    0, 2246, 2246, 2247, 2247, 2247, 2247,
2753         0, 2247,    0, 2247, 2248, 2248, 2248, 2248,    0,    0,
2754      2248, 2248, 2249, 2249, 2249,    0,    0,    0, 2249, 2250,
2755      2250, 2250, 2250, 2250, 2250, 2250, 2250, 2250, 2251, 2251,
2756      2251, 2251, 2251, 2251, 2251, 2251, 2251, 2252, 2252, 2252,
2757      2252, 2252, 2252, 2252, 2252, 2252, 2253, 2253, 2253, 2253,
2758      2253, 2253, 2253, 2253, 2253, 2254, 2254, 2254, 2254, 2254,
2759      2254, 2254, 2254, 2254, 2255, 2255, 2255, 2255, 2255, 2255,
2760      2255, 2255, 2255, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
2761
2762      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
2763      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
2764      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
2765      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
2766      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
2767      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
2768      2022, 2022, 2022
2769     } ;
2770
2771 /* Table of booleans, true if rule could match eol. */
2772 static yyconst flex_int32_t yy_rule_can_match_eol[352] =
2773     {   0,
2774 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
2775     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
2776     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 
2777     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
2778     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
2779     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
2780     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
2781     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
2782     0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 
2783     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
2784     0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 
2785     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
2786     0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 
2787     0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
2788     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
2789     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
2790     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 
2791     1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,     };
2792
2793 static yy_state_type yy_last_accepting_state;
2794 static char *yy_last_accepting_cpos;
2795
2796 extern int surf_parse__flex_debug;
2797 int surf_parse__flex_debug = 0;
2798
2799 /* The intent behind this definition is that it'll catch
2800  * any uses of REJECT which flex missed.
2801  */
2802 #define REJECT reject_used_but_not_detected
2803 #define yymore() yymore_used_but_not_detected
2804 #define YY_MORE_ADJ 0
2805 #define YY_RESTORE_YY_MORE_OFFSET
2806 char *surf_parse_text;
2807 /* Validating XML processor for surf/simgrid.dtd.
2808  * Generated 2008/02/03 11:50:45.
2809  *
2810  * This program was generated with the FleXML XML processor generator.
2811  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
2812  * FleXML is Copyright (C) 2003-2006 Martin Quinson.  All rights reserved.
2813  * (Id: flexml.pl,v 1.63 2007/10/11 14:46:08 mquinson Exp).
2814  * 
2815  * There are two, intertwined parts to this program, part A and part B.
2816  *
2817  * Part A
2818  * ------
2819  * 
2820  * Some parts, here collectively called "Part A", are found in the 
2821  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
2822  * and Copyright (C) 2003-2006 Martin Quinson. All rights reserved.
2823  *
2824  * You can redistribute, use, perform, display and/or modify "Part A"
2825  * provided the following two conditions hold:
2826  *
2827  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
2828  *    FleXML; without even the implied warranty of MERCHANTABILITY or
2829  *    FITNESS FOR A PARTICULAR PURPOSE.
2830  *
2831  * 2. The program distribution conditions do not in any way affect the
2832  *    distribution conditions of the FleXML system used to generate this
2833  *    file or any version of FleXML derived from that system.
2834  *
2835  * Notice that these are explicit rights granted to you for files
2836  * generated by the FleXML system.  For your rights in connection with
2837  * the FleXML system itself please consult the GNU General Public License.
2838  * 
2839  * Part B
2840  * ------
2841  * 
2842  * The other parts, here collectively called "Part B", and which came 
2843  * from the DTD used by FleXML to generate this program, can be 
2844  * distributed (or not, as the case may be) under the terms of whoever
2845  * wrote them, provided these terms respect and obey the two conditions 
2846  * above under the heading "Part A".
2847  *
2848  * The author of and contributors to FleXML specifically disclaim
2849  * any copyright interest in "Part B", unless "Part B" was written 
2850  * by the author of or contributors to FleXML.
2851  * 
2852  */
2853
2854 /* Version strings. */
2855 const char rcs_surfxml_flexml_skeleton[] =
2856  "$" "Id: skel,v 1.40 2007/10/11 09:57:24 mquinson Exp $";
2857 const char rcs_surfxml_flexml[] =
2858  "$" "Id: flexml.pl,v 1.63 2007/10/11 14:46:08 mquinson Exp $";
2859
2860 /* ANSI headers. */
2861 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
2862 #include <stdio.h>
2863 #include <string.h>
2864 #include <assert.h>
2865 #include <stdarg.h>
2866 #include <ctype.h>
2867      
2868 #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
2869 # ifndef __STRICT_ANSI__
2870 #  include <io.h>
2871 #  include <process.h>
2872 # endif
2873 #else
2874 # include <unistd.h>
2875 #endif
2876      
2877 #ifndef FLEXML_INDEXSTACKSIZE
2878 #define FLEXML_INDEXSTACKSIZE 1000
2879 #endif
2880
2881 /* Generated definitions. */
2882 #define FLEXML_yylineno
2883 #ifndef FLEXML_BUFFERSTACKSIZE
2884 #define FLEXML_BUFFERSTACKSIZE 1000000
2885 #endif
2886 #define FLEXML_NEED_BUFFERLIT
2887
2888 /* XML processor api. */
2889 /* FleXML-provided data. */
2890 int surfxml_pcdata_ix;
2891 extern char *surfxml_bufferstack;
2892 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
2893 AT_surfxml_random_generator AX_surfxml_random_generator;
2894 #define A_surfxml_random_generator AX_surfxml_random_generator
2895 AT_surfxml_prop_id AX_surfxml_prop_id;
2896 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
2897 AT_surfxml_host_interference_recv AX_surfxml_host_interference_recv;
2898 #define A_surfxml_host_interference_recv (surfxml_bufferstack + AX_surfxml_host_interference_recv)
2899 AT_surfxml_host_id AX_surfxml_host_id;
2900 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
2901 AT_surfxml_set_id AX_surfxml_set_id;
2902 #define A_surfxml_set_id (surfxml_bufferstack + AX_surfxml_set_id)
2903 AT_surfxml_link_latency_file AX_surfxml_link_latency_file;
2904 #define A_surfxml_link_latency_file (surfxml_bufferstack + AX_surfxml_link_latency_file)
2905 AT_surfxml_host_state AX_surfxml_host_state;
2906 #define A_surfxml_host_state AX_surfxml_host_state
2907 AT_surfxml_host_interference_send_recv AX_surfxml_host_interference_send_recv;
2908 #define A_surfxml_host_interference_send_recv (surfxml_bufferstack + AX_surfxml_host_interference_send_recv)
2909 AT_surfxml_host_interference_send AX_surfxml_host_interference_send;
2910 #define A_surfxml_host_interference_send (surfxml_bufferstack + AX_surfxml_host_interference_send)
2911 AT_surfxml_set_suffix AX_surfxml_set_suffix;
2912 #define A_surfxml_set_suffix (surfxml_bufferstack + AX_surfxml_set_suffix)
2913 AT_surfxml_route_impact_on_dst AX_surfxml_route_impact_on_dst;
2914 #define A_surfxml_route_impact_on_dst (surfxml_bufferstack + AX_surfxml_route_impact_on_dst)
2915 AT_surfxml_host_power AX_surfxml_host_power;
2916 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
2917 AT_surfxml_router_id AX_surfxml_router_id;
2918 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
2919 AT_surfxml_process_start_time AX_surfxml_process_start_time;
2920 #define A_surfxml_process_start_time (surfxml_bufferstack + AX_surfxml_process_start_time)
2921 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
2922 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
2923 AT_surfxml_platform_xmlns_c_route AX_surfxml_platform_xmlns_c_route;
2924 #define A_surfxml_platform_xmlns_c_route (surfxml_bufferstack + AX_surfxml_platform_xmlns_c_route)
2925 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
2926 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
2927 AT_surfxml_trace_file AX_surfxml_trace_file;
2928 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
2929 AT_surfxml_route_action AX_surfxml_route_action;
2930 #define A_surfxml_route_action AX_surfxml_route_action
2931 AT_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy;
2932 #define A_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy
2933 AT_surfxml_random_min AX_surfxml_random_min;
2934 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
2935 AT_surfxml_process_kill_time AX_surfxml_process_kill_time;
2936 #define A_surfxml_process_kill_time (surfxml_bufferstack + AX_surfxml_process_kill_time)
2937 AT_surfxml_cluster_bb_bw AX_surfxml_cluster_bb_bw;
2938 #define A_surfxml_cluster_bb_bw (surfxml_bufferstack + AX_surfxml_cluster_bb_bw)
2939 AT_surfxml_trace_c_connect_element AX_surfxml_trace_c_connect_element;
2940 #define A_surfxml_trace_c_connect_element (surfxml_bufferstack + AX_surfxml_trace_c_connect_element)
2941 AT_surfxml_argument_value AX_surfxml_argument_value;
2942 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
2943 AT_surfxml_link_state AX_surfxml_link_state;
2944 #define A_surfxml_link_state AX_surfxml_link_state
2945 AT_surfxml_route_impact_on_src AX_surfxml_route_impact_on_src;
2946 #define A_surfxml_route_impact_on_src (surfxml_bufferstack + AX_surfxml_route_impact_on_src)
2947 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
2948 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
2949 AT_surfxml_cluster_id AX_surfxml_cluster_id;
2950 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
2951 AT_surfxml_random_mean AX_surfxml_random_mean;
2952 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
2953 AT_surfxml_cluster_bb_lat AX_surfxml_cluster_bb_lat;
2954 #define A_surfxml_cluster_bb_lat (surfxml_bufferstack + AX_surfxml_cluster_bb_lat)
2955 AT_surfxml_link_latency AX_surfxml_link_latency;
2956 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
2957 AT_surfxml_platform_xmlns_c_link AX_surfxml_platform_xmlns_c_link;
2958 #define A_surfxml_platform_xmlns_c_link (surfxml_bufferstack + AX_surfxml_platform_xmlns_c_link)
2959 AT_surfxml_link_bandwidth_file AX_surfxml_link_bandwidth_file;
2960 #define A_surfxml_link_bandwidth_file (surfxml_bufferstack + AX_surfxml_link_bandwidth_file)
2961 AT_surfxml_random_id AX_surfxml_random_id;
2962 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
2963 AT_surfxml_set_radical AX_surfxml_set_radical;
2964 #define A_surfxml_set_radical (surfxml_bufferstack + AX_surfxml_set_radical)
2965 AT_surfxml_random_max AX_surfxml_random_max;
2966 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
2967 AT_surfxml_link_id AX_surfxml_link_id;
2968 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
2969 AT_surfxml_process_host AX_surfxml_process_host;
2970 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
2971 AT_surfxml_host_availability_file AX_surfxml_host_availability_file;
2972 #define A_surfxml_host_availability_file (surfxml_bufferstack + AX_surfxml_host_availability_file)
2973 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
2974 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
2975 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
2976 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
2977 AT_surfxml_foreach_set_id AX_surfxml_foreach_set_id;
2978 #define A_surfxml_foreach_set_id (surfxml_bufferstack + AX_surfxml_foreach_set_id)
2979 AT_surfxml_route_impact_on_dst_with_other_send AX_surfxml_route_impact_on_dst_with_other_send;
2980 #define A_surfxml_route_impact_on_dst_with_other_send (surfxml_bufferstack + AX_surfxml_route_impact_on_dst_with_other_send)
2981 AT_surfxml_prop_value AX_surfxml_prop_value;
2982 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
2983 AT_surfxml_route_impact_on_src_with_other_recv AX_surfxml_route_impact_on_src_with_other_recv;
2984 #define A_surfxml_route_impact_on_src_with_other_recv (surfxml_bufferstack + AX_surfxml_route_impact_on_src_with_other_recv)
2985 AT_surfxml_link_state_file AX_surfxml_link_state_file;
2986 #define A_surfxml_link_state_file (surfxml_bufferstack + AX_surfxml_link_state_file)
2987 AT_surfxml_set_prefix AX_surfxml_set_prefix;
2988 #define A_surfxml_set_prefix (surfxml_bufferstack + AX_surfxml_set_prefix)
2989 AT_surfxml_cluster_power AX_surfxml_cluster_power;
2990 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
2991 AT_surfxml_process_function AX_surfxml_process_function;
2992 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
2993 AT_surfxml_host_max_outgoing_rate AX_surfxml_host_max_outgoing_rate;
2994 #define A_surfxml_host_max_outgoing_rate (surfxml_bufferstack + AX_surfxml_host_max_outgoing_rate)
2995 AT_surfxml_link_c_ctn_id AX_surfxml_link_c_ctn_id;
2996 #define A_surfxml_link_c_ctn_id (surfxml_bufferstack + AX_surfxml_link_c_ctn_id)
2997 AT_surfxml_host_availability AX_surfxml_host_availability;
2998 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
2999 AT_surfxml_route_src AX_surfxml_route_src;
3000 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
3001 AT_surfxml_route_c_multi_src AX_surfxml_route_c_multi_src;
3002 #define A_surfxml_route_c_multi_src (surfxml_bufferstack + AX_surfxml_route_c_multi_src)
3003 AT_surfxml_route_c_multi_action AX_surfxml_route_c_multi_action;
3004 #define A_surfxml_route_c_multi_action AX_surfxml_route_c_multi_action
3005 AT_surfxml_trace_c_connect_trace AX_surfxml_trace_c_connect_trace;
3006 #define A_surfxml_trace_c_connect_trace (surfxml_bufferstack + AX_surfxml_trace_c_connect_trace)
3007 AT_surfxml_trace_id AX_surfxml_trace_id;
3008 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
3009 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
3010 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
3011 AT_surfxml_include_file AX_surfxml_include_file;
3012 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
3013 AT_surfxml_random_std_deviation AX_surfxml_random_std_deviation;
3014 #define A_surfxml_random_std_deviation (surfxml_bufferstack + AX_surfxml_random_std_deviation)
3015 AT_surfxml_trace_c_connect_kind AX_surfxml_trace_c_connect_kind;
3016 #define A_surfxml_trace_c_connect_kind AX_surfxml_trace_c_connect_kind
3017 AT_surfxml_route_c_multi_dst AX_surfxml_route_c_multi_dst;
3018 #define A_surfxml_route_c_multi_dst (surfxml_bufferstack + AX_surfxml_route_c_multi_dst)
3019 AT_surfxml_host_state_file AX_surfxml_host_state_file;
3020 #define A_surfxml_host_state_file (surfxml_bufferstack + AX_surfxml_host_state_file)
3021 AT_surfxml_route_c_multi_symmetric AX_surfxml_route_c_multi_symmetric;
3022 #define A_surfxml_route_c_multi_symmetric AX_surfxml_route_c_multi_symmetric
3023 AT_surfxml_route_dst AX_surfxml_route_dst;
3024 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
3025 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
3026 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
3027 AT_surfxml_platform_version AX_surfxml_platform_version;
3028 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
3029
3030 /* XML state. */
3031 #ifdef FLEX_DEBUG
3032 # define ENTER(state)   debug_enter(state,#state)
3033 # define LEAVE          debug_leave()
3034 # define SET(state)     debug_set(state,#state)
3035   static void debug_enter(int, const char*);
3036   static void debug_leave(void);
3037   static void debug_set(int, const char*);
3038 #else
3039 # define ENTER(state)   (yy_push_state(state))
3040 # define LEAVE          (yy_pop_state())
3041 # define SET(state)     BEGIN(state)
3042 #endif
3043
3044 /* Generic actions. */
3045 #define SKIP    /*skip*/
3046 #define SUCCEED        CLEANUP; return 0
3047
3048 #define FAIL    return fail
3049 static int fail(const char*, ...);
3050
3051 enum {flexml_max_err_msg_size = 512};
3052 static char flexml_err_msg[flexml_max_err_msg_size];
3053 const char * surfxml_parse_err_msg()
3054 {
3055     return flexml_err_msg;
3056 }
3057 static void reset_surfxml_parse_err_msg()
3058 {
3059     flexml_err_msg[0] = '\0';
3060 }
3061
3062 /* Cleanup */
3063 static void cleanup(void);
3064 #define CLEANUP  cleanup()
3065
3066 /* Text buffer stack handling. */
3067 char *surfxml_bufferstack = NULL;
3068 static int blimit = FLEXML_BUFFERSTACKSIZE;
3069 static int bnext = 1;
3070
3071 static int *indexstack = NULL;
3072 static int ilimit = FLEXML_INDEXSTACKSIZE;
3073 static int inext = 1;
3074
3075 #define BUFFERSET(P)  (P = bnext)
3076 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
3077 #define BUFFERDONE    (BUFFERPUTC('\0'))
3078
3079 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
3080
3081 /* after this is called, there are at least 2 slots left in the stack */
3082 static int ck_blimit()
3083 {
3084      if (bnext >= blimit) {
3085          blimit += FLEXML_BUFFERSTACKSIZE + 2;
3086          {
3087              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
3088              assert(temp);
3089              surfxml_bufferstack = temp;
3090          }
3091      }
3092      return 0;
3093 }
3094
3095 /* after this is called, there are at least 2 slots left in the stack */
3096 static int ck_ilimit()
3097 {
3098      if (inext >= ilimit) {
3099          ilimit += FLEXML_INDEXSTACKSIZE + 2;
3100          {
3101              int *temp = (int *) realloc(indexstack, ilimit);
3102              assert(temp);
3103              indexstack = temp;
3104          }
3105      }
3106      return 0;
3107 }
3108
3109 #ifdef FLEXML_NEED_BUFFERLIT
3110 static void surfxml_bufferliteral(char c, int* pp, const char* text)
3111 {
3112   const char *s = (c ? strchr(text,c) : text-1), *e = strrchr(text,c);
3113   assert(s <= e); BUFFERSET(*pp);
3114   while (++s<e) {
3115     if (isspace(*s) && c) { BUFFERPUTC(' '); while (isspace(*s)) ++s; }
3116     else BUFFERPUTC(*s);
3117   }
3118   BUFFERDONE;
3119 }
3120 #endif
3121
3122 static void pushbuffer(int p)
3123 {
3124     ck_ilimit();
3125     indexstack[inext++] = p;
3126     indexstack[inext++] = bnext;    
3127 }
3128
3129 static int popbuffer(void)
3130 {
3131     assert(inext >= 2);
3132     bnext = indexstack[--inext];
3133     return indexstack[--inext];
3134 }
3135
3136 /* General internal entities are `unput' back onto the input stream... */
3137 #define ENTITYTEXT(T) \
3138   { char *s = (T), *e = s+strlen(s);\
3139     while (--e >= s) { unput(*e); }}
3140
3141 /* Flex standard options. */
3142 #define YY_NO_INPUT 1
3143 /* Flex user-requested options. */
3144 /* XML character classes (currently restricted to ASCII). */
3145 /* "Common syntactic structures." */
3146 /* "Names and Tokens." */
3147 /* Miscellaneous. */
3148 /* Parser states (flex `exclusive start conditions'):
3149  *
3150  * PROLOG       the XML prolog of the document before <?xml...>
3151  * DOCTYPE      the XML prolog of the document after <?xml...>
3152  * EPILOG       after the root element
3153  * INCOMMENT    inside an XML comment <!--....-->
3154  * INPI         inside an XML PI <?...?>
3155  * VALUE1       inside a '...'-delimited literal
3156  * VALUE2       inside a "..."-delimited literal
3157  * CDATA        inside a <![CDATA[...] ]> section.
3158  * ROOT_<tag>   expect root element <tag>
3159  * AL_<tag>     inside the attribute list for <tag>
3160  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
3161  * IMPOSSIBLE   dummy to permit disabling rules; must be last
3162  */
3163
3164 /* State names. */
3165 const char* *surfxml_statenames=NULL;
3166
3167 #define INITIAL 0
3168 #define PROLOG 1
3169 #define DOCTYPE 2
3170 #define EPILOG 3
3171 #define INCOMMENT 4
3172 #define INPI 5
3173 #define VALUE1 6
3174 #define VALUE2 7
3175 #define CDATA 8
3176 #define ROOT_surfxml_platform 9
3177 #define AL_surfxml_platform 10
3178 #define S_surfxml_platform 11
3179 #define S_surfxml_platform_1 12
3180 #define S_surfxml_platform_2 13
3181 #define S_surfxml_platform_3 14
3182 #define S_surfxml_platform_4 15
3183 #define S_surfxml_platform_5 16
3184 #define E_surfxml_platform 17
3185 #define AL_surfxml_include 18
3186 #define E_surfxml_include 19
3187 #define AL_surfxml_trace 20
3188 #define IN_trace 21
3189 #define AL_surfxml_random 22
3190 #define S_surfxml_random 23
3191 #define S_surfxml_random_1 24
3192 #define S_surfxml_random_2 25
3193 #define E_surfxml_random 26
3194 #define AL_surfxml_trace_c_connect 27
3195 #define E_surfxml_trace_c_connect 28
3196 #define AL_surfxml_set 29
3197 #define E_surfxml_set 30
3198 #define AL_surfxml_foreach 31
3199 #define S_surfxml_foreach 32
3200 #define S_surfxml_foreach_1 33
3201 #define E_surfxml_foreach 34
3202 #define AL_surfxml_host 35
3203 #define S_surfxml_host 36
3204 #define S_surfxml_host_1 37
3205 #define S_surfxml_host_2 38
3206 #define E_surfxml_host 39
3207 #define AL_surfxml_prop 40
3208 #define E_surfxml_prop 41
3209 #define AL_surfxml_cluster 42
3210 #define E_surfxml_cluster 43
3211 #define AL_surfxml_router 44
3212 #define E_surfxml_router 45
3213 #define AL_surfxml_link 46
3214 #define S_surfxml_link 47
3215 #define S_surfxml_link_1 48
3216 #define S_surfxml_link_2 49
3217 #define E_surfxml_link 50
3218 #define AL_surfxml_route_c_multi 51
3219 #define S_surfxml_route_c_multi 52
3220 #define S_surfxml_route_c_multi_1 53
3221 #define S_surfxml_route_c_multi_2 54
3222 #define E_surfxml_route_c_multi 55
3223 #define AL_surfxml_route 56
3224 #define S_surfxml_route 57
3225 #define S_surfxml_route_1 58
3226 #define S_surfxml_route_2 59
3227 #define E_surfxml_route 60
3228 #define AL_surfxml_link_c_ctn 61
3229 #define E_surfxml_link_c_ctn 62
3230 #define AL_surfxml_process 63
3231 #define S_surfxml_process 64
3232 #define S_surfxml_process_1 65
3233 #define S_surfxml_process_2 66
3234 #define E_surfxml_process 67
3235 #define AL_surfxml_argument 68
3236 #define E_surfxml_argument 69
3237 #define IMPOSSIBLE 70
3238
3239 #ifndef YY_NO_UNISTD_H
3240 /* Special case for "unistd.h", since it is non-ANSI. We include it way
3241  * down here because we want the user's section 1 to have been scanned first.
3242  * The user has a chance to override it with an option.
3243  */
3244 #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
3245 #  ifndef __STRICT_ANSI__
3246 #    include <io.h>
3247 #    include <process.h>
3248 #  endif
3249 #else
3250 #  include <unistd.h>
3251 #endif
3252 #endif
3253
3254 #ifndef YY_EXTRA_TYPE
3255 #define YY_EXTRA_TYPE void *
3256 #endif
3257
3258 static int yy_init_globals (void );
3259
3260 /* Macros after this point can all be overridden by user definitions in
3261  * section 1.
3262  */
3263
3264 #ifndef YY_SKIP_YYWRAP
3265 #ifdef __cplusplus
3266 extern "C" int surf_parse_wrap (void );
3267 #else
3268 extern int surf_parse_wrap (void );
3269 #endif
3270 #endif
3271
3272 #ifndef yytext_ptr
3273 static void yy_flex_strncpy (char *,yyconst char *,int );
3274 #endif
3275
3276 #ifdef YY_NEED_STRLEN
3277 static int yy_flex_strlen (yyconst char * );
3278 #endif
3279
3280 #ifndef YY_NO_INPUT
3281
3282 #ifdef __cplusplus
3283 static int yyinput (void );
3284 #else
3285 static int input (void );
3286 #endif
3287
3288 #endif
3289
3290         static int yy_start_stack_ptr = 0;
3291         static int yy_start_stack_depth = 0;
3292         static int *yy_start_stack = NULL;
3293     
3294     static void yy_push_state (int new_state );
3295     
3296     static void yy_pop_state (void );
3297     
3298 /* Amount of stuff to slurp up with each read. */
3299 #ifndef YY_READ_BUF_SIZE
3300 #define YY_READ_BUF_SIZE 8192
3301 #endif
3302
3303 /* Copy whatever the last rule matched to the standard output. */
3304 #ifndef ECHO
3305 /* This used to be an fputs(), but since the string might contain NUL's,
3306  * we now use fwrite().
3307  */
3308 #define ECHO fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )
3309 #endif
3310
3311 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
3312  * is returned in "result".
3313  */
3314 #ifndef YY_INPUT
3315 #define YY_INPUT(buf,result,max_size) \
3316         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
3317                 { \
3318                 int c = '*'; \
3319                 int n; \
3320                 for ( n = 0; n < max_size && \
3321                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
3322                         buf[n] = (char) c; \
3323                 if ( c == '\n' ) \
3324                         buf[n++] = (char) c; \
3325                 if ( c == EOF && ferror( surf_parse_in ) ) \
3326                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
3327                 result = n; \
3328                 } \
3329         else \
3330                 { \
3331                 errno=0; \
3332                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
3333                         { \
3334                         if( errno != EINTR) \
3335                                 { \
3336                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
3337                                 break; \
3338                                 } \
3339                         errno=0; \
3340                         clearerr(surf_parse_in); \
3341                         } \
3342                 }\
3343 \
3344
3345 #endif
3346
3347 /* No semi-colon after return; correct usage is to write "yyterminate();" -
3348  * we don't want an extra ';' after the "return" because that will cause
3349  * some compilers to complain about unreachable statements.
3350  */
3351 #ifndef yyterminate
3352 #define yyterminate() return YY_NULL
3353 #endif
3354
3355 /* Number of entries by which start-condition stack grows. */
3356 #ifndef YY_START_STACK_INCR
3357 #define YY_START_STACK_INCR 25
3358 #endif
3359
3360 /* Report a fatal error. */
3361 #ifndef YY_FATAL_ERROR
3362 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
3363 #endif
3364
3365 /* end tables serialization structures and prototypes */
3366
3367 /* Default declaration of generated scanner - a define so the user can
3368  * easily add parameters.
3369  */
3370 #ifndef YY_DECL
3371 #define YY_DECL_IS_OURS 1
3372
3373 extern int surf_parse_lex (void);
3374
3375 #define YY_DECL int surf_parse_lex (void)
3376 #endif /* !YY_DECL */
3377
3378 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
3379  * have been set up.
3380  */
3381 #ifndef YY_USER_ACTION
3382 #define YY_USER_ACTION
3383 #endif
3384
3385 /* Code executed at the end of each rule. */
3386 #ifndef YY_BREAK
3387 #define YY_BREAK break;
3388 #endif
3389
3390 #define YY_RULE_SETUP \
3391         YY_USER_ACTION
3392
3393 /** The main scanner function which does all the work.
3394  */
3395 YY_DECL
3396 {
3397         register yy_state_type yy_current_state;
3398         register char *yy_cp, *yy_bp;
3399         register int yy_act;
3400     
3401  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
3402  SET(PROLOG);
3403  reset_surfxml_parse_err_msg();
3404  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
3405  assert(surfxml_bufferstack);
3406  #ifdef FLEX_DEBUG
3407  {
3408      int i;
3409      for (i = 0; i < blimit; i++) {
3410          surfxml_bufferstack[i] = '\377';
3411      }
3412  }
3413  #endif
3414  surfxml_bufferstack[0] = '\0';
3415  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
3416  assert(indexstack);
3417  indexstack[0] = 0;
3418
3419   /* FleXML_init */
3420   bnext = inext = 1;
3421   surfxml_bufferliteral('\0', &bnext, "0.0");
3422   surfxml_bufferliteral('\0', &bnext, "http://simgrid.gforge.inria.fr/");
3423   surfxml_bufferliteral('\0', &bnext, "http://simgrid.gforge.inria.fr/");
3424   surfxml_bufferliteral('\0', &bnext, "1.0");
3425   surfxml_bufferliteral('\0', &bnext, "1.0");
3426   surfxml_bufferliteral('\0', &bnext, "1.0");
3427   surfxml_bufferliteral('\0', &bnext, "1.0");
3428   surfxml_bufferliteral('\0', &bnext, "-1.0");
3429   surfxml_bufferliteral('\0', &bnext, "0.0");
3430   surfxml_bufferliteral('\0', &bnext, "0.0");
3431   surfxml_bufferliteral('\0', &bnext, "0.0");
3432   surfxml_bufferliteral('\0', &bnext, "0.0");
3433   surfxml_bufferliteral('\0', &bnext, "0.0");
3434   surfxml_bufferliteral('\0', &bnext, "-1.0");
3435   surfxml_bufferliteral('\0', &bnext, "-1.0");
3436   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
3437   surfxml_statenames[PROLOG] = NULL;
3438   surfxml_statenames[DOCTYPE] = NULL;
3439   surfxml_statenames[EPILOG] = NULL;
3440   surfxml_statenames[INCOMMENT] = NULL;
3441   surfxml_statenames[INPI] = NULL;
3442   surfxml_statenames[VALUE1] = NULL;
3443   surfxml_statenames[VALUE2] = NULL;
3444   surfxml_statenames[CDATA] = NULL;
3445   surfxml_statenames[ROOT_surfxml_platform] = NULL;
3446   surfxml_statenames[AL_surfxml_platform] = NULL;
3447   surfxml_statenames[S_surfxml_platform] = "platform";
3448   surfxml_statenames[S_surfxml_platform_1] = "platform";
3449   surfxml_statenames[S_surfxml_platform_2] = "platform";
3450   surfxml_statenames[S_surfxml_platform_3] = "platform";
3451   surfxml_statenames[S_surfxml_platform_4] = "platform";
3452   surfxml_statenames[S_surfxml_platform_5] = "platform";
3453   surfxml_statenames[E_surfxml_platform] = "platform";
3454   surfxml_statenames[AL_surfxml_include] = NULL;
3455   surfxml_statenames[E_surfxml_include] = "include";
3456   surfxml_statenames[AL_surfxml_trace] = NULL;
3457   surfxml_statenames[IN_trace] = "trace";
3458   surfxml_statenames[AL_surfxml_random] = NULL;
3459   surfxml_statenames[S_surfxml_random] = "random";
3460   surfxml_statenames[S_surfxml_random_1] = "random";
3461   surfxml_statenames[S_surfxml_random_2] = "random";
3462   surfxml_statenames[E_surfxml_random] = "random";
3463   surfxml_statenames[AL_surfxml_trace_c_connect] = NULL;
3464   surfxml_statenames[E_surfxml_trace_c_connect] = "trace:connect";
3465   surfxml_statenames[AL_surfxml_set] = NULL;
3466   surfxml_statenames[E_surfxml_set] = "set";
3467   surfxml_statenames[AL_surfxml_foreach] = NULL;
3468   surfxml_statenames[S_surfxml_foreach] = "foreach";
3469   surfxml_statenames[S_surfxml_foreach_1] = "foreach";
3470   surfxml_statenames[E_surfxml_foreach] = "foreach";
3471   surfxml_statenames[AL_surfxml_host] = NULL;
3472   surfxml_statenames[S_surfxml_host] = "host";
3473   surfxml_statenames[S_surfxml_host_1] = "host";
3474   surfxml_statenames[S_surfxml_host_2] = "host";
3475   surfxml_statenames[E_surfxml_host] = "host";
3476   surfxml_statenames[AL_surfxml_prop] = NULL;
3477   surfxml_statenames[E_surfxml_prop] = "prop";
3478   surfxml_statenames[AL_surfxml_cluster] = NULL;
3479   surfxml_statenames[E_surfxml_cluster] = "cluster";
3480   surfxml_statenames[AL_surfxml_router] = NULL;
3481   surfxml_statenames[E_surfxml_router] = "router";
3482   surfxml_statenames[AL_surfxml_link] = NULL;
3483   surfxml_statenames[S_surfxml_link] = "link";
3484   surfxml_statenames[S_surfxml_link_1] = "link";
3485   surfxml_statenames[S_surfxml_link_2] = "link";
3486   surfxml_statenames[E_surfxml_link] = "link";
3487   surfxml_statenames[AL_surfxml_route_c_multi] = NULL;
3488   surfxml_statenames[S_surfxml_route_c_multi] = "route:multi";
3489   surfxml_statenames[S_surfxml_route_c_multi_1] = "route:multi";
3490   surfxml_statenames[S_surfxml_route_c_multi_2] = "route:multi";
3491   surfxml_statenames[E_surfxml_route_c_multi] = "route:multi";
3492   surfxml_statenames[AL_surfxml_route] = NULL;
3493   surfxml_statenames[S_surfxml_route] = "route";
3494   surfxml_statenames[S_surfxml_route_1] = "route";
3495   surfxml_statenames[S_surfxml_route_2] = "route";
3496   surfxml_statenames[E_surfxml_route] = "route";
3497   surfxml_statenames[AL_surfxml_link_c_ctn] = NULL;
3498   surfxml_statenames[E_surfxml_link_c_ctn] = "link:ctn";
3499   surfxml_statenames[AL_surfxml_process] = NULL;
3500   surfxml_statenames[S_surfxml_process] = "process";
3501   surfxml_statenames[S_surfxml_process_1] = "process";
3502   surfxml_statenames[S_surfxml_process_2] = "process";
3503   surfxml_statenames[E_surfxml_process] = "process";
3504   surfxml_statenames[AL_surfxml_argument] = NULL;
3505   surfxml_statenames[E_surfxml_argument] = "argument";
3506   }
3507
3508  /* COMMENTS and PIs: handled uniformly for efficiency. */
3509
3510         if ( !(yy_init) )
3511                 {
3512                 (yy_init) = 1;
3513
3514 #ifdef YY_USER_INIT
3515                 YY_USER_INIT;
3516 #endif
3517
3518                 if ( ! (yy_start) )
3519                         (yy_start) = 1; /* first start state */
3520
3521                 if ( ! surf_parse_in )
3522                         surf_parse_in = stdin;
3523
3524                 if ( ! surf_parse_out )
3525                         surf_parse_out = stdout;
3526
3527                 if ( ! YY_CURRENT_BUFFER ) {
3528                         surf_parse_ensure_buffer_stack ();
3529                         YY_CURRENT_BUFFER_LVALUE =
3530                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
3531                 }
3532
3533                 surf_parse__load_buffer_state( );
3534                 }
3535
3536         while ( 1 )             /* loops until end-of-file is reached */
3537                 {
3538                 yy_cp = (yy_c_buf_p);
3539
3540                 /* Support of surf_parse_text. */
3541                 *yy_cp = (yy_hold_char);
3542
3543                 /* yy_bp points to the position in yy_ch_buf of the start of
3544                  * the current run.
3545                  */
3546                 yy_bp = yy_cp;
3547
3548                 yy_current_state = (yy_start);
3549 yy_match:
3550                 do
3551                         {
3552                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
3553                         if ( yy_accept[yy_current_state] )
3554                                 {
3555                                 (yy_last_accepting_state) = yy_current_state;
3556                                 (yy_last_accepting_cpos) = yy_cp;
3557                                 }
3558                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3559                                 {
3560                                 yy_current_state = (int) yy_def[yy_current_state];
3561                                 if ( yy_current_state >= 2023 )
3562                                         yy_c = yy_meta[(unsigned int) yy_c];
3563                                 }
3564                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3565                         ++yy_cp;
3566                         }
3567                 while ( yy_base[yy_current_state] != 7094 );
3568
3569 yy_find_action:
3570                 yy_act = yy_accept[yy_current_state];
3571                 if ( yy_act == 0 )
3572                         { /* have to back up */
3573                         yy_cp = (yy_last_accepting_cpos);
3574                         yy_current_state = (yy_last_accepting_state);
3575                         yy_act = yy_accept[yy_current_state];
3576                         }
3577
3578                 YY_DO_BEFORE_ACTION;
3579
3580                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
3581                         {
3582                         int yyl;
3583                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
3584                                 if ( surf_parse_text[yyl] == '\n' )
3585                                            
3586     surf_parse_lineno++;
3587 ;
3588                         }
3589
3590 do_action:      /* This label is used only to access EOF actions. */
3591
3592                 switch ( yy_act )
3593         { /* beginning of action switch */
3594                         case 0: /* must back up */
3595                         /* undo the effects of YY_DO_BEFORE_ACTION */
3596                         *yy_cp = (yy_hold_char);
3597                         yy_cp = (yy_last_accepting_cpos);
3598                         yy_current_state = (yy_last_accepting_state);
3599                         goto yy_find_action;
3600
3601 case 1:
3602 YY_RULE_SETUP
3603 ENTER(INCOMMENT);
3604         YY_BREAK
3605 case 2:
3606 YY_RULE_SETUP
3607 ENTER(INPI);
3608         YY_BREAK
3609
3610 case 3:
3611 YY_RULE_SETUP
3612 LEAVE;
3613         YY_BREAK
3614 case 4:
3615 case 5:
3616 case 6:
3617 /* rule 6 can match eol */
3618 YY_RULE_SETUP
3619 SKIP;
3620         YY_BREAK
3621 case YY_STATE_EOF(INCOMMENT):
3622 FAIL("EOF in comment.");
3623         YY_BREAK
3624
3625 case 7:
3626 YY_RULE_SETUP
3627 LEAVE;
3628         YY_BREAK
3629 case 8:
3630 case 9:
3631 /* rule 9 can match eol */
3632 YY_RULE_SETUP
3633 SKIP;
3634         YY_BREAK
3635 case YY_STATE_EOF(INPI):
3636 FAIL("EOF in PI (processing instruction).");
3637         YY_BREAK
3638
3639 /* SPACES: skipped uniformly */
3640 case 10:
3641 /* rule 10 can match eol */
3642 YY_RULE_SETUP
3643 SKIP;
3644         YY_BREAK
3645 /* PROLOG: determine root element and process it. */
3646
3647 case 11:
3648 /* rule 11 can match eol */
3649 YY_RULE_SETUP
3650 SET(DOCTYPE); 
3651         YY_BREAK
3652 case 12:
3653 /* rule 12 can match eol */
3654 YY_RULE_SETUP
3655 FAIL("Bad declaration %s.",surf_parse_text);
3656         YY_BREAK
3657
3658 case 13:
3659 /* rule 13 can match eol */
3660 YY_RULE_SETUP
3661 SET(ROOT_surfxml_platform);
3662         YY_BREAK
3663 case 14:
3664 /* rule 14 can match eol */
3665 YY_RULE_SETUP
3666 FAIL("Bad declaration %s.",surf_parse_text);
3667         YY_BREAK
3668 case 15:
3669 YY_RULE_SETUP
3670 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
3671         YY_BREAK
3672 case YY_STATE_EOF(PROLOG):
3673 case YY_STATE_EOF(DOCTYPE):
3674 FAIL("EOF in prolog.");
3675         YY_BREAK
3676
3677 /* RULES DERIVED FROM DTD. */
3678 /* <!-- Small DTD for SURF based tools. -->  */
3679 case 16:
3680 /* rule 16 can match eol */
3681 YY_RULE_SETUP
3682 FAIL("Starting tag <platform> is not allowed here.");
3683         YY_BREAK
3684 case 17:
3685 /* rule 17 can match eol */
3686 YY_RULE_SETUP
3687 {
3688   AX_surfxml_platform_version = 1;
3689   AX_surfxml_platform_xmlns_c_link = 5;
3690   AX_surfxml_platform_xmlns_c_route = 37;
3691   ENTER(AL_surfxml_platform); pushbuffer(0);
3692   }
3693         YY_BREAK
3694
3695 case 18:
3696 /* rule 18 can match eol */
3697 YY_RULE_SETUP
3698 ENTER(VALUE1); BUFFERSET(AX_surfxml_platform_version);
3699         YY_BREAK
3700 case 19:
3701 /* rule 19 can match eol */
3702 YY_RULE_SETUP
3703 ENTER(VALUE2); BUFFERSET(AX_surfxml_platform_version);
3704         YY_BREAK
3705 case 20:
3706 /* rule 20 can match eol */
3707 YY_RULE_SETUP
3708 ENTER(VALUE1); BUFFERSET(AX_surfxml_platform_xmlns_c_link);
3709         YY_BREAK
3710 case 21:
3711 /* rule 21 can match eol */
3712 YY_RULE_SETUP
3713 ENTER(VALUE2); BUFFERSET(AX_surfxml_platform_xmlns_c_link);
3714         YY_BREAK
3715 case 22:
3716 /* rule 22 can match eol */
3717 YY_RULE_SETUP
3718 ENTER(VALUE1); BUFFERSET(AX_surfxml_platform_xmlns_c_route);
3719         YY_BREAK
3720 case 23:
3721 /* rule 23 can match eol */
3722 YY_RULE_SETUP
3723 ENTER(VALUE2); BUFFERSET(AX_surfxml_platform_xmlns_c_route);
3724         YY_BREAK
3725 case 24:
3726 YY_RULE_SETUP
3727 {
3728   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
3729  }
3730         YY_BREAK
3731 case 25:
3732 YY_RULE_SETUP
3733 {
3734   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
3735   switch (YY_START) {
3736    case ROOT_surfxml_platform: SET(EPILOG); break;
3737   }
3738  }
3739         YY_BREAK
3740 case 26:
3741 YY_RULE_SETUP
3742 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
3743         YY_BREAK
3744 case 27:
3745 YY_RULE_SETUP
3746 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
3747         YY_BREAK
3748 case YY_STATE_EOF(AL_surfxml_platform):
3749 FAIL("EOF in attribute list of `platform' element.");
3750         YY_BREAK
3751
3752 case 28:
3753 /* rule 28 can match eol */
3754 YY_RULE_SETUP
3755 {
3756   LEAVE;
3757   ETag_surfxml_platform();
3758   popbuffer(); /* attribute */
3759   switch (YY_START) {
3760    case ROOT_surfxml_platform: SET(EPILOG); break;
3761   }
3762  }
3763         YY_BREAK
3764 case 29:
3765 /* rule 29 can match eol */
3766 YY_RULE_SETUP
3767 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
3768         YY_BREAK
3769 case 30:
3770 YY_RULE_SETUP
3771 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
3772         YY_BREAK
3773 case YY_STATE_EOF(S_surfxml_platform_5):
3774 case YY_STATE_EOF(S_surfxml_platform_1):
3775 case YY_STATE_EOF(S_surfxml_platform_3):
3776 case YY_STATE_EOF(S_surfxml_platform):
3777 case YY_STATE_EOF(E_surfxml_platform):
3778 FAIL("Premature EOF: `</platform>' expected.");
3779         YY_BREAK
3780
3781 case 31:
3782 /* rule 31 can match eol */
3783 YY_RULE_SETUP
3784 FAIL("Starting tag <include> is not allowed here.");
3785         YY_BREAK
3786 case 32:
3787 /* rule 32 can match eol */
3788 YY_RULE_SETUP
3789 {
3790   AX_surfxml_include_file = 0;
3791   ENTER(AL_surfxml_include); pushbuffer(0);
3792   }
3793         YY_BREAK
3794
3795 case 33:
3796 /* rule 33 can match eol */
3797 YY_RULE_SETUP
3798 ENTER(VALUE1); BUFFERSET(AX_surfxml_include_file);
3799         YY_BREAK
3800 case 34:
3801 /* rule 34 can match eol */
3802 YY_RULE_SETUP
3803 ENTER(VALUE2); BUFFERSET(AX_surfxml_include_file);
3804         YY_BREAK
3805 case 35:
3806 YY_RULE_SETUP
3807 {
3808   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
3809   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(E_surfxml_include);
3810  }
3811         YY_BREAK
3812 case 36:
3813 YY_RULE_SETUP
3814 {
3815   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
3816   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
3817   switch (YY_START) {
3818    case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_4: SET(S_surfxml_platform_5); break;
3819    case S_surfxml_platform_2: SET(S_surfxml_platform_3); break;
3820   }
3821  }
3822         YY_BREAK
3823 case 37:
3824 YY_RULE_SETUP
3825 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
3826         YY_BREAK
3827 case 38:
3828 YY_RULE_SETUP
3829 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
3830         YY_BREAK
3831 case YY_STATE_EOF(AL_surfxml_include):
3832 FAIL("EOF in attribute list of `include' element.");
3833         YY_BREAK
3834
3835 case 39:
3836 /* rule 39 can match eol */
3837 YY_RULE_SETUP
3838 {
3839   LEAVE;
3840   ETag_surfxml_include();
3841   popbuffer(); /* attribute */
3842   switch (YY_START) {
3843    case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_4: SET(S_surfxml_platform_5); break;
3844    case S_surfxml_platform_2: SET(S_surfxml_platform_3); break;
3845   }
3846  }
3847         YY_BREAK
3848 case 40:
3849 /* rule 40 can match eol */
3850 YY_RULE_SETUP
3851 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
3852         YY_BREAK
3853 case 41:
3854 YY_RULE_SETUP
3855 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
3856         YY_BREAK
3857 case YY_STATE_EOF(E_surfxml_include):
3858 FAIL("Premature EOF: `</include>' expected.");
3859         YY_BREAK
3860
3861 case 42:
3862 /* rule 42 can match eol */
3863 YY_RULE_SETUP
3864 FAIL("Starting tag <trace> is not allowed here.");
3865         YY_BREAK
3866 case 43:
3867 /* rule 43 can match eol */
3868 YY_RULE_SETUP
3869 {
3870   AX_surfxml_trace_id = 0;
3871   AX_surfxml_trace_file = 0;
3872   AX_surfxml_trace_periodicity = 0;
3873   ENTER(AL_surfxml_trace); pushbuffer(0);
3874   }
3875         YY_BREAK
3876
3877 case 44:
3878 /* rule 44 can match eol */
3879 YY_RULE_SETUP
3880 ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_id);
3881         YY_BREAK
3882 case 45:
3883 /* rule 45 can match eol */
3884 YY_RULE_SETUP
3885 ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_id);
3886         YY_BREAK
3887 case 46:
3888 /* rule 46 can match eol */
3889 YY_RULE_SETUP
3890 ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_file);
3891         YY_BREAK
3892 case 47:
3893 /* rule 47 can match eol */
3894 YY_RULE_SETUP
3895 ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_file);
3896         YY_BREAK
3897 case 48:
3898 /* rule 48 can match eol */
3899 YY_RULE_SETUP
3900 ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_periodicity);
3901         YY_BREAK
3902 case 49:
3903 /* rule 49 can match eol */
3904 YY_RULE_SETUP
3905 ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_periodicity);
3906         YY_BREAK
3907 case 50:
3908 YY_RULE_SETUP
3909 {
3910   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
3911   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
3912   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
3913  }
3914         YY_BREAK
3915 case 51:
3916 YY_RULE_SETUP
3917 {
3918   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
3919   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
3920   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
3921   switch (YY_START) {
3922    case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
3923   }
3924  }
3925         YY_BREAK
3926 case 52:
3927 YY_RULE_SETUP
3928 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
3929         YY_BREAK
3930 case 53:
3931 YY_RULE_SETUP
3932 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
3933         YY_BREAK
3934 case YY_STATE_EOF(AL_surfxml_trace):
3935 FAIL("EOF in attribute list of `trace' element.");
3936         YY_BREAK
3937
3938 case 54:
3939 /* rule 54 can match eol */
3940 YY_RULE_SETUP
3941 {
3942   LEAVE;
3943   BUFFERDONE;
3944   ETag_surfxml_trace();
3945   surfxml_pcdata_ix = popbuffer();
3946   popbuffer(); /* attribute */
3947   switch (YY_START) {
3948    case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
3949   }
3950  }
3951         YY_BREAK
3952 case 55:
3953 /* rule 55 can match eol */
3954 YY_RULE_SETUP
3955 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
3956         YY_BREAK
3957 case YY_STATE_EOF(IN_trace):
3958 FAIL("Premature EOF: `</trace>' expected.");
3959         YY_BREAK
3960
3961 case 56:
3962 /* rule 56 can match eol */
3963 YY_RULE_SETUP
3964 FAIL("Starting tag <random> is not allowed here.");
3965         YY_BREAK
3966 case 57:
3967 /* rule 57 can match eol */
3968 YY_RULE_SETUP
3969 {
3970   AX_surfxml_random_id = 0;
3971   AX_surfxml_random_min = 0;
3972   AX_surfxml_random_max = 0;
3973   AX_surfxml_random_mean = 0;
3974   AX_surfxml_random_std_deviation = 0;
3975   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
3976   ENTER(AL_surfxml_random); pushbuffer(0);
3977   }
3978         YY_BREAK
3979
3980 case 58:
3981 /* rule 58 can match eol */
3982 YY_RULE_SETUP
3983 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_id);
3984         YY_BREAK
3985 case 59:
3986 /* rule 59 can match eol */
3987 YY_RULE_SETUP
3988 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_id);
3989         YY_BREAK
3990 case 60:
3991 /* rule 60 can match eol */
3992 YY_RULE_SETUP
3993 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_min);
3994         YY_BREAK
3995 case 61:
3996 /* rule 61 can match eol */
3997 YY_RULE_SETUP
3998 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_min);
3999         YY_BREAK
4000 case 62:
4001 /* rule 62 can match eol */
4002 YY_RULE_SETUP
4003 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_max);
4004         YY_BREAK
4005 case 63:
4006 /* rule 63 can match eol */
4007 YY_RULE_SETUP
4008 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_max);
4009         YY_BREAK
4010 case 64:
4011 /* rule 64 can match eol */
4012 YY_RULE_SETUP
4013 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_mean);
4014         YY_BREAK
4015 case 65:
4016 /* rule 65 can match eol */
4017 YY_RULE_SETUP
4018 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_mean);
4019         YY_BREAK
4020 case 66:
4021 /* rule 66 can match eol */
4022 YY_RULE_SETUP
4023 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_std_deviation);
4024         YY_BREAK
4025 case 67:
4026 /* rule 67 can match eol */
4027 YY_RULE_SETUP
4028 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_std_deviation);
4029         YY_BREAK
4030 case 68:
4031 /* rule 68 can match eol */
4032 case 69:
4033 /* rule 69 can match eol */
4034 YY_RULE_SETUP
4035 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
4036         YY_BREAK
4037 case 70:
4038 /* rule 70 can match eol */
4039 case 71:
4040 /* rule 71 can match eol */
4041 YY_RULE_SETUP
4042 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
4043         YY_BREAK
4044 case 72:
4045 YY_RULE_SETUP
4046 {
4047   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
4048   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
4049   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
4050   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
4051   if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
4052   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(S_surfxml_random);
4053  }
4054         YY_BREAK
4055 case 73:
4056 YY_RULE_SETUP
4057 {
4058   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
4059   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
4060   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
4061   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
4062   if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
4063   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
4064   switch (YY_START) {
4065    case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
4066   }
4067  }
4068         YY_BREAK
4069 case 74:
4070 YY_RULE_SETUP
4071 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
4072         YY_BREAK
4073 case 75:
4074 YY_RULE_SETUP
4075 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
4076         YY_BREAK
4077 case YY_STATE_EOF(AL_surfxml_random):
4078 FAIL("EOF in attribute list of `random' element.");
4079         YY_BREAK
4080
4081 case 76:
4082 /* rule 76 can match eol */
4083 YY_RULE_SETUP
4084 {
4085   LEAVE;
4086   ETag_surfxml_random();
4087   popbuffer(); /* attribute */
4088   switch (YY_START) {
4089    case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
4090   }
4091  }
4092         YY_BREAK
4093 case 77:
4094 /* rule 77 can match eol */
4095 YY_RULE_SETUP
4096 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
4097         YY_BREAK
4098 case 78:
4099 YY_RULE_SETUP
4100 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
4101         YY_BREAK
4102 case YY_STATE_EOF(S_surfxml_random_2):
4103 case YY_STATE_EOF(S_surfxml_random):
4104 case YY_STATE_EOF(E_surfxml_random):
4105 FAIL("Premature EOF: `</random>' expected.");
4106         YY_BREAK
4107
4108 case 79:
4109 /* rule 79 can match eol */
4110 YY_RULE_SETUP
4111 FAIL("Starting tag <trace:connect> is not allowed here.");
4112         YY_BREAK
4113 case 80:
4114 /* rule 80 can match eol */
4115 YY_RULE_SETUP
4116 {
4117   AX_surfxml_trace_c_connect_kind = A_surfxml_trace_c_connect_kind_HOST_AVAIL;
4118   AX_surfxml_trace_c_connect_trace = 0;
4119   AX_surfxml_trace_c_connect_element = 0;
4120   ENTER(AL_surfxml_trace_c_connect); pushbuffer(0);
4121   }
4122         YY_BREAK
4123
4124 case 81:
4125 /* rule 81 can match eol */
4126 case 82:
4127 /* rule 82 can match eol */
4128 YY_RULE_SETUP
4129 A_surfxml_trace_c_connect_kind = A_surfxml_trace_c_connect_kind_HOST_AVAIL;
4130         YY_BREAK
4131 case 83:
4132 /* rule 83 can match eol */
4133 case 84:
4134 /* rule 84 can match eol */
4135 YY_RULE_SETUP
4136 A_surfxml_trace_c_connect_kind = A_surfxml_trace_c_connect_kind_POWER;
4137         YY_BREAK
4138 case 85:
4139 /* rule 85 can match eol */
4140 case 86:
4141 /* rule 86 can match eol */
4142 YY_RULE_SETUP
4143 A_surfxml_trace_c_connect_kind = A_surfxml_trace_c_connect_kind_LINK_AVAIL;
4144         YY_BREAK
4145 case 87:
4146 /* rule 87 can match eol */
4147 case 88:
4148 /* rule 88 can match eol */
4149 YY_RULE_SETUP
4150 A_surfxml_trace_c_connect_kind = A_surfxml_trace_c_connect_kind_BANDWIDTH;
4151         YY_BREAK
4152 case 89:
4153 /* rule 89 can match eol */
4154 case 90:
4155 /* rule 90 can match eol */
4156 YY_RULE_SETUP
4157 A_surfxml_trace_c_connect_kind = A_surfxml_trace_c_connect_kind_LATENCY;
4158         YY_BREAK
4159 case 91:
4160 /* rule 91 can match eol */
4161 YY_RULE_SETUP
4162 ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_c_connect_trace);
4163         YY_BREAK
4164 case 92:
4165 /* rule 92 can match eol */
4166 YY_RULE_SETUP
4167 ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_c_connect_trace);
4168         YY_BREAK
4169 case 93:
4170 /* rule 93 can match eol */
4171 YY_RULE_SETUP
4172 ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_c_connect_element);
4173         YY_BREAK
4174 case 94:
4175 /* rule 94 can match eol */
4176 YY_RULE_SETUP
4177 ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_c_connect_element);
4178         YY_BREAK
4179 case 95:
4180 YY_RULE_SETUP
4181 {
4182   if (!AX_surfxml_trace_c_connect_trace) FAIL("Required attribute `trace' not set for `trace:connect' element.");
4183   if (!AX_surfxml_trace_c_connect_element) FAIL("Required attribute `element' not set for `trace:connect' element.");
4184   LEAVE; STag_surfxml_trace_c_connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace_c_connect);
4185  }
4186         YY_BREAK
4187 case 96:
4188 YY_RULE_SETUP
4189 {
4190   if (!AX_surfxml_trace_c_connect_trace) FAIL("Required attribute `trace' not set for `trace:connect' element.");
4191   if (!AX_surfxml_trace_c_connect_element) FAIL("Required attribute `element' not set for `trace:connect' element.");
4192   LEAVE; STag_surfxml_trace_c_connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace_c_connect(); popbuffer(); /* attribute */
4193   switch (YY_START) {
4194    case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_4: SET(S_surfxml_platform_5); break;
4195    case S_surfxml_platform_2: SET(S_surfxml_platform_3); break;
4196   }
4197  }
4198         YY_BREAK
4199 case 97:
4200 YY_RULE_SETUP
4201 FAIL("Unexpected character `%c' in attribute list of trace:connect element.", surf_parse_text[0]);
4202         YY_BREAK
4203 case 98:
4204 YY_RULE_SETUP
4205 FAIL("Bad attribute `%s' in `trace:connect' element start tag.",surf_parse_text);
4206         YY_BREAK
4207 case YY_STATE_EOF(AL_surfxml_trace_c_connect):
4208 FAIL("EOF in attribute list of `trace:connect' element.");
4209         YY_BREAK
4210
4211 case 99:
4212 /* rule 99 can match eol */
4213 YY_RULE_SETUP
4214 {
4215   LEAVE;
4216   ETag_surfxml_trace_c_connect();
4217   popbuffer(); /* attribute */
4218   switch (YY_START) {
4219    case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_4: SET(S_surfxml_platform_5); break;
4220    case S_surfxml_platform_2: SET(S_surfxml_platform_3); break;
4221   }
4222  }
4223         YY_BREAK
4224 case 100:
4225 /* rule 100 can match eol */
4226 YY_RULE_SETUP
4227 FAIL("Unexpected end-tag `%s': `</trace:connect>' expected.",surf_parse_text);
4228         YY_BREAK
4229 case 101:
4230 YY_RULE_SETUP
4231 FAIL("Unexpected character `%c': `</trace:connect>' expected.",surf_parse_text[0]);
4232         YY_BREAK
4233 case YY_STATE_EOF(E_surfxml_trace_c_connect):
4234 FAIL("Premature EOF: `</trace:connect>' expected.");
4235         YY_BREAK
4236
4237 case 102:
4238 /* rule 102 can match eol */
4239 YY_RULE_SETUP
4240 FAIL("Starting tag <set> is not allowed here.");
4241         YY_BREAK
4242 case 103:
4243 /* rule 103 can match eol */
4244 YY_RULE_SETUP
4245 {
4246   AX_surfxml_set_id = 0;
4247   AX_surfxml_set_prefix = 0;
4248   AX_surfxml_set_suffix = 0;
4249   AX_surfxml_set_radical = 0;
4250   ENTER(AL_surfxml_set); pushbuffer(0);
4251   }
4252         YY_BREAK
4253
4254 case 104:
4255 /* rule 104 can match eol */
4256 YY_RULE_SETUP
4257 ENTER(VALUE1); BUFFERSET(AX_surfxml_set_id);
4258         YY_BREAK
4259 case 105:
4260 /* rule 105 can match eol */
4261 YY_RULE_SETUP
4262 ENTER(VALUE2); BUFFERSET(AX_surfxml_set_id);
4263         YY_BREAK
4264 case 106:
4265 /* rule 106 can match eol */
4266 YY_RULE_SETUP
4267 ENTER(VALUE1); BUFFERSET(AX_surfxml_set_prefix);
4268         YY_BREAK
4269 case 107:
4270 /* rule 107 can match eol */
4271 YY_RULE_SETUP
4272 ENTER(VALUE2); BUFFERSET(AX_surfxml_set_prefix);
4273         YY_BREAK
4274 case 108:
4275 /* rule 108 can match eol */
4276 YY_RULE_SETUP
4277 ENTER(VALUE1); BUFFERSET(AX_surfxml_set_suffix);
4278         YY_BREAK
4279 case 109:
4280 /* rule 109 can match eol */
4281 YY_RULE_SETUP
4282 ENTER(VALUE2); BUFFERSET(AX_surfxml_set_suffix);
4283         YY_BREAK
4284 case 110:
4285 /* rule 110 can match eol */
4286 YY_RULE_SETUP
4287 ENTER(VALUE1); BUFFERSET(AX_surfxml_set_radical);
4288         YY_BREAK
4289 case 111:
4290 /* rule 111 can match eol */
4291 YY_RULE_SETUP
4292 ENTER(VALUE2); BUFFERSET(AX_surfxml_set_radical);
4293         YY_BREAK
4294 case 112:
4295 YY_RULE_SETUP
4296 {
4297   if (!AX_surfxml_set_id) FAIL("Required attribute `id' not set for `set' element.");
4298   if (!AX_surfxml_set_prefix) FAIL("Required attribute `prefix' not set for `set' element.");
4299   if (!AX_surfxml_set_suffix) FAIL("Required attribute `suffix' not set for `set' element.");
4300   if (!AX_surfxml_set_radical) FAIL("Required attribute `radical' not set for `set' element.");
4301   LEAVE; STag_surfxml_set();surfxml_pcdata_ix = 0; ENTER(E_surfxml_set);
4302  }
4303         YY_BREAK
4304 case 113:
4305 YY_RULE_SETUP
4306 {
4307   if (!AX_surfxml_set_id) FAIL("Required attribute `id' not set for `set' element.");
4308   if (!AX_surfxml_set_prefix) FAIL("Required attribute `prefix' not set for `set' element.");
4309   if (!AX_surfxml_set_suffix) FAIL("Required attribute `suffix' not set for `set' element.");
4310   if (!AX_surfxml_set_radical) FAIL("Required attribute `radical' not set for `set' element.");
4311   LEAVE; STag_surfxml_set(); surfxml_pcdata_ix = 0; ETag_surfxml_set(); popbuffer(); /* attribute */
4312   switch (YY_START) {
4313    case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
4314   }
4315  }
4316         YY_BREAK
4317 case 114:
4318 YY_RULE_SETUP
4319 FAIL("Unexpected character `%c' in attribute list of set element.", surf_parse_text[0]);
4320         YY_BREAK
4321 case 115:
4322 YY_RULE_SETUP
4323 FAIL("Bad attribute `%s' in `set' element start tag.",surf_parse_text);
4324         YY_BREAK
4325 case YY_STATE_EOF(AL_surfxml_set):
4326 FAIL("EOF in attribute list of `set' element.");
4327         YY_BREAK
4328
4329 case 116:
4330 /* rule 116 can match eol */
4331 YY_RULE_SETUP
4332 {
4333   LEAVE;
4334   ETag_surfxml_set();
4335   popbuffer(); /* attribute */
4336   switch (YY_START) {
4337    case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
4338   }
4339  }
4340         YY_BREAK
4341 case 117:
4342 /* rule 117 can match eol */
4343 YY_RULE_SETUP
4344 FAIL("Unexpected end-tag `%s': `</set>' expected.",surf_parse_text);
4345         YY_BREAK
4346 case 118:
4347 YY_RULE_SETUP
4348 FAIL("Unexpected character `%c': `</set>' expected.",surf_parse_text[0]);
4349         YY_BREAK
4350 case YY_STATE_EOF(E_surfxml_set):
4351 FAIL("Premature EOF: `</set>' expected.");
4352         YY_BREAK
4353
4354 case 119:
4355 /* rule 119 can match eol */
4356 YY_RULE_SETUP
4357 FAIL("Starting tag <foreach> is not allowed here.");
4358         YY_BREAK
4359 case 120:
4360 /* rule 120 can match eol */
4361 YY_RULE_SETUP
4362 {
4363   AX_surfxml_foreach_set_id = 0;
4364   ENTER(AL_surfxml_foreach); pushbuffer(0);
4365   }
4366         YY_BREAK
4367
4368 case 121:
4369 /* rule 121 can match eol */
4370 YY_RULE_SETUP
4371 ENTER(VALUE1); BUFFERSET(AX_surfxml_foreach_set_id);
4372         YY_BREAK
4373 case 122:
4374 /* rule 122 can match eol */
4375 YY_RULE_SETUP
4376 ENTER(VALUE2); BUFFERSET(AX_surfxml_foreach_set_id);
4377         YY_BREAK
4378 case 123:
4379 YY_RULE_SETUP
4380 {
4381   if (!AX_surfxml_foreach_set_id) FAIL("Required attribute `set_id' not set for `foreach' element.");
4382   LEAVE; STag_surfxml_foreach();surfxml_pcdata_ix = 0; ENTER(S_surfxml_foreach);
4383  }
4384         YY_BREAK
4385 case 124:
4386 YY_RULE_SETUP
4387 FAIL("`foreach' element cannot be empty.");
4388         YY_BREAK
4389 case 125:
4390 YY_RULE_SETUP
4391 FAIL("Unexpected character `%c' in attribute list of foreach element.", surf_parse_text[0]);
4392         YY_BREAK
4393 case 126:
4394 YY_RULE_SETUP
4395 FAIL("Bad attribute `%s' in `foreach' element start tag.",surf_parse_text);
4396         YY_BREAK
4397 case YY_STATE_EOF(AL_surfxml_foreach):
4398 FAIL("EOF in attribute list of `foreach' element.");
4399         YY_BREAK
4400
4401 case 127:
4402 /* rule 127 can match eol */
4403 YY_RULE_SETUP
4404 {
4405   LEAVE;
4406   ETag_surfxml_foreach();
4407   popbuffer(); /* attribute */
4408   switch (YY_START) {
4409    case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
4410   }
4411  }
4412         YY_BREAK
4413 case 128:
4414 /* rule 128 can match eol */
4415 YY_RULE_SETUP
4416 FAIL("Unexpected end-tag `%s': `</foreach>' expected.",surf_parse_text);
4417         YY_BREAK
4418 case 129:
4419 YY_RULE_SETUP
4420 FAIL("Unexpected character `%c': `</foreach>' expected.",surf_parse_text[0]);
4421         YY_BREAK
4422 case YY_STATE_EOF(E_surfxml_foreach):
4423 FAIL("Premature EOF: `</foreach>' expected.");
4424         YY_BREAK
4425
4426 case 130:
4427 /* rule 130 can match eol */
4428 YY_RULE_SETUP
4429 FAIL("Starting tag <host> is not allowed here.");
4430         YY_BREAK
4431 case 131:
4432 /* rule 131 can match eol */
4433 YY_RULE_SETUP
4434 {
4435   AX_surfxml_host_id = 0;
4436   AX_surfxml_host_power = 0;
4437   AX_surfxml_host_availability = 69;
4438   AX_surfxml_host_availability_file = 0;
4439   AX_surfxml_host_state = A_surfxml_host_state_ON;
4440   AX_surfxml_host_state_file = 0;
4441   AX_surfxml_host_interference_send = 73;
4442   AX_surfxml_host_interference_recv = 77;
4443   AX_surfxml_host_interference_send_recv = 81;
4444   AX_surfxml_host_max_outgoing_rate = 85;
4445   ENTER(AL_surfxml_host); pushbuffer(0);
4446   }
4447         YY_BREAK
4448
4449 case 132:
4450 /* rule 132 can match eol */
4451 YY_RULE_SETUP
4452 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_id);
4453         YY_BREAK
4454 case 133:
4455 /* rule 133 can match eol */
4456 YY_RULE_SETUP
4457 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_id);
4458         YY_BREAK
4459 case 134:
4460 /* rule 134 can match eol */
4461 YY_RULE_SETUP
4462 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_power);
4463         YY_BREAK
4464 case 135:
4465 /* rule 135 can match eol */
4466 YY_RULE_SETUP
4467 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_power);
4468         YY_BREAK
4469 case 136:
4470 /* rule 136 can match eol */
4471 YY_RULE_SETUP
4472 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability);
4473         YY_BREAK
4474 case 137:
4475 /* rule 137 can match eol */
4476 YY_RULE_SETUP
4477 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability);
4478         YY_BREAK
4479 case 138:
4480 /* rule 138 can match eol */
4481 YY_RULE_SETUP
4482 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability_file);
4483         YY_BREAK
4484 case 139:
4485 /* rule 139 can match eol */
4486 YY_RULE_SETUP
4487 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability_file);
4488         YY_BREAK
4489 case 140:
4490 /* rule 140 can match eol */
4491 case 141:
4492 /* rule 141 can match eol */
4493 YY_RULE_SETUP
4494 A_surfxml_host_state = A_surfxml_host_state_ON;
4495         YY_BREAK
4496 case 142:
4497 /* rule 142 can match eol */
4498 case 143:
4499 /* rule 143 can match eol */
4500 YY_RULE_SETUP
4501 A_surfxml_host_state = A_surfxml_host_state_OFF;
4502         YY_BREAK
4503 case 144:
4504 /* rule 144 can match eol */
4505 YY_RULE_SETUP
4506 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_state_file);
4507         YY_BREAK
4508 case 145:
4509 /* rule 145 can match eol */
4510 YY_RULE_SETUP
4511 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_state_file);
4512         YY_BREAK
4513 case 146:
4514 /* rule 146 can match eol */
4515 YY_RULE_SETUP
4516 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_interference_send);
4517         YY_BREAK
4518 case 147:
4519 /* rule 147 can match eol */
4520 YY_RULE_SETUP
4521 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_interference_send);
4522         YY_BREAK
4523 case 148:
4524 /* rule 148 can match eol */
4525 YY_RULE_SETUP
4526 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_interference_recv);
4527         YY_BREAK
4528 case 149:
4529 /* rule 149 can match eol */
4530 YY_RULE_SETUP
4531 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_interference_recv);
4532         YY_BREAK
4533 case 150:
4534 /* rule 150 can match eol */
4535 YY_RULE_SETUP
4536 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_interference_send_recv);
4537         YY_BREAK
4538 case 151:
4539 /* rule 151 can match eol */
4540 YY_RULE_SETUP
4541 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_interference_send_recv);
4542         YY_BREAK
4543 case 152:
4544 /* rule 152 can match eol */
4545 YY_RULE_SETUP
4546 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_max_outgoing_rate);
4547         YY_BREAK
4548 case 153:
4549 /* rule 153 can match eol */
4550 YY_RULE_SETUP
4551 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_max_outgoing_rate);
4552         YY_BREAK
4553 case 154:
4554 YY_RULE_SETUP
4555 {
4556   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
4557   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
4558   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
4559  }
4560         YY_BREAK
4561 case 155:
4562 YY_RULE_SETUP
4563 {
4564   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
4565   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
4566   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
4567   switch (YY_START) {
4568    case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
4569    case S_surfxml_foreach: SET(S_surfxml_foreach_1); break;
4570   }
4571  }
4572         YY_BREAK
4573 case 156:
4574 YY_RULE_SETUP
4575 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
4576         YY_BREAK
4577 case 157:
4578 YY_RULE_SETUP
4579 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
4580         YY_BREAK
4581 case YY_STATE_EOF(AL_surfxml_host):
4582 FAIL("EOF in attribute list of `host' element.");
4583         YY_BREAK
4584
4585 case 158:
4586 /* rule 158 can match eol */
4587 YY_RULE_SETUP
4588 {
4589   LEAVE;
4590   ETag_surfxml_host();
4591   popbuffer(); /* attribute */
4592   switch (YY_START) {
4593    case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
4594    case S_surfxml_foreach: SET(S_surfxml_foreach_1); break;
4595   }
4596  }
4597         YY_BREAK
4598 case 159:
4599 /* rule 159 can match eol */
4600 YY_RULE_SETUP
4601 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
4602         YY_BREAK
4603 case 160:
4604 YY_RULE_SETUP
4605 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
4606         YY_BREAK
4607 case YY_STATE_EOF(S_surfxml_host):
4608 case YY_STATE_EOF(E_surfxml_host):
4609 case YY_STATE_EOF(S_surfxml_host_2):
4610 FAIL("Premature EOF: `</host>' expected.");
4611         YY_BREAK
4612
4613 case 161:
4614 /* rule 161 can match eol */
4615 YY_RULE_SETUP
4616 FAIL("Starting tag <prop> is not allowed here.");
4617         YY_BREAK
4618 case 162:
4619 /* rule 162 can match eol */
4620 YY_RULE_SETUP
4621 {
4622   AX_surfxml_prop_id = 0;
4623   AX_surfxml_prop_value = 0;
4624   ENTER(AL_surfxml_prop); pushbuffer(0);
4625   }
4626         YY_BREAK
4627
4628 case 163:
4629 /* rule 163 can match eol */
4630 YY_RULE_SETUP
4631 ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_id);
4632         YY_BREAK
4633 case 164:
4634 /* rule 164 can match eol */
4635 YY_RULE_SETUP
4636 ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_id);
4637         YY_BREAK
4638 case 165:
4639 /* rule 165 can match eol */
4640 YY_RULE_SETUP
4641 ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_value);
4642         YY_BREAK
4643 case 166:
4644 /* rule 166 can match eol */
4645 YY_RULE_SETUP
4646 ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_value);
4647         YY_BREAK
4648 case 167:
4649 YY_RULE_SETUP
4650 {
4651   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
4652   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
4653   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
4654  }
4655         YY_BREAK
4656 case 168:
4657 YY_RULE_SETUP
4658 {
4659   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
4660   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
4661   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
4662   switch (YY_START) {
4663    case S_surfxml_random: case S_surfxml_random_2: case S_surfxml_random_1: SET(S_surfxml_random_2); break;
4664    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
4665    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
4666    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
4667   }
4668  }
4669         YY_BREAK
4670 case 169:
4671 YY_RULE_SETUP
4672 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
4673         YY_BREAK
4674 case 170:
4675 YY_RULE_SETUP
4676 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
4677         YY_BREAK
4678 case YY_STATE_EOF(AL_surfxml_prop):
4679 FAIL("EOF in attribute list of `prop' element.");
4680         YY_BREAK
4681
4682 case 171:
4683 /* rule 171 can match eol */
4684 YY_RULE_SETUP
4685 {
4686   LEAVE;
4687   ETag_surfxml_prop();
4688   popbuffer(); /* attribute */
4689   switch (YY_START) {
4690    case S_surfxml_random: case S_surfxml_random_2: case S_surfxml_random_1: SET(S_surfxml_random_2); break;
4691    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
4692    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
4693    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
4694   }
4695  }
4696         YY_BREAK
4697 case 172:
4698 /* rule 172 can match eol */
4699 YY_RULE_SETUP
4700 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
4701         YY_BREAK
4702 case 173:
4703 YY_RULE_SETUP
4704 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
4705         YY_BREAK
4706 case YY_STATE_EOF(E_surfxml_prop):
4707 FAIL("Premature EOF: `</prop>' expected.");
4708         YY_BREAK
4709
4710 case 174:
4711 /* rule 174 can match eol */
4712 YY_RULE_SETUP
4713 FAIL("Starting tag <cluster> is not allowed here.");
4714         YY_BREAK
4715 case 175:
4716 /* rule 175 can match eol */
4717 YY_RULE_SETUP
4718 {
4719   AX_surfxml_cluster_id = 0;
4720   AX_surfxml_cluster_prefix = 0;
4721   AX_surfxml_cluster_suffix = 0;
4722   AX_surfxml_cluster_radical = 0;
4723   AX_surfxml_cluster_power = 0;
4724   AX_surfxml_cluster_bw = 0;
4725   AX_surfxml_cluster_lat = 0;
4726   AX_surfxml_cluster_bb_bw = 0;
4727   AX_surfxml_cluster_bb_lat = 0;
4728   ENTER(AL_surfxml_cluster); pushbuffer(0);
4729   }
4730         YY_BREAK
4731
4732 case 176:
4733 /* rule 176 can match eol */
4734 YY_RULE_SETUP
4735 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_id);
4736         YY_BREAK
4737 case 177:
4738 /* rule 177 can match eol */
4739 YY_RULE_SETUP
4740 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_id);
4741         YY_BREAK
4742 case 178:
4743 /* rule 178 can match eol */
4744 YY_RULE_SETUP
4745 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_prefix);
4746         YY_BREAK
4747 case 179:
4748 /* rule 179 can match eol */
4749 YY_RULE_SETUP
4750 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_prefix);
4751         YY_BREAK
4752 case 180:
4753 /* rule 180 can match eol */
4754 YY_RULE_SETUP
4755 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_suffix);
4756         YY_BREAK
4757 case 181:
4758 /* rule 181 can match eol */
4759 YY_RULE_SETUP
4760 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_suffix);
4761         YY_BREAK
4762 case 182:
4763 /* rule 182 can match eol */
4764 YY_RULE_SETUP
4765 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_radical);
4766         YY_BREAK
4767 case 183:
4768 /* rule 183 can match eol */
4769 YY_RULE_SETUP
4770 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_radical);
4771         YY_BREAK
4772 case 184:
4773 /* rule 184 can match eol */
4774 YY_RULE_SETUP
4775 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_power);
4776         YY_BREAK
4777 case 185:
4778 /* rule 185 can match eol */
4779 YY_RULE_SETUP
4780 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_power);
4781         YY_BREAK
4782 case 186:
4783 /* rule 186 can match eol */
4784 YY_RULE_SETUP
4785 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bw);
4786         YY_BREAK
4787 case 187:
4788 /* rule 187 can match eol */
4789 YY_RULE_SETUP
4790 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bw);
4791         YY_BREAK
4792 case 188:
4793 /* rule 188 can match eol */
4794 YY_RULE_SETUP
4795 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_lat);
4796         YY_BREAK
4797 case 189:
4798 /* rule 189 can match eol */
4799 YY_RULE_SETUP
4800 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_lat);
4801         YY_BREAK
4802 case 190:
4803 /* rule 190 can match eol */
4804 YY_RULE_SETUP
4805 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bb_bw);
4806         YY_BREAK
4807 case 191:
4808 /* rule 191 can match eol */
4809 YY_RULE_SETUP
4810 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bb_bw);
4811         YY_BREAK
4812 case 192:
4813 /* rule 192 can match eol */
4814 YY_RULE_SETUP
4815 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bb_lat);
4816         YY_BREAK
4817 case 193:
4818 /* rule 193 can match eol */
4819 YY_RULE_SETUP
4820 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bb_lat);
4821         YY_BREAK
4822 case 194:
4823 YY_RULE_SETUP
4824 {
4825   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
4826   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
4827   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
4828   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
4829   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
4830   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
4831   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
4832   if (!AX_surfxml_cluster_bb_bw) FAIL("Required attribute `bb_bw' not set for `cluster' element.");
4833   if (!AX_surfxml_cluster_bb_lat) FAIL("Required attribute `bb_lat' not set for `cluster' element.");
4834   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cluster);
4835  }
4836         YY_BREAK
4837 case 195:
4838 YY_RULE_SETUP
4839 {
4840   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
4841   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
4842   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
4843   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
4844   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
4845   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
4846   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
4847   if (!AX_surfxml_cluster_bb_bw) FAIL("Required attribute `bb_bw' not set for `cluster' element.");
4848   if (!AX_surfxml_cluster_bb_lat) FAIL("Required attribute `bb_lat' not set for `cluster' element.");
4849   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
4850   switch (YY_START) {
4851    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
4852   }
4853  }
4854         YY_BREAK
4855 case 196:
4856 YY_RULE_SETUP
4857 FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
4858         YY_BREAK
4859 case 197:
4860 YY_RULE_SETUP
4861 FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
4862         YY_BREAK
4863 case YY_STATE_EOF(AL_surfxml_cluster):
4864 FAIL("EOF in attribute list of `cluster' element.");
4865         YY_BREAK
4866
4867 case 198:
4868 /* rule 198 can match eol */
4869 YY_RULE_SETUP
4870 {
4871   LEAVE;
4872   ETag_surfxml_cluster();
4873   popbuffer(); /* attribute */
4874   switch (YY_START) {
4875    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
4876   }
4877  }
4878         YY_BREAK
4879 case 199:
4880 /* rule 199 can match eol */
4881 YY_RULE_SETUP
4882 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
4883         YY_BREAK
4884 case 200:
4885 YY_RULE_SETUP
4886 FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
4887         YY_BREAK
4888 case YY_STATE_EOF(E_surfxml_cluster):
4889 FAIL("Premature EOF: `</cluster>' expected.");
4890         YY_BREAK
4891
4892 case 201:
4893 /* rule 201 can match eol */
4894 YY_RULE_SETUP
4895 FAIL("Starting tag <router> is not allowed here.");
4896         YY_BREAK
4897 case 202:
4898 /* rule 202 can match eol */
4899 YY_RULE_SETUP
4900 {
4901   AX_surfxml_router_id = 0;
4902   ENTER(AL_surfxml_router); pushbuffer(0);
4903   }
4904         YY_BREAK
4905
4906 case 203:
4907 /* rule 203 can match eol */
4908 YY_RULE_SETUP
4909 ENTER(VALUE1); BUFFERSET(AX_surfxml_router_id);
4910         YY_BREAK
4911 case 204:
4912 /* rule 204 can match eol */
4913 YY_RULE_SETUP
4914 ENTER(VALUE2); BUFFERSET(AX_surfxml_router_id);
4915         YY_BREAK
4916 case 205:
4917 YY_RULE_SETUP
4918 {
4919   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
4920   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
4921  }
4922         YY_BREAK
4923 case 206:
4924 YY_RULE_SETUP
4925 {
4926   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
4927   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
4928   switch (YY_START) {
4929    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
4930   }
4931  }
4932         YY_BREAK
4933 case 207:
4934 YY_RULE_SETUP
4935 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
4936         YY_BREAK
4937 case 208:
4938 YY_RULE_SETUP
4939 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
4940         YY_BREAK
4941 case YY_STATE_EOF(AL_surfxml_router):
4942 FAIL("EOF in attribute list of `router' element.");
4943         YY_BREAK
4944
4945 case 209:
4946 /* rule 209 can match eol */
4947 YY_RULE_SETUP
4948 {
4949   LEAVE;
4950   ETag_surfxml_router();
4951   popbuffer(); /* attribute */
4952   switch (YY_START) {
4953    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
4954   }
4955  }
4956         YY_BREAK
4957 case 210:
4958 /* rule 210 can match eol */
4959 YY_RULE_SETUP
4960 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
4961         YY_BREAK
4962 case 211:
4963 YY_RULE_SETUP
4964 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
4965         YY_BREAK
4966 case YY_STATE_EOF(E_surfxml_router):
4967 FAIL("Premature EOF: `</router>' expected.");
4968         YY_BREAK
4969
4970 case 212:
4971 /* rule 212 can match eol */
4972 YY_RULE_SETUP
4973 FAIL("Starting tag <link> is not allowed here.");
4974         YY_BREAK
4975 case 213:
4976 /* rule 213 can match eol */
4977 YY_RULE_SETUP
4978 {
4979   AX_surfxml_link_id = 0;
4980   AX_surfxml_link_bandwidth = 0;
4981   AX_surfxml_link_bandwidth_file = 0;
4982   AX_surfxml_link_latency = 90;
4983   AX_surfxml_link_latency_file = 0;
4984   AX_surfxml_link_state = A_surfxml_link_state_ON;
4985   AX_surfxml_link_state_file = 0;
4986   AX_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
4987   ENTER(AL_surfxml_link); pushbuffer(0);
4988   }
4989         YY_BREAK
4990
4991 case 214:
4992 /* rule 214 can match eol */
4993 YY_RULE_SETUP
4994 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_id);
4995         YY_BREAK
4996 case 215:
4997 /* rule 215 can match eol */
4998 YY_RULE_SETUP
4999 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_id);
5000         YY_BREAK
5001 case 216:
5002 /* rule 216 can match eol */
5003 YY_RULE_SETUP
5004 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth);
5005         YY_BREAK
5006 case 217:
5007 /* rule 217 can match eol */
5008 YY_RULE_SETUP
5009 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth);
5010         YY_BREAK
5011 case 218:
5012 /* rule 218 can match eol */
5013 YY_RULE_SETUP
5014 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth_file);
5015         YY_BREAK
5016 case 219:
5017 /* rule 219 can match eol */
5018 YY_RULE_SETUP
5019 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth_file);
5020         YY_BREAK
5021 case 220:
5022 /* rule 220 can match eol */
5023 YY_RULE_SETUP
5024 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency);
5025         YY_BREAK
5026 case 221:
5027 /* rule 221 can match eol */
5028 YY_RULE_SETUP
5029 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency);
5030         YY_BREAK
5031 case 222:
5032 /* rule 222 can match eol */
5033 YY_RULE_SETUP
5034 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency_file);
5035         YY_BREAK
5036 case 223:
5037 /* rule 223 can match eol */
5038 YY_RULE_SETUP
5039 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency_file);
5040         YY_BREAK
5041 case 224:
5042 /* rule 224 can match eol */
5043 case 225:
5044 /* rule 225 can match eol */
5045 YY_RULE_SETUP
5046 A_surfxml_link_state = A_surfxml_link_state_ON;
5047         YY_BREAK
5048 case 226:
5049 /* rule 226 can match eol */
5050 case 227:
5051 /* rule 227 can match eol */
5052 YY_RULE_SETUP
5053 A_surfxml_link_state = A_surfxml_link_state_OFF;
5054         YY_BREAK
5055 case 228:
5056 /* rule 228 can match eol */
5057 YY_RULE_SETUP
5058 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_state_file);
5059         YY_BREAK
5060 case 229:
5061 /* rule 229 can match eol */
5062 YY_RULE_SETUP
5063 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_state_file);
5064         YY_BREAK
5065 case 230:
5066 /* rule 230 can match eol */
5067 case 231:
5068 /* rule 231 can match eol */
5069 YY_RULE_SETUP
5070 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
5071         YY_BREAK
5072 case 232:
5073 /* rule 232 can match eol */
5074 case 233:
5075 /* rule 233 can match eol */
5076 YY_RULE_SETUP
5077 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FATPIPE;
5078         YY_BREAK
5079 case 234:
5080 YY_RULE_SETUP
5081 {
5082   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
5083   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
5084   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
5085  }
5086         YY_BREAK
5087 case 235:
5088 YY_RULE_SETUP
5089 {
5090   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
5091   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
5092   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
5093   switch (YY_START) {
5094    case S_surfxml_foreach: case S_surfxml_foreach_1: SET(E_surfxml_foreach); break;
5095    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
5096   }
5097  }
5098         YY_BREAK
5099 case 236:
5100 YY_RULE_SETUP
5101 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
5102         YY_BREAK
5103 case 237:
5104 YY_RULE_SETUP
5105 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
5106         YY_BREAK
5107 case YY_STATE_EOF(AL_surfxml_link):
5108 FAIL("EOF in attribute list of `link' element.");
5109         YY_BREAK
5110
5111 case 238:
5112 /* rule 238 can match eol */
5113 YY_RULE_SETUP
5114 {
5115   LEAVE;
5116   ETag_surfxml_link();
5117   popbuffer(); /* attribute */
5118   switch (YY_START) {
5119    case S_surfxml_foreach: case S_surfxml_foreach_1: SET(E_surfxml_foreach); break;
5120    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
5121   }
5122  }
5123         YY_BREAK
5124 case 239:
5125 /* rule 239 can match eol */
5126 YY_RULE_SETUP
5127 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
5128         YY_BREAK
5129 case 240:
5130 YY_RULE_SETUP
5131 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
5132         YY_BREAK
5133 case YY_STATE_EOF(S_surfxml_link_2):
5134 case YY_STATE_EOF(E_surfxml_link):
5135 case YY_STATE_EOF(S_surfxml_link):
5136 FAIL("Premature EOF: `</link>' expected.");
5137         YY_BREAK
5138
5139 case 241:
5140 /* rule 241 can match eol */
5141 YY_RULE_SETUP
5142 FAIL("Starting tag <route:multi> is not allowed here.");
5143         YY_BREAK
5144 case 242:
5145 /* rule 242 can match eol */
5146 YY_RULE_SETUP
5147 {
5148   AX_surfxml_route_c_multi_src = 0;
5149   AX_surfxml_route_c_multi_dst = 0;
5150   AX_surfxml_route_c_multi_action = A_surfxml_route_c_multi_action_POSTPEND;
5151   AX_surfxml_route_c_multi_symmetric = A_surfxml_route_c_multi_symmetric_YES;
5152   ENTER(AL_surfxml_route_c_multi); pushbuffer(0);
5153   }
5154         YY_BREAK
5155
5156 case 243:
5157 /* rule 243 can match eol */
5158 YY_RULE_SETUP
5159 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_c_multi_src);
5160         YY_BREAK
5161 case 244:
5162 /* rule 244 can match eol */
5163 YY_RULE_SETUP
5164 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_c_multi_src);
5165         YY_BREAK
5166 case 245:
5167 /* rule 245 can match eol */
5168 YY_RULE_SETUP
5169 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_c_multi_dst);
5170         YY_BREAK
5171 case 246:
5172 /* rule 246 can match eol */
5173 YY_RULE_SETUP
5174 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_c_multi_dst);
5175         YY_BREAK
5176 case 247:
5177 /* rule 247 can match eol */
5178 case 248:
5179 /* rule 248 can match eol */
5180 YY_RULE_SETUP
5181 A_surfxml_route_c_multi_action = A_surfxml_route_c_multi_action_POSTPEND;
5182         YY_BREAK
5183 case 249:
5184 /* rule 249 can match eol */
5185 case 250:
5186 /* rule 250 can match eol */
5187 YY_RULE_SETUP
5188 A_surfxml_route_c_multi_action = A_surfxml_route_c_multi_action_PREPEND;
5189         YY_BREAK
5190 case 251:
5191 /* rule 251 can match eol */
5192 case 252:
5193 /* rule 252 can match eol */
5194 YY_RULE_SETUP
5195 A_surfxml_route_c_multi_action = A_surfxml_route_c_multi_action_OVERRIDE;
5196         YY_BREAK
5197 case 253:
5198 /* rule 253 can match eol */
5199 case 254:
5200 /* rule 254 can match eol */
5201 YY_RULE_SETUP
5202 A_surfxml_route_c_multi_symmetric = A_surfxml_route_c_multi_symmetric_YES;
5203         YY_BREAK
5204 case 255:
5205 /* rule 255 can match eol */
5206 case 256:
5207 /* rule 256 can match eol */
5208 YY_RULE_SETUP
5209 A_surfxml_route_c_multi_symmetric = A_surfxml_route_c_multi_symmetric_NO;
5210         YY_BREAK
5211 case 257:
5212 YY_RULE_SETUP
5213 {
5214   if (!AX_surfxml_route_c_multi_src) FAIL("Required attribute `src' not set for `route:multi' element.");
5215   if (!AX_surfxml_route_c_multi_dst) FAIL("Required attribute `dst' not set for `route:multi' element.");
5216   LEAVE; STag_surfxml_route_c_multi();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route_c_multi);
5217  }
5218         YY_BREAK
5219 case 258:
5220 YY_RULE_SETUP
5221 FAIL("`route:multi' element cannot be empty.");
5222         YY_BREAK
5223 case 259:
5224 YY_RULE_SETUP
5225 FAIL("Unexpected character `%c' in attribute list of route:multi element.", surf_parse_text[0]);
5226         YY_BREAK
5227 case 260:
5228 YY_RULE_SETUP
5229 FAIL("Bad attribute `%s' in `route:multi' element start tag.",surf_parse_text);
5230         YY_BREAK
5231 case YY_STATE_EOF(AL_surfxml_route_c_multi):
5232 FAIL("EOF in attribute list of `route:multi' element.");
5233         YY_BREAK
5234
5235 case 261:
5236 /* rule 261 can match eol */
5237 YY_RULE_SETUP
5238 {
5239   LEAVE;
5240   ETag_surfxml_route_c_multi();
5241   popbuffer(); /* attribute */
5242   switch (YY_START) {
5243    case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_4: SET(S_surfxml_platform_5); break;
5244   }
5245  }
5246         YY_BREAK
5247 case 262:
5248 /* rule 262 can match eol */
5249 YY_RULE_SETUP
5250 FAIL("Unexpected end-tag `%s': `</route:multi>' expected.",surf_parse_text);
5251         YY_BREAK
5252 case 263:
5253 YY_RULE_SETUP
5254 FAIL("Unexpected character `%c': `</route:multi>' expected.",surf_parse_text[0]);
5255         YY_BREAK
5256 case YY_STATE_EOF(S_surfxml_route_c_multi_2):
5257 case YY_STATE_EOF(E_surfxml_route_c_multi):
5258 FAIL("Premature EOF: `</route:multi>' expected.");
5259         YY_BREAK
5260
5261 case 264:
5262 /* rule 264 can match eol */
5263 YY_RULE_SETUP
5264 FAIL("Starting tag <route> is not allowed here.");
5265         YY_BREAK
5266 case 265:
5267 /* rule 265 can match eol */
5268 YY_RULE_SETUP
5269 {
5270   AX_surfxml_route_src = 0;
5271   AX_surfxml_route_dst = 0;
5272   AX_surfxml_route_impact_on_src = 94;
5273   AX_surfxml_route_impact_on_dst = 98;
5274   AX_surfxml_route_impact_on_src_with_other_recv = 102;
5275   AX_surfxml_route_impact_on_dst_with_other_send = 106;
5276   AX_surfxml_route_action = A_surfxml_route_action_POSTPEND;
5277   ENTER(AL_surfxml_route); pushbuffer(0);
5278   }
5279         YY_BREAK
5280
5281 case 266:
5282 /* rule 266 can match eol */
5283 YY_RULE_SETUP
5284 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_src);
5285         YY_BREAK
5286 case 267:
5287 /* rule 267 can match eol */
5288 YY_RULE_SETUP
5289 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_src);
5290         YY_BREAK
5291 case 268:
5292 /* rule 268 can match eol */
5293 YY_RULE_SETUP
5294 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_dst);
5295         YY_BREAK
5296 case 269:
5297 /* rule 269 can match eol */
5298 YY_RULE_SETUP
5299 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_dst);
5300         YY_BREAK
5301 case 270:
5302 /* rule 270 can match eol */
5303 YY_RULE_SETUP
5304 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_impact_on_src);
5305         YY_BREAK
5306 case 271:
5307 /* rule 271 can match eol */
5308 YY_RULE_SETUP
5309 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_impact_on_src);
5310         YY_BREAK
5311 case 272:
5312 /* rule 272 can match eol */
5313 YY_RULE_SETUP
5314 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_impact_on_dst);
5315         YY_BREAK
5316 case 273:
5317 /* rule 273 can match eol */
5318 YY_RULE_SETUP
5319 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_impact_on_dst);
5320         YY_BREAK
5321 case 274:
5322 /* rule 274 can match eol */
5323 YY_RULE_SETUP
5324 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_impact_on_src_with_other_recv);
5325         YY_BREAK
5326 case 275:
5327 /* rule 275 can match eol */
5328 YY_RULE_SETUP
5329 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_impact_on_src_with_other_recv);
5330         YY_BREAK
5331 case 276:
5332 /* rule 276 can match eol */
5333 YY_RULE_SETUP
5334 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_impact_on_dst_with_other_send);
5335         YY_BREAK
5336 case 277:
5337 /* rule 277 can match eol */
5338 YY_RULE_SETUP
5339 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_impact_on_dst_with_other_send);
5340         YY_BREAK
5341 case 278:
5342 /* rule 278 can match eol */
5343 case 279:
5344 /* rule 279 can match eol */
5345 YY_RULE_SETUP
5346 A_surfxml_route_action = A_surfxml_route_action_POSTPEND;
5347         YY_BREAK
5348 case 280:
5349 /* rule 280 can match eol */
5350 case 281:
5351 /* rule 281 can match eol */
5352 YY_RULE_SETUP
5353 A_surfxml_route_action = A_surfxml_route_action_PREPEND;
5354         YY_BREAK
5355 case 282:
5356 /* rule 282 can match eol */
5357 case 283:
5358 /* rule 283 can match eol */
5359 YY_RULE_SETUP
5360 A_surfxml_route_action = A_surfxml_route_action_OVERRIDE;
5361         YY_BREAK
5362 case 284:
5363 YY_RULE_SETUP
5364 {
5365   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
5366   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
5367   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
5368  }
5369         YY_BREAK
5370 case 285:
5371 YY_RULE_SETUP
5372 {
5373   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
5374   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
5375   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
5376   switch (YY_START) {
5377    case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_4: SET(S_surfxml_platform_5); break;
5378   }
5379  }
5380         YY_BREAK
5381 case 286:
5382 YY_RULE_SETUP
5383 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
5384         YY_BREAK
5385 case 287:
5386 YY_RULE_SETUP
5387 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
5388         YY_BREAK
5389 case YY_STATE_EOF(AL_surfxml_route):
5390 FAIL("EOF in attribute list of `route' element.");
5391         YY_BREAK
5392
5393 case 288:
5394 /* rule 288 can match eol */
5395 YY_RULE_SETUP
5396 {
5397   LEAVE;
5398   ETag_surfxml_route();
5399   popbuffer(); /* attribute */
5400   switch (YY_START) {
5401    case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_4: SET(S_surfxml_platform_5); break;
5402   }
5403  }
5404         YY_BREAK
5405 case 289:
5406 /* rule 289 can match eol */
5407 YY_RULE_SETUP
5408 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
5409         YY_BREAK
5410 case 290:
5411 YY_RULE_SETUP
5412 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
5413         YY_BREAK
5414 case YY_STATE_EOF(S_surfxml_route):
5415 case YY_STATE_EOF(S_surfxml_route_2):
5416 case YY_STATE_EOF(E_surfxml_route):
5417 FAIL("Premature EOF: `</route>' expected.");
5418         YY_BREAK
5419
5420 case 291:
5421 /* rule 291 can match eol */
5422 YY_RULE_SETUP
5423 FAIL("Starting tag <link:ctn> is not allowed here.");
5424         YY_BREAK
5425 case 292:
5426 /* rule 292 can match eol */
5427 YY_RULE_SETUP
5428 {
5429   AX_surfxml_link_c_ctn_id = 0;
5430   ENTER(AL_surfxml_link_c_ctn); pushbuffer(0);
5431   }
5432         YY_BREAK
5433
5434 case 293:
5435 /* rule 293 can match eol */
5436 YY_RULE_SETUP
5437 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_c_ctn_id);
5438         YY_BREAK
5439 case 294:
5440 /* rule 294 can match eol */
5441 YY_RULE_SETUP
5442 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_c_ctn_id);
5443         YY_BREAK
5444 case 295:
5445 YY_RULE_SETUP
5446 {
5447   if (!AX_surfxml_link_c_ctn_id) FAIL("Required attribute `id' not set for `link:ctn' element.");
5448   LEAVE; STag_surfxml_link_c_ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link_c_ctn);
5449  }
5450         YY_BREAK
5451 case 296:
5452 YY_RULE_SETUP
5453 {
5454   if (!AX_surfxml_link_c_ctn_id) FAIL("Required attribute `id' not set for `link:ctn' element.");
5455   LEAVE; STag_surfxml_link_c_ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link_c_ctn(); popbuffer(); /* attribute */
5456   switch (YY_START) {
5457    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
5458    case S_surfxml_route_c_multi_2: case S_surfxml_route_c_multi_1: case S_surfxml_route_c_multi: SET(S_surfxml_route_c_multi_2); break;
5459   }
5460  }
5461         YY_BREAK
5462 case 297:
5463 YY_RULE_SETUP
5464 FAIL("Unexpected character `%c' in attribute list of link:ctn element.", surf_parse_text[0]);
5465         YY_BREAK
5466 case 298:
5467 YY_RULE_SETUP
5468 FAIL("Bad attribute `%s' in `link:ctn' element start tag.",surf_parse_text);
5469         YY_BREAK
5470 case YY_STATE_EOF(AL_surfxml_link_c_ctn):
5471 FAIL("EOF in attribute list of `link:ctn' element.");
5472         YY_BREAK
5473
5474 case 299:
5475 /* rule 299 can match eol */
5476 YY_RULE_SETUP
5477 {
5478   LEAVE;
5479   ETag_surfxml_link_c_ctn();
5480   popbuffer(); /* attribute */
5481   switch (YY_START) {
5482    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
5483    case S_surfxml_route_c_multi_2: case S_surfxml_route_c_multi_1: case S_surfxml_route_c_multi: SET(S_surfxml_route_c_multi_2); break;
5484   }
5485  }
5486         YY_BREAK
5487 case 300:
5488 /* rule 300 can match eol */
5489 YY_RULE_SETUP
5490 FAIL("Unexpected end-tag `%s': `</link:ctn>' expected.",surf_parse_text);
5491         YY_BREAK
5492 case 301:
5493 YY_RULE_SETUP
5494 FAIL("Unexpected character `%c': `</link:ctn>' expected.",surf_parse_text[0]);
5495         YY_BREAK
5496 case YY_STATE_EOF(E_surfxml_link_c_ctn):
5497 FAIL("Premature EOF: `</link:ctn>' expected.");
5498         YY_BREAK
5499
5500 case 302:
5501 /* rule 302 can match eol */
5502 YY_RULE_SETUP
5503 FAIL("Starting tag <process> is not allowed here.");
5504         YY_BREAK
5505 case 303:
5506 /* rule 303 can match eol */
5507 YY_RULE_SETUP
5508 {
5509   AX_surfxml_process_host = 0;
5510   AX_surfxml_process_function = 0;
5511   AX_surfxml_process_start_time = 110;
5512   AX_surfxml_process_kill_time = 115;
5513   ENTER(AL_surfxml_process); pushbuffer(0);
5514   }
5515         YY_BREAK
5516
5517 case 304:
5518 /* rule 304 can match eol */
5519 YY_RULE_SETUP
5520 ENTER(VALUE1); BUFFERSET(AX_surfxml_process_host);
5521         YY_BREAK
5522 case 305:
5523 /* rule 305 can match eol */
5524 YY_RULE_SETUP
5525 ENTER(VALUE2); BUFFERSET(AX_surfxml_process_host);
5526         YY_BREAK
5527 case 306:
5528 /* rule 306 can match eol */
5529 YY_RULE_SETUP
5530 ENTER(VALUE1); BUFFERSET(AX_surfxml_process_function);
5531         YY_BREAK
5532 case 307:
5533 /* rule 307 can match eol */
5534 YY_RULE_SETUP
5535 ENTER(VALUE2); BUFFERSET(AX_surfxml_process_function);
5536         YY_BREAK
5537 case 308:
5538 /* rule 308 can match eol */
5539 YY_RULE_SETUP
5540 ENTER(VALUE1); BUFFERSET(AX_surfxml_process_start_time);
5541         YY_BREAK
5542 case 309:
5543 /* rule 309 can match eol */
5544 YY_RULE_SETUP
5545 ENTER(VALUE2); BUFFERSET(AX_surfxml_process_start_time);
5546         YY_BREAK
5547 case 310:
5548 /* rule 310 can match eol */
5549 YY_RULE_SETUP
5550 ENTER(VALUE1); BUFFERSET(AX_surfxml_process_kill_time);
5551         YY_BREAK
5552 case 311:
5553 /* rule 311 can match eol */
5554 YY_RULE_SETUP
5555 ENTER(VALUE2); BUFFERSET(AX_surfxml_process_kill_time);
5556         YY_BREAK
5557 case 312:
5558 YY_RULE_SETUP
5559 {
5560   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
5561   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
5562   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
5563  }
5564         YY_BREAK
5565 case 313:
5566 YY_RULE_SETUP
5567 {
5568   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
5569   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
5570   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
5571   switch (YY_START) {
5572    case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_4: SET(S_surfxml_platform_5); break;
5573   }
5574  }
5575         YY_BREAK
5576 case 314:
5577 YY_RULE_SETUP
5578 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
5579         YY_BREAK
5580 case 315:
5581 YY_RULE_SETUP
5582 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
5583         YY_BREAK
5584 case YY_STATE_EOF(AL_surfxml_process):
5585 FAIL("EOF in attribute list of `process' element.");
5586         YY_BREAK
5587
5588 case 316:
5589 /* rule 316 can match eol */
5590 YY_RULE_SETUP
5591 {
5592   LEAVE;
5593   ETag_surfxml_process();
5594   popbuffer(); /* attribute */
5595   switch (YY_START) {
5596    case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_4: SET(S_surfxml_platform_5); break;
5597   }
5598  }
5599         YY_BREAK
5600 case 317:
5601 /* rule 317 can match eol */
5602 YY_RULE_SETUP
5603 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
5604         YY_BREAK
5605 case 318:
5606 YY_RULE_SETUP
5607 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
5608         YY_BREAK
5609 case YY_STATE_EOF(S_surfxml_process):
5610 case YY_STATE_EOF(E_surfxml_process):
5611 case YY_STATE_EOF(S_surfxml_process_2):
5612 FAIL("Premature EOF: `</process>' expected.");
5613         YY_BREAK
5614
5615 case 319:
5616 /* rule 319 can match eol */
5617 YY_RULE_SETUP
5618 FAIL("Starting tag <argument> is not allowed here.");
5619         YY_BREAK
5620 case 320:
5621 /* rule 320 can match eol */
5622 YY_RULE_SETUP
5623 {
5624   AX_surfxml_argument_value = 0;
5625   ENTER(AL_surfxml_argument); pushbuffer(0);
5626   }
5627         YY_BREAK
5628
5629 case 321:
5630 /* rule 321 can match eol */
5631 YY_RULE_SETUP
5632 ENTER(VALUE1); BUFFERSET(AX_surfxml_argument_value);
5633         YY_BREAK
5634 case 322:
5635 /* rule 322 can match eol */
5636 YY_RULE_SETUP
5637 ENTER(VALUE2); BUFFERSET(AX_surfxml_argument_value);
5638         YY_BREAK
5639 case 323:
5640 YY_RULE_SETUP
5641 {
5642   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
5643   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
5644  }
5645         YY_BREAK
5646 case 324:
5647 YY_RULE_SETUP
5648 {
5649   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
5650   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
5651   switch (YY_START) {
5652    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
5653   }
5654  }
5655         YY_BREAK
5656 case 325:
5657 YY_RULE_SETUP
5658 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
5659         YY_BREAK
5660 case 326:
5661 YY_RULE_SETUP
5662 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
5663         YY_BREAK
5664 case YY_STATE_EOF(AL_surfxml_argument):
5665 FAIL("EOF in attribute list of `argument' element.");
5666         YY_BREAK
5667
5668 case 327:
5669 /* rule 327 can match eol */
5670 YY_RULE_SETUP
5671 {
5672   LEAVE;
5673   ETag_surfxml_argument();
5674   popbuffer(); /* attribute */
5675   switch (YY_START) {
5676    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
5677   }
5678  }
5679         YY_BREAK
5680 case 328:
5681 /* rule 328 can match eol */
5682 YY_RULE_SETUP
5683 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
5684         YY_BREAK
5685 case 329:
5686 YY_RULE_SETUP
5687 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
5688         YY_BREAK
5689 case YY_STATE_EOF(E_surfxml_argument):
5690 FAIL("Premature EOF: `</argument>' expected.");
5691         YY_BREAK
5692
5693 /* EPILOG: after the root element. */
5694
5695 case 330:
5696 YY_RULE_SETUP
5697 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
5698         YY_BREAK
5699 case YY_STATE_EOF(EPILOG):
5700 SUCCEED;
5701         YY_BREAK
5702
5703 /* CHARACTER DATA. */
5704
5705 /* Non-defined standard entities... */
5706 case 331:
5707 YY_RULE_SETUP
5708 BUFFERPUTC('&');
5709         YY_BREAK
5710 case 332:
5711 YY_RULE_SETUP
5712 BUFFERPUTC('<');
5713         YY_BREAK
5714 case 333:
5715 YY_RULE_SETUP
5716 BUFFERPUTC('>');
5717         YY_BREAK
5718 case 334:
5719 YY_RULE_SETUP
5720 BUFFERPUTC('\'');
5721         YY_BREAK
5722 case 335:
5723 YY_RULE_SETUP
5724 BUFFERPUTC('"');
5725         YY_BREAK
5726 /* Character entities. */
5727 case 336:
5728 YY_RULE_SETUP
5729 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
5730         YY_BREAK
5731 case 337:
5732 YY_RULE_SETUP
5733 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
5734         YY_BREAK
5735
5736 case 338:
5737 /* rule 338 can match eol */
5738 case 339:
5739 /* rule 339 can match eol */
5740 case 340:
5741 /* rule 340 can match eol */
5742 case 341:
5743 /* rule 341 can match eol */
5744 YY_RULE_SETUP
5745 BUFFERPUTC('\n');
5746         YY_BREAK
5747
5748 case 342:
5749 YY_RULE_SETUP
5750 ENTER(CDATA);
5751         YY_BREAK
5752 case 343:
5753 YY_RULE_SETUP
5754 FAIL("Unexpected `]""]>' in character data.");
5755         YY_BREAK
5756
5757 case 344:
5758 YY_RULE_SETUP
5759 BUFFERDONE; LEAVE;
5760         YY_BREAK
5761 case YY_STATE_EOF(VALUE1):
5762 FAIL("EOF in literal (\"'\" expected).");
5763         YY_BREAK
5764
5765 case 345:
5766 YY_RULE_SETUP
5767 BUFFERDONE; LEAVE;
5768         YY_BREAK
5769 case YY_STATE_EOF(VALUE2):
5770 FAIL("EOF in literal (`\"' expected).");
5771         YY_BREAK
5772
5773 case 346:
5774 /* rule 346 can match eol */
5775 YY_RULE_SETUP
5776 BUFFERPUTC(surf_parse_text[0]);
5777         YY_BREAK
5778 case 347:
5779 YY_RULE_SETUP
5780 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
5781         YY_BREAK
5782
5783 case 348:
5784 YY_RULE_SETUP
5785 LEAVE;
5786         YY_BREAK
5787 /* "]""]"               BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
5788 case 349:
5789 YY_RULE_SETUP
5790 BUFFERPUTC(surf_parse_text[0]);
5791         YY_BREAK
5792 case YY_STATE_EOF(CDATA):
5793 FAIL("EOF in CDATA section.");
5794         YY_BREAK
5795
5796 /* Impossible rules to avoid warnings from flex(1). */
5797 /* Ideally, this should be replaced by code in flexml.pl that
5798     generates just the states not covered by other rules. */
5799
5800 case 350:
5801 /* rule 350 can match eol */
5802 YY_RULE_SETUP
5803 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
5804         YY_BREAK
5805
5806 case 351:
5807 YY_RULE_SETUP
5808 ECHO;
5809         YY_BREAK
5810 case YY_STATE_EOF(INITIAL):
5811 case YY_STATE_EOF(ROOT_surfxml_platform):
5812 case YY_STATE_EOF(S_surfxml_platform_2):
5813 case YY_STATE_EOF(S_surfxml_platform_4):
5814 case YY_STATE_EOF(S_surfxml_random_1):
5815 case YY_STATE_EOF(S_surfxml_foreach):
5816 case YY_STATE_EOF(S_surfxml_foreach_1):
5817 case YY_STATE_EOF(S_surfxml_host_1):
5818 case YY_STATE_EOF(S_surfxml_link_1):
5819 case YY_STATE_EOF(S_surfxml_route_c_multi):
5820 case YY_STATE_EOF(S_surfxml_route_c_multi_1):
5821 case YY_STATE_EOF(S_surfxml_route_1):
5822 case YY_STATE_EOF(S_surfxml_process_1):
5823 case YY_STATE_EOF(IMPOSSIBLE):
5824         yyterminate();
5825
5826         case YY_END_OF_BUFFER:
5827                 {
5828                 /* Amount of text matched not including the EOB char. */
5829                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
5830
5831                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
5832                 *yy_cp = (yy_hold_char);
5833                 YY_RESTORE_YY_MORE_OFFSET
5834
5835                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
5836                         {
5837                         /* We're scanning a new file or input source.  It's
5838                          * possible that this happened because the user
5839                          * just pointed surf_parse_in at a new source and called
5840                          * surf_parse_lex().  If so, then we have to assure
5841                          * consistency between YY_CURRENT_BUFFER and our
5842                          * globals.  Here is the right place to do so, because
5843                          * this is the first action (other than possibly a
5844                          * back-up) that will match for the new input source.
5845                          */
5846                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
5847                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
5848                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
5849                         }
5850
5851                 /* Note that here we test for yy_c_buf_p "<=" to the position
5852                  * of the first EOB in the buffer, since yy_c_buf_p will
5853                  * already have been incremented past the NUL character
5854                  * (since all states make transitions on EOB to the
5855                  * end-of-buffer state).  Contrast this with the test
5856                  * in input().
5857                  */
5858                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
5859                         { /* This was really a NUL. */
5860                         yy_state_type yy_next_state;
5861
5862                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
5863
5864                         yy_current_state = yy_get_previous_state(  );
5865
5866                         /* Okay, we're now positioned to make the NUL
5867                          * transition.  We couldn't have
5868                          * yy_get_previous_state() go ahead and do it
5869                          * for us because it doesn't know how to deal
5870                          * with the possibility of jamming (and we don't
5871                          * want to build jamming into it because then it
5872                          * will run more slowly).
5873                          */
5874
5875                         yy_next_state = yy_try_NUL_trans( yy_current_state );
5876
5877                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
5878
5879                         if ( yy_next_state )
5880                                 {
5881                                 /* Consume the NUL. */
5882                                 yy_cp = ++(yy_c_buf_p);
5883                                 yy_current_state = yy_next_state;
5884                                 goto yy_match;
5885                                 }
5886
5887                         else
5888                                 {
5889                                 yy_cp = (yy_c_buf_p);
5890                                 goto yy_find_action;
5891                                 }
5892                         }
5893
5894                 else switch ( yy_get_next_buffer(  ) )
5895                         {
5896                         case EOB_ACT_END_OF_FILE:
5897                                 {
5898                                 (yy_did_buffer_switch_on_eof) = 0;
5899
5900                                 if ( surf_parse_wrap( ) )
5901                                         {
5902                                         /* Note: because we've taken care in
5903                                          * yy_get_next_buffer() to have set up
5904                                          * surf_parse_text, we can now set up
5905                                          * yy_c_buf_p so that if some total
5906                                          * hoser (like flex itself) wants to
5907                                          * call the scanner after we return the
5908                                          * YY_NULL, it'll still work - another
5909                                          * YY_NULL will get returned.
5910                                          */
5911                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
5912
5913                                         yy_act = YY_STATE_EOF(YY_START);
5914                                         goto do_action;
5915                                         }
5916
5917                                 else
5918                                         {
5919                                         if ( ! (yy_did_buffer_switch_on_eof) )
5920                                                 YY_NEW_FILE;
5921                                         }
5922                                 break;
5923                                 }
5924
5925                         case EOB_ACT_CONTINUE_SCAN:
5926                                 (yy_c_buf_p) =
5927                                         (yytext_ptr) + yy_amount_of_matched_text;
5928
5929                                 yy_current_state = yy_get_previous_state(  );
5930
5931                                 yy_cp = (yy_c_buf_p);
5932                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
5933                                 goto yy_match;
5934
5935                         case EOB_ACT_LAST_MATCH:
5936                                 (yy_c_buf_p) =
5937                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
5938
5939                                 yy_current_state = yy_get_previous_state(  );
5940
5941                                 yy_cp = (yy_c_buf_p);
5942                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
5943                                 goto yy_find_action;
5944                         }
5945                 break;
5946                 }
5947
5948         default:
5949                 YY_FATAL_ERROR(
5950                         "fatal flex scanner internal error--no action found" );
5951         } /* end of action switch */
5952                 } /* end of scanning one token */
5953 } /* end of surf_parse_lex */
5954
5955 /* yy_get_next_buffer - try to read in a new buffer
5956  *
5957  * Returns a code representing an action:
5958  *      EOB_ACT_LAST_MATCH -
5959  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
5960  *      EOB_ACT_END_OF_FILE - end of file
5961  */
5962 static int yy_get_next_buffer (void)
5963 {
5964         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
5965         register char *source = (yytext_ptr);
5966         register int number_to_move, i;
5967         int ret_val;
5968
5969         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
5970                 YY_FATAL_ERROR(
5971                 "fatal flex scanner internal error--end of buffer missed" );
5972
5973         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
5974                 { /* Don't try to fill the buffer, so this is an EOF. */
5975                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
5976                         {
5977                         /* We matched a single character, the EOB, so
5978                          * treat this as a final EOF.
5979                          */
5980                         return EOB_ACT_END_OF_FILE;
5981                         }
5982
5983                 else
5984                         {
5985                         /* We matched some text prior to the EOB, first
5986                          * process it.
5987                          */
5988                         return EOB_ACT_LAST_MATCH;
5989                         }
5990                 }
5991
5992         /* Try to read more data. */
5993
5994         /* First move last chars to start of buffer. */
5995         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
5996
5997         for ( i = 0; i < number_to_move; ++i )
5998                 *(dest++) = *(source++);
5999
6000         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
6001                 /* don't do the read, it's not guaranteed to return an EOF,
6002                  * just force an EOF
6003                  */
6004                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
6005
6006         else
6007                 {
6008                         int num_to_read =
6009                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
6010
6011                 while ( num_to_read <= 0 )
6012                         { /* Not enough room in the buffer - grow it. */
6013
6014                         /* just a shorter name for the current buffer */
6015                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
6016
6017                         int yy_c_buf_p_offset =
6018                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
6019
6020                         if ( b->yy_is_our_buffer )
6021                                 {
6022                                 int new_size = b->yy_buf_size * 2;
6023
6024                                 if ( new_size <= 0 )
6025                                         b->yy_buf_size += b->yy_buf_size / 8;
6026                                 else
6027                                         b->yy_buf_size *= 2;
6028
6029                                 b->yy_ch_buf = (char *)
6030                                         /* Include room in for 2 EOB chars. */
6031                                         surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
6032                                 }
6033                         else
6034                                 /* Can't grow it, we don't own it. */
6035                                 b->yy_ch_buf = 0;
6036
6037                         if ( ! b->yy_ch_buf )
6038                                 YY_FATAL_ERROR(
6039                                 "fatal error - scanner input buffer overflow" );
6040
6041                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
6042
6043                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
6044                                                 number_to_move - 1;
6045
6046                         }
6047
6048                 if ( num_to_read > YY_READ_BUF_SIZE )
6049                         num_to_read = YY_READ_BUF_SIZE;
6050
6051                 /* Read in more data. */
6052                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
6053                         (yy_n_chars), (size_t) num_to_read );
6054
6055                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
6056                 }
6057
6058         if ( (yy_n_chars) == 0 )
6059                 {
6060                 if ( number_to_move == YY_MORE_ADJ )
6061                         {
6062                         ret_val = EOB_ACT_END_OF_FILE;
6063                         surf_parse_restart(surf_parse_in  );
6064                         }
6065
6066                 else
6067                         {
6068                         ret_val = EOB_ACT_LAST_MATCH;
6069                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
6070                                 YY_BUFFER_EOF_PENDING;
6071                         }
6072                 }
6073
6074         else
6075                 ret_val = EOB_ACT_CONTINUE_SCAN;
6076
6077         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
6078                 /* Extend the array by 50%, plus the number we really need. */
6079                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
6080                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) surf_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
6081                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
6082                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
6083         }
6084
6085         (yy_n_chars) += number_to_move;
6086         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
6087         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
6088
6089         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
6090
6091         return ret_val;
6092 }
6093
6094 /* yy_get_previous_state - get the state just before the EOB char was reached */
6095
6096     static yy_state_type yy_get_previous_state (void)
6097 {
6098         register yy_state_type yy_current_state;
6099         register char *yy_cp;
6100     
6101         yy_current_state = (yy_start);
6102
6103         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
6104                 {
6105                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
6106                 if ( yy_accept[yy_current_state] )
6107                         {
6108                         (yy_last_accepting_state) = yy_current_state;
6109                         (yy_last_accepting_cpos) = yy_cp;
6110                         }
6111                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
6112                         {
6113                         yy_current_state = (int) yy_def[yy_current_state];
6114                         if ( yy_current_state >= 2023 )
6115                                 yy_c = yy_meta[(unsigned int) yy_c];
6116                         }
6117                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
6118                 }
6119
6120         return yy_current_state;
6121 }
6122
6123 /* yy_try_NUL_trans - try to make a transition on the NUL character
6124  *
6125  * synopsis
6126  *      next_state = yy_try_NUL_trans( current_state );
6127  */
6128     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
6129 {
6130         register int yy_is_jam;
6131         register char *yy_cp = (yy_c_buf_p);
6132
6133         register YY_CHAR yy_c = 1;
6134         if ( yy_accept[yy_current_state] )
6135                 {
6136                 (yy_last_accepting_state) = yy_current_state;
6137                 (yy_last_accepting_cpos) = yy_cp;
6138                 }
6139         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
6140                 {
6141                 yy_current_state = (int) yy_def[yy_current_state];
6142                 if ( yy_current_state >= 2023 )
6143                         yy_c = yy_meta[(unsigned int) yy_c];
6144                 }
6145         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
6146         yy_is_jam = (yy_current_state == 2022);
6147
6148         return yy_is_jam ? 0 : yy_current_state;
6149 }
6150
6151 #ifndef YY_NO_INPUT
6152 #ifdef __cplusplus
6153     static int yyinput (void)
6154 #else
6155     static int input  (void)
6156 #endif
6157
6158 {
6159         int c;
6160     
6161         *(yy_c_buf_p) = (yy_hold_char);
6162
6163         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
6164                 {
6165                 /* yy_c_buf_p now points to the character we want to return.
6166                  * If this occurs *before* the EOB characters, then it's a
6167                  * valid NUL; if not, then we've hit the end of the buffer.
6168                  */
6169                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
6170                         /* This was really a NUL. */
6171                         *(yy_c_buf_p) = '\0';
6172
6173                 else
6174                         { /* need more input */
6175                         int offset = (yy_c_buf_p) - (yytext_ptr);
6176                         ++(yy_c_buf_p);
6177
6178                         switch ( yy_get_next_buffer(  ) )
6179                                 {
6180                                 case EOB_ACT_LAST_MATCH:
6181                                         /* This happens because yy_g_n_b()
6182                                          * sees that we've accumulated a
6183                                          * token and flags that we need to
6184                                          * try matching the token before
6185                                          * proceeding.  But for input(),
6186                                          * there's no matching to consider.
6187                                          * So convert the EOB_ACT_LAST_MATCH
6188                                          * to EOB_ACT_END_OF_FILE.
6189                                          */
6190
6191                                         /* Reset buffer status. */
6192                                         surf_parse_restart(surf_parse_in );
6193
6194                                         /*FALLTHROUGH*/
6195
6196                                 case EOB_ACT_END_OF_FILE:
6197                                         {
6198                                         if ( surf_parse_wrap( ) )
6199                                                 return EOF;
6200
6201                                         if ( ! (yy_did_buffer_switch_on_eof) )
6202                                                 YY_NEW_FILE;
6203 #ifdef __cplusplus
6204                                         return yyinput();
6205 #else
6206                                         return input();
6207 #endif
6208                                         }
6209
6210                                 case EOB_ACT_CONTINUE_SCAN:
6211                                         (yy_c_buf_p) = (yytext_ptr) + offset;
6212                                         break;
6213                                 }
6214                         }
6215                 }
6216
6217         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
6218         *(yy_c_buf_p) = '\0';   /* preserve surf_parse_text */
6219         (yy_hold_char) = *++(yy_c_buf_p);
6220
6221         if ( c == '\n' )
6222                    
6223     surf_parse_lineno++;
6224 ;
6225
6226         return c;
6227 }
6228 #endif  /* ifndef YY_NO_INPUT */
6229
6230 /** Immediately switch to a different input stream.
6231  * @param input_file A readable stream.
6232  * 
6233  * @note This function does not reset the start condition to @c INITIAL .
6234  */
6235     void surf_parse_restart  (FILE * input_file )
6236 {
6237     
6238         if ( ! YY_CURRENT_BUFFER ){
6239         surf_parse_ensure_buffer_stack ();
6240                 YY_CURRENT_BUFFER_LVALUE =
6241             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
6242         }
6243
6244         surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
6245         surf_parse__load_buffer_state( );
6246 }
6247
6248 /** Switch to a different input buffer.
6249  * @param new_buffer The new input buffer.
6250  * 
6251  */
6252     void surf_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
6253 {
6254     
6255         /* TODO. We should be able to replace this entire function body
6256          * with
6257          *              surf_parse_pop_buffer_state();
6258          *              surf_parse_push_buffer_state(new_buffer);
6259      */
6260         surf_parse_ensure_buffer_stack ();
6261         if ( YY_CURRENT_BUFFER == new_buffer )
6262                 return;
6263
6264         if ( YY_CURRENT_BUFFER )
6265                 {
6266                 /* Flush out information for old buffer. */
6267                 *(yy_c_buf_p) = (yy_hold_char);
6268                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
6269                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
6270                 }
6271
6272         YY_CURRENT_BUFFER_LVALUE = new_buffer;
6273         surf_parse__load_buffer_state( );
6274
6275         /* We don't actually know whether we did this switch during
6276          * EOF (surf_parse_wrap()) processing, but the only time this flag
6277          * is looked at is after surf_parse_wrap() is called, so it's safe
6278          * to go ahead and always set it.
6279          */
6280         (yy_did_buffer_switch_on_eof) = 1;
6281 }
6282
6283 static void surf_parse__load_buffer_state  (void)
6284 {
6285         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
6286         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
6287         surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
6288         (yy_hold_char) = *(yy_c_buf_p);
6289 }
6290
6291 /** Allocate and initialize an input buffer state.
6292  * @param file A readable stream.
6293  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
6294  * 
6295  * @return the allocated buffer state.
6296  */
6297     YY_BUFFER_STATE surf_parse__create_buffer  (FILE * file, int  size )
6298 {
6299         YY_BUFFER_STATE b;
6300     
6301         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
6302         if ( ! b )
6303                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
6304
6305         b->yy_buf_size = size;
6306
6307         /* yy_ch_buf has to be 2 characters longer than the size given because
6308          * we need to put in 2 end-of-buffer characters.
6309          */
6310         b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2  );
6311         if ( ! b->yy_ch_buf )
6312                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
6313
6314         b->yy_is_our_buffer = 1;
6315
6316         surf_parse__init_buffer(b,file );
6317
6318         return b;
6319 }
6320
6321 /** Destroy the buffer.
6322  * @param b a buffer created with surf_parse__create_buffer()
6323  * 
6324  */
6325     void surf_parse__delete_buffer (YY_BUFFER_STATE  b )
6326 {
6327     
6328         if ( ! b )
6329                 return;
6330
6331         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
6332                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
6333
6334         if ( b->yy_is_our_buffer )
6335                 surf_parse_free((void *) b->yy_ch_buf  );
6336
6337         surf_parse_free((void *) b  );
6338 }
6339
6340 #ifndef __cplusplus
6341 extern int isatty (int );
6342 #endif /* __cplusplus */
6343     
6344 /* Initializes or reinitializes a buffer.
6345  * This function is sometimes called more than once on the same buffer,
6346  * such as during a surf_parse_restart() or at EOF.
6347  */
6348     static void surf_parse__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
6349
6350 {
6351         int oerrno = errno;
6352     
6353         surf_parse__flush_buffer(b );
6354
6355         b->yy_input_file = file;
6356         b->yy_fill_buffer = 1;
6357
6358     /* If b is the current buffer, then surf_parse__init_buffer was _probably_
6359      * called from surf_parse_restart() or through yy_get_next_buffer.
6360      * In that case, we don't want to reset the lineno or column.
6361      */
6362     if (b != YY_CURRENT_BUFFER){
6363         b->yy_bs_lineno = 1;
6364         b->yy_bs_column = 0;
6365     }
6366
6367         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
6368     
6369         errno = oerrno;
6370 }
6371
6372 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
6373  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
6374  * 
6375  */
6376     void surf_parse__flush_buffer (YY_BUFFER_STATE  b )
6377 {
6378         if ( ! b )
6379                 return;
6380
6381         b->yy_n_chars = 0;
6382
6383         /* We always need two end-of-buffer characters.  The first causes
6384          * a transition to the end-of-buffer state.  The second causes
6385          * a jam in that state.
6386          */
6387         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
6388         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
6389
6390         b->yy_buf_pos = &b->yy_ch_buf[0];
6391
6392         b->yy_at_bol = 1;
6393         b->yy_buffer_status = YY_BUFFER_NEW;
6394
6395         if ( b == YY_CURRENT_BUFFER )
6396                 surf_parse__load_buffer_state( );
6397 }
6398
6399 /** Pushes the new state onto the stack. The new state becomes
6400  *  the current state. This function will allocate the stack
6401  *  if necessary.
6402  *  @param new_buffer The new state.
6403  *  
6404  */
6405 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
6406 {
6407         if (new_buffer == NULL)
6408                 return;
6409
6410         surf_parse_ensure_buffer_stack();
6411
6412         /* This block is copied from surf_parse__switch_to_buffer. */
6413         if ( YY_CURRENT_BUFFER )
6414                 {
6415                 /* Flush out information for old buffer. */
6416                 *(yy_c_buf_p) = (yy_hold_char);
6417                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
6418                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
6419                 }
6420
6421         /* Only push if top exists. Otherwise, replace top. */
6422         if (YY_CURRENT_BUFFER)
6423                 (yy_buffer_stack_top)++;
6424         YY_CURRENT_BUFFER_LVALUE = new_buffer;
6425
6426         /* copied from surf_parse__switch_to_buffer. */
6427         surf_parse__load_buffer_state( );
6428         (yy_did_buffer_switch_on_eof) = 1;
6429 }
6430
6431 /** Removes and deletes the top of the stack, if present.
6432  *  The next element becomes the new top.
6433  *  
6434  */
6435 void surf_parse_pop_buffer_state (void)
6436 {
6437         if (!YY_CURRENT_BUFFER)
6438                 return;
6439
6440         surf_parse__delete_buffer(YY_CURRENT_BUFFER );
6441         YY_CURRENT_BUFFER_LVALUE = NULL;
6442         if ((yy_buffer_stack_top) > 0)
6443                 --(yy_buffer_stack_top);
6444
6445         if (YY_CURRENT_BUFFER) {
6446                 surf_parse__load_buffer_state( );
6447                 (yy_did_buffer_switch_on_eof) = 1;
6448         }
6449 }
6450
6451 /* Allocates the stack if it does not exist.
6452  *  Guarantees space for at least one push.
6453  */
6454 static void surf_parse_ensure_buffer_stack (void)
6455 {
6456         int num_to_alloc;
6457     
6458         if (!(yy_buffer_stack)) {
6459
6460                 /* First allocation is just for 2 elements, since we don't know if this
6461                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
6462                  * immediate realloc on the next call.
6463          */
6464                 num_to_alloc = 1;
6465                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
6466                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
6467                                                                 );
6468                 if ( ! (yy_buffer_stack) )
6469                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
6470                                                                   
6471                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
6472                                 
6473                 (yy_buffer_stack_max) = num_to_alloc;
6474                 (yy_buffer_stack_top) = 0;
6475                 return;
6476         }
6477
6478         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
6479
6480                 /* Increase the buffer to prepare for a possible push. */
6481                 int grow_size = 8 /* arbitrary grow size */;
6482
6483                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
6484                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
6485                                                                 ((yy_buffer_stack),
6486                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
6487                                                                 );
6488                 if ( ! (yy_buffer_stack) )
6489                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
6490
6491                 /* zero only the new slots.*/
6492                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
6493                 (yy_buffer_stack_max) = num_to_alloc;
6494         }
6495 }
6496
6497 /** Setup the input buffer state to scan directly from a user-specified character buffer.
6498  * @param base the character buffer
6499  * @param size the size in bytes of the character buffer
6500  * 
6501  * @return the newly allocated buffer state object. 
6502  */
6503 YY_BUFFER_STATE surf_parse__scan_buffer  (char * base, yy_size_t  size )
6504 {
6505         YY_BUFFER_STATE b;
6506     
6507         if ( size < 2 ||
6508              base[size-2] != YY_END_OF_BUFFER_CHAR ||
6509              base[size-1] != YY_END_OF_BUFFER_CHAR )
6510                 /* They forgot to leave room for the EOB's. */
6511                 return 0;
6512
6513         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
6514         if ( ! b )
6515                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
6516
6517         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
6518         b->yy_buf_pos = b->yy_ch_buf = base;
6519         b->yy_is_our_buffer = 0;
6520         b->yy_input_file = 0;
6521         b->yy_n_chars = b->yy_buf_size;
6522         b->yy_is_interactive = 0;
6523         b->yy_at_bol = 1;
6524         b->yy_fill_buffer = 0;
6525         b->yy_buffer_status = YY_BUFFER_NEW;
6526
6527         surf_parse__switch_to_buffer(b  );
6528
6529         return b;
6530 }
6531
6532 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
6533  * scan from a @e copy of @a str.
6534  * @param yystr a NUL-terminated string to scan
6535  * 
6536  * @return the newly allocated buffer state object.
6537  * @note If you want to scan bytes that may contain NUL values, then use
6538  *       surf_parse__scan_bytes() instead.
6539  */
6540 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
6541 {
6542     
6543         return surf_parse__scan_bytes(yystr,strlen(yystr) );
6544 }
6545
6546 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
6547  * scan from a @e copy of @a bytes.
6548  * @param bytes the byte buffer to scan
6549  * @param len the number of bytes in the buffer pointed to by @a bytes.
6550  * 
6551  * @return the newly allocated buffer state object.
6552  */
6553 YY_BUFFER_STATE surf_parse__scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
6554 {
6555         YY_BUFFER_STATE b;
6556         char *buf;
6557         yy_size_t n;
6558         int i;
6559     
6560         /* Get memory for full buffer, including space for trailing EOB's. */
6561         n = _yybytes_len + 2;
6562         buf = (char *) surf_parse_alloc(n  );
6563         if ( ! buf )
6564                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
6565
6566         for ( i = 0; i < _yybytes_len; ++i )
6567                 buf[i] = yybytes[i];
6568
6569         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
6570
6571         b = surf_parse__scan_buffer(buf,n );
6572         if ( ! b )
6573                 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
6574
6575         /* It's okay to grow etc. this buffer, and we should throw it
6576          * away when we're done.
6577          */
6578         b->yy_is_our_buffer = 1;
6579
6580         return b;
6581 }
6582
6583     static void yy_push_state (int  new_state )
6584 {
6585         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
6586                 {
6587                 yy_size_t new_size;
6588
6589                 (yy_start_stack_depth) += YY_START_STACK_INCR;
6590                 new_size = (yy_start_stack_depth) * sizeof( int );
6591
6592                 if ( ! (yy_start_stack) )
6593                         (yy_start_stack) = (int *) surf_parse_alloc(new_size  );
6594
6595                 else
6596                         (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size  );
6597
6598                 if ( ! (yy_start_stack) )
6599                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
6600                 }
6601
6602         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
6603
6604         BEGIN(new_state);
6605 }
6606
6607     static void yy_pop_state  (void)
6608 {
6609         if ( --(yy_start_stack_ptr) < 0 )
6610                 YY_FATAL_ERROR( "start-condition stack underflow" );
6611
6612         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
6613 }
6614
6615 #ifndef YY_EXIT_FAILURE
6616 #define YY_EXIT_FAILURE 2
6617 #endif
6618
6619 static void yy_fatal_error (yyconst char* msg )
6620 {
6621         (void) fprintf( stderr, "%s\n", msg );
6622         exit( YY_EXIT_FAILURE );
6623 }
6624
6625 /* Redefine yyless() so it works in section 3 code. */
6626
6627 #undef yyless
6628 #define yyless(n) \
6629         do \
6630                 { \
6631                 /* Undo effects of setting up surf_parse_text. */ \
6632         int yyless_macro_arg = (n); \
6633         YY_LESS_LINENO(yyless_macro_arg);\
6634                 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
6635                 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
6636                 (yy_hold_char) = *(yy_c_buf_p); \
6637                 *(yy_c_buf_p) = '\0'; \
6638                 surf_parse_leng = yyless_macro_arg; \
6639                 } \
6640         while ( 0 )
6641
6642 /* Accessor  methods (get/set functions) to struct members. */
6643
6644 /** Get the current line number.
6645  * 
6646  */
6647 int surf_parse_get_lineno  (void)
6648 {
6649         
6650     return surf_parse_lineno;
6651 }
6652
6653 /** Get the input stream.
6654  * 
6655  */
6656 FILE *surf_parse_get_in  (void)
6657 {
6658         return surf_parse_in;
6659 }
6660
6661 /** Get the output stream.
6662  * 
6663  */
6664 FILE *surf_parse_get_out  (void)
6665 {
6666         return surf_parse_out;
6667 }
6668
6669 /** Get the length of the current token.
6670  * 
6671  */
6672 int surf_parse_get_leng  (void)
6673 {
6674         return surf_parse_leng;
6675 }
6676
6677 /** Get the current token.
6678  * 
6679  */
6680
6681 char *surf_parse_get_text  (void)
6682 {
6683         return surf_parse_text;
6684 }
6685
6686 /** Set the current line number.
6687  * @param line_number
6688  * 
6689  */
6690 void surf_parse_set_lineno (int  line_number )
6691 {
6692     
6693     surf_parse_lineno = line_number;
6694 }
6695
6696 /** Set the input stream. This does not discard the current
6697  * input buffer.
6698  * @param in_str A readable stream.
6699  * 
6700  * @see surf_parse__switch_to_buffer
6701  */
6702 void surf_parse_set_in (FILE *  in_str )
6703 {
6704         surf_parse_in = in_str ;
6705 }
6706
6707 void surf_parse_set_out (FILE *  out_str )
6708 {
6709         surf_parse_out = out_str ;
6710 }
6711
6712 int surf_parse_get_debug  (void)
6713 {
6714         return surf_parse__flex_debug;
6715 }
6716
6717 void surf_parse_set_debug (int  bdebug )
6718 {
6719         surf_parse__flex_debug = bdebug ;
6720 }
6721
6722 static int yy_init_globals (void)
6723 {
6724         /* Initialization is the same as for the non-reentrant scanner.
6725      * This function is called from surf_parse_lex_destroy(), so don't allocate here.
6726      */
6727
6728     /* We do not touch surf_parse_lineno unless the option is enabled. */
6729     surf_parse_lineno =  1;
6730     
6731     (yy_buffer_stack) = 0;
6732     (yy_buffer_stack_top) = 0;
6733     (yy_buffer_stack_max) = 0;
6734     (yy_c_buf_p) = (char *) 0;
6735     (yy_init) = 0;
6736     (yy_start) = 0;
6737
6738     (yy_start_stack_ptr) = 0;
6739     (yy_start_stack_depth) = 0;
6740     (yy_start_stack) =  NULL;
6741
6742 /* Defined in main.c */
6743 #ifdef YY_STDINIT
6744     surf_parse_in = stdin;
6745     surf_parse_out = stdout;
6746 #else
6747     surf_parse_in = (FILE *) 0;
6748     surf_parse_out = (FILE *) 0;
6749 #endif
6750
6751     /* For future reference: Set errno on error, since we are called by
6752      * surf_parse_lex_init()
6753      */
6754     return 0;
6755 }
6756
6757 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
6758 int surf_parse_lex_destroy  (void)
6759 {
6760     
6761     /* Pop the buffer stack, destroying each element. */
6762         while(YY_CURRENT_BUFFER){
6763                 surf_parse__delete_buffer(YY_CURRENT_BUFFER  );
6764                 YY_CURRENT_BUFFER_LVALUE = NULL;
6765                 surf_parse_pop_buffer_state();
6766         }
6767
6768         /* Destroy the stack itself. */
6769         surf_parse_free((yy_buffer_stack) );
6770         (yy_buffer_stack) = NULL;
6771
6772     /* Destroy the start condition stack. */
6773         surf_parse_free((yy_start_stack)  );
6774         (yy_start_stack) = NULL;
6775
6776     /* Reset the globals. This is important in a non-reentrant scanner so the next time
6777      * surf_parse_lex() is called, initialization will occur. */
6778     yy_init_globals( );
6779
6780     return 0;
6781 }
6782
6783 /*
6784  * Internal utility routines.
6785  */
6786
6787 #ifndef yytext_ptr
6788 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
6789 {
6790         register int i;
6791         for ( i = 0; i < n; ++i )
6792                 s1[i] = s2[i];
6793 }
6794 #endif
6795
6796 #ifdef YY_NEED_STRLEN
6797 static int yy_flex_strlen (yyconst char * s )
6798 {
6799         register int n;
6800         for ( n = 0; s[n]; ++n )
6801                 ;
6802
6803         return n;
6804 }
6805 #endif
6806
6807 void *surf_parse_alloc (yy_size_t  size )
6808 {
6809         return (void *) malloc( size );
6810 }
6811
6812 void *surf_parse_realloc  (void * ptr, yy_size_t  size )
6813 {
6814         /* The cast to (char *) in the following accommodates both
6815          * implementations that use char* generic pointers, and those
6816          * that use void* generic pointers.  It works with the latter
6817          * because both ANSI C and C++ allow castless assignment from
6818          * any pointer type to void*, and deal with argument conversions
6819          * as though doing an assignment.
6820          */
6821         return (void *) realloc( (char *) ptr, size );
6822 }
6823
6824 void surf_parse_free (void * ptr )
6825 {
6826         free( (char *) ptr );   /* see surf_parse_realloc() for (char *) cast */
6827 }
6828
6829 #define YYTABLES_NAME "yytables"
6830
6831 /* Element context stack lookup. */
6832 int surfxml_element_context(int i)
6833 {
6834   return (0<i && i<yy_start_stack_depth
6835           ? yy_start_stack[yy_start_stack_ptr - i]
6836           : 0);
6837 }
6838
6839 #ifdef FLEX_DEBUG
6840 void print_yy_stack(char* fmt, ...)
6841 {
6842   int i = 0; va_list ap; va_start(ap, fmt);
6843   vfprintf(stderr, fmt, ap);
6844   if (surfxml_statenames) {
6845       for (i=1; i<yy_start_stack_ptr; i++) {
6846           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
6847       }
6848       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
6849   }
6850   va_end(ap);
6851 }
6852
6853 void print_surfxml_bufferstack()
6854 {
6855     int i;
6856     fputs("Buffer: ", stderr);
6857     for (i = 0; i < blimit; i++) {
6858        if ( surfxml_bufferstack[i] == '\377' ) break;
6859          putc(surfxml_bufferstack[i], stderr);
6860     }
6861     putc('\n', stderr);
6862 }
6863
6864 static void debug_enter(int state, const char* statename) {
6865   yy_push_state(state);
6866   if (surf_parse__flex_debug) {
6867        print_yy_stack("--ENTER(%s) : ",statename);
6868        print_surfxml_bufferstack();
6869   }
6870 }
6871
6872 static void debug_leave(void) {
6873     if (surf_parse__flex_debug) {
6874         print_yy_stack("--LEAVE : ");
6875         print_surfxml_bufferstack();
6876     }
6877   yy_pop_state();
6878 }
6879
6880 static void debug_set(int state, const char* statename) {
6881   BEGIN(state);
6882   if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
6883 }
6884 #endif
6885
6886 static void cleanup(void)
6887 {
6888     if (surfxml_statenames) {
6889         free(surfxml_statenames);
6890         surfxml_statenames = NULL;
6891     }
6892     free(surfxml_bufferstack);
6893     surfxml_bufferstack = NULL;
6894
6895     free(indexstack);
6896     indexstack = NULL;
6897 }
6898
6899 static int fail(const char* fmt, ...)
6900 {
6901     int chars_left, used;
6902     va_list ap; va_start(ap, fmt);
6903 #ifdef FLEXML_yylineno
6904     used = sprintf(flexml_err_msg,
6905                    "Invalid XML (XML input line %d, state %d): ",
6906                    surf_parse_lineno, YY_START);
6907 #else
6908     used = sprintf(flexml_err_msg,
6909                    "Invalid XML (state %d): ",
6910                    YY_START);
6911 #endif
6912     chars_left = flexml_max_err_msg_size - used - 1;
6913     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
6914     va_end(ap);
6915
6916 #ifndef FLEXML_quiet_parser
6917     /* print directly to sdterr */
6918     fprintf(stderr, "%s\n", flexml_err_msg);
6919     flexml_err_msg[0] = '\0';
6920 #endif
6921
6922     cleanup();
6923
6924     return 1;
6925 }
6926