Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Use correct modifier, and don't lie about pointer type.
[simgrid.git] / src / surf / simgrid_dtd.c
1
2 #line 3 "src/surf/simgrid_dtd.c"
3
4 #define  YY_INT_ALIGNED short int
5
6 /* A lexical scanner generated by flex */
7
8 #define yy_create_buffer surf_parse__create_buffer
9 #define yy_delete_buffer surf_parse__delete_buffer
10 #define yy_flex_debug surf_parse__flex_debug
11 #define yy_init_buffer surf_parse__init_buffer
12 #define yy_flush_buffer surf_parse__flush_buffer
13 #define yy_load_buffer_state surf_parse__load_buffer_state
14 #define yy_switch_to_buffer surf_parse__switch_to_buffer
15 #define yyin surf_parse_in
16 #define yyleng surf_parse_leng
17 #define yylex surf_parse_lex
18 #define yylineno surf_parse_lineno
19 #define yyout surf_parse_out
20 #define yyrestart surf_parse_restart
21 #define yytext surf_parse_text
22 #define yywrap surf_parse_wrap
23 #define yyalloc surf_parse_alloc
24 #define yyrealloc surf_parse_realloc
25 #define yyfree surf_parse_free
26
27 #define FLEX_SCANNER
28 #define YY_FLEX_MAJOR_VERSION 2
29 #define YY_FLEX_MINOR_VERSION 5
30 #define YY_FLEX_SUBMINOR_VERSION 35
31 #if YY_FLEX_SUBMINOR_VERSION > 0
32 #define FLEX_BETA
33 #endif
34
35 /* First, we deal with  platform-specific or compiler-specific issues. */
36
37 /* begin standard C headers. */
38 #include <stdio.h>
39 #include <string.h>
40 #include <errno.h>
41 #include <stdlib.h>
42
43 /* end standard C headers. */
44
45 /* flex integer type definitions */
46
47 #ifndef FLEXINT_H
48 #define FLEXINT_H
49
50 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
51
52 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
53
54 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
55  * if you want the limit (max/min) macros for int types. 
56  */
57 #ifndef __STDC_LIMIT_MACROS
58 #define __STDC_LIMIT_MACROS 1
59 #endif
60
61 #include <inttypes.h>
62 typedef int8_t flex_int8_t;
63 typedef uint8_t flex_uint8_t;
64 typedef int16_t flex_int16_t;
65 typedef uint16_t flex_uint16_t;
66 typedef int32_t flex_int32_t;
67 typedef uint32_t flex_uint32_t;
68 #else
69 typedef signed char flex_int8_t;
70 typedef short int flex_int16_t;
71 typedef int flex_int32_t;
72 typedef unsigned char flex_uint8_t; 
73 typedef unsigned short int flex_uint16_t;
74 typedef unsigned int flex_uint32_t;
75
76 /* Limits of integral types. */
77 #ifndef INT8_MIN
78 #define INT8_MIN               (-128)
79 #endif
80 #ifndef INT16_MIN
81 #define INT16_MIN              (-32767-1)
82 #endif
83 #ifndef INT32_MIN
84 #define INT32_MIN              (-2147483647-1)
85 #endif
86 #ifndef INT8_MAX
87 #define INT8_MAX               (127)
88 #endif
89 #ifndef INT16_MAX
90 #define INT16_MAX              (32767)
91 #endif
92 #ifndef INT32_MAX
93 #define INT32_MAX              (2147483647)
94 #endif
95 #ifndef UINT8_MAX
96 #define UINT8_MAX              (255U)
97 #endif
98 #ifndef UINT16_MAX
99 #define UINT16_MAX             (65535U)
100 #endif
101 #ifndef UINT32_MAX
102 #define UINT32_MAX             (4294967295U)
103 #endif
104
105 #endif /* ! C99 */
106
107 #endif /* ! FLEXINT_H */
108
109 #ifdef __cplusplus
110
111 /* The "const" storage-class-modifier is valid. */
112 #define YY_USE_CONST
113
114 #else   /* ! __cplusplus */
115
116 /* C99 requires __STDC__ to be defined as 1. */
117 #if defined (__STDC__)
118
119 #define YY_USE_CONST
120
121 #endif  /* defined (__STDC__) */
122 #endif  /* ! __cplusplus */
123
124 #ifdef YY_USE_CONST
125 #define yyconst const
126 #else
127 #define yyconst
128 #endif
129
130 /* Returned upon end-of-file. */
131 #define YY_NULL 0
132
133 /* Promotes a possibly negative, possibly signed char to an unsigned
134  * integer for use as an array index.  If the signed char is negative,
135  * we want to instead treat it as an 8-bit unsigned char, hence the
136  * double cast.
137  */
138 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
139
140 /* Enter a start condition.  This macro really ought to take a parameter,
141  * but we do it the disgusting crufty way forced on us by the ()-less
142  * definition of BEGIN.
143  */
144 #define BEGIN (yy_start) = 1 + 2 *
145
146 /* Translate the current start state into a value that can be later handed
147  * to BEGIN to return to the state.  The YYSTATE alias is for lex
148  * compatibility.
149  */
150 #define YY_START (((yy_start) - 1) / 2)
151 #define YYSTATE YY_START
152
153 /* Action number for EOF rule of a given start state. */
154 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
155
156 /* Special action meaning "start processing a new file". */
157 #define YY_NEW_FILE surf_parse_restart(surf_parse_in  )
158
159 #define YY_END_OF_BUFFER_CHAR 0
160
161 /* Size of default input buffer. */
162 #ifndef YY_BUF_SIZE
163 #ifdef __ia64__
164 /* On IA-64, the buffer size is 16k, not 8k.
165  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
166  * Ditto for the __ia64__ case accordingly.
167  */
168 #define YY_BUF_SIZE 32768
169 #else
170 #define YY_BUF_SIZE 16384
171 #endif /* __ia64__ */
172 #endif
173
174 /* The state buf must be large enough to hold one state per character in the main buffer.
175  */
176 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
177
178 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
179 #define YY_TYPEDEF_YY_BUFFER_STATE
180 typedef struct yy_buffer_state *YY_BUFFER_STATE;
181 #endif
182
183 extern int surf_parse_leng;
184
185 extern FILE *surf_parse_in, *surf_parse_out;
186
187 #define EOB_ACT_CONTINUE_SCAN 0
188 #define EOB_ACT_END_OF_FILE 1
189 #define EOB_ACT_LAST_MATCH 2
190
191     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
192      *       access to the local variable yy_act. Since yyless() is a macro, it would break
193      *       existing scanners that call yyless() from OUTSIDE surf_parse_lex. 
194      *       One obvious solution it to make yy_act a global. I tried that, and saw
195      *       a 5% performance hit in a non-surf_parse_lineno scanner, because yy_act is
196      *       normally declared as a register variable-- so it is not worth it.
197      */
198     #define  YY_LESS_LINENO(n) \
199             do { \
200                 int yyl;\
201                 for ( yyl = n; yyl < surf_parse_leng; ++yyl )\
202                     if ( surf_parse_text[yyl] == '\n' )\
203                         --surf_parse_lineno;\
204             }while(0)
205     
206 /* Return all but the first "n" matched characters back to the input stream. */
207 #define yyless(n) \
208         do \
209                 { \
210                 /* Undo effects of setting up surf_parse_text. */ \
211         int yyless_macro_arg = (n); \
212         YY_LESS_LINENO(yyless_macro_arg);\
213                 *yy_cp = (yy_hold_char); \
214                 YY_RESTORE_YY_MORE_OFFSET \
215                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
216                 YY_DO_BEFORE_ACTION; /* set up surf_parse_text again */ \
217                 } \
218         while ( 0 )
219
220 #define unput(c) yyunput( c, (yytext_ptr)  )
221
222 #ifndef YY_TYPEDEF_YY_SIZE_T
223 #define YY_TYPEDEF_YY_SIZE_T
224 typedef size_t yy_size_t;
225 #endif
226
227 #ifndef YY_STRUCT_YY_BUFFER_STATE
228 #define YY_STRUCT_YY_BUFFER_STATE
229 struct yy_buffer_state
230         {
231         FILE *yy_input_file;
232
233         char *yy_ch_buf;                /* input buffer */
234         char *yy_buf_pos;               /* current position in input buffer */
235
236         /* Size of input buffer in bytes, not including room for EOB
237          * characters.
238          */
239         yy_size_t yy_buf_size;
240
241         /* Number of characters read into yy_ch_buf, not including EOB
242          * characters.
243          */
244         int yy_n_chars;
245
246         /* Whether we "own" the buffer - i.e., we know we created it,
247          * and can realloc() it to grow it, and should free() it to
248          * delete it.
249          */
250         int yy_is_our_buffer;
251
252         /* Whether this is an "interactive" input source; if so, and
253          * if we're using stdio for input, then we want to use getc()
254          * instead of fread(), to make sure we stop fetching input after
255          * each newline.
256          */
257         int yy_is_interactive;
258
259         /* Whether we're considered to be at the beginning of a line.
260          * If so, '^' rules will be active on the next match, otherwise
261          * not.
262          */
263         int yy_at_bol;
264
265     int yy_bs_lineno; /**< The line count. */
266     int yy_bs_column; /**< The column count. */
267     
268         /* Whether to try to fill the input buffer when we reach the
269          * end of it.
270          */
271         int yy_fill_buffer;
272
273         int yy_buffer_status;
274
275 #define YY_BUFFER_NEW 0
276 #define YY_BUFFER_NORMAL 1
277         /* When an EOF's been seen but there's still some text to process
278          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
279          * shouldn't try reading from the input source any more.  We might
280          * still have a bunch of tokens to match, though, because of
281          * possible backing-up.
282          *
283          * When we actually see the EOF, we change the status to "new"
284          * (via surf_parse_restart()), so that the user can continue scanning by
285          * just pointing surf_parse_in at a new input file.
286          */
287 #define YY_BUFFER_EOF_PENDING 2
288
289         };
290 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
291
292 /* Stack of input buffers. */
293 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
294 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
295 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
296
297 /* We provide macros for accessing buffer states in case in the
298  * future we want to put the buffer states in a more general
299  * "scanner state".
300  *
301  * Returns the top of the stack, or NULL.
302  */
303 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
304                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
305                           : NULL)
306
307 /* Same as previous macro, but useful when we know that the buffer stack is not
308  * NULL or when we need an lvalue. For internal use only.
309  */
310 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
311
312 /* yy_hold_char holds the character lost when surf_parse_text is formed. */
313 static char yy_hold_char;
314 static int yy_n_chars;          /* number of characters read into yy_ch_buf */
315 int surf_parse_leng;
316
317 /* Points to current character in buffer. */
318 static char *yy_c_buf_p = (char *) 0;
319 static int yy_init = 0;         /* whether we need to initialize */
320 static int yy_start = 0;        /* start state number */
321
322 /* Flag which is used to allow surf_parse_wrap()'s to do buffer switches
323  * instead of setting up a fresh surf_parse_in.  A bit of a hack ...
324  */
325 static int yy_did_buffer_switch_on_eof;
326
327 void surf_parse_restart (FILE *input_file  );
328 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer  );
329 YY_BUFFER_STATE surf_parse__create_buffer (FILE *file,int size  );
330 void surf_parse__delete_buffer (YY_BUFFER_STATE b  );
331 void surf_parse__flush_buffer (YY_BUFFER_STATE b  );
332 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer  );
333 void surf_parse_pop_buffer_state (void );
334
335 static void surf_parse_ensure_buffer_stack (void );
336 static void surf_parse__load_buffer_state (void );
337 static void surf_parse__init_buffer (YY_BUFFER_STATE b,FILE *file  );
338
339 #define YY_FLUSH_BUFFER surf_parse__flush_buffer(YY_CURRENT_BUFFER )
340
341 YY_BUFFER_STATE surf_parse__scan_buffer (char *base,yy_size_t size  );
342 YY_BUFFER_STATE surf_parse__scan_string (yyconst char *yy_str  );
343 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char *bytes,int len  );
344
345 void *surf_parse_alloc (yy_size_t  );
346 void *surf_parse_realloc (void *,yy_size_t  );
347 void surf_parse_free (void *  );
348
349 #define yy_new_buffer surf_parse__create_buffer
350
351 #define yy_set_interactive(is_interactive) \
352         { \
353         if ( ! YY_CURRENT_BUFFER ){ \
354         surf_parse_ensure_buffer_stack (); \
355                 YY_CURRENT_BUFFER_LVALUE =    \
356             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
357         } \
358         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
359         }
360
361 #define yy_set_bol(at_bol) \
362         { \
363         if ( ! YY_CURRENT_BUFFER ){\
364         surf_parse_ensure_buffer_stack (); \
365                 YY_CURRENT_BUFFER_LVALUE =    \
366             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
367         } \
368         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
369         }
370
371 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
372
373 /* Begin user sect3 */
374
375 #define surf_parse_wrap(n) 1
376 #define YY_SKIP_YYWRAP
377
378 typedef unsigned char YY_CHAR;
379
380 FILE *surf_parse_in = (FILE *) 0, *surf_parse_out = (FILE *) 0;
381
382 typedef int yy_state_type;
383
384 extern int surf_parse_lineno;
385
386 int surf_parse_lineno = 1;
387
388 extern char *surf_parse_text;
389 #define yytext_ptr surf_parse_text
390
391 static yy_state_type yy_get_previous_state (void );
392 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
393 static int yy_get_next_buffer (void );
394 static void yy_fatal_error (yyconst char msg[]  );
395
396 /* Done after the current pattern has been matched and before the
397  * corresponding action - sets up surf_parse_text.
398  */
399 #define YY_DO_BEFORE_ACTION \
400         (yytext_ptr) = yy_bp; \
401         surf_parse_leng = (size_t) (yy_cp - yy_bp); \
402         (yy_hold_char) = *yy_cp; \
403         *yy_cp = '\0'; \
404         (yy_c_buf_p) = yy_cp;
405
406 #define YY_NUM_RULES 562
407 #define YY_END_OF_BUFFER 563
408 /* This struct is not used in this scanner,
409    but its presence is necessary. */
410 struct yy_trans_info
411         {
412         flex_int32_t yy_verify;
413         flex_int32_t yy_nxt;
414         };
415 static yyconst flex_int16_t yy_accept[3279] =
416     {   0,
417         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
418         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
419         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
420         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
421         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
422         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
423         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
424         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
425         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
426         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
427
428         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
429         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
430         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
431         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
432         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
433         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
434         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
435         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
436         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
437         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
438
439         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
440         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
441         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
442         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
443         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
444         0,    0,  563,  561,   15,   10,   10,   15,   15,  541,
445        10,  541,    5,    6,    5,    8,    9,    8,  557,  549,
446       550,  558,  555,  558,  556,  560,  549,  550,  560,  561,
447        22,   10,   22,   22,   22,   20,   22,   26,   10,   26,
448        26,  561,   26,  561,  561,   26,   33,   10,   33,   33,
449
450        33,   31,   33,   37,   10,   37,   37,   48,   10,   48,
451        48,   48,   46,   48,   48,   48,  558,  557,   78,   10,
452        78,   78,   78,   76,   78,   78,   78,   78,   78,   82,
453        10,   82,  101,   10,  101,  101,  101,   99,  101,  101,
454       101,  105,   10,  105,  126,   10,  126,  126,  126,  124,
455       126,  126,  130,   10,  130,  130,  561,  130,  561,  130,
456       130,  561,  561,  130,  561,  130,  561,  130,  143,   10,
457       143,  143,  143,  141,  143,  143,  143,  143,  147,   10,
458       147,  147,  158,   10,  158,  158,  158,  156,  158,  158,
459       158,  162,   10,  162,  162,  171,   10,  171,  171,  171,
460
461       169,  171,  171,  175,   10,  175,  184,   10,  184,  184,
462       184,  182,  184,  184,  188,   10,  188,  211,   10,  211,
463       211,  211,  209,  211,  211,  211,  211,  211,  215,   10,
464       215,  561,  215,  222,   10,  222,  222,  222,  220,  222,
465       226,   10,  226,  237,   10,  237,  237,  237,  235,  237,
466       237,  237,  241,   10,  241,  288,   10,  288,  288,  288,
467       286,  288,  288,  288,  288,  288,  288,  288,  288,  292,
468        10,  292,  311,   10,  311,  311,  311,  309,  311,  311,
469       311,  311,  311,  311,  315,   10,  315,  336,   10,  336,
470       336,  336,  334,  336,  336,  336,  336,  336,  336,  336,
471
472       340,   10,  340,  349,   10,  349,  349,  349,  347,  349,
473       349,  353,   10,  353,  364,   10,  364,  364,  364,  362,
474       364,  364,  364,  368,   10,  368,  395,   10,  395,  395,
475       395,  393,  395,  395,  395,  395,  399,   10,  399,  399,
476       412,   10,  412,  412,  412,  410,  412,  412,  416,   10,
477       416,  561,  416,  433,   10,  433,  433,  433,  431,  433,
478       433,  433,  437,   10,  437,  437,  450,   10,  450,  450,
479       450,  448,  450,  450,  454,   10,  454,  463,   10,  463,
480       463,  463,  461,  463,  463,  467,   10,  467,  467,  480,
481        10,  480,  480,  480,  478,  480,  480,  480,  484,   10,
482
483       484,  484,  501,   10,  501,  501,  501,  499,  501,  501,
484       501,  501,  501,  505,   10,  505,  561,  505,  512,   10,
485       512,  512,  512,  510,  512,  516,   10,  516,  523,   10,
486       523,  523,  523,  521,  523,  527,   10,  527,  527,  536,
487        10,  536,  536,  536,  534,  536,  536,  540,   10,  540,
488        10,    0,    2,    2,    0,    4,    7,  552,  551,    0,
489         0,    0,    0,    0,    0,    0,   21,   23,   23,    0,
490         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
491         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
492         0,    0,    0,   32,   34,   34,    0,   47,   49,   49,
493
494        49,   49,    0,    0,    0,   77,   79,   79,   79,   79,
495        79,   79,   79,   79,   79,    0,  100,  102,  102,  102,
496       102,    0,  125,  127,  127,  127,    0,    0,    0,    0,
497         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
498         0,    0,    0,    0,    0,  142,  144,  144,  144,  144,
499       144,    0,  157,  159,  159,  159,  159,    0,  170,  172,
500       172,  172,    0,  183,  185,  185,  185,    0,  210,  212,
501       212,  212,  212,  212,  212,    0,    0,  221,  223,  223,
502         0,  236,  238,  238,  238,  238,    0,  287,  289,  289,
503       289,  289,  289,  289,  289,  289,  289,  289,  289,  289,
504
505       289,  289,  289,  289,    0,  310,  312,  312,  312,  312,
506       312,  312,  312,  312,    0,  335,  337,  337,  337,  337,
507       337,  337,  337,  337,    0,  348,  350,  350,  350,    0,
508       363,  365,  365,  365,  365,    0,  394,  396,  396,  396,
509       396,  396,  396,    0,  411,  413,  413,  413,  413,    0,
510         0,  432,  434,  434,  434,  434,  434,    0,  449,  451,
511       451,  451,    0,  462,  464,  464,  464,    0,  479,  481,
512       481,  481,  481,    0,  500,  502,  502,  502,  502,  502,
513       502,    0,    0,  511,  513,  513,    0,  522,  524,  524,
514         0,  535,  537,  537,  537,    0,    0,    0,    0,    0,
515
516         3,    0,    0,    0,    0,    0,    0,    0,  559,    0,
517        23,    0,    0,  107,    0,    0,    0,    0,    0,    0,
518         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
519         0,    0,    0,    0,    0,  106,    0,    0,    0,    0,
520         0,    0,   34,    0,    0,   49,    0,    0,   49,    0,
521         0,    0,  554,   79,    0,    0,   79,   79,   79,   79,
522        79,   79,    0,    0,  102,  102,  102,    0,    0,    0,
523         0,  127,    0,    0,  107,    0,    0,    0,    0,    0,
524         0,    0,    0,  106,    0,    0,    0,    0,  144,    0,
525         0,  144,  144,    0,    0,  159,    0,    0,  159,    0,
526
527         0,    0,    0,  172,    0,    0,  185,  185,    0,    0,
528       212,  212,  212,    0,    0,  212,  212,    0,    0,    0,
529         0,  223,    0,    0,  238,    0,    0,    0,    0,    0,
530         0,  289,  289,    0,    0,  289,    0,    0,  289,  289,
531       289,  289,  289,  289,  289,  289,  289,  289,    0,    0,
532         0,    0,    0,    0,  312,  312,  312,  312,  312,    0,
533         0,  337,  337,  337,    0,    0,  337,  337,  337,    0,
534         0,  350,    0,    0,    0,    0,  365,    0,    0,  365,
535         0,    0,  396,    0,    0,  396,  396,  396,    0,    0,
536       413,  413,  413,    0,    0,    0,  434,  434,  434,  434,
537
538         0,    0,  451,    0,    0,    0,    0,  464,  464,    0,
539         0,  481,  481,  481,    0,    0,  502,  502,  502,  502,
540       502,    0,    0,    0,  513,    0,    0,    0,    0,    0,
541         0,    0,    0,  537,    0,    0,    0,   14,    1,    0,
542         0,  547,    0,    0,    0,  544,  543,    0,    0,   23,
543         0,    0,   25,    0,  107,    0,    0,    0,    0,    0,
544         0,    0,  216,    0,    0,    0,    0,    0,    0,    0,
545         0,    0,    0,    0,    0,    0,    0,  106,    0,    0,
546         0,    0,    0,    0,   34,    0,    0,   36,    0,   49,
547         0,   41,   40,   49,    0,    0,    0,   51,    0,   79,
548
549         0,   55,   54,    0,    0,   79,    0,    0,   79,   79,
550        79,    0,    0,   81,    0,  102,  102,  102,    0,    0,
551       104,    0,    0,  109,  108,  127,    0,    0,  129,    0,
552         0,    0,    0,  217,    0,    0,    0,    0,    0,    0,
553         0,    0,    0,  144,    0,  134,  133,  144,  144,    0,
554         0,  146,    0,  159,    0,  151,  150,  159,    0,    0,
555       161,    0,    0,  166,  165,  172,    0,    0,  174,    0,
556       185,  185,    0,    0,  187,    0,  212,  212,  212,    0,
557       192,  191,  212,  212,    0,    0,  214,    0,    0,    0,
558       223,    0,    0,  225,    0,  238,    0,  230,  229,    0,
559
560       232,  231,    0,    0,  240,    0,  289,  289,  289,  289,
561         0,  257,  256,  289,    0,  245,  244,    0,    0,  289,
562       289,  289,  289,  289,  289,  289,  289,  289,    0,    0,
563       291,    0,    0,  306,  305,    0,  296,  295,    0,    0,
564       312,  312,  312,  312,    0,    0,  314,    0,  337,  337,
565       337,  337,    0,  319,  318,    0,    0,  337,  337,    0,
566         0,  339,    0,  350,    0,  344,  343,    0,    0,  352,
567         0,  365,    0,  357,  356,  365,    0,    0,  367,    0,
568       396,    0,  372,  371,  396,  396,  396,    0,    0,  398,
569         0,    0,    0,    0,    0,  413,    0,    0,  415,    0,
570
571         0,    0,    0,  434,  434,    0,    0,  434,    0,    0,
572       436,    0,  451,    0,  441,  440,    0,    0,  453,    0,
573         0,    0,    0,    0,    0,    0,  466,    0,    0,    0,
574       481,  481,    0,    0,    0,    0,  483,    0,  502,  502,
575       502,  502,  502,    0,    0,  504,    0,    0,  513,    0,
576         0,  515,    0,    0,  520,  519,    0,    0,  526,    0,
577         0,  531,  530,  537,    0,    0,  539,    0,    0,    0,
578       548,  542,    0,    0,    0,   23,    0,    0,    0,    0,
579         0,    0,    0,    0,  216,  189,    0,  369,    0,    0,
580       317,    0,    0,  528,    0,    0,    0,    0,    0,    0,
581
582         0,    0,    0,  316,    0,    0,    0,    0,    0,    0,
583         0,   49,    0,    0,   79,    0,   59,   58,    0,    0,
584         0,   57,   56,   79,    0,    0,   79,    0,  102,    0,
585         0,  102,    0,  127,    0,  128,    0,    0,    0,  217,
586       190,  370,  529,    0,    0,    0,    0,    0,    0,  144,
587       144,    0,    0,    0,  159,  159,    0,    0,    0,    0,
588         0,    0,  185,    0,  212,  212,    0,    0,  212,  212,
589         0,    0,    0,    0,    0,    0,    0,    0,    0,  289,
590       289,  289,  289,    0,    0,    0,  259,  258,  289,  289,
591       289,  289,  289,  289,  289,  289,  289,    0,    0,  308,
592
593       307,  312,  312,  312,  312,    0,  337,  337,  337,  337,
594         0,  327,  326,  337,  337,    0,  350,    0,  365,  365,
595         0,  396,  396,  396,  396,    0,    0,  405,  404,    0,
596       403,  402,  413,    0,  369,    0,  422,  421,  434,  434,
597         0,  420,  419,  434,    0,  451,    0,    0,  460,  459,
598         0,  458,  457,    0,    0,  473,  472,  481,  481,    0,
599       471,  470,    0,  502,    0,    0,  502,  502,  502,    0,
600         0,  513,    0,    0,  537,    0,    0,    0,    0,   12,
601         0,  545,  546,    0,   23,    0,    0,    0,    0,    0,
602         0,    0,    0,  189,    0,    0,  369,    0,  163,    0,
603
604       317,    0,    0,  528,    0,  400,    0,   39,    0,    0,
605         0,    0,    0,  316,    0,   38,    0,   30,   29,    0,
606         0,   43,   42,   49,    0,    0,   79,    0,   61,   60,
607        79,    0,   65,   64,   79,    0,  102,    0,    0,    0,
608         0,    0,    0,  127,    0,    0,    0,  190,    0,  370,
609       529,  401,    0,    0,    0,  401,  400,  144,    0,    0,
610         0,  138,  137,    0,  159,  159,    0,    0,  168,  167,
611         0,    0,  181,  180,  185,    0,  212,  212,    0,  196,
612       195,    0,    0,    0,    0,  212,    0,  164,    0,    0,
613       219,  218,    0,  224,    0,  234,  233,    0,  289,    0,
614
615         0,  289,  289,    0,  255,  254,  289,  289,    0,    0,
616       289,  289,  289,  289,  289,  289,    0,    0,    0,  312,
617       312,  312,    0,  337,    0,    0,  337,  337,    0,    0,
618       337,    0,  350,    0,  365,  365,    0,  396,  396,  396,
619         0,    0,  396,    0,  413,    0,    0,  434,  434,  434,
620         0,  451,    0,    0,  481,  481,    0,  502,    0,  488,
621       487,  502,  502,  502,    0,    0,    0,    0,    0,    0,
622         0,    0,    0,    0,    0,    0,   11,    0,   23,    0,
623         0,    0,    0,    0,    0,    0,  518,    0,    0,    0,
624       163,    0,    0,    0,   53,  400,  341,    0,   39,    0,
625
626       517,   52,    0,    0,    0,    0,   38,    0,    0,   49,
627         0,    0,   79,   79,   79,    0,  102,    0,    0,    0,
628         0,    0,    0,    0,    0,    0,   96,   95,    0,  127,
629         0,    0,    0,    0,  401,  342,    0,    0,    0,  144,
630         0,  136,  135,    0,  159,    0,    0,    0,    0,    0,
631         0,    0,  212,  212,    0,  194,  193,    0,    0,    0,
632       212,    0,  213,  164,    0,    0,  289,    0,  267,  266,
633         0,    0,  289,  289,  289,    0,  253,  252,    0,    0,
634       289,  289,  289,  289,    0,    0,    0,    0,  304,  303,
635         0,    0,  312,    0,    0,    0,  337,    0,  323,  322,
636
637         0,    0,  337,    0,  321,  320,  337,    0,  338,  350,
638         0,  365,  365,    0,  396,  396,  396,    0,    0,    0,
639       396,    0,  397,  413,    0,    0,    0,    0,    0,    0,
640       434,    0,  451,    0,    0,    0,    0,    0,    0,    0,
641       502,  502,  502,  502,    0,    0,    0,  509,  508,    0,
642         0,    0,  533,  532,    0,  538,    0,    0,    0,    0,
643         0,    0,    0,  417,    0,    0,    0,    0,  294,  243,
644       518,    0,   28,    0,    0,    0,  486,   53,  341,  148,
645         0,  517,   52,  293,  242,   27,  485,    0,    0,   49,
646         0,    0,   50,   79,    0,    0,   79,    0,    0,    0,
647
648         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
649         0,    0,    0,  418,    0,    0,    0,    0,  342,  149,
650         0,    0,    0,    0,    0,    0,  153,  152,    0,    0,
651       173,    0,  179,  178,    0,  212,  212,    0,    0,  212,
652         0,    0,  289,    0,  269,  268,  289,  289,  289,    0,
653       247,  246,    0,    0,  289,  289,  289,    0,  249,  248,
654         0,    0,  298,  297,    0,    0,    0,  300,  299,    0,
655       337,    0,  325,  324,  337,  337,  350,    0,  365,    0,
656         0,    0,  396,    0,    0,  396,  396,    0,    0,  396,
657       413,    0,  414,    0,    0,  426,  425,    0,  424,  423,
658
659       434,    0,  451,    0,    0,    0,  477,  476,    0,  475,
660       474,    0,  502,  502,  502,  502,    0,    0,    0,    0,
661         0,    0,    0,   17,    0,   19,   18,    0,  417,  506,
662       354,    0,    0,  294,  243,    0,   28,  438,  176,   16,
663       486,  148,    0,    0,  293,  242,   27,  485,    0,    0,
664        49,  553,   79,    0,   67,   66,   79,    0,   80,    0,
665        98,   97,    0,    0,    0,    0,    0,    0,    0,    0,
666         0,    0,    0,    0,    0,    0,  418,  355,    0,    0,
667         0,  149,    0,    0,  140,  139,    0,    0,  155,  154,
668         0,    0,  212,  212,    0,    0,    0,    0,  212,  177,
669
670         0,  289,  289,  289,  289,    0,  251,  250,  289,  289,
671       289,    0,    0,  302,  301,    0,  337,  337,  337,  350,
672         0,  351,  365,    0,  361,  360,    0,  396,    0,  378,
673       377,  396,  396,    0,    0,    0,    0,  396,  413,  439,
674       434,    0,  451,    0,    0,    0,    0,    0,  502,  502,
675       502,    0,  507,    0,    0,  525,    0,    0,    0,   17,
676         0,  506,  354,    0,    0,  227,  438,  176,   16,    0,
677         0,    0,    0,   35,   49,    0,    0,   79,    0,    0,
678         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
679         0,    0,    0,    0,    0,    0,    0,    0,    0,  355,
680
681         0,    0,  228,    0,    0,    0,  160,    0,  212,  212,
682         0,  202,    0,  201,  212,  177,    0,  289,  289,  289,
683       289,  289,    0,    0,  289,  289,    0,  290,    0,  313,
684       337,  337,  337,  350,    0,    0,    0,    0,    0,  396,
685       396,  396,    0,  382,    0,  381,  396,  413,  439,  434,
686         0,  435,    0,    0,    0,    0,    0,    0,  490,  489,
687         0,    0,  502,  502,    0,  503,  507,    0,    0,    0,
688         0,    0,   24,    0,    0,  227,    0,    0,    0,   49,
689         0,    0,    0,   79,    0,    0,    0,    0,    0,    0,
690         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
691
692         0,    0,    0,    0,    0,    0,    0,    0,    0,  228,
693         0,    0,    0,  186,  212,  212,  204,  203,    0,    0,
694         0,  289,  289,  289,  289,  289,    0,  279,  278,  289,
695         0,    0,  337,  337,    0,    0,  350,    0,  359,  358,
696         0,  366,    0,  374,  373,  396,  396,  396,  384,  383,
697         0,    0,  413,  434,    0,    0,    0,    0,  452,    0,
698         0,    0,  494,  493,    0,    0,    0,    0,    0,  514,
699         0,    0,    0,    0,  455,    0,    0,    0,    0,    0,
700         0,    0,    0,    0,    0,    0,   79,    0,    0,    0,
701         0,   88,    0,    0,    0,    0,   87,    0,    0,    0,
702
703         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
704         0,  456,    0,    0,  212,    0,    0,    0,  206,  205,
705         0,  239,  289,  289,  289,    0,    0,  289,  289,    0,
706       277,  276,  337,    0,    0,    0,  333,  332,    0,    0,
707       396,  396,  396,    0,  386,  385,    0,    0,    0,    0,
708         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
709         0,    0,  492,  491,    0,    0,    0,    0,  455,  131,
710         0,    0,    0,   45,   44,    0,    0,    0,    0,    0,
711         0,    0,    0,   79,    0,    0,    0,    0,    0,    0,
712         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
713
714         0,    0,    0,    0,    0,    0,  456,  132,    0,    0,
715         0,  212,    0,  208,  207,  289,  289,    0,    0,    0,
716       283,  282,    0,    0,  289,  337,    0,  329,  328,    0,
717       346,  345,  396,    0,    0,  396,    0,    0,    0,    0,
718         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
719         0,    0,    0,    0,    0,    0,    0,    0,  468,  131,
720        84,   83,    0,    0,    0,    0,    0,    0,    0,    0,
721         0,    0,    0,    0,   94,    0,    0,    0,   93,    0,
722         0,    0,    0,    0,  111,  119,    0,    0,    0,    0,
723       110,  118,    0,  469,  132,    0,    0,  198,  197,  212,
724
725       289,  289,    0,  281,  280,    0,  285,  284,  289,  337,
726       396,    0,  380,  379,  396,    0,    0,    0,    0,    0,
727         0,    0,    0,    0,    0,  443,    0,    0,  442,    0,
728       465,    0,    0,    0,    0,    0,    0,    0,    0,    0,
729         0,    0,  468,   84,   83,    0,    0,    0,    0,    0,
730         0,    0,    0,    0,   63,   62,    0,    0,    0,    0,
731         0,    0,    0,    0,    0,  113,    0,    0,    0,  112,
732         0,  469,    0,  145,  212,  289,  289,    0,    0,  337,
733         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
734         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
735
736         0,    0,    0,    0,    0,    0,    0,    0,   75,   71,
737         0,    0,   74,   70,    0,   92,    0,    0,   91,    0,
738         0,    0,  103,    0,    0,    0,    0,    0,    0,  212,
739       289,  289,    0,    0,    0,  337,    0,  376,  375,    0,
740         0,    0,  409,    0,  408,    0,  430,    0,  429,    0,
741       445,  447,  444,  446,    0,  482,  496,    0,  495,    0,
742         0,    0,    0,   12,    0,   12,    0,    0,    0,    0,
743         0,   86,   90,   85,   89,  123,    0,  121,  122,    0,
744       120,  212,  289,  289,    0,    0,    0,    0,  337,    0,
745         0,    0,    0,  407,  406,  428,  427,    0,    0,    0,
746
747         0,    0,    0,    0,    0,    0,    0,    0,  115,    0,
748       114,    0,    0,    0,    0,    0,    0,    0,    0,    0,
749         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
750         0,    0,    0,    0,    0,    0,   69,    0,   68,    0,
751         0,    0,    0,  200,  199,    0,  275,  274,    0,    0,
752         0,    0,    0,    0,    0,    0,    0,    0,  331,  330,
753         0,    0,    0,    0,    0,    0,    0,    0,    0,   11,
754         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
755         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
756       498,  497,    0,   73,   72,    0,    0,    0,    0,    0,
757
758         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
759         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
760         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
761         0,    0,    0,  117,  116,    0,    0,    0,    0,    0,
762         0,  261,    0,    0,  260,    0,    0,  388,    0,    0,
763       387,    0,    0,    0,    0,    0,  265,    0,  264,    0,
764       390,    0,  389,    0,    0,    0,    0,    0,    0,    0,
765         0,    0,    0,    0,    0,  271,    0,  270,    0,    0,
766         0,    0,    0,    0,  273,  272,  263,  262,  392,  391,
767         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
768
769         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
770         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
771         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
772         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
773         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
774         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
775         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
776         0,    0,    0,    0,    0,    0,   13,    0
777     } ;
778
779 static yyconst flex_int32_t yy_ec[256] =
780     {   0,
781         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
782         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
783         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
784         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
785         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
786        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
787        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
788        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
789        31,   38,   39,   40,   41,   42,   43,   44,   45,   31,
790        46,    1,   47,    1,   48,    1,   49,   50,   51,   52,
791
792        53,   54,   55,   56,   57,   58,   59,   60,   61,   62,
793        63,   64,   65,   66,   67,   68,   69,   70,   71,   72,
794        73,   74,    1,    1,    1,    1,    1,    1,    1,    1,
795         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
796         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
797         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
798         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
799         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
800         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
801         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
802
803         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
804         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
805         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
806         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
807         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
808         1,    1,    1,    1,    1
809     } ;
810
811 static yyconst flex_int32_t yy_meta[75] =
812     {   0,
813         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
814         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
815         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
816         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
817         5,    5,    5,    5,    5,    1,    1,    5,    9,    9,
818         9,    9,    9,    9,    5,    5,    5,    5,    5,    5,
819         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
820         5,    5,    5,    5
821     } ;
822
823 static yyconst flex_int16_t yy_base[3759] =
824     {   0,
825         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
826        14,   17,   33,   36,   49,   55,   45,   61,   66,   72,
827       108,  178,   75,   78,   83,  128,  131,  134,  138,  141,
828       158,  198,  201,  204,  208,  211,  228,  231,  234,  237,
829       240,  257,  275,  329,  295,  298,  301,  305,  308,  349,
830       352,  355,  383,  447,  360,  416,  511,  578,  407,  410,
831       645,  713,  413,  467,  781,  847,  470,  473,  477,  480,
832       531,  534,  537,  541,  544,  598,  601,  604,  608,  611,
833       665,  668,  671,  675,  678,  733,  736,  739,  743,  746,
834       801,  804,  807,  811,  814,  867,  870,  873,  877,  880,
835
836       897,  903,  921,  988,  941,  944,  947,  951, 1008, 1011,
837      1014, 1018, 1055, 1123, 1075, 1078, 1081, 1085, 1143, 1146,
838      1149, 1153, 1191, 1253, 1211, 1214, 1315, 1383, 1217, 1221,
839      1451, 1518, 1224, 1273, 1276, 1279, 1283, 1286, 1335, 1338,
840      1585, 1647, 1341, 1345, 1709, 1778, 1348, 1403, 1847,    0,
841      1406, 1409, 1921, 1988, 1413, 1416, 2055, 2122, 1471, 1474,
842      2189, 2246, 1477, 1481, 2303, 2363, 1538, 1541, 2423, 2490,
843      1544, 1548, 1605, 1608, 1611, 1615, 1618, 1667, 2557, 2624,
844      1670, 1673, 1677, 1680, 1729, 1732, 1735, 1739, 2691, 2758,
845      1742, 1798, 1801, 1804, 1808, 1811, 1941, 1944, 2825, 2882,
846
847      1947, 1951, 2939, 3006, 1954, 2008, 2011, 2014, 2018, 2021,
848      2075, 2078, 3073, 3140, 2081, 2085, 2142, 2145, 2148, 2152,
849      2209, 2212, 3207, 3274, 2215, 2219, 2266, 2269, 2272, 2276,
850      2323, 2326, 3341, 3411, 2329, 2333, 3481, 3538, 2336, 2383,
851      2386, 2389, 2393, 2396, 2443, 2446, 3595, 3665, 2449, 2453,
852         0,    0, 8975,12040,12040,   95,  100,   29,   41,12040,
853       103,   51,12040,12040, 8964,12040,12040, 8949,12040, 8964,
854      8964,  202,12040,12040,12040,12040, 8958, 8958, 8913,  153,
855     12040,  161, 8935,    0,  145,12040, 8901,12040,  165, 3731,
856        73, 2462,  315,  357, 8941, 8884,12040,  168, 8927,    0,
857
858       152,12040, 8889,12040,  261, 8929,   31,12040,  266, 8920,
859         0,  245,12040, 8882, 8882, 8880,  421, 8885,12040,  269,
860      8907,    0,  340,12040, 8873, 8873,  271, 8322,  238,12040,
861       441,  484,12040,  504, 8350,    0,  401,12040, 8308, 8310,
862      8300,12040,  561,  548,12040,  571, 8345,    0,  481,12040,
863      8312, 8300,12040,  628, 3795, 8298,  163, 2456,  567,  206,
864        38, 8348,  954, 2465,  639,  907,  437,   79,12040,  634,
865      8339,    0,  546,12040, 8294, 8297, 8285, 8289,12040,  638,
866       313,  368,12040,  697, 8318,    0,  549,12040, 8274, 8283,
867      8256,12040,  704,  426,  497,12040,  707, 8307,    0,  747,
868
869     12040, 8270, 8272,12040,  767,  753,12040,  773, 8299,    0,
870       757,12040, 8265, 8240,12040,  831,  818,12040,  838, 8286,
871         0,  758,12040, 8234, 8240, 8249, 8225, 8219,12040,  841,
872       559,  825,  530,12040,  906, 8265,    0,  815,12040, 8228,
873     12040,  914,  891,12040,  977, 8256,    0,  953,12040, 8211,
874      8221, 8207,12040,  981,  965,12040, 1021, 8246,    0,  966,
875     12040, 8195,  203, 8196, 8206,  378,   85,  311,  972,12040,
876      1040, 1025,12040, 1048, 8236,    0, 1026,12040, 8173, 8191,
877      8190,  157, 8189, 8167,12040, 1088, 1092,12040, 1105, 8215,
878         0, 1033,12040, 8141, 8135, 8142, 8140, 8142, 8126, 8116,
879
880     12040, 1112, 1154,12040, 1115, 8163,    0, 1089,12040, 8118,
881      8124,12040, 1118, 1160,12040, 1174, 8155,    0, 1090,12040,
882      8124, 8112, 8114,12040, 1180, 1228,12040, 1183, 8142,    0,
883      1158,12040, 8110, 8106, 8098,   15,12040, 1186,  564,  814,
884     12040, 1241, 8126,    0, 1225,12040, 8074,  181,12040, 1248,
885      1294,  432,  303,12040, 1305, 8120,    0, 1226,12040, 8071,
886      8065,  299,12040, 1309, 1224,  350,12040, 1365, 8115,    0,
887      1293,12040, 8076, 8075,12040, 1368, 1352,12040, 1372, 8099,
888         0, 1360,12040, 8051, 8050,12040, 1376, 1426,  676,12040,
889      1433, 8090,    0, 1418,12040, 8042, 8036, 8032,12040, 1438,
890
891      1436,  685,12040, 1503, 8073,    0, 1423,12040, 8010, 8010,
892      8015, 8008, 7983,12040, 1507, 1504,  560,  899,12040, 1510,
893      8026,    0, 1428,12040, 7996,12040, 1568, 1622,12040, 1574,
894      8013,    0, 1482,12040, 7980,12040, 1577,  963, 1007,12040,
895      1635, 8006,    0, 1496,12040, 7966, 7968,12040, 1638, 1623,
896      1697,  677, 7943,12040, 8000, 7989,12040,12040,12040, 1690,
897       253, 7938, 7933, 7929, 7976, 7928,12040,    0, 7921, 7915,
898      7938, 7910,  104, 1383, 7906, 7906, 7905, 7899,  889, 1636,
899      1037, 7887, 7887, 1500, 1105, 7909, 1691, 7885, 1699, 7875,
900      1709, 1710, 1711,12040,    0, 7879, 7881,12040,    0, 7876,
901
902      2088, 7865,  666, 7862, 7905,12040,    0, 7862, 2155, 7840,
903      7862, 7847, 7849, 7847, 7837, 7822,12040,    0, 7832, 7815,
904      7818, 7798,12040,    0, 2222, 7786, 7832, 7813,  172, 7783,
905      7783, 7787, 1767, 1297, 7775, 1768, 7802,  707,  724,  814,
906       841, 1567, 1782, 1629,  888,12040,    0, 7774, 2279, 7783,
907      7755, 7761,12040,    0, 7764, 2456, 7751, 7747,12040,    0,
908      2514, 7751, 7746,12040,    0, 7743, 7735, 7737,12040,    0,
909      7747,  373, 2519, 7715, 7735, 7722,  897,12040,    0, 7715,
910      7713,12040,    0, 7696, 2525, 2577, 7709,12040,    0, 7711,
911      7710, 2580, 7690, 2583, 7687, 7692, 7684, 7668, 7675, 7669,
912
913      7651, 7669, 7658, 7652, 7653,12040,    0, 2586, 2589, 7631,
914      7627, 7642, 7641, 7634, 7635,12040,    0, 7636, 7628, 7612,
915      2644, 7605, 7597, 7618, 7598,12040,    0, 7598, 2647, 7593,
916     12040,    0, 7588, 2650, 7579, 7595,12040,    0, 7579, 2653,
917      7561, 7579, 7577, 7557,12040,    0, 7547, 7559, 7548, 7541,
918      7542,12040,    0, 7530, 7548, 7539, 7522, 7560,12040,    0,
919      7514, 2656, 7510,12040,    0, 7491, 7507, 7506,12040,    0,
920      7483, 7502, 7497, 7496,12040,    0, 7482, 7476, 7460, 7470,
921      7468, 7450, 7446,12040,    0, 7448, 7455,12040,    0, 2711,
922      7444,12040,    0, 2714, 7434, 7428, 7464, 7473, 1537, 7416,
923
924     12040, 1823,    0, 7410, 7398, 7436, 7435, 7383,12040, 7395,
925      7373, 2719, 2722, 1971, 7380, 7383, 7363, 7364, 7337, 7343,
926      7334, 7328, 7343, 7330, 7322, 7321, 7331, 7334, 7313, 7312,
927      7294, 7299, 7310, 7295, 7290, 1980, 7300, 7276, 7293, 7289,
928      7268, 7281, 7275, 2725, 2732, 7272, 2781, 2038, 7265, 7273,
929      2786, 2789,12040, 7242, 2793, 2107, 2799, 7226, 2845, 7230,
930      7233, 7236, 2848, 2855, 7214, 7205, 7201, 2858, 2903, 2906,
931      2174, 7183, 2910, 2916, 2353, 7198, 7180, 7170, 7169, 7163,
932      7157, 7149, 7150, 2413, 7148, 7146, 7130, 7129, 7128, 2913,
933      2539, 7142, 7140, 2959, 2962, 7124, 2968, 2608, 7137, 2972,
934
935      3029, 2986, 2675, 7136, 3034, 3037, 7119, 7118, 3040, 3043,
936      7108, 7097, 7109, 3099, 2745, 7097, 7080, 3102, 3109, 7078,
937      7069, 7074, 3112, 3165, 7062, 3105, 2813, 3160, 2991, 3171,
938      3174, 7062, 1910, 3178, 3062, 7065, 3186, 3197, 3228, 7055,
939      7044, 7053, 7050, 7046, 7033, 7030, 7014, 7020, 3231, 3236,
940      3239, 3246, 3295, 3298, 3306, 3313, 3320, 3376, 3373, 3242,
941      3361, 7012,   37, 6997, 3365, 3387, 3432, 7009, 6988, 3309,
942      3444, 6970, 3435, 3395, 3439, 3458, 6982, 3501, 3463, 6980,
943      3504, 3511, 6978, 3507, 3471, 6976, 6945, 6942, 3514, 3560,
944      3563, 3567, 3570, 3573, 3618, 6943, 3621, 3641, 3630, 3644,
945
946      3633, 3686, 6951, 3694, 3652, 3697, 3700, 3712, 3725, 3730,
947      3735, 3743, 3757, 3764, 3738, 3769, 6951, 6932, 6937, 6922,
948      6905, 3799, 3802, 6914, 6898, 3808, 3811, 3775, 3823, 3833,
949      3837, 3845, 3863, 6896, 3871, 3876, 6944,12040,12040, 1138,
950      6899,12040, 6941, 6939, 6878,12040,12040, 6869, 6868, 6870,
951      3879, 3882,12040, 3885, 1704, 6853, 6845, 6850, 6859, 6849,
952      6828, 6840, 1771, 6824, 6831, 6829, 6820, 6817, 6813, 6806,
953       446, 6813, 6795, 6789, 6802, 6798, 6795, 2047, 6788, 6777,
954      6767, 6756, 1109, 6770, 3890, 3904, 3908,12040, 3911, 3914,
955      3917,12040,12040, 3933, 6794, 3936, 3941,12040, 3944, 6748,
956
957      3951,12040,12040, 3947, 3965, 3973, 3976, 3979, 6762, 3987,
958      6756, 3995, 3998,12040, 4001, 6754, 4005, 6752, 4008, 4023,
959     12040, 4027, 4030,12040,12040, 6736, 4038, 4042,12040, 4046,
960      6729, 6726, 6735, 2240, 6714, 6706, 1510, 6695, 6693, 6705,
961      6703, 6679, 6678, 6691, 4050,12040,12040, 6667, 4065, 4068,
962      4071,12040, 4075, 6673, 4083,12040,12040, 6675, 4078, 4097,
963     12040, 4100, 4103,12040,12040, 4111, 4119, 4122,12040, 4125,
964      4129, 4132, 4150, 4153,12040, 4156, 6634, 6641, 4162, 4165,
965     12040,12040, 6625, 6633, 4175, 4180,12040, 4183, 6623, 6611,
966      4186, 4189, 4194,12040, 4208, 4204, 4213,12040,12040, 4223,
967
968     12040,12040, 4231, 4234,12040, 4237, 6613, 6595, 6591, 6583,
969      4240,12040,12040, 4256, 4259,12040,12040, 4267, 4270, 6565,
970      6581, 6556, 6564, 6566, 6559, 6554, 6552, 6545, 4278, 4281,
971     12040, 4285, 4288,12040,12040, 4304,12040,12040, 4312, 4315,
972      6534, 6542, 6546, 6532, 4323, 4326,12040, 4330, 6525, 6521,
973      6513, 6528, 4333,12040,12040, 4345, 4349, 6504, 6514, 4357,
974      4363,12040, 4366, 6510, 4369,12040,12040, 4385, 4388,12040,
975      4391, 6486, 4394,12040,12040, 6493, 4410, 4413,12040, 4418,
976      6483, 4422,12040,12040, 6490, 6484, 6486, 4432, 4437,12040,
977      4441, 4444, 4447, 4462, 4468, 6481, 4476, 4480,12040, 4484,
978
979      6474, 4487, 4505, 6464, 6460, 4491, 4513, 6465, 4521, 4524,
980     12040, 4527, 6466, 4530,12040,12040, 4546, 4552,12040, 4555,
981      4558, 4561, 4576, 4579, 4587, 4594,12040, 4598, 4601, 4606,
982      6448, 6440, 4619, 4622, 4630, 4633,12040, 4637, 6419, 4640,
983      6428, 6426, 6401, 4643, 4652,12040, 4662, 6395, 6389, 4665,
984      4671,12040, 4674, 4677,12040,12040, 4685, 4693,12040, 4696,
985      4700,12040,12040, 6388, 4708, 4715,12040, 4718, 1013, 4728,
986     12040,12040, 6408, 6403, 6343, 6312, 4737, 6267, 6274, 6283,
987      6254, 6256, 6247, 6255, 2297, 2549, 6169, 2552, 6149, 6150,
988      2616, 6160, 6062, 2619, 6050, 6003, 5979, 5958, 5909, 5893,
989
990      5877, 5798, 5727, 2683, 5679, 5655, 4740, 4758, 4743, 4749,
991      4767, 5620, 5588, 4775, 5560, 4780,12040,12040, 4788, 4795,
992      4806,12040,12040,   17, 4814, 4818,   36, 4826,  132, 4832,
993      4835, 4845, 4850,  256, 4752,12040,  313,  349,  338, 2686,
994      2863, 3000, 2753,  393,  429,  432,  460,  497,  503,  556,
995      4853, 4856, 4859, 4877,  581,  632, 4880, 4883, 4886, 4901,
996      4904, 4907,  633, 4915,  680,  698, 4922, 4925, 4934, 4945,
997      4948,  699,  746, 4952, 4956, 4970, 4973, 4977, 4985,  772,
998      4992,  756,  782, 4995, 4998, 5006,12040,12040,  793,  843,
999      5015,  825,  853,  854,  986, 1050, 1033, 5018, 5021,12040,
1000
1001     12040, 5029, 5033, 5037, 5040, 5043, 1090, 5047, 1139, 1165,
1002      5058,12040,12040, 5068, 1186, 5071, 1184, 5074, 1212, 1242,
1003      5077, 1238, 1245, 1240, 5080, 5086, 5105,12040,12040, 5113,
1004     12040,12040, 1235, 5100, 3135, 5121,12040,12040, 1237, 1280,
1005      5129,12040,12040, 1287, 5137, 1314, 5144, 5147,12040,12040,
1006      5156,12040,12040, 5167, 5170,12040,12040, 1331, 1363, 5179,
1007     12040,12040, 5187, 1365, 5190, 5193, 1357, 1369, 1399, 5202,
1008      1389, 5208, 5211, 5215, 5221, 5226, 1538, 1447, 5230,12040,
1009      1462,12040,12040, 1425, 1428, 5235, 1423, 1440, 1471, 1487,
1010      1502, 1531, 1546, 2877, 1564, 1573, 3131, 1594, 3265, 1597,
1011
1012      3269, 1600, 1619, 3332, 1626, 3404, 1635, 3533, 1642, 1664,
1013      1695, 1696, 1715, 3368, 1701, 4495, 5239,12040,12040, 5254,
1014      5257,12040,12040, 1737, 1769, 5268, 1749, 5273,12040,12040,
1015      1758, 5289,12040,12040, 1753, 5282, 1764, 5301, 2898, 2944,
1016      5309, 5313, 5322, 1784, 1773, 1780, 1777, 3588, 1786, 3624,
1017      3761, 5327, 1882, 1885, 1894, 5330, 5333, 1895, 5336, 5344,
1018      5354,12040,12040, 5362, 1896, 5365, 5368, 5374,12040,12040,
1019      5383, 5388,12040,12040, 5402, 5398, 1916, 1914, 5406,12040,
1020     12040, 5420, 5423, 5431, 5434, 1925, 5442, 5445, 1931, 5450,
1021     12040,12040, 5463,12040, 5466,12040,12040, 5474, 1936, 5477,
1022
1023      5482, 5495, 1938, 5498,12040,12040, 1953, 1976, 5506, 5509,
1024      5517, 1968, 1982, 1976, 1979, 5524, 5527, 5530, 5535, 5548,
1025      5551, 5554, 5557, 1993, 5560, 5572, 5580, 1991, 5583, 5587,
1026      2017, 5601, 2024, 5604, 2042, 2022, 5610, 2045, 2025, 2045,
1027      5613, 5625, 2054, 5633, 2048, 5636, 2066, 5639, 5642, 5645,
1028      5648, 2061, 5667, 5663, 5671, 5674, 5677, 2057, 5682,12040,
1029     12040, 2064, 2078, 2085, 5692, 2108, 5697, 5700, 5716, 5719,
1030      5722, 5725, 5744, 2144, 2167, 2185,12040, 2096, 5747, 5750,
1031      2112, 2105, 2113, 2264, 2116, 2119, 5753, 2131, 2167, 2160,
1032      5756, 2176, 2166, 2167, 5759, 5765, 5769, 2186, 5776, 2194,
1033
1034      5779, 5782, 2194, 2211, 2232, 2221, 5785, 2238, 5788, 2240,
1035      2273, 5791, 2233, 5795, 2262, 5798, 5801, 2312, 2306, 2372,
1036      2307, 2323, 2310, 2432, 2312, 5813,12040,12040, 5821, 5824,
1037      2299, 2296, 2383, 2302, 5827, 5830, 2308, 2384, 2443, 5833,
1038      5842,12040,12040, 5851, 5854, 5858, 5861, 5872, 5876, 5879,
1039      5882, 5891, 2305, 2330, 5898,12040,12040, 5906, 2367, 2372,
1040      2355, 5914,12040, 5917, 2363, 5921, 2382, 5926,12040,12040,
1041      5934, 5940, 2406, 2418, 2413, 5948,12040,12040, 5956, 5959,
1042      5967, 2419, 2429, 2425, 5970, 5974, 5988, 5991,12040,12040,
1043      5999, 6003, 6011, 6017, 6020, 6029, 2428, 6036,12040,12040,
1044
1045      6044, 6048, 2437, 6056,12040,12040, 2431, 6064,12040, 2440,
1046      6067, 2444, 6070, 6073, 2446, 6076, 2477, 6088, 2496, 2498,
1047      2478, 6096,12040, 2482, 6099, 2478, 6102, 6105, 6123, 6126,
1048      2492, 6135, 2510, 6141, 6144, 6147, 6150, 6165, 6168, 6176,
1049      2532, 2534, 2529, 2544, 6179, 2544, 6184,12040,12040, 6198,
1050      6202, 6206,12040,12040, 6217,12040, 2587, 2699, 2595, 2555,
1051      6221, 6224, 6232, 6245, 2572, 2609, 2625, 2602, 6251, 6256,
1052      6259, 2605, 6262, 2606, 2620, 2613, 6265, 6268, 6271, 6274,
1053      2617, 6277, 6280, 6283, 6286, 6289, 6292, 2619, 6297, 2626,
1054      2661, 6300,12040, 2654, 6304, 6307, 2682, 6322, 6325, 6328,
1055
1056      2697, 2701, 2701, 2709, 2710, 2739, 2741, 2741, 2751, 2744,
1057      6336, 6343, 6349, 6357, 2745, 2760, 2744, 2746, 6361, 6364,
1058      6367, 6370, 6378, 6381, 6386, 6399,12040,12040, 6407, 6412,
1059     12040, 6415,12040,12040, 6426, 2751, 2746, 3024, 3034, 2760,
1060      2768, 6431, 2763, 6434,12040,12040, 2762, 2781, 2805, 6446,
1061     12040,12040, 6454, 6459, 2802, 2792, 2803, 6468,12040,12040,
1062      6476, 6480,12040,12040, 6488, 6491, 6499,12040,12040, 6507,
1063      2809, 6510,12040,12040, 2802, 2813, 2806, 6518, 2820, 6521,
1064      6526, 6541, 2842, 6544, 6547, 2868, 2860, 3035, 3096, 2866,
1065      2882, 6556,12040, 2875, 6562,12040,12040, 6575,12040,12040,
1066
1067      2887, 6570, 2906, 6584, 6589, 6592,12040,12040, 6604,12040,
1068     12040, 6612, 6616, 6622, 6626, 6634, 6640, 2910, 6644, 6647,
1069      6652, 3009, 3069, 6655, 6659,12040,12040, 6667, 6674, 6677,
1070      6680, 2914, 2914, 6686, 6694, 2925, 6697, 6700, 6706, 6709,
1071      6712, 6715, 2928, 2936, 6718, 6721, 6727, 6730, 2937, 6733,
1072      2933,12040, 6736, 6739,12040,12040, 6747, 6754,12040, 6758,
1073     12040,12040, 2997, 2988, 3008, 3003, 3024, 3030, 3016, 3041,
1074      3063, 3070, 6766, 6769, 6752, 6756, 6786, 6793, 3032, 3030,
1075      3058, 6797, 3053, 6800,12040,12040, 6808, 6814,12040,12040,
1076      6822, 6828, 3069, 3074, 3103, 3150, 3138, 3157, 3117, 6831,
1077
1078      6834, 3114, 3129, 3136, 3323, 6837,12040,12040, 6847, 3133,
1079      3145, 6855, 6858,12040,12040, 6866, 3145, 3151, 3170, 3183,
1080      6869,12040, 6874, 6881,12040,12040, 6895, 6898, 6901,12040,
1081     12040, 6909, 6916, 3230, 3253, 3233, 3255, 6919, 3216, 6922,
1082      3241, 6927, 6930, 6937, 6940, 6948, 6951, 6971, 6959, 6979,
1083      6982, 6986, 6989, 6992, 7005,12040, 7011, 3286, 3283, 7014,
1084      7017, 7020, 7024, 3242, 3250, 7036, 7039, 7042, 7045, 3246,
1085      3264, 3265, 7048,12040, 3258, 7051, 7055, 3300, 3339, 3337,
1086      3351, 3346, 3362, 3359, 3355, 3370, 3361, 3402, 7063, 3384,
1087      3388, 3463, 3386, 3393, 3392, 3396, 3518, 3392, 3399, 7069,
1088
1089      3400, 3400, 7074, 3398, 7077, 7082,12040, 7085, 3408, 3412,
1090      3506,12040, 3510,12040, 7088, 7091, 7096, 3454, 3477, 3467,
1091      3459, 3484, 7107, 7111, 3494, 7119, 7126,12040, 7129,12040,
1092      3493, 3501, 7132, 3512, 7137, 7155, 7140, 7150, 7164, 7172,
1093      7175, 7178, 3577,12040, 3579,12040, 7181, 3534, 7184, 3551,
1094      7199,12040, 7202, 7205, 7213, 7220, 7225, 7228,12040,12040,
1095      7239, 7244, 7252, 7257, 7260,12040, 7263, 7266, 3599, 3630,
1096      3631, 7270,12040, 3549, 3576, 7275, 3566, 3586, 3604, 7279,
1097      7290, 3795, 4026, 3599, 3634, 3669, 3668, 3673, 3701, 3679,
1098      3688, 3694, 3697, 3712, 7298, 3654, 3666, 3663, 3670, 3686,
1099
1100      3679, 3682, 3696, 3693, 3709, 3708, 3704, 3706, 3731, 7301,
1101      3721, 7304, 7307,12040, 3717, 7310,12040,12040, 7313, 7317,
1102      7331, 3720, 3732, 3759, 7334, 3753, 7337,12040,12040, 3766,
1103      7345, 7352, 3761, 7363, 7366, 7369, 7377, 7384,12040,12040,
1104      7395,12040, 7398,12040,12040, 7406, 7409, 7414,12040,12040,
1105      7417, 7420, 7428, 7435, 7439, 3835, 4268, 7447,12040, 7453,
1106      7456, 7466,12040,12040, 7462, 7476, 7484, 7487, 7495,12040,
1107      3878, 3870, 3910, 3770, 7498, 3790, 3803, 3807, 7503, 7507,
1108      3833, 3859, 3951, 3859, 3865, 4000, 3841, 3879, 3880, 3880,
1109      3887,12040, 3916, 3916, 3914, 3921,12040, 7521, 3898, 3911,
1110
1111      3911, 3927, 3941, 3964, 3947, 3957, 3944, 3959, 3967, 3974,
1112      3969, 7524, 3985, 7527, 7530, 7533, 7536, 7551,12040,12040,
1113      7559,12040, 4007, 3994, 7562, 7565, 7583, 7569, 4009, 7591,
1114     12040,12040, 4017, 7599, 7602, 7610,12040,12040, 7618, 7621,
1115      7629, 7632, 7636, 7640,12040,12040, 7650, 7654, 7662, 7668,
1116      4047, 4054, 4056, 4058, 4060, 4060, 7676, 7680, 7688, 4112,
1117      4193, 7699,12040,12040, 4152, 4088, 7707, 4057, 7573, 7710,
1118      4043, 4048, 7713,12040,12040, 4096, 4084, 4105, 4113, 4122,
1119      4111, 4112, 4121, 7721, 4121, 4153, 4174, 4177, 4161, 4180,
1120      4195, 4191, 7728, 4153, 4163, 4193, 4241, 4242, 4192, 4185,
1121
1122      4188, 4204, 4255, 4257, 4207, 4225, 7731, 7734, 7739, 7742,
1123      7748, 4241, 7760,12040,12040, 4242, 4239, 7768, 7771, 7779,
1124     12040,12040, 7787, 7791, 4227, 4248, 7799,12040,12040, 7807,
1125     12040,12040, 7815, 7818, 7821, 7829, 7836, 4277, 4339, 7847,
1126      4364, 4392, 4268, 4285, 4317, 4295, 4305, 4332, 7855, 7858,
1127      4314, 4319, 4326, 4331, 4356, 7861, 7867, 7870, 7880, 7889,
1128      7892, 7895, 4327, 4337, 4354, 4342, 4347, 4359, 4376, 4363,
1129      7901, 7904, 4375, 4376,12040, 4377, 4389, 4393,12040, 4399,
1130      7912, 4379, 4374, 4448,12040,12040, 4403, 4405, 4391, 4453,
1131     12040,12040, 4415, 7915, 7919, 7925, 7931,12040,12040, 4411,
1132
1133      4416, 4418, 7940,12040,12040, 7948,12040,12040, 7956, 4419,
1134      7959, 7962,12040,12040, 7970, 4449, 4466, 4465, 4476, 4469,
1135      4486, 4477, 4492, 4485, 4495,12040, 4500, 4511,12040, 7979,
1136     12040, 7982, 4512, 4501, 4516, 4506, 4531, 7988, 7991, 8010,
1137      8035, 8082, 8001, 8018, 8021, 4521, 4546, 4562, 4529, 4546,
1138      4564, 4565, 4536, 8025,12040,12040, 4578, 4553, 4554, 4583,
1139      4566, 4573, 8046, 4545, 4547,12040, 4559, 4553, 4561,12040,
1140      4572, 8055, 8058,12040, 4570, 4588, 4598, 8061, 8065, 4591,
1141      8073, 8102, 8093, 8111, 4646, 4619, 4651, 4622, 4664, 4632,
1142      4675, 4651, 4686, 4687, 4698, 4699, 8119, 4708, 4675, 4714,
1143
1144      4684, 4714, 8128, 4730, 4717, 8148, 8195, 4713,12040,12040,
1145      4695, 4751,12040,12040, 4728,12040, 4768, 4769,12040, 4776,
1146      4778, 8122,12040, 4782, 4744, 4788, 4787, 4751, 4793, 4753,
1147      4758, 4740, 8168, 4792, 4893, 4761, 8176,12040,12040, 8184,
1148      4903, 4906,12040, 4817,12040, 4816,12040, 4826,12040, 4831,
1149     12040,12040,12040,12040, 8141,12040,12040, 4820,12040, 4821,
1150      4830, 4892, 4846, 4839, 5045, 4860, 8206, 4856, 4847, 4859,
1151      4850,12040,12040,12040,12040,12040, 4890,12040,12040, 4958,
1152     12040, 8215, 8218, 8221, 4944, 4848, 4962, 4864, 8226, 5088,
1153      4865, 5122, 4870,12040,12040,12040,12040, 4877, 4884, 8229,
1154
1155      4933, 4919, 4935, 8244, 4951, 4939, 4960, 4948,12040, 4942,
1156     12040, 4957, 8248, 8251, 8259, 8266, 8277, 8280, 4973, 4993,
1157      5006, 4989, 5022, 5035, 8288, 8296, 5018, 5035, 5047, 5052,
1158      5060, 5073, 5056, 5058, 8291, 5081,12040, 5079,12040, 5084,
1159      5070, 5075, 8306,12040,12040, 8314,12040,12040, 8322, 5116,
1160      5127, 5097, 5119, 5123, 5130, 5142, 5139, 8330,12040,12040,
1161      5141, 5147, 5146, 5149, 5165, 5163, 5202, 5211, 5206,12040,
1162      5215, 5235, 5191, 5193, 5230, 5225, 5240, 5235, 5235, 5242,
1163      5242, 5243, 5253, 5255, 5257, 5269, 5270, 5267, 5274, 5275,
1164     12040,12040, 5288,12040,12040, 5253, 5256, 5274, 5296, 5280,
1165
1166      5319, 5306, 5303, 5324, 5314, 5311, 5329, 5322, 5320, 5337,
1167      5336, 5333, 5354, 5421, 5375, 5380, 5358, 5360, 5370, 5375,
1168      5388, 5379, 5413, 5394, 5391, 5421, 5405, 5405, 5449, 5431,
1169      5421, 5451, 5467,12040,12040, 5433, 5445, 5443, 5448, 5476,
1170      5456,12040, 5481, 5459,12040, 5489, 5470,12040, 5496, 5473,
1171     12040, 5546, 5479, 5492, 5486, 5499,12040, 5509,12040, 5514,
1172     12040, 5516,12040, 5519, 8338, 5520, 5542, 5539, 5559, 5525,
1173      5527, 5528, 5544, 8341, 5586,12040, 5585,12040, 5591, 5589,
1174      5594, 5592, 5598, 5603,12040,12040,12040,12040,12040,12040,
1175      5642, 5672, 5819, 5822, 5643, 5678, 5606, 5717, 5613, 5693,
1176
1177      5723, 5877, 5745, 5754, 5718, 5790, 5789, 5852, 5600, 5848,
1178      5879, 5913, 5927, 5928, 5662, 5786, 5894, 5911, 5944, 5962,
1179      5990, 6007, 5935, 6023, 5968, 6015, 6033, 6063, 5984, 6120,
1180      5976, 6005, 6065, 6100, 5787, 6103, 6044, 6092, 6140, 6156,
1181      6114, 6142, 6174, 6178, 6121, 6175, 6277, 6328, 6219, 6230,
1182      6329, 6337, 6187, 6321, 5906, 6035, 6299, 6371, 6357, 6373,
1183      6387, 6402, 6393, 6433, 6221, 6294, 6446, 6447, 6379, 6386,
1184      6484, 6517, 6111, 6236, 8349, 8352,12040,12040, 8372, 8381,
1185      8390, 8399, 8408, 8417, 8426, 8435, 8444, 8453, 8462, 8471,
1186      8480, 8489, 8498, 8507, 8516, 8525, 8534, 8543, 8552, 8561,
1187
1188      8570, 8579, 8588, 8597, 8606, 8615, 8624, 8633, 8642, 8651,
1189      8660, 8669, 8678, 8687, 8696, 8705, 8714, 8723, 8732, 8741,
1190      8750, 8759, 8768, 8777, 8786, 8795, 8804, 8813, 8822, 8831,
1191      8840, 8849, 8858, 8867, 8876, 8885, 8894, 8903, 8912, 8919,
1192      8926, 8933, 8940, 8947, 8954, 8961, 8968, 8975, 8982, 8989,
1193      8996, 9003, 9010, 9017, 9024, 9031, 9038, 9045, 9052, 9059,
1194      9066, 9073, 9080, 9087, 9094, 9101, 9108, 9117, 9124, 9129,
1195      9136, 9141, 9148, 9153, 9160, 9165, 9172, 9177, 9184, 9189,
1196      9196, 9201, 9208, 9213, 9220, 9225, 9232, 9237, 9244, 9249,
1197      9256, 9261, 9268, 9273, 9280, 9285, 9292, 9297, 9304, 9309,
1198
1199      9316, 9321, 9328, 9333, 9340, 9345, 9352, 9357, 9364, 9369,
1200      9376, 9381, 9388, 9393, 9400, 9405, 9412, 9417, 9424, 9429,
1201      9436, 9441, 9448, 9453, 9462, 9468, 9475, 9483, 9490, 9498,
1202      9505, 9513, 9520, 9528, 9535, 9543, 9550, 9558, 9565, 9573,
1203      9580, 9588, 9595, 9603, 9610, 9618, 9625, 9633, 9640, 9648,
1204      9655, 9663, 9670, 9678, 9686, 9694, 9701, 9709, 9716, 9724,
1205      9731, 9739, 9746, 9754, 9762, 9770, 9778, 9786, 9793, 9801,
1206      9809, 9817, 9825, 9833, 9840, 9848, 9855, 9863, 9871, 9878,
1207      9886, 9895, 9901, 9908, 9916, 9924, 9932, 9940, 9948, 9955,
1208      9963, 9970, 9978, 9985, 9993,10000,10008,10015,10023,10031,
1209
1210     10039,10047,10055,10062,10070,10078,10086,10094,10102,10109,
1211     10117,10124,10132,10139,10147,10154,10162,10169,10177,10184,
1212     10192,10199,10207,10214,10222,10229,10237,10245,10252,10260,
1213     10267,10275,10282,10290,10298,10305,10313,10322,10331,10338,
1214     10346,10354,10361,10369,10376,10384,10391,10399,10406,10413,
1215     10421,10428,10436,10444,10451,10459,10466,10474,10482,10490,
1216     10497,10505,10513,10521,10528,10536,10543,10551,10558,10566,
1217     10573,10581,10588,10596,10603,10611,10618,10626,10634,10641,
1218     10649,10656,10664,10672,10680,10688,10696,10704,10713,10722,
1219     10729,10737,10745,10752,10760,10767,10775,10782,10790,10797,
1220
1221     10804,10812,10819,10827,10835,10843,10851,10858,10866,10874,
1222     10881,10889,10897,10905,10912,10920,10927,10935,10942,10950,
1223     10957,10965,10972,10980,10988,10996,11003,11011,11019,11027,
1224     11035,11042,11050,11058,11066,11074,11083,11092,11100,11108,
1225     11116,11123,11131,11138,11146,11154,11162,11170,11178,11186,
1226     11194,11202,11210,11218,11225,11233,11240,11248,11256,11264,
1227     11271,11278,11286,11293,11301,11308,11315,11323,11330,11338,
1228     11345,11353,11361,11369,11376,11384,11392,11400,11409,11418,
1229     11426,11434,11441,11448,11456,11464,11472,11480,11488,11495,
1230     11503,11510,11518,11526,11533,11540,11548,11555,11563,11570,
1231
1232     11577,11584,11592,11599,11607,11615,11623,11631,11639,11647,
1233     11655,11664,11673,11681,11689,11696,11704,11712,11720,11728,
1234     11736,11743,11751,11758,11766,11774,11781,11788,11796,11804,
1235     11812,11819,11826,11834,11842,11850,11858,11866,11874,11882,
1236     11890,11899,11908,11916,11923,11930,11938,11946,11954,11961,
1237     11969,11976,11985,11994,12003,12012,12021,12030
1238     } ;
1239
1240 static yyconst flex_int16_t yy_def[3759] =
1241     {   0,
1242      3279, 3279, 3280, 3280, 3280, 3280, 3281, 3281, 3282, 3282,
1243      3283, 3283, 3284, 3284, 3284, 3284, 3285, 3285, 3279, 3279,
1244      3286, 3286, 3287, 3287, 3287, 3287, 3279, 3279, 3287, 3287,
1245      3287, 3287, 3279, 3279, 3287, 3287, 3279, 3279, 3287, 3287,
1246      3287, 3287, 3288, 3288, 3289, 3289, 3279, 3279, 3289, 3289,
1247      3289, 3289, 3290, 3290, 3284, 3284, 3291, 3291, 3292, 3292,
1248      3293, 3293, 3294, 3294, 3295, 3295, 3296, 3296, 3296, 3296,
1249      3279, 3279, 3296, 3296, 3296, 3296, 3279, 3279, 3296, 3296,
1250      3296, 3296, 3279, 3279, 3296, 3296, 3279, 3279, 3296, 3296,
1251      3296, 3296, 3279, 3279, 3296, 3296, 3279, 3279, 3296, 3296,
1252
1253      3296, 3296, 3297, 3297, 3298, 3298, 3279, 3279, 3298, 3298,
1254      3298, 3298, 3299, 3299, 3300, 3300, 3279, 3279, 3300, 3300,
1255      3300, 3300, 3301, 3301, 3302, 3302, 3303, 3303, 3304, 3304,
1256      3305, 3305, 3306, 3306, 3279, 3279, 3306, 3306, 3306, 3306,
1257      3307, 3307, 3308, 3308, 3309, 3309, 3310, 3310, 3278,  149,
1258      3311, 3311, 3312, 3312, 3313, 3313, 3314, 3314, 3315, 3315,
1259      3316, 3316, 3317, 3317, 3318, 3318, 3319, 3319, 3320, 3320,
1260      3321, 3321, 3279, 3279, 3321, 3321, 3321, 3321, 3322, 3322,
1261      3323, 3323, 3279, 3279, 3323, 3323, 3323, 3323, 3324, 3324,
1262      3325, 3325, 3279, 3279, 3325, 3325, 3325, 3325, 3326, 3326,
1263
1264      3327, 3327, 3328, 3328, 3329, 3329, 3279, 3279, 3329, 3329,
1265      3329, 3329, 3330, 3330, 3331, 3331, 3279, 3279, 3331, 3331,
1266      3331, 3331, 3332, 3332, 3333, 3333, 3279, 3279, 3333, 3333,
1267      3333, 3333, 3334, 3334, 3335, 3335, 3336, 3336, 3337, 3337,
1268      3279, 3279, 3337, 3337, 3337, 3337, 3338, 3338, 3339, 3339,
1269      3279, 3279, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1270      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1271      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1272      3278, 3278, 3278, 3340, 3278, 3278, 3340, 3278, 3278, 3278,
1273       290,  290,  292,  290,  293,  293, 3278, 3278, 3278, 3341,
1274
1275      3278, 3278, 3341, 3278, 3278,  294,  293, 3278, 3278, 3278,
1276      3342, 3278, 3278, 3342, 3342, 3342, 3278, 3278, 3278, 3278,
1277      3278, 3343, 3278, 3278, 3343, 3343, 3343, 3343, 3343, 3278,
1278      3278, 3278, 3278, 3278, 3278, 3344, 3278, 3278, 3344, 3344,
1279      3344, 3278, 3278, 3278, 3278, 3278, 3278, 3345, 3278, 3278,
1280      3345, 3345, 3278, 3278, 3278,  355,  293,  293,  294,  359,
1281       358,  358,  358,  358,  359,  365,  363,  363, 3278, 3278,
1282      3278, 3346, 3278, 3278, 3346, 3346, 3346, 3346, 3278, 3278,
1283       293,  293, 3278, 3278, 3278, 3347, 3278, 3278, 3347, 3347,
1284      3347, 3278, 3278,  293,  293, 3278, 3278, 3278, 3348, 3278,
1285
1286      3278, 3348, 3348, 3278, 3278, 3278, 3278, 3278, 3278, 3349,
1287      3278, 3278, 3349, 3349, 3278, 3278, 3278, 3278, 3278, 3278,
1288      3350, 3278, 3278, 3350, 3350, 3350, 3350, 3350, 3278, 3278,
1289       293,  293,  293, 3278, 3278, 3278, 3351, 3278, 3278, 3351,
1290      3278, 3278, 3278, 3278, 3278, 3278, 3352, 3278, 3278, 3352,
1291      3352, 3352, 3278, 3278, 3278, 3278, 3278, 3278, 3353, 3278,
1292      3278, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3278,
1293      3278, 3278, 3278, 3278, 3278, 3354, 3278, 3278, 3354, 3354,
1294      3354, 3354, 3354, 3354, 3278, 3278, 3278, 3278, 3278, 3278,
1295      3355, 3278, 3278, 3355, 3355, 3355, 3355, 3355, 3355, 3355,
1296
1297      3278, 3278, 3278, 3278, 3278, 3278, 3356, 3278, 3278, 3356,
1298      3356, 3278, 3278, 3278, 3278, 3278, 3278, 3357, 3278, 3278,
1299      3357, 3357, 3357, 3278, 3278, 3278, 3278, 3278, 3278, 3358,
1300      3278, 3278, 3358, 3358, 3358, 3358, 3278, 3278,  293,  293,
1301      3278, 3278, 3278, 3359, 3278, 3278, 3359, 3359, 3278, 3278,
1302       293,  363,  363, 3278, 3278, 3278, 3360, 3278, 3278, 3360,
1303      3360, 3360, 3278, 3278,  363,  363, 3278, 3278, 3278, 3361,
1304      3278, 3278, 3361, 3361, 3278, 3278, 3278, 3278, 3278, 3278,
1305      3362, 3278, 3278, 3362, 3362, 3278, 3278,  363,  363, 3278,
1306      3278, 3278, 3363, 3278, 3278, 3363, 3363, 3363, 3278, 3278,
1307
1308       363,  363, 3278, 3278, 3278, 3364, 3278, 3278, 3364, 3364,
1309      3364, 3364, 3364, 3278, 3278,  293,  432,  293, 3278, 3278,
1310      3278, 3365, 3278, 3278, 3365, 3278, 3278, 3278, 3278, 3278,
1311      3278, 3366, 3278, 3278, 3366, 3278, 3278,  293,  293, 3278,
1312      3278, 3278, 3367, 3278, 3278, 3367, 3367, 3278, 3278, 3278,
1313      3278, 3368, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1314      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3369, 3369, 3370,
1315      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1316      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1317      3278, 3278, 3278, 3278, 3371, 3371, 3372, 3278, 3373, 3373,
1318
1319      3373, 3373, 3278, 3374, 3278, 3278, 3375, 3375, 3375, 3375,
1320      3375, 3375, 3375, 3375, 3375, 3376, 3278, 3377, 3377, 3377,
1321      3377, 3378, 3278, 3379, 3379, 3379, 3380, 3278, 3278, 3278,
1322      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1323      3278, 3278, 3278, 3278, 3278, 3278, 3381, 3381, 3381, 3381,
1324      3381, 3382, 3278, 3383, 3383, 3383, 3383, 3384, 3278, 3385,
1325      3385, 3385, 3386, 3278, 3387, 3387, 3387, 3388, 3278, 3389,
1326      3389, 3389, 3389, 3389, 3389, 3390, 3278, 3278, 3391, 3391,
1327      3392, 3278, 3393, 3393, 3393, 3393, 3394, 3278, 3395, 3395,
1328      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1329
1330      3395, 3395, 3395, 3395, 3396, 3278, 3397, 3397, 3397, 3397,
1331      3397, 3397, 3397, 3397, 3398, 3278, 3399, 3399, 3399, 3399,
1332      3399, 3399, 3399, 3399, 3400, 3278, 3401, 3401, 3401, 3402,
1333      3278, 3403, 3403, 3403, 3403, 3404, 3278, 3405, 3405, 3405,
1334      3405, 3405, 3405, 3406, 3278, 3407, 3407, 3407, 3407, 3408,
1335      3278, 3278, 3409, 3409, 3409, 3409, 3409, 3410, 3278, 3411,
1336      3411, 3411, 3412, 3278, 3413, 3413, 3413, 3414, 3278, 3415,
1337      3415, 3415, 3415, 3416, 3278, 3417, 3417, 3417, 3417, 3417,
1338      3417, 3418, 3278, 3278, 3419, 3419, 3420, 3278, 3421, 3421,
1339      3422, 3278, 3423, 3423, 3423, 3424, 3425, 3278, 3425, 3278,
1340
1341      3278, 3278, 3426, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1342      3427, 3428, 3428, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1343      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1344      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1345      3278, 3278, 3429, 3430, 3430, 3431, 3278, 3278, 3431, 3278,
1346      3432, 3432, 3278, 3433, 3278, 3278, 3433, 3433, 3433, 3433,
1347      3433, 3433, 3434, 3434, 3435, 3435, 3435, 3436, 3436, 3278,
1348      3278, 3437, 3438, 3438, 3278, 3278, 3278, 3278, 3278, 3278,
1349      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3439, 3278,
1350      3278, 3439, 3439, 3440, 3440, 3441, 3278, 3278, 3441, 3442,
1351
1352      3442, 3278, 3278, 3443, 3444, 3444, 3445, 3445, 3446, 3446,
1353      3447, 3447, 3447, 3278, 3278, 3447, 3447, 3448, 3448, 3278,
1354      3278, 3449, 3450, 3450, 3451, 3278, 3278, 3278, 3278, 3452,
1355      3452, 3453, 3453, 3278, 3278, 3453, 3278, 3278, 3453, 3453,
1356      3453, 3453, 3453, 3453, 3453, 3453, 3453, 3453, 3454, 3454,
1357      3278, 3278, 3278, 3278, 3455, 3455, 3455, 3455, 3455, 3456,
1358      3456, 3457, 3457, 3457, 3278, 3278, 3457, 3457, 3457, 3458,
1359      3458, 3459, 3278, 3278, 3460, 3460, 3461, 3278, 3278, 3461,
1360      3462, 3462, 3463, 3278, 3278, 3463, 3463, 3463, 3464, 3464,
1361      3465, 3465, 3465, 3466, 3466, 3278, 3467, 3467, 3467, 3467,
1362
1363      3468, 3468, 3469, 3278, 3278, 3470, 3470, 3471, 3471, 3472,
1364      3472, 3473, 3473, 3473, 3474, 3474, 3475, 3475, 3475, 3475,
1365      3475, 3476, 3476, 3278, 3477, 3478, 3478, 3278, 3278, 3479,
1366      3479, 3278, 3278, 3480, 3481, 3481, 3482, 3278, 3278, 3482,
1367      3278, 3278, 3483, 3278, 3278, 3278, 3278, 3278, 3278, 3484,
1368      3278, 3485, 3278, 3485, 3278, 3278, 3278, 3278, 3278, 3278,
1369      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1370      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1371      3278, 3278, 3278, 3278, 3486, 3278, 3487, 3278, 3487, 3488,
1372      3278, 3278, 3278, 3488, 3278, 3278, 3489, 3278, 3489, 3490,
1373
1374      3278, 3278, 3278, 3278, 3278, 3490, 3278, 3278, 3490, 3490,
1375      3490, 3278, 3491, 3278, 3491, 3492, 3492, 3492, 3278, 3493,
1376      3278, 3493, 3278, 3278, 3278, 3494, 3278, 3495, 3278, 3495,
1377      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1378      3278, 3278, 3278, 3496, 3278, 3278, 3278, 3496, 3496, 3278,
1379      3497, 3278, 3497, 3498, 3278, 3278, 3278, 3498, 3278, 3499,
1380      3278, 3499, 3278, 3278, 3278, 3500, 3278, 3501, 3278, 3501,
1381      3502, 3502, 3278, 3503, 3278, 3503, 3504, 3504, 3504, 3278,
1382      3278, 3278, 3504, 3504, 3278, 3505, 3278, 3505, 3278, 3278,
1383      3506, 3278, 3507, 3278, 3507, 3508, 3278, 3278, 3278, 3278,
1384
1385      3278, 3278, 3278, 3509, 3278, 3509, 3510, 3510, 3510, 3510,
1386      3278, 3278, 3278, 3510, 3278, 3278, 3278, 3278, 3278, 3510,
1387      3510, 3510, 3510, 3510, 3510, 3510, 3510, 3510, 3278, 3511,
1388      3278, 3511, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1389      3512, 3512, 3512, 3512, 3278, 3513, 3278, 3513, 3514, 3514,
1390      3514, 3514, 3278, 3278, 3278, 3278, 3278, 3514, 3514, 3278,
1391      3515, 3278, 3515, 3516, 3278, 3278, 3278, 3278, 3517, 3278,
1392      3517, 3518, 3278, 3278, 3278, 3518, 3278, 3519, 3278, 3519,
1393      3520, 3278, 3278, 3278, 3520, 3520, 3520, 3278, 3521, 3278,
1394      3521, 3278, 3278, 3278, 3278, 3522, 3278, 3523, 3278, 3523,
1395
1396      3278, 3278, 3278, 3524, 3524, 3278, 3278, 3524, 3278, 3525,
1397      3278, 3525, 3526, 3278, 3278, 3278, 3278, 3527, 3278, 3527,
1398      3278, 3278, 3278, 3278, 3278, 3528, 3278, 3528, 3278, 3278,
1399      3529, 3529, 3278, 3278, 3278, 3530, 3278, 3530, 3531, 3531,
1400      3531, 3531, 3531, 3278, 3532, 3278, 3532, 3278, 3533, 3278,
1401      3534, 3278, 3534, 3278, 3278, 3278, 3278, 3535, 3278, 3535,
1402      3278, 3278, 3278, 3536, 3278, 3537, 3278, 3537, 3538, 3539,
1403      3278, 3278, 3278, 3278, 3278, 3540, 3541, 3278, 3278, 3278,
1404      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1405      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1406
1407      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3542, 3278,
1408      3278, 3543, 3278, 3544, 3545, 3278, 3278, 3278, 3278, 3278,
1409      3278, 3278, 3278, 3545, 3278, 3278, 3545, 3546, 3547, 3278,
1410      3278, 3547, 3548, 3549, 3278, 3278, 3278, 3278, 3278, 3278,
1411      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3550,
1412      3550, 3278, 3278, 3551, 3552, 3552, 3553, 3278, 3278, 3554,
1413      3278, 3278, 3555, 3556, 3557, 3557, 3278, 3278, 3557, 3557,
1414      3558, 3278, 3278, 3278, 3278, 3559, 3278, 3278, 3560, 3561,
1415      3561, 3561, 3561, 3278, 3278, 3278, 3278, 3278, 3561, 3561,
1416      3561, 3561, 3561, 3561, 3561, 3561, 3561, 3562, 3278, 3278,
1417
1418      3278, 3563, 3563, 3563, 3563, 3564, 3565, 3565, 3565, 3565,
1419      3278, 3278, 3278, 3565, 3565, 3566, 3567, 3568, 3569, 3569,
1420      3570, 3571, 3571, 3571, 3571, 3572, 3278, 3278, 3278, 3278,
1421      3278, 3278, 3573, 3574, 3278, 3278, 3278, 3278, 3575, 3575,
1422      3278, 3278, 3278, 3575, 3576, 3577, 3578, 3278, 3278, 3278,
1423      3278, 3278, 3278, 3579, 3278, 3278, 3278, 3580, 3580, 3278,
1424      3278, 3278, 3581, 3582, 3278, 3278, 3582, 3582, 3582, 3583,
1425      3278, 3584, 3585, 3586, 3587, 3588, 3589, 3590, 3590, 3278,
1426      3590, 3278, 3278, 3278, 3591, 3592, 3278, 3278, 3278, 3278,
1427      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1428
1429      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1430      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3593,
1431      3278, 3278, 3278, 3594, 3278, 3595, 3596, 3278, 3278, 3278,
1432      3596, 3278, 3278, 3278, 3596, 3597, 3598, 3278, 3278, 3278,
1433      3278, 3278, 3599, 3600, 3278, 3278, 3278, 3278, 3278, 3278,
1434      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3601, 3278, 3278,
1435      3278, 3278, 3278, 3602, 3603, 3603, 3604, 3278, 3278, 3278,
1436      3605, 3278, 3278, 3278, 3606, 3607, 3608, 3608, 3278, 3278,
1437      3278, 3278, 3278, 3278, 3278, 3608, 3609, 3278, 3278, 3278,
1438      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3610, 3611, 3278,
1439
1440      3278, 3611, 3611, 3278, 3278, 3278, 3611, 3611, 3278, 3278,
1441      3611, 3611, 3611, 3611, 3611, 3611, 3612, 3278, 3278, 3613,
1442      3613, 3613, 3614, 3615, 3278, 3278, 3615, 3615, 3278, 3278,
1443      3615, 3616, 3617, 3618, 3619, 3619, 3620, 3621, 3621, 3621,
1444      3278, 3278, 3621, 3622, 3623, 3624, 3278, 3625, 3625, 3625,
1445      3626, 3627, 3628, 3629, 3630, 3630, 3631, 3632, 3278, 3278,
1446      3278, 3632, 3632, 3632, 3633, 3278, 3278, 3278, 3634, 3635,
1447      3278, 3278, 3636, 3637, 3638, 3638, 3278, 3278, 3639, 3640,
1448      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1449      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1450
1451      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3641, 3642,
1452      3278, 3643, 3644, 3644, 3644, 3645, 3646, 3278, 3278, 3278,
1453      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3647, 3648,
1454      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3649,
1455      3278, 3278, 3278, 3650, 3651, 3278, 3278, 3652, 3653, 3278,
1456      3278, 3654, 3655, 3655, 3278, 3278, 3278, 3278, 3278, 3278,
1457      3655, 3278, 3278, 3278, 3278, 3656, 3657, 3278, 3278, 3278,
1458      3278, 3278, 3657, 3657, 3657, 3278, 3278, 3278, 3278, 3278,
1459      3657, 3657, 3657, 3657, 3278, 3278, 3658, 3278, 3278, 3278,
1460      3278, 3278, 3659, 3278, 3278, 3660, 3661, 3278, 3278, 3278,
1461
1462      3278, 3278, 3661, 3278, 3278, 3278, 3661, 3278, 3278, 3662,
1463      3663, 3664, 3664, 3665, 3666, 3666, 3666, 3278, 3278, 3278,
1464      3666, 3278, 3278, 3667, 3668, 3278, 3278, 3278, 3278, 3278,
1465      3669, 3670, 3671, 3672, 3673, 3278, 3278, 3278, 3278, 3674,
1466      3675, 3675, 3675, 3675, 3676, 3278, 3278, 3278, 3278, 3677,
1467      3678, 3278, 3278, 3278, 3278, 3278, 3679, 3680, 3680, 3278,
1468      3278, 3278, 3681, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1469      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1470      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3682, 3683,
1471      3278, 3278, 3278, 3684, 3278, 3278, 3684, 3685, 3278, 3278,
1472
1473      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1474      3686, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1475      3278, 3278, 3687, 3278, 3278, 3278, 3278, 3278, 3688, 3278,
1476      3278, 3278, 3278, 3278, 3689, 3690, 3690, 3278, 3278, 3690,
1477      3278, 3691, 3692, 3278, 3278, 3278, 3692, 3692, 3692, 3278,
1478      3278, 3278, 3278, 3278, 3692, 3692, 3692, 3278, 3278, 3278,
1479      3693, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3694,
1480      3695, 3278, 3278, 3278, 3695, 3695, 3696, 3697, 3698, 3278,
1481      3278, 3699, 3700, 3278, 3278, 3700, 3700, 3278, 3278, 3700,
1482      3701, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1483
1484      3702, 3703, 3704, 3705, 3706, 3278, 3278, 3278, 3278, 3278,
1485      3278, 3707, 3708, 3708, 3708, 3708, 3709, 3278, 3710, 3711,
1486      3712, 3713, 3713, 3278, 3278, 3278, 3278, 3714, 3278, 3278,
1487      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1488      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3715,
1489      3716, 3278, 3717, 3278, 3278, 3278, 3717, 3278, 3278, 3278,
1490      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1491      3278, 3278, 3718, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1492      3278, 3278, 3278, 3278, 3278, 3278, 3719, 3278, 3278, 3278,
1493      3720, 3721, 3722, 3722, 3278, 3278, 3278, 3278, 3722, 3278,
1494
1495      3723, 3724, 3724, 3724, 3724, 3278, 3278, 3278, 3724, 3724,
1496      3724, 3725, 3278, 3278, 3278, 3726, 3727, 3727, 3727, 3728,
1497      3278, 3278, 3729, 3278, 3278, 3278, 3730, 3731, 3278, 3278,
1498      3278, 3731, 3731, 3278, 3278, 3278, 3278, 3731, 3732, 3278,
1499      3733, 3734, 3735, 3736, 3737, 3738, 3278, 3278, 3739, 3739,
1500      3739, 3740, 3278, 3741, 3278, 3278, 3742, 3743, 3743, 3278,
1501      3744, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1502      3278, 3278, 3278, 3278, 3745, 3278, 3278, 3746, 3278, 3278,
1503      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3747, 3278,
1504      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1505
1506      3278, 3278, 3278, 3278, 3748, 3278, 3278, 3749, 3750, 3750,
1507      3278, 3278, 3278, 3278, 3750, 3278, 3751, 3752, 3752, 3752,
1508      3752, 3752, 3278, 3278, 3752, 3752, 3278, 3278, 3278, 3278,
1509      3727, 3727, 3727, 3728, 3278, 3278, 3730, 3278, 3278, 3731,
1510      3731, 3731, 3278, 3278, 3278, 3278, 3731, 3732, 3278, 3733,
1511      3278, 3278, 3278, 3278, 3736, 3737, 3738, 3278, 3278, 3278,
1512      3278, 3278, 3739, 3739, 3278, 3278, 3278, 3741, 3742, 3743,
1513      3743, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3745,
1514      3278, 3278, 3278, 3746, 3278, 3278, 3278, 3278, 3278, 3278,
1515      3278, 3278, 3278, 3278, 3747, 3278, 3278, 3278, 3278, 3278,
1516
1517      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1518      3278, 3748, 3278, 3278, 3750, 3750, 3278, 3278, 3278, 3278,
1519      3751, 3752, 3752, 3752, 3752, 3752, 3278, 3278, 3278, 3752,
1520      3278, 3278, 3727, 3727, 3278, 3278, 3728, 3278, 3278, 3278,
1521      3278, 3278, 3278, 3278, 3278, 3731, 3731, 3731, 3278, 3278,
1522      3278, 3278, 3732, 3733, 3278, 3278, 3278, 3278, 3278, 3737,
1523      3738, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1524      3742, 3743, 3743, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1525      3278, 3278, 3278, 3278, 3278, 3278, 3746, 3278, 3278, 3278,
1526      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3747, 3278, 3278,
1527
1528      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1529      3278, 3278, 3278, 3748, 3750, 3278, 3278, 3278, 3278, 3278,
1530      3278, 3278, 3752, 3752, 3752, 3278, 3278, 3752, 3752, 3278,
1531      3278, 3278, 3727, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1532      3731, 3731, 3731, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1533      3278, 3278, 3278, 3278, 3278, 3278, 3737, 3738, 3278, 3278,
1534      3278, 3278, 3278, 3278, 3742, 3743, 3743, 3278, 3278, 3278,
1535      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1536      3278, 3278, 3278, 3746, 3278, 3278, 3278, 3278, 3278, 3278,
1537      3278, 3278, 3747, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1538
1539      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3748, 3278,
1540      3278, 3750, 3278, 3278, 3278, 3752, 3752, 3278, 3278, 3278,
1541      3278, 3278, 3278, 3278, 3752, 3727, 3278, 3278, 3278, 3278,
1542      3278, 3278, 3731, 3278, 3278, 3731, 3278, 3278, 3278, 3278,
1543      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3737, 3738,
1544      3278, 3278, 3278, 3278, 3742, 3743, 3743, 3743, 3278, 3278,
1545      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1546      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1547      3747, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1548      3278, 3278, 3278, 3278, 3278, 3748, 3278, 3278, 3278, 3750,
1549
1550      3752, 3752, 3278, 3278, 3278, 3278, 3278, 3278, 3752, 3727,
1551      3731, 3278, 3278, 3278, 3731, 3278, 3278, 3278, 3278, 3278,
1552      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1553      3278, 3738, 3278, 3278, 3278, 3278, 3742, 3743, 3743, 3743,
1554      3753, 3754, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1555      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1556      3278, 3278, 3747, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1557      3278, 3278, 3278, 3278, 3750, 3752, 3752, 3278, 3278, 3727,
1558      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1559      3278, 3278, 3278, 3278, 3278, 3278, 3738, 3278, 3278, 3278,
1560
1561      3278, 3742, 3743, 3755, 3756, 3753, 3754, 3278, 3278, 3278,
1562      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1563      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3750,
1564      3752, 3752, 3278, 3278, 3278, 3727, 3278, 3278, 3278, 3278,
1565      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1566      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1567      3742, 3755, 3743, 3757, 3756, 3758, 3743, 3278, 3278, 3278,
1568      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1569      3278, 3750, 3752, 3752, 3278, 3278, 3278, 3278, 3727, 3278,
1570      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3742,
1571
1572      3757, 3278, 3758, 3743, 3278, 3278, 3278, 3278, 3278, 3278,
1573      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1574      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1575      3278, 3278, 3278, 3278, 3742, 3278, 3278, 3278, 3278, 3278,
1576      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1577      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1578      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3742, 3278,
1579      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1580      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1581      3278, 3278, 3742, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1582
1583      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1584      3278, 3278, 3278, 3742, 3278, 3278, 3278, 3278, 3278, 3278,
1585      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1586      3278, 3278, 3742, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1587      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1588      3278, 3742, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1589      3278, 3278, 3278, 3278, 3742, 3278, 3278, 3278, 3278, 3278,
1590      3278, 3278, 3278, 3742, 3278, 3278, 3278, 3278, 3278, 3278,
1591      3278, 3278, 3742, 3742, 3278, 3278, 3278, 3278, 3278, 3278,
1592      3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742,
1593
1594      3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742,
1595      3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742,
1596      3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742,
1597      3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742,
1598      3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742,
1599      3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742,
1600      3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742,
1601      3742, 3742, 3742, 3742, 3742, 3742, 3278,    0, 3278, 3278,
1602      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1603      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1604
1605      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1606      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1607      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1608      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1609      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1610      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1611      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1612      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1613      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1614      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1615
1616      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1617      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1618      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1619      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1620      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1621      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1622      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1623      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1624      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1625      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1626
1627      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1628      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1629      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1630      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1631      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1632      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1633      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1634      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1635      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1636      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1637
1638      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1639      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1640      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1641      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1642      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1643      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1644      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1645      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1646      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1647      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1648
1649      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1650      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1651      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1652      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1653      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
1654      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278
1655     } ;
1656
1657 static yyconst flex_int16_t yy_nxt[12115] =
1658     {   0,
1659      3278,  256,  257,  256,  256,  257,  256,  256,  257,  256,
1660       256,  257,  256,  261,  257,  261,  267,  258,  264,  267,
1661       258,  264, 3278,  259, 3278,  265,  259, 3278,  265,  262,
1662       261,  257,  261,  652,  268,  270,  271,  268,  270,  271,
1663       272,  273,  697,  272,  273,  652,  262,  277,  278,  653,
1664       274,  270,  271,  274,  275,  655,  272,  270,  271,  686,
1665       275,  654,  272,  277,  278, 1731,  274,  257,  257,  257,
1666       842,  654,  274,  257,  257,  257,  289,  257,  289,  289,
1667       257,  289,  843,  280,  289,  257,  289,  673, 1735,  280,
1668       727,  279,  290, 1350,  689,  290,  651,  651,  651, 1351,
1669
1670       291,  651,  651,  651,  651,  651,  651,  279,  281,  282,
1671       257,  282,  281,  281,  281,  281,  281,  281,  281,  283,
1672       281,  281,  281,  684,  281,  285,  281,  286,  281,  289,
1673       257,  289,  257,  257,  257,  257,  257,  257,  685,  289,
1674       257,  289,  289,  257,  289,  291,  690,  798,  292,  655,
1675       799,  292,  916,  281,  281,  290,  655,  655,  290,  289,
1676       257,  289,  651,  651,  651,  654,  651,  651,  651,  651,
1677       651,  651,  654,  654, 3278,  293,  917,  287,  281,  282,
1678       257,  282,  281,  281,  281,  281,  281,  281,  281,  283,
1679       281,  281,  281, 1737,  281,  285,  281,  286,  281,  289,
1680
1681       257,  289,  257,  257,  257,  257,  257,  257,  660,  289,
1682       257,  289,  289,  257,  289,  293,  666,  727,  294,  811,
1683       976,  294,  812,  281,  281,  291,  736,  728,  291,  257,
1684       257,  257,  257,  257,  257,  289,  257,  289,  289,  257,
1685       289,  289,  257,  289,  977,  295,  848,  287,  295,  655,
1686       661,  293,  791,  849,  293,  740,  662,  296,  289,  257,
1687       289,  663,  651,  651,  651,  654,  664,  651,  651,  651,
1688       651,  651,  651,  792,  296,  297,  298,  257,  298,  297,
1689       297,  297,  297,  297,  297,  297,  299,  297,  297,  297,
1690       714,  297,  301,  297,  302,  297,  305,  257,  305,  305,
1691
1692       257,  305,  257,  257,  257,  715,  257,  257,  257,  305,
1693       257,  305,  306,  904,  850,  306,  905, 1744,  294,  710,
1694       297,  297,  294,  711,  752,  306,  670,  712,  303,  297,
1695       298,  257,  298,  297,  297,  297,  297,  297,  297,  297,
1696       299,  297,  297,  297,  655,  297,  301,  297,  302,  297,
1697       305,  257,  305,  305,  257,  305,  305,  257,  305,  800,
1698       654,  858,  270,  271,  856,  691,  306,  272, 3278,  307,
1699       690,  857,  307,  801,  297,  297,  736,  317,  692,  752,
1700       685, 1745,  303,  308,  309,  257,  309,  308,  308,  308,
1701       308,  308,  308,  308,  310,  308,  308,  308, 1746,  308,
1702
1703       312,  308,  313,  308, 1747,  655,  318,  684,  331,  257,
1704       331,  331,  257,  331,  343,  257,  343,  690,  270,  271,
1705       693,  654,  685,  272,  332,  703,  795,  332,  308,  308,
1706       344,  689,  704,  317,  796, 1012,  314,  758, 1013,  315,
1707       797,  654,  651,  651,  651, 1752,  316,  308,  309,  257,
1708       309,  308,  308,  308,  308,  308,  308,  308,  310,  308,
1709       308,  308,  318,  308,  312,  308,  313,  308,  343,  257,
1710       343,  354,  257,  354,  354,  257,  354, 1753,  354,  257,
1711       354,  354,  257,  354,  344,  655,  741,  355,  655,  736,
1712       355,  851,  308,  308,  356,  716, 1493,  356, 1754,  690,
1713
1714       314,  654,  742,  315,  654,  651,  651,  651,  758, 1494,
1715       316,  319,  320,  257,  320,  319,  319,  319,  319,  319,
1716       319,  319,  321,  319,  319,  319, 1755,  319,  323,  319,
1717       324,  319,  257,  257,  257,  257,  257,  257,  354,  257,
1718       354,  776,  354,  257,  354,  354,  257,  354,  357, 1756,
1719       655,  357,  655,  655,  355, 1757,  319,  319,  355,  722,
1720       689,  358,  651,  651,  651,  325,  654,  326,  654,  654,
1721       776,  327,  651,  651,  651,  844,  328,  329,  319,  320,
1722       257,  320,  319,  319,  319,  319,  319,  319,  319,  321,
1723       319,  319,  319,  689,  319,  323,  319,  324,  319,  354,
1724
1725       257,  354,  257,  257,  257,  257,  257,  257,  883,  354,
1726       257,  354,  354,  257,  354,  358,  739, 1758,  359,  777,
1727       679,  359,  736,  319,  319,  360,  732,  736,  360,  651,
1728       651,  651,  325,  735,  326,  651,  651,  651,  327,  651,
1729       651,  651, 1765,  328,  329,  333,  334,  257,  334,  333,
1730       333,  333,  333,  333,  333,  333,  335,  333,  333,  333,
1731       686,  333,  337,  333,  338,  333,  354,  257,  354,  354,
1732       257,  354,  257,  257,  257,  898,  257,  257,  257,  354,
1733       257,  354,  361, 1766, 1775,  361,  898,  868,  362,  743,
1734       333,  333,  362,  730,  731,  358,  874,  339,  651,  651,
1735
1736       651,  899,  689,  340,  744,  651,  651,  651,  651,  651,
1737       651,  950,  341,  333,  334,  257,  334,  333,  333,  333,
1738       333,  333,  333,  333,  335,  333,  333,  333, 1777,  333,
1739       337,  333,  338,  333,  354,  257,  354,  257,  257,  257,
1740       257,  257,  257,  690,  354,  257,  354,  354,  257,  354,
1741       358,  655,  690,  363, 1778,  916,  363,  655,  333,  333,
1742       361,  655,  655,  361,  763,  339, 1788,  654,  651,  651,
1743       651,  340,  976,  654,  651,  651,  651,  654,  654,  985,
1744       341,  345,  346,  257,  346,  345,  345,  345,  345,  345,
1745       345,  345,  347,  345,  345,  345,  917,  345,  349,  345,
1746
1747       350,  345,  354,  257,  354,  354,  257,  354,  257,  257,
1748       257, 1789,  257,  257,  257,  354,  257,  354,  364,  655,
1749      1799,  364,  655, 1802,  365,  844,  345,  345,  365,  768,
1750      1803,  366,  651,  651,  651,  654, 3278,  351,  654,  651,
1751       651,  651,  651,  651,  651, 1807,  352,  345,  346,  257,
1752       346,  345,  345,  345,  345,  345,  345,  345,  347,  345,
1753       345,  345,  976,  345,  349,  345,  350,  345,  354,  257,
1754       354,  257,  257,  257,  257,  257,  257,  689,  354,  257,
1755       354,  354,  257,  354,  366,  777,  985,  367,  736,  916,
1756       367, 1808,  345,  345,  364,  655, 1811,  364,  354,  257,
1757
1758       354, 1812,  781,  351,  354,  257,  354,  651,  651,  651,
1759       882,  654,  352,  986,  368,  651,  651,  651,  727, 1813,
1760       368,  369,  370,  257,  370,  369,  369,  369,  369,  369,
1761       369,  369,  371,  369,  369,  369,  976,  369,  373,  369,
1762       374,  369,  380,  257,  380,  380,  257,  380,  257,  257,
1763       257,  925,  257,  257,  257,  926,  745,  655,  381, 1020,
1764       986,  381,  689, 1021,  357, 3278,  369,  369,  357,  655,
1765       655,  375,  734,  654,  891,  686,  787,  376,  651,  651,
1766       651,  377,  651,  651,  651,  654,  654,  378,  369,  370,
1767       257,  370,  369,  369,  369,  369,  369,  369,  369,  371,
1768
1769       369,  369,  369,  673,  369,  373,  369,  374,  369,  380,
1770       257,  380,  380,  257,  380,  380,  257,  380,  891,  380,
1771       257,  380,  651,  651,  651,  381,  736,  802,  381,  655,
1772       655,  382, 1138,  369,  369,  382,  805,  655,  375,  803,
1773       804,  651,  651,  651,  376,  654,  654, 1814,  377,  651,
1774       651,  651, 1677,  654,  378,  383,  384,  257,  384,  383,
1775       383,  383,  383,  383,  383,  383,  385,  383,  383,  383,
1776       689,  383,  387,  383,  388,  383,  393,  257,  393,  393,
1777       257,  393,  257,  257,  257,  930,  257,  257,  257,  651,
1778       651,  651,  394,  655,  655,  394,  655, 1815,  357,  931,
1779
1780       383,  383,  357,  815, 1816,  389,  651,  651,  651,  654,
1781       654,  390,  654,  651,  651,  651,  651,  651,  651,  651,
1782       651,  651,  391,  383,  384,  257,  384,  383,  383,  383,
1783       383,  383,  383,  383,  385,  383,  383,  383, 1824,  383,
1784       387,  383,  388,  383,  393,  257,  393,  393,  257,  393,
1785       393,  257,  393,  935,  393,  257,  393, 1138,  655, 1505,
1786       394, 1469,  655,  394,  655,  825,  395,  931,  383,  383,
1787       395,  830, 1494,  389,  654,  651,  651,  651,  654,  390,
1788       654,  651,  651,  651,  651,  651,  651,  651,  651,  651,
1789       391,  396,  397,  257,  397,  396,  396,  396,  396,  396,
1790
1791       396,  396,  398,  396,  396,  396, 1827,  396,  400,  396,
1792       401,  396,  405,  257,  405,  405,  257,  405,  416,  257,
1793       416, 1828,  416,  257,  416,  430,  257,  430,  406,  655,
1794       655,  406,  655, 1831,  417,  858,  396,  396,  417,  836,
1795      1833,  431,  651,  651,  651,  654,  654,  402,  654,  651,
1796       651,  651,  403,  396,  397,  257,  397,  396,  396,  396,
1797       396,  396,  396,  396,  398,  396,  396,  396, 1835,  396,
1798       400,  396,  401,  396,  430,  257,  430,  257,  257,  257,
1799       257,  257,  257,  851,  430,  257,  430,  430,  257,  430,
1800       431,  690, 1836,  432, 1838, 1839,  432,  655,  396,  396,
1801
1802       431, 1840, 1845,  431, 1848,  850,  651,  651,  651,  402,
1803       651,  651,  651,  654,  403,  407,  408,  257,  408,  407,
1804       407,  407,  407,  407,  407,  407,  409,  407,  407,  407,
1805      1849,  407,  411,  407,  412,  407,  430,  257,  430,  430,
1806       257,  430,  442,  257,  442,  935,  442,  257,  442,  454,
1807       257,  454,  433,  851, 1850,  433,  655,  689,  443,  982,
1808       407,  407,  443,  863,  655,  455,  651,  651,  651,  651,
1809       651,  651,  654,  651,  651,  651,  413,  651,  651,  651,
1810       654, 1852,  414,  407,  408,  257,  408,  407,  407,  407,
1811       407,  407,  407,  407,  409,  407,  407,  407, 1855,  407,
1812
1813       411,  407,  412,  407,  454,  257,  454,  471,  257,  471,
1814       471,  257,  471, 1856,  486,  257,  486,  486,  257,  486,
1815       455, 1858,  655,  472, 1862, 1863,  472,  655,  407,  407,
1816       487,  918,  655,  487,  651,  651,  651,  868,  654,  651,
1817       651,  651,  919,  654,  413,  920, 1864,  874,  654, 1866,
1818       414,  418,  419,  257,  419,  418,  418,  418,  418,  418,
1819       418,  418,  420,  418,  418,  418, 1680,  418,  422,  418,
1820       423,  418,  502,  257,  502,  502,  257,  502,  513,  257,
1821       513, 1877,  513,  257,  513,  851,  655, 1878,  503, 1879,
1822      1881,  503, 1882,  690,  514,  851,  418,  418,  514,  424,
1823
1824       655,  425,  654,  690,  651,  651,  651,  426,  651,  651,
1825       651,  651,  651,  651,  427,  882,  654,  428,  418,  419,
1826       257,  419,  418,  418,  418,  418,  418,  418,  418,  420,
1827       418,  418,  418, 1883,  418,  422,  418,  423,  418,  525,
1828       257,  525,  525,  257,  525,  538,  257,  538,  918,  538,
1829       257,  538,  883, 1884, 1885,  526, 1138, 1138,  526,  919,
1830      1505,  539,  934,  418,  418,  539,  424,  736,  425,  651,
1831       651,  651, 1140, 1543,  426,  651,  651,  651,  651,  651,
1832       651,  427, 1874, 1886,  428,  434,  435,  257,  435,  434,
1833       434,  434,  434,  434,  434,  434,  436,  434,  434,  434,
1834
1835      1887,  434,  438,  434,  439,  434,  257,  257,  257,  257,
1836       257,  257,  538,  257,  538,  935,  538,  257,  538,  538,
1837       257,  538,  357, 1888, 1889,  357,  655,  655,  539,  987,
1838       434,  434,  539,  887,  896,  540,  651,  651,  651,  651,
1839       651,  651,  654,  654, 1890, 1892,  440,  434,  435,  257,
1840       435,  434,  434,  434,  434,  434,  434,  434,  436,  434,
1841       434,  434, 1893,  434,  438,  434,  439,  434,  538,  257,
1842       538,  550,  257,  550,  550,  257,  550,  935,  257,  257,
1843       257,  257,  257,  257,  540, 1894, 1895,  551,  927, 1898,
1844       551,  988,  434,  434,  552,  928, 1901,  552,  651,  651,
1845
1846       651,  929,  902,  902,  902, 1155, 1155, 1155,  440,  444,
1847       445,  257,  445,  444,  444,  444,  444,  444,  444,  444,
1848       446,  444,  444,  444, 1902,  444,  448,  444,  449,  444,
1849       550,  257,  550,  550,  257,  550,  550,  257,  550,  937,
1850       550,  257,  550,  564,  257,  564,  551, 1903, 1904,  551,
1851       938,  940,  553,  920,  444,  444,  553,  937,  928,  565,
1852       450,  903,  940,  927,  941,  451, 1905, 1906,  938,  928,
1853       928,  934, 1485, 1485, 1485,  929,  941,  452,  444,  445,
1854       257,  445,  444,  444,  444,  444,  444,  444,  444,  446,
1855       444,  444,  444, 1910,  444,  448,  444,  449,  444,  564,
1856
1857       257,  564,  257,  257,  257,  257,  257,  257, 1911,  564,
1858       257,  564,  564,  257,  564,  565, 1913, 1914,  552,  927,
1859       940,  552, 1915,  444,  444,  565,  928,  928,  565,  450,
1860       918, 1917,  981,  981,  451,  902,  902,  902, 1930, 1142,
1861      1931,  938, 1932, 1933,  934, 1934,  452,  456,  457,  257,
1862       457,  456,  456,  456,  456,  456,  456,  456,  458,  456,
1863       456,  456,  459,  456,  460,  456,  461,  456,  459,  459,
1864       459,  459,  459,  459,  459,  459,  459,  459,  459,  459,
1865       459,  459,  459,  459,  459,  459,  459,  459,  459,  459,
1866       459,  459,  456,  456,  459,  462,  463,  464,  459,  459,
1867
1868       459,  459,  459,  465,  459,  459,  466,  459,  459,  459,
1869       467,  459,  468,  469,  459,  459,  459,  459,  459,  459,
1870       459,  473,  474,  257,  474,  473,  473,  473,  473,  473,
1871       473,  473,  475,  473,  473,  473, 1937,  473,  477,  473,
1872       478,  473,  564,  257,  564,  564,  257,  564,  576,  257,
1873       576, 1938,  576,  257,  576,  587,  257,  587,  566, 1308,
1874      1939,  566, 1940, 1945,  577, 1953,  473,  473,  577, 1309,
1875       479,  588, 1155, 1155, 1155, 1954, 1310,  480, 1961, 1965,
1876       481, 1178, 1178, 1178,  482, 1967,  483,  484,  473,  474,
1877       257,  474,  473,  473,  473,  473,  473,  473,  473,  475,
1878
1879       473,  473,  473, 1973,  473,  477,  473,  478,  473,  587,
1880       257,  587,  257,  257,  257,  257,  257,  257, 1974,  587,
1881       257,  587,  587,  257,  587,  588, 1975, 1981,  552, 1982,
1882      1983,  552, 1984,  473,  473,  588, 1156,  479,  588, 1191,
1883      1191, 1191, 1997, 1192,  480, 1156, 1193,  481, 1178, 1178,
1884      1178,  482, 2003,  483,  484,  488,  489,  257,  489,  488,
1885       488,  488,  488,  488,  488,  488,  490,  488,  488,  488,
1886      2007,  488,  492,  488,  493,  488,  587,  257,  587,  587,
1887       257,  587,  600,  257,  600, 2010,  600,  257,  600,  947,
1888       947,  947,  589, 2012, 2013,  589, 2015, 2016,  601, 2017,
1889
1890       488,  488,  601,  494,  495,  496,  948, 2021, 1201, 1201,
1891      1201,  497, 1202, 2024,  498, 1203, 2026, 2033,  499, 2041,
1892      2042,  500,  488,  489,  257,  489,  488,  488,  488,  488,
1893       488,  488,  488,  490,  488,  488,  488, 2043,  488,  492,
1894       488,  493,  488,  257,  257,  257,  257,  257,  257,  600,
1895       257,  600, 2044,  600,  257,  600,  955,  955,  955,  552,
1896      2046, 2060,  552, 1138, 2064,  601, 2065,  488,  488,  601,
1897       494,  495,  496,  956, 2066, 1223, 1223, 1223,  497, 1224,
1898      2057,  498, 1225, 2069, 2070,  499, 1680, 2072,  500,  504,
1899       505,  257,  505,  504,  504,  504,  504,  504,  504,  504,
1900
1901       506,  504,  504,  504, 1680,  504,  508,  504,  509,  504,
1902       600,  257,  600,  600,  257,  600,  615,  257,  615, 2073,
1903       615,  257,  615,  970,  970,  970,  602, 2074, 2058,  602,
1904      2075, 2076,  616, 2077,  504,  504,  616, 2059, 2080,  510,
1905       971, 1540, 1540, 1540, 2081,  511,  504,  505,  257,  505,
1906       504,  504,  504,  504,  504,  504,  504,  506,  504,  504,
1907       504, 2084,  504,  508,  504,  509,  504,  257,  257,  257,
1908       257,  257,  257,  615,  257,  615, 2085,  615,  257,  615,
1909       990,  990,  990,  617, 2086, 2067,  617, 2087, 2088,  616,
1910      2090,  504,  504,  616, 2091, 2094,  510,  991, 1485, 1485,
1911
1912      1485, 2068,  511,  515,  516,  257,  516,  515,  515,  515,
1913       515,  515,  515,  515,  517,  515,  515,  515, 2097,  515,
1914       519,  515,  520,  515,  615,  257,  615,  615,  257,  615,
1915       627,  257,  627, 2101,  627,  257,  627,  637,  257,  637,
1916       618, 2102, 2105,  618, 2106, 2107,  628, 2110,  515,  515,
1917       628, 2114,  521,  638, 1155, 1155, 1155, 2115, 2118,  522,
1918      2120, 2136,  523,  515,  516,  257,  516,  515,  515,  515,
1919       515,  515,  515,  515,  517,  515,  515,  515, 2137,  515,
1920       519,  515,  520,  515,  637,  257,  637,  257,  257,  257,
1921       257,  257,  257, 2103,  637,  257,  637,  637,  257,  637,
1922
1923       638, 2104, 2138,  357, 2116, 2116,  357, 2139,  515,  515,
1924       638, 2140,  521,  638, 1178, 1178, 1178, 2141, 1231,  522,
1925      2117, 2068,  523,  527,  528,  257,  528,  527,  527,  527,
1926       527,  527,  527,  527,  529,  527,  527,  527, 2143,  527,
1927       531,  527,  532,  527,  637,  257,  637,  637,  257,  637,
1928       649,  257,  649, 2108,  649,  257,  649,  997,  997,  997,
1929       639, 2109, 2147,  639, 2067, 2148,  650,  727,  527,  527,
1930       650, 2149,  533, 3278,  998, 2155, 2156,  737, 1231,  534,
1931      2117, 2157,  535,  686, 2171, 2175,  686, 2176, 2177,  536,
1932       527,  528,  257,  528,  527,  527,  527,  527,  527,  527,
1933
1934       527,  529,  527,  527,  527,  738,  527,  531,  527,  532,
1935       527, 2179,  687, 2183,  741, 1002, 1002, 1002,  688,  689,
1936      1014, 1014, 1014,  683, 2187,  689, 1026, 1026, 1026,  690,
1937       742, 2188, 1003, 2189, 2190,  527,  527, 1015, 2191,  533,
1938      1245, 1245, 1245, 1027, 1246, 2194,  534, 1247, 2201,  535,
1939      1694, 1694, 1694, 1697, 1697, 1697,  536,  541,  542,  257,
1940       542,  541,  541,  541,  541,  541,  541,  541,  543,  541,
1941       541,  541, 2203,  541,  545,  541,  546,  541, 1028, 1028,
1942      1028, 1034, 1034, 1034, 1037, 1037, 1037, 1051, 1051, 1051,
1943      1053, 1053, 1053, 2213, 2214, 1029, 1695, 2215, 1035, 1698,
1944
1945      2216, 1038,  541,  541, 1052, 2218, 1138, 1054,  547, 1255,
1946      1255, 1255, 2221, 1256, 1680, 2224, 1257, 1701, 1701, 1701,
1947      1704, 1704, 1704,  548,  541,  542,  257,  542,  541,  541,
1948       541,  541,  541,  541,  541,  543,  541,  541,  541, 2230,
1949       541,  545,  541,  546,  541, 1065, 1065, 1065, 1073, 1073,
1950      1073, 1078, 1078, 1078, 1084, 1084, 1084, 1104, 1104, 1104,
1951      2223, 2231, 1066, 2232, 2233, 1074, 2236, 2238, 1079,  541,
1952       541, 1085, 2239, 2240, 1105,  547, 1263, 1263, 1263, 2244,
1953      1264, 2249, 2251, 1265, 1714, 1714, 1714, 1540, 1540, 1540,
1954       548,  554,  555,  257,  555,  554,  554,  554,  554,  554,
1955
1956       554,  554,  556,  554,  554,  554, 2252,  554,  558,  554,
1957       559,  554, 1128, 1128, 1128, 1132, 1132, 1132, 1680, 2253,
1958      1151, 1151, 1151, 1151, 1151, 1151, 1186, 1186, 1186, 1129,
1959      2257, 2263, 1133, 1186, 1186, 1186,  554,  554, 1153, 2264,
1960      2265, 1153,  560, 2266, 1188,  561, 1280, 1280, 1280, 2222,
1961      1281, 1188, 2267, 1282, 1751, 1751, 1751,  562,  554,  555,
1962       257,  555,  554,  554,  554,  554,  554,  554,  554,  556,
1963       554,  554,  554, 2268,  554,  558,  554,  559,  554, 2269,
1964      2270, 1154,  947,  947,  947, 2271, 2272, 1196, 1196, 1196,
1965      1196, 1196, 1196, 1189,  955,  955,  955, 2278, 2279,  948,
1966
1967      1204, 1204, 1204,  554,  554, 1198, 2280, 2281, 1198,  560,
1968      2293,  956,  561, 2294, 1297, 1297, 1297, 1205, 1298, 2299,
1969      2300, 1299, 2302, 2303,  562,  567,  568,  257,  568,  567,
1970       567,  567,  567,  567,  567,  567,  569,  567,  567,  567,
1971      2304,  567,  571,  567,  572,  567, 1207, 1207, 1207, 1212,
1972      1212, 1212, 2305, 2309, 1199, 2310, 1212, 1212, 1212, 1219,
1973      1219, 1219, 2311, 1208, 1748, 1748, 1748, 1214, 2317, 2318,
1974       567,  567, 2319, 2320, 1214, 2323,  573, 1221, 1694, 1694,
1975      1694,  574,  567,  568,  257,  568,  567,  567,  567,  567,
1976       567,  567,  567,  569,  567,  567,  567, 2328,  567,  571,
1977
1978       567,  572,  567, 1215, 1219, 1219, 1219,  970,  970,  970,
1979      1749, 1227, 1227, 1227,  990,  990,  990, 1227, 1227, 1227,
1980      1918, 2332, 1221, 2333,  971, 2338, 1919,  567,  567, 1229,
1981      1920,  991, 2339,  573, 1921, 1229, 2340, 2341,  574,  578,
1982       579,  257,  579,  578,  578,  578,  578,  578,  578,  578,
1983       580,  578,  578,  578, 1230,  578,  582,  578,  583,  578,
1984      1250, 1250, 1250, 1250, 1250, 1250, 1922, 2343, 1222,  997,
1985       997,  997, 1923, 1259, 1259, 1259, 1924, 2353, 1252, 2364,
1986      1925, 1252, 2365, 2366,  578,  578,  998, 1002, 1002, 1002,
1987       584, 1261, 1300, 1300, 1300, 2370, 1301, 2371, 2372, 1302,
1988
1989      2375, 1750, 1750, 1750, 1003,  585,  578,  579,  257,  579,
1990       578,  578,  578,  578,  578,  578,  578,  580,  578,  578,
1991       578, 2379,  578,  582,  578,  583,  578, 2380, 1680, 1253,
1992      1259, 1259, 1259, 2381, 2382, 1267, 1267, 1267, 1267, 1267,
1993      1267, 1273, 1273, 1273, 1273, 1273, 1273, 1698, 1261, 2383,
1994      2295,  578,  578, 1269, 2384, 2385, 1269,  584, 2296, 1275,
1995      2297, 2334, 1275, 1311, 1311, 1311, 2386, 1312, 2298, 2335,
1996      1313, 2358,  585,  590,  591,  257,  591,  590,  590,  590,
1997       590,  590,  590,  590,  592,  590,  590,  590, 1680,  590,
1998       594,  590,  595,  590, 2387, 2388, 1262, 2401, 2402, 1270,
1999
2000      1014, 1014, 1014, 1285, 1285, 1285, 1026, 1026, 1026, 1276,
2001      1285, 1285, 1285, 1292, 1292, 1292, 2403, 1015,  590,  590,
2002      2404, 1287, 2336, 1027,  596, 2409, 2410,  597, 1287, 2411,
2003      2337, 1294, 1697, 1697, 1697, 2359, 1697, 1697, 1697,  598,
2004       590,  591,  257,  591,  590,  590,  590,  590,  590,  590,
2005       590,  592,  590,  590,  590, 2412,  590,  594,  590,  595,
2006       590, 1028, 1028, 1028, 2413, 2414, 1292, 1292, 1292, 2415,
2007      2418, 1288, 1303, 1303, 1303, 1303, 1303, 1303, 1029, 1034,
2008      1034, 1034, 1847, 2419, 1294,  590,  590, 1037, 1037, 1037,
2009      1305,  596, 2420, 1305,  597, 2425, 1035, 2426, 1315, 1315,
2010
2011      1315, 2431, 1316, 2432, 1038, 1317,  598,  603,  604,  257,
2012       604,  603,  603,  603,  603,  603,  603,  603,  605,  603,
2013       603,  603, 2433,  603,  607,  603,  608,  603, 1295, 1318,
2014      1318, 1318, 1329, 1329, 1329, 2434, 1306, 1329, 1329, 1329,
2015      1051, 1051, 1051, 1345, 1345, 1345, 1319, 1333, 1333, 1333,
2016      1331, 1334,  603,  603, 1335, 1331, 2443, 1052, 2444, 2445,
2017       609, 1347,  610, 2446, 2448,  611, 1891, 1891, 1891,  612,
2018      1701, 1701, 1701,  613,  603,  604,  257,  604,  603,  603,
2019       603,  603,  603,  603,  603,  605,  603,  603,  603, 2450,
2020       603,  607,  603,  608,  603, 1332, 1053, 1053, 1053, 1336,
2021
2022      1336, 1336, 1680, 1337, 2474, 1680, 1338, 1339, 1339, 1339,
2023      1360, 1360, 1360, 1054, 3278, 3278, 3278, 2475, 2477,  603,
2024       603, 3278, 3278, 3278, 1340, 2478, 2479,  609, 1362,  610,
2025      2480, 3278,  611, 1704, 1704, 1704,  612, 2470, 3278, 2471,
2026       613,  619,  620,  257,  620,  619,  619,  619,  619,  619,
2027       619,  619,  621,  619,  619,  619, 2484,  619,  623,  619,
2028       624,  619, 1345, 1345, 1345, 1341, 1065, 1065, 1065, 1714,
2029      1714, 1714, 2421, 1342, 3278, 3278, 3278, 3278, 3278, 3278,
2030      1347, 2485, 2422, 1066, 2486, 2487,  619,  619, 1353, 1353,
2031      1353, 3278, 1354, 2488, 3278, 1355, 1365, 1365, 1365, 2489,
2032
2033      1366, 2490, 2491, 1367, 2492, 1896, 1896, 1896, 2493, 1348,
2034       625,  619,  620,  257,  620,  619,  619,  619,  619,  619,
2035       619,  619,  621,  619,  619,  619, 1344,  619,  623,  619,
2036       624,  619, 1343, 1356, 1356, 1356, 1073, 1073, 1073, 2494,
2037      1368, 1368, 1368, 2496, 2497, 1360, 1360, 1360, 2500, 2501,
2038      1357, 2502, 2503, 1074, 2506, 2507,  619,  619, 1370, 1368,
2039      1368, 1368, 2508, 1362, 1373, 1373, 1373, 2509, 1374, 1897,
2040      2511, 1375, 1382, 1382, 1382, 2515, 1383, 1370, 2516, 1384,
2041       625,  629,  630,  257,  630,  629,  629,  629,  629,  629,
2042       629,  629,  631,  629,  629,  629, 1363,  629,  633,  629,
2043
2044       634,  629, 1078, 1078, 1078, 1377, 1377, 1377, 1084, 1084,
2045      1084, 2517, 1377, 1377, 1377, 1388, 1388, 1388, 2518, 1079,
2046      1371, 2522, 2498, 1379, 2523, 1085,  629,  629, 2524, 2525,
2047      1379, 2499, 2526, 1390, 1899, 1899, 1899,  635,  629,  630,
2048       257,  630,  629,  629,  629,  629,  629,  629,  629,  631,
2049       629,  629,  629, 2530,  629,  633,  629,  634,  629, 1380,
2050      2533, 1388, 1388, 1388, 1392, 1392, 1392, 2534, 1394, 1394,
2051      1394, 3278, 3278, 3278, 1397, 1397, 1397, 2504, 2537, 1390,
2052      1900, 1393, 2549,  629,  629, 1395, 2505, 2550, 3278, 1748,
2053      1748, 1748, 1399, 2553,  635,  640,  641,  257,  641,  640,
2054
2055       640,  640,  640,  640,  640,  640,  642,  640,  640,  640,
2056      2554,  640,  644,  640,  645,  640, 1391, 2574, 1138, 1397,
2057      1397, 1397, 1402, 1402, 1402, 1750, 1750, 1750, 2575, 2576,
2058      1396, 1406, 1406, 1406, 1409, 1409, 1409, 1399, 2577, 1403,
2059       640,  640, 3278, 3278, 3278, 3278, 3278, 3278, 1407, 1680,
2060      1680,  646, 1411, 1414, 1414, 1414, 2578, 1415, 2571, 3278,
2061      1416, 2587, 3278, 2588,  647,  640,  641,  257,  641,  640,
2062       640,  640,  640,  640,  640,  640,  642,  640,  640,  640,
2063      1400,  640,  644,  640,  645,  640, 2572, 1409, 1409, 1409,
2064      2589, 2590, 1404, 2573, 2591, 1104, 1104, 1104, 1417, 1417,
2065
2066      1417, 1417, 1417, 1417, 1408, 1411, 2592, 1405, 2593, 2594,
2067       640,  640, 1105, 1421, 1421, 1421, 1419, 2595, 2596, 1419,
2068      2597,  646, 2599, 2600, 1412, 2601, 1423, 1423, 1423, 2602,
2069      1422, 1425, 1425, 1425,  647,  655, 1425, 1425, 1425, 1435,
2070      1435, 1435,  670, 1424, 1429, 1429, 1429, 2603, 2604, 1427,
2071      2605,  654,  671, 2606, 1427, 2607, 1420, 1437, 3278, 3278,
2072      3278, 1430, 1751, 1751, 1751, 1433, 1433, 1433, 2608, 2609,
2073      1435, 1435, 1435, 2610, 2611, 3278, 1128, 1128, 1128,  672,
2074       673,  674, 1434, 2612, 2613,  675,  676,  677, 1437, 2615,
2075       678,  679, 2623, 1129,  680, 2624,  681,  682,  683,  655,
2076
2077      1444, 1444, 1444, 1444, 1444, 1444,  727, 1428, 1431, 1450,
2078      1450, 1450, 1450, 1450, 1450,  654,  728, 2625, 1446, 2581,
2079      2628, 1446, 2629, 1432, 1454, 1454, 1454, 1452, 1455, 2582,
2080      1452, 1456, 2583, 2633, 1457, 1457, 1457, 2668, 1457, 1457,
2081      1457, 1438, 2670,  672,  729,  684, 1132, 1132, 1132,  730,
2082       731,  677, 1459, 2671,  732,  679, 1459, 2672,  733, 2651,
2083       734,  735,  683, 1133, 1461, 1461, 1461, 1447, 1462, 2652,
2084      2676, 1463, 1465, 1465, 1465, 2653, 1453, 1465, 1465, 1465,
2085      1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1680,
2086      1467, 1507, 1507, 1507, 2677, 1467, 2680, 1138, 1153, 1460,
2087
2088      2681, 1153, 2684, 2685, 1153, 1186, 1186, 1186, 1508, 1186,
2089      1186, 1186, 1186, 1186, 1186, 1510, 1510, 1510, 1191, 1191,
2090      1191, 2686, 1192, 1188, 2687, 1193, 2665, 1188, 2688, 1680,
2091      1188, 2666, 1511, 1477, 3278, 3278, 3278, 1196, 1196, 1196,
2092      2689, 1468, 1196, 1196, 1196, 1196, 1196, 1196, 1204, 1204,
2093      1204, 3278, 1201, 1201, 1201, 1198, 1202, 2690, 2691, 1203,
2094      1198, 1509, 2692, 1198, 2694, 1205, 1516, 1516, 1516, 2695,
2095      1517, 2667, 2678, 1518, 1519, 1519, 1519, 1207, 1207, 1207,
2096      1521, 1521, 1521, 2696, 1522, 2679, 2697, 1523, 1525, 1525,
2097      1525, 1520, 1514, 2698, 1208, 1512, 1212, 1212, 1212, 1212,
2098
2099      1212, 1212, 1212, 1212, 1212, 1526, 1530, 1530, 1530, 1219,
2100      1219, 1219, 2699, 2700, 1214, 2701, 2702, 1214, 2703, 2704,
2101      1214, 2682, 2705, 1531, 1219, 1219, 1219, 1221, 1219, 1219,
2102      1219, 1223, 1223, 1223, 2683, 1224, 2706, 2708, 1225, 1227,
2103      1227, 1227, 1221, 1227, 1227, 1227, 1221, 1535, 1535, 1535,
2104      2584, 1245, 1245, 1245, 2716, 1246, 2717, 1229, 1247, 2725,
2105      2585, 1229, 1528, 2586, 2726, 1536, 1552, 1552, 1552, 1250,
2106      1250, 1250, 1250, 1250, 1250, 1533, 1250, 1250, 1250, 1259,
2107      1259, 1259, 2743, 1553, 1255, 1255, 1255, 1252, 1256, 2744,
2108      1252, 1257, 2745, 2746, 1252, 2747, 2748, 1261, 1259, 1259,
2109
2110      1259, 1259, 1259, 1259, 1263, 1263, 1263, 1680, 1264, 2759,
2111      2761, 1265, 1558, 1558, 1558, 2762, 1261, 2763, 2764, 1261,
2112      1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1559,
2113      1561, 1561, 1561, 3278, 3278, 3278, 2751, 1554, 1269, 2765,
2114      2766, 1269, 2756, 2767, 1269, 2768, 2769, 1562, 2770, 2752,
2115      3278, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273,
2116      2773, 1563, 1557, 1567, 1567, 1567, 1280, 1280, 1280, 1275,
2117      1281, 1138, 1275, 1282, 2774, 1275, 1285, 1285, 1285, 2775,
2118      1568, 1285, 1285, 1285, 1285, 1285, 1285, 1574, 1574, 1574,
2119      1292, 1292, 1292, 1560, 1287, 1292, 1292, 1292, 2776, 1287,
2120
2121      2777, 2778, 1287, 2779, 1575, 1577, 1577, 1577, 1294, 1292,
2122      1292, 1292, 2780, 1294, 1297, 1297, 1297, 2753, 1298, 2755,
2123      2782, 1299, 1578, 1564, 1300, 1300, 1300, 1294, 1301, 2783,
2124      2754, 1302, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303,
2125      1303, 1311, 1311, 1311, 2784, 1312, 2785, 2786, 1313, 1571,
2126      1305, 2787, 2788, 1305, 2789, 2790, 1305, 1584, 1584, 1584,
2127      1315, 1315, 1315, 2791, 1316, 2792, 2793, 1317, 1318, 1318,
2128      1318, 1586, 1586, 1586, 1585, 1587, 1576, 2794, 1588, 1329,
2129      1329, 1329, 1329, 1329, 1329, 1319, 1329, 1329, 1329, 1333,
2130      1333, 1333, 2654, 1334, 2800, 2801, 1335, 1331, 2802, 2809,
2131
2132      1331, 2810, 2655, 1579, 1331, 1336, 1336, 1336, 2656, 1337,
2133      2824, 2816, 1338, 1339, 1339, 1339, 1599, 1599, 1599, 2825,
2134      1600, 2817, 2826, 1601, 1345, 1345, 1345, 1345, 1345, 1345,
2135      1340, 1345, 1345, 1345, 1353, 1353, 1353, 2827, 1354, 2828,
2136      2829, 1355, 1347, 2833, 2834, 1347, 1356, 1356, 1356, 1347,
2137      1611, 1611, 1611, 1598, 1612, 2835, 2836, 1613, 1360, 1360,
2138      1360, 2846, 2847, 1357, 1360, 1360, 1360, 1360, 1360, 1360,
2139      1365, 1365, 1365, 2818, 1366, 1138, 1362, 1367, 2848, 1606,
2140      2849, 2850, 1362, 2819, 2851, 1362, 1368, 1368, 1368, 1368,
2141      1368, 1368, 1368, 1368, 1368, 1373, 1373, 1373, 2820, 1374,
2142
2143      2852, 2853, 1375, 2857, 1370, 2858, 2859, 1370, 2821, 2837,
2144      1370, 1377, 1377, 1377, 1377, 1377, 1377, 2860, 1616, 1377,
2145      1377, 1377, 2861, 1382, 1382, 1382, 2822, 1383, 2862, 1379,
2146      1384, 2864, 1379, 1388, 1388, 1388, 2823, 1379, 1388, 1388,
2147      1388, 2865, 1388, 1388, 1388, 1392, 1392, 1392, 1627, 1627,
2148      1627, 1390, 1628, 2866, 2867, 1629, 1390, 2868, 2869, 1618,
2149      1390, 2870, 1393, 1394, 1394, 1394, 2871, 2875, 1621, 1630,
2150      1630, 1630, 2876, 1631, 2877, 2880, 1632, 1397, 1397, 1397,
2151      1395, 1397, 1397, 1397, 2885, 1397, 1397, 1397, 1402, 1402,
2152      1402, 2886, 1406, 1406, 1406, 1399, 1907, 1907, 1907, 1399,
2153
2154      2887, 2888, 1626, 1399, 2889, 1403, 1636, 1636, 1636, 1407,
2155      1637, 2890, 2891, 1638, 1641, 1641, 1641, 2892, 1642, 2893,
2156      2894, 1643, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409,
2157      1409, 1414, 1414, 1414, 2895, 1415, 2896, 2898, 1416, 2899,
2158      1411, 2900, 1908, 1411, 2901, 2908, 1411, 1417, 1417, 1417,
2159      1138, 2909, 1634, 1417, 1417, 1417, 1417, 1417, 1417, 1421,
2160      1421, 1421, 1648, 1648, 1648, 1419, 1649, 2910, 2911, 1650,
2161      2912, 1419, 2913, 2914, 1419, 2915, 1422, 1423, 1423, 1423,
2162      1651, 1651, 1651, 2916, 1652, 2917, 2918, 1653, 1425, 1425,
2163      1425, 2919, 1645, 2902, 1424, 1425, 1425, 1425, 2920, 1425,
2164
2165      1425, 1425, 1429, 1429, 1429, 2921, 1427, 1655, 1655, 1655,
2166      2924, 1656, 2925, 1427, 1657, 2926, 1647, 1427, 2927, 1430,
2167      1433, 1433, 1433, 1660, 1660, 1660, 2928, 1661, 2929, 2930,
2168      1662, 1435, 1435, 1435, 1435, 1435, 1435, 1434, 1435, 1435,
2169      1435, 1665, 1665, 1665, 1444, 1444, 1444, 2931, 2932, 1437,
2170      2936, 2943, 1437, 1444, 1444, 1444, 1437, 2944, 1666, 2945,
2171      2946, 1654, 1446, 1444, 1444, 1444, 1450, 1450, 1450, 2947,
2172      2948, 1446, 1450, 1450, 1450, 1450, 1450, 1450, 1454, 1454,
2173      1454, 1446, 1455, 2949, 1452, 1456, 1457, 1457, 1457, 2950,
2174      1452, 2951, 2952, 1452, 1457, 1457, 1457, 1457, 1457, 1457,
2175
2176      1663, 1461, 1461, 1461, 1459, 1462, 2953, 2954, 1463, 1465,
2177      1465, 1465, 1459, 2957, 2958, 1459, 1465, 1465, 1465, 1465,
2178      1465, 1465, 2959, 2960, 1670, 2963, 2968, 1467, 1673, 1679,
2179      1679, 1679, 2969, 1138, 1467, 2963, 2966, 1467, 1151, 1151,
2180      1151, 1507, 1507, 1507, 1186, 1186, 1186, 1680, 1681, 2964,
2181      1510, 1510, 1510, 1535, 1535, 1535, 1153, 1674, 1508, 1717,
2182      1717, 1717, 1188, 1718, 2970, 2971, 1719, 1511, 1721, 1721,
2183      1721, 1536, 1722, 2972, 2973, 1723, 1196, 1196, 1196, 2961,
2184      1676, 1516, 1516, 1516, 2974, 1517, 2975, 2976, 1518, 1519,
2185      1519, 1519, 2977, 2978, 1198, 2979, 1728, 1728, 1728, 2980,
2186
2187      1729, 2981, 1720, 1730, 1686, 2982, 1520, 1521, 1521, 1521,
2188      2983, 1522, 2984, 2989, 1523, 1525, 1525, 1525, 2985, 1732,
2189      1732, 1732, 2994, 1733, 2995, 1726, 1734, 1212, 1212, 1212,
2190      2986, 2996, 1526, 1530, 1530, 1530, 1738, 1738, 1738, 2997,
2191      1739, 2998, 2999, 1740, 3002, 1214, 1741, 1741, 1741, 1138,
2192      1531, 1219, 1219, 1219, 1759, 1759, 1759, 1552, 1552, 1552,
2193      1761, 1761, 1761, 1742, 1762, 1680, 1681, 1763, 3002, 1221,
2194      3005, 1760, 3006, 3007, 1553, 3008, 3021, 1736, 1250, 1250,
2195      1250, 1259, 1259, 1259, 1558, 1558, 1558, 1768, 1768, 1768,
2196      3000, 1769, 3024, 3029, 1770, 3009, 1252, 2963, 3032, 1261,
2197
2198      1743, 1559, 1267, 1267, 1267, 1561, 1561, 1561, 1772, 1772,
2199      1772, 2964, 1773, 3010, 3033, 1774, 1273, 1273, 1273, 2987,
2200      1269, 3034, 1562, 1567, 1567, 1567, 1779, 1779, 1779, 2990,
2201      1780, 2988, 2992, 1781, 1275, 1782, 1782, 1782, 3002, 3036,
2202      1568, 2991, 1764, 3002, 2993, 1767, 1784, 1784, 1784, 1285,
2203      1285, 1285, 1783, 1574, 1574, 1574, 3037, 1790, 1790, 1790,
2204      3038, 1791, 1771, 1785, 1792, 3019, 3011, 1287, 3039, 3040,
2205      1575, 1793, 1793, 1793, 1577, 1577, 1577, 1776, 1795, 1795,
2206      1795, 3012, 1796, 3022, 3020, 1797, 1303, 1303, 1303, 1794,
2207      3041, 1578, 1786, 1800, 1800, 1800, 1584, 1584, 1584, 1804,
2208
2209      1804, 1804, 3023, 1805, 1305, 3042, 1806, 1586, 1586, 1586,
2210      1801, 1587, 3052, 1585, 1588, 1787, 1809, 1809, 1809, 1329,
2211      1329, 1329, 1599, 1599, 1599, 3053, 1600, 3054, 3055, 1601,
2212      1818, 1818, 1818, 1810, 3278, 3278, 3278, 1331, 3278, 3278,
2213      3278, 3278, 3278, 3278, 1345, 1345, 1345, 1819, 1825, 1825,
2214      1825, 3278, 1798, 2963, 3056, 3278, 3057, 3061, 3278, 1611,
2215      1611, 1611, 1347, 1612, 2966, 1826, 1613, 3062, 3063, 1829,
2216      1829, 1829, 1360, 1360, 1360, 1368, 1368, 1368, 1377, 1377,
2217      1377, 1841, 1841, 1841, 1817, 1821, 1830, 1388, 1388, 1388,
2218      1362, 3064, 3065, 1370, 3066, 3067, 1379, 3068, 1842, 1823,
2219
2220      3070, 1397, 1397, 1397, 1820, 1390, 1627, 1627, 1627, 3027,
2221      1628, 1822, 3071, 1629, 1630, 1630, 1630, 3072, 1631, 1399,
2222      3073, 1632, 1636, 1636, 1636, 3074, 1637, 1843, 3028, 1638,
2223      1641, 1641, 1641, 3079, 1642, 1837, 1832, 1643, 1409, 1409,
2224      1409, 1834, 3075, 3030, 1844, 1417, 1417, 1417, 1648, 1648,
2225      1648, 3080, 1649, 3077, 3076, 1650, 1411, 1651, 1651, 1651,
2226      3081, 1652, 3031, 1419, 1653, 3078, 3082, 1846, 1425, 1425,
2227      1425, 1655, 1655, 1655, 3083, 1656, 3084, 3085, 1657, 3086,
2228      1660, 1660, 1660, 3087, 1661, 3088, 1427, 1662, 1435, 1435,
2229      1435, 1665, 1665, 1665, 1859, 1859, 1859, 3089, 1860, 1851,
2230
2231      3090, 1861, 1853, 1444, 1444, 1444, 1437, 3091, 1666, 1867,
2232      1867, 1867, 1450, 1450, 1450, 1854, 1457, 1457, 1457, 3092,
2233      3094, 1446, 1871, 1871, 1871, 1138, 1868, 1465, 1465, 1465,
2234      1452, 1679, 1679, 1679, 1459, 1857, 1151, 1151, 1151, 1872,
2235      1717, 1717, 1717, 3095, 1718, 1467, 3096, 1719, 3097, 1680,
2236      3093, 3098, 1865, 3099, 1153, 1186, 1186, 1186, 1721, 1721,
2237      1721, 3100, 1722, 3101, 3102, 1723, 3103, 3104, 1870, 1196,
2238      1196, 1196, 3105, 1188, 1728, 1728, 1728, 3106, 1729, 1869,
2239      3107, 1730, 1875, 1212, 1212, 1212, 3108, 1198, 1880, 1873,
2240      1732, 1732, 1732, 3109, 1733, 3110, 3111, 1734, 3112, 1876,
2241
2242      3113, 1214, 1738, 1738, 1738, 3115, 1739, 1138, 3116, 1740,
2243      1741, 1741, 1741, 3117, 1926, 1926, 1926, 3118, 1927, 3119,
2244      1912, 1928, 1909, 1219, 1219, 1219, 3114, 1742, 1935, 1935,
2245      1935, 1935, 1935, 1935, 1896, 1896, 1896, 1759, 1759, 1759,
2246      3120, 1221, 3121, 3122, 1916, 1941, 1941, 1941, 3123, 1942,
2247      3124, 3125, 1943, 3126, 1760, 1761, 1761, 1761, 3127, 1762,
2248      3128, 3129, 1763, 1250, 1250, 1250, 1946, 1946, 1946, 1259,
2249      1259, 1259, 3130, 3131, 1929, 1768, 1768, 1768, 3132, 1769,
2250      3134, 1252, 1770, 1947, 1267, 1267, 1267, 1261, 3135, 1772,
2251      1772, 1772, 1936, 1773, 3136, 1897, 1774, 3137, 1936, 1273,
2252
2253      1273, 1273, 1269, 1950, 1950, 1950, 3138, 1779, 1779, 1779,
2254      1944, 1780, 3139, 3140, 1781, 3141, 1948, 1275, 3142, 3143,
2255      1951, 1782, 1782, 1782, 1955, 1955, 1955, 3144, 1956, 3145,
2256      3146, 1957, 1784, 1784, 1784, 1958, 1958, 1958, 1783, 1959,
2257      1138, 3147, 1960, 1962, 1962, 1962, 1964, 1964, 1964, 1785,
2258      1949, 1790, 1790, 1790, 3148, 1791, 3149, 3150, 1792, 3151,
2259      3133, 1963, 3153, 1952, 1793, 1793, 1793, 1795, 1795, 1795,
2260      3154, 1796, 3155, 3156, 1797, 1303, 1303, 1303, 1800, 1800,
2261      1800, 3157, 1794, 1968, 1968, 1968, 1138, 1969, 3158, 3159,
2262      1970, 3160, 3152, 1305, 3161, 1801, 1971, 1971, 1971, 1804,
2263
2264      1804, 1804, 3162, 1805, 3163, 3164, 1806, 1809, 1809, 1809,
2265      1976, 1976, 1976, 1972, 1977, 3166, 3167, 1978, 1979, 1979,
2266      1979, 1966, 3168, 3169, 1810, 1985, 1985, 1985, 1329, 1329,
2267      1329, 1818, 1818, 1818, 3170, 1980, 1988, 1988, 1988, 3171,
2268      1989, 3172, 1986, 1990, 3173, 3175, 1331, 3176, 1819, 1991,
2269      1991, 1991, 3278, 3278, 3278, 1994, 1994, 1994, 1345, 1345,
2270      1345, 1825, 1825, 1825, 3177, 1138, 1992, 3178, 3179, 3278,
2271      3180, 3181, 1995, 1998, 1998, 1998, 1347, 1999, 1826, 3165,
2272      2000, 2001, 2001, 2001, 1829, 1829, 1829, 3182, 2004, 2004,
2273      2004, 3185, 2005, 3186, 1987, 2006, 3187, 3188, 2002, 3189,
2274
2275      3190, 1830, 2008, 2008, 2008, 1368, 1368, 1368, 1727, 1725,
2276      1993, 1377, 1377, 1377, 1841, 1841, 1841, 1138, 1996, 1138,
2277      2009, 3199, 1138, 1370, 3201, 1138, 2018, 2018, 2018, 1379,
2278      2019, 1842, 1138, 2020, 2022, 2022, 2022, 1397, 1397, 1397,
2279      2027, 2027, 2027, 2029, 2029, 2029, 3278, 3278, 3278, 1409,
2280      1409, 1409, 2023, 3191, 3211, 1399, 2011, 2028, 3192, 2014,
2281      2030, 1138, 1138, 3278, 1425, 1425, 1425, 1411, 1417, 1417,
2282      1417, 1724, 2036, 2036, 2036, 2038, 2038, 2038, 1435, 1435,
2283      1435, 1138, 1427, 1859, 1859, 1859, 1419, 1860, 2025, 2037,
2284      1861, 1138, 2039, 1444, 1444, 1444, 1437, 1138, 1867, 1867,
2285
2286      1867, 2047, 2047, 2047, 3202, 2048, 3197, 1716, 2049, 3193,
2287      2031, 1446, 1138, 3217, 2034, 1868, 2032, 1450, 1450, 1450,
2288      1457, 1457, 1457, 1871, 1871, 1871, 2052, 2052, 2052, 2035,
2289      2053, 1715, 3200, 2054, 3203, 1452, 1138, 1138, 1459, 3194,
2290      1872, 3198, 1138, 2040, 2045, 2055, 2055, 2055, 2061, 2061,
2291      2061, 1151, 1151, 1151, 2071, 2071, 2071, 1891, 1891, 1891,
2292      2078, 2078, 2078, 2056, 1138, 2062, 1896, 1896, 1896, 1153,
2293      2079, 2079, 2079, 1138, 3207, 2051, 2050, 1899, 1899, 1899,
2294      2082, 2082, 2082, 2083, 2083, 2083, 1907, 1907, 1907, 1186,
2295      1186, 1186, 2092, 2092, 2092, 1713, 2095, 2095, 2095, 1212,
2296
2297      1212, 1212, 2099, 2099, 2099, 1138, 1138, 1188, 1138, 1138,
2298      2093, 3205, 2063, 2096, 1926, 1926, 1926, 1214, 1927, 2100,
2299      3206, 1928, 1219, 1219, 1219, 2112, 2112, 2112, 1935, 1935,
2300      1935, 2119, 2119, 2119, 2121, 2121, 2121, 3218, 1138, 2089,
2301      1221, 1138, 2113, 1941, 1941, 1941, 3208, 1942, 3237, 3209,
2302      1943, 2122, 1250, 1250, 1250, 2124, 2124, 2124, 2098, 1946,
2303      1946, 1946, 2126, 2126, 2126, 1712, 2127, 1138, 2111, 2128,
2304      1252, 1138, 2125, 1259, 1259, 1259, 1947, 2130, 2130, 2130,
2305      1950, 1950, 1950, 2132, 2132, 2132, 3195, 2133, 3204, 3196,
2306      2134, 1261, 1273, 1273, 1273, 2131, 1138, 1951, 1138, 1955,
2307
2308      1955, 1955, 3212, 1956, 3219, 2123, 1957, 1958, 1958, 1958,
2309      1275, 1959, 3210, 1138, 1960, 1962, 1962, 1962, 1964, 1964,
2310      1964, 3220, 1303, 1303, 1303, 1138, 2129, 1968, 1968, 1968,
2311      1138, 1969, 1138, 1963, 1970, 1971, 1971, 1971, 1711, 2135,
2312      1305, 2144, 2144, 2144, 3213, 2145, 1138, 1138, 2146, 1976,
2313      1976, 1976, 1972, 1977, 1138, 1710, 1978, 1979, 1979, 1979,
2314      2150, 2150, 2150, 1138, 2151, 1709, 3257, 2152, 2153, 2153,
2315      2153, 1985, 1985, 1985, 1980, 2158, 2158, 2158, 3214, 2159,
2316      2142, 1138, 2160, 3215, 3216, 2154, 3233, 1138, 1986, 1329,
2317      1329, 1329, 1988, 1988, 1988, 1138, 1989, 3225, 3221, 1990,
2318
2319      1991, 1991, 1991, 1138, 2162, 2162, 2162, 1331, 2163, 1138,
2320      1708, 2164, 2165, 2165, 2165, 3234, 3222, 1992, 1994, 1994,
2321      1994, 2167, 2167, 2167, 1138, 2168, 1138, 1707, 2169, 2166,
2322      1345, 1345, 1345, 3227, 1138, 1995, 3231, 1998, 1998, 1998,
2323      2161, 1999, 1138, 3223, 2000, 2001, 2001, 2001, 1347, 2172,
2324      2172, 2172, 1138, 2173, 1138, 1706, 2174, 2004, 2004, 2004,
2325      3224, 2005, 2002, 1138, 2006, 2008, 2008, 2008, 1368, 1368,
2326      1368, 2180, 2180, 2180, 1377, 1377, 1377, 2184, 2184, 2184,
2327      3228, 2170, 1138, 2009, 1138, 3226, 1370, 3229, 2181, 2018,
2328      2018, 2018, 1379, 2019, 2185, 3258, 2020, 2022, 2022, 2022,
2329
2330      2192, 2192, 2192, 2027, 2027, 2027, 2195, 2195, 2195, 3239,
2331      2196, 1138, 1705, 2197, 1703, 2023, 3275, 3230, 2193, 1138,
2332      2028, 3235, 1138, 2186, 2029, 2029, 2029, 2198, 2198, 2198,
2333      1138, 2199, 2178, 1138, 2200, 2182, 1409, 1409, 1409, 1138,
2334      1138, 2030, 1417, 1417, 1417, 1425, 1425, 1425, 2036, 2036,
2335      2036, 2206, 2206, 2206, 1411, 2207, 3236, 3240, 2208, 1138,
2336      1419, 1138, 3243, 1427, 3238, 2037, 2038, 2038, 2038, 2209,
2337      2209, 2209, 3232, 2210, 3247, 1138, 2211, 1435, 1435, 1435,
2338      1444, 1444, 1444, 2039, 3245, 2047, 2047, 2047, 3246, 2048,
2339      3244, 2204, 2049, 1138, 1138, 1437, 3241, 1138, 1446, 1450,
2340
2341      1450, 1450, 2202, 1457, 1457, 1457, 1138, 2052, 2052, 2052,
2342      2205, 2053, 3242, 1702, 2054, 1700, 1699, 1452, 2055, 2055,
2343      2055, 1459, 2061, 2061, 2061, 2225, 2225, 2225, 3248, 2226,
2344      3251, 3267, 2227, 1151, 1151, 1151, 2056, 1696, 1138, 2062,
2345      1138, 3252, 2212, 3255, 3275, 2217, 2229, 2229, 2229, 1138,
2346      2219, 1153, 2234, 2234, 2234, 1138, 2220, 2235, 2235, 2235,
2347      2071, 2071, 2071, 2237, 2237, 2237, 2241, 2241, 2241, 2078,
2348      2078, 2078, 2079, 2079, 2079, 2242, 2242, 2242, 2082, 2082,
2349      2082, 2083, 2083, 2083, 2245, 2245, 2245, 2246, 2246, 2246,
2350      2247, 2247, 2247, 2248, 2248, 2248, 1138, 2228, 1186, 1186,
2351
2352      1186, 2092, 2092, 2092, 3268, 2095, 2095, 2095, 2254, 2254,
2353      2254, 1693, 2255, 1138, 1692, 2256, 1188, 1691, 1138, 2093,
2354      1690, 2243, 2096, 2258, 2258, 2258, 2099, 2099, 2099, 2260,
2355      2260, 2260, 1689, 2261, 1688, 1687, 2262, 1219, 1219, 1219,
2356      1138, 2259, 3249, 2100, 2112, 2112, 2112, 1138, 1138, 2250,
2357      2274, 2274, 2274, 3259, 2275, 1221, 1138, 2276, 2277, 2277,
2358      2277, 2113, 2119, 2119, 2119, 2282, 2282, 2282, 2121, 2121,
2359      2121, 2284, 2284, 2284, 1685, 2285, 1138, 3256, 2286, 1250,
2360      1250, 1250, 2124, 2124, 2124, 2122, 2273, 2288, 2288, 2288,
2361      1138, 2289, 1138, 3250, 2290, 3253, 1684, 1252, 1138, 2125,
2362
2363      2126, 2126, 2126, 3254, 2127, 1138, 1138, 2128, 1259, 1259,
2364      1259, 2283, 1138, 2130, 2130, 2130, 2132, 2132, 2132, 1683,
2365      2133, 1138, 3261, 2134, 1682, 3260, 1261, 1273, 1273, 1273,
2366      2287, 2131, 1303, 1303, 1303, 2144, 2144, 2144, 3262, 2145,
2367      1675, 1672, 2146, 3263, 3265, 1275, 3271, 2150, 2150, 2150,
2368      1305, 2151, 1138, 3272, 2152, 2153, 2153, 2153, 3264, 2291,
2369      2306, 2306, 2306, 1671, 2307, 1138, 1138, 2308, 1669, 2158,
2370      2158, 2158, 2154, 2159, 1668, 1667, 2160, 1329, 1329, 1329,
2371      2292, 2162, 2162, 2162, 3266, 2163, 1664, 2301, 2164, 2165,
2372      2165, 2165, 2313, 2313, 2313, 1331, 2314, 3269, 3270, 2315,
2373
2374      2167, 2167, 2167, 1138, 2168, 1659, 2166, 2169, 1345, 1345,
2375      1345, 2172, 2172, 2172, 1658, 2173, 1646, 1644, 2174, 2321,
2376      2321, 2321, 2180, 2180, 2180, 1640, 1347, 2324, 2324, 2324,
2377      1639, 2325, 1635, 1633, 2326, 3273, 1138, 2322, 1625, 2181,
2378      1624, 2312, 1377, 1377, 1377, 2184, 2184, 2184, 2329, 2329,
2379      2329, 1623, 2330, 1622, 1620, 2331, 1619, 2192, 2192, 2192,
2380      1379, 1617, 2185, 2195, 2195, 2195, 1615, 2196, 3274, 1614,
2381      2197, 1409, 1409, 1409, 2316, 2193, 2198, 2198, 2198, 1610,
2382      2199, 1609, 1608, 2200, 1607, 1417, 1417, 1417, 1605, 1411,
2383      1425, 1425, 1425, 2206, 2206, 2206, 1604, 2207, 1603, 1602,
2384
2385      2208, 1597, 2327, 1419, 1596, 2209, 2209, 2209, 1427, 2210,
2386      1595, 1594, 2211, 1435, 1435, 1435, 1593, 2347, 2347, 2347,
2387      1592, 1591, 2342, 3278, 3278, 3278, 2345, 3278, 3278, 3278,
2388      1590, 1437, 1589, 2346, 2348, 3278, 3278, 3278, 1583, 1582,
2389      3278, 1444, 1444, 1444, 3278, 1450, 1450, 1450, 2355, 2355,
2390      2355, 2344, 3278, 2357, 2357, 2357, 2360, 2360, 2360, 1446,
2391      2225, 2225, 2225, 1452, 2226, 1581, 2356, 2227, 1151, 1151,
2392      1151, 1138, 1580, 1573, 2349, 2229, 2229, 2229, 2362, 2362,
2393      2362, 2363, 2363, 2363, 1572, 1570, 1153, 2234, 2234, 2234,
2394      1569, 2350, 1566, 1565, 2351, 2235, 2235, 2235, 2237, 2237,
2395
2396      2237, 2367, 2367, 2367, 1556, 2354, 2352, 2368, 2368, 2368,
2397      2369, 2369, 2369, 2241, 2241, 2241, 2242, 2242, 2242, 2245,
2398      2245, 2245, 2246, 2246, 2246, 1555, 1551, 2361, 2247, 2247,
2399      2247, 2248, 2248, 2248, 2373, 2373, 2373, 2376, 2376, 2376,
2400      2254, 2254, 2254, 1550, 2255, 1549, 1548, 2256, 3278, 3278,
2401      3278, 1547, 2374, 1546, 2377, 2258, 2258, 2258, 1545, 2260,
2402      2260, 2260, 1544, 2261, 1542, 3278, 2262, 1219, 1219, 1219,
2403      2274, 2274, 2274, 2259, 2275, 2390, 2391, 2276, 2392, 2395,
2404      2396, 1541, 2397, 1539, 1538, 1221, 2393, 2277, 2277, 2277,
2405      2398, 1537, 1534, 2394, 2400, 2400, 2400, 2399, 2282, 2282,
2406
2407      2282, 2284, 2284, 2284, 1532, 2285, 1529, 1527, 2286, 1250,
2408      1250, 1250, 1524, 1515, 2378, 2288, 2288, 2288, 1513, 2289,
2409      1506, 1504, 2290, 2406, 2406, 2406, 1503, 1252, 2389, 1273,
2410      1273, 1273, 2416, 2416, 2416, 1303, 1303, 1303, 2306, 2306,
2411      2306, 2407, 2307, 1502, 1501, 2308, 1500, 1275, 2423, 2423,
2412      2423, 1499, 1498, 1305, 1497, 2405, 2427, 2427, 2427, 2313,
2413      2313, 2313, 1496, 2314, 1495, 2424, 2315, 2429, 2429, 2429,
2414      2321, 2321, 2321, 1492, 2428, 2435, 2435, 2435, 1491, 1490,
2415      2408, 1489, 2324, 2324, 2324, 2430, 2325, 1488, 2322, 2326,
2416      1487, 1486, 2436, 1484, 1483, 2417, 1377, 1377, 1377, 2438,
2417
2418      2438, 2438, 2329, 2329, 2329, 1482, 2330, 1481, 1480, 2331,
2419      3278, 3278, 3278, 1479, 1379, 1478, 2439, 3278, 3278, 3278,
2420      3278, 3278, 3278, 2449, 2449, 2449, 1476, 3278, 2451, 2451,
2421      2451, 2453, 2453, 2453, 3278, 1475, 1474, 3278, 1417, 1417,
2422      1417, 1425, 1425, 1425, 1473, 2440, 2452, 2437, 2454, 1435,
2423      1435, 1435, 2347, 2347, 2347, 1472, 1419, 1471, 1470, 1427,
2424      2461, 2461, 2461, 1138, 1464, 2441, 1449, 1437, 1448, 2348,
2425      1443, 2447, 2458, 2458, 2458, 1442, 2459, 2462, 2442, 2460,
2426      3278, 3278, 3278, 3278, 3278, 3278, 2457, 2465, 2465, 2465,
2427      2467, 2467, 2467, 1450, 1450, 1450, 1441, 3278, 2455, 1440,
2428
2429      3278, 1439, 2456, 1413, 1401, 2466, 2355, 2355, 2355, 1387,
2430      1386, 1452, 2357, 2357, 2357, 2360, 2360, 2360, 2472, 2472,
2431      2472, 2362, 2362, 2362, 2356, 2363, 2363, 2363, 1385, 1381,
2432      1138, 2463, 1376, 1372, 2464, 1364, 2473, 2476, 2476, 2476,
2433      2367, 2367, 2367, 2368, 2368, 2368, 2369, 2369, 2369, 2373,
2434      2373, 2373, 2376, 2376, 2376, 1359, 2481, 2481, 2481, 2468,
2435      2482, 1358, 1352, 2483, 1219, 1219, 1219, 2374, 1349, 2377,
2436      2400, 2400, 2400, 1328, 2469, 2510, 2510, 2510, 1250, 1250,
2437      1250, 1327, 1221, 2406, 2406, 2406, 2513, 2513, 2513, 2519,
2438      2519, 2519, 2416, 2416, 2416, 1326, 1252, 1303, 1303, 1303,
2439
2440      1325, 2407, 1324, 1323, 2514, 1322, 2520, 1321, 2423, 2423,
2441      2423, 1320, 2527, 2527, 2527, 1305, 2528, 1314, 1307, 2529,
2442      2531, 2531, 2531, 1296, 2495, 2424, 1291, 2427, 2427, 2427,
2443      2429, 2429, 2429, 2535, 2535, 2535, 1290, 2532, 2435, 2435,
2444      2435, 2541, 2541, 2541, 2512, 2428, 1289, 1284, 2430, 1283,
2445      2536, 2438, 2438, 2438, 2521, 2436, 2538, 2538, 2538, 2542,
2446      2539, 1279, 1278, 2540, 1277, 2543, 2543, 2543, 2439, 2544,
2447      1272, 1271, 2545, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
2448      3278, 3278, 2551, 2551, 2551, 2449, 2449, 2449, 1266, 1258,
2449      3278, 1254, 1249, 3278, 1248, 1244, 3278, 1243, 1242, 2552,
2450
2451      2451, 2451, 2451, 2453, 2453, 2453, 2555, 2555, 2555, 1241,
2452      2556, 1240, 1239, 2557, 2558, 2558, 2558, 1238, 2452, 1237,
2453      2454, 1425, 1425, 1425, 1236, 2546, 1435, 1435, 1435, 2458,
2454      2458, 2458, 2559, 2459, 2547, 1235, 2460, 2548, 1234, 1427,
2455      2461, 2461, 2461, 1233, 1437, 2562, 2562, 2562, 1232, 2563,
2456      1226, 1218, 2564, 2565, 2565, 2565, 1217, 2462, 2567, 2567,
2457      2567, 2465, 2465, 2465, 2467, 2467, 2467, 2569, 2569, 2569,
2458      2566, 2472, 2472, 2472, 1216, 2568, 2476, 2476, 2476, 2466,
2459      2579, 2579, 2579, 1211, 1210, 2570, 1209, 1206, 2560, 2473,
2460      2561, 2481, 2481, 2481, 1200, 2482, 1195, 2580, 2483, 1219,
2461
2462      1219, 1219, 2510, 2510, 2510, 1250, 1250, 1250, 2513, 2513,
2463      2513, 2616, 2616, 2616, 2519, 2519, 2519, 1221, 2618, 2618,
2464      2618, 1194, 2619, 1252, 1190, 2620, 2514, 1185, 2617, 1184,
2465      1183, 2520, 2621, 2621, 2621, 2626, 2626, 2626, 2527, 2527,
2466      2527, 1182, 2528, 1181, 1180, 2529, 2531, 2531, 2531, 1179,
2467      2622, 1177, 2627, 2630, 2630, 2630, 1176, 2631, 1175, 2598,
2468      2632, 1174, 1173, 2532, 2634, 2634, 2634, 2535, 2535, 2535,
2469      2636, 2636, 2636, 1172, 2637, 1171, 2614, 2638, 2639, 2639,
2470      2639, 2635, 1170, 1169, 2536, 2538, 2538, 2538, 1168, 2539,
2471      1167, 1166, 2540, 1165, 1164, 2640, 2541, 2541, 2541, 2543,
2472
2473      2543, 2543, 1163, 2544, 1162, 1161, 2545, 3278, 3278, 3278,
2474      3278, 3278, 3278, 1160, 2542, 3278, 3278, 3278, 2551, 2551,
2475      2551, 2644, 2644, 2644, 3278, 2645, 1159, 3278, 2646, 2647,
2476      2647, 2647, 3278, 1158, 1157, 2552, 2649, 2649, 2649, 1150,
2477      2555, 2555, 2555, 1149, 2556, 1148, 2648, 2557, 2558, 2558,
2478      2558, 1147, 1146, 2650, 1425, 1425, 1425, 1435, 1435, 1435,
2479      1145, 2642, 2641, 2565, 2565, 2565, 2559, 2562, 2562, 2562,
2480      2643, 2563, 1427, 1144, 2564, 1437, 1141, 2659, 2659, 2659,
2481      2566, 2660, 1139, 1138, 2661, 2567, 2567, 2567, 2662, 2662,
2482      2662, 1136, 2663, 1134, 1131, 2664, 2569, 2569, 2569, 2669,
2483
2484      2669, 2669, 2568, 1127, 2579, 2579, 2579, 1125, 2673, 2673,
2485      2673, 1124, 2674, 1123, 2570, 2675, 1121, 1120, 2658, 1119,
2486      2657, 2580, 1219, 1219, 1219, 2707, 2707, 2707, 1250, 1250,
2487      1250, 2710, 2710, 2710, 2616, 2616, 2616, 2713, 2713, 2713,
2488      1221, 2714, 1118, 1117, 2715, 1116, 1252, 1114, 2711, 1113,
2489      1112, 2617, 2618, 2618, 2618, 1111, 2619, 1109, 1108, 2620,
2490      2621, 2621, 2621, 2718, 2718, 2718, 2626, 2626, 2626, 1107,
2491      2723, 2723, 2723, 2693, 2669, 2669, 2669, 2712, 2622, 1103,
2492      2719, 1102, 1100, 2627, 2720, 2720, 2720, 2724, 2721, 1099,
2493      2709, 2722, 2630, 2630, 2630, 1098, 2631, 1097, 1096, 2632,
2494
2495      2634, 2634, 2634, 2727, 2727, 2727, 1095, 2728, 1093, 1092,
2496      2729, 2636, 2636, 2636, 1091, 2637, 1090, 2635, 2638, 2639,
2497      2639, 2639, 2730, 2730, 2730, 1088, 2731, 1087, 1086, 2732,
2498      3278, 3278, 3278, 2734, 2734, 2734, 2640, 3278, 3278, 3278,
2499      1083, 2644, 2644, 2644, 1082, 2645, 1080, 3278, 2646, 1077,
2500      2735, 2647, 2647, 2647, 3278, 2737, 2737, 2737, 1076, 2738,
2501      1072, 1071, 2739, 2649, 2649, 2649, 1069, 1068, 2648, 2740,
2502      2740, 2740, 1067, 2741, 1064, 1063, 2742, 1425, 1425, 1425,
2503      2650, 1435, 1435, 1435, 1062, 1061, 2736, 1059, 2733, 2659,
2504      2659, 2659, 1058, 2660, 1057, 1427, 2661, 1056, 1055, 1437,
2505
2506      2662, 2662, 2662, 1050, 2663, 1048, 1047, 2664, 2757, 2757,
2507      2757, 2760, 2760, 2760, 2673, 2673, 2673, 1046, 2674, 1045,
2508      1044, 2675, 2771, 2771, 2771, 2758, 1680, 1043, 2749, 1219,
2509      1219, 1219, 2707, 2707, 2707, 2795, 2795, 2795, 1042, 2772,
2510      1250, 1250, 1250, 2710, 2710, 2710, 1041, 1221, 2750, 2797,
2511      2797, 2797, 1040, 2798, 1039, 1036, 2799, 1033, 1252, 1032,
2512      2711, 2713, 2713, 2713, 1031, 2714, 1025, 1024, 2715, 2718,
2513      2718, 2718, 2803, 2803, 2803, 1022, 2804, 1019, 2781, 2805,
2514      2720, 2720, 2720, 1017, 2721, 1016, 2719, 2722, 2723, 2723,
2515      2723, 2796, 2806, 2806, 2806, 1011, 2807, 1010, 1008, 2808,
2516
2517      2727, 2727, 2727, 1007, 2728, 2724, 1006, 2729, 2730, 2730,
2518      2730, 1004, 2731, 1001,  999, 2732, 3278, 3278, 3278, 2734,
2519      2734, 2734, 2812, 2812, 2812,  996, 2813,  995,  993, 2814,
2520      3278, 3278, 3278, 3278,  992,  989, 2735, 2737, 2737, 2737,
2521       984, 2738,  983,  980, 2739,  979,  978, 3278, 2740, 2740,
2522      2740,  975, 2741,  974,  972, 2742, 2830, 2830, 2830, 1435,
2523      1435, 1435, 2838, 2838, 2838,  969,  967, 2811, 2757, 2757,
2524      2757, 2840, 2840, 2840, 2831, 2841,  966, 1437, 2842, 2839,
2525      1680, 2843, 2843, 2843,  965, 2758, 1680,  964,  962, 1680,
2526      2760, 2760, 2760, 2844, 2844, 2844, 2845, 2845, 2845,  961,
2527
2528       960, 2815, 2771, 2771, 2771, 2854, 2854, 2854,  959, 2855,
2529       958,  957, 2856, 1219, 1219, 1219, 2872, 2872, 2872, 2772,
2530      2795, 2795, 2795,  954,  953, 2832, 2873, 2873, 2873,  952,
2531       949, 1221, 2797, 2797, 2797,  946, 2798,  945,  943, 2799,
2532       942, 2803, 2803, 2803, 2874, 2804,  939,  936, 2805, 2806,
2533      2806, 2806,  933, 2807,  932,  924, 2808, 2878, 2878, 2878,
2534      2881, 2881, 2881, 2812, 2812, 2812,  923, 2813,  922,  921,
2535      2814, 2883, 2883, 2883, 2879,  915,  914, 2882,  913, 2863,
2536      2830, 2830, 2830, 1435, 1435, 1435,  911,  910, 2884, 2838,
2537      2838, 2838, 2903, 2903, 2903,  909, 2904,  908, 2831, 2905,
2538
2539       907, 1437, 2843, 2843, 2843,  906, 2839, 1680,  901,  898,
2540      1680, 2840, 2840, 2840,  900, 2841,  895,  894, 2842, 2844,
2541      2844, 2844, 2845, 2845, 2845,  892, 2854, 2854, 2854, 1680,
2542      2855,  890,  888, 2856, 2897, 1678, 1678, 1678, 1678, 1678,
2543      1678, 1678, 1678, 1678,  886,  884, 1678, 2922, 2922, 2922,
2544       881, 1678, 1678, 1678, 1680, 1678, 2872, 2872, 2872, 2873,
2545      2873, 2873, 2878, 2878, 2878, 2923, 2933, 2933, 2933,  880,
2546      2934,  879,  878, 2935, 2881, 2881, 2881, 2874,  877, 2879,
2547      1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678,
2548      1678, 2882,  875, 1678, 2883, 2883, 2883,  873, 1678, 1678,
2549
2550      1678, 1680, 1678, 2937, 2937, 2937,  872, 2938,  871,  869,
2551      2939, 2884, 2940, 2940, 2940,  867, 2941,  866,  864, 2942,
2552      2955, 2955, 2955, 2922, 2922, 2922,  862, 1678, 1678, 2903,
2553      2903, 2903,  861, 2904,  859,  855, 2905,  854, 2956,  852,
2554       847, 2923, 2955, 2955, 2955,  845,  841, 1680, 1678, 1678,
2555      1678, 1678, 1678, 2967, 1678, 1678, 1678,  840,  839, 1678,
2556      2956,  837,  835,  834, 1678, 1678, 1678, 1680, 1678, 2933,
2557      2933, 2933,  833, 2934,  831,  829, 2935, 2937, 2937, 2937,
2558       828, 2938,  826,  824, 2939, 2940, 2940, 2940,  823, 2941,
2559       822,  821, 2942, 1678, 1678, 1678, 1678, 1678, 1678, 1678,
2560
2561      1678, 1678, 1678, 2967,  820,  819, 1678, 3004, 3004, 3004,
2562       818, 1678, 1678, 1678, 1680, 1678, 3013, 3013, 3013, 3015,
2563      3015, 3015, 3017, 3017, 3017, 1680, 1681, 3025, 3025, 3025,
2564      3035, 3035, 3035, 3014,  816,  814, 3016,  813,  810, 3018,
2565      1678, 1678,  809,  808, 3026, 3004, 3004, 3004, 1138, 3013,
2566      3013, 3013, 3043, 3043, 3043,  806, 3044,  794,  793, 3045,
2567      3015, 3015, 3015, 1680,  790,  788, 3014, 3046, 3046, 3046,
2568       786, 3047,  785,  784, 3048,  782,  780, 3016, 3017, 3017,
2569      3017, 3049, 3049, 3049,  778, 3050,  775,  774, 3051, 3025,
2570      3025, 3025, 3035, 3035, 3035, 3018, 1875, 3058, 3058, 3058,
2571
2572       773, 3059,  772,  771, 3060,  769, 3026, 3043, 3043, 3043,
2573      1138, 3044,  767,  766, 3045, 3046, 3046, 3046,  764, 3047,
2574       762,  761, 3048, 3049, 3049, 3049,  759, 3050,  757, 3069,
2575      3051, 3058, 3058, 3058,  756, 3059,  755,  753, 3060, 3174,
2576      3174, 3174, 3174, 3174, 3174,  751, 3183,  750,  749, 3184,
2577      3276, 3276, 3276, 3276, 3276, 3276,  748, 1138,  746, 3278,
2578      1138,  693,  726,  725,  723,  721,  720,  719, 3277,  717,
2579       713, 3277,  254,  254,  254,  254,  254,  254,  254,  254,
2580       254,  255,  255,  255,  255,  255,  255,  255,  255,  255,
2581       260,  260,  260,  260,  260,  260,  260,  260,  260,  263,
2582
2583       263,  263,  263,  263,  263,  263,  263,  263,  266,  266,
2584       266,  266,  266,  266,  266,  266,  266,  269,  269,  269,
2585       269,  269,  269,  269,  269,  269,  276,  276,  276,  276,
2586       276,  276,  276,  276,  276,  284,  284,  284,  284,  284,
2587       284,  284,  284,  284,  288,  288,  288,  288,  288,  288,
2588       288,  288,  288,  300,  300,  300,  300,  300,  300,  300,
2589       300,  300,  304,  304,  304,  304,  304,  304,  304,  304,
2590       304,  311,  311,  311,  311,  311,  311,  311,  311,  311,
2591       322,  322,  322,  322,  322,  322,  322,  322,  322,  330,
2592       330,  330,  330,  330,  330,  330,  330,  330,  336,  336,
2593
2594       336,  336,  336,  336,  336,  336,  336,  342,  342,  342,
2595       342,  342,  342,  342,  342,  342,  348,  348,  348,  348,
2596       348,  348,  348,  348,  348,  353,  353,  353,  353,  353,
2597       353,  353,  353,  353,  372,  372,  372,  372,  372,  372,
2598       372,  372,  372,  379,  379,  379,  379,  379,  379,  379,
2599       379,  379,  386,  386,  386,  386,  386,  386,  386,  386,
2600       386,  392,  392,  392,  392,  392,  392,  392,  392,  392,
2601       399,  399,  399,  399,  399,  399,  399,  399,  399,  404,
2602       404,  404,  404,  404,  404,  404,  404,  404,  410,  410,
2603       410,  410,  410,  410,  410,  410,  410,  415,  415,  415,
2604
2605       415,  415,  415,  415,  415,  415,  421,  421,  421,  421,
2606       421,  421,  421,  421,  421,  429,  429,  429,  429,  429,
2607       429,  429,  429,  429,  437,  437,  437,  437,  437,  437,
2608       437,  437,  437,  441,  441,  441,  441,  441,  441,  441,
2609       441,  441,  447,  447,  447,  447,  447,  447,  447,  447,
2610       447,  453,  453,  453,  453,  453,  453,  453,  453,  453,
2611       470,  470,  470,  470,  470,  470,  470,  470,  470,  476,
2612       476,  476,  476,  476,  476,  476,  476,  476,  485,  485,
2613       485,  485,  485,  485,  485,  485,  485,  491,  491,  491,
2614       491,  491,  491,  491,  491,  491,  501,  501,  501,  501,
2615
2616       501,  501,  501,  501,  501,  507,  507,  507,  507,  507,
2617       507,  507,  507,  507,  512,  512,  512,  512,  512,  512,
2618       512,  512,  512,  518,  518,  518,  518,  518,  518,  518,
2619       518,  518,  524,  524,  524,  524,  524,  524,  524,  524,
2620       524,  530,  530,  530,  530,  530,  530,  530,  530,  530,
2621       537,  537,  537,  537,  537,  537,  537,  537,  537,  544,
2622       544,  544,  544,  544,  544,  544,  544,  544,  549,  549,
2623       549,  549,  549,  549,  549,  549,  549,  557,  557,  557,
2624       557,  557,  557,  557,  557,  557,  563,  563,  563,  563,
2625       563,  563,  563,  563,  563,  570,  570,  570,  570,  570,
2626
2627       570,  570,  570,  570,  575,  575,  575,  575,  575,  575,
2628       575,  575,  575,  581,  581,  581,  581,  581,  581,  581,
2629       581,  581,  586,  586,  586,  586,  586,  586,  586,  586,
2630       586,  593,  593,  593,  593,  593,  593,  593,  593,  593,
2631       599,  599,  599,  599,  599,  599,  599,  599,  599,  606,
2632       606,  606,  606,  606,  606,  606,  606,  606,  614,  614,
2633       614,  614,  614,  614,  614,  614,  614,  622,  622,  622,
2634       622,  622,  622,  622,  622,  622,  626,  626,  626,  626,
2635       626,  626,  626,  626,  626,  632,  632,  632,  632,  632,
2636       632,  632,  632,  632,  636,  636,  636,  636,  636,  636,
2637
2638       636,  636,  636,  643,  643,  643,  643,  643,  643,  643,
2639       643,  643,  648,  648,  648,  648,  648,  648,  648,  648,
2640       648,  668,  668,  668,  709,  708,  706,  668,  695,  695,
2641       695,  705,  702,  701,  695,  699,  699,  699,  700,  698,
2642       697,  699,  707,  707,  707,  696,  694,  689,  707,  718,
2643       718,  718, 3278,  669,  667,  718,  724,  724,  724,  665,
2644       659,  658,  724,  747,  747,  747,  659,  658,  657,  747,
2645       754,  754,  754,  656, 3278, 3278,  754,  760,  760,  760,
2646      3278, 3278, 3278,  760,  765,  765,  765, 3278, 3278, 3278,
2647       765,  770,  770,  770, 3278, 3278, 3278,  770,  779,  779,
2648
2649       779, 3278, 3278, 3278,  779,  783,  783,  783, 3278, 3278,
2650      3278,  783,  789,  789,  789, 3278, 3278, 3278,  789,  807,
2651       807,  807, 3278, 3278, 3278,  807,  817,  817,  817, 3278,
2652      3278, 3278,  817,  827,  827,  827, 3278, 3278, 3278,  827,
2653       832,  832,  832, 3278, 3278, 3278,  832,  838,  838,  838,
2654      3278, 3278, 3278,  838,  846,  846,  846, 3278, 3278, 3278,
2655       846,  853,  853,  853, 3278, 3278, 3278,  853,  860,  860,
2656       860, 3278, 3278, 3278,  860,  865,  865,  865, 3278, 3278,
2657      3278,  865,  870,  870,  870, 3278, 3278, 3278,  870,  876,
2658       876,  876, 3278, 3278, 3278,  876,  885,  885,  885, 3278,
2659
2660      3278, 3278,  885,  889,  889,  889, 3278, 3278, 3278,  889,
2661       893,  893,  893, 3278, 3278, 3278,  893,  897,  897,  897,
2662       897,  897,  897,  897, 3278,  897,  668,  668,  668, 3278,
2663      3278, 3278,  668,  912, 3278, 3278, 3278,  912,  695,  695,
2664       695, 3278, 3278, 3278,  695,  944, 3278, 3278, 3278,  944,
2665       699,  699,  699, 3278, 3278, 3278,  699,  951, 3278, 3278,
2666      3278,  951,  707,  707,  707, 3278, 3278, 3278,  707,  963,
2667      3278, 3278, 3278,  963,  718,  718,  718, 3278, 3278, 3278,
2668       718,  968, 3278, 3278, 3278,  968,  724,  724,  724, 3278,
2669      3278, 3278,  724,  973, 3278, 3278, 3278,  973,  747,  747,
2670
2671       747, 3278, 3278, 3278,  747,  994, 3278, 3278, 3278,  994,
2672       754,  754,  754, 3278, 3278, 3278,  754, 1000, 3278, 3278,
2673      3278, 1000,  760,  760,  760, 3278, 3278, 3278,  760, 1005,
2674      3278, 3278, 3278, 1005,  765,  765,  765, 3278, 3278, 3278,
2675       765, 1009, 3278, 3278, 3278, 1009,  770,  770,  770, 3278,
2676      3278, 3278,  770, 1018, 3278, 3278, 3278, 1018,  779,  779,
2677       779, 3278, 3278, 3278,  779, 1023, 3278, 3278, 3278, 1023,
2678       783,  783,  783, 3278, 3278, 3278,  783, 1030, 3278, 3278,
2679      3278, 1030,  789,  789,  789, 3278, 3278, 3278,  789, 1049,
2680      3278, 3278, 3278, 1049,  807,  807,  807, 3278, 3278, 3278,
2681
2682       807, 1060, 3278, 3278, 3278, 1060,  817,  817,  817, 3278,
2683      3278, 3278,  817, 1070, 3278, 3278, 3278, 1070,  827,  827,
2684       827, 3278, 3278, 3278,  827, 1075, 3278, 3278, 3278, 1075,
2685       832,  832,  832, 3278, 3278, 3278,  832, 1081, 3278, 3278,
2686      3278, 1081,  838,  838,  838, 3278, 3278, 3278,  838, 1089,
2687      3278, 3278, 3278, 1089,  846,  846,  846, 3278, 3278, 3278,
2688       846, 1094, 3278, 3278, 3278, 1094,  853,  853,  853, 3278,
2689      3278, 3278,  853, 1101, 3278, 3278, 3278, 1101,  860,  860,
2690       860, 3278, 3278, 3278,  860, 1106, 3278, 3278, 3278, 1106,
2691       865,  865,  865, 3278, 3278, 3278,  865, 1110, 3278, 3278,
2692
2693      3278, 1110,  870,  870,  870, 3278, 3278, 3278,  870, 1115,
2694      3278, 3278, 3278, 1115,  876,  876,  876, 3278, 3278, 3278,
2695       876, 1122, 3278, 3278, 3278, 1122,  885,  885,  885, 3278,
2696      3278, 3278,  885, 1126, 3278, 3278, 3278, 1126,  889,  889,
2697       889, 3278, 3278, 3278,  889, 1130, 3278, 3278, 3278, 1130,
2698       893,  893,  893, 3278, 3278, 3278,  893, 1135, 3278, 3278,
2699      3278, 1135, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137,
2700      1137, 1143, 3278, 3278, 3278, 3278, 1143,  668,  668,  668,
2701      3278, 3278, 3278,  668, 1152, 1152, 1152, 1152, 3278, 3278,
2702      1152, 1152,  695,  695,  695, 3278, 3278, 3278,  695, 1187,
2703
2704      1187, 1187, 1187, 3278, 3278, 1187, 1187,  699,  699,  699,
2705      3278, 3278, 3278,  699, 1197, 1197, 1197, 1197, 3278, 3278,
2706      1197, 1197,  707,  707,  707, 3278, 3278, 3278,  707, 1213,
2707      1213, 1213, 1213, 3278, 3278, 1213, 1213,  718,  718,  718,
2708      3278, 3278, 3278,  718, 1220, 1220, 1220, 1220, 3278, 3278,
2709      1220, 1220,  724,  724,  724, 3278, 3278, 3278,  724, 1228,
2710      1228, 1228, 1228, 3278, 3278, 1228, 1228,  747,  747,  747,
2711      3278, 3278, 3278,  747, 1251, 1251, 1251, 1251, 3278, 3278,
2712      1251, 1251,  754,  754,  754, 3278, 3278, 3278,  754, 1260,
2713      1260, 1260, 1260, 3278, 3278, 1260, 1260,  760,  760,  760,
2714
2715      3278, 3278, 3278,  760, 1268, 1268, 1268, 1268, 3278, 3278,
2716      1268, 1268,  765,  765,  765, 3278, 3278, 3278,  765, 1274,
2717      1274, 1274, 1274, 3278, 3278, 1274, 1274,  770,  770,  770,
2718      3278, 3278, 3278,  770, 1286, 1286, 1286, 1286, 3278, 3278,
2719      1286, 1286,  779,  779,  779, 3278, 3278, 3278,  779, 1293,
2720      1293, 1293, 1293, 3278, 3278, 1293, 1293,  783,  783,  783,
2721      3278, 3278, 3278,  783, 1304, 1304, 1304, 1304, 3278, 3278,
2722      1304, 1304,  789,  789,  789, 3278, 3278, 3278,  789, 1330,
2723      1330, 1330, 1330, 3278, 3278, 1330, 1330,  807,  807,  807,
2724       807, 3278,  807, 3278,  807, 1346, 1346, 1346, 1346, 3278,
2725
2726      3278, 1346, 1346,  817,  817,  817, 3278, 3278, 3278,  817,
2727      1361, 1361, 1361, 1361, 3278, 3278, 1361, 1361,  827,  827,
2728       827, 3278, 3278, 3278,  827, 1369, 1369, 1369, 1369, 3278,
2729      3278, 1369, 1369,  832,  832,  832, 3278, 3278, 3278,  832,
2730      1378, 1378, 1378, 1378, 3278, 3278, 1378, 1378,  838,  838,
2731       838, 3278, 3278, 3278,  838, 1389, 1389, 1389, 1389, 3278,
2732      3278, 1389, 1389,  846,  846,  846,  846, 3278,  846, 3278,
2733       846, 1398, 1398, 1398, 1398, 3278, 3278, 1398, 1398,  853,
2734       853,  853,  853, 3278,  853, 3278,  853, 1410, 1410, 1410,
2735      1410, 3278, 3278, 1410, 1410,  860,  860,  860, 3278, 3278,
2736
2737      3278,  860, 1418, 1418, 1418, 1418, 3278, 3278, 1418, 1418,
2738       865,  865,  865,  865, 3278,  865, 3278,  865, 1426, 1426,
2739      1426, 1426, 3278, 3278, 1426, 1426,  870,  870,  870,  870,
2740      3278,  870, 3278,  870, 1436, 1436, 1436, 1436, 3278, 3278,
2741      1436, 1436,  876,  876,  876, 3278, 3278, 3278,  876, 1445,
2742      1445, 1445, 1445, 3278, 3278, 1445, 1445,  885,  885,  885,
2743      3278, 3278, 3278,  885, 1451, 1451, 1451, 1451, 3278, 3278,
2744      1451, 1451, 1458, 1458, 1458, 1458, 3278, 3278, 1458, 1458,
2745       893,  893,  893, 3278, 3278, 3278,  893, 1466, 1466, 1466,
2746      1466, 3278, 3278, 1466, 1466, 1137, 1137, 1137, 1137, 1137,
2747
2748      1137, 1137, 1137, 1137, 1143, 3278, 1143, 3278, 3278, 1143,
2749       668,  668,  668, 3278, 3278, 3278,  668, 1152, 1152, 1152,
2750      1152, 3278, 3278, 1152, 1152,  695,  695,  695,  695, 3278,
2751       695, 3278,  695, 1187, 1187, 1187, 1187, 3278, 3278, 1187,
2752      1187,  699,  699,  699,  699, 3278,  699, 3278,  699, 1197,
2753      1197, 1197, 1197, 3278, 3278, 1197, 1197,  707,  707,  707,
2754      3278, 3278, 3278,  707, 1213, 1213, 1213, 1213, 3278, 3278,
2755      1213, 1213,  718,  718,  718, 3278, 3278, 3278,  718, 1220,
2756      1220, 1220, 1220, 3278, 3278, 1220, 1220,  724,  724,  724,
2757      3278, 3278, 3278,  724, 1228, 1228, 1228, 1228, 3278, 3278,
2758
2759      1228, 1228,  747,  747,  747, 3278, 3278, 3278,  747, 1251,
2760      1251, 1251, 1251, 3278, 3278, 1251, 1251,  754,  754,  754,
2761      3278, 3278, 3278,  754, 1260, 1260, 1260, 1260, 3278, 3278,
2762      1260, 1260,  760,  760,  760,  760, 3278,  760, 3278,  760,
2763      1268, 1268, 1268, 1268, 3278, 3278, 1268, 1268,  765,  765,
2764       765,  765, 3278,  765, 3278,  765, 1274, 1274, 1274, 1274,
2765      3278, 3278, 1274, 1274,  770,  770,  770, 3278, 3278, 3278,
2766       770, 1286, 1286, 1286, 1286, 3278, 3278, 1286, 1286,  779,
2767       779,  779,  779, 3278,  779, 3278,  779, 1293, 1293, 1293,
2768      1293, 3278, 3278, 1293, 1293,  783,  783,  783,  783, 3278,
2769
2770       783, 3278,  783, 1304, 1304, 1304, 1304, 3278, 3278, 1304,
2771      1304,  789,  789,  789, 3278, 3278, 3278,  789, 1330, 1330,
2772      1330, 1330, 3278, 3278, 1330, 1330,  807,  807,  807, 3278,
2773      3278, 3278,  807, 1346, 1346, 1346, 1346, 3278, 3278, 1346,
2774      1346,  817,  817,  817, 3278, 3278, 3278,  817, 1361, 1361,
2775      1361, 1361, 3278, 3278, 1361, 1361,  827,  827,  827, 3278,
2776      3278, 3278,  827, 1369, 1369, 1369, 1369, 3278, 3278, 1369,
2777      1369,  832,  832,  832, 3278, 3278, 3278,  832, 1378, 1378,
2778      1378, 1378, 3278, 3278, 1378, 1378,  838,  838,  838, 3278,
2779      3278, 3278,  838, 1389, 1389, 1389, 1389, 3278, 3278, 1389,
2780
2781      1389,  846,  846,  846, 3278, 3278, 3278,  846, 1398, 1398,
2782      1398, 1398, 3278, 3278, 1398, 1398,  853,  853,  853, 3278,
2783      3278, 3278,  853, 1410, 1410, 1410, 1410, 3278, 3278, 1410,
2784      1410,  860,  860,  860, 3278, 3278, 3278,  860, 1418, 1418,
2785      1418, 1418, 3278, 3278, 1418, 1418, 1426, 1426, 1426, 1426,
2786      3278, 3278, 1426, 1426,  870,  870,  870, 3278, 3278, 3278,
2787       870, 1436, 1436, 1436, 1436, 3278, 3278, 1436, 1436,  876,
2788       876,  876, 3278, 3278, 3278,  876, 1445, 1445, 1445, 1445,
2789      3278, 3278, 1445, 1445,  885,  885,  885, 3278, 3278, 3278,
2790       885, 1451, 1451, 1451, 1451, 3278, 3278, 1451, 1451, 1458,
2791
2792      1458, 1458, 1458, 3278, 3278, 1458, 1458,  893,  893,  893,
2793      3278, 3278, 3278,  893, 1466, 1466, 1466, 1466, 3278, 3278,
2794      1466, 1466, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137,
2795      1137, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678,
2796       668,  668,  668, 3278, 3278, 3278,  668, 1152, 1152, 1152,
2797      1152, 3278, 3278, 1152, 1152, 1187, 1187, 1187, 1187, 3278,
2798      3278, 1187, 1187,  699,  699,  699, 3278, 3278, 3278,  699,
2799      1197, 1197, 1197, 1197, 3278, 3278, 1197, 1197,  707,  707,
2800       707, 3278, 3278, 3278,  707, 1213, 1213, 1213, 1213, 3278,
2801      3278, 1213, 1213,  718,  718,  718, 3278, 3278, 3278,  718,
2802
2803      1220, 1220, 1220, 1220, 3278, 3278, 1220, 1220,  724,  724,
2804       724, 3278, 3278, 3278,  724,  747,  747,  747, 3278, 3278,
2805      3278,  747, 1251, 1251, 1251, 1251, 3278, 3278, 1251, 1251,
2806       754,  754,  754, 3278, 3278, 3278,  754, 1260, 1260, 1260,
2807      1260, 3278, 3278, 1260, 1260, 1268, 1268, 1268, 1268, 3278,
2808      3278, 1268, 1268,  765,  765,  765, 3278, 3278, 3278,  765,
2809      1274, 1274, 1274, 1274, 3278, 3278, 1274, 1274,  770,  770,
2810       770, 3278, 3278, 3278,  770, 1286, 1286, 1286, 1286, 3278,
2811      3278, 1286, 1286, 1293, 1293, 1293, 1293, 3278, 3278, 1293,
2812      1293, 1304, 1304, 1304, 1304, 3278, 3278, 1304, 1304,  789,
2813
2814       789,  789, 3278, 3278, 3278,  789, 1330, 1330, 1330, 1330,
2815      3278, 3278, 1330, 1330,  807,  807,  807,  807, 3278,  807,
2816      3278,  807, 1346, 1346, 1346, 1346, 3278, 3278, 1346, 1346,
2817       817,  817,  817, 3278, 3278, 3278,  817, 1361, 1361, 1361,
2818      1361, 3278, 3278, 1361, 1361,  827,  827,  827, 3278, 3278,
2819      3278,  827, 1369, 1369, 1369, 1369, 3278, 3278, 1369, 1369,
2820       832,  832,  832, 3278, 3278, 3278,  832, 1378, 1378, 1378,
2821      1378, 3278, 3278, 1378, 1378,  838,  838,  838, 3278, 3278,
2822      3278,  838, 1389, 1389, 1389, 1389, 3278, 3278, 1389, 1389,
2823       846,  846,  846, 3278, 3278, 3278,  846, 1398, 1398, 1398,
2824
2825      1398, 3278, 3278, 1398, 1398,  853,  853,  853, 3278, 3278,
2826      3278,  853, 1410, 1410, 1410, 1410, 3278, 3278, 1410, 1410,
2827       860,  860,  860, 3278, 3278, 3278,  860, 1418, 1418, 1418,
2828      1418, 3278, 3278, 1418, 1418, 1426, 1426, 1426, 1426, 3278,
2829      3278, 1426, 1426,  870,  870,  870, 3278, 3278, 3278,  870,
2830      1436, 1436, 1436, 1436, 3278, 3278, 1436, 1436,  876,  876,
2831       876, 3278, 3278, 3278,  876, 1445, 1445, 1445, 1445, 3278,
2832      3278, 1445, 1445,  885,  885,  885,  885, 3278,  885, 3278,
2833       885, 1451, 1451, 1451, 1451, 3278, 3278, 1451, 1451, 1458,
2834      1458, 1458, 1458, 3278, 3278, 1458, 1458,  893,  893,  893,
2835
2836       893, 3278,  893, 3278,  893, 1466, 1466, 1466, 1466, 3278,
2837      3278, 1466, 1466, 1137, 1137, 1137, 1137, 1137, 1137, 1137,
2838      1137, 1137, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678,
2839      1678,  668,  668,  668, 3278, 3278, 3278,  668, 1152, 1152,
2840      1152, 1152, 3278, 3278, 1152, 1152, 1187, 1187, 1187, 1187,
2841      3278, 3278, 1187, 1187,  699,  699,  699, 3278, 3278, 3278,
2842       699, 1197, 1197, 1197, 1197, 3278, 3278, 1197, 1197,  707,
2843       707,  707, 3278, 3278, 3278,  707, 1213, 1213, 1213, 1213,
2844      3278, 3278, 1213, 1213,  718,  718,  718, 3278, 3278, 3278,
2845       718, 1220, 1220, 1220, 1220, 3278, 3278, 1220, 1220,  724,
2846
2847       724,  724, 3278, 3278, 3278,  724,  747,  747,  747, 3278,
2848      3278, 3278,  747, 1251, 1251, 1251, 1251, 3278, 3278, 1251,
2849      1251,  754,  754,  754, 3278, 3278, 3278,  754, 1260, 1260,
2850      1260, 1260, 3278, 3278, 1260, 1260, 1268, 1268, 1268, 1268,
2851      3278, 3278, 1268, 1268,  765,  765,  765,  765, 3278,  765,
2852      3278,  765, 1274, 1274, 1274, 1274, 3278, 3278, 1274, 1274,
2853       770,  770,  770, 3278, 3278, 3278,  770, 1286, 1286, 1286,
2854      1286, 3278, 3278, 1286, 1286, 1304, 1304, 1304, 1304, 3278,
2855      3278, 1304, 1304,  789,  789,  789, 3278, 3278, 3278,  789,
2856      1330, 1330, 1330, 1330, 3278, 3278, 1330, 1330,  807,  807,
2857
2858       807,  807, 3278,  807, 3278,  807, 1346, 1346, 1346, 1346,
2859      3278, 3278, 1346, 1346,  817,  817,  817, 3278, 3278, 3278,
2860       817, 1361, 1361, 1361, 1361, 3278, 3278, 1361, 1361,  827,
2861       827,  827, 3278, 3278, 3278,  827, 1369, 1369, 1369, 1369,
2862      3278, 3278, 1369, 1369,  832,  832,  832, 3278, 3278, 3278,
2863       832, 1378, 1378, 1378, 1378, 3278, 3278, 1378, 1378,  838,
2864       838,  838, 3278, 3278, 3278,  838, 1389, 1389, 1389, 1389,
2865      3278, 3278, 1389, 1389,  846,  846,  846, 3278, 3278, 3278,
2866       846, 1398, 1398, 1398, 1398, 3278, 3278, 1398, 1398,  853,
2867       853,  853,  853, 3278,  853, 3278,  853, 1410, 1410, 1410,
2868
2869      1410, 3278, 3278, 1410, 1410,  860,  860,  860, 3278, 3278,
2870      3278,  860, 1418, 1418, 1418, 1418, 3278, 3278, 1418, 1418,
2871      1426, 1426, 1426, 1426, 3278, 3278, 1426, 1426,  870,  870,
2872       870,  870, 3278,  870, 3278,  870, 1436, 1436, 1436, 1436,
2873      3278, 3278, 1436, 1436,  876,  876,  876, 3278, 3278, 3278,
2874       876, 1445, 1445, 1445, 1445, 3278, 3278, 1445, 1445, 1451,
2875      1451, 1451, 1451, 3278, 3278, 1451, 1451, 1458, 1458, 1458,
2876      1458, 3278, 3278, 1458, 1458, 1466, 1466, 1466, 1466, 3278,
2877      3278, 1466, 1466, 1137, 1137, 1137, 1137, 1137, 1137, 1137,
2878      1137, 1137, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678,
2879
2880      1678,  668,  668,  668,  668, 3278,  668, 3278,  668, 1152,
2881      1152, 1152, 1152, 3278, 3278, 1152, 1152, 1187, 1187, 1187,
2882      1187, 3278, 3278, 1187, 1187,  699,  699,  699, 3278, 3278,
2883      3278,  699, 1197, 1197, 1197, 1197, 3278, 3278, 1197, 1197,
2884       707,  707,  707, 3278, 3278, 3278,  707, 1213, 1213, 1213,
2885      1213, 3278, 3278, 1213, 1213,  718,  718,  718,  718, 3278,
2886       718, 3278,  718, 1220, 1220, 1220, 1220, 3278, 3278, 1220,
2887      1220,  724,  724,  724,  724, 3278,  724, 3278,  724,  747,
2888       747,  747,  747, 3278,  747, 3278,  747, 1251, 1251, 1251,
2889      1251, 3278, 3278, 1251, 1251,  754,  754,  754,  754, 3278,
2890
2891       754, 3278,  754, 1260, 1260, 1260, 1260, 3278, 3278, 1260,
2892      1260, 1268, 1268, 1268, 1268, 3278, 3278, 1268, 1268, 1274,
2893      1274, 1274, 1274, 3278, 3278, 1274, 1274,  770,  770,  770,
2894      3278, 3278, 3278,  770, 1304, 1304, 1304, 1304, 3278, 3278,
2895      1304, 1304,  789,  789,  789, 3278, 3278, 3278,  789, 1330,
2896      1330, 1330, 1330, 3278, 3278, 1330, 1330,  807,  807,  807,
2897       807, 3278,  807, 3278,  807, 1346, 1346, 1346, 1346, 3278,
2898      3278, 1346, 1346,  817,  817,  817, 3278, 3278, 3278,  817,
2899       827,  827,  827, 3278, 3278, 3278,  827, 1369, 1369, 1369,
2900      1369, 3278, 3278, 1369, 1369,  832,  832,  832, 3278, 3278,
2901
2902      3278,  832, 1378, 1378, 1378, 1378, 3278, 3278, 1378, 1378,
2903       838,  838,  838, 3278, 3278, 3278,  838,  846,  846,  846,
2904      3278, 3278, 3278,  846, 1398, 1398, 1398, 1398, 3278, 3278,
2905      1398, 1398,  853,  853,  853, 3278, 3278, 3278,  853, 1410,
2906      1410, 1410, 1410, 3278, 3278, 1410, 1410,  860,  860,  860,
2907      3278, 3278, 3278,  860, 1418, 1418, 1418, 1418, 3278, 3278,
2908      1418, 1418, 1426, 1426, 1426, 1426, 3278, 3278, 1426, 1426,
2909      1436, 1436, 1436, 1436, 3278, 3278, 1436, 1436,  876,  876,
2910       876, 3278, 3278, 3278,  876, 1445, 1445, 1445, 1445, 3278,
2911      3278, 1445, 1445, 1451, 1451, 1451, 1451, 3278, 3278, 1451,
2912
2913      1451, 1458, 1458, 1458, 1458, 3278, 3278, 1458, 1458, 1137,
2914      1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1678, 1678,
2915      1678, 1678, 1678, 1678, 1678, 1678, 1678, 1152, 1152, 1152,
2916      1152, 3278, 3278, 1152, 1152, 1187, 1187, 1187, 1187, 3278,
2917      3278, 1187, 1187,  699,  699,  699, 3278, 3278, 3278,  699,
2918       707,  707,  707, 3278, 3278, 3278,  707, 1213, 1213, 1213,
2919      1213, 3278, 3278, 1213, 1213, 1220, 1220, 1220, 1220, 3278,
2920      3278, 1220, 1220, 1251, 1251, 1251, 1251, 3278, 3278, 1251,
2921      1251, 1260, 1260, 1260, 1260, 3278, 3278, 1260, 1260, 1274,
2922      1274, 1274, 1274, 3278, 3278, 1274, 1274,  770,  770,  770,
2923
2924      3278, 3278, 3278,  770, 1304, 1304, 1304, 1304, 3278, 3278,
2925      1304, 1304,  789,  789,  789, 3278, 3278, 3278,  789, 1330,
2926      1330, 1330, 1330, 3278, 3278, 1330, 1330, 1346, 1346, 1346,
2927      1346, 3278, 3278, 1346, 1346,  817,  817,  817, 3278, 3278,
2928      3278,  817,  827,  827,  827, 3278, 3278, 3278,  827, 1369,
2929      1369, 1369, 1369, 3278, 3278, 1369, 1369,  832,  832,  832,
2930      3278, 3278, 3278,  832, 1378, 1378, 1378, 1378, 3278, 3278,
2931      1378, 1378,  838,  838,  838, 3278, 3278, 3278,  838,  846,
2932       846,  846, 3278, 3278, 3278,  846,  853,  853,  853, 3278,
2933      3278, 3278,  853, 1410, 1410, 1410, 1410, 3278, 3278, 1410,
2934
2935      1410,  860,  860,  860, 3278, 3278, 3278,  860, 1418, 1418,
2936      1418, 1418, 3278, 3278, 1418, 1418, 1426, 1426, 1426, 1426,
2937      3278, 3278, 1426, 1426, 1436, 1436, 1436, 1436, 3278, 3278,
2938      1436, 1436,  876,  876,  876,  876, 3278,  876, 3278,  876,
2939      1445, 1445, 1445, 1445, 3278, 3278, 1445, 1445, 1451, 1451,
2940      1451, 1451, 3278, 3278, 1451, 1451, 1458, 1458, 1458, 1458,
2941      3278, 3278, 1458, 1458, 1137, 1137, 1137, 1137, 1137, 1137,
2942      1137, 1137, 1137, 1678, 1678, 1678, 1678, 1678, 1678, 1678,
2943      1678, 1678, 1152, 1152, 1152, 1152, 3278, 3278, 1152, 1152,
2944      1187, 1187, 1187, 1187, 3278, 3278, 1187, 1187,  699,  699,
2945
2946       699, 3278, 3278, 3278,  699,  707,  707,  707,  707, 3278,
2947       707, 3278,  707, 1220, 1220, 1220, 1220, 3278, 3278, 1220,
2948      1220, 1251, 1251, 1251, 1251, 3278, 3278, 1251, 1251, 1260,
2949      1260, 1260, 1260, 3278, 3278, 1260, 1260, 1274, 1274, 1274,
2950      1274, 3278, 3278, 1274, 1274,  770,  770,  770, 3278, 3278,
2951      3278,  770, 1304, 1304, 1304, 1304, 3278, 3278, 1304, 1304,
2952       789,  789,  789, 3278, 3278, 3278,  789, 1330, 1330, 1330,
2953      1330, 3278, 3278, 1330, 1330, 1346, 1346, 1346, 1346, 3278,
2954      3278, 1346, 1346,  817,  817,  817, 3278, 3278, 3278,  817,
2955       827,  827,  827, 3278, 3278, 3278,  827,  832,  832,  832,
2956
2957       832, 3278,  832, 3278,  832, 1378, 1378, 1378, 1378, 3278,
2958      3278, 1378, 1378,  838,  838,  838,  838, 3278,  838, 3278,
2959       838,  846,  846,  846, 3278, 3278, 3278,  846,  853,  853,
2960       853, 3278, 3278, 3278,  853, 1410, 1410, 1410, 1410, 3278,
2961      3278, 1410, 1410,  860,  860,  860,  860, 3278,  860, 3278,
2962       860, 1418, 1418, 1418, 1418, 3278, 3278, 1418, 1418, 1426,
2963      1426, 1426, 1426, 3278, 3278, 1426, 1426, 1436, 1436, 1436,
2964      1436, 3278, 3278, 1436, 1436,  876,  876,  876,  876, 3278,
2965       876, 3278,  876, 1445, 1445, 1445, 1445, 3278, 3278, 1445,
2966      1445, 1451, 1451, 1451, 1451, 3278, 3278, 1451, 1451, 1137,
2967
2968      1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1678, 1678,
2969      1678, 1678, 1678, 1678, 1678, 1678, 1678, 1152, 1152, 1152,
2970      1152, 3278, 3278, 1152, 1152,  699,  699,  699, 3278, 3278,
2971      3278,  699,  707,  707,  707, 3278, 3278, 3278,  707, 1220,
2972      1220, 1220, 1220, 3278, 3278, 1220, 1220, 1251, 1251, 1251,
2973      1251, 3278, 3278, 1251, 1251, 1274, 1274, 1274, 1274, 3278,
2974      3278, 1274, 1274,  770,  770,  770, 3278, 3278, 3278,  770,
2975      1304, 1304, 1304, 1304, 3278, 3278, 1304, 1304,  789,  789,
2976       789, 3278, 3278, 3278,  789, 2906, 2906, 2906, 2906, 2906,
2977      2906, 2906, 2906, 2906, 2907, 2907, 2907, 2907, 2907, 2907,
2978
2979      2907, 2907, 2907, 2962, 2962, 2962, 2962, 2962, 2962, 2962,
2980      2962, 2962, 2965, 2965, 2965, 2965, 2965, 2965, 2965, 2965,
2981      2965, 3001, 3001, 3001, 3001, 3001, 3001, 3001, 3001, 3001,
2982      3003, 3003, 3003, 3003, 3003, 3003, 3003, 3003, 3003,  253,
2983      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
2984      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
2985      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
2986      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
2987      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
2988      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
2989
2990      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
2991      3278, 3278, 3278, 3278
2992     } ;
2993
2994 static yyconst flex_int16_t yy_chk[12115] =
2995     {   0,
2996         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
2997         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
2998         4,   10,    0,    5,    0,    9,    6,    0,   10,    7,
2999         8,    8,    8,  258,   11,   13,   13,   12,   14,   14,
3000        13,   13,  307,   14,   14,  259,    8,   17,   17,  258,
3001        13,   15,   15,   14,   15,  262,   15,   16,   16,  361,
3002        16,  259,   16,   18,   18, 1524,   15,   19,   19,   19,
3003       536,  262,   16,   20,   20,   20,   23,   23,   23,   24,
3004        24,   24,  536,   19,   25,   25,   25,  361, 1527,   20,
3005       368,   17,   23, 1063,  307,   24,  256,  256,  256, 1063,
3006
3007        25,  257,  257,  257,  261,  261,  261,   18,   21,   21,
3008        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
3009        21,   21,   21,  291,   21,   21,   21,   21,   21,   26,
3010        26,   26,   27,   27,   27,   28,   28,   28,  291,   29,
3011        29,   29,   30,   30,   30,   26,  368,  467,   27,  285,
3012       467,   28,  673,   21,   21,   29,  301,  280,   30,   31,
3013        31,   31,  282,  282,  282,  285,  289,  289,  289,  298,
3014       298,  298,  301,  280,  357,   31,  673,   21,   22,   22,
3015        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
3016        22,   22,   22, 1529,   22,   22,   22,   22,   22,   32,
3017
3018        32,   32,   33,   33,   33,   34,   34,   34,  272,   35,
3019        35,   35,   36,   36,   36,   32,  280,  360,   33,  482,
3020       729,   34,  482,   22,   22,   35,  357,  360,   36,   37,
3021        37,   37,   38,   38,   38,   39,   39,   39,   40,   40,
3022        40,   41,   41,   41,  729,   37,  548,   22,   38,  312,
3023       272,   39,  463,  548,   40,  360,  272,   41,   42,   42,
3024        42,  272,  305,  305,  305,  312,  272,  309,  309,  309,
3025       320,  320,  320,  463,   42,   43,   43,   43,   43,   43,
3026        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
3027       329,   43,   43,   43,   43,   43,   45,   45,   45,   46,
3028
3029        46,   46,   47,   47,   47,  329,   48,   48,   48,   49,
3030        49,   49,   45,  661,  553,   46,  661, 1534,   47,  327,
3031        43,   43,   48,  327,  381,   49,  293,  327,   43,   44,
3032        44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
3033        44,   44,   44,   44,  323,   44,   44,   44,   44,   44,
3034        50,   50,   50,   51,   51,   51,   52,   52,   52,  468,
3035       323,  566,   55,   55,  562,  293,   50,   55,  294,   51,
3036       553,  562,   52,  468,   44,   44,  381,   55,  293,  382,
3037       293, 1537,   44,   53,   53,   53,   53,   53,   53,   53,
3038        53,   53,   53,   53,   53,   53,   53,   53, 1538,   53,
3039
3040        53,   53,   53,   53, 1539,  337,   55,  294,   59,   59,
3041        59,   60,   60,   60,   63,   63,   63,  566,   56,   56,
3042       294,  337,  294,   56,   59,  317,  466,   60,   53,   53,
3043        63,  382,  317,   56,  466,  772,   53,  394,  772,   53,
3044       466,  317,  331,  331,  331, 1544,   53,   54,   54,   54,
3045        54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
3046        54,   54,   56,   54,   54,   54,   54,   54,   64,   64,
3047        64,   67,   67,   67,   68,   68,   68, 1545,   69,   69,
3048        69,   70,   70,   70,   64,  349,  367,   67,  332,  394,
3049        68,  552,   54,   54,   69,  332, 1171,   70, 1546,  552,
3050
3051        54,  349,  367,   54,  332,  334,  334,  334,  395, 1171,
3052        54,   57,   57,   57,   57,   57,   57,   57,   57,   57,
3053        57,   57,   57,   57,   57,   57, 1547,   57,   57,   57,
3054        57,   57,   71,   71,   71,   72,   72,   72,   73,   73,
3055        73,  433,   74,   74,   74,   75,   75,   75,   71, 1548,
3056       373,   72,  344,  387,   73, 1549,   57,   57,   74,  344,
3057       395,   75,  343,  343,  343,   57,  373,   57,  344,  387,
3058       431,   57,  346,  346,  346,  539,   57,   57,   58,   58,
3059        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
3060        58,   58,   58,  433,   58,   58,   58,   58,   58,   76,
3061
3062        76,   76,   77,   77,   77,   78,   78,   78,  617,   79,
3063        79,   79,   80,   80,   80,   76,  359, 1550,   77,  431,
3064       617,   78,  431,   58,   58,   79,  359,  539,   80,  354,
3065       354,  354,   58,  359,   58,  370,  370,  370,   58,  380,
3066       380,  380, 1555,   58,   58,   61,   61,   61,   61,   61,
3067        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
3068       365,   61,   61,   61,   61,   61,   81,   81,   81,   82,
3069        82,   82,   83,   83,   83,  703,   84,   84,   84,   85,
3070        85,   85,   81, 1556, 1563,   82,  652,  589,   83,  365,
3071        61,   61,   84,  365,  365,   85,  602,   61,  384,  384,
3072
3073       384,  652,  365,   61,  365,  393,  393,  393,  397,  397,
3074       397,  703,   61,   62,   62,   62,   62,   62,   62,   62,
3075        62,   62,   62,   62,   62,   62,   62,   62, 1565,   62,
3076        62,   62,   62,   62,   86,   86,   86,   87,   87,   87,
3077        88,   88,   88,  589,   89,   89,   89,   90,   90,   90,
3078        86,  400,  602,   87, 1566,  738,   88,  406,   62,   62,
3079        89,  411,  422,   90,  406,   62, 1572,  400,  405,  405,
3080       405,   62,  739,  406,  408,  408,  408,  411,  422,  738,
3081        62,   65,   65,   65,   65,   65,   65,   65,   65,   65,
3082        65,   65,   65,   65,   65,   65,  739,   65,   65,   65,
3083
3084        65,   65,   91,   91,   91,   92,   92,   92,   93,   93,
3085        93, 1573,   94,   94,   94,   95,   95,   95,   91,  438,
3086      1580,   92,  417, 1582,   93,  540,   65,   65,   94,  417,
3087      1583,   95,  416,  416,  416,  438,  432,   65,  417,  419,
3088       419,  419,  430,  430,  430, 1589,   65,   66,   66,   66,
3089        66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
3090        66,   66,  740,   66,   66,   66,   66,   66,   96,   96,
3091        96,   97,   97,   97,   98,   98,   98,  540,   99,   99,
3092        99,  100,  100,  100,   96,  432,  740,   97,  432,  741,
3093        98, 1590,   66,   66,   99,  443, 1592,  100,  101,  101,
3094
3095       101, 1593,  443,   66,  102,  102,  102,  435,  435,  435,
3096       618,  443,   66,  741,  101,  442,  442,  442,  366, 1594,
3097       102,  103,  103,  103,  103,  103,  103,  103,  103,  103,
3098       103,  103,  103,  103,  103,  103,  745,  103,  103,  103,
3099       103,  103,  105,  105,  105,  106,  106,  106,  107,  107,
3100       107,  679,  108,  108,  108,  679,  366,  448,  105,  777,
3101       745,  106,  618,  777,  107,  363,  103,  103,  108,  455,
3102       460,  103,  366,  448,  638,  363,  455,  103,  445,  445,
3103       445,  103,  454,  454,  454,  455,  460,  103,  104,  104,
3104       104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
3105
3106       104,  104,  104,  363,  104,  104,  104,  104,  104,  109,
3107       109,  109,  110,  110,  110,  111,  111,  111,  639,  112,
3108       112,  112,  457,  457,  457,  109,  638,  469,  110,  472,
3109       477,  111, 1469,  104,  104,  112,  472,  492,  104,  469,
3110       469,  471,  471,  471,  104,  472,  477, 1595,  104,  474,
3111       474,  474, 1469,  492,  104,  113,  113,  113,  113,  113,
3112       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
3113       639,  113,  113,  113,  113,  113,  115,  115,  115,  116,
3114       116,  116,  117,  117,  117,  681,  118,  118,  118,  486,
3115       486,  486,  115,  508,  519,  116,  487, 1596,  117,  681,
3116
3117       113,  113,  118,  487, 1597,  113,  489,  489,  489,  508,
3118       519,  113,  487,  502,  502,  502,  505,  505,  505,  513,
3119       513,  513,  113,  114,  114,  114,  114,  114,  114,  114,
3120       114,  114,  114,  114,  114,  114,  114,  114, 1607,  114,
3121       114,  114,  114,  114,  119,  119,  119,  120,  120,  120,
3122       121,  121,  121,  685,  122,  122,  122, 1140,  503, 1183,
3123       119, 1140,  531,  120,  514,  503,  121,  685,  114,  114,
3124       122,  514, 1183,  114,  503,  516,  516,  516,  531,  114,
3125       514,  525,  525,  525,  528,  528,  528,  538,  538,  538,
3126       114,  123,  123,  123,  123,  123,  123,  123,  123,  123,
3127
3128       123,  123,  123,  123,  123,  123, 1609,  123,  123,  123,
3129       123,  123,  125,  125,  125,  126,  126,  126,  129,  129,
3130       129, 1610,  130,  130,  130,  133,  133,  133,  125,  545,
3131       558,  126,  526, 1615,  129,  565,  123,  123,  130,  526,
3132      1617,  133,  542,  542,  542,  545,  558,  123,  526,  550,
3133       550,  550,  123,  124,  124,  124,  124,  124,  124,  124,
3134       124,  124,  124,  124,  124,  124,  124,  124, 1619,  124,
3135       124,  124,  124,  124,  134,  134,  134,  135,  135,  135,
3136       136,  136,  136,  565,  137,  137,  137,  138,  138,  138,
3137       134,  565, 1620,  135, 1622, 1623,  136,  571,  124,  124,
3138
3139       137, 1624, 1633,  138, 1639,  551,  555,  555,  555,  124,
3140       564,  564,  564,  571,  124,  127,  127,  127,  127,  127,
3141       127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
3142      1640,  127,  127,  127,  127,  127,  139,  139,  139,  140,
3143       140,  140,  143,  143,  143,  734,  144,  144,  144,  147,
3144       147,  147,  139,  551, 1644,  140,  577,  551,  143,  734,
3145       127,  127,  144,  577,  582,  147,  568,  568,  568,  576,
3146       576,  576,  577,  579,  579,  579,  127,  587,  587,  587,
3147       582, 1646,  127,  128,  128,  128,  128,  128,  128,  128,
3148       128,  128,  128,  128,  128,  128,  128,  128, 1658,  128,
3149
3150       128,  128,  128,  128,  148,  148,  148,  151,  151,  151,
3151       152,  152,  152, 1659,  155,  155,  155,  156,  156,  156,
3152       148, 1664,  594,  151, 1667, 1668,  152,  607,  128,  128,
3153       155,  674,  623,  156,  591,  591,  591,  588,  594,  600,
3154       600,  600,  674,  607,  128,  674, 1669,  601,  623, 1671,
3155       128,  131,  131,  131,  131,  131,  131,  131,  131,  131,
3156       131,  131,  131,  131,  131,  131, 1678,  131,  131,  131,
3157       131,  131,  159,  159,  159,  160,  160,  160,  163,  163,
3158       163, 1681,  164,  164,  164,  588,  633, 1684,  159, 1685,
3159      1687,  160, 1688,  588,  163,  601,  131,  131,  164,  131,
3160
3161       644,  131,  633,  601,  604,  604,  604,  131,  615,  615,
3162       615,  620,  620,  620,  131,  616,  644,  131,  132,  132,
3163       132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
3164       132,  132,  132, 1689,  132,  132,  132,  132,  132,  167,
3165       167,  167,  168,  168,  168,  171,  171,  171,  684,  172,
3166       172,  172,  616, 1690, 1691,  167,  899, 1677,  168,  684,
3167      1237,  171,  684,  132,  132,  172,  132,  616,  132,  627,
3168       627,  627,  899, 1237,  132,  630,  630,  630,  637,  637,
3169       637,  132, 1677, 1692,  132,  141,  141,  141,  141,  141,
3170       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
3171
3172      1693,  141,  141,  141,  141,  141,  173,  173,  173,  174,
3173       174,  174,  175,  175,  175,  742,  176,  176,  176,  177,
3174       177,  177,  173, 1695, 1696,  174,  628,  650,  175,  742,
3175       141,  141,  176,  628,  650,  177,  641,  641,  641,  649,
3176       649,  649,  628,  650, 1698, 1700,  141,  142,  142,  142,
3177       142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
3178       142,  142, 1702,  142,  142,  142,  142,  142,  178,  178,
3179       178,  181,  181,  181,  182,  182,  182,  744,  183,  183,
3180       183,  184,  184,  184,  178, 1703, 1705,  181,  680, 1707,
3181       182,  744,  142,  142,  183,  680, 1709,  184,  651,  651,
3182
3183       651,  680,  660,  660,  660, 1155, 1155, 1155,  142,  145,
3184       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3185       145,  145,  145,  145, 1710,  145,  145,  145,  145,  145,
3186       185,  185,  185,  186,  186,  186,  187,  187,  187,  687,
3187       188,  188,  188,  191,  191,  191,  185, 1711, 1712,  186,
3188       687,  689,  187,  687,  145,  145,  188,  691,  689,  191,
3189       145,  660,  692,  693,  689,  145, 1713, 1715,  691,  692,
3190       693,  691, 1163, 1163, 1163,  692,  693,  145,  146,  146,
3191       146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
3192       146,  146,  146, 1724,  146,  146,  146,  146,  146,  192,
3193
3194       192,  192,  193,  193,  193,  194,  194,  194, 1725,  195,
3195       195,  195,  196,  196,  196,  192, 1727, 1731,  193,  733,
3196       736,  194, 1735,  146,  146,  195,  733,  736,  196,  146,
3197       743, 1737,  733,  736,  146,  902,  902,  902, 1744,  902,
3198      1745,  743, 1746, 1747,  743, 1749,  146,  149,  149,  149,
3199       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3200       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3201       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3202       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3203       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3204
3205       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3206       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3207       149,  153,  153,  153,  153,  153,  153,  153,  153,  153,
3208       153,  153,  153,  153,  153,  153, 1753,  153,  153,  153,
3209       153,  153,  197,  197,  197,  198,  198,  198,  201,  201,
3210       201, 1754,  202,  202,  202,  205,  205,  205,  197, 1033,
3211      1755,  198, 1758, 1765,  201, 1777,  153,  153,  202, 1033,
3212       153,  205,  914,  914,  914, 1778, 1033,  153, 1786, 1789,
3213       153,  936,  936,  936,  153, 1799,  153,  153,  154,  154,
3214       154,  154,  154,  154,  154,  154,  154,  154,  154,  154,
3215
3216       154,  154,  154, 1803,  154,  154,  154,  154,  154,  206,
3217       206,  206,  207,  207,  207,  208,  208,  208, 1807,  209,
3218       209,  209,  210,  210,  210,  206, 1808, 1812,  207, 1813,
3219      1814,  208, 1815,  154,  154,  209,  914,  154,  210,  948,
3220       948,  948, 1824,  948,  154,  936,  948,  154, 1178, 1178,
3221      1178,  154, 1828,  154,  154,  157,  157,  157,  157,  157,
3222       157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
3223      1831,  157,  157,  157,  157,  157,  211,  211,  211,  212,
3224       212,  212,  215,  215,  215, 1833,  216,  216,  216,  701,
3225       701,  701,  211, 1835, 1836,  212, 1838, 1839,  215, 1840,
3226
3227       157,  157,  216,  157,  157,  157,  701, 1843,  956,  956,
3228       956,  157,  956, 1845,  157,  956, 1847, 1852,  157, 1858,
3229      1862,  157,  158,  158,  158,  158,  158,  158,  158,  158,
3230       158,  158,  158,  158,  158,  158,  158, 1863,  158,  158,
3231       158,  158,  158,  217,  217,  217,  218,  218,  218,  219,
3232       219,  219, 1864,  220,  220,  220,  709,  709,  709,  217,
3233      1866, 1878,  218, 1874, 1881,  219, 1882,  158,  158,  220,
3234       158,  158,  158,  709, 1883,  971,  971,  971,  158,  971,
3235      1874,  158,  971, 1885, 1886,  158, 1875, 1888,  158,  161,
3236       161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
3237
3238       161,  161,  161,  161, 1876,  161,  161,  161,  161,  161,
3239       221,  221,  221,  222,  222,  222,  225,  225,  225, 1889,
3240       226,  226,  226,  725,  725,  725,  221, 1890, 1875,  222,
3241      1892, 1893,  225, 1894,  161,  161,  226, 1876, 1898,  161,
3242       725, 1234, 1234, 1234, 1900,  161,  162,  162,  162,  162,
3243       162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
3244       162, 1903,  162,  162,  162,  162,  162,  227,  227,  227,
3245       228,  228,  228,  229,  229,  229, 1904,  230,  230,  230,
3246       749,  749,  749,  227, 1905, 1884,  228, 1906, 1908,  229,
3247      1910,  162,  162,  230, 1911, 1913,  162,  749, 1485, 1485,
3248
3249      1485, 1884,  162,  165,  165,  165,  165,  165,  165,  165,
3250       165,  165,  165,  165,  165,  165,  165,  165, 1915,  165,
3251       165,  165,  165,  165,  231,  231,  231,  232,  232,  232,
3252       235,  235,  235, 1918,  236,  236,  236,  239,  239,  239,
3253       231, 1919, 1921,  232, 1922, 1923,  235, 1925,  165,  165,
3254       236, 1931,  165,  239,  975,  975,  975, 1932, 1934,  165,
3255      1937, 1953,  165,  166,  166,  166,  166,  166,  166,  166,
3256       166,  166,  166,  166,  166,  166,  166,  166, 1954,  166,
3257       166,  166,  166,  166,  240,  240,  240,  241,  241,  241,
3258       242,  242,  242, 1920,  243,  243,  243,  244,  244,  244,
3259
3260       240, 1920, 1959,  241, 1933, 1938,  242, 1960,  166,  166,
3261       243, 1961,  166,  244,  984,  984,  984, 1965,  975,  166,
3262      1933, 1938,  166,  169,  169,  169,  169,  169,  169,  169,
3263       169,  169,  169,  169,  169,  169,  169,  169, 1967,  169,
3264       169,  169,  169,  169,  245,  245,  245,  246,  246,  246,
3265       249,  249,  249, 1924,  250,  250,  250,  756,  756,  756,
3266       245, 1924, 1973,  246, 1939, 1974,  249,  358,  169,  169,
3267       250, 1975,  169,  292,  756, 1982, 1983,  358,  984,  169,
3268      1939, 1984,  169,  292, 1997, 2003,  364, 2007, 2010,  169,
3269       170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
3270
3271       170,  170,  170,  170,  170,  358,  170,  170,  170,  170,
3272       170, 2012,  292, 2015,  364,  761,  761,  761,  292,  358,
3273       773,  773,  773,  358, 2017,  292,  785,  785,  785,  292,
3274       364, 2019,  761, 2020, 2021,  170,  170,  773, 2024,  170,
3275       991,  991,  991,  785,  991, 2026,  170,  991, 2031,  170,
3276      1486, 1486, 1486, 1488, 1488, 1488,  170,  179,  179,  179,
3277       179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
3278       179,  179, 2033,  179,  179,  179,  179,  179,  786,  786,
3279       786,  792,  792,  792,  794,  794,  794,  808,  808,  808,
3280       809,  809,  809, 2041, 2042,  786, 1486, 2043,  792, 1488,
3281
3282      2044,  794,  179,  179,  808, 2046, 2057,  809,  179,  998,
3283       998,  998, 2057,  998, 2059, 2060,  998, 1491, 1491, 1491,
3284      1494, 1494, 1494,  179,  180,  180,  180,  180,  180,  180,
3285       180,  180,  180,  180,  180,  180,  180,  180,  180, 2065,
3286       180,  180,  180,  180,  180,  821,  821,  821,  829,  829,
3287       829,  834,  834,  834,  840,  840,  840,  862,  862,  862,
3288      2059, 2066,  821, 2067, 2068,  829, 2072, 2074,  834,  180,
3289       180,  840, 2075, 2076,  862,  180, 1003, 1003, 1003, 2081,
3290      1003, 2088, 2090, 1003, 1504, 1504, 1504, 1540, 1540, 1540,
3291       180,  189,  189,  189,  189,  189,  189,  189,  189,  189,
3292
3293       189,  189,  189,  189,  189,  189, 2091,  189,  189,  189,
3294       189,  189,  890,  890,  890,  894,  894,  894, 2058, 2094,
3295       912,  912,  912,  913,  913,  913,  944,  944,  944,  890,
3296      2097, 2101,  894,  945,  945,  945,  189,  189,  912, 2102,
3297      2103,  913,  189, 2104,  944,  189, 1015, 1015, 1015, 2058,
3298      1015,  945, 2105, 1015, 1543, 1543, 1543,  189,  190,  190,
3299       190,  190,  190,  190,  190,  190,  190,  190,  190,  190,
3300       190,  190,  190, 2106,  190,  190,  190,  190,  190, 2107,
3301      2108,  913,  947,  947,  947, 2109, 2110,  951,  951,  951,
3302       952,  952,  952,  945,  955,  955,  955, 2115, 2116,  947,
3303
3304       957,  957,  957,  190,  190,  951, 2117, 2118,  952,  190,
3305      2136,  955,  190, 2137, 1027, 1027, 1027,  957, 1027, 2140,
3306      2141, 1027, 2143, 2147,  190,  199,  199,  199,  199,  199,
3307       199,  199,  199,  199,  199,  199,  199,  199,  199,  199,
3308      2148,  199,  199,  199,  199,  199,  959,  959,  959,  963,
3309       963,  963, 2149, 2155,  952, 2156,  964,  964,  964,  968,
3310       968,  968, 2157,  959, 1541, 1541, 1541,  963, 2171, 2175,
3311       199,  199, 2176, 2177,  964, 2179,  199,  968, 1694, 1694,
3312      1694,  199,  200,  200,  200,  200,  200,  200,  200,  200,
3313       200,  200,  200,  200,  200,  200,  200, 2183,  200,  200,
3314
3315       200,  200,  200,  964,  969,  969,  969,  970,  970,  970,
3316      1541,  973,  973,  973,  990,  990,  990,  974,  974,  974,
3317      1739, 2186,  969, 2187,  970, 2190, 1739,  200,  200,  973,
3318      1739,  990, 2191,  200, 1739,  974, 2194, 2201,  200,  203,
3319       203,  203,  203,  203,  203,  203,  203,  203,  203,  203,
3320       203,  203,  203,  203,  974,  203,  203,  203,  203,  203,
3321       994,  994,  994,  995,  995,  995, 1740, 2203,  969,  997,
3322       997,  997, 1740, 1000, 1000, 1000, 1740, 2218,  994, 2232,
3323      1740,  995, 2233, 2236,  203,  203,  997, 1002, 1002, 1002,
3324       203, 1000, 1029, 1029, 1029, 2243, 1029, 2244, 2249, 1029,
3325
3326      2251, 1542, 1542, 1542, 1002,  203,  204,  204,  204,  204,
3327       204,  204,  204,  204,  204,  204,  204,  204,  204,  204,
3328       204, 2263,  204,  204,  204,  204,  204, 2264, 2222,  995,
3329      1001, 1001, 1001, 2265, 2266, 1005, 1005, 1005, 1006, 1006,
3330      1006, 1009, 1009, 1009, 1010, 1010, 1010, 1542, 1001, 2267,
3331      2138,  204,  204, 1005, 2268, 2269, 1006,  204, 2138, 1009,
3332      2139, 2188, 1010, 1035, 1035, 1035, 2270, 1035, 2139, 2188,
3333      1035, 2222,  204,  213,  213,  213,  213,  213,  213,  213,
3334       213,  213,  213,  213,  213,  213,  213,  213, 2223,  213,
3335       213,  213,  213,  213, 2271, 2272, 1001, 2279, 2280, 1006,
3336
3337      1014, 1014, 1014, 1018, 1018, 1018, 1026, 1026, 1026, 1010,
3338      1019, 1019, 1019, 1023, 1023, 1023, 2281, 1014,  213,  213,
3339      2283, 1018, 2189, 1026,  213, 2293, 2294,  213, 1019, 2295,
3340      2189, 1023, 1697, 1697, 1697, 2223, 1635, 1635, 1635,  213,
3341       214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
3342       214,  214,  214,  214,  214, 2296,  214,  214,  214,  214,
3343       214, 1028, 1028, 1028, 2297, 2298, 1024, 1024, 1024, 2299,
3344      2302, 1019, 1030, 1030, 1030, 1031, 1031, 1031, 1028, 1034,
3345      1034, 1034, 1635, 2303, 1024,  214,  214, 1037, 1037, 1037,
3346      1030,  214, 2304, 1031,  214, 2310, 1034, 2311, 1038, 1038,
3347
3348      1038, 2317, 1038, 2318, 1037, 1038,  214,  223,  223,  223,
3349       223,  223,  223,  223,  223,  223,  223,  223,  223,  223,
3350       223,  223, 2319,  223,  223,  223,  223,  223, 1024, 1039,
3351      1039, 1039, 1049, 1049, 1049, 2320, 1031, 1050, 1050, 1050,
3352      1051, 1051, 1051, 1060, 1060, 1060, 1039, 1052, 1052, 1052,
3353      1049, 1052,  223,  223, 1052, 1050, 2334, 1051, 2335, 2336,
3354       223, 1060,  223, 2337, 2339,  223, 1699, 1699, 1699,  223,
3355      1701, 1701, 1701,  223,  224,  224,  224,  224,  224,  224,
3356       224,  224,  224,  224,  224,  224,  224,  224,  224, 2341,
3357       224,  224,  224,  224,  224, 1050, 1053, 1053, 1053, 1054,
3358
3359      1054, 1054, 2359, 1054, 2364, 2358, 1054, 1055, 1055, 1055,
3360      1070, 1070, 1070, 1053, 1056, 1056, 1056, 2365, 2370,  224,
3361       224, 1057, 1057, 1057, 1055, 2371, 2372,  224, 1070,  224,
3362      2375, 1056,  224, 1704, 1704, 1704,  224, 2358, 1057, 2359,
3363       224,  233,  233,  233,  233,  233,  233,  233,  233,  233,
3364       233,  233,  233,  233,  233,  233, 2378,  233,  233,  233,
3365       233,  233, 1061, 1061, 1061, 1056, 1065, 1065, 1065, 1714,
3366      1714, 1714, 2305, 1057, 1059, 1059, 1059, 1058, 1058, 1058,
3367      1061, 2379, 2305, 1065, 2380, 2381,  233,  233, 1066, 1066,
3368      1066, 1059, 1066, 2382, 1058, 1066, 1074, 1074, 1074, 2383,
3369
3370      1074, 2384, 2385, 1074, 2386, 1706, 1706, 1706, 2387, 1061,
3371       233,  234,  234,  234,  234,  234,  234,  234,  234,  234,
3372       234,  234,  234,  234,  234,  234, 1059,  234,  234,  234,
3373       234,  234, 1058, 1067, 1067, 1067, 1073, 1073, 1073, 2388,
3374      1075, 1075, 1075, 2390, 2391, 1071, 1071, 1071, 2393, 2394,
3375      1067, 2395, 2396, 1073, 2398, 2399,  234,  234, 1075, 1076,
3376      1076, 1076, 2401, 1071, 1079, 1079, 1079, 2402, 1079, 1706,
3377      2404, 1079, 1085, 1085, 1085, 2409, 1085, 1076, 2410, 1085,
3378       234,  237,  237,  237,  237,  237,  237,  237,  237,  237,
3379       237,  237,  237,  237,  237,  237, 1071,  237,  237,  237,
3380
3381       237,  237, 1078, 1078, 1078, 1081, 1081, 1081, 1084, 1084,
3382      1084, 2411, 1082, 1082, 1082, 1089, 1089, 1089, 2413, 1078,
3383      1076, 2418, 2392, 1081, 2419, 1084,  237,  237, 2420, 2421,
3384      1082, 2392, 2422, 1089, 1708, 1708, 1708,  237,  238,  238,
3385       238,  238,  238,  238,  238,  238,  238,  238,  238,  238,
3386       238,  238,  238, 2425,  238,  238,  238,  238,  238, 1082,
3387      2431, 1090, 1090, 1090, 1091, 1091, 1091, 2432, 1092, 1092,
3388      1092, 1093, 1093, 1093, 1094, 1094, 1094, 2397, 2434, 1090,
3389      1708, 1091, 2443,  238,  238, 1092, 2397, 2445, 1093, 1748,
3390      1748, 1748, 1094, 2448,  238,  247,  247,  247,  247,  247,
3391
3392       247,  247,  247,  247,  247,  247,  247,  247,  247,  247,
3393      2450,  247,  247,  247,  247,  247, 1090, 2474, 2469, 1095,
3394      1095, 1095, 1097, 1097, 1097, 1750, 1750, 1750, 2475, 2477,
3395      1093, 1099, 1099, 1099, 1101, 1101, 1101, 1095, 2478, 1097,
3396       247,  247, 1098, 1098, 1098, 1100, 1100, 1100, 1099, 2470,
3397      2471,  247, 1101, 1105, 1105, 1105, 2479, 1105, 2469, 1098,
3398      1105, 2484, 1100, 2485,  247,  248,  248,  248,  248,  248,
3399       248,  248,  248,  248,  248,  248,  248,  248,  248,  248,
3400      1095,  248,  248,  248,  248,  248, 2470, 1102, 1102, 1102,
3401      2486, 2487, 1098, 2471, 2488, 1104, 1104, 1104, 1106, 1106,
3402
3403      1106, 1107, 1107, 1107, 1100, 1102, 2489, 1098, 2490, 2491,
3404       248,  248, 1104, 1108, 1108, 1108, 1106, 2492, 2493, 1107,
3405      2494,  248, 2496, 2497, 1102, 2498, 1109, 1109, 1109, 2499,
3406      1108, 1110, 1110, 1110,  248,  290, 1111, 1111, 1111, 1115,
3407      1115, 1115,  290, 1109, 1112, 1112, 1112, 2500, 2501, 1110,
3408      2502,  290,  290, 2503, 1111, 2504, 1107, 1115, 1113, 1113,
3409      1113, 1112, 1751, 1751, 1751, 1114, 1114, 1114, 2505, 2506,
3410      1116, 1116, 1116, 2507, 2508, 1113, 1128, 1128, 1128,  290,
3411       290,  290, 1114, 2509, 2511,  290,  290,  290, 1116, 2515,
3412       290,  290, 2522, 1128,  290, 2523,  290,  290,  290,  355,
3413
3414      1122, 1122, 1122, 1123, 1123, 1123,  355, 1111, 1113, 1126,
3415      1126, 1126, 1127, 1127, 1127,  355,  355, 2524, 1122, 2482,
3416      2526, 1123, 2530, 1113, 1129, 1129, 1129, 1126, 1129, 2482,
3417      1127, 1129, 2482, 2533, 1130, 1130, 1130, 2574, 1131, 1131,
3418      1131, 1116, 2576,  355,  355,  355, 1132, 1132, 1132,  355,
3419       355,  355, 1130, 2577,  355,  355, 1131, 2578,  355, 2556,
3420       355,  355,  355, 1132, 1133, 1133, 1133, 1123, 1133, 2556,
3421      2581, 1133, 1135, 1135, 1135, 2556, 1127, 1136, 1136, 1136,
3422      1151, 1151, 1151, 1152, 1152, 1152, 1154, 1154, 1154, 2572,
3423      1135, 1185, 1185, 1185, 2582, 1136, 2584, 2571, 1151, 1131,
3424
3425      2585, 1152, 2587, 2588, 1154, 1186, 1186, 1186, 1185, 1187,
3426      1187, 1187, 1189, 1189, 1189, 1190, 1190, 1190, 1191, 1191,
3427      1191, 2589, 1191, 1186, 2590, 1191, 2571, 1187, 2591, 2573,
3428      1189, 2572, 1190, 1154, 1194, 1194, 1194, 1196, 1196, 1196,
3429      2593, 1136, 1197, 1197, 1197, 1199, 1199, 1199, 1204, 1204,
3430      1204, 1194, 1201, 1201, 1201, 1196, 1201, 2594, 2595, 1201,
3431      1197, 1189, 2596, 1199, 2599, 1204, 1205, 1205, 1205, 2600,
3432      1205, 2573, 2583, 1205, 1206, 1206, 1206, 1207, 1207, 1207,
3433      1208, 1208, 1208, 2601, 1208, 2583, 2602, 1208, 1210, 1210,
3434      1210, 1206, 1199, 2603, 1207, 1194, 1212, 1212, 1212, 1213,
3435
3436      1213, 1213, 1215, 1215, 1215, 1210, 1217, 1217, 1217, 1219,
3437      1219, 1219, 2604, 2605, 1212, 2606, 2607, 1213, 2608, 2609,
3438      1215, 2586, 2610, 1217, 1220, 1220, 1220, 1219, 1222, 1222,
3439      1222, 1223, 1223, 1223, 2586, 1223, 2611, 2613, 1223, 1227,
3440      1227, 1227, 1220, 1228, 1228, 1228, 1222, 1230, 1230, 1230,
3441      2483, 1245, 1245, 1245, 2623, 1245, 2624, 1227, 1245, 2629,
3442      2483, 1228, 1215, 2483, 2633, 1230, 1249, 1249, 1249, 1250,
3443      1250, 1250, 1251, 1251, 1251, 1222, 1253, 1253, 1253, 1259,
3444      1259, 1259, 2651, 1249, 1255, 1255, 1255, 1250, 1255, 2652,
3445      1251, 1255, 2653, 2654, 1253, 2655, 2656, 1259, 1260, 1260,
3446
3447      1260, 1262, 1262, 1262, 1263, 1263, 1263, 2666, 1263, 2668,
3448      2671, 1263, 1266, 1266, 1266, 2672, 1260, 2676, 2677, 1262,
3449      1267, 1267, 1267, 1268, 1268, 1268, 1270, 1270, 1270, 1266,
3450      1271, 1271, 1271, 1272, 1272, 1272, 2660, 1253, 1267, 2678,
3451      2679, 1268, 2666, 2680, 1270, 2681, 2682, 1271, 2683, 2660,
3452      1272, 1273, 1273, 1273, 1274, 1274, 1274, 1276, 1276, 1276,
3453      2685, 1272, 1262, 1279, 1279, 1279, 1280, 1280, 1280, 1273,
3454      1280, 2665, 1274, 1280, 2686, 1276, 1285, 1285, 1285, 2687,
3455      1279, 1286, 1286, 1286, 1288, 1288, 1288, 1291, 1291, 1291,
3456      1292, 1292, 1292, 1270, 1285, 1293, 1293, 1293, 2688, 1286,
3457
3458      2689, 2690, 1288, 2691, 1291, 1296, 1296, 1296, 1292, 1295,
3459      1295, 1295, 2692, 1293, 1297, 1297, 1297, 2661, 1297, 2665,
3460      2694, 1297, 1296, 1276, 1300, 1300, 1300, 1295, 1300, 2695,
3461      2661, 1300, 1303, 1303, 1303, 1304, 1304, 1304, 1306, 1306,
3462      1306, 1311, 1311, 1311, 2696, 1311, 2697, 2698, 1311, 1288,
3463      1303, 2699, 2700, 1304, 2701, 2702, 1306, 1314, 1314, 1314,
3464      1315, 1315, 1315, 2703, 1315, 2704, 2705, 1315, 1318, 1318,
3465      1318, 1319, 1319, 1319, 1314, 1319, 1295, 2706, 1319, 1329,
3466      1329, 1329, 1330, 1330, 1330, 1318, 1332, 1332, 1332, 1333,
3467      1333, 1333, 2557, 1333, 2712, 2716, 1333, 1329, 2717, 2725,
3468
3469      1330, 2726, 2557, 1306, 1332, 1336, 1336, 1336, 2557, 1336,
3470      2743, 2738, 1336, 1339, 1339, 1339, 1340, 1340, 1340, 2744,
3471      1340, 2738, 2745, 1340, 1345, 1345, 1345, 1346, 1346, 1346,
3472      1339, 1348, 1348, 1348, 1353, 1353, 1353, 2746, 1353, 2747,
3473      2748, 1353, 1345, 2751, 2752, 1346, 1356, 1356, 1356, 1348,
3474      1357, 1357, 1357, 1332, 1357, 2753, 2754, 1357, 1360, 1360,
3475      1360, 2763, 2764, 1356, 1361, 1361, 1361, 1363, 1363, 1363,
3476      1365, 1365, 1365, 2739, 1365, 2755, 1360, 1365, 2765, 1348,
3477      2766, 2767, 1361, 2739, 2768, 1363, 1368, 1368, 1368, 1369,
3478      1369, 1369, 1371, 1371, 1371, 1373, 1373, 1373, 2741, 1373,
3479
3480      2769, 2770, 1373, 2773, 1368, 2774, 2776, 1369, 2741, 2755,
3481      1371, 1377, 1377, 1377, 1378, 1378, 1378, 2777, 1363, 1380,
3482      1380, 1380, 2778, 1382, 1382, 1382, 2742, 1382, 2780, 1377,
3483      1382, 2782, 1378, 1388, 1388, 1388, 2742, 1380, 1389, 1389,
3484      1389, 2783, 1391, 1391, 1391, 1392, 1392, 1392, 1393, 1393,
3485      1393, 1388, 1393, 2784, 2787, 1393, 1389, 2788, 2789, 1371,
3486      1391, 2790, 1392, 1394, 1394, 1394, 2793, 2800, 1380, 1395,
3487      1395, 1395, 2801, 1395, 2802, 2810, 1395, 1397, 1397, 1397,
3488      1394, 1398, 1398, 1398, 2816, 1400, 1400, 1400, 1402, 1402,
3489      1402, 2817, 1406, 1406, 1406, 1397, 1716, 1716, 1716, 1398,
3490
3491      2818, 2819, 1391, 1400, 2820, 1402, 1403, 1403, 1403, 1406,
3492      1403, 2821, 2822, 1403, 1407, 1407, 1407, 2823, 1407, 2824,
3493      2825, 1407, 1409, 1409, 1409, 1410, 1410, 1410, 1412, 1412,
3494      1412, 1414, 1414, 1414, 2827, 1414, 2828, 2833, 1414, 2834,
3495      1409, 2835, 1716, 1410, 2836, 2846, 1412, 1417, 1417, 1417,
3496      2837, 2847, 1400, 1418, 1418, 1418, 1420, 1420, 1420, 1421,
3497      1421, 1421, 1422, 1422, 1422, 1417, 1422, 2848, 2849, 1422,
3498      2850, 1418, 2851, 2852, 1420, 2853, 1421, 1423, 1423, 1423,
3499      1424, 1424, 1424, 2857, 1424, 2858, 2859, 1424, 1425, 1425,
3500      1425, 2860, 1412, 2837, 1423, 1426, 1426, 1426, 2861, 1428,
3501
3502      1428, 1428, 1429, 1429, 1429, 2862, 1425, 1430, 1430, 1430,
3503      2864, 1430, 2865, 1426, 1430, 2867, 1420, 1428, 2868, 1429,
3504      1433, 1433, 1433, 1434, 1434, 1434, 2869, 1434, 2871, 2875,
3505      1434, 1435, 1435, 1435, 1436, 1436, 1436, 1433, 1438, 1438,
3506      1438, 1440, 1440, 1440, 1444, 1444, 1444, 2876, 2877, 1435,
3507      2880, 2885, 1436, 1445, 1445, 1445, 1438, 2886, 1440, 2887,
3508      2888, 1428, 1444, 1447, 1447, 1447, 1450, 1450, 1450, 2889,
3509      2890, 1445, 1451, 1451, 1451, 1453, 1453, 1453, 1454, 1454,
3510      1454, 1447, 1454, 2891, 1450, 1454, 1457, 1457, 1457, 2892,
3511      1451, 2893, 2894, 1453, 1458, 1458, 1458, 1460, 1460, 1460,
3512
3513      1438, 1461, 1461, 1461, 1457, 1461, 2895, 2896, 1461, 1465,
3514      1465, 1465, 1458, 2898, 2899, 1460, 1466, 1466, 1466, 1468,
3515      1468, 1468, 2900, 2901, 1447, 2905, 2908, 1465, 1453, 1470,
3516      1470, 1470, 2911, 2902, 1466, 2904, 2905, 1468, 1477, 1477,
3517      1477, 1507, 1507, 1507, 1509, 1509, 1509, 1470, 1470, 2904,
3518      1510, 1510, 1510, 1535, 1535, 1535, 1477, 1460, 1507, 1508,
3519      1508, 1508, 1509, 1508, 2912, 2915, 1508, 1510, 1511, 1511,
3520      1511, 1535, 1511, 2917, 2918, 1511, 1514, 1514, 1514, 2902,
3521      1468, 1516, 1516, 1516, 2920, 1516, 2921, 2924, 1516, 1519,
3522      1519, 1519, 2925, 2926, 1514, 2927, 1520, 1520, 1520, 2928,
3523
3524      1520, 2929, 1509, 1520, 1477, 2930, 1519, 1521, 1521, 1521,
3525      2931, 1521, 2932, 2936, 1521, 1525, 1525, 1525, 2934, 1526,
3526      1526, 1526, 2944, 1526, 2946, 1514, 1526, 1528, 1528, 1528,
3527      2934, 2948, 1525, 1530, 1530, 1530, 1531, 1531, 1531, 2950,
3528      1531, 2958, 2960, 1531, 2964, 1528, 1532, 1532, 1532, 2961,
3529      1530, 1533, 1533, 1533, 1551, 1551, 1551, 1552, 1552, 1552,
3530      1553, 1553, 1553, 1532, 1553, 2963, 2963, 1553, 2966, 1533,
3531      2968, 1551, 2969, 2970, 1552, 2971, 2986, 1528, 1554, 1554,
3532      1554, 1557, 1557, 1557, 1558, 1558, 1558, 1559, 1559, 1559,
3533      2961, 1559, 2988, 2991, 1559, 2977, 1554, 2962, 2993, 1557,
3534
3535      1533, 1558, 1560, 1560, 1560, 1561, 1561, 1561, 1562, 1562,
3536      1562, 2962, 1562, 2977, 2998, 1562, 1564, 1564, 1564, 2935,
3537      1560, 2999, 1561, 1567, 1567, 1567, 1568, 1568, 1568, 2941,
3538      1568, 2935, 2942, 1568, 1564, 1569, 1569, 1569, 3001, 3002,
3539      1567, 2941, 1554, 3003, 2942, 1557, 1570, 1570, 1570, 1571,
3540      1571, 1571, 1569, 1574, 1574, 1574, 3005, 1575, 1575, 1575,
3541      3006, 1575, 1560, 1570, 1575, 2985, 2980, 1571, 3007, 3008,
3542      1574, 1576, 1576, 1576, 1577, 1577, 1577, 1564, 1578, 1578,
3543      1578, 2980, 1578, 2987, 2985, 1578, 1579, 1579, 1579, 1576,
3544      3010, 1577, 1570, 1581, 1581, 1581, 1584, 1584, 1584, 1585,
3545
3546      1585, 1585, 2987, 1585, 1579, 3012, 1585, 1586, 1586, 1586,
3547      1581, 1586, 3019, 1584, 1586, 1571, 1591, 1591, 1591, 1598,
3548      1598, 1598, 1599, 1599, 1599, 3020, 1599, 3021, 3022, 1599,
3549      1602, 1602, 1602, 1591, 1603, 1603, 1603, 1598, 1604, 1604,
3550      1604, 1605, 1605, 1605, 1606, 1606, 1606, 1602, 1608, 1608,
3551      1608, 1603, 1579, 2965, 3023, 1604, 3024, 3027, 1605, 1611,
3552      1611, 1611, 1606, 1611, 2965, 1608, 1611, 3028, 3029, 1614,
3553      1614, 1614, 1616, 1616, 1616, 1618, 1618, 1618, 1621, 1621,
3554      1621, 1625, 1625, 1625, 1598, 1604, 1614, 1626, 1626, 1626,
3555      1616, 3030, 3031, 1618, 3032, 3033, 1621, 3034, 1625, 1606,
3556
3557      3036, 1634, 1634, 1634, 1603, 1626, 1627, 1627, 1627, 2990,
3558      1627, 1605, 3038, 1627, 1630, 1630, 1630, 3040, 1630, 1634,
3559      3041, 1630, 1636, 1636, 1636, 3042, 1636, 1625, 2990, 1636,
3560      1641, 1641, 1641, 3052, 1641, 1621, 1616, 1641, 1645, 1645,
3561      1645, 1618, 3050, 2992, 1626, 1647, 1647, 1647, 1648, 1648,
3562      1648, 3053, 1648, 3051, 3050, 1648, 1645, 1651, 1651, 1651,
3563      3054, 1651, 2992, 1647, 1651, 3051, 3055, 1634, 1654, 1654,
3564      1654, 1655, 1655, 1655, 3056, 1655, 3057, 3061, 1655, 3062,
3565      1660, 1660, 1660, 3063, 1660, 3064, 1654, 1660, 1663, 1663,
3566      1663, 1665, 1665, 1665, 1666, 1666, 1666, 3065, 1666, 1645,
3567
3568      3066, 1666, 1647, 1670, 1670, 1670, 1663, 3067, 1665, 1672,
3569      1672, 1672, 1673, 1673, 1673, 1654, 1674, 1674, 1674, 3068,
3570      3071, 1670, 1675, 1675, 1675, 3069, 1672, 1676, 1676, 1676,
3571      1673, 1679, 1679, 1679, 1674, 1663, 1686, 1686, 1686, 1675,
3572      1717, 1717, 1717, 3072, 1717, 1676, 3073, 1717, 3074, 1679,
3573      3069, 3075, 1670, 3076, 1686, 1720, 1720, 1720, 1721, 1721,
3574      1721, 3077, 1721, 3078, 3079, 1721, 3080, 3081, 1674, 1726,
3575      1726, 1726, 3082, 1720, 1728, 1728, 1728, 3083, 1728, 1673,
3576      3084, 1728, 1679, 1736, 1736, 1736, 3085, 1726, 1686, 1676,
3577      1732, 1732, 1732, 3086, 1732, 3087, 3088, 1732, 3089, 1679,
3578
3579      3090, 1736, 1738, 1738, 1738, 3096, 1738, 3093, 3097, 1738,
3580      1741, 1741, 1741, 3098, 1742, 1742, 1742, 3099, 1742, 3100,
3581      1726, 1742, 1720, 1743, 1743, 1743, 3093, 1741, 1752, 1752,
3582      1752, 1756, 1756, 1756, 1757, 1757, 1757, 1759, 1759, 1759,
3583      3101, 1743, 3102, 3103, 1736, 1760, 1760, 1760, 3104, 1760,
3584      3105, 3106, 1760, 3107, 1759, 1761, 1761, 1761, 3108, 1761,
3585      3109, 3110, 1761, 1764, 1764, 1764, 1766, 1766, 1766, 1767,
3586      1767, 1767, 3111, 3112, 1743, 1768, 1768, 1768, 3113, 1768,
3587      3115, 1764, 1768, 1766, 1771, 1771, 1771, 1767, 3116, 1772,
3588      1772, 1772, 1752, 1772, 3117, 1756, 1772, 3118, 1757, 1776,
3589
3590      1776, 1776, 1771, 1775, 1775, 1775, 3119, 1779, 1779, 1779,
3591      1764, 1779, 3120, 3121, 1779, 3122, 1767, 1776, 3123, 3124,
3592      1775, 1782, 1782, 1782, 1783, 1783, 1783, 3125, 1783, 3126,
3593      3127, 1783, 1784, 1784, 1784, 1785, 1785, 1785, 1782, 1785,
3594      3114, 3128, 1785, 1787, 1787, 1787, 1788, 1788, 1788, 1784,
3595      1771, 1790, 1790, 1790, 3129, 1790, 3130, 3131, 1790, 3132,
3596      3114, 1787, 3136, 1776, 1793, 1793, 1793, 1795, 1795, 1795,
3597      3137, 1795, 3138, 3139, 1795, 1798, 1798, 1798, 1800, 1800,
3598      1800, 3140, 1793, 1801, 1801, 1801, 3133, 1801, 3141, 3143,
3599      1801, 3144, 3133, 1798, 3146, 1800, 1802, 1802, 1802, 1804,
3600
3601      1804, 1804, 3147, 1804, 3149, 3150, 1804, 1809, 1809, 1809,
3602      1810, 1810, 1810, 1802, 1810, 3153, 3154, 1810, 1811, 1811,
3603      1811, 1798, 3155, 3156, 1809, 1816, 1816, 1816, 1817, 1817,
3604      1817, 1818, 1818, 1818, 3158, 1811, 1819, 1819, 1819, 3160,
3605      1819, 3162, 1816, 1819, 3164, 3166, 1817, 3167, 1818, 1820,
3606      1820, 1820, 1821, 1821, 1821, 1822, 1822, 1822, 1823, 1823,
3607      1823, 1825, 1825, 1825, 3168, 3152, 1820, 3169, 3170, 1821,
3608      3171, 3172, 1822, 1826, 1826, 1826, 1823, 1826, 1825, 3152,
3609      1826, 1827, 1827, 1827, 1829, 1829, 1829, 3173, 1830, 1830,
3610      1830, 3175, 1830, 3177, 1817, 1830, 3179, 3180, 1827, 3181,
3611
3612      3182, 1829, 1832, 1832, 1832, 1834, 1834, 1834, 1515, 1513,
3613      1821, 1837, 1837, 1837, 1841, 1841, 1841, 3183, 1823, 3209,
3614      1832, 3197, 3184, 1834, 3199, 3197, 1842, 1842, 1842, 1837,
3615      1842, 1841, 3199, 1842, 1844, 1844, 1844, 1846, 1846, 1846,
3616      1848, 1848, 1848, 1849, 1849, 1849, 1850, 1850, 1850, 1851,
3617      1851, 1851, 1844, 3183, 3209, 1846, 1834, 1848, 3184, 1837,
3618      1849, 3191, 3195, 1850, 1854, 1854, 1854, 1851, 1853, 1853,
3619      1853, 1512, 1855, 1855, 1855, 1856, 1856, 1856, 1857, 1857,
3620      1857, 3215, 1854, 1859, 1859, 1859, 1853, 1859, 1846, 1855,
3621      1859, 3192, 1856, 1865, 1865, 1865, 1857, 3196, 1867, 1867,
3622
3623      1867, 1868, 1868, 1868, 3200, 1868, 3195, 1506, 1868, 3191,
3624      1850, 1865, 3200, 3215, 1853, 1867, 1851, 1869, 1869, 1869,
3625      1870, 1870, 1870, 1871, 1871, 1871, 1872, 1872, 1872, 1854,
3626      1872, 1505, 3198, 1872, 3201, 1869, 3198, 3205, 1870, 3192,
3627      1871, 3196, 3201, 1857, 1865, 1873, 1873, 1873, 1879, 1879,
3628      1879, 1880, 1880, 1880, 1887, 1887, 1887, 1891, 1891, 1891,
3629      1895, 1895, 1895, 1873, 3203, 1879, 1896, 1896, 1896, 1880,
3630      1897, 1897, 1897, 3204, 3205, 1870, 1869, 1899, 1899, 1899,
3631      1901, 1901, 1901, 1902, 1902, 1902, 1907, 1907, 1907, 1909,
3632      1909, 1909, 1912, 1912, 1912, 1503, 1914, 1914, 1914, 1916,
3633
3634      1916, 1916, 1917, 1917, 1917, 3216, 3235, 1909, 3207, 3206,
3635      1912, 3203, 1880, 1914, 1926, 1926, 1926, 1916, 1926, 1917,
3636      3204, 1926, 1929, 1929, 1929, 1930, 1930, 1930, 1935, 1935,
3637      1935, 1936, 1936, 1936, 1940, 1940, 1940, 3216, 3193, 1909,
3638      1929, 3194, 1930, 1941, 1941, 1941, 3206, 1941, 3235, 3207,
3639      1941, 1940, 1944, 1944, 1944, 1945, 1945, 1945, 1916, 1946,
3640      1946, 1946, 1947, 1947, 1947, 1502, 1947, 3210, 1929, 1947,
3641      1944, 3208, 1945, 1948, 1948, 1948, 1946, 1949, 1949, 1949,
3642      1950, 1950, 1950, 1951, 1951, 1951, 3193, 1951, 3202, 3194,
3643      1951, 1948, 1952, 1952, 1952, 1949, 3202, 1950, 3211, 1955,
3644
3645      1955, 1955, 3210, 1955, 3217, 1944, 1955, 1958, 1958, 1958,
3646      1952, 1958, 3208, 3217, 1958, 1962, 1962, 1962, 1964, 1964,
3647      1964, 3218, 1966, 1966, 1966, 3255, 1948, 1968, 1968, 1968,
3648      3218, 1968, 3212, 1962, 1968, 1971, 1971, 1971, 1501, 1952,
3649      1966, 1972, 1972, 1972, 3211, 1972, 3213, 3214, 1972, 1976,
3650      1976, 1976, 1971, 1976, 3223, 1500, 1976, 1979, 1979, 1979,
3651      1980, 1980, 1980, 3219, 1980, 1499, 3255, 1980, 1981, 1981,
3652      1981, 1985, 1985, 1985, 1979, 1986, 1986, 1986, 3212, 1986,
3653      1966, 3220, 1986, 3213, 3214, 1981, 3231, 3225, 1985, 1987,
3654      1987, 1987, 1988, 1988, 1988, 3231, 1988, 3223, 3219, 1988,
3655
3656      1991, 1991, 1991, 3229, 1992, 1992, 1992, 1987, 1992, 3221,
3657      1498, 1992, 1993, 1993, 1993, 3232, 3220, 1991, 1994, 1994,
3658      1994, 1995, 1995, 1995, 3232, 1995, 3222, 1497, 1995, 1993,
3659      1996, 1996, 1996, 3225, 3226, 1994, 3229, 1998, 1998, 1998,
3660      1987, 1998, 3224, 3221, 1998, 2001, 2001, 2001, 1996, 2002,
3661      2002, 2002, 3227, 2002, 3256, 1496, 2002, 2004, 2004, 2004,
3662      3222, 2004, 2001, 3237, 2004, 2008, 2008, 2008, 2011, 2011,
3663      2011, 2013, 2013, 2013, 2014, 2014, 2014, 2016, 2016, 2016,
3664      3226, 1996, 3228, 2008, 3233, 3224, 2011, 3227, 2013, 2018,
3665      2018, 2018, 2014, 2018, 2016, 3256, 2018, 2022, 2022, 2022,
3666
3667      2025, 2025, 2025, 2027, 2027, 2027, 2028, 2028, 2028, 3237,
3668      2028, 3238, 1495, 2028, 1493, 2022, 3273, 3228, 2025, 3234,
3669      2027, 3233, 3236, 2016, 2029, 2029, 2029, 2030, 2030, 2030,
3670      3273, 2030, 2011, 3241, 2030, 2014, 2032, 2032, 2032, 3230,
3671      3245, 2029, 2034, 2034, 2034, 2035, 2035, 2035, 2036, 2036,
3672      2036, 2037, 2037, 2037, 2032, 2037, 3234, 3238, 2037, 3239,
3673      2034, 3242, 3241, 2035, 3236, 2036, 2038, 2038, 2038, 2039,
3674      2039, 2039, 3230, 2039, 3245, 3240, 2039, 2040, 2040, 2040,
3675      2045, 2045, 2045, 2038, 3243, 2047, 2047, 2047, 3244, 2047,
3676      3242, 2034, 2047, 3243, 3246, 2040, 3239, 3244, 2045, 2050,
3677
3678      2050, 2050, 2032, 2051, 2051, 2051, 3253, 2052, 2052, 2052,
3679      2035, 2052, 3240, 1492, 2052, 1490, 1489, 2050, 2055, 2055,
3680      2055, 2051, 2061, 2061, 2061, 2062, 2062, 2062, 3246, 2062,
3681      3249, 3265, 2062, 2063, 2063, 2063, 2055, 1487, 3249, 2061,
3682      3265, 3250, 2040, 3253, 3274, 2045, 2064, 2064, 2064, 3250,
3683      2050, 2063, 2069, 2069, 2069, 3274, 2051, 2070, 2070, 2070,
3684      2071, 2071, 2071, 2073, 2073, 2073, 2077, 2077, 2077, 2078,
3685      2078, 2078, 2079, 2079, 2079, 2080, 2080, 2080, 2082, 2082,
3686      2082, 2083, 2083, 2083, 2084, 2084, 2084, 2085, 2085, 2085,
3687      2086, 2086, 2086, 2087, 2087, 2087, 3247, 2063, 2089, 2089,
3688
3689      2089, 2092, 2092, 2092, 3266, 2095, 2095, 2095, 2096, 2096,
3690      2096, 1484, 2096, 3266, 1483, 2096, 2089, 1482, 3257, 2092,
3691      1481, 2080, 2095, 2098, 2098, 2098, 2099, 2099, 2099, 2100,
3692      2100, 2100, 1480, 2100, 1479, 1478, 2100, 2111, 2111, 2111,
3693      3254, 2098, 3247, 2099, 2112, 2112, 2112, 3248, 3251, 2089,
3694      2113, 2113, 2113, 3257, 2113, 2111, 3252, 2113, 2114, 2114,
3695      2114, 2112, 2119, 2119, 2119, 2120, 2120, 2120, 2121, 2121,
3696      2121, 2122, 2122, 2122, 1476, 2122, 3259, 3254, 2122, 2123,
3697      2123, 2123, 2124, 2124, 2124, 2121, 2111, 2125, 2125, 2125,
3698      3258, 2125, 3260, 3248, 2125, 3251, 1475, 2123, 3269, 2124,
3699
3700      2126, 2126, 2126, 3252, 2126, 3270, 3261, 2126, 2129, 2129,
3701      2129, 2120, 3263, 2130, 2130, 2130, 2132, 2132, 2132, 1474,
3702      2132, 3262, 3259, 2132, 1473, 3258, 2129, 2135, 2135, 2135,
3703      2123, 2130, 2142, 2142, 2142, 2144, 2144, 2144, 3260, 2144,
3704      1464, 1449, 2144, 3261, 3263, 2135, 3269, 2150, 2150, 2150,
3705      2142, 2150, 3264, 3270, 2150, 2153, 2153, 2153, 3262, 2129,
3706      2154, 2154, 2154, 1448, 2154, 3267, 3268, 2154, 1443, 2158,
3707      2158, 2158, 2153, 2158, 1442, 1441, 2158, 2161, 2161, 2161,
3708      2135, 2162, 2162, 2162, 3264, 2162, 1439, 2142, 2162, 2165,
3709      2165, 2165, 2166, 2166, 2166, 2161, 2166, 3267, 3268, 2166,
3710
3711      2167, 2167, 2167, 3271, 2167, 1432, 2165, 2167, 2170, 2170,
3712      2170, 2172, 2172, 2172, 1431, 2172, 1413, 1408, 2172, 2178,
3713      2178, 2178, 2180, 2180, 2180, 1405, 2170, 2181, 2181, 2181,
3714      1404, 2181, 1401, 1396, 2181, 3271, 3272, 2178, 1387, 2180,
3715      1386, 2161, 2182, 2182, 2182, 2184, 2184, 2184, 2185, 2185,
3716      2185, 1385, 2185, 1381, 1376, 2185, 1372, 2192, 2192, 2192,
3717      2182, 1364, 2184, 2195, 2195, 2195, 1359, 2195, 3272, 1358,
3718      2195, 2202, 2202, 2202, 2170, 2192, 2198, 2198, 2198, 1352,
3719      2198, 1351, 1350, 2198, 1349, 2204, 2204, 2204, 1344, 2202,
3720      2205, 2205, 2205, 2206, 2206, 2206, 1343, 2206, 1342, 1341,
3721
3722      2206, 1328, 2182, 2204, 1327, 2209, 2209, 2209, 2205, 2209,
3723      1326, 1325, 2209, 2212, 2212, 2212, 1324, 2213, 2213, 2213,
3724      1323, 1322, 2202, 2214, 2214, 2214, 2205, 2215, 2215, 2215,
3725      1321, 2212, 1320, 2212, 2213, 2216, 2216, 2216, 1310, 1309,
3726      2214, 2217, 2217, 2217, 2215, 2219, 2219, 2219, 2220, 2220,
3727      2220, 2204, 2216, 2221, 2221, 2221, 2224, 2224, 2224, 2217,
3728      2225, 2225, 2225, 2219, 2225, 1308, 2220, 2225, 2228, 2228,
3729      2228, 2221, 1307, 1290, 2214, 2229, 2229, 2229, 2230, 2230,
3730      2230, 2231, 2231, 2231, 1289, 1284, 2228, 2234, 2234, 2234,
3731      1283, 2215, 1278, 1277, 2216, 2235, 2235, 2235, 2237, 2237,
3732
3733      2237, 2238, 2238, 2238, 1258, 2219, 2217, 2239, 2239, 2239,
3734      2240, 2240, 2240, 2241, 2241, 2241, 2242, 2242, 2242, 2245,
3735      2245, 2245, 2246, 2246, 2246, 1254, 1248, 2228, 2247, 2247,
3736      2247, 2248, 2248, 2248, 2250, 2250, 2250, 2253, 2253, 2253,
3737      2254, 2254, 2254, 1244, 2254, 1243, 1242, 2254, 2257, 2257,
3738      2257, 1241, 2250, 1240, 2253, 2258, 2258, 2258, 1239, 2260,
3739      2260, 2260, 1238, 2260, 1236, 2257, 2260, 2273, 2273, 2273,
3740      2274, 2274, 2274, 2258, 2274, 2275, 2275, 2274, 2275, 2276,
3741      2276, 1235, 2276, 1233, 1232, 2273, 2275, 2277, 2277, 2277,
3742      2276, 1231, 1226, 2275, 2278, 2278, 2278, 2276, 2282, 2282,
3743
3744      2282, 2284, 2284, 2284, 1218, 2284, 1216, 1211, 2284, 2287,
3745      2287, 2287, 1209, 1200, 2257, 2288, 2288, 2288, 1195, 2288,
3746      1184, 1182, 2288, 2291, 2291, 2291, 1181, 2287, 2273, 2292,
3747      2292, 2292, 2300, 2300, 2300, 2301, 2301, 2301, 2306, 2306,
3748      2306, 2291, 2306, 1180, 1179, 2306, 1177, 2292, 2309, 2309,
3749      2309, 1176, 1175, 2301, 1174, 2287, 2312, 2312, 2312, 2313,
3750      2313, 2313, 1173, 2313, 1172, 2309, 2313, 2316, 2316, 2316,
3751      2321, 2321, 2321, 1170, 2312, 2323, 2323, 2323, 1169, 1168,
3752      2292, 1167, 2324, 2324, 2324, 2316, 2324, 1166, 2321, 2324,
3753      1165, 1164, 2323, 1162, 1161, 2301, 2327, 2327, 2327, 2328,
3754
3755      2328, 2328, 2329, 2329, 2329, 1160, 2329, 1159, 1158, 2329,
3756      2332, 2332, 2332, 1157, 2327, 1156, 2328, 2333, 2333, 2333,
3757      2338, 2338, 2338, 2340, 2340, 2340, 1150, 2332, 2342, 2342,
3758      2342, 2343, 2343, 2343, 2333, 1149, 1148, 2338, 2344, 2344,
3759      2344, 2345, 2345, 2345, 1145, 2328, 2342, 2327, 2343, 2346,
3760      2346, 2346, 2347, 2347, 2347, 1144, 2344, 1143, 1141, 2345,
3761      2349, 2349, 2349, 1137, 1134, 2332, 1125, 2346, 1124, 2347,
3762      1121, 2338, 2348, 2348, 2348, 1120, 2348, 2349, 2333, 2348,
3763      2350, 2350, 2350, 2351, 2351, 2351, 2346, 2352, 2352, 2352,
3764      2353, 2353, 2353, 2354, 2354, 2354, 1119, 2350, 2344, 1118,
3765
3766      2351, 1117, 2345, 1103, 1096, 2352, 2355, 2355, 2355, 1088,
3767      1087, 2354, 2357, 2357, 2357, 2360, 2360, 2360, 2361, 2361,
3768      2361, 2362, 2362, 2362, 2355, 2363, 2363, 2363, 1086, 1083,
3769      2357, 2350, 1080, 1077, 2351, 1072, 2361, 2366, 2366, 2366,
3770      2367, 2367, 2367, 2368, 2368, 2368, 2369, 2369, 2369, 2373,
3771      2373, 2373, 2376, 2376, 2376, 1069, 2377, 2377, 2377, 2354,
3772      2377, 1068, 1064, 2377, 2389, 2389, 2389, 2373, 1062, 2376,
3773      2400, 2400, 2400, 1048, 2357, 2403, 2403, 2403, 2405, 2405,
3774      2405, 1047, 2389, 2406, 2406, 2406, 2408, 2408, 2408, 2415,
3775      2415, 2415, 2416, 2416, 2416, 1046, 2405, 2417, 2417, 2417,
3776
3777      1045, 2406, 1044, 1043, 2408, 1042, 2415, 1041, 2423, 2423,
3778      2423, 1040, 2424, 2424, 2424, 2417, 2424, 1036, 1032, 2424,
3779      2426, 2426, 2426, 1025, 2389, 2423, 1022, 2427, 2427, 2427,
3780      2429, 2429, 2429, 2433, 2433, 2433, 1021, 2426, 2435, 2435,
3781      2435, 2437, 2437, 2437, 2405, 2427, 1020, 1017, 2429, 1016,
3782      2433, 2438, 2438, 2438, 2417, 2435, 2436, 2436, 2436, 2437,
3783      2436, 1013, 1012, 2436, 1011, 2439, 2439, 2439, 2438, 2439,
3784      1008, 1007, 2439, 2440, 2440, 2440, 2441, 2441, 2441, 2442,
3785      2442, 2442, 2447, 2447, 2447, 2449, 2449, 2449, 1004,  999,
3786      2440,  996,  993, 2441,  992,  989, 2442,  988,  987, 2447,
3787
3788      2451, 2451, 2451, 2453, 2453, 2453, 2454, 2454, 2454,  986,
3789      2454,  985,  983, 2454, 2455, 2455, 2455,  982, 2451,  981,
3790      2453, 2456, 2456, 2456,  980, 2440, 2457, 2457, 2457, 2458,
3791      2458, 2458, 2455, 2458, 2441,  979, 2458, 2442,  978, 2456,
3792      2461, 2461, 2461,  977, 2457, 2462, 2462, 2462,  976, 2462,
3793       972,  967, 2462, 2463, 2463, 2463,  966, 2461, 2464, 2464,
3794      2464, 2465, 2465, 2465, 2467, 2467, 2467, 2468, 2468, 2468,
3795      2463, 2472, 2472, 2472,  965, 2464, 2476, 2476, 2476, 2465,
3796      2480, 2480, 2480,  962,  961, 2468,  960,  958, 2456, 2472,
3797      2457, 2481, 2481, 2481,  954, 2481,  950, 2480, 2481, 2495,
3798
3799      2495, 2495, 2510, 2510, 2510, 2512, 2512, 2512, 2513, 2513,
3800      2513, 2516, 2516, 2516, 2519, 2519, 2519, 2495, 2520, 2520,
3801      2520,  949, 2520, 2512,  946, 2520, 2513,  943, 2516,  942,
3802       941, 2519, 2521, 2521, 2521, 2525, 2525, 2525, 2527, 2527,
3803      2527,  940, 2527,  939,  938, 2527, 2531, 2531, 2531,  937,
3804      2521,  935, 2525, 2532, 2532, 2532,  934, 2532,  933, 2495,
3805      2532,  932,  931, 2531, 2534, 2534, 2534, 2535, 2535, 2535,
3806      2536, 2536, 2536,  930, 2536,  929, 2512, 2536, 2537, 2537,
3807      2537, 2534,  928,  927, 2535, 2538, 2538, 2538,  926, 2538,
3808       925,  924, 2538,  923,  922, 2537, 2541, 2541, 2541, 2543,
3809
3810      2543, 2543,  921, 2543,  920,  919, 2543, 2546, 2546, 2546,
3811      2547, 2547, 2547,  918, 2541, 2548, 2548, 2548, 2551, 2551,
3812      2551, 2552, 2552, 2552, 2546, 2552,  917, 2547, 2552, 2553,
3813      2553, 2553, 2548,  916,  915, 2551, 2554, 2554, 2554,  911,
3814      2555, 2555, 2555,  910, 2555,  908, 2553, 2555, 2558, 2558,
3815      2558,  907,  906, 2554, 2560, 2560, 2560, 2561, 2561, 2561,
3816       905, 2547, 2546, 2565, 2565, 2565, 2558, 2562, 2562, 2562,
3817      2548, 2562, 2560,  904, 2562, 2561,  900, 2566, 2566, 2566,
3818      2565, 2566,  898,  897, 2566, 2567, 2567, 2567, 2568, 2568,
3819      2568,  896, 2568,  895,  891, 2568, 2569, 2569, 2569, 2575,
3820
3821      2575, 2575, 2567,  887, 2579, 2579, 2579,  886, 2580, 2580,
3822      2580,  883, 2580,  882, 2569, 2580,  881,  880, 2561,  879,
3823      2560, 2579, 2598, 2598, 2598, 2612, 2612, 2612, 2614, 2614,
3824      2614, 2615, 2615, 2615, 2616, 2616, 2616, 2617, 2617, 2617,
3825      2598, 2617,  878,  877, 2617,  874, 2614,  873, 2615,  872,
3826       871, 2616, 2618, 2618, 2618,  868, 2618,  867,  866, 2618,
3827      2621, 2621, 2621, 2625, 2625, 2625, 2626, 2626, 2626,  863,
3828      2628, 2628, 2628, 2598, 2669, 2669, 2669, 2615, 2621,  861,
3829      2625,  858,  857, 2626, 2627, 2627, 2627, 2628, 2627,  856,
3830      2614, 2627, 2630, 2630, 2630,  855, 2630,  854,  851, 2630,
3831
3832      2634, 2634, 2634, 2635, 2635, 2635,  850, 2635,  849,  848,
3833      2635, 2636, 2636, 2636,  847, 2636,  844, 2634, 2636, 2639,
3834      2639, 2639, 2640, 2640, 2640,  843, 2640,  842,  841, 2640,
3835      2641, 2641, 2641, 2642, 2642, 2642, 2639, 2643, 2643, 2643,
3836       839, 2644, 2644, 2644,  836, 2644,  835, 2641, 2644,  833,
3837      2642, 2647, 2647, 2647, 2643, 2648, 2648, 2648,  830, 2648,
3838       828,  825, 2648, 2649, 2649, 2649,  824,  823, 2647, 2650,
3839      2650, 2650,  822, 2650,  820,  819, 2650, 2657, 2657, 2657,
3840      2649, 2658, 2658, 2658,  818,  815, 2643,  814, 2641, 2659,
3841      2659, 2659,  813, 2659,  812, 2657, 2659,  811,  810, 2658,
3842
3843      2662, 2662, 2662,  805, 2662,  804,  803, 2662, 2667, 2667,
3844      2667, 2670, 2670, 2670, 2673, 2673, 2673,  802, 2673,  801,
3845       800, 2673, 2684, 2684, 2684, 2667, 2667,  799, 2657, 2693,
3846      2693, 2693, 2707, 2707, 2707, 2708, 2708, 2708,  798, 2684,
3847      2709, 2709, 2709, 2710, 2710, 2710,  797, 2693, 2658, 2711,
3848      2711, 2711,  796, 2711,  795,  793, 2711,  791, 2709,  790,
3849      2710, 2713, 2713, 2713,  787, 2713,  784,  781, 2713, 2718,
3850      2718, 2718, 2719, 2719, 2719,  780, 2719,  776, 2693, 2719,
3851      2720, 2720, 2720,  775, 2720,  774, 2718, 2720, 2723, 2723,
3852      2723, 2709, 2724, 2724, 2724,  771, 2724,  768,  767, 2724,
3853
3854      2727, 2727, 2727,  766, 2727, 2723,  763, 2727, 2730, 2730,
3855      2730,  762, 2730,  758,  757, 2730, 2733, 2733, 2733, 2734,
3856      2734, 2734, 2735, 2735, 2735,  755, 2735,  752,  751, 2735,
3857      2736, 2736, 2736, 2733,  750,  748, 2734, 2737, 2737, 2737,
3858       737, 2737,  735,  732, 2737,  731,  730, 2736, 2740, 2740,
3859      2740,  728, 2740,  727,  726, 2740, 2749, 2749, 2749, 2750,
3860      2750, 2750, 2756, 2756, 2756,  722,  721, 2733, 2757, 2757,
3861      2757, 2758, 2758, 2758, 2749, 2758,  720, 2750, 2758, 2756,
3862      2756, 2759, 2759, 2759,  719, 2757, 2757,  716,  715, 2758,
3863      2760, 2760, 2760, 2761, 2761, 2761, 2762, 2762, 2762,  714,
3864
3865       713, 2736, 2771, 2771, 2771, 2772, 2772, 2772,  712, 2772,
3866       711,  710, 2772, 2781, 2781, 2781, 2794, 2794, 2794, 2771,
3867      2795, 2795, 2795,  708,  705, 2750, 2796, 2796, 2796,  704,
3868       702, 2781, 2797, 2797, 2797,  700, 2797,  697,  696, 2797,
3869       690, 2803, 2803, 2803, 2796, 2803,  688,  686, 2803, 2806,
3870      2806, 2806,  683, 2806,  682,  678, 2806, 2809, 2809, 2809,
3871      2811, 2811, 2811, 2812, 2812, 2812,  677, 2812,  676,  675,
3872      2812, 2815, 2815, 2815, 2809,  672,  671, 2811,  670, 2781,
3873      2830, 2830, 2830, 2832, 2832, 2832,  669,  666, 2815, 2838,
3874      2838, 2838, 2839, 2839, 2839,  665, 2839,  664, 2830, 2839,
3875
3876       663, 2832, 2843, 2843, 2843,  662, 2838, 2838,  656,  655,
3877      2839, 2840, 2840, 2840,  653, 2840,  647,  646, 2840, 2844,
3878      2844, 2844, 2845, 2845, 2845,  642, 2854, 2854, 2854, 2840,
3879      2854,  635,  631, 2854, 2832, 2841, 2841, 2841, 2841, 2841,
3880      2841, 2841, 2841, 2841,  625,  621, 2841, 2863, 2863, 2863,
3881       613, 2841, 2841, 2841, 2841, 2841, 2872, 2872, 2872, 2873,
3882      2873, 2873, 2878, 2878, 2878, 2863, 2879, 2879, 2879,  612,
3883      2879,  611,  610, 2879, 2881, 2881, 2881, 2873,  609, 2878,
3884      2841, 2841, 2842, 2842, 2842, 2842, 2842, 2842, 2842, 2842,
3885      2842, 2881,  605, 2842, 2883, 2883, 2883,  598, 2842, 2842,
3886
3887      2842, 2842, 2842, 2882, 2882, 2882,  597, 2882,  596,  592,
3888      2882, 2883, 2884, 2884, 2884,  585, 2884,  584,  580, 2884,
3889      2897, 2897, 2897, 2922, 2922, 2922,  574, 2842, 2842, 2903,
3890      2903, 2903,  573, 2903,  569,  561, 2903,  560, 2897,  556,
3891       547, 2922, 2955, 2955, 2955,  543,  535, 2903, 2906, 2906,
3892      2906, 2906, 2906, 2906, 2906, 2906, 2906,  534,  533, 2906,
3893      2955,  529,  523,  522, 2906, 2906, 2906, 2906, 2906, 2933,
3894      2933, 2933,  521, 2933,  517,  511, 2933, 2937, 2937, 2937,
3895       510, 2937,  506,  500, 2937, 2940, 2940, 2940,  499, 2940,
3896       498,  497, 2940, 2906, 2906, 2907, 2907, 2907, 2907, 2907,
3897
3898      2907, 2907, 2907, 2907,  496,  495, 2907, 2967, 2967, 2967,
3899       494, 2907, 2907, 2907, 2907, 2907, 2982, 2982, 2982, 2983,
3900      2983, 2983, 2984, 2984, 2984, 2967, 2967, 2989, 2989, 2989,
3901      3000, 3000, 3000, 2982,  490,  484, 2983,  483,  481, 2984,
3902      2907, 2907,  480,  479, 2989, 3004, 3004, 3004, 3000, 3013,
3903      3013, 3013, 3014, 3014, 3014,  475, 3014,  465,  464, 3014,
3904      3015, 3015, 3015, 3004,  462,  458, 3013, 3016, 3016, 3016,
3905       452, 3016,  451,  450, 3016,  446,  440, 3015, 3017, 3017,
3906      3017, 3018, 3018, 3018,  436, 3018,  428,  427, 3018, 3025,
3907      3025, 3025, 3035, 3035, 3035, 3017, 3004, 3026, 3026, 3026,
3908
3909       426, 3026,  425,  424, 3026,  420, 3025, 3043, 3043, 3043,
3910      3035, 3043,  414,  413, 3043, 3046, 3046, 3046,  409, 3046,
3911       403,  402, 3046, 3049, 3049, 3049,  398, 3049,  391, 3035,
3912      3049, 3058, 3058, 3058,  390, 3058,  389,  385, 3058, 3165,
3913      3165, 3165, 3174, 3174, 3174,  378, 3174,  377,  376, 3174,
3914      3275, 3275, 3275, 3276, 3276, 3276,  375, 3165,  371,  362,
3915      3174,  356,  352,  351,  347,  341,  340,  339, 3275,  335,
3916       328, 3276, 3279, 3279, 3279, 3279, 3279, 3279, 3279, 3279,
3917      3279, 3280, 3280, 3280, 3280, 3280, 3280, 3280, 3280, 3280,
3918      3281, 3281, 3281, 3281, 3281, 3281, 3281, 3281, 3281, 3282,
3919
3920      3282, 3282, 3282, 3282, 3282, 3282, 3282, 3282, 3283, 3283,
3921      3283, 3283, 3283, 3283, 3283, 3283, 3283, 3284, 3284, 3284,
3922      3284, 3284, 3284, 3284, 3284, 3284, 3285, 3285, 3285, 3285,
3923      3285, 3285, 3285, 3285, 3285, 3286, 3286, 3286, 3286, 3286,
3924      3286, 3286, 3286, 3286, 3287, 3287, 3287, 3287, 3287, 3287,
3925      3287, 3287, 3287, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
3926      3288, 3288, 3289, 3289, 3289, 3289, 3289, 3289, 3289, 3289,
3927      3289, 3290, 3290, 3290, 3290, 3290, 3290, 3290, 3290, 3290,
3928      3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3292,
3929      3292, 3292, 3292, 3292, 3292, 3292, 3292, 3292, 3293, 3293,
3930
3931      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3294, 3294, 3294,
3932      3294, 3294, 3294, 3294, 3294, 3294, 3295, 3295, 3295, 3295,
3933      3295, 3295, 3295, 3295, 3295, 3296, 3296, 3296, 3296, 3296,
3934      3296, 3296, 3296, 3296, 3297, 3297, 3297, 3297, 3297, 3297,
3935      3297, 3297, 3297, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
3936      3298, 3298, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299,
3937      3299, 3300, 3300, 3300, 3300, 3300, 3300, 3300, 3300, 3300,
3938      3301, 3301, 3301, 3301, 3301, 3301, 3301, 3301, 3301, 3302,
3939      3302, 3302, 3302, 3302, 3302, 3302, 3302, 3302, 3303, 3303,
3940      3303, 3303, 3303, 3303, 3303, 3303, 3303, 3304, 3304, 3304,
3941
3942      3304, 3304, 3304, 3304, 3304, 3304, 3305, 3305, 3305, 3305,
3943      3305, 3305, 3305, 3305, 3305, 3306, 3306, 3306, 3306, 3306,
3944      3306, 3306, 3306, 3306, 3307, 3307, 3307, 3307, 3307, 3307,
3945      3307, 3307, 3307, 3308, 3308, 3308, 3308, 3308, 3308, 3308,
3946      3308, 3308, 3309, 3309, 3309, 3309, 3309, 3309, 3309, 3309,
3947      3309, 3310, 3310, 3310, 3310, 3310, 3310, 3310, 3310, 3310,
3948      3311, 3311, 3311, 3311, 3311, 3311, 3311, 3311, 3311, 3312,
3949      3312, 3312, 3312, 3312, 3312, 3312, 3312, 3312, 3313, 3313,
3950      3313, 3313, 3313, 3313, 3313, 3313, 3313, 3314, 3314, 3314,
3951      3314, 3314, 3314, 3314, 3314, 3314, 3315, 3315, 3315, 3315,
3952
3953      3315, 3315, 3315, 3315, 3315, 3316, 3316, 3316, 3316, 3316,
3954      3316, 3316, 3316, 3316, 3317, 3317, 3317, 3317, 3317, 3317,
3955      3317, 3317, 3317, 3318, 3318, 3318, 3318, 3318, 3318, 3318,
3956      3318, 3318, 3319, 3319, 3319, 3319, 3319, 3319, 3319, 3319,
3957      3319, 3320, 3320, 3320, 3320, 3320, 3320, 3320, 3320, 3320,
3958      3321, 3321, 3321, 3321, 3321, 3321, 3321, 3321, 3321, 3322,
3959      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3323, 3323,
3960      3323, 3323, 3323, 3323, 3323, 3323, 3323, 3324, 3324, 3324,
3961      3324, 3324, 3324, 3324, 3324, 3324, 3325, 3325, 3325, 3325,
3962      3325, 3325, 3325, 3325, 3325, 3326, 3326, 3326, 3326, 3326,
3963
3964      3326, 3326, 3326, 3326, 3327, 3327, 3327, 3327, 3327, 3327,
3965      3327, 3327, 3327, 3328, 3328, 3328, 3328, 3328, 3328, 3328,
3966      3328, 3328, 3329, 3329, 3329, 3329, 3329, 3329, 3329, 3329,
3967      3329, 3330, 3330, 3330, 3330, 3330, 3330, 3330, 3330, 3330,
3968      3331, 3331, 3331, 3331, 3331, 3331, 3331, 3331, 3331, 3332,
3969      3332, 3332, 3332, 3332, 3332, 3332, 3332, 3332, 3333, 3333,
3970      3333, 3333, 3333, 3333, 3333, 3333, 3333, 3334, 3334, 3334,
3971      3334, 3334, 3334, 3334, 3334, 3334, 3335, 3335, 3335, 3335,
3972      3335, 3335, 3335, 3335, 3335, 3336, 3336, 3336, 3336, 3336,
3973      3336, 3336, 3336, 3336, 3337, 3337, 3337, 3337, 3337, 3337,
3974
3975      3337, 3337, 3337, 3338, 3338, 3338, 3338, 3338, 3338, 3338,
3976      3338, 3338, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339,
3977      3339, 3340, 3340, 3340,  326,  325,  321, 3340, 3341, 3341,
3978      3341,  318,  316,  315, 3341, 3342, 3342, 3342,  314,  310,
3979       306, 3342, 3343, 3343, 3343,  303,  299,  296, 3343, 3344,
3980      3344, 3344,  295,  287,  283, 3344, 3345, 3345, 3345,  279,
3981       278,  277, 3345, 3346, 3346, 3346,  271,  270,  268, 3346,
3982      3347, 3347, 3347,  265,  253,    0, 3347, 3348, 3348, 3348,
3983         0,    0,    0, 3348, 3349, 3349, 3349,    0,    0,    0,
3984      3349, 3350, 3350, 3350,    0,    0,    0, 3350, 3351, 3351,
3985
3986      3351,    0,    0,    0, 3351, 3352, 3352, 3352,    0,    0,
3987         0, 3352, 3353, 3353, 3353,    0,    0,    0, 3353, 3354,
3988      3354, 3354,    0,    0,    0, 3354, 3355, 3355, 3355,    0,
3989         0,    0, 3355, 3356, 3356, 3356,    0,    0,    0, 3356,
3990      3357, 3357, 3357,    0,    0,    0, 3357, 3358, 3358, 3358,
3991         0,    0,    0, 3358, 3359, 3359, 3359,    0,    0,    0,
3992      3359, 3360, 3360, 3360,    0,    0,    0, 3360, 3361, 3361,
3993      3361,    0,    0,    0, 3361, 3362, 3362, 3362,    0,    0,
3994         0, 3362, 3363, 3363, 3363,    0,    0,    0, 3363, 3364,
3995      3364, 3364,    0,    0,    0, 3364, 3365, 3365, 3365,    0,
3996
3997         0,    0, 3365, 3366, 3366, 3366,    0,    0,    0, 3366,
3998      3367, 3367, 3367,    0,    0,    0, 3367, 3368, 3368, 3368,
3999      3368, 3368, 3368, 3368,    0, 3368, 3369, 3369, 3369,    0,
4000         0,    0, 3369, 3370,    0,    0,    0, 3370, 3371, 3371,
4001      3371,    0,    0,    0, 3371, 3372,    0,    0,    0, 3372,
4002      3373, 3373, 3373,    0,    0,    0, 3373, 3374,    0,    0,
4003         0, 3374, 3375, 3375, 3375,    0,    0,    0, 3375, 3376,
4004         0,    0,    0, 3376, 3377, 3377, 3377,    0,    0,    0,
4005      3377, 3378,    0,    0,    0, 3378, 3379, 3379, 3379,    0,
4006         0,    0, 3379, 3380,    0,    0,    0, 3380, 3381, 3381,
4007
4008      3381,    0,    0,    0, 3381, 3382,    0,    0,    0, 3382,
4009      3383, 3383, 3383,    0,    0,    0, 3383, 3384,    0,    0,
4010         0, 3384, 3385, 3385, 3385,    0,    0,    0, 3385, 3386,
4011         0,    0,    0, 3386, 3387, 3387, 3387,    0,    0,    0,
4012      3387, 3388,    0,    0,    0, 3388, 3389, 3389, 3389,    0,
4013         0,    0, 3389, 3390,    0,    0,    0, 3390, 3391, 3391,
4014      3391,    0,    0,    0, 3391, 3392,    0,    0,    0, 3392,
4015      3393, 3393, 3393,    0,    0,    0, 3393, 3394,    0,    0,
4016         0, 3394, 3395, 3395, 3395,    0,    0,    0, 3395, 3396,
4017         0,    0,    0, 3396, 3397, 3397, 3397,    0,    0,    0,
4018
4019      3397, 3398,    0,    0,    0, 3398, 3399, 3399, 3399,    0,
4020         0,    0, 3399, 3400,    0,    0,    0, 3400, 3401, 3401,
4021      3401,    0,    0,    0, 3401, 3402,    0,    0,    0, 3402,
4022      3403, 3403, 3403,    0,    0,    0, 3403, 3404,    0,    0,
4023         0, 3404, 3405, 3405, 3405,    0,    0,    0, 3405, 3406,
4024         0,    0,    0, 3406, 3407, 3407, 3407,    0,    0,    0,
4025      3407, 3408,    0,    0,    0, 3408, 3409, 3409, 3409,    0,
4026         0,    0, 3409, 3410,    0,    0,    0, 3410, 3411, 3411,
4027      3411,    0,    0,    0, 3411, 3412,    0,    0,    0, 3412,
4028      3413, 3413, 3413,    0,    0,    0, 3413, 3414,    0,    0,
4029
4030         0, 3414, 3415, 3415, 3415,    0,    0,    0, 3415, 3416,
4031         0,    0,    0, 3416, 3417, 3417, 3417,    0,    0,    0,
4032      3417, 3418,    0,    0,    0, 3418, 3419, 3419, 3419,    0,
4033         0,    0, 3419, 3420,    0,    0,    0, 3420, 3421, 3421,
4034      3421,    0,    0,    0, 3421, 3422,    0,    0,    0, 3422,
4035      3423, 3423, 3423,    0,    0,    0, 3423, 3424,    0,    0,
4036         0, 3424, 3425, 3425, 3425, 3425, 3425, 3425, 3425, 3425,
4037      3425, 3426,    0,    0,    0,    0, 3426, 3427, 3427, 3427,
4038         0,    0,    0, 3427, 3428, 3428, 3428, 3428,    0,    0,
4039      3428, 3428, 3429, 3429, 3429,    0,    0,    0, 3429, 3430,
4040
4041      3430, 3430, 3430,    0,    0, 3430, 3430, 3431, 3431, 3431,
4042         0,    0,    0, 3431, 3432, 3432, 3432, 3432,    0,    0,
4043      3432, 3432, 3433, 3433, 3433,    0,    0,    0, 3433, 3434,
4044      3434, 3434, 3434,    0,    0, 3434, 3434, 3435, 3435, 3435,
4045         0,    0,    0, 3435, 3436, 3436, 3436, 3436,    0,    0,
4046      3436, 3436, 3437, 3437, 3437,    0,    0,    0, 3437, 3438,
4047      3438, 3438, 3438,    0,    0, 3438, 3438, 3439, 3439, 3439,
4048         0,    0,    0, 3439, 3440, 3440, 3440, 3440,    0,    0,
4049      3440, 3440, 3441, 3441, 3441,    0,    0,    0, 3441, 3442,
4050      3442, 3442, 3442,    0,    0, 3442, 3442, 3443, 3443, 3443,
4051
4052         0,    0,    0, 3443, 3444, 3444, 3444, 3444,    0,    0,
4053      3444, 3444, 3445, 3445, 3445,    0,    0,    0, 3445, 3446,
4054      3446, 3446, 3446,    0,    0, 3446, 3446, 3447, 3447, 3447,
4055         0,    0,    0, 3447, 3448, 3448, 3448, 3448,    0,    0,
4056      3448, 3448, 3449, 3449, 3449,    0,    0,    0, 3449, 3450,
4057      3450, 3450, 3450,    0,    0, 3450, 3450, 3451, 3451, 3451,
4058         0,    0,    0, 3451, 3452, 3452, 3452, 3452,    0,    0,
4059      3452, 3452, 3453, 3453, 3453,    0,    0,    0, 3453, 3454,
4060      3454, 3454, 3454,    0,    0, 3454, 3454, 3455, 3455, 3455,
4061      3455,    0, 3455,    0, 3455, 3456, 3456, 3456, 3456,    0,
4062
4063         0, 3456, 3456, 3457, 3457, 3457,    0,    0,    0, 3457,
4064      3458, 3458, 3458, 3458,    0,    0, 3458, 3458, 3459, 3459,
4065      3459,    0,    0,    0, 3459, 3460, 3460, 3460, 3460,    0,
4066         0, 3460, 3460, 3461, 3461, 3461,    0,    0,    0, 3461,
4067      3462, 3462, 3462, 3462,    0,    0, 3462, 3462, 3463, 3463,
4068      3463,    0,    0,    0, 3463, 3464, 3464, 3464, 3464,    0,
4069         0, 3464, 3464, 3465, 3465, 3465, 3465,    0, 3465,    0,
4070      3465, 3466, 3466, 3466, 3466,    0,    0, 3466, 3466, 3467,
4071      3467, 3467, 3467,    0, 3467,    0, 3467, 3468, 3468, 3468,
4072      3468,    0,    0, 3468, 3468, 3469, 3469, 3469,    0,    0,
4073
4074         0, 3469, 3470, 3470, 3470, 3470,    0,    0, 3470, 3470,
4075      3471, 3471, 3471, 3471,    0, 3471,    0, 3471, 3472, 3472,
4076      3472, 3472,    0,    0, 3472, 3472, 3473, 3473, 3473, 3473,
4077         0, 3473,    0, 3473, 3474, 3474, 3474, 3474,    0,    0,
4078      3474, 3474, 3475, 3475, 3475,    0,    0,    0, 3475, 3476,
4079      3476, 3476, 3476,    0,    0, 3476, 3476, 3477, 3477, 3477,
4080         0,    0,    0, 3477, 3478, 3478, 3478, 3478,    0,    0,
4081      3478, 3478, 3479, 3479, 3479, 3479,    0,    0, 3479, 3479,
4082      3480, 3480, 3480,    0,    0,    0, 3480, 3481, 3481, 3481,
4083      3481,    0,    0, 3481, 3481, 3482, 3482, 3482, 3482, 3482,
4084
4085      3482, 3482, 3482, 3482, 3483,    0, 3483,    0,    0, 3483,
4086      3484, 3484, 3484,    0,    0,    0, 3484, 3485, 3485, 3485,
4087      3485,    0,    0, 3485, 3485, 3486, 3486, 3486, 3486,    0,
4088      3486,    0, 3486, 3487, 3487, 3487, 3487,    0,    0, 3487,
4089      3487, 3488, 3488, 3488, 3488,    0, 3488,    0, 3488, 3489,
4090      3489, 3489, 3489,    0,    0, 3489, 3489, 3490, 3490, 3490,
4091         0,    0,    0, 3490, 3491, 3491, 3491, 3491,    0,    0,
4092      3491, 3491, 3492, 3492, 3492,    0,    0,    0, 3492, 3493,
4093      3493, 3493, 3493,    0,    0, 3493, 3493, 3494, 3494, 3494,
4094         0,    0,    0, 3494, 3495, 3495, 3495, 3495,    0,    0,
4095
4096      3495, 3495, 3496, 3496, 3496,    0,    0,    0, 3496, 3497,
4097      3497, 3497, 3497,    0,    0, 3497, 3497, 3498, 3498, 3498,
4098         0,    0,    0, 3498, 3499, 3499, 3499, 3499,    0,    0,
4099      3499, 3499, 3500, 3500, 3500, 3500,    0, 3500,    0, 3500,
4100      3501, 3501, 3501, 3501,    0,    0, 3501, 3501, 3502, 3502,
4101      3502, 3502,    0, 3502,    0, 3502, 3503, 3503, 3503, 3503,
4102         0,    0, 3503, 3503, 3504, 3504, 3504,    0,    0,    0,
4103      3504, 3505, 3505, 3505, 3505,    0,    0, 3505, 3505, 3506,
4104      3506, 3506, 3506,    0, 3506,    0, 3506, 3507, 3507, 3507,
4105      3507,    0,    0, 3507, 3507, 3508, 3508, 3508, 3508,    0,
4106
4107      3508,    0, 3508, 3509, 3509, 3509, 3509,    0,    0, 3509,
4108      3509, 3510, 3510, 3510,    0,    0,    0, 3510, 3511, 3511,
4109      3511, 3511,    0,    0, 3511, 3511, 3512, 3512, 3512,    0,
4110         0,    0, 3512, 3513, 3513, 3513, 3513,    0,    0, 3513,
4111      3513, 3514, 3514, 3514,    0,    0,    0, 3514, 3515, 3515,
4112      3515, 3515,    0,    0, 3515, 3515, 3516, 3516, 3516,    0,
4113         0,    0, 3516, 3517, 3517, 3517, 3517,    0,    0, 3517,
4114      3517, 3518, 3518, 3518,    0,    0,    0, 3518, 3519, 3519,
4115      3519, 3519,    0,    0, 3519, 3519, 3520, 3520, 3520,    0,
4116         0,    0, 3520, 3521, 3521, 3521, 3521,    0,    0, 3521,
4117
4118      3521, 3522, 3522, 3522,    0,    0,    0, 3522, 3523, 3523,
4119      3523, 3523,    0,    0, 3523, 3523, 3524, 3524, 3524,    0,
4120         0,    0, 3524, 3525, 3525, 3525, 3525,    0,    0, 3525,
4121      3525, 3526, 3526, 3526,    0,    0,    0, 3526, 3527, 3527,
4122      3527, 3527,    0,    0, 3527, 3527, 3528, 3528, 3528, 3528,
4123         0,    0, 3528, 3528, 3529, 3529, 3529,    0,    0,    0,
4124      3529, 3530, 3530, 3530, 3530,    0,    0, 3530, 3530, 3531,
4125      3531, 3531,    0,    0,    0, 3531, 3532, 3532, 3532, 3532,
4126         0,    0, 3532, 3532, 3533, 3533, 3533,    0,    0,    0,
4127      3533, 3534, 3534, 3534, 3534,    0,    0, 3534, 3534, 3535,
4128
4129      3535, 3535, 3535,    0,    0, 3535, 3535, 3536, 3536, 3536,
4130         0,    0,    0, 3536, 3537, 3537, 3537, 3537,    0,    0,
4131      3537, 3537, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
4132      3538, 3539, 3539, 3539, 3539, 3539, 3539, 3539, 3539, 3539,
4133      3540, 3540, 3540,    0,    0,    0, 3540, 3541, 3541, 3541,
4134      3541,    0,    0, 3541, 3541, 3542, 3542, 3542, 3542,    0,
4135         0, 3542, 3542, 3543, 3543, 3543,    0,    0,    0, 3543,
4136      3544, 3544, 3544, 3544,    0,    0, 3544, 3544, 3545, 3545,
4137      3545,    0,    0,    0, 3545, 3546, 3546, 3546, 3546,    0,
4138         0, 3546, 3546, 3547, 3547, 3547,    0,    0,    0, 3547,
4139
4140      3548, 3548, 3548, 3548,    0,    0, 3548, 3548, 3549, 3549,
4141      3549,    0,    0,    0, 3549, 3550, 3550, 3550,    0,    0,
4142         0, 3550, 3551, 3551, 3551, 3551,    0,    0, 3551, 3551,
4143      3552, 3552, 3552,    0,    0,    0, 3552, 3553, 3553, 3553,
4144      3553,    0,    0, 3553, 3553, 3554, 3554, 3554, 3554,    0,
4145         0, 3554, 3554, 3555, 3555, 3555,    0,    0,    0, 3555,
4146      3556, 3556, 3556, 3556,    0,    0, 3556, 3556, 3557, 3557,
4147      3557,    0,    0,    0, 3557, 3558, 3558, 3558, 3558,    0,
4148         0, 3558, 3558, 3559, 3559, 3559, 3559,    0,    0, 3559,
4149      3559, 3560, 3560, 3560, 3560,    0,    0, 3560, 3560, 3561,
4150
4151      3561, 3561,    0,    0,    0, 3561, 3562, 3562, 3562, 3562,
4152         0,    0, 3562, 3562, 3563, 3563, 3563, 3563,    0, 3563,
4153         0, 3563, 3564, 3564, 3564, 3564,    0,    0, 3564, 3564,
4154      3565, 3565, 3565,    0,    0,    0, 3565, 3566, 3566, 3566,
4155      3566,    0,    0, 3566, 3566, 3567, 3567, 3567,    0,    0,
4156         0, 3567, 3568, 3568, 3568, 3568,    0,    0, 3568, 3568,
4157      3569, 3569, 3569,    0,    0,    0, 3569, 3570, 3570, 3570,
4158      3570,    0,    0, 3570, 3570, 3571, 3571, 3571,    0,    0,
4159         0, 3571, 3572, 3572, 3572, 3572,    0,    0, 3572, 3572,
4160      3573, 3573, 3573,    0,    0,    0, 3573, 3574, 3574, 3574,
4161
4162      3574,    0,    0, 3574, 3574, 3575, 3575, 3575,    0,    0,
4163         0, 3575, 3576, 3576, 3576, 3576,    0,    0, 3576, 3576,
4164      3577, 3577, 3577,    0,    0,    0, 3577, 3578, 3578, 3578,
4165      3578,    0,    0, 3578, 3578, 3579, 3579, 3579, 3579,    0,
4166         0, 3579, 3579, 3580, 3580, 3580,    0,    0,    0, 3580,
4167      3581, 3581, 3581, 3581,    0,    0, 3581, 3581, 3582, 3582,
4168      3582,    0,    0,    0, 3582, 3583, 3583, 3583, 3583,    0,
4169         0, 3583, 3583, 3584, 3584, 3584, 3584,    0, 3584,    0,
4170      3584, 3585, 3585, 3585, 3585,    0,    0, 3585, 3585, 3586,
4171      3586, 3586, 3586,    0,    0, 3586, 3586, 3587, 3587, 3587,
4172
4173      3587,    0, 3587,    0, 3587, 3588, 3588, 3588, 3588,    0,
4174         0, 3588, 3588, 3589, 3589, 3589, 3589, 3589, 3589, 3589,
4175      3589, 3589, 3590, 3590, 3590, 3590, 3590, 3590, 3590, 3590,
4176      3590, 3591, 3591, 3591,    0,    0,    0, 3591, 3592, 3592,
4177      3592, 3592,    0,    0, 3592, 3592, 3593, 3593, 3593, 3593,
4178         0,    0, 3593, 3593, 3594, 3594, 3594,    0,    0,    0,
4179      3594, 3595, 3595, 3595, 3595,    0,    0, 3595, 3595, 3596,
4180      3596, 3596,    0,    0,    0, 3596, 3597, 3597, 3597, 3597,
4181         0,    0, 3597, 3597, 3598, 3598, 3598,    0,    0,    0,
4182      3598, 3599, 3599, 3599, 3599,    0,    0, 3599, 3599, 3600,
4183
4184      3600, 3600,    0,    0,    0, 3600, 3601, 3601, 3601,    0,
4185         0,    0, 3601, 3602, 3602, 3602, 3602,    0,    0, 3602,
4186      3602, 3603, 3603, 3603,    0,    0,    0, 3603, 3604, 3604,
4187      3604, 3604,    0,    0, 3604, 3604, 3605, 3605, 3605, 3605,
4188         0,    0, 3605, 3605, 3606, 3606, 3606, 3606,    0, 3606,
4189         0, 3606, 3607, 3607, 3607, 3607,    0,    0, 3607, 3607,
4190      3608, 3608, 3608,    0,    0,    0, 3608, 3609, 3609, 3609,
4191      3609,    0,    0, 3609, 3609, 3610, 3610, 3610, 3610,    0,
4192         0, 3610, 3610, 3611, 3611, 3611,    0,    0,    0, 3611,
4193      3612, 3612, 3612, 3612,    0,    0, 3612, 3612, 3613, 3613,
4194
4195      3613, 3613,    0, 3613,    0, 3613, 3614, 3614, 3614, 3614,
4196         0,    0, 3614, 3614, 3615, 3615, 3615,    0,    0,    0,
4197      3615, 3616, 3616, 3616, 3616,    0,    0, 3616, 3616, 3617,
4198      3617, 3617,    0,    0,    0, 3617, 3618, 3618, 3618, 3618,
4199         0,    0, 3618, 3618, 3619, 3619, 3619,    0,    0,    0,
4200      3619, 3620, 3620, 3620, 3620,    0,    0, 3620, 3620, 3621,
4201      3621, 3621,    0,    0,    0, 3621, 3622, 3622, 3622, 3622,
4202         0,    0, 3622, 3622, 3623, 3623, 3623,    0,    0,    0,
4203      3623, 3624, 3624, 3624, 3624,    0,    0, 3624, 3624, 3625,
4204      3625, 3625, 3625,    0, 3625,    0, 3625, 3626, 3626, 3626,
4205
4206      3626,    0,    0, 3626, 3626, 3627, 3627, 3627,    0,    0,
4207         0, 3627, 3628, 3628, 3628, 3628,    0,    0, 3628, 3628,
4208      3629, 3629, 3629, 3629,    0,    0, 3629, 3629, 3630, 3630,
4209      3630, 3630,    0, 3630,    0, 3630, 3631, 3631, 3631, 3631,
4210         0,    0, 3631, 3631, 3632, 3632, 3632,    0,    0,    0,
4211      3632, 3633, 3633, 3633, 3633,    0,    0, 3633, 3633, 3634,
4212      3634, 3634, 3634,    0,    0, 3634, 3634, 3635, 3635, 3635,
4213      3635,    0,    0, 3635, 3635, 3636, 3636, 3636, 3636,    0,
4214         0, 3636, 3636, 3637, 3637, 3637, 3637, 3637, 3637, 3637,
4215      3637, 3637, 3638, 3638, 3638, 3638, 3638, 3638, 3638, 3638,
4216
4217      3638, 3639, 3639, 3639, 3639,    0, 3639,    0, 3639, 3640,
4218      3640, 3640, 3640,    0,    0, 3640, 3640, 3641, 3641, 3641,
4219      3641,    0,    0, 3641, 3641, 3642, 3642, 3642,    0,    0,
4220         0, 3642, 3643, 3643, 3643, 3643,    0,    0, 3643, 3643,
4221      3644, 3644, 3644,    0,    0,    0, 3644, 3645, 3645, 3645,
4222      3645,    0,    0, 3645, 3645, 3646, 3646, 3646, 3646,    0,
4223      3646,    0, 3646, 3647, 3647, 3647, 3647,    0,    0, 3647,
4224      3647, 3648, 3648, 3648, 3648,    0, 3648,    0, 3648, 3649,
4225      3649, 3649, 3649,    0, 3649,    0, 3649, 3650, 3650, 3650,
4226      3650,    0,    0, 3650, 3650, 3651, 3651, 3651, 3651,    0,
4227
4228      3651,    0, 3651, 3652, 3652, 3652, 3652,    0,    0, 3652,
4229      3652, 3653, 3653, 3653, 3653,    0,    0, 3653, 3653, 3654,
4230      3654, 3654, 3654,    0,    0, 3654, 3654, 3655, 3655, 3655,
4231         0,    0,    0, 3655, 3656, 3656, 3656, 3656,    0,    0,
4232      3656, 3656, 3657, 3657, 3657,    0,    0,    0, 3657, 3658,
4233      3658, 3658, 3658,    0,    0, 3658, 3658, 3659, 3659, 3659,
4234      3659,    0, 3659,    0, 3659, 3660, 3660, 3660, 3660,    0,
4235         0, 3660, 3660, 3661, 3661, 3661,    0,    0,    0, 3661,
4236      3662, 3662, 3662,    0,    0,    0, 3662, 3663, 3663, 3663,
4237      3663,    0,    0, 3663, 3663, 3664, 3664, 3664,    0,    0,
4238
4239         0, 3664, 3665, 3665, 3665, 3665,    0,    0, 3665, 3665,
4240      3666, 3666, 3666,    0,    0,    0, 3666, 3667, 3667, 3667,
4241         0,    0,    0, 3667, 3668, 3668, 3668, 3668,    0,    0,
4242      3668, 3668, 3669, 3669, 3669,    0,    0,    0, 3669, 3670,
4243      3670, 3670, 3670,    0,    0, 3670, 3670, 3671, 3671, 3671,
4244         0,    0,    0, 3671, 3672, 3672, 3672, 3672,    0,    0,
4245      3672, 3672, 3673, 3673, 3673, 3673,    0,    0, 3673, 3673,
4246      3674, 3674, 3674, 3674,    0,    0, 3674, 3674, 3675, 3675,
4247      3675,    0,    0,    0, 3675, 3676, 3676, 3676, 3676,    0,
4248         0, 3676, 3676, 3677, 3677, 3677, 3677,    0,    0, 3677,
4249
4250      3677, 3678, 3678, 3678, 3678,    0,    0, 3678, 3678, 3679,
4251      3679, 3679, 3679, 3679, 3679, 3679, 3679, 3679, 3680, 3680,
4252      3680, 3680, 3680, 3680, 3680, 3680, 3680, 3681, 3681, 3681,
4253      3681,    0,    0, 3681, 3681, 3682, 3682, 3682, 3682,    0,
4254         0, 3682, 3682, 3683, 3683, 3683,    0,    0,    0, 3683,
4255      3684, 3684, 3684,    0,    0,    0, 3684, 3685, 3685, 3685,
4256      3685,    0,    0, 3685, 3685, 3686, 3686, 3686, 3686,    0,
4257         0, 3686, 3686, 3687, 3687, 3687, 3687,    0,    0, 3687,
4258      3687, 3688, 3688, 3688, 3688,    0,    0, 3688, 3688, 3689,
4259      3689, 3689, 3689,    0,    0, 3689, 3689, 3690, 3690, 3690,
4260
4261         0,    0,    0, 3690, 3691, 3691, 3691, 3691,    0,    0,
4262      3691, 3691, 3692, 3692, 3692,    0,    0,    0, 3692, 3693,
4263      3693, 3693, 3693,    0,    0, 3693, 3693, 3694, 3694, 3694,
4264      3694,    0,    0, 3694, 3694, 3695, 3695, 3695,    0,    0,
4265         0, 3695, 3696, 3696, 3696,    0,    0,    0, 3696, 3697,
4266      3697, 3697, 3697,    0,    0, 3697, 3697, 3698, 3698, 3698,
4267         0,    0,    0, 3698, 3699, 3699, 3699, 3699,    0,    0,
4268      3699, 3699, 3700, 3700, 3700,    0,    0,    0, 3700, 3701,
4269      3701, 3701,    0,    0,    0, 3701, 3702, 3702, 3702,    0,
4270         0,    0, 3702, 3703, 3703, 3703, 3703,    0,    0, 3703,
4271
4272      3703, 3704, 3704, 3704,    0,    0,    0, 3704, 3705, 3705,
4273      3705, 3705,    0,    0, 3705, 3705, 3706, 3706, 3706, 3706,
4274         0,    0, 3706, 3706, 3707, 3707, 3707, 3707,    0,    0,
4275      3707, 3707, 3708, 3708, 3708, 3708,    0, 3708,    0, 3708,
4276      3709, 3709, 3709, 3709,    0,    0, 3709, 3709, 3710, 3710,
4277      3710, 3710,    0,    0, 3710, 3710, 3711, 3711, 3711, 3711,
4278         0,    0, 3711, 3711, 3712, 3712, 3712, 3712, 3712, 3712,
4279      3712, 3712, 3712, 3713, 3713, 3713, 3713, 3713, 3713, 3713,
4280      3713, 3713, 3714, 3714, 3714, 3714,    0,    0, 3714, 3714,
4281      3715, 3715, 3715, 3715,    0,    0, 3715, 3715, 3716, 3716,
4282
4283      3716,    0,    0,    0, 3716, 3717, 3717, 3717, 3717,    0,
4284      3717,    0, 3717, 3718, 3718, 3718, 3718,    0,    0, 3718,
4285      3718, 3719, 3719, 3719, 3719,    0,    0, 3719, 3719, 3720,
4286      3720, 3720, 3720,    0,    0, 3720, 3720, 3721, 3721, 3721,
4287      3721,    0,    0, 3721, 3721, 3722, 3722, 3722,    0,    0,
4288         0, 3722, 3723, 3723, 3723, 3723,    0,    0, 3723, 3723,
4289      3724, 3724, 3724,    0,    0,    0, 3724, 3725, 3725, 3725,
4290      3725,    0,    0, 3725, 3725, 3726, 3726, 3726, 3726,    0,
4291         0, 3726, 3726, 3727, 3727, 3727,    0,    0,    0, 3727,
4292      3728, 3728, 3728,    0,    0,    0, 3728, 3729, 3729, 3729,
4293
4294      3729,    0, 3729,    0, 3729, 3730, 3730, 3730, 3730,    0,
4295         0, 3730, 3730, 3731, 3731, 3731, 3731,    0, 3731,    0,
4296      3731, 3732, 3732, 3732,    0,    0,    0, 3732, 3733, 3733,
4297      3733,    0,    0,    0, 3733, 3734, 3734, 3734, 3734,    0,
4298         0, 3734, 3734, 3735, 3735, 3735, 3735,    0, 3735,    0,
4299      3735, 3736, 3736, 3736, 3736,    0,    0, 3736, 3736, 3737,
4300      3737, 3737, 3737,    0,    0, 3737, 3737, 3738, 3738, 3738,
4301      3738,    0,    0, 3738, 3738, 3739, 3739, 3739, 3739,    0,
4302      3739,    0, 3739, 3740, 3740, 3740, 3740,    0,    0, 3740,
4303      3740, 3741, 3741, 3741, 3741,    0,    0, 3741, 3741, 3742,
4304
4305      3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742, 3743, 3743,
4306      3743, 3743, 3743, 3743, 3743, 3743, 3743, 3744, 3744, 3744,
4307      3744,    0,    0, 3744, 3744, 3745, 3745, 3745,    0,    0,
4308         0, 3745, 3746, 3746, 3746,    0,    0,    0, 3746, 3747,
4309      3747, 3747, 3747,    0,    0, 3747, 3747, 3748, 3748, 3748,
4310      3748,    0,    0, 3748, 3748, 3749, 3749, 3749, 3749,    0,
4311         0, 3749, 3749, 3750, 3750, 3750,    0,    0,    0, 3750,
4312      3751, 3751, 3751, 3751,    0,    0, 3751, 3751, 3752, 3752,
4313      3752,    0,    0,    0, 3752, 3753, 3753, 3753, 3753, 3753,
4314      3753, 3753, 3753, 3753, 3754, 3754, 3754, 3754, 3754, 3754,
4315
4316      3754, 3754, 3754, 3755, 3755, 3755, 3755, 3755, 3755, 3755,
4317      3755, 3755, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756,
4318      3756, 3757, 3757, 3757, 3757, 3757, 3757, 3757, 3757, 3757,
4319      3758, 3758, 3758, 3758, 3758, 3758, 3758, 3758, 3758, 3278,
4320      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
4321      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
4322      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
4323      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
4324      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
4325      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
4326
4327      3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278,
4328      3278, 3278, 3278, 3278
4329     } ;
4330
4331 /* Table of booleans, true if rule could match eol. */
4332 static yyconst flex_int32_t yy_rule_can_match_eol[563] =
4333     {   0,
4334 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
4335     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4336     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4337     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4338     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
4339     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4340     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4341     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4342     1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
4343     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4344     1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
4345     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4346     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4347     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4348     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
4349     1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
4350     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
4351     0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 
4352     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4353     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
4354     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
4355     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4356     1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 
4357     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
4358     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
4359     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
4360     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
4361     0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 
4362     0, 1, 0,     };
4363
4364 static yy_state_type yy_last_accepting_state;
4365 static char *yy_last_accepting_cpos;
4366
4367 extern int surf_parse__flex_debug;
4368 int surf_parse__flex_debug = 0;
4369
4370 /* The intent behind this definition is that it'll catch
4371  * any uses of REJECT which flex missed.
4372  */
4373 #define REJECT reject_used_but_not_detected
4374 #define yymore() yymore_used_but_not_detected
4375 #define YY_MORE_ADJ 0
4376 #define YY_RESTORE_YY_MORE_OFFSET
4377 char *surf_parse_text;
4378 /* Validating XML processor for src/surf/simgrid.dtd.
4379  *
4380  * This program was generated with the FleXML XML processor generator.
4381  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
4382  * FleXML is Copyright (C) 2003-2013 Martin Quinson.  All rights reserved.
4383  * (1.9.6).
4384  * 
4385  * There are two, intertwined parts to this program, part A and part B.
4386  *
4387  * Part A
4388  * ------
4389  * 
4390  * Some parts, here collectively called "Part A", are found in the 
4391  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
4392  * and Copyright (C) 2003-2013 Martin Quinson. All rights reserved.
4393  *
4394  * You can redistribute, use, perform, display and/or modify "Part A"
4395  * provided the following two conditions hold:
4396  *
4397  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
4398  *    FleXML; without even the implied warranty of MERCHANTABILITY or
4399  *    FITNESS FOR A PARTICULAR PURPOSE.
4400  *
4401  * 2. The program distribution conditions do not in any way affect the
4402  *    distribution conditions of the FleXML system used to generate this
4403  *    file or any version of FleXML derived from that system.
4404  *
4405  * Notice that these are explicit rights granted to you for files
4406  * generated by the FleXML system.  For your rights in connection with
4407  * the FleXML system itself please consult the GNU General Public License.
4408  * 
4409  * Part B
4410  * ------
4411  * 
4412  * The other parts, here collectively called "Part B", and which came 
4413  * from the DTD used by FleXML to generate this program, can be 
4414  * distributed (or not, as the case may be) under the terms of whoever
4415  * wrote them, provided these terms respect and obey the two conditions 
4416  * above under the heading "Part A".
4417  *
4418  * The author of and contributors to FleXML specifically disclaim
4419  * any copyright interest in "Part B", unless "Part B" was written 
4420  * by the author of or contributors to FleXML.
4421  * 
4422  */
4423
4424 /* Version strings. */
4425 const char surfxml_flexml_version[] = "1.9.6";
4426
4427 /* ANSI headers. */
4428 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
4429 #include <stdio.h>
4430 #include <string.h>
4431 #include <assert.h>
4432 #include <stdarg.h>
4433 #include <ctype.h>
4434      
4435 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
4436 # ifndef __STRICT_ANSI__
4437 #  include <io.h>
4438 #  include <process.h>
4439 # endif
4440 #else
4441 # include <unistd.h>
4442 #endif
4443      
4444 #ifndef FLEXML_INDEXSTACKSIZE
4445 #define FLEXML_INDEXSTACKSIZE 1000
4446 #endif
4447
4448 /* Generated definitions. */
4449 #define FLEXML_yylineno
4450 #ifndef FLEXML_BUFFERSTACKSIZE
4451 #define FLEXML_BUFFERSTACKSIZE 1000000
4452 #endif
4453 #define FLEXML_NEED_BUFFERLIT
4454
4455 /* XML processor api. */
4456 /* FleXML-provided data. */
4457 int surfxml_pcdata_ix;
4458 extern char *surfxml_bufferstack;
4459 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
4460 AT_surfxml_mount_name AX_surfxml_mount_name;
4461 #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
4462 short int surfxml_mount_name_isset;
4463 AT_surfxml_random_generator AX_surfxml_random_generator;
4464 #define A_surfxml_random_generator AX_surfxml_random_generator
4465 short int surfxml_random_generator_isset;
4466 AT_surfxml_ASroute_gw___dst AX_surfxml_ASroute_gw___dst;
4467 #define A_surfxml_ASroute_gw___dst (surfxml_bufferstack + AX_surfxml_ASroute_gw___dst)
4468 short int surfxml_ASroute_gw___dst_isset;
4469 AT_surfxml_trace___connect_element AX_surfxml_trace___connect_element;
4470 #define A_surfxml_trace___connect_element (surfxml_bufferstack + AX_surfxml_trace___connect_element)
4471 short int surfxml_trace___connect_element_isset;
4472 AT_surfxml_prop_id AX_surfxml_prop_id;
4473 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
4474 short int surfxml_prop_id_isset;
4475 AT_surfxml_host___link_up AX_surfxml_host___link_up;
4476 #define A_surfxml_host___link_up (surfxml_bufferstack + AX_surfxml_host___link_up)
4477 short int surfxml_host___link_up_isset;
4478 AT_surfxml_host_id AX_surfxml_host_id;
4479 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
4480 short int surfxml_host_id_isset;
4481 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
4482 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
4483 short int surfxml_ASroute_symmetrical_isset;
4484 AT_surfxml_peer_lat AX_surfxml_peer_lat;
4485 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
4486 short int surfxml_peer_lat_isset;
4487 AT_surfxml_process_on___failure AX_surfxml_process_on___failure;
4488 #define A_surfxml_process_on___failure AX_surfxml_process_on___failure
4489 short int surfxml_process_on___failure_isset;
4490 AT_surfxml_link_latency___file AX_surfxml_link_latency___file;
4491 #define A_surfxml_link_latency___file (surfxml_bufferstack + AX_surfxml_link_latency___file)
4492 short int surfxml_link_latency___file_isset;
4493 AT_surfxml_peer_availability___file AX_surfxml_peer_availability___file;
4494 #define A_surfxml_peer_availability___file (surfxml_bufferstack + AX_surfxml_peer_availability___file)
4495 short int surfxml_peer_availability___file_isset;
4496 AT_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction;
4497 #define A_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction
4498 short int surfxml_link___ctn_direction_isset;
4499 AT_surfxml_host_state AX_surfxml_host_state;
4500 #define A_surfxml_host_state AX_surfxml_host_state
4501 short int surfxml_host_state_isset;
4502 AT_surfxml_AS_id AX_surfxml_AS_id;
4503 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
4504 short int surfxml_AS_id_isset;
4505 AT_surfxml_host_power AX_surfxml_host_power;
4506 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
4507 short int surfxml_host_power_isset;
4508 AT_surfxml_cabinet_suffix AX_surfxml_cabinet_suffix;
4509 #define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix)
4510 short int surfxml_cabinet_suffix_isset;
4511 AT_surfxml_gpu_name AX_surfxml_gpu_name;
4512 #define A_surfxml_gpu_name (surfxml_bufferstack + AX_surfxml_gpu_name)
4513 short int surfxml_gpu_name_isset;
4514 AT_surfxml_router_id AX_surfxml_router_id;
4515 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
4516 short int surfxml_router_id_isset;
4517 AT_surfxml_storage___type_id AX_surfxml_storage___type_id;
4518 #define A_surfxml_storage___type_id (surfxml_bufferstack + AX_surfxml_storage___type_id)
4519 short int surfxml_storage___type_id_isset;
4520 AT_surfxml_process_start___time AX_surfxml_process_start___time;
4521 #define A_surfxml_process_start___time (surfxml_bufferstack + AX_surfxml_process_start___time)
4522 short int surfxml_process_start___time_isset;
4523 AT_surfxml_cabinet_bw AX_surfxml_cabinet_bw;
4524 #define A_surfxml_cabinet_bw (surfxml_bufferstack + AX_surfxml_cabinet_bw)
4525 short int surfxml_cabinet_bw_isset;
4526 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
4527 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
4528 short int surfxml_cluster_suffix_isset;
4529 AT_surfxml_bypassASroute_dst AX_surfxml_bypassASroute_dst;
4530 #define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
4531 short int surfxml_bypassASroute_dst_isset;
4532 AT_surfxml_host___link_id AX_surfxml_host___link_id;
4533 #define A_surfxml_host___link_id (surfxml_bufferstack + AX_surfxml_host___link_id)
4534 short int surfxml_host___link_id_isset;
4535 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
4536 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
4537 short int surfxml_ASroute_src_isset;
4538 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
4539 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
4540 short int surfxml_cluster_prefix_isset;
4541 AT_surfxml_cabinet_prefix AX_surfxml_cabinet_prefix;
4542 #define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix)
4543 short int surfxml_cabinet_prefix_isset;
4544 AT_surfxml_trace_file AX_surfxml_trace_file;
4545 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
4546 short int surfxml_trace_file_isset;
4547 AT_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy;
4548 #define A_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy
4549 short int surfxml_link_sharing___policy_isset;
4550 AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
4551 #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
4552 short int surfxml_storage_typeId_isset;
4553 AT_surfxml_random_min AX_surfxml_random_min;
4554 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
4555 short int surfxml_random_min_isset;
4556 AT_surfxml_link___ctn_id AX_surfxml_link___ctn_id;
4557 #define A_surfxml_link___ctn_id (surfxml_bufferstack + AX_surfxml_link___ctn_id)
4558 short int surfxml_link___ctn_id_isset;
4559 AT_surfxml_peer_bw___out AX_surfxml_peer_bw___out;
4560 #define A_surfxml_peer_bw___out (surfxml_bufferstack + AX_surfxml_peer_bw___out)
4561 short int surfxml_peer_bw___out_isset;
4562 AT_surfxml_cluster_availability___file AX_surfxml_cluster_availability___file;
4563 #define A_surfxml_cluster_availability___file (surfxml_bufferstack + AX_surfxml_cluster_availability___file)
4564 short int surfxml_cluster_availability___file_isset;
4565 AT_surfxml_storage_content AX_surfxml_storage_content;
4566 #define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
4567 short int surfxml_storage_content_isset;
4568 AT_surfxml_process_kill___time AX_surfxml_process_kill___time;
4569 #define A_surfxml_process_kill___time (surfxml_bufferstack + AX_surfxml_process_kill___time)
4570 short int surfxml_process_kill___time_isset;
4571 AT_surfxml_cluster_bb___bw AX_surfxml_cluster_bb___bw;
4572 #define A_surfxml_cluster_bb___bw (surfxml_bufferstack + AX_surfxml_cluster_bb___bw)
4573 short int surfxml_cluster_bb___bw_isset;
4574 AT_surfxml_argument_value AX_surfxml_argument_value;
4575 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
4576 short int surfxml_argument_value_isset;
4577 AT_surfxml_link_state AX_surfxml_link_state;
4578 #define A_surfxml_link_state AX_surfxml_link_state
4579 short int surfxml_link_state_isset;
4580 AT_surfxml_cluster_loopback___bw AX_surfxml_cluster_loopback___bw;
4581 #define A_surfxml_cluster_loopback___bw (surfxml_bufferstack + AX_surfxml_cluster_loopback___bw)
4582 short int surfxml_cluster_loopback___bw_isset;
4583 AT_surfxml_ASroute_gw___src AX_surfxml_ASroute_gw___src;
4584 #define A_surfxml_ASroute_gw___src (surfxml_bufferstack + AX_surfxml_ASroute_gw___src)
4585 short int surfxml_ASroute_gw___src_isset;
4586 AT_surfxml_AS_routing AX_surfxml_AS_routing;
4587 #define A_surfxml_AS_routing AX_surfxml_AS_routing
4588 short int surfxml_AS_routing_isset;
4589 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
4590 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
4591 short int surfxml_link_bandwidth_isset;
4592 AT_surfxml_cluster_id AX_surfxml_cluster_id;
4593 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
4594 short int surfxml_cluster_id_isset;
4595 AT_surfxml_peer_bw___in AX_surfxml_peer_bw___in;
4596 #define A_surfxml_peer_bw___in (surfxml_bufferstack + AX_surfxml_peer_bw___in)
4597 short int surfxml_peer_bw___in_isset;
4598 AT_surfxml_random_mean AX_surfxml_random_mean;
4599 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
4600 short int surfxml_random_mean_isset;
4601 AT_surfxml_storage___type_size AX_surfxml_storage___type_size;
4602 #define A_surfxml_storage___type_size (surfxml_bufferstack + AX_surfxml_storage___type_size)
4603 short int surfxml_storage___type_size_isset;
4604 AT_surfxml_cluster_bb___lat AX_surfxml_cluster_bb___lat;
4605 #define A_surfxml_cluster_bb___lat (surfxml_bufferstack + AX_surfxml_cluster_bb___lat)
4606 short int surfxml_cluster_bb___lat_isset;
4607 AT_surfxml_link_latency AX_surfxml_link_latency;
4608 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
4609 short int surfxml_link_latency_isset;
4610 AT_surfxml_backbone_bandwidth AX_surfxml_backbone_bandwidth;
4611 #define A_surfxml_backbone_bandwidth (surfxml_bufferstack + AX_surfxml_backbone_bandwidth)
4612 short int surfxml_backbone_bandwidth_isset;
4613 AT_surfxml_backbone_id AX_surfxml_backbone_id;
4614 #define A_surfxml_backbone_id (surfxml_bufferstack + AX_surfxml_backbone_id)
4615 short int surfxml_backbone_id_isset;
4616 AT_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind;
4617 #define A_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind
4618 short int surfxml_trace___connect_kind_isset;
4619 AT_surfxml_cabinet_lat AX_surfxml_cabinet_lat;
4620 #define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat)
4621 short int surfxml_cabinet_lat_isset;
4622 AT_surfxml_random_seed AX_surfxml_random_seed;
4623 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
4624 short int surfxml_random_seed_isset;
4625 AT_surfxml_cluster_state___file AX_surfxml_cluster_state___file;
4626 #define A_surfxml_cluster_state___file (surfxml_bufferstack + AX_surfxml_cluster_state___file)
4627 short int surfxml_cluster_state___file_isset;
4628 AT_surfxml_link_bandwidth___file AX_surfxml_link_bandwidth___file;
4629 #define A_surfxml_link_bandwidth___file (surfxml_bufferstack + AX_surfxml_link_bandwidth___file)
4630 short int surfxml_link_bandwidth___file_isset;
4631 AT_surfxml_storage___type_content AX_surfxml_storage___type_content;
4632 #define A_surfxml_storage___type_content (surfxml_bufferstack + AX_surfxml_storage___type_content)
4633 short int surfxml_storage___type_content_isset;
4634 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
4635 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
4636 short int surfxml_route_symmetrical_isset;
4637 AT_surfxml_random_id AX_surfxml_random_id;
4638 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
4639 short int surfxml_random_id_isset;
4640 AT_surfxml_mstorage_name AX_surfxml_mstorage_name;
4641 #define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name)
4642 short int surfxml_mstorage_name_isset;
4643 AT_surfxml_random_max AX_surfxml_random_max;
4644 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
4645 short int surfxml_random_max_isset;
4646 AT_surfxml_link_id AX_surfxml_link_id;
4647 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
4648 short int surfxml_link_id_isset;
4649 AT_surfxml_process_host AX_surfxml_process_host;
4650 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
4651 short int surfxml_process_host_isset;
4652 AT_surfxml_cabinet_id AX_surfxml_cabinet_id;
4653 #define A_surfxml_cabinet_id (surfxml_bufferstack + AX_surfxml_cabinet_id)
4654 short int surfxml_cabinet_id_isset;
4655 AT_surfxml_host_availability___file AX_surfxml_host_availability___file;
4656 #define A_surfxml_host_availability___file (surfxml_bufferstack + AX_surfxml_host_availability___file)
4657 short int surfxml_host_availability___file_isset;
4658 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
4659 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
4660 short int surfxml_cluster_lat_isset;
4661 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
4662 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
4663 short int surfxml_router_coordinates_isset;
4664 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
4665 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
4666 short int surfxml_trace_periodicity_isset;
4667 AT_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy;
4668 #define A_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy
4669 short int surfxml_cluster_bb___sharing___policy_isset;
4670 AT_surfxml_peer_state___file AX_surfxml_peer_state___file;
4671 #define A_surfxml_peer_state___file (surfxml_bufferstack + AX_surfxml_peer_state___file)
4672 short int surfxml_peer_state___file_isset;
4673 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
4674 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
4675 short int surfxml_peer_coordinates_isset;
4676 AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src;
4677 #define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
4678 short int surfxml_bypassASroute_src_isset;
4679 AT_surfxml_prop_value AX_surfxml_prop_value;
4680 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
4681 short int surfxml_prop_value_isset;
4682 AT_surfxml_mstorage_typeId AX_surfxml_mstorage_typeId;
4683 #define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId)
4684 short int surfxml_mstorage_typeId_isset;
4685 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
4686 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
4687 short int surfxml_ASroute_dst_isset;
4688 AT_surfxml_link_state___file AX_surfxml_link_state___file;
4689 #define A_surfxml_link_state___file (surfxml_bufferstack + AX_surfxml_link_state___file)
4690 short int surfxml_link_state___file_isset;
4691 AT_surfxml_random_radical AX_surfxml_random_radical;
4692 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
4693 short int surfxml_random_radical_isset;
4694 AT_surfxml_bypassASroute_gw___src AX_surfxml_bypassASroute_gw___src;
4695 #define A_surfxml_bypassASroute_gw___src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___src)
4696 short int surfxml_bypassASroute_gw___src_isset;
4697 AT_surfxml_trace___connect_trace AX_surfxml_trace___connect_trace;
4698 #define A_surfxml_trace___connect_trace (surfxml_bufferstack + AX_surfxml_trace___connect_trace)
4699 short int surfxml_trace___connect_trace_isset;
4700 AT_surfxml_mount_id AX_surfxml_mount_id;
4701 #define A_surfxml_mount_id (surfxml_bufferstack + AX_surfxml_mount_id)
4702 short int surfxml_mount_id_isset;
4703 AT_surfxml_cluster_power AX_surfxml_cluster_power;
4704 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
4705 short int surfxml_cluster_power_isset;
4706 AT_surfxml_process_function AX_surfxml_process_function;
4707 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
4708 short int surfxml_process_function_isset;
4709 AT_surfxml_peer_id AX_surfxml_peer_id;
4710 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
4711 short int surfxml_peer_id_isset;
4712 AT_surfxml_cluster_router___id AX_surfxml_cluster_router___id;
4713 #define A_surfxml_cluster_router___id (surfxml_bufferstack + AX_surfxml_cluster_router___id)
4714 short int surfxml_cluster_router___id_isset;
4715 AT_surfxml_cluster_loopback___lat AX_surfxml_cluster_loopback___lat;
4716 #define A_surfxml_cluster_loopback___lat (surfxml_bufferstack + AX_surfxml_cluster_loopback___lat)
4717 short int surfxml_cluster_loopback___lat_isset;
4718 AT_surfxml_cabinet_radical AX_surfxml_cabinet_radical;
4719 #define A_surfxml_cabinet_radical (surfxml_bufferstack + AX_surfxml_cabinet_radical)
4720 short int surfxml_cabinet_radical_isset;
4721 AT_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy;
4722 #define A_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy
4723 short int surfxml_cluster_sharing___policy_isset;
4724 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
4725 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
4726 short int surfxml_bypassRoute_dst_isset;
4727 AT_surfxml_cabinet_power AX_surfxml_cabinet_power;
4728 #define A_surfxml_cabinet_power (surfxml_bufferstack + AX_surfxml_cabinet_power)
4729 short int surfxml_cabinet_power_isset;
4730 AT_surfxml_host_core AX_surfxml_host_core;
4731 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
4732 short int surfxml_host_core_isset;
4733 AT_surfxml_storage___type_model AX_surfxml_storage___type_model;
4734 #define A_surfxml_storage___type_model (surfxml_bufferstack + AX_surfxml_storage___type_model)
4735 short int surfxml_storage___type_model_isset;
4736 AT_surfxml_host_availability AX_surfxml_host_availability;
4737 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
4738 short int surfxml_host_availability_isset;
4739 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
4740 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
4741 short int surfxml_bypassRoute_src_isset;
4742 AT_surfxml_backbone_latency AX_surfxml_backbone_latency;
4743 #define A_surfxml_backbone_latency (surfxml_bufferstack + AX_surfxml_backbone_latency)
4744 short int surfxml_backbone_latency_isset;
4745 AT_surfxml_route_src AX_surfxml_route_src;
4746 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
4747 short int surfxml_route_src_isset;
4748 AT_surfxml_storage_id AX_surfxml_storage_id;
4749 #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
4750 short int surfxml_storage_id_isset;
4751 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
4752 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
4753 short int surfxml_host_coordinates_isset;
4754 AT_surfxml_trace_id AX_surfxml_trace_id;
4755 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
4756 short int surfxml_trace_id_isset;
4757 AT_surfxml_peer_power AX_surfxml_peer_power;
4758 #define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power)
4759 short int surfxml_peer_power_isset;
4760 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
4761 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
4762 short int surfxml_cluster_radical_isset;
4763 AT_surfxml_config_id AX_surfxml_config_id;
4764 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
4765 short int surfxml_config_id_isset;
4766 AT_surfxml_bypassASroute_gw___dst AX_surfxml_bypassASroute_gw___dst;
4767 #define A_surfxml_bypassASroute_gw___dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___dst)
4768 short int surfxml_bypassASroute_gw___dst_isset;
4769 AT_surfxml_host___link_down AX_surfxml_host___link_down;
4770 #define A_surfxml_host___link_down (surfxml_bufferstack + AX_surfxml_host___link_down)
4771 short int surfxml_host___link_down_isset;
4772 AT_surfxml_include_file AX_surfxml_include_file;
4773 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
4774 short int surfxml_include_file_isset;
4775 AT_surfxml_random_std___deviation AX_surfxml_random_std___deviation;
4776 #define A_surfxml_random_std___deviation (surfxml_bufferstack + AX_surfxml_random_std___deviation)
4777 short int surfxml_random_std___deviation_isset;
4778 AT_surfxml_cluster_core AX_surfxml_cluster_core;
4779 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
4780 short int surfxml_cluster_core_isset;
4781 AT_surfxml_cluster_limiter___link AX_surfxml_cluster_limiter___link;
4782 #define A_surfxml_cluster_limiter___link (surfxml_bufferstack + AX_surfxml_cluster_limiter___link)
4783 short int surfxml_cluster_limiter___link_isset;
4784 AT_surfxml_host_state___file AX_surfxml_host_state___file;
4785 #define A_surfxml_host_state___file (surfxml_bufferstack + AX_surfxml_host_state___file)
4786 short int surfxml_host_state___file_isset;
4787 AT_surfxml_route_dst AX_surfxml_route_dst;
4788 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
4789 short int surfxml_route_dst_isset;
4790 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
4791 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
4792 short int surfxml_cluster_bw_isset;
4793 AT_surfxml_platform_version AX_surfxml_platform_version;
4794 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
4795 short int surfxml_platform_version_isset;
4796
4797 /* XML state. */
4798 #ifdef FLEX_DEBUG
4799 # define ENTER(state)   debug_enter(state,#state)
4800 # define LEAVE          debug_leave()
4801 # define SET(state)     debug_set(state,#state)
4802   static void debug_enter(int, const char*);
4803   static void debug_leave(void);
4804   static void debug_set(int, const char*);
4805 #else
4806 # define ENTER(state)   (yy_push_state(state))
4807 # define LEAVE          (yy_pop_state())
4808 # define SET(state)     BEGIN(state)
4809 #endif
4810
4811 /* Generic actions. */
4812 #define SKIP    /*skip*/
4813 #define SUCCEED        CLEANUP; return 0
4814
4815 #define FAIL    return fail
4816 static int fail(const char*, ...);
4817
4818 enum {flexml_max_err_msg_size = 512};
4819 static char flexml_err_msg[flexml_max_err_msg_size];
4820 const char * surfxml_parse_err_msg()
4821 {
4822     return flexml_err_msg;
4823 }
4824 static void reset_surfxml_parse_err_msg()
4825 {
4826     flexml_err_msg[0] = '\0';
4827 }
4828
4829 /* Cleanup */
4830 static void cleanup(void);
4831 #define CLEANUP  cleanup()
4832
4833 /* Text buffer stack handling. */
4834 char *surfxml_bufferstack = NULL;
4835 static int blimit = FLEXML_BUFFERSTACKSIZE;
4836 static int bnext = 1;
4837
4838 static int *indexstack = NULL;
4839 static int ilimit = FLEXML_INDEXSTACKSIZE;
4840 static int inext = 1;
4841
4842 #define BUFFERSET(P)  (P = bnext)
4843 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
4844 #define BUFFERDONE    (BUFFERPUTC('\0'))
4845
4846 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
4847
4848 /* after this is called, there are at least 2 slots left in the stack */
4849 static int ck_blimit()
4850 {
4851      if (bnext >= blimit) {
4852          blimit += FLEXML_BUFFERSTACKSIZE + 2;
4853          {
4854              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
4855              assert(temp);
4856              surfxml_bufferstack = temp;
4857          }
4858      }
4859      return 0;
4860 }
4861
4862 /* after this is called, there are at least 2 slots left in the stack */
4863 static int ck_ilimit()
4864 {
4865      if (inext >= ilimit) {
4866          ilimit += FLEXML_INDEXSTACKSIZE + 2;
4867          {
4868              int *temp = (int *) realloc(indexstack, ilimit);
4869              assert(temp);
4870              indexstack = temp;
4871          }
4872      }
4873      return 0;
4874 }
4875
4876 #ifdef FLEXML_NEED_BUFFERLIT
4877 static void surfxml_bufferliteral(char c, int* pp, const char* text)
4878 {
4879    BUFFERSET(*pp);
4880    if (c) {
4881       const char *s = strchr(text, c), *e = strrchr(text, c);
4882       assert(s && e && s <= e);
4883       ++s;
4884       while (s < e) {
4885          if (isspace(*s)) {
4886             BUFFERPUTC(' ');
4887             do ++s; while (s < e && isspace(*s));
4888          } else
4889            BUFFERPUTC(*s++);
4890       }
4891    } else {
4892       const char *s = text;
4893       while (*s)
4894         BUFFERPUTC(*s++);
4895    }
4896    BUFFERDONE;
4897 }
4898 #endif
4899
4900 static void pushbuffer(int p)
4901 {
4902     ck_ilimit();
4903     indexstack[inext++] = p;
4904     indexstack[inext++] = bnext;    
4905 }
4906
4907 static int popbuffer(void)
4908 {
4909     assert(inext >= 2);
4910     bnext = indexstack[--inext];
4911     return indexstack[--inext];
4912 }
4913
4914 /* General internal entities are `unput' back onto the input stream... */
4915 #define ENTITYTEXT(T) \
4916   { char *s = (T), *e = s+strlen(s);\
4917     while (--e >= s) { unput(*e); }}
4918
4919 /* Flex standard options. */
4920 #define YY_NO_INPUT 1
4921 /* Flex user-requested options. */
4922 /* XML character classes (currently restricted to ASCII). */
4923 /* "Common syntactic structures." */
4924 /* "Names and Tokens." */
4925 /* Miscellaneous. */
4926 /* Parser states (flex `exclusive start conditions'):
4927  *
4928  * PROLOG       the XML prolog of the document before <?xml...>
4929  * DOCTYPE      the XML prolog of the document after <?xml...>
4930  * EPILOG       after the root element
4931  * INCOMMENT    inside an XML comment <!--....-->
4932  * INPI         inside an XML PI <?...?>
4933  * VALUE1       inside a '...'-delimited literal
4934  * VALUE2       inside a "..."-delimited literal
4935  * CDATA        inside a <![CDATA[...] ]> section.
4936  * ROOT_<tag>   expect root element <tag>
4937  * AL_<tag>     inside the attribute list for <tag>
4938  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
4939  * IMPOSSIBLE   dummy to permit disabling rules; must be last
4940  */
4941
4942 /* State names. */
4943 const char* *surfxml_statenames=NULL;
4944
4945 #define INITIAL 0
4946 #define PROLOG 1
4947 #define DOCTYPE 2
4948 #define EPILOG 3
4949 #define INCOMMENT 4
4950 #define INPI 5
4951 #define VALUE1 6
4952 #define VALUE2 7
4953 #define CDATA 8
4954 #define ROOT_surfxml_platform 9
4955 #define AL_surfxml_platform 10
4956 #define S_surfxml_platform 11
4957 #define S_surfxml_platform_1 12
4958 #define S_surfxml_platform_2 13
4959 #define S_surfxml_platform_3 14
4960 #define S_surfxml_platform_4 15
4961 #define S_surfxml_platform_5 16
4962 #define S_surfxml_platform_6 17
4963 #define S_surfxml_platform_7 18
4964 #define S_surfxml_platform_8 19
4965 #define E_surfxml_platform 20
4966 #define AL_surfxml_include 21
4967 #define S_surfxml_include 22
4968 #define S_surfxml_include_1 23
4969 #define S_surfxml_include_2 24
4970 #define E_surfxml_include 25
4971 #define AL_surfxml_trace 26
4972 #define IN_trace 27
4973 #define AL_surfxml_random 28
4974 #define E_surfxml_random 29
4975 #define AL_surfxml_trace___connect 30
4976 #define E_surfxml_trace___connect 31
4977 #define AL_surfxml_AS 32
4978 #define S_surfxml_AS 33
4979 #define S_surfxml_AS_1 34
4980 #define S_surfxml_AS_2 35
4981 #define S_surfxml_AS_3 36
4982 #define S_surfxml_AS_4 37
4983 #define S_surfxml_AS_5 38
4984 #define S_surfxml_AS_6 39
4985 #define S_surfxml_AS_7 40
4986 #define S_surfxml_AS_8 41
4987 #define S_surfxml_AS_9 42
4988 #define S_surfxml_AS_10 43
4989 #define S_surfxml_AS_11 44
4990 #define S_surfxml_AS_12 45
4991 #define S_surfxml_AS_13 46
4992 #define S_surfxml_AS_14 47
4993 #define S_surfxml_AS_15 48
4994 #define S_surfxml_AS_16 49
4995 #define E_surfxml_AS 50
4996 #define AL_surfxml_storage___type 51
4997 #define S_surfxml_storage___type 52
4998 #define S_surfxml_storage___type_1 53
4999 #define S_surfxml_storage___type_2 54
5000 #define E_surfxml_storage___type 55
5001 #define AL_surfxml_storage 56
5002 #define S_surfxml_storage 57
5003 #define S_surfxml_storage_1 58
5004 #define S_surfxml_storage_2 59
5005 #define E_surfxml_storage 60
5006 #define AL_surfxml_mount 61
5007 #define E_surfxml_mount 62
5008 #define AL_surfxml_mstorage 63
5009 #define E_surfxml_mstorage 64
5010 #define AL_surfxml_host 65
5011 #define S_surfxml_host 66
5012 #define S_surfxml_host_1 67
5013 #define S_surfxml_host_2 68
5014 #define E_surfxml_host 69
5015 #define AL_surfxml_gpu 70
5016 #define E_surfxml_gpu 71
5017 #define AL_surfxml_host___link 72
5018 #define E_surfxml_host___link 73
5019 #define AL_surfxml_cluster 74
5020 #define E_surfxml_cluster 75
5021 #define AL_surfxml_cabinet 76
5022 #define E_surfxml_cabinet 77
5023 #define AL_surfxml_peer 78
5024 #define E_surfxml_peer 79
5025 #define AL_surfxml_router 80
5026 #define E_surfxml_router 81
5027 #define AL_surfxml_backbone 82
5028 #define E_surfxml_backbone 83
5029 #define AL_surfxml_link 84
5030 #define S_surfxml_link 85
5031 #define S_surfxml_link_1 86
5032 #define S_surfxml_link_2 87
5033 #define E_surfxml_link 88
5034 #define AL_surfxml_route 89
5035 #define S_surfxml_route 90
5036 #define S_surfxml_route_1 91
5037 #define S_surfxml_route_2 92
5038 #define E_surfxml_route 93
5039 #define AL_surfxml_ASroute 94
5040 #define S_surfxml_ASroute 95
5041 #define S_surfxml_ASroute_1 96
5042 #define S_surfxml_ASroute_2 97
5043 #define E_surfxml_ASroute 98
5044 #define AL_surfxml_link___ctn 99
5045 #define E_surfxml_link___ctn 100
5046 #define AL_surfxml_bypassRoute 101
5047 #define S_surfxml_bypassRoute 102
5048 #define S_surfxml_bypassRoute_1 103
5049 #define S_surfxml_bypassRoute_2 104
5050 #define E_surfxml_bypassRoute 105
5051 #define AL_surfxml_bypassASroute 106
5052 #define S_surfxml_bypassASroute 107
5053 #define S_surfxml_bypassASroute_1 108
5054 #define S_surfxml_bypassASroute_2 109
5055 #define E_surfxml_bypassASroute 110
5056 #define AL_surfxml_process 111
5057 #define S_surfxml_process 112
5058 #define S_surfxml_process_1 113
5059 #define S_surfxml_process_2 114
5060 #define E_surfxml_process 115
5061 #define AL_surfxml_argument 116
5062 #define E_surfxml_argument 117
5063 #define AL_surfxml_config 118
5064 #define S_surfxml_config 119
5065 #define S_surfxml_config_1 120
5066 #define S_surfxml_config_2 121
5067 #define E_surfxml_config 122
5068 #define AL_surfxml_prop 123
5069 #define E_surfxml_prop 124
5070 #define IMPOSSIBLE 125
5071
5072 #ifndef YY_NO_UNISTD_H
5073 /* Special case for "unistd.h", since it is non-ANSI. We include it way
5074  * down here because we want the user's section 1 to have been scanned first.
5075  * The user has a chance to override it with an option.
5076  */
5077 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
5078 #  ifndef __STRICT_ANSI__
5079 #    include <io.h>
5080 #    include <process.h>
5081 #  endif
5082 #else
5083 #  include <unistd.h>
5084 #endif
5085 #endif
5086
5087 #ifndef YY_EXTRA_TYPE
5088 #define YY_EXTRA_TYPE void *
5089 #endif
5090
5091 static int yy_init_globals (void );
5092
5093 /* Accessor methods to globals.
5094    These are made visible to non-reentrant scanners for convenience. */
5095
5096 int surf_parse_lex_destroy (void );
5097
5098 int surf_parse_get_debug (void );
5099
5100 void surf_parse_set_debug (int debug_flag  );
5101
5102 YY_EXTRA_TYPE surf_parse_get_extra (void );
5103
5104 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined  );
5105
5106 FILE *surf_parse_get_in (void );
5107
5108 void surf_parse_set_in  (FILE * in_str  );
5109
5110 FILE *surf_parse_get_out (void );
5111
5112 void surf_parse_set_out  (FILE * out_str  );
5113
5114 int surf_parse_get_leng (void );
5115
5116 char *surf_parse_get_text (void );
5117
5118 int surf_parse_get_lineno (void );
5119
5120 void surf_parse_set_lineno (int line_number  );
5121
5122 /* Macros after this point can all be overridden by user definitions in
5123  * section 1.
5124  */
5125
5126 #ifndef YY_SKIP_YYWRAP
5127 #ifdef __cplusplus
5128 extern "C" int surf_parse_wrap (void );
5129 #else
5130 extern int surf_parse_wrap (void );
5131 #endif
5132 #endif
5133
5134 #ifndef yytext_ptr
5135 static void yy_flex_strncpy (char *,yyconst char *,int );
5136 #endif
5137
5138 #ifdef YY_NEED_STRLEN
5139 static int yy_flex_strlen (yyconst char * );
5140 #endif
5141
5142 #ifndef YY_NO_INPUT
5143
5144 #ifdef __cplusplus
5145 static int yyinput (void );
5146 #else
5147 static int input (void );
5148 #endif
5149
5150 #endif
5151
5152         static int yy_start_stack_ptr = 0;
5153         static int yy_start_stack_depth = 0;
5154         static int *yy_start_stack = NULL;
5155     
5156     static void yy_push_state (int new_state );
5157     
5158     static void yy_pop_state (void );
5159     
5160 /* Amount of stuff to slurp up with each read. */
5161 #ifndef YY_READ_BUF_SIZE
5162 #ifdef __ia64__
5163 /* On IA-64, the buffer size is 16k, not 8k */
5164 #define YY_READ_BUF_SIZE 16384
5165 #else
5166 #define YY_READ_BUF_SIZE 8192
5167 #endif /* __ia64__ */
5168 #endif
5169
5170 /* Copy whatever the last rule matched to the standard output. */
5171 #ifndef ECHO
5172 /* This used to be an fputs(), but since the string might contain NUL's,
5173  * we now use fwrite().
5174  */
5175 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
5176 #endif
5177
5178 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
5179  * is returned in "result".
5180  */
5181 #ifndef YY_INPUT
5182 #define YY_INPUT(buf,result,max_size) \
5183         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
5184                 { \
5185                 int c = '*'; \
5186                 size_t n; \
5187                 for ( n = 0; n < max_size && \
5188                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
5189                         buf[n] = (char) c; \
5190                 if ( c == '\n' ) \
5191                         buf[n++] = (char) c; \
5192                 if ( c == EOF && ferror( surf_parse_in ) ) \
5193                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
5194                 result = n; \
5195                 } \
5196         else \
5197                 { \
5198                 errno=0; \
5199                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
5200                         { \
5201                         if( errno != EINTR) \
5202                                 { \
5203                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
5204                                 break; \
5205                                 } \
5206                         errno=0; \
5207                         clearerr(surf_parse_in); \
5208                         } \
5209                 }\
5210 \
5211
5212 #endif
5213
5214 /* No semi-colon after return; correct usage is to write "yyterminate();" -
5215  * we don't want an extra ';' after the "return" because that will cause
5216  * some compilers to complain about unreachable statements.
5217  */
5218 #ifndef yyterminate
5219 #define yyterminate() return YY_NULL
5220 #endif
5221
5222 /* Number of entries by which start-condition stack grows. */
5223 #ifndef YY_START_STACK_INCR
5224 #define YY_START_STACK_INCR 25
5225 #endif
5226
5227 /* Report a fatal error. */
5228 #ifndef YY_FATAL_ERROR
5229 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
5230 #endif
5231
5232 /* end tables serialization structures and prototypes */
5233
5234 /* Default declaration of generated scanner - a define so the user can
5235  * easily add parameters.
5236  */
5237 #ifndef YY_DECL
5238 #define YY_DECL_IS_OURS 1
5239
5240 extern int surf_parse_lex (void);
5241
5242 #define YY_DECL int surf_parse_lex (void)
5243 #endif /* !YY_DECL */
5244
5245 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
5246  * have been set up.
5247  */
5248 #ifndef YY_USER_ACTION
5249 #define YY_USER_ACTION
5250 #endif
5251
5252 /* Code executed at the end of each rule. */
5253 #ifndef YY_BREAK
5254 #define YY_BREAK break;
5255 #endif
5256
5257 #define YY_RULE_SETUP \
5258         YY_USER_ACTION
5259
5260 /** The main scanner function which does all the work.
5261  */
5262 YY_DECL
5263 {
5264         register yy_state_type yy_current_state;
5265         register char *yy_cp, *yy_bp;
5266         register int yy_act;
5267     
5268  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
5269  SET(PROLOG);
5270  reset_surfxml_parse_err_msg();
5271  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
5272  assert(surfxml_bufferstack);
5273  #ifdef FLEX_DEBUG
5274  {
5275      int i;
5276      for (i = 0; i < blimit; i++) {
5277          surfxml_bufferstack[i] = '\377';
5278      }
5279  }
5280  #endif
5281  surfxml_bufferstack[0] = '\0';
5282  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
5283  assert(indexstack);
5284  indexstack[0] = 0;
5285
5286   /* FleXML_init */
5287   bnext = inext = 1;
5288   surfxml_bufferliteral('\0', &bnext, "0.0");
5289   surfxml_bufferliteral('\0', &bnext, "2147483647");
5290   surfxml_bufferliteral('\0', &bnext, "1");
5291   surfxml_bufferliteral('\0', &bnext, "1.0");
5292   surfxml_bufferliteral('\0', &bnext, "1");
5293   surfxml_bufferliteral('\0', &bnext, "0.0");
5294   surfxml_bufferliteral('\0', &bnext, "-1.0");
5295   surfxml_bufferliteral('\0', &bnext, "-1.0");
5296   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
5297   surfxml_statenames[PROLOG] = NULL;
5298   surfxml_statenames[DOCTYPE] = NULL;
5299   surfxml_statenames[EPILOG] = NULL;
5300   surfxml_statenames[INCOMMENT] = NULL;
5301   surfxml_statenames[INPI] = NULL;
5302   surfxml_statenames[VALUE1] = NULL;
5303   surfxml_statenames[VALUE2] = NULL;
5304   surfxml_statenames[CDATA] = NULL;
5305   surfxml_statenames[ROOT_surfxml_platform] = NULL;
5306   surfxml_statenames[AL_surfxml_platform] = NULL;
5307   surfxml_statenames[S_surfxml_platform] = "platform";
5308   surfxml_statenames[S_surfxml_platform_1] = "platform";
5309   surfxml_statenames[S_surfxml_platform_2] = "platform";
5310   surfxml_statenames[S_surfxml_platform_3] = "platform";
5311   surfxml_statenames[S_surfxml_platform_4] = "platform";
5312   surfxml_statenames[S_surfxml_platform_5] = "platform";
5313   surfxml_statenames[S_surfxml_platform_6] = "platform";
5314   surfxml_statenames[S_surfxml_platform_7] = "platform";
5315   surfxml_statenames[S_surfxml_platform_8] = "platform";
5316   surfxml_statenames[E_surfxml_platform] = "platform";
5317   surfxml_statenames[AL_surfxml_include] = NULL;
5318   surfxml_statenames[S_surfxml_include] = "include";
5319   surfxml_statenames[S_surfxml_include_1] = "include";
5320   surfxml_statenames[S_surfxml_include_2] = "include";
5321   surfxml_statenames[E_surfxml_include] = "include";
5322   surfxml_statenames[AL_surfxml_trace] = NULL;
5323   surfxml_statenames[IN_trace] = "trace";
5324   surfxml_statenames[AL_surfxml_random] = NULL;
5325   surfxml_statenames[E_surfxml_random] = "random";
5326   surfxml_statenames[AL_surfxml_trace___connect] = NULL;
5327   surfxml_statenames[E_surfxml_trace___connect] = "trace_connect";
5328   surfxml_statenames[AL_surfxml_AS] = NULL;
5329   surfxml_statenames[S_surfxml_AS] = "AS";
5330   surfxml_statenames[S_surfxml_AS_1] = "AS";
5331   surfxml_statenames[S_surfxml_AS_2] = "AS";
5332   surfxml_statenames[S_surfxml_AS_3] = "AS";
5333   surfxml_statenames[S_surfxml_AS_4] = "AS";
5334   surfxml_statenames[S_surfxml_AS_5] = "AS";
5335   surfxml_statenames[S_surfxml_AS_6] = "AS";
5336   surfxml_statenames[S_surfxml_AS_7] = "AS";
5337   surfxml_statenames[S_surfxml_AS_8] = "AS";
5338   surfxml_statenames[S_surfxml_AS_9] = "AS";
5339   surfxml_statenames[S_surfxml_AS_10] = "AS";
5340   surfxml_statenames[S_surfxml_AS_11] = "AS";
5341   surfxml_statenames[S_surfxml_AS_12] = "AS";
5342   surfxml_statenames[S_surfxml_AS_13] = "AS";
5343   surfxml_statenames[S_surfxml_AS_14] = "AS";
5344   surfxml_statenames[S_surfxml_AS_15] = "AS";
5345   surfxml_statenames[S_surfxml_AS_16] = "AS";
5346   surfxml_statenames[E_surfxml_AS] = "AS";
5347   surfxml_statenames[AL_surfxml_storage___type] = NULL;
5348   surfxml_statenames[S_surfxml_storage___type] = "storage_type";
5349   surfxml_statenames[S_surfxml_storage___type_1] = "storage_type";
5350   surfxml_statenames[S_surfxml_storage___type_2] = "storage_type";
5351   surfxml_statenames[E_surfxml_storage___type] = "storage_type";
5352   surfxml_statenames[AL_surfxml_storage] = NULL;
5353   surfxml_statenames[S_surfxml_storage] = "storage";
5354   surfxml_statenames[S_surfxml_storage_1] = "storage";
5355   surfxml_statenames[S_surfxml_storage_2] = "storage";
5356   surfxml_statenames[E_surfxml_storage] = "storage";
5357   surfxml_statenames[AL_surfxml_mount] = NULL;
5358   surfxml_statenames[E_surfxml_mount] = "mount";
5359   surfxml_statenames[AL_surfxml_mstorage] = NULL;
5360   surfxml_statenames[E_surfxml_mstorage] = "mstorage";
5361   surfxml_statenames[AL_surfxml_host] = NULL;
5362   surfxml_statenames[S_surfxml_host] = "host";
5363   surfxml_statenames[S_surfxml_host_1] = "host";
5364   surfxml_statenames[S_surfxml_host_2] = "host";
5365   surfxml_statenames[E_surfxml_host] = "host";
5366   surfxml_statenames[AL_surfxml_gpu] = NULL;
5367   surfxml_statenames[E_surfxml_gpu] = "gpu";
5368   surfxml_statenames[AL_surfxml_host___link] = NULL;
5369   surfxml_statenames[E_surfxml_host___link] = "host_link";
5370   surfxml_statenames[AL_surfxml_cluster] = NULL;
5371   surfxml_statenames[E_surfxml_cluster] = "cluster";
5372   surfxml_statenames[AL_surfxml_cabinet] = NULL;
5373   surfxml_statenames[E_surfxml_cabinet] = "cabinet";
5374   surfxml_statenames[AL_surfxml_peer] = NULL;
5375   surfxml_statenames[E_surfxml_peer] = "peer";
5376   surfxml_statenames[AL_surfxml_router] = NULL;
5377   surfxml_statenames[E_surfxml_router] = "router";
5378   surfxml_statenames[AL_surfxml_backbone] = NULL;
5379   surfxml_statenames[E_surfxml_backbone] = "backbone";
5380   surfxml_statenames[AL_surfxml_link] = NULL;
5381   surfxml_statenames[S_surfxml_link] = "link";
5382   surfxml_statenames[S_surfxml_link_1] = "link";
5383   surfxml_statenames[S_surfxml_link_2] = "link";
5384   surfxml_statenames[E_surfxml_link] = "link";
5385   surfxml_statenames[AL_surfxml_route] = NULL;
5386   surfxml_statenames[S_surfxml_route] = "route";
5387   surfxml_statenames[S_surfxml_route_1] = "route";
5388   surfxml_statenames[S_surfxml_route_2] = "route";
5389   surfxml_statenames[E_surfxml_route] = "route";
5390   surfxml_statenames[AL_surfxml_ASroute] = NULL;
5391   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
5392   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
5393   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
5394   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
5395   surfxml_statenames[AL_surfxml_link___ctn] = NULL;
5396   surfxml_statenames[E_surfxml_link___ctn] = "link_ctn";
5397   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
5398   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
5399   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
5400   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
5401   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
5402   surfxml_statenames[AL_surfxml_bypassASroute] = NULL;
5403   surfxml_statenames[S_surfxml_bypassASroute] = "bypassASroute";
5404   surfxml_statenames[S_surfxml_bypassASroute_1] = "bypassASroute";
5405   surfxml_statenames[S_surfxml_bypassASroute_2] = "bypassASroute";
5406   surfxml_statenames[E_surfxml_bypassASroute] = "bypassASroute";
5407   surfxml_statenames[AL_surfxml_process] = NULL;
5408   surfxml_statenames[S_surfxml_process] = "process";
5409   surfxml_statenames[S_surfxml_process_1] = "process";
5410   surfxml_statenames[S_surfxml_process_2] = "process";
5411   surfxml_statenames[E_surfxml_process] = "process";
5412   surfxml_statenames[AL_surfxml_argument] = NULL;
5413   surfxml_statenames[E_surfxml_argument] = "argument";
5414   surfxml_statenames[AL_surfxml_config] = NULL;
5415   surfxml_statenames[S_surfxml_config] = "config";
5416   surfxml_statenames[S_surfxml_config_1] = "config";
5417   surfxml_statenames[S_surfxml_config_2] = "config";
5418   surfxml_statenames[E_surfxml_config] = "config";
5419   surfxml_statenames[AL_surfxml_prop] = NULL;
5420   surfxml_statenames[E_surfxml_prop] = "prop";
5421   }
5422
5423  /* COMMENTS and PIs: handled uniformly for efficiency. */
5424
5425         if ( !(yy_init) )
5426                 {
5427                 (yy_init) = 1;
5428
5429 #ifdef YY_USER_INIT
5430                 YY_USER_INIT;
5431 #endif
5432
5433                 if ( ! (yy_start) )
5434                         (yy_start) = 1; /* first start state */
5435
5436                 if ( ! surf_parse_in )
5437                         surf_parse_in = stdin;
5438
5439                 if ( ! surf_parse_out )
5440                         surf_parse_out = stdout;
5441
5442                 if ( ! YY_CURRENT_BUFFER ) {
5443                         surf_parse_ensure_buffer_stack ();
5444                         YY_CURRENT_BUFFER_LVALUE =
5445                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
5446                 }
5447
5448                 surf_parse__load_buffer_state( );
5449                 }
5450
5451         while ( 1 )             /* loops until end-of-file is reached */
5452                 {
5453                 yy_cp = (yy_c_buf_p);
5454
5455                 /* Support of surf_parse_text. */
5456                 *yy_cp = (yy_hold_char);
5457
5458                 /* yy_bp points to the position in yy_ch_buf of the start of
5459                  * the current run.
5460                  */
5461                 yy_bp = yy_cp;
5462
5463                 yy_current_state = (yy_start);
5464 yy_match:
5465                 do
5466                         {
5467                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
5468                         if ( yy_accept[yy_current_state] )
5469                                 {
5470                                 (yy_last_accepting_state) = yy_current_state;
5471                                 (yy_last_accepting_cpos) = yy_cp;
5472                                 }
5473                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5474                                 {
5475                                 yy_current_state = (int) yy_def[yy_current_state];
5476                                 if ( yy_current_state >= 3279 )
5477                                         yy_c = yy_meta[(unsigned int) yy_c];
5478                                 }
5479                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
5480                         ++yy_cp;
5481                         }
5482                 while ( yy_base[yy_current_state] != 12040 );
5483
5484 yy_find_action:
5485                 yy_act = yy_accept[yy_current_state];
5486                 if ( yy_act == 0 )
5487                         { /* have to back up */
5488                         yy_cp = (yy_last_accepting_cpos);
5489                         yy_current_state = (yy_last_accepting_state);
5490                         yy_act = yy_accept[yy_current_state];
5491                         }
5492
5493                 YY_DO_BEFORE_ACTION;
5494
5495                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
5496                         {
5497                         int yyl;
5498                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
5499                                 if ( surf_parse_text[yyl] == '\n' )
5500                                            
5501     surf_parse_lineno++;
5502 ;
5503                         }
5504
5505 do_action:      /* This label is used only to access EOF actions. */
5506
5507                 switch ( yy_act )
5508         { /* beginning of action switch */
5509                         case 0: /* must back up */
5510                         /* undo the effects of YY_DO_BEFORE_ACTION */
5511                         *yy_cp = (yy_hold_char);
5512                         yy_cp = (yy_last_accepting_cpos);
5513                         yy_current_state = (yy_last_accepting_state);
5514                         goto yy_find_action;
5515
5516 case 1:
5517 YY_RULE_SETUP
5518 ENTER(INCOMMENT);
5519         YY_BREAK
5520 case 2:
5521 YY_RULE_SETUP
5522 ENTER(INPI);
5523         YY_BREAK
5524
5525 case 3:
5526 YY_RULE_SETUP
5527 LEAVE;
5528         YY_BREAK
5529 case 4:
5530 case 5:
5531 case 6:
5532 /* rule 6 can match eol */
5533 YY_RULE_SETUP
5534 SKIP;
5535         YY_BREAK
5536 case YY_STATE_EOF(INCOMMENT):
5537 FAIL("EOF in comment.");
5538         YY_BREAK
5539
5540 case 7:
5541 YY_RULE_SETUP
5542 LEAVE;
5543         YY_BREAK
5544 case 8:
5545 case 9:
5546 /* rule 9 can match eol */
5547 YY_RULE_SETUP
5548 SKIP;
5549         YY_BREAK
5550 case YY_STATE_EOF(INPI):
5551 FAIL("EOF in PI (processing instruction).");
5552         YY_BREAK
5553
5554 /* SPACES: skipped uniformly */
5555 case 10:
5556 /* rule 10 can match eol */
5557 YY_RULE_SETUP
5558 SKIP;
5559         YY_BREAK
5560 /* PROLOG: determine root element and process it. */
5561
5562 case 11:
5563 /* rule 11 can match eol */
5564 YY_RULE_SETUP
5565 SET(DOCTYPE); 
5566         YY_BREAK
5567 case 12:
5568 /* rule 12 can match eol */
5569 YY_RULE_SETUP
5570 FAIL("Bad declaration %s.",surf_parse_text);
5571         YY_BREAK
5572
5573 case 13:
5574 /* rule 13 can match eol */
5575 YY_RULE_SETUP
5576 SET(ROOT_surfxml_platform);
5577         YY_BREAK
5578 case 14:
5579 /* rule 14 can match eol */
5580 YY_RULE_SETUP
5581 FAIL("Bad declaration %s.",surf_parse_text);
5582         YY_BREAK
5583 case 15:
5584 YY_RULE_SETUP
5585 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
5586         YY_BREAK
5587 case YY_STATE_EOF(PROLOG):
5588 case YY_STATE_EOF(DOCTYPE):
5589 FAIL("EOF in prolog.");
5590         YY_BREAK
5591
5592 /* RULES DERIVED FROM DTD. */
5593 /* <!-- Small DTD for SURF based tools. -->  */
5594 case 16:
5595 /* rule 16 can match eol */
5596 YY_RULE_SETUP
5597 FAIL("Starting tag <platform> is not allowed here.");
5598         YY_BREAK
5599 case 17:
5600 /* rule 17 can match eol */
5601 YY_RULE_SETUP
5602 {
5603   AX_surfxml_platform_version = 1;
5604   surfxml_platform_version_isset = 0;
5605   ENTER(AL_surfxml_platform); pushbuffer(0);
5606   }
5607         YY_BREAK
5608
5609 case 18:
5610 /* rule 18 can match eol */
5611 YY_RULE_SETUP
5612 if (surfxml_platform_version_isset != 0) {FAIL("Multiple definition of attribute version in <surfxml_platform>");} surfxml_platform_version_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_platform_version);
5613         YY_BREAK
5614 case 19:
5615 /* rule 19 can match eol */
5616 YY_RULE_SETUP
5617 if (surfxml_platform_version_isset != 0) {FAIL("Multiple definition of attribute version in <surfxml_platform>");}  surfxml_platform_version_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_platform_version);
5618         YY_BREAK
5619 case 20:
5620 YY_RULE_SETUP
5621 {
5622   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
5623  }
5624         YY_BREAK
5625 case 21:
5626 YY_RULE_SETUP
5627 {
5628   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
5629   switch (YY_START) {
5630    case ROOT_surfxml_platform: SET(EPILOG); break;
5631   }
5632  }
5633         YY_BREAK
5634 case 22:
5635 YY_RULE_SETUP
5636 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
5637         YY_BREAK
5638 case 23:
5639 YY_RULE_SETUP
5640 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
5641         YY_BREAK
5642 case YY_STATE_EOF(AL_surfxml_platform):
5643 FAIL("EOF in attribute list of `platform' element.");
5644         YY_BREAK
5645
5646 case 24:
5647 /* rule 24 can match eol */
5648 YY_RULE_SETUP
5649 {
5650   LEAVE;
5651   ETag_surfxml_platform();
5652   popbuffer(); /* attribute */
5653   switch (YY_START) {
5654    case ROOT_surfxml_platform: SET(EPILOG); break;
5655   }
5656  }
5657         YY_BREAK
5658 case 25:
5659 /* rule 25 can match eol */
5660 YY_RULE_SETUP
5661 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
5662         YY_BREAK
5663 case 26:
5664 YY_RULE_SETUP
5665 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
5666         YY_BREAK
5667 case YY_STATE_EOF(S_surfxml_platform_8):
5668 case YY_STATE_EOF(S_surfxml_platform_1):
5669 case YY_STATE_EOF(S_surfxml_platform_3):
5670 case YY_STATE_EOF(S_surfxml_platform):
5671 case YY_STATE_EOF(S_surfxml_platform_4):
5672 case YY_STATE_EOF(S_surfxml_platform_6):
5673 case YY_STATE_EOF(E_surfxml_platform):
5674 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</platform>' expected.");
5675         YY_BREAK
5676
5677 case 27:
5678 /* rule 27 can match eol */
5679 YY_RULE_SETUP
5680 FAIL("Starting tag <include> is not allowed here.");
5681         YY_BREAK
5682 case 28:
5683 /* rule 28 can match eol */
5684 YY_RULE_SETUP
5685 {
5686   AX_surfxml_include_file = 0;
5687   surfxml_include_file_isset = 0;
5688   ENTER(AL_surfxml_include); pushbuffer(0);
5689   }
5690         YY_BREAK
5691
5692 case 29:
5693 /* rule 29 can match eol */
5694 YY_RULE_SETUP
5695 if (surfxml_include_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_include>");} surfxml_include_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_include_file);
5696         YY_BREAK
5697 case 30:
5698 /* rule 30 can match eol */
5699 YY_RULE_SETUP
5700 if (surfxml_include_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_include>");}  surfxml_include_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_include_file);
5701         YY_BREAK
5702 case 31:
5703 YY_RULE_SETUP
5704 {
5705   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5706   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
5707  }
5708         YY_BREAK
5709 case 32:
5710 YY_RULE_SETUP
5711 {
5712   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5713   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
5714   switch (YY_START) {
5715    case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5716    case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_6: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
5717    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_3: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
5718    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5719   }
5720  }
5721         YY_BREAK
5722 case 33:
5723 YY_RULE_SETUP
5724 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
5725         YY_BREAK
5726 case 34:
5727 YY_RULE_SETUP
5728 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
5729         YY_BREAK
5730 case YY_STATE_EOF(AL_surfxml_include):
5731 FAIL("EOF in attribute list of `include' element.");
5732         YY_BREAK
5733
5734 case 35:
5735 /* rule 35 can match eol */
5736 YY_RULE_SETUP
5737 {
5738   LEAVE;
5739   ETag_surfxml_include();
5740   popbuffer(); /* attribute */
5741   switch (YY_START) {
5742    case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5743    case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_6: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
5744    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_3: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
5745    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5746   }
5747  }
5748         YY_BREAK
5749 case 36:
5750 /* rule 36 can match eol */
5751 YY_RULE_SETUP
5752 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
5753         YY_BREAK
5754 case 37:
5755 YY_RULE_SETUP
5756 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
5757         YY_BREAK
5758 case YY_STATE_EOF(E_surfxml_include):
5759 case YY_STATE_EOF(S_surfxml_include):
5760 case YY_STATE_EOF(S_surfxml_include_2):
5761 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</include>' expected.");
5762         YY_BREAK
5763
5764 case 38:
5765 /* rule 38 can match eol */
5766 YY_RULE_SETUP
5767 FAIL("Starting tag <trace> is not allowed here.");
5768         YY_BREAK
5769 case 39:
5770 /* rule 39 can match eol */
5771 YY_RULE_SETUP
5772 {
5773   AX_surfxml_trace_id = 0;
5774   surfxml_trace_id_isset = 0;
5775   AX_surfxml_trace_file = 0;
5776   surfxml_trace_file_isset = 0;
5777   AX_surfxml_trace_periodicity = 0;
5778   surfxml_trace_periodicity_isset = 0;
5779   ENTER(AL_surfxml_trace); pushbuffer(0);
5780   }
5781         YY_BREAK
5782
5783 case 40:
5784 /* rule 40 can match eol */
5785 YY_RULE_SETUP
5786 if (surfxml_trace_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_trace>");} surfxml_trace_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_id);
5787         YY_BREAK
5788 case 41:
5789 /* rule 41 can match eol */
5790 YY_RULE_SETUP
5791 if (surfxml_trace_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_trace>");}  surfxml_trace_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_id);
5792         YY_BREAK
5793 case 42:
5794 /* rule 42 can match eol */
5795 YY_RULE_SETUP
5796 if (surfxml_trace_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_trace>");} surfxml_trace_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_file);
5797         YY_BREAK
5798 case 43:
5799 /* rule 43 can match eol */
5800 YY_RULE_SETUP
5801 if (surfxml_trace_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_trace>");}  surfxml_trace_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_file);
5802         YY_BREAK
5803 case 44:
5804 /* rule 44 can match eol */
5805 YY_RULE_SETUP
5806 if (surfxml_trace_periodicity_isset != 0) {FAIL("Multiple definition of attribute periodicity in <surfxml_trace>");} surfxml_trace_periodicity_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_periodicity);
5807         YY_BREAK
5808 case 45:
5809 /* rule 45 can match eol */
5810 YY_RULE_SETUP
5811 if (surfxml_trace_periodicity_isset != 0) {FAIL("Multiple definition of attribute periodicity in <surfxml_trace>");}  surfxml_trace_periodicity_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_periodicity);
5812         YY_BREAK
5813 case 46:
5814 YY_RULE_SETUP
5815 {
5816   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5817   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5818   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
5819  }
5820         YY_BREAK
5821 case 47:
5822 YY_RULE_SETUP
5823 {
5824   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5825   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5826   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
5827   switch (YY_START) {
5828    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
5829    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
5830    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5831    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
5832    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
5833    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
5834    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5835   }
5836  }
5837         YY_BREAK
5838 case 48:
5839 YY_RULE_SETUP
5840 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
5841         YY_BREAK
5842 case 49:
5843 YY_RULE_SETUP
5844 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
5845         YY_BREAK
5846 case YY_STATE_EOF(AL_surfxml_trace):
5847 FAIL("EOF in attribute list of `trace' element.");
5848         YY_BREAK
5849
5850 case 50:
5851 /* rule 50 can match eol */
5852 YY_RULE_SETUP
5853 {
5854   LEAVE;
5855   BUFFERDONE;
5856   ETag_surfxml_trace();
5857   surfxml_pcdata_ix = popbuffer();
5858   popbuffer(); /* attribute */
5859   switch (YY_START) {
5860    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
5861    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
5862    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5863    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
5864    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
5865    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
5866    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5867   }
5868  }
5869         YY_BREAK
5870 case 51:
5871 /* rule 51 can match eol */
5872 YY_RULE_SETUP
5873 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
5874         YY_BREAK
5875 case YY_STATE_EOF(IN_trace):
5876 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace>' expected.");
5877         YY_BREAK
5878
5879 case 52:
5880 /* rule 52 can match eol */
5881 YY_RULE_SETUP
5882 FAIL("Starting tag <random> is not allowed here.");
5883         YY_BREAK
5884 case 53:
5885 /* rule 53 can match eol */
5886 YY_RULE_SETUP
5887 {
5888   AX_surfxml_random_id = 0;
5889   surfxml_random_id_isset = 0;
5890   AX_surfxml_random_min = 0;
5891   surfxml_random_min_isset = 0;
5892   AX_surfxml_random_max = 0;
5893   surfxml_random_max_isset = 0;
5894   AX_surfxml_random_mean = 0;
5895   surfxml_random_mean_isset = 0;
5896   AX_surfxml_random_std___deviation = 0;
5897   surfxml_random_std___deviation_isset = 0;
5898   AX_surfxml_random_seed = 5;
5899   surfxml_random_seed_isset = 0;
5900   AX_surfxml_random_radical = 0;
5901   surfxml_random_radical_isset = 0;
5902   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
5903   surfxml_random_generator_isset = 0;
5904   ENTER(AL_surfxml_random); pushbuffer(0);
5905   }
5906         YY_BREAK
5907
5908 case 54:
5909 /* rule 54 can match eol */
5910 YY_RULE_SETUP
5911 if (surfxml_random_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_random>");} surfxml_random_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_id);
5912         YY_BREAK
5913 case 55:
5914 /* rule 55 can match eol */
5915 YY_RULE_SETUP
5916 if (surfxml_random_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_random>");}  surfxml_random_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_id);
5917         YY_BREAK
5918 case 56:
5919 /* rule 56 can match eol */
5920 YY_RULE_SETUP
5921 if (surfxml_random_min_isset != 0) {FAIL("Multiple definition of attribute min in <surfxml_random>");} surfxml_random_min_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_min);
5922         YY_BREAK
5923 case 57:
5924 /* rule 57 can match eol */
5925 YY_RULE_SETUP
5926 if (surfxml_random_min_isset != 0) {FAIL("Multiple definition of attribute min in <surfxml_random>");}  surfxml_random_min_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_min);
5927         YY_BREAK
5928 case 58:
5929 /* rule 58 can match eol */
5930 YY_RULE_SETUP
5931 if (surfxml_random_max_isset != 0) {FAIL("Multiple definition of attribute max in <surfxml_random>");} surfxml_random_max_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_max);
5932         YY_BREAK
5933 case 59:
5934 /* rule 59 can match eol */
5935 YY_RULE_SETUP
5936 if (surfxml_random_max_isset != 0) {FAIL("Multiple definition of attribute max in <surfxml_random>");}  surfxml_random_max_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_max);
5937         YY_BREAK
5938 case 60:
5939 /* rule 60 can match eol */
5940 YY_RULE_SETUP
5941 if (surfxml_random_mean_isset != 0) {FAIL("Multiple definition of attribute mean in <surfxml_random>");} surfxml_random_mean_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_mean);
5942         YY_BREAK
5943 case 61:
5944 /* rule 61 can match eol */
5945 YY_RULE_SETUP
5946 if (surfxml_random_mean_isset != 0) {FAIL("Multiple definition of attribute mean in <surfxml_random>");}  surfxml_random_mean_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_mean);
5947         YY_BREAK
5948 case 62:
5949 /* rule 62 can match eol */
5950 YY_RULE_SETUP
5951 if (surfxml_random_std___deviation_isset != 0) {FAIL("Multiple definition of attribute std_deviation in <surfxml_random>");} surfxml_random_std___deviation_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_std___deviation);
5952         YY_BREAK
5953 case 63:
5954 /* rule 63 can match eol */
5955 YY_RULE_SETUP
5956 if (surfxml_random_std___deviation_isset != 0) {FAIL("Multiple definition of attribute std_deviation in <surfxml_random>");}  surfxml_random_std___deviation_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_std___deviation);
5957         YY_BREAK
5958 case 64:
5959 /* rule 64 can match eol */
5960 YY_RULE_SETUP
5961 if (surfxml_random_seed_isset != 0) {FAIL("Multiple definition of attribute seed in <surfxml_random>");} surfxml_random_seed_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_seed);
5962         YY_BREAK
5963 case 65:
5964 /* rule 65 can match eol */
5965 YY_RULE_SETUP
5966 if (surfxml_random_seed_isset != 0) {FAIL("Multiple definition of attribute seed in <surfxml_random>");}  surfxml_random_seed_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_seed);
5967         YY_BREAK
5968 case 66:
5969 /* rule 66 can match eol */
5970 YY_RULE_SETUP
5971 if (surfxml_random_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_random>");} surfxml_random_radical_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_radical);
5972         YY_BREAK
5973 case 67:
5974 /* rule 67 can match eol */
5975 YY_RULE_SETUP
5976 if (surfxml_random_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_random>");}  surfxml_random_radical_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_radical);
5977         YY_BREAK
5978 case 68:
5979 /* rule 68 can match eol */
5980 case 69:
5981 /* rule 69 can match eol */
5982 YY_RULE_SETUP
5983 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
5984         YY_BREAK
5985 case 70:
5986 /* rule 70 can match eol */
5987 case 71:
5988 /* rule 71 can match eol */
5989 YY_RULE_SETUP
5990 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
5991         YY_BREAK
5992 case 72:
5993 /* rule 72 can match eol */
5994 case 73:
5995 /* rule 73 can match eol */
5996 YY_RULE_SETUP
5997 A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
5998         YY_BREAK
5999 case 74:
6000 /* rule 74 can match eol */
6001 case 75:
6002 /* rule 75 can match eol */
6003 YY_RULE_SETUP
6004 A_surfxml_random_generator = A_surfxml_random_generator_NONE;
6005         YY_BREAK
6006 case 76:
6007 YY_RULE_SETUP
6008 {
6009   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
6010   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
6011   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
6012   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
6013   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
6014   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(E_surfxml_random);
6015  }
6016         YY_BREAK
6017 case 77:
6018 YY_RULE_SETUP
6019 {
6020   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
6021   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
6022   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
6023   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
6024   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
6025   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
6026   switch (YY_START) {
6027    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
6028   }
6029  }
6030         YY_BREAK
6031 case 78:
6032 YY_RULE_SETUP
6033 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
6034         YY_BREAK
6035 case 79:
6036 YY_RULE_SETUP
6037 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
6038         YY_BREAK
6039 case YY_STATE_EOF(AL_surfxml_random):
6040 FAIL("EOF in attribute list of `random' element.");
6041         YY_BREAK
6042
6043 case 80:
6044 /* rule 80 can match eol */
6045 YY_RULE_SETUP
6046 {
6047   LEAVE;
6048   ETag_surfxml_random();
6049   popbuffer(); /* attribute */
6050   switch (YY_START) {
6051    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
6052   }
6053  }
6054         YY_BREAK
6055 case 81:
6056 /* rule 81 can match eol */
6057 YY_RULE_SETUP
6058 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
6059         YY_BREAK
6060 case 82:
6061 YY_RULE_SETUP
6062 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
6063         YY_BREAK
6064 case YY_STATE_EOF(E_surfxml_random):
6065 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</random>' expected.");
6066         YY_BREAK
6067
6068 case 83:
6069 /* rule 83 can match eol */
6070 YY_RULE_SETUP
6071 FAIL("Starting tag <trace_connect> is not allowed here.");
6072         YY_BREAK
6073 case 84:
6074 /* rule 84 can match eol */
6075 YY_RULE_SETUP
6076 {
6077   AX_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
6078   surfxml_trace___connect_kind_isset = 0;
6079   AX_surfxml_trace___connect_trace = 0;
6080   surfxml_trace___connect_trace_isset = 0;
6081   AX_surfxml_trace___connect_element = 0;
6082   surfxml_trace___connect_element_isset = 0;
6083   ENTER(AL_surfxml_trace___connect); pushbuffer(0);
6084   }
6085         YY_BREAK
6086
6087 case 85:
6088 /* rule 85 can match eol */
6089 case 86:
6090 /* rule 86 can match eol */
6091 YY_RULE_SETUP
6092 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
6093         YY_BREAK
6094 case 87:
6095 /* rule 87 can match eol */
6096 case 88:
6097 /* rule 88 can match eol */
6098 YY_RULE_SETUP
6099 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_POWER;
6100         YY_BREAK
6101 case 89:
6102 /* rule 89 can match eol */
6103 case 90:
6104 /* rule 90 can match eol */
6105 YY_RULE_SETUP
6106 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LINK___AVAIL;
6107         YY_BREAK
6108 case 91:
6109 /* rule 91 can match eol */
6110 case 92:
6111 /* rule 92 can match eol */
6112 YY_RULE_SETUP
6113 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_BANDWIDTH;
6114         YY_BREAK
6115 case 93:
6116 /* rule 93 can match eol */
6117 case 94:
6118 /* rule 94 can match eol */
6119 YY_RULE_SETUP
6120 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LATENCY;
6121         YY_BREAK
6122 case 95:
6123 /* rule 95 can match eol */
6124 YY_RULE_SETUP
6125 if (surfxml_trace___connect_trace_isset != 0) {FAIL("Multiple definition of attribute trace in <surfxml_trace___connect>");} surfxml_trace___connect_trace_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace___connect_trace);
6126         YY_BREAK
6127 case 96:
6128 /* rule 96 can match eol */
6129 YY_RULE_SETUP
6130 if (surfxml_trace___connect_trace_isset != 0) {FAIL("Multiple definition of attribute trace in <surfxml_trace___connect>");}  surfxml_trace___connect_trace_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace___connect_trace);
6131         YY_BREAK
6132 case 97:
6133 /* rule 97 can match eol */
6134 YY_RULE_SETUP
6135 if (surfxml_trace___connect_element_isset != 0) {FAIL("Multiple definition of attribute element in <surfxml_trace___connect>");} surfxml_trace___connect_element_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace___connect_element);
6136         YY_BREAK
6137 case 98:
6138 /* rule 98 can match eol */
6139 YY_RULE_SETUP
6140 if (surfxml_trace___connect_element_isset != 0) {FAIL("Multiple definition of attribute element in <surfxml_trace___connect>");}  surfxml_trace___connect_element_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace___connect_element);
6141         YY_BREAK
6142 case 99:
6143 YY_RULE_SETUP
6144 {
6145   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
6146   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
6147   LEAVE; STag_surfxml_trace___connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace___connect);
6148  }
6149         YY_BREAK
6150 case 100:
6151 YY_RULE_SETUP
6152 {
6153   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
6154   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
6155   LEAVE; STag_surfxml_trace___connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace___connect(); popbuffer(); /* attribute */
6156   switch (YY_START) {
6157    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
6158    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
6159    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6160    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
6161    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
6162    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
6163    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6164   }
6165  }
6166         YY_BREAK
6167 case 101:
6168 YY_RULE_SETUP
6169 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", surf_parse_text[0]);
6170         YY_BREAK
6171 case 102:
6172 YY_RULE_SETUP
6173 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",surf_parse_text);
6174         YY_BREAK
6175 case YY_STATE_EOF(AL_surfxml_trace___connect):
6176 FAIL("EOF in attribute list of `trace_connect' element.");
6177         YY_BREAK
6178
6179 case 103:
6180 /* rule 103 can match eol */
6181 YY_RULE_SETUP
6182 {
6183   LEAVE;
6184   ETag_surfxml_trace___connect();
6185   popbuffer(); /* attribute */
6186   switch (YY_START) {
6187    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
6188    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
6189    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6190    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
6191    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
6192    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
6193    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6194   }
6195  }
6196         YY_BREAK
6197 case 104:
6198 /* rule 104 can match eol */
6199 YY_RULE_SETUP
6200 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",surf_parse_text);
6201         YY_BREAK
6202 case 105:
6203 YY_RULE_SETUP
6204 FAIL("Unexpected character `%c': `</trace_connect>' expected.",surf_parse_text[0]);
6205         YY_BREAK
6206 case YY_STATE_EOF(E_surfxml_trace___connect):
6207 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace_connect>' expected.");
6208         YY_BREAK
6209
6210 case 106:
6211 /* rule 106 can match eol */
6212 YY_RULE_SETUP
6213 FAIL("Starting tag <AS> is not allowed here.");
6214         YY_BREAK
6215 case 107:
6216 /* rule 107 can match eol */
6217 YY_RULE_SETUP
6218 {
6219   AX_surfxml_AS_id = 0;
6220   surfxml_AS_id_isset = 0;
6221   AX_surfxml_AS_routing = A_surfxml_AS_routing_None;
6222   surfxml_AS_routing_isset = 0;
6223   ENTER(AL_surfxml_AS); pushbuffer(0);
6224   }
6225         YY_BREAK
6226
6227 case 108:
6228 /* rule 108 can match eol */
6229 YY_RULE_SETUP
6230 if (surfxml_AS_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_AS>");} surfxml_AS_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_AS_id);
6231         YY_BREAK
6232 case 109:
6233 /* rule 109 can match eol */
6234 YY_RULE_SETUP
6235 if (surfxml_AS_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_AS>");}  surfxml_AS_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_AS_id);
6236         YY_BREAK
6237 case 110:
6238 /* rule 110 can match eol */
6239 case 111:
6240 /* rule 111 can match eol */
6241 YY_RULE_SETUP
6242 A_surfxml_AS_routing = A_surfxml_AS_routing_Full;
6243         YY_BREAK
6244 case 112:
6245 /* rule 112 can match eol */
6246 case 113:
6247 /* rule 113 can match eol */
6248 YY_RULE_SETUP
6249 A_surfxml_AS_routing = A_surfxml_AS_routing_Floyd;
6250         YY_BREAK
6251 case 114:
6252 /* rule 114 can match eol */
6253 case 115:
6254 /* rule 115 can match eol */
6255 YY_RULE_SETUP
6256 A_surfxml_AS_routing = A_surfxml_AS_routing_Dijkstra;
6257         YY_BREAK
6258 case 116:
6259 /* rule 116 can match eol */
6260 case 117:
6261 /* rule 117 can match eol */
6262 YY_RULE_SETUP
6263 A_surfxml_AS_routing = A_surfxml_AS_routing_DijkstraCache;
6264         YY_BREAK
6265 case 118:
6266 /* rule 118 can match eol */
6267 case 119:
6268 /* rule 119 can match eol */
6269 YY_RULE_SETUP
6270 A_surfxml_AS_routing = A_surfxml_AS_routing_None;
6271         YY_BREAK
6272 case 120:
6273 /* rule 120 can match eol */
6274 case 121:
6275 /* rule 121 can match eol */
6276 YY_RULE_SETUP
6277 A_surfxml_AS_routing = A_surfxml_AS_routing_Vivaldi;
6278         YY_BREAK
6279 case 122:
6280 /* rule 122 can match eol */
6281 case 123:
6282 /* rule 123 can match eol */
6283 YY_RULE_SETUP
6284 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster;
6285         YY_BREAK
6286 case 124:
6287 YY_RULE_SETUP
6288 {
6289   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6290   LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
6291  }
6292         YY_BREAK
6293 case 125:
6294 YY_RULE_SETUP
6295 {
6296   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6297   LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
6298   switch (YY_START) {
6299    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
6300    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
6301    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6302   }
6303  }
6304         YY_BREAK
6305 case 126:
6306 YY_RULE_SETUP
6307 FAIL("Unexpected character `%c' in attribute list of AS element.", surf_parse_text[0]);
6308         YY_BREAK
6309 case 127:
6310 YY_RULE_SETUP
6311 FAIL("Bad attribute `%s' in `AS' element start tag.",surf_parse_text);
6312         YY_BREAK
6313 case YY_STATE_EOF(AL_surfxml_AS):
6314 FAIL("EOF in attribute list of `AS' element.");
6315         YY_BREAK
6316
6317 case 128:
6318 /* rule 128 can match eol */
6319 YY_RULE_SETUP
6320 {
6321   LEAVE;
6322   ETag_surfxml_AS();
6323   popbuffer(); /* attribute */
6324   switch (YY_START) {
6325    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
6326    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
6327    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6328   }
6329  }
6330         YY_BREAK
6331 case 129:
6332 /* rule 129 can match eol */
6333 YY_RULE_SETUP
6334 FAIL("Unexpected end-tag `%s': `</AS>' expected.",surf_parse_text);
6335         YY_BREAK
6336 case 130:
6337 YY_RULE_SETUP
6338 FAIL("Unexpected character `%c': `</AS>' expected.",surf_parse_text[0]);
6339         YY_BREAK
6340 case YY_STATE_EOF(S_surfxml_AS_12):
6341 case YY_STATE_EOF(S_surfxml_AS_9):
6342 case YY_STATE_EOF(S_surfxml_AS_1):
6343 case YY_STATE_EOF(S_surfxml_AS_7):
6344 case YY_STATE_EOF(S_surfxml_AS_11):
6345 case YY_STATE_EOF(S_surfxml_AS_14):
6346 case YY_STATE_EOF(S_surfxml_AS_6):
6347 case YY_STATE_EOF(E_surfxml_AS):
6348 case YY_STATE_EOF(S_surfxml_AS_16):
6349 case YY_STATE_EOF(S_surfxml_AS_3):
6350 case YY_STATE_EOF(S_surfxml_AS):
6351 case YY_STATE_EOF(S_surfxml_AS_4):
6352 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</AS>' expected.");
6353         YY_BREAK
6354
6355 case 131:
6356 /* rule 131 can match eol */
6357 YY_RULE_SETUP
6358 FAIL("Starting tag <storage_type> is not allowed here.");
6359         YY_BREAK
6360 case 132:
6361 /* rule 132 can match eol */
6362 YY_RULE_SETUP
6363 {
6364   AX_surfxml_storage___type_id = 0;
6365   surfxml_storage___type_id_isset = 0;
6366   AX_surfxml_storage___type_model = 0;
6367   surfxml_storage___type_model_isset = 0;
6368   AX_surfxml_storage___type_size = 0;
6369   surfxml_storage___type_size_isset = 0;
6370   AX_surfxml_storage___type_content = 0;
6371   surfxml_storage___type_content_isset = 0;
6372   ENTER(AL_surfxml_storage___type); pushbuffer(0);
6373   }
6374         YY_BREAK
6375
6376 case 133:
6377 /* rule 133 can match eol */
6378 YY_RULE_SETUP
6379 if (surfxml_storage___type_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage___type>");} surfxml_storage___type_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_id);
6380         YY_BREAK
6381 case 134:
6382 /* rule 134 can match eol */
6383 YY_RULE_SETUP
6384 if (surfxml_storage___type_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage___type>");}  surfxml_storage___type_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_id);
6385         YY_BREAK
6386 case 135:
6387 /* rule 135 can match eol */
6388 YY_RULE_SETUP
6389 if (surfxml_storage___type_model_isset != 0) {FAIL("Multiple definition of attribute model in <surfxml_storage___type>");} surfxml_storage___type_model_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_model);
6390         YY_BREAK
6391 case 136:
6392 /* rule 136 can match eol */
6393 YY_RULE_SETUP
6394 if (surfxml_storage___type_model_isset != 0) {FAIL("Multiple definition of attribute model in <surfxml_storage___type>");}  surfxml_storage___type_model_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_model);
6395         YY_BREAK
6396 case 137:
6397 /* rule 137 can match eol */
6398 YY_RULE_SETUP
6399 if (surfxml_storage___type_size_isset != 0) {FAIL("Multiple definition of attribute size in <surfxml_storage___type>");} surfxml_storage___type_size_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_size);
6400         YY_BREAK
6401 case 138:
6402 /* rule 138 can match eol */
6403 YY_RULE_SETUP
6404 if (surfxml_storage___type_size_isset != 0) {FAIL("Multiple definition of attribute size in <surfxml_storage___type>");}  surfxml_storage___type_size_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_size);
6405         YY_BREAK
6406 case 139:
6407 /* rule 139 can match eol */
6408 YY_RULE_SETUP
6409 if (surfxml_storage___type_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage___type>");} surfxml_storage___type_content_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_content);
6410         YY_BREAK
6411 case 140:
6412 /* rule 140 can match eol */
6413 YY_RULE_SETUP
6414 if (surfxml_storage___type_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage___type>");}  surfxml_storage___type_content_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_content);
6415         YY_BREAK
6416 case 141:
6417 YY_RULE_SETUP
6418 {
6419   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
6420   if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
6421   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
6422   LEAVE; STag_surfxml_storage___type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage___type);
6423  }
6424         YY_BREAK
6425 case 142:
6426 YY_RULE_SETUP
6427 {
6428   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
6429   if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
6430   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
6431   LEAVE; STag_surfxml_storage___type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage___type(); popbuffer(); /* attribute */
6432   switch (YY_START) {
6433    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6434    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6435   }
6436  }
6437         YY_BREAK
6438 case 143:
6439 YY_RULE_SETUP
6440 FAIL("Unexpected character `%c' in attribute list of storage_type element.", surf_parse_text[0]);
6441         YY_BREAK
6442 case 144:
6443 YY_RULE_SETUP
6444 FAIL("Bad attribute `%s' in `storage_type' element start tag.",surf_parse_text);
6445         YY_BREAK
6446 case YY_STATE_EOF(AL_surfxml_storage___type):
6447 FAIL("EOF in attribute list of `storage_type' element.");
6448         YY_BREAK
6449
6450 case 145:
6451 /* rule 145 can match eol */
6452 YY_RULE_SETUP
6453 {
6454   LEAVE;
6455   ETag_surfxml_storage___type();
6456   popbuffer(); /* attribute */
6457   switch (YY_START) {
6458    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6459    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6460   }
6461  }
6462         YY_BREAK
6463 case 146:
6464 /* rule 146 can match eol */
6465 YY_RULE_SETUP
6466 FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",surf_parse_text);
6467         YY_BREAK
6468 case 147:
6469 YY_RULE_SETUP
6470 FAIL("Unexpected character `%c': `</storage_type>' expected.",surf_parse_text[0]);
6471         YY_BREAK
6472 case YY_STATE_EOF(E_surfxml_storage___type):
6473 case YY_STATE_EOF(S_surfxml_storage___type):
6474 case YY_STATE_EOF(S_surfxml_storage___type_2):
6475 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage_type>' expected.");
6476         YY_BREAK
6477
6478 case 148:
6479 /* rule 148 can match eol */
6480 YY_RULE_SETUP
6481 FAIL("Starting tag <storage> is not allowed here.");
6482         YY_BREAK
6483 case 149:
6484 /* rule 149 can match eol */
6485 YY_RULE_SETUP
6486 {
6487   AX_surfxml_storage_id = 0;
6488   surfxml_storage_id_isset = 0;
6489   AX_surfxml_storage_typeId = 0;
6490   surfxml_storage_typeId_isset = 0;
6491   AX_surfxml_storage_content = 0;
6492   surfxml_storage_content_isset = 0;
6493   ENTER(AL_surfxml_storage); pushbuffer(0);
6494   }
6495         YY_BREAK
6496
6497 case 150:
6498 /* rule 150 can match eol */
6499 YY_RULE_SETUP
6500 if (surfxml_storage_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage>");} surfxml_storage_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_id);
6501         YY_BREAK
6502 case 151:
6503 /* rule 151 can match eol */
6504 YY_RULE_SETUP
6505 if (surfxml_storage_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage>");}  surfxml_storage_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_id);
6506         YY_BREAK
6507 case 152:
6508 /* rule 152 can match eol */
6509 YY_RULE_SETUP
6510 if (surfxml_storage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_storage>");} surfxml_storage_typeId_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_typeId);
6511         YY_BREAK
6512 case 153:
6513 /* rule 153 can match eol */
6514 YY_RULE_SETUP
6515 if (surfxml_storage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_storage>");}  surfxml_storage_typeId_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_typeId);
6516         YY_BREAK
6517 case 154:
6518 /* rule 154 can match eol */
6519 YY_RULE_SETUP
6520 if (surfxml_storage_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage>");} surfxml_storage_content_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_content);
6521         YY_BREAK
6522 case 155:
6523 /* rule 155 can match eol */
6524 YY_RULE_SETUP
6525 if (surfxml_storage_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage>");}  surfxml_storage_content_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_content);
6526         YY_BREAK
6527 case 156:
6528 YY_RULE_SETUP
6529 {
6530   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
6531   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
6532   LEAVE; STag_surfxml_storage();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage);
6533  }
6534         YY_BREAK
6535 case 157:
6536 YY_RULE_SETUP
6537 {
6538   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
6539   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
6540   LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */
6541   switch (YY_START) {
6542    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6543    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6544   }
6545  }
6546         YY_BREAK
6547 case 158:
6548 YY_RULE_SETUP
6549 FAIL("Unexpected character `%c' in attribute list of storage element.", surf_parse_text[0]);
6550         YY_BREAK
6551 case 159:
6552 YY_RULE_SETUP
6553 FAIL("Bad attribute `%s' in `storage' element start tag.",surf_parse_text);
6554         YY_BREAK
6555 case YY_STATE_EOF(AL_surfxml_storage):
6556 FAIL("EOF in attribute list of `storage' element.");
6557         YY_BREAK
6558
6559 case 160:
6560 /* rule 160 can match eol */
6561 YY_RULE_SETUP
6562 {
6563   LEAVE;
6564   ETag_surfxml_storage();
6565   popbuffer(); /* attribute */
6566   switch (YY_START) {
6567    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6568    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6569   }
6570  }
6571         YY_BREAK
6572 case 161:
6573 /* rule 161 can match eol */
6574 YY_RULE_SETUP
6575 FAIL("Unexpected end-tag `%s': `</storage>' expected.",surf_parse_text);
6576         YY_BREAK
6577 case 162:
6578 YY_RULE_SETUP
6579 FAIL("Unexpected character `%c': `</storage>' expected.",surf_parse_text[0]);
6580         YY_BREAK
6581 case YY_STATE_EOF(E_surfxml_storage):
6582 case YY_STATE_EOF(S_surfxml_storage):
6583 case YY_STATE_EOF(S_surfxml_storage_2):
6584 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage>' expected.");
6585         YY_BREAK
6586
6587 case 163:
6588 /* rule 163 can match eol */
6589 YY_RULE_SETUP
6590 FAIL("Starting tag <mount> is not allowed here.");
6591         YY_BREAK
6592 case 164:
6593 /* rule 164 can match eol */
6594 YY_RULE_SETUP
6595 {
6596   AX_surfxml_mount_id = 0;
6597   surfxml_mount_id_isset = 0;
6598   AX_surfxml_mount_name = 0;
6599   surfxml_mount_name_isset = 0;
6600   ENTER(AL_surfxml_mount); pushbuffer(0);
6601   }
6602         YY_BREAK
6603
6604 case 165:
6605 /* rule 165 can match eol */
6606 YY_RULE_SETUP
6607 if (surfxml_mount_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_mount>");} surfxml_mount_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mount_id);
6608         YY_BREAK
6609 case 166:
6610 /* rule 166 can match eol */
6611 YY_RULE_SETUP
6612 if (surfxml_mount_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_mount>");}  surfxml_mount_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mount_id);
6613         YY_BREAK
6614 case 167:
6615 /* rule 167 can match eol */
6616 YY_RULE_SETUP
6617 if (surfxml_mount_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mount>");} surfxml_mount_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mount_name);
6618         YY_BREAK
6619 case 168:
6620 /* rule 168 can match eol */
6621 YY_RULE_SETUP
6622 if (surfxml_mount_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mount>");}  surfxml_mount_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mount_name);
6623         YY_BREAK
6624 case 169:
6625 YY_RULE_SETUP
6626 {
6627   if (!AX_surfxml_mount_id) FAIL("Required attribute `id' not set for `mount' element.");
6628   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6629   LEAVE; STag_surfxml_mount();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mount);
6630  }
6631         YY_BREAK
6632 case 170:
6633 YY_RULE_SETUP
6634 {
6635   if (!AX_surfxml_mount_id) FAIL("Required attribute `id' not set for `mount' element.");
6636   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6637   LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */
6638   switch (YY_START) {
6639    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6640   }
6641  }
6642         YY_BREAK
6643 case 171:
6644 YY_RULE_SETUP
6645 FAIL("Unexpected character `%c' in attribute list of mount element.", surf_parse_text[0]);
6646         YY_BREAK
6647 case 172:
6648 YY_RULE_SETUP
6649 FAIL("Bad attribute `%s' in `mount' element start tag.",surf_parse_text);
6650         YY_BREAK
6651 case YY_STATE_EOF(AL_surfxml_mount):
6652 FAIL("EOF in attribute list of `mount' element.");
6653         YY_BREAK
6654
6655 case 173:
6656 /* rule 173 can match eol */
6657 YY_RULE_SETUP
6658 {
6659   LEAVE;
6660   ETag_surfxml_mount();
6661   popbuffer(); /* attribute */
6662   switch (YY_START) {
6663    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6664   }
6665  }
6666         YY_BREAK
6667 case 174:
6668 /* rule 174 can match eol */
6669 YY_RULE_SETUP
6670 FAIL("Unexpected end-tag `%s': `</mount>' expected.",surf_parse_text);
6671         YY_BREAK
6672 case 175:
6673 YY_RULE_SETUP
6674 FAIL("Unexpected character `%c': `</mount>' expected.",surf_parse_text[0]);
6675         YY_BREAK
6676 case YY_STATE_EOF(E_surfxml_mount):
6677 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mount>' expected.");
6678         YY_BREAK
6679
6680 case 176:
6681 /* rule 176 can match eol */
6682 YY_RULE_SETUP
6683 FAIL("Starting tag <mstorage> is not allowed here.");
6684         YY_BREAK
6685 case 177:
6686 /* rule 177 can match eol */
6687 YY_RULE_SETUP
6688 {
6689   AX_surfxml_mstorage_typeId = 0;
6690   surfxml_mstorage_typeId_isset = 0;
6691   AX_surfxml_mstorage_name = 0;
6692   surfxml_mstorage_name_isset = 0;
6693   ENTER(AL_surfxml_mstorage); pushbuffer(0);
6694   }
6695         YY_BREAK
6696
6697 case 178:
6698 /* rule 178 can match eol */
6699 YY_RULE_SETUP
6700 if (surfxml_mstorage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_mstorage>");} surfxml_mstorage_typeId_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mstorage_typeId);
6701         YY_BREAK
6702 case 179:
6703 /* rule 179 can match eol */
6704 YY_RULE_SETUP
6705 if (surfxml_mstorage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_mstorage>");}  surfxml_mstorage_typeId_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mstorage_typeId);
6706         YY_BREAK
6707 case 180:
6708 /* rule 180 can match eol */
6709 YY_RULE_SETUP
6710 if (surfxml_mstorage_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mstorage>");} surfxml_mstorage_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mstorage_name);
6711         YY_BREAK
6712 case 181:
6713 /* rule 181 can match eol */
6714 YY_RULE_SETUP
6715 if (surfxml_mstorage_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mstorage>");}  surfxml_mstorage_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mstorage_name);
6716         YY_BREAK
6717 case 182:
6718 YY_RULE_SETUP
6719 {
6720   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6721   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6722   LEAVE; STag_surfxml_mstorage();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mstorage);
6723  }
6724         YY_BREAK
6725 case 183:
6726 YY_RULE_SETUP
6727 {
6728   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6729   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6730   LEAVE; STag_surfxml_mstorage(); surfxml_pcdata_ix = 0; ETag_surfxml_mstorage(); popbuffer(); /* attribute */
6731   switch (YY_START) {
6732    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6733   }
6734  }
6735         YY_BREAK
6736 case 184:
6737 YY_RULE_SETUP
6738 FAIL("Unexpected character `%c' in attribute list of mstorage element.", surf_parse_text[0]);
6739         YY_BREAK
6740 case 185:
6741 YY_RULE_SETUP
6742 FAIL("Bad attribute `%s' in `mstorage' element start tag.",surf_parse_text);
6743         YY_BREAK
6744 case YY_STATE_EOF(AL_surfxml_mstorage):
6745 FAIL("EOF in attribute list of `mstorage' element.");
6746         YY_BREAK
6747
6748 case 186:
6749 /* rule 186 can match eol */
6750 YY_RULE_SETUP
6751 {
6752   LEAVE;
6753   ETag_surfxml_mstorage();
6754   popbuffer(); /* attribute */
6755   switch (YY_START) {
6756    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6757   }
6758  }
6759         YY_BREAK
6760 case 187:
6761 /* rule 187 can match eol */
6762 YY_RULE_SETUP
6763 FAIL("Unexpected end-tag `%s': `</mstorage>' expected.",surf_parse_text);
6764         YY_BREAK
6765 case 188:
6766 YY_RULE_SETUP
6767 FAIL("Unexpected character `%c': `</mstorage>' expected.",surf_parse_text[0]);
6768         YY_BREAK
6769 case YY_STATE_EOF(E_surfxml_mstorage):
6770 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mstorage>' expected.");
6771         YY_BREAK
6772
6773 case 189:
6774 /* rule 189 can match eol */
6775 YY_RULE_SETUP
6776 FAIL("Starting tag <host> is not allowed here.");
6777         YY_BREAK
6778 case 190:
6779 /* rule 190 can match eol */
6780 YY_RULE_SETUP
6781 {
6782   AX_surfxml_host_id = 0;
6783   surfxml_host_id_isset = 0;
6784   AX_surfxml_host_power = 0;
6785   surfxml_host_power_isset = 0;
6786   AX_surfxml_host_core = 16;
6787   surfxml_host_core_isset = 0;
6788   AX_surfxml_host_availability = 18;
6789   surfxml_host_availability_isset = 0;
6790   AX_surfxml_host_availability___file = 0;
6791   surfxml_host_availability___file_isset = 0;
6792   AX_surfxml_host_state = A_surfxml_host_state_ON;
6793   surfxml_host_state_isset = 0;
6794   AX_surfxml_host_state___file = 0;
6795   surfxml_host_state___file_isset = 0;
6796   AX_surfxml_host_coordinates = 0;
6797   surfxml_host_coordinates_isset = 0;
6798   ENTER(AL_surfxml_host); pushbuffer(0);
6799   }
6800         YY_BREAK
6801
6802 case 191:
6803 /* rule 191 can match eol */
6804 YY_RULE_SETUP
6805 if (surfxml_host_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host>");} surfxml_host_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_id);
6806         YY_BREAK
6807 case 192:
6808 /* rule 192 can match eol */
6809 YY_RULE_SETUP
6810 if (surfxml_host_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host>");}  surfxml_host_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_id);
6811         YY_BREAK
6812 case 193:
6813 /* rule 193 can match eol */
6814 YY_RULE_SETUP
6815 if (surfxml_host_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_host>");} surfxml_host_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_power);
6816         YY_BREAK
6817 case 194:
6818 /* rule 194 can match eol */
6819 YY_RULE_SETUP
6820 if (surfxml_host_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_host>");}  surfxml_host_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_power);
6821         YY_BREAK
6822 case 195:
6823 /* rule 195 can match eol */
6824 YY_RULE_SETUP
6825 if (surfxml_host_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_host>");} surfxml_host_core_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_core);
6826         YY_BREAK
6827 case 196:
6828 /* rule 196 can match eol */
6829 YY_RULE_SETUP
6830 if (surfxml_host_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_host>");}  surfxml_host_core_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_core);
6831         YY_BREAK
6832 case 197:
6833 /* rule 197 can match eol */
6834 YY_RULE_SETUP
6835 if (surfxml_host_availability_isset != 0) {FAIL("Multiple definition of attribute availability in <surfxml_host>");} surfxml_host_availability_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability);
6836         YY_BREAK
6837 case 198:
6838 /* rule 198 can match eol */
6839 YY_RULE_SETUP
6840 if (surfxml_host_availability_isset != 0) {FAIL("Multiple definition of attribute availability in <surfxml_host>");}  surfxml_host_availability_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability);
6841         YY_BREAK
6842 case 199:
6843 /* rule 199 can match eol */
6844 YY_RULE_SETUP
6845 if (surfxml_host_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_host>");} surfxml_host_availability___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability___file);
6846         YY_BREAK
6847 case 200:
6848 /* rule 200 can match eol */
6849 YY_RULE_SETUP
6850 if (surfxml_host_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_host>");}  surfxml_host_availability___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability___file);
6851         YY_BREAK
6852 case 201:
6853 /* rule 201 can match eol */
6854 case 202:
6855 /* rule 202 can match eol */
6856 YY_RULE_SETUP
6857 A_surfxml_host_state = A_surfxml_host_state_ON;
6858         YY_BREAK
6859 case 203:
6860 /* rule 203 can match eol */
6861 case 204:
6862 /* rule 204 can match eol */
6863 YY_RULE_SETUP
6864 A_surfxml_host_state = A_surfxml_host_state_OFF;
6865         YY_BREAK
6866 case 205:
6867 /* rule 205 can match eol */
6868 YY_RULE_SETUP
6869 if (surfxml_host_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_host>");} surfxml_host_state___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_state___file);
6870         YY_BREAK
6871 case 206:
6872 /* rule 206 can match eol */
6873 YY_RULE_SETUP
6874 if (surfxml_host_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_host>");}  surfxml_host_state___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_state___file);
6875         YY_BREAK
6876 case 207:
6877 /* rule 207 can match eol */
6878 YY_RULE_SETUP
6879 if (surfxml_host_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_host>");} surfxml_host_coordinates_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_coordinates);
6880         YY_BREAK
6881 case 208:
6882 /* rule 208 can match eol */
6883 YY_RULE_SETUP
6884 if (surfxml_host_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_host>");}  surfxml_host_coordinates_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_coordinates);
6885         YY_BREAK
6886 case 209:
6887 YY_RULE_SETUP
6888 {
6889   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
6890   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
6891   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
6892  }
6893         YY_BREAK
6894 case 210:
6895 YY_RULE_SETUP
6896 {
6897   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
6898   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
6899   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
6900   switch (YY_START) {
6901    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6902   }
6903  }
6904         YY_BREAK
6905 case 211:
6906 YY_RULE_SETUP
6907 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
6908         YY_BREAK
6909 case 212:
6910 YY_RULE_SETUP
6911 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
6912         YY_BREAK
6913 case YY_STATE_EOF(AL_surfxml_host):
6914 FAIL("EOF in attribute list of `host' element.");
6915         YY_BREAK
6916
6917 case 213:
6918 /* rule 213 can match eol */
6919 YY_RULE_SETUP
6920 {
6921   LEAVE;
6922   ETag_surfxml_host();
6923   popbuffer(); /* attribute */
6924   switch (YY_START) {
6925    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6926   }
6927  }
6928         YY_BREAK
6929 case 214:
6930 /* rule 214 can match eol */
6931 YY_RULE_SETUP
6932 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
6933         YY_BREAK
6934 case 215:
6935 YY_RULE_SETUP
6936 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
6937         YY_BREAK
6938 case YY_STATE_EOF(S_surfxml_host):
6939 case YY_STATE_EOF(E_surfxml_host):
6940 case YY_STATE_EOF(S_surfxml_host_2):
6941 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host>' expected.");
6942         YY_BREAK
6943
6944 case 216:
6945 /* rule 216 can match eol */
6946 YY_RULE_SETUP
6947 FAIL("Starting tag <gpu> is not allowed here.");
6948         YY_BREAK
6949 case 217:
6950 /* rule 217 can match eol */
6951 YY_RULE_SETUP
6952 {
6953   AX_surfxml_gpu_name = 0;
6954   surfxml_gpu_name_isset = 0;
6955   ENTER(AL_surfxml_gpu); pushbuffer(0);
6956   }
6957         YY_BREAK
6958
6959 case 218:
6960 /* rule 218 can match eol */
6961 YY_RULE_SETUP
6962 if (surfxml_gpu_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_gpu>");} surfxml_gpu_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_gpu_name);
6963         YY_BREAK
6964 case 219:
6965 /* rule 219 can match eol */
6966 YY_RULE_SETUP
6967 if (surfxml_gpu_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_gpu>");}  surfxml_gpu_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_gpu_name);
6968         YY_BREAK
6969 case 220:
6970 YY_RULE_SETUP
6971 {
6972   if (!AX_surfxml_gpu_name) FAIL("Required attribute `name' not set for `gpu' element.");
6973   LEAVE; STag_surfxml_gpu();surfxml_pcdata_ix = 0; ENTER(E_surfxml_gpu);
6974  }
6975         YY_BREAK
6976 case 221:
6977 YY_RULE_SETUP
6978 {
6979   if (!AX_surfxml_gpu_name) FAIL("Required attribute `name' not set for `gpu' element.");
6980   LEAVE; STag_surfxml_gpu(); surfxml_pcdata_ix = 0; ETag_surfxml_gpu(); popbuffer(); /* attribute */
6981   switch (YY_START) {
6982    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6983   }
6984  }
6985         YY_BREAK
6986 case 222:
6987 YY_RULE_SETUP
6988 FAIL("Unexpected character `%c' in attribute list of gpu element.", surf_parse_text[0]);
6989         YY_BREAK
6990 case 223:
6991 YY_RULE_SETUP
6992 FAIL("Bad attribute `%s' in `gpu' element start tag.",surf_parse_text);
6993         YY_BREAK
6994 case YY_STATE_EOF(AL_surfxml_gpu):
6995 FAIL("EOF in attribute list of `gpu' element.");
6996         YY_BREAK
6997
6998 case 224:
6999 /* rule 224 can match eol */
7000 YY_RULE_SETUP
7001 {
7002   LEAVE;
7003   ETag_surfxml_gpu();
7004   popbuffer(); /* attribute */
7005   switch (YY_START) {
7006    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7007   }
7008  }
7009         YY_BREAK
7010 case 225:
7011 /* rule 225 can match eol */
7012 YY_RULE_SETUP
7013 FAIL("Unexpected end-tag `%s': `</gpu>' expected.",surf_parse_text);
7014         YY_BREAK
7015 case 226:
7016 YY_RULE_SETUP
7017 FAIL("Unexpected character `%c': `</gpu>' expected.",surf_parse_text[0]);
7018         YY_BREAK
7019 case YY_STATE_EOF(E_surfxml_gpu):
7020 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</gpu>' expected.");
7021         YY_BREAK
7022
7023 case 227:
7024 /* rule 227 can match eol */
7025 YY_RULE_SETUP
7026 FAIL("Starting tag <host_link> is not allowed here.");
7027         YY_BREAK
7028 case 228:
7029 /* rule 228 can match eol */
7030 YY_RULE_SETUP
7031 {
7032   AX_surfxml_host___link_id = 0;
7033   surfxml_host___link_id_isset = 0;
7034   AX_surfxml_host___link_up = 0;
7035   surfxml_host___link_up_isset = 0;
7036   AX_surfxml_host___link_down = 0;
7037   surfxml_host___link_down_isset = 0;
7038   ENTER(AL_surfxml_host___link); pushbuffer(0);
7039   }
7040         YY_BREAK
7041
7042 case 229:
7043 /* rule 229 can match eol */
7044 YY_RULE_SETUP
7045 if (surfxml_host___link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host___link>");} surfxml_host___link_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host___link_id);
7046         YY_BREAK
7047 case 230:
7048 /* rule 230 can match eol */
7049 YY_RULE_SETUP
7050 if (surfxml_host___link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host___link>");}  surfxml_host___link_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host___link_id);
7051         YY_BREAK
7052 case 231:
7053 /* rule 231 can match eol */
7054 YY_RULE_SETUP
7055 if (surfxml_host___link_up_isset != 0) {FAIL("Multiple definition of attribute up in <surfxml_host___link>");} surfxml_host___link_up_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host___link_up);
7056         YY_BREAK
7057 case 232:
7058 /* rule 232 can match eol */
7059 YY_RULE_SETUP
7060 if (surfxml_host___link_up_isset != 0) {FAIL("Multiple definition of attribute up in <surfxml_host___link>");}  surfxml_host___link_up_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host___link_up);
7061         YY_BREAK
7062 case 233:
7063 /* rule 233 can match eol */
7064 YY_RULE_SETUP
7065 if (surfxml_host___link_down_isset != 0) {FAIL("Multiple definition of attribute down in <surfxml_host___link>");} surfxml_host___link_down_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host___link_down);
7066         YY_BREAK
7067 case 234:
7068 /* rule 234 can match eol */
7069 YY_RULE_SETUP
7070 if (surfxml_host___link_down_isset != 0) {FAIL("Multiple definition of attribute down in <surfxml_host___link>");}  surfxml_host___link_down_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host___link_down);
7071         YY_BREAK
7072 case 235:
7073 YY_RULE_SETUP
7074 {
7075   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
7076   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
7077   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
7078   LEAVE; STag_surfxml_host___link();surfxml_pcdata_ix = 0; ENTER(E_surfxml_host___link);
7079  }
7080         YY_BREAK
7081 case 236:
7082 YY_RULE_SETUP
7083 {
7084   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
7085   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
7086   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
7087   LEAVE; STag_surfxml_host___link(); surfxml_pcdata_ix = 0; ETag_surfxml_host___link(); popbuffer(); /* attribute */
7088   switch (YY_START) {
7089    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7090   }
7091  }
7092         YY_BREAK
7093 case 237:
7094 YY_RULE_SETUP
7095 FAIL("Unexpected character `%c' in attribute list of host_link element.", surf_parse_text[0]);
7096         YY_BREAK
7097 case 238:
7098 YY_RULE_SETUP
7099 FAIL("Bad attribute `%s' in `host_link' element start tag.",surf_parse_text);
7100         YY_BREAK
7101 case YY_STATE_EOF(AL_surfxml_host___link):
7102 FAIL("EOF in attribute list of `host_link' element.");
7103         YY_BREAK
7104
7105 case 239:
7106 /* rule 239 can match eol */
7107 YY_RULE_SETUP
7108 {
7109   LEAVE;
7110   ETag_surfxml_host___link();
7111   popbuffer(); /* attribute */
7112   switch (YY_START) {
7113    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7114   }
7115  }
7116         YY_BREAK
7117 case 240:
7118 /* rule 240 can match eol */
7119 YY_RULE_SETUP
7120 FAIL("Unexpected end-tag `%s': `</host_link>' expected.",surf_parse_text);
7121         YY_BREAK
7122 case 241:
7123 YY_RULE_SETUP
7124 FAIL("Unexpected character `%c': `</host_link>' expected.",surf_parse_text[0]);
7125         YY_BREAK
7126 case YY_STATE_EOF(E_surfxml_host___link):
7127 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host_link>' expected.");
7128         YY_BREAK
7129
7130 case 242:
7131 /* rule 242 can match eol */
7132 YY_RULE_SETUP
7133 FAIL("Starting tag <cluster> is not allowed here.");
7134         YY_BREAK
7135 case 243:
7136 /* rule 243 can match eol */
7137 YY_RULE_SETUP
7138 {
7139   AX_surfxml_cluster_id = 0;
7140   surfxml_cluster_id_isset = 0;
7141   AX_surfxml_cluster_prefix = 0;
7142   surfxml_cluster_prefix_isset = 0;
7143   AX_surfxml_cluster_suffix = 0;
7144   surfxml_cluster_suffix_isset = 0;
7145   AX_surfxml_cluster_radical = 0;
7146   surfxml_cluster_radical_isset = 0;
7147   AX_surfxml_cluster_power = 0;
7148   surfxml_cluster_power_isset = 0;
7149   AX_surfxml_cluster_core = 22;
7150   surfxml_cluster_core_isset = 0;
7151   AX_surfxml_cluster_bw = 0;
7152   surfxml_cluster_bw_isset = 0;
7153   AX_surfxml_cluster_lat = 0;
7154   surfxml_cluster_lat_isset = 0;
7155   AX_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
7156   surfxml_cluster_sharing___policy_isset = 0;
7157   AX_surfxml_cluster_bb___bw = 0;
7158   surfxml_cluster_bb___bw_isset = 0;
7159   AX_surfxml_cluster_bb___lat = 0;
7160   surfxml_cluster_bb___lat_isset = 0;
7161   AX_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
7162   surfxml_cluster_bb___sharing___policy_isset = 0;
7163   AX_surfxml_cluster_availability___file = 0;
7164   surfxml_cluster_availability___file_isset = 0;
7165   AX_surfxml_cluster_state___file = 0;
7166   surfxml_cluster_state___file_isset = 0;
7167   AX_surfxml_cluster_router___id = 0;
7168   surfxml_cluster_router___id_isset = 0;
7169   AX_surfxml_cluster_limiter___link = 0;
7170   surfxml_cluster_limiter___link_isset = 0;
7171   AX_surfxml_cluster_loopback___bw = 0;
7172   surfxml_cluster_loopback___bw_isset = 0;
7173   AX_surfxml_cluster_loopback___lat = 0;
7174   surfxml_cluster_loopback___lat_isset = 0;
7175   ENTER(AL_surfxml_cluster); pushbuffer(0);
7176   }
7177         YY_BREAK
7178
7179 case 244:
7180 /* rule 244 can match eol */
7181 YY_RULE_SETUP
7182 if (surfxml_cluster_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cluster>");} surfxml_cluster_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_id);
7183         YY_BREAK
7184 case 245:
7185 /* rule 245 can match eol */
7186 YY_RULE_SETUP
7187 if (surfxml_cluster_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cluster>");}  surfxml_cluster_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_id);
7188         YY_BREAK
7189 case 246:
7190 /* rule 246 can match eol */
7191 YY_RULE_SETUP
7192 if (surfxml_cluster_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cluster>");} surfxml_cluster_prefix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_prefix);
7193         YY_BREAK
7194 case 247:
7195 /* rule 247 can match eol */
7196 YY_RULE_SETUP
7197 if (surfxml_cluster_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cluster>");}  surfxml_cluster_prefix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_prefix);
7198         YY_BREAK
7199 case 248:
7200 /* rule 248 can match eol */
7201 YY_RULE_SETUP
7202 if (surfxml_cluster_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cluster>");} surfxml_cluster_suffix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_suffix);
7203         YY_BREAK
7204 case 249:
7205 /* rule 249 can match eol */
7206 YY_RULE_SETUP
7207 if (surfxml_cluster_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cluster>");}  surfxml_cluster_suffix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_suffix);
7208         YY_BREAK
7209 case 250:
7210 /* rule 250 can match eol */
7211 YY_RULE_SETUP
7212 if (surfxml_cluster_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cluster>");} surfxml_cluster_radical_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_radical);
7213         YY_BREAK
7214 case 251:
7215 /* rule 251 can match eol */
7216 YY_RULE_SETUP
7217 if (surfxml_cluster_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cluster>");}  surfxml_cluster_radical_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_radical);
7218         YY_BREAK
7219 case 252:
7220 /* rule 252 can match eol */
7221 YY_RULE_SETUP
7222 if (surfxml_cluster_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cluster>");} surfxml_cluster_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_power);
7223         YY_BREAK
7224 case 253:
7225 /* rule 253 can match eol */
7226 YY_RULE_SETUP
7227 if (surfxml_cluster_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cluster>");}  surfxml_cluster_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_power);
7228         YY_BREAK
7229 case 254:
7230 /* rule 254 can match eol */
7231 YY_RULE_SETUP
7232 if (surfxml_cluster_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_cluster>");} surfxml_cluster_core_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_core);
7233         YY_BREAK
7234 case 255:
7235 /* rule 255 can match eol */
7236 YY_RULE_SETUP
7237 if (surfxml_cluster_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_cluster>");}  surfxml_cluster_core_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_core);
7238         YY_BREAK
7239 case 256:
7240 /* rule 256 can match eol */
7241 YY_RULE_SETUP
7242 if (surfxml_cluster_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cluster>");} surfxml_cluster_bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bw);
7243         YY_BREAK
7244 case 257:
7245 /* rule 257 can match eol */
7246 YY_RULE_SETUP
7247 if (surfxml_cluster_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cluster>");}  surfxml_cluster_bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bw);
7248         YY_BREAK
7249 case 258:
7250 /* rule 258 can match eol */
7251 YY_RULE_SETUP
7252 if (surfxml_cluster_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cluster>");} surfxml_cluster_lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_lat);
7253         YY_BREAK
7254 case 259:
7255 /* rule 259 can match eol */
7256 YY_RULE_SETUP
7257 if (surfxml_cluster_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cluster>");}  surfxml_cluster_lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_lat);
7258         YY_BREAK
7259 case 260:
7260 /* rule 260 can match eol */
7261 case 261:
7262 /* rule 261 can match eol */
7263 YY_RULE_SETUP
7264 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_SHARED;
7265         YY_BREAK
7266 case 262:
7267 /* rule 262 can match eol */
7268 case 263:
7269 /* rule 263 can match eol */
7270 YY_RULE_SETUP
7271 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
7272         YY_BREAK
7273 case 264:
7274 /* rule 264 can match eol */
7275 case 265:
7276 /* rule 265 can match eol */
7277 YY_RULE_SETUP
7278 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FATPIPE;
7279         YY_BREAK
7280 case 266:
7281 /* rule 266 can match eol */
7282 YY_RULE_SETUP
7283 if (surfxml_cluster_bb___bw_isset != 0) {FAIL("Multiple definition of attribute bb_bw in <surfxml_cluster>");} surfxml_cluster_bb___bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bb___bw);
7284         YY_BREAK
7285 case 267:
7286 /* rule 267 can match eol */
7287 YY_RULE_SETUP
7288 if (surfxml_cluster_bb___bw_isset != 0) {FAIL("Multiple definition of attribute bb_bw in <surfxml_cluster>");}  surfxml_cluster_bb___bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bb___bw);
7289         YY_BREAK
7290 case 268:
7291 /* rule 268 can match eol */
7292 YY_RULE_SETUP
7293 if (surfxml_cluster_bb___lat_isset != 0) {FAIL("Multiple definition of attribute bb_lat in <surfxml_cluster>");} surfxml_cluster_bb___lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bb___lat);
7294         YY_BREAK
7295 case 269:
7296 /* rule 269 can match eol */
7297 YY_RULE_SETUP
7298 if (surfxml_cluster_bb___lat_isset != 0) {FAIL("Multiple definition of attribute bb_lat in <surfxml_cluster>");}  surfxml_cluster_bb___lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bb___lat);
7299         YY_BREAK
7300 case 270:
7301 /* rule 270 can match eol */
7302 case 271:
7303 /* rule 271 can match eol */
7304 YY_RULE_SETUP
7305 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
7306         YY_BREAK
7307 case 272:
7308 /* rule 272 can match eol */
7309 case 273:
7310 /* rule 273 can match eol */
7311 YY_RULE_SETUP
7312 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_FATPIPE;
7313         YY_BREAK
7314 case 274:
7315 /* rule 274 can match eol */
7316 YY_RULE_SETUP
7317 if (surfxml_cluster_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_cluster>");} surfxml_cluster_availability___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_availability___file);
7318         YY_BREAK
7319 case 275:
7320 /* rule 275 can match eol */
7321 YY_RULE_SETUP
7322 if (surfxml_cluster_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_cluster>");}  surfxml_cluster_availability___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_availability___file);
7323         YY_BREAK
7324 case 276:
7325 /* rule 276 can match eol */
7326 YY_RULE_SETUP
7327 if (surfxml_cluster_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_cluster>");} surfxml_cluster_state___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_state___file);
7328         YY_BREAK
7329 case 277:
7330 /* rule 277 can match eol */
7331 YY_RULE_SETUP
7332 if (surfxml_cluster_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_cluster>");}  surfxml_cluster_state___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_state___file);
7333         YY_BREAK
7334 case 278:
7335 /* rule 278 can match eol */
7336 YY_RULE_SETUP
7337 if (surfxml_cluster_router___id_isset != 0) {FAIL("Multiple definition of attribute router_id in <surfxml_cluster>");} surfxml_cluster_router___id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_router___id);
7338         YY_BREAK
7339 case 279:
7340 /* rule 279 can match eol */
7341 YY_RULE_SETUP
7342 if (surfxml_cluster_router___id_isset != 0) {FAIL("Multiple definition of attribute router_id in <surfxml_cluster>");}  surfxml_cluster_router___id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_router___id);
7343         YY_BREAK
7344 case 280:
7345 /* rule 280 can match eol */
7346 YY_RULE_SETUP
7347 if (surfxml_cluster_limiter___link_isset != 0) {FAIL("Multiple definition of attribute limiter_link in <surfxml_cluster>");} surfxml_cluster_limiter___link_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_limiter___link);
7348         YY_BREAK
7349 case 281:
7350 /* rule 281 can match eol */
7351 YY_RULE_SETUP
7352 if (surfxml_cluster_limiter___link_isset != 0) {FAIL("Multiple definition of attribute limiter_link in <surfxml_cluster>");}  surfxml_cluster_limiter___link_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_limiter___link);
7353         YY_BREAK
7354 case 282:
7355 /* rule 282 can match eol */
7356 YY_RULE_SETUP
7357 if (surfxml_cluster_loopback___bw_isset != 0) {FAIL("Multiple definition of attribute loopback_bw in <surfxml_cluster>");} surfxml_cluster_loopback___bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_loopback___bw);
7358         YY_BREAK
7359 case 283:
7360 /* rule 283 can match eol */
7361 YY_RULE_SETUP
7362 if (surfxml_cluster_loopback___bw_isset != 0) {FAIL("Multiple definition of attribute loopback_bw in <surfxml_cluster>");}  surfxml_cluster_loopback___bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_loopback___bw);
7363         YY_BREAK
7364 case 284:
7365 /* rule 284 can match eol */
7366 YY_RULE_SETUP
7367 if (surfxml_cluster_loopback___lat_isset != 0) {FAIL("Multiple definition of attribute loopback_lat in <surfxml_cluster>");} surfxml_cluster_loopback___lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_loopback___lat);
7368         YY_BREAK
7369 case 285:
7370 /* rule 285 can match eol */
7371 YY_RULE_SETUP
7372 if (surfxml_cluster_loopback___lat_isset != 0) {FAIL("Multiple definition of attribute loopback_lat in <surfxml_cluster>");}  surfxml_cluster_loopback___lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_loopback___lat);
7373         YY_BREAK
7374 case 286:
7375 YY_RULE_SETUP
7376 {
7377   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7378   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7379   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7380   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7381   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
7382   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7383   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7384   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cluster);
7385  }
7386         YY_BREAK
7387 case 287:
7388 YY_RULE_SETUP
7389 {
7390   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7391   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7392   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7393   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7394   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
7395   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7396   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7397   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
7398   switch (YY_START) {
7399    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
7400    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7401    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7402   }
7403  }
7404         YY_BREAK
7405 case 288:
7406 YY_RULE_SETUP
7407 FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
7408         YY_BREAK
7409 case 289:
7410 YY_RULE_SETUP
7411 FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
7412         YY_BREAK
7413 case YY_STATE_EOF(AL_surfxml_cluster):
7414 FAIL("EOF in attribute list of `cluster' element.");
7415         YY_BREAK
7416
7417 case 290:
7418 /* rule 290 can match eol */
7419 YY_RULE_SETUP
7420 {
7421   LEAVE;
7422   ETag_surfxml_cluster();
7423   popbuffer(); /* attribute */
7424   switch (YY_START) {
7425    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
7426    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7427    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7428   }
7429  }
7430         YY_BREAK
7431 case 291:
7432 /* rule 291 can match eol */
7433 YY_RULE_SETUP
7434 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
7435         YY_BREAK
7436 case 292:
7437 YY_RULE_SETUP
7438 FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
7439         YY_BREAK
7440 case YY_STATE_EOF(E_surfxml_cluster):
7441 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cluster>' expected.");
7442         YY_BREAK
7443
7444 case 293:
7445 /* rule 293 can match eol */
7446 YY_RULE_SETUP
7447 FAIL("Starting tag <cabinet> is not allowed here.");
7448         YY_BREAK
7449 case 294:
7450 /* rule 294 can match eol */
7451 YY_RULE_SETUP
7452 {
7453   AX_surfxml_cabinet_id = 0;
7454   surfxml_cabinet_id_isset = 0;
7455   AX_surfxml_cabinet_prefix = 0;
7456   surfxml_cabinet_prefix_isset = 0;
7457   AX_surfxml_cabinet_suffix = 0;
7458   surfxml_cabinet_suffix_isset = 0;
7459   AX_surfxml_cabinet_radical = 0;
7460   surfxml_cabinet_radical_isset = 0;
7461   AX_surfxml_cabinet_power = 0;
7462   surfxml_cabinet_power_isset = 0;
7463   AX_surfxml_cabinet_bw = 0;
7464   surfxml_cabinet_bw_isset = 0;
7465   AX_surfxml_cabinet_lat = 0;
7466   surfxml_cabinet_lat_isset = 0;
7467   ENTER(AL_surfxml_cabinet); pushbuffer(0);
7468   }
7469         YY_BREAK
7470
7471 case 295:
7472 /* rule 295 can match eol */
7473 YY_RULE_SETUP
7474 if (surfxml_cabinet_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cabinet>");} surfxml_cabinet_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_id);
7475         YY_BREAK
7476 case 296:
7477 /* rule 296 can match eol */
7478 YY_RULE_SETUP
7479 if (surfxml_cabinet_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cabinet>");}  surfxml_cabinet_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_id);
7480         YY_BREAK
7481 case 297:
7482 /* rule 297 can match eol */
7483 YY_RULE_SETUP
7484 if (surfxml_cabinet_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cabinet>");} surfxml_cabinet_prefix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_prefix);
7485         YY_BREAK
7486 case 298:
7487 /* rule 298 can match eol */
7488 YY_RULE_SETUP
7489 if (surfxml_cabinet_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cabinet>");}  surfxml_cabinet_prefix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_prefix);
7490         YY_BREAK
7491 case 299:
7492 /* rule 299 can match eol */
7493 YY_RULE_SETUP
7494 if (surfxml_cabinet_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cabinet>");} surfxml_cabinet_suffix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_suffix);
7495         YY_BREAK
7496 case 300:
7497 /* rule 300 can match eol */
7498 YY_RULE_SETUP
7499 if (surfxml_cabinet_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cabinet>");}  surfxml_cabinet_suffix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_suffix);
7500         YY_BREAK
7501 case 301:
7502 /* rule 301 can match eol */
7503 YY_RULE_SETUP
7504 if (surfxml_cabinet_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cabinet>");} surfxml_cabinet_radical_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_radical);
7505         YY_BREAK
7506 case 302:
7507 /* rule 302 can match eol */
7508 YY_RULE_SETUP
7509 if (surfxml_cabinet_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cabinet>");}  surfxml_cabinet_radical_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_radical);
7510         YY_BREAK
7511 case 303:
7512 /* rule 303 can match eol */
7513 YY_RULE_SETUP
7514 if (surfxml_cabinet_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cabinet>");} surfxml_cabinet_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_power);
7515         YY_BREAK
7516 case 304:
7517 /* rule 304 can match eol */
7518 YY_RULE_SETUP
7519 if (surfxml_cabinet_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cabinet>");}  surfxml_cabinet_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_power);
7520         YY_BREAK
7521 case 305:
7522 /* rule 305 can match eol */
7523 YY_RULE_SETUP
7524 if (surfxml_cabinet_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cabinet>");} surfxml_cabinet_bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_bw);
7525         YY_BREAK
7526 case 306:
7527 /* rule 306 can match eol */
7528 YY_RULE_SETUP
7529 if (surfxml_cabinet_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cabinet>");}  surfxml_cabinet_bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_bw);
7530         YY_BREAK
7531 case 307:
7532 /* rule 307 can match eol */
7533 YY_RULE_SETUP
7534 if (surfxml_cabinet_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cabinet>");} surfxml_cabinet_lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_lat);
7535         YY_BREAK
7536 case 308:
7537 /* rule 308 can match eol */
7538 YY_RULE_SETUP
7539 if (surfxml_cabinet_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cabinet>");}  surfxml_cabinet_lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_lat);
7540         YY_BREAK
7541 case 309:
7542 YY_RULE_SETUP
7543 {
7544   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7545   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7546   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7547   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7548   if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
7549   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7550   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7551   LEAVE; STag_surfxml_cabinet();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cabinet);
7552  }
7553         YY_BREAK
7554 case 310:
7555 YY_RULE_SETUP
7556 {
7557   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7558   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7559   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7560   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7561   if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
7562   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7563   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7564   LEAVE; STag_surfxml_cabinet(); surfxml_pcdata_ix = 0; ETag_surfxml_cabinet(); popbuffer(); /* attribute */
7565   switch (YY_START) {
7566    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7567    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7568    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7569    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7570   }
7571  }
7572         YY_BREAK
7573 case 311:
7574 YY_RULE_SETUP
7575 FAIL("Unexpected character `%c' in attribute list of cabinet element.", surf_parse_text[0]);
7576         YY_BREAK
7577 case 312:
7578 YY_RULE_SETUP
7579 FAIL("Bad attribute `%s' in `cabinet' element start tag.",surf_parse_text);
7580         YY_BREAK
7581 case YY_STATE_EOF(AL_surfxml_cabinet):
7582 FAIL("EOF in attribute list of `cabinet' element.");
7583         YY_BREAK
7584
7585 case 313:
7586 /* rule 313 can match eol */
7587 YY_RULE_SETUP
7588 {
7589   LEAVE;
7590   ETag_surfxml_cabinet();
7591   popbuffer(); /* attribute */
7592   switch (YY_START) {
7593    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7594    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7595    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7596    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7597   }
7598  }
7599         YY_BREAK
7600 case 314:
7601 /* rule 314 can match eol */
7602 YY_RULE_SETUP
7603 FAIL("Unexpected end-tag `%s': `</cabinet>' expected.",surf_parse_text);
7604         YY_BREAK
7605 case 315:
7606 YY_RULE_SETUP
7607 FAIL("Unexpected character `%c': `</cabinet>' expected.",surf_parse_text[0]);
7608         YY_BREAK
7609 case YY_STATE_EOF(E_surfxml_cabinet):
7610 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cabinet>' expected.");
7611         YY_BREAK
7612
7613 case 316:
7614 /* rule 316 can match eol */
7615 YY_RULE_SETUP
7616 FAIL("Starting tag <peer> is not allowed here.");
7617         YY_BREAK
7618 case 317:
7619 /* rule 317 can match eol */
7620 YY_RULE_SETUP
7621 {
7622   AX_surfxml_peer_id = 0;
7623   surfxml_peer_id_isset = 0;
7624   AX_surfxml_peer_power = 0;
7625   surfxml_peer_power_isset = 0;
7626   AX_surfxml_peer_bw___in = 0;
7627   surfxml_peer_bw___in_isset = 0;
7628   AX_surfxml_peer_bw___out = 0;
7629   surfxml_peer_bw___out_isset = 0;
7630   AX_surfxml_peer_lat = 0;
7631   surfxml_peer_lat_isset = 0;
7632   AX_surfxml_peer_coordinates = 0;
7633   surfxml_peer_coordinates_isset = 0;
7634   AX_surfxml_peer_availability___file = 0;
7635   surfxml_peer_availability___file_isset = 0;
7636   AX_surfxml_peer_state___file = 0;
7637   surfxml_peer_state___file_isset = 0;
7638   ENTER(AL_surfxml_peer); pushbuffer(0);
7639   }
7640         YY_BREAK
7641
7642 case 318:
7643 /* rule 318 can match eol */
7644 YY_RULE_SETUP
7645 if (surfxml_peer_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_peer>");} surfxml_peer_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_id);
7646         YY_BREAK
7647 case 319:
7648 /* rule 319 can match eol */
7649 YY_RULE_SETUP
7650 if (surfxml_peer_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_peer>");}  surfxml_peer_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_id);
7651         YY_BREAK
7652 case 320:
7653 /* rule 320 can match eol */
7654 YY_RULE_SETUP
7655 if (surfxml_peer_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_peer>");} surfxml_peer_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_power);
7656         YY_BREAK
7657 case 321:
7658 /* rule 321 can match eol */
7659 YY_RULE_SETUP
7660 if (surfxml_peer_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_peer>");}  surfxml_peer_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_power);
7661         YY_BREAK
7662 case 322:
7663 /* rule 322 can match eol */
7664 YY_RULE_SETUP
7665 if (surfxml_peer_bw___in_isset != 0) {FAIL("Multiple definition of attribute bw_in in <surfxml_peer>");} surfxml_peer_bw___in_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_bw___in);
7666         YY_BREAK
7667 case 323:
7668 /* rule 323 can match eol */
7669 YY_RULE_SETUP
7670 if (surfxml_peer_bw___in_isset != 0) {FAIL("Multiple definition of attribute bw_in in <surfxml_peer>");}  surfxml_peer_bw___in_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_bw___in);
7671         YY_BREAK
7672 case 324:
7673 /* rule 324 can match eol */
7674 YY_RULE_SETUP
7675 if (surfxml_peer_bw___out_isset != 0) {FAIL("Multiple definition of attribute bw_out in <surfxml_peer>");} surfxml_peer_bw___out_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_bw___out);
7676         YY_BREAK
7677 case 325:
7678 /* rule 325 can match eol */
7679 YY_RULE_SETUP
7680 if (surfxml_peer_bw___out_isset != 0) {FAIL("Multiple definition of attribute bw_out in <surfxml_peer>");}  surfxml_peer_bw___out_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_bw___out);
7681         YY_BREAK
7682 case 326:
7683 /* rule 326 can match eol */
7684 YY_RULE_SETUP
7685 if (surfxml_peer_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_peer>");} surfxml_peer_lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_lat);
7686         YY_BREAK
7687 case 327:
7688 /* rule 327 can match eol */
7689 YY_RULE_SETUP
7690 if (surfxml_peer_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_peer>");}  surfxml_peer_lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_lat);
7691         YY_BREAK
7692 case 328:
7693 /* rule 328 can match eol */
7694 YY_RULE_SETUP
7695 if (surfxml_peer_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_peer>");} surfxml_peer_coordinates_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_coordinates);
7696         YY_BREAK
7697 case 329:
7698 /* rule 329 can match eol */
7699 YY_RULE_SETUP
7700 if (surfxml_peer_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_peer>");}  surfxml_peer_coordinates_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_coordinates);
7701         YY_BREAK
7702 case 330:
7703 /* rule 330 can match eol */
7704 YY_RULE_SETUP
7705 if (surfxml_peer_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_peer>");} surfxml_peer_availability___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_availability___file);
7706         YY_BREAK
7707 case 331:
7708 /* rule 331 can match eol */
7709 YY_RULE_SETUP
7710 if (surfxml_peer_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_peer>");}  surfxml_peer_availability___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_availability___file);
7711         YY_BREAK
7712 case 332:
7713 /* rule 332 can match eol */
7714 YY_RULE_SETUP
7715 if (surfxml_peer_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_peer>");} surfxml_peer_state___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_state___file);
7716         YY_BREAK
7717 case 333:
7718 /* rule 333 can match eol */
7719 YY_RULE_SETUP
7720 if (surfxml_peer_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_peer>");}  surfxml_peer_state___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_state___file);
7721         YY_BREAK
7722 case 334:
7723 YY_RULE_SETUP
7724 {
7725   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
7726   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
7727   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
7728   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
7729   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
7730   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
7731  }
7732         YY_BREAK
7733 case 335:
7734 YY_RULE_SETUP
7735 {
7736   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
7737   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
7738   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
7739   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
7740   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
7741   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
7742   switch (YY_START) {
7743    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
7744    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7745    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7746   }
7747  }
7748         YY_BREAK
7749 case 336:
7750 YY_RULE_SETUP
7751 FAIL("Unexpected character `%c' in attribute list of peer element.", surf_parse_text[0]);
7752         YY_BREAK
7753 case 337:
7754 YY_RULE_SETUP
7755 FAIL("Bad attribute `%s' in `peer' element start tag.",surf_parse_text);
7756         YY_BREAK
7757 case YY_STATE_EOF(AL_surfxml_peer):
7758 FAIL("EOF in attribute list of `peer' element.");
7759         YY_BREAK
7760
7761 case 338:
7762 /* rule 338 can match eol */
7763 YY_RULE_SETUP
7764 {
7765   LEAVE;
7766   ETag_surfxml_peer();
7767   popbuffer(); /* attribute */
7768   switch (YY_START) {
7769    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
7770    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7771    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7772   }
7773  }
7774         YY_BREAK
7775 case 339:
7776 /* rule 339 can match eol */
7777 YY_RULE_SETUP
7778 FAIL("Unexpected end-tag `%s': `</peer>' expected.",surf_parse_text);
7779         YY_BREAK
7780 case 340:
7781 YY_RULE_SETUP
7782 FAIL("Unexpected character `%c': `</peer>' expected.",surf_parse_text[0]);
7783         YY_BREAK
7784 case YY_STATE_EOF(E_surfxml_peer):
7785 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</peer>' expected.");
7786         YY_BREAK
7787
7788 case 341:
7789 /* rule 341 can match eol */
7790 YY_RULE_SETUP
7791 FAIL("Starting tag <router> is not allowed here.");
7792         YY_BREAK
7793 case 342:
7794 /* rule 342 can match eol */
7795 YY_RULE_SETUP
7796 {
7797   AX_surfxml_router_id = 0;
7798   surfxml_router_id_isset = 0;
7799   AX_surfxml_router_coordinates = 0;
7800   surfxml_router_coordinates_isset = 0;
7801   ENTER(AL_surfxml_router); pushbuffer(0);
7802   }
7803         YY_BREAK
7804
7805 case 343:
7806 /* rule 343 can match eol */
7807 YY_RULE_SETUP
7808 if (surfxml_router_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_router>");} surfxml_router_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_router_id);
7809         YY_BREAK
7810 case 344:
7811 /* rule 344 can match eol */
7812 YY_RULE_SETUP
7813 if (surfxml_router_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_router>");}  surfxml_router_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_router_id);
7814         YY_BREAK
7815 case 345:
7816 /* rule 345 can match eol */
7817 YY_RULE_SETUP
7818 if (surfxml_router_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_router>");} surfxml_router_coordinates_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_router_coordinates);
7819         YY_BREAK
7820 case 346:
7821 /* rule 346 can match eol */
7822 YY_RULE_SETUP
7823 if (surfxml_router_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_router>");}  surfxml_router_coordinates_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_router_coordinates);
7824         YY_BREAK
7825 case 347:
7826 YY_RULE_SETUP
7827 {
7828   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
7829   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
7830  }
7831         YY_BREAK
7832 case 348:
7833 YY_RULE_SETUP
7834 {
7835   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
7836   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
7837   switch (YY_START) {
7838    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7839   }
7840  }
7841         YY_BREAK
7842 case 349:
7843 YY_RULE_SETUP
7844 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
7845         YY_BREAK
7846 case 350:
7847 YY_RULE_SETUP
7848 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
7849         YY_BREAK
7850 case YY_STATE_EOF(AL_surfxml_router):
7851 FAIL("EOF in attribute list of `router' element.");
7852         YY_BREAK
7853
7854 case 351:
7855 /* rule 351 can match eol */
7856 YY_RULE_SETUP
7857 {
7858   LEAVE;
7859   ETag_surfxml_router();
7860   popbuffer(); /* attribute */
7861   switch (YY_START) {
7862    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7863   }
7864  }
7865         YY_BREAK
7866 case 352:
7867 /* rule 352 can match eol */
7868 YY_RULE_SETUP
7869 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
7870         YY_BREAK
7871 case 353:
7872 YY_RULE_SETUP
7873 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
7874         YY_BREAK
7875 case YY_STATE_EOF(E_surfxml_router):
7876 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</router>' expected.");
7877         YY_BREAK
7878
7879 case 354:
7880 /* rule 354 can match eol */
7881 YY_RULE_SETUP
7882 FAIL("Starting tag <backbone> is not allowed here.");
7883         YY_BREAK
7884 case 355:
7885 /* rule 355 can match eol */
7886 YY_RULE_SETUP
7887 {
7888   AX_surfxml_backbone_id = 0;
7889   surfxml_backbone_id_isset = 0;
7890   AX_surfxml_backbone_bandwidth = 0;
7891   surfxml_backbone_bandwidth_isset = 0;
7892   AX_surfxml_backbone_latency = 0;
7893   surfxml_backbone_latency_isset = 0;
7894   ENTER(AL_surfxml_backbone); pushbuffer(0);
7895   }
7896         YY_BREAK
7897
7898 case 356:
7899 /* rule 356 can match eol */
7900 YY_RULE_SETUP
7901 if (surfxml_backbone_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_backbone>");} surfxml_backbone_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_id);
7902         YY_BREAK
7903 case 357:
7904 /* rule 357 can match eol */
7905 YY_RULE_SETUP
7906 if (surfxml_backbone_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_backbone>");}  surfxml_backbone_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_id);
7907         YY_BREAK
7908 case 358:
7909 /* rule 358 can match eol */
7910 YY_RULE_SETUP
7911 if (surfxml_backbone_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_backbone>");} surfxml_backbone_bandwidth_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_bandwidth);
7912         YY_BREAK
7913 case 359:
7914 /* rule 359 can match eol */
7915 YY_RULE_SETUP
7916 if (surfxml_backbone_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_backbone>");}  surfxml_backbone_bandwidth_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_bandwidth);
7917         YY_BREAK
7918 case 360:
7919 /* rule 360 can match eol */
7920 YY_RULE_SETUP
7921 if (surfxml_backbone_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_backbone>");} surfxml_backbone_latency_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_latency);
7922         YY_BREAK
7923 case 361:
7924 /* rule 361 can match eol */
7925 YY_RULE_SETUP
7926 if (surfxml_backbone_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_backbone>");}  surfxml_backbone_latency_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_latency);
7927         YY_BREAK
7928 case 362:
7929 YY_RULE_SETUP
7930 {
7931   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
7932   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
7933   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
7934   LEAVE; STag_surfxml_backbone();surfxml_pcdata_ix = 0; ENTER(E_surfxml_backbone);
7935  }
7936         YY_BREAK
7937 case 363:
7938 YY_RULE_SETUP
7939 {
7940   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
7941   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
7942   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
7943   LEAVE; STag_surfxml_backbone(); surfxml_pcdata_ix = 0; ETag_surfxml_backbone(); popbuffer(); /* attribute */
7944   switch (YY_START) {
7945    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7946    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7947   }
7948  }
7949         YY_BREAK
7950 case 364:
7951 YY_RULE_SETUP
7952 FAIL("Unexpected character `%c' in attribute list of backbone element.", surf_parse_text[0]);
7953         YY_BREAK
7954 case 365:
7955 YY_RULE_SETUP
7956 FAIL("Bad attribute `%s' in `backbone' element start tag.",surf_parse_text);
7957         YY_BREAK
7958 case YY_STATE_EOF(AL_surfxml_backbone):
7959 FAIL("EOF in attribute list of `backbone' element.");
7960         YY_BREAK
7961
7962 case 366:
7963 /* rule 366 can match eol */
7964 YY_RULE_SETUP
7965 {
7966   LEAVE;
7967   ETag_surfxml_backbone();
7968   popbuffer(); /* attribute */
7969   switch (YY_START) {
7970    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7971    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7972   }
7973  }
7974         YY_BREAK
7975 case 367:
7976 /* rule 367 can match eol */
7977 YY_RULE_SETUP
7978 FAIL("Unexpected end-tag `%s': `</backbone>' expected.",surf_parse_text);
7979         YY_BREAK
7980 case 368:
7981 YY_RULE_SETUP
7982 FAIL("Unexpected character `%c': `</backbone>' expected.",surf_parse_text[0]);
7983         YY_BREAK
7984 case YY_STATE_EOF(E_surfxml_backbone):
7985 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</backbone>' expected.");
7986         YY_BREAK
7987
7988 case 369:
7989 /* rule 369 can match eol */
7990 YY_RULE_SETUP
7991 FAIL("Starting tag <link> is not allowed here.");
7992         YY_BREAK
7993 case 370:
7994 /* rule 370 can match eol */
7995 YY_RULE_SETUP
7996 {
7997   AX_surfxml_link_id = 0;
7998   surfxml_link_id_isset = 0;
7999   AX_surfxml_link_bandwidth = 0;
8000   surfxml_link_bandwidth_isset = 0;
8001   AX_surfxml_link_bandwidth___file = 0;
8002   surfxml_link_bandwidth___file_isset = 0;
8003   AX_surfxml_link_latency = 24;
8004   surfxml_link_latency_isset = 0;
8005   AX_surfxml_link_latency___file = 0;
8006   surfxml_link_latency___file_isset = 0;
8007   AX_surfxml_link_state = A_surfxml_link_state_ON;
8008   surfxml_link_state_isset = 0;
8009   AX_surfxml_link_state___file = 0;
8010   surfxml_link_state___file_isset = 0;
8011   AX_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
8012   surfxml_link_sharing___policy_isset = 0;
8013   ENTER(AL_surfxml_link); pushbuffer(0);
8014   }
8015         YY_BREAK
8016
8017 case 371:
8018 /* rule 371 can match eol */
8019 YY_RULE_SETUP
8020 if (surfxml_link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link>");} surfxml_link_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_id);
8021         YY_BREAK
8022 case 372:
8023 /* rule 372 can match eol */
8024 YY_RULE_SETUP
8025 if (surfxml_link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link>");}  surfxml_link_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_id);
8026         YY_BREAK
8027 case 373:
8028 /* rule 373 can match eol */
8029 YY_RULE_SETUP
8030 if (surfxml_link_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_link>");} surfxml_link_bandwidth_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth);
8031         YY_BREAK
8032 case 374:
8033 /* rule 374 can match eol */
8034 YY_RULE_SETUP
8035 if (surfxml_link_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_link>");}  surfxml_link_bandwidth_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth);
8036         YY_BREAK
8037 case 375:
8038 /* rule 375 can match eol */
8039 YY_RULE_SETUP
8040 if (surfxml_link_bandwidth___file_isset != 0) {FAIL("Multiple definition of attribute bandwidth_file in <surfxml_link>");} surfxml_link_bandwidth___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth___file);
8041         YY_BREAK
8042 case 376:
8043 /* rule 376 can match eol */
8044 YY_RULE_SETUP
8045 if (surfxml_link_bandwidth___file_isset != 0) {FAIL("Multiple definition of attribute bandwidth_file in <surfxml_link>");}  surfxml_link_bandwidth___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth___file);
8046         YY_BREAK
8047 case 377:
8048 /* rule 377 can match eol */
8049 YY_RULE_SETUP
8050 if (surfxml_link_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_link>");} surfxml_link_latency_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency);
8051         YY_BREAK
8052 case 378:
8053 /* rule 378 can match eol */
8054 YY_RULE_SETUP
8055 if (surfxml_link_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_link>");}  surfxml_link_latency_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency);
8056         YY_BREAK
8057 case 379:
8058 /* rule 379 can match eol */
8059 YY_RULE_SETUP
8060 if (surfxml_link_latency___file_isset != 0) {FAIL("Multiple definition of attribute latency_file in <surfxml_link>");} surfxml_link_latency___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency___file);
8061         YY_BREAK
8062 case 380:
8063 /* rule 380 can match eol */
8064 YY_RULE_SETUP
8065 if (surfxml_link_latency___file_isset != 0) {FAIL("Multiple definition of attribute latency_file in <surfxml_link>");}  surfxml_link_latency___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency___file);
8066         YY_BREAK
8067 case 381:
8068 /* rule 381 can match eol */
8069 case 382:
8070 /* rule 382 can match eol */
8071 YY_RULE_SETUP
8072 A_surfxml_link_state = A_surfxml_link_state_ON;
8073         YY_BREAK
8074 case 383:
8075 /* rule 383 can match eol */
8076 case 384:
8077 /* rule 384 can match eol */
8078 YY_RULE_SETUP
8079 A_surfxml_link_state = A_surfxml_link_state_OFF;
8080         YY_BREAK
8081 case 385:
8082 /* rule 385 can match eol */
8083 YY_RULE_SETUP
8084 if (surfxml_link_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_link>");} surfxml_link_state___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_state___file);
8085         YY_BREAK
8086 case 386:
8087 /* rule 386 can match eol */
8088 YY_RULE_SETUP
8089 if (surfxml_link_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_link>");}  surfxml_link_state___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_state___file);
8090         YY_BREAK
8091 case 387:
8092 /* rule 387 can match eol */
8093 case 388:
8094 /* rule 388 can match eol */
8095 YY_RULE_SETUP
8096 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
8097         YY_BREAK
8098 case 389:
8099 /* rule 389 can match eol */
8100 case 390:
8101 /* rule 390 can match eol */
8102 YY_RULE_SETUP
8103 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FATPIPE;
8104         YY_BREAK
8105 case 391:
8106 /* rule 391 can match eol */
8107 case 392:
8108 /* rule 392 can match eol */
8109 YY_RULE_SETUP
8110 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FULLDUPLEX;
8111         YY_BREAK
8112 case 393:
8113 YY_RULE_SETUP
8114 {
8115   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
8116   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
8117   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
8118  }
8119         YY_BREAK
8120 case 394:
8121 YY_RULE_SETUP
8122 {
8123   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
8124   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
8125   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
8126   switch (YY_START) {
8127    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8128    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
8129   }
8130  }
8131         YY_BREAK
8132 case 395:
8133 YY_RULE_SETUP
8134 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
8135         YY_BREAK
8136 case 396:
8137 YY_RULE_SETUP
8138 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
8139         YY_BREAK
8140 case YY_STATE_EOF(AL_surfxml_link):
8141 FAIL("EOF in attribute list of `link' element.");
8142         YY_BREAK
8143
8144 case 397:
8145 /* rule 397 can match eol */
8146 YY_RULE_SETUP
8147 {
8148   LEAVE;
8149   ETag_surfxml_link();
8150   popbuffer(); /* attribute */
8151   switch (YY_START) {
8152    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8153    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
8154   }
8155  }
8156         YY_BREAK
8157 case 398:
8158 /* rule 398 can match eol */
8159 YY_RULE_SETUP
8160 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
8161         YY_BREAK
8162 case 399:
8163 YY_RULE_SETUP
8164 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
8165         YY_BREAK
8166 case YY_STATE_EOF(E_surfxml_link):
8167 case YY_STATE_EOF(S_surfxml_link_2):
8168 case YY_STATE_EOF(S_surfxml_link):
8169 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link>' expected.");
8170         YY_BREAK
8171
8172 case 400:
8173 /* rule 400 can match eol */
8174 YY_RULE_SETUP
8175 FAIL("Starting tag <route> is not allowed here.");
8176         YY_BREAK
8177 case 401:
8178 /* rule 401 can match eol */
8179 YY_RULE_SETUP
8180 {
8181   AX_surfxml_route_src = 0;
8182   surfxml_route_src_isset = 0;
8183   AX_surfxml_route_dst = 0;
8184   surfxml_route_dst_isset = 0;
8185   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
8186   surfxml_route_symmetrical_isset = 0;
8187   ENTER(AL_surfxml_route); pushbuffer(0);
8188   }
8189         YY_BREAK
8190
8191 case 402:
8192 /* rule 402 can match eol */
8193 YY_RULE_SETUP
8194 if (surfxml_route_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_route>");} surfxml_route_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_route_src);
8195         YY_BREAK
8196 case 403:
8197 /* rule 403 can match eol */
8198 YY_RULE_SETUP
8199 if (surfxml_route_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_route>");}  surfxml_route_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_route_src);
8200         YY_BREAK
8201 case 404:
8202 /* rule 404 can match eol */
8203 YY_RULE_SETUP
8204 if (surfxml_route_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_route>");} surfxml_route_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_route_dst);
8205         YY_BREAK
8206 case 405:
8207 /* rule 405 can match eol */
8208 YY_RULE_SETUP
8209 if (surfxml_route_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_route>");}  surfxml_route_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_route_dst);
8210         YY_BREAK
8211 case 406:
8212 /* rule 406 can match eol */
8213 case 407:
8214 /* rule 407 can match eol */
8215 YY_RULE_SETUP
8216 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
8217         YY_BREAK
8218 case 408:
8219 /* rule 408 can match eol */
8220 case 409:
8221 /* rule 409 can match eol */
8222 YY_RULE_SETUP
8223 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
8224         YY_BREAK
8225 case 410:
8226 YY_RULE_SETUP
8227 {
8228   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8229   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8230   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
8231  }
8232         YY_BREAK
8233 case 411:
8234 YY_RULE_SETUP
8235 {
8236   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8237   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8238   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
8239   switch (YY_START) {
8240    case S_surfxml_AS_12: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_15: case S_surfxml_AS_3: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
8241   }
8242  }
8243         YY_BREAK
8244 case 412:
8245 YY_RULE_SETUP
8246 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
8247         YY_BREAK
8248 case 413:
8249 YY_RULE_SETUP
8250 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
8251         YY_BREAK
8252 case YY_STATE_EOF(AL_surfxml_route):
8253 FAIL("EOF in attribute list of `route' element.");
8254         YY_BREAK
8255
8256 case 414:
8257 /* rule 414 can match eol */
8258 YY_RULE_SETUP
8259 {
8260   LEAVE;
8261   ETag_surfxml_route();
8262   popbuffer(); /* attribute */
8263   switch (YY_START) {
8264    case S_surfxml_AS_12: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_15: case S_surfxml_AS_3: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
8265   }
8266  }
8267         YY_BREAK
8268 case 415:
8269 /* rule 415 can match eol */
8270 YY_RULE_SETUP
8271 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
8272         YY_BREAK
8273 case 416:
8274 YY_RULE_SETUP
8275 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
8276         YY_BREAK
8277 case YY_STATE_EOF(S_surfxml_route):
8278 case YY_STATE_EOF(S_surfxml_route_2):
8279 case YY_STATE_EOF(E_surfxml_route):
8280 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</route>' expected.");
8281         YY_BREAK
8282
8283 case 417:
8284 /* rule 417 can match eol */
8285 YY_RULE_SETUP
8286 FAIL("Starting tag <ASroute> is not allowed here.");
8287         YY_BREAK
8288 case 418:
8289 /* rule 418 can match eol */
8290 YY_RULE_SETUP
8291 {
8292   AX_surfxml_ASroute_src = 0;
8293   surfxml_ASroute_src_isset = 0;
8294   AX_surfxml_ASroute_dst = 0;
8295   surfxml_ASroute_dst_isset = 0;
8296   AX_surfxml_ASroute_gw___src = 0;
8297   surfxml_ASroute_gw___src_isset = 0;
8298   AX_surfxml_ASroute_gw___dst = 0;
8299   surfxml_ASroute_gw___dst_isset = 0;
8300   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
8301   surfxml_ASroute_symmetrical_isset = 0;
8302   ENTER(AL_surfxml_ASroute); pushbuffer(0);
8303   }
8304         YY_BREAK
8305
8306 case 419:
8307 /* rule 419 can match eol */
8308 YY_RULE_SETUP
8309 if (surfxml_ASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_ASroute>");} surfxml_ASroute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_src);
8310         YY_BREAK
8311 case 420:
8312 /* rule 420 can match eol */
8313 YY_RULE_SETUP
8314 if (surfxml_ASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_ASroute>");}  surfxml_ASroute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_src);
8315         YY_BREAK
8316 case 421:
8317 /* rule 421 can match eol */
8318 YY_RULE_SETUP
8319 if (surfxml_ASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_ASroute>");} surfxml_ASroute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_dst);
8320         YY_BREAK
8321 case 422:
8322 /* rule 422 can match eol */
8323 YY_RULE_SETUP
8324 if (surfxml_ASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_ASroute>");}  surfxml_ASroute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_dst);
8325         YY_BREAK
8326 case 423:
8327 /* rule 423 can match eol */
8328 YY_RULE_SETUP
8329 if (surfxml_ASroute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_ASroute>");} surfxml_ASroute_gw___src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_gw___src);
8330         YY_BREAK
8331 case 424:
8332 /* rule 424 can match eol */
8333 YY_RULE_SETUP
8334 if (surfxml_ASroute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_ASroute>");}  surfxml_ASroute_gw___src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_gw___src);
8335         YY_BREAK
8336 case 425:
8337 /* rule 425 can match eol */
8338 YY_RULE_SETUP
8339 if (surfxml_ASroute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_ASroute>");} surfxml_ASroute_gw___dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_gw___dst);
8340         YY_BREAK
8341 case 426:
8342 /* rule 426 can match eol */
8343 YY_RULE_SETUP
8344 if (surfxml_ASroute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_ASroute>");}  surfxml_ASroute_gw___dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_gw___dst);
8345         YY_BREAK
8346 case 427:
8347 /* rule 427 can match eol */
8348 case 428:
8349 /* rule 428 can match eol */
8350 YY_RULE_SETUP
8351 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
8352         YY_BREAK
8353 case 429:
8354 /* rule 429 can match eol */
8355 case 430:
8356 /* rule 430 can match eol */
8357 YY_RULE_SETUP
8358 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
8359         YY_BREAK
8360 case 431:
8361 YY_RULE_SETUP
8362 {
8363   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
8364   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
8365   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
8366   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
8367   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
8368  }
8369         YY_BREAK
8370 case 432:
8371 YY_RULE_SETUP
8372 {
8373   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
8374   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
8375   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
8376   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
8377   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
8378   switch (YY_START) {
8379    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
8380   }
8381  }
8382         YY_BREAK
8383 case 433:
8384 YY_RULE_SETUP
8385 FAIL("Unexpected character `%c' in attribute list of ASroute element.", surf_parse_text[0]);
8386         YY_BREAK
8387 case 434:
8388 YY_RULE_SETUP
8389 FAIL("Bad attribute `%s' in `ASroute' element start tag.",surf_parse_text);
8390         YY_BREAK
8391 case YY_STATE_EOF(AL_surfxml_ASroute):
8392 FAIL("EOF in attribute list of `ASroute' element.");
8393         YY_BREAK
8394
8395 case 435:
8396 /* rule 435 can match eol */
8397 YY_RULE_SETUP
8398 {
8399   LEAVE;
8400   ETag_surfxml_ASroute();
8401   popbuffer(); /* attribute */
8402   switch (YY_START) {
8403    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
8404   }
8405  }
8406         YY_BREAK
8407 case 436:
8408 /* rule 436 can match eol */
8409 YY_RULE_SETUP
8410 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",surf_parse_text);
8411         YY_BREAK
8412 case 437:
8413 YY_RULE_SETUP
8414 FAIL("Unexpected character `%c': `</ASroute>' expected.",surf_parse_text[0]);
8415         YY_BREAK
8416 case YY_STATE_EOF(E_surfxml_ASroute):
8417 case YY_STATE_EOF(S_surfxml_ASroute):
8418 case YY_STATE_EOF(S_surfxml_ASroute_2):
8419 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</ASroute>' expected.");
8420         YY_BREAK
8421
8422 case 438:
8423 /* rule 438 can match eol */
8424 YY_RULE_SETUP
8425 FAIL("Starting tag <link_ctn> is not allowed here.");
8426         YY_BREAK
8427 case 439:
8428 /* rule 439 can match eol */
8429 YY_RULE_SETUP
8430 {
8431   AX_surfxml_link___ctn_id = 0;
8432   surfxml_link___ctn_id_isset = 0;
8433   AX_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
8434   surfxml_link___ctn_direction_isset = 0;
8435   ENTER(AL_surfxml_link___ctn); pushbuffer(0);
8436   }
8437         YY_BREAK
8438
8439 case 440:
8440 /* rule 440 can match eol */
8441 YY_RULE_SETUP
8442 if (surfxml_link___ctn_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link___ctn>");} surfxml_link___ctn_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link___ctn_id);
8443         YY_BREAK
8444 case 441:
8445 /* rule 441 can match eol */
8446 YY_RULE_SETUP
8447 if (surfxml_link___ctn_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link___ctn>");}  surfxml_link___ctn_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link___ctn_id);
8448         YY_BREAK
8449 case 442:
8450 /* rule 442 can match eol */
8451 case 443:
8452 /* rule 443 can match eol */
8453 YY_RULE_SETUP
8454 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_UP;
8455         YY_BREAK
8456 case 444:
8457 /* rule 444 can match eol */
8458 case 445:
8459 /* rule 445 can match eol */
8460 YY_RULE_SETUP
8461 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_DOWN;
8462         YY_BREAK
8463 case 446:
8464 /* rule 446 can match eol */
8465 case 447:
8466 /* rule 447 can match eol */
8467 YY_RULE_SETUP
8468 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
8469         YY_BREAK
8470 case 448:
8471 YY_RULE_SETUP
8472 {
8473   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8474   LEAVE; STag_surfxml_link___ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link___ctn);
8475  }
8476         YY_BREAK
8477 case 449:
8478 YY_RULE_SETUP
8479 {
8480   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8481   LEAVE; STag_surfxml_link___ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link___ctn(); popbuffer(); /* attribute */
8482   switch (YY_START) {
8483    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
8484    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
8485    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
8486    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
8487   }
8488  }
8489         YY_BREAK
8490 case 450:
8491 YY_RULE_SETUP
8492 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", surf_parse_text[0]);
8493         YY_BREAK
8494 case 451:
8495 YY_RULE_SETUP
8496 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",surf_parse_text);
8497         YY_BREAK
8498 case YY_STATE_EOF(AL_surfxml_link___ctn):
8499 FAIL("EOF in attribute list of `link_ctn' element.");
8500         YY_BREAK
8501
8502 case 452:
8503 /* rule 452 can match eol */
8504 YY_RULE_SETUP
8505 {
8506   LEAVE;
8507   ETag_surfxml_link___ctn();
8508   popbuffer(); /* attribute */
8509   switch (YY_START) {
8510    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
8511    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
8512    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
8513    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
8514   }
8515  }
8516         YY_BREAK
8517 case 453:
8518 /* rule 453 can match eol */
8519 YY_RULE_SETUP
8520 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",surf_parse_text);
8521         YY_BREAK
8522 case 454:
8523 YY_RULE_SETUP
8524 FAIL("Unexpected character `%c': `</link_ctn>' expected.",surf_parse_text[0]);
8525         YY_BREAK
8526 case YY_STATE_EOF(E_surfxml_link___ctn):
8527 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link_ctn>' expected.");
8528         YY_BREAK
8529
8530 case 455:
8531 /* rule 455 can match eol */
8532 YY_RULE_SETUP
8533 FAIL("Starting tag <bypassRoute> is not allowed here.");
8534         YY_BREAK
8535 case 456:
8536 /* rule 456 can match eol */
8537 YY_RULE_SETUP
8538 {
8539   AX_surfxml_bypassRoute_src = 0;
8540   surfxml_bypassRoute_src_isset = 0;
8541   AX_surfxml_bypassRoute_dst = 0;
8542   surfxml_bypassRoute_dst_isset = 0;
8543   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
8544   }
8545         YY_BREAK
8546
8547 case 457:
8548 /* rule 457 can match eol */
8549 YY_RULE_SETUP
8550 if (surfxml_bypassRoute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassRoute>");} surfxml_bypassRoute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_src);
8551         YY_BREAK
8552 case 458:
8553 /* rule 458 can match eol */
8554 YY_RULE_SETUP
8555 if (surfxml_bypassRoute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassRoute>");}  surfxml_bypassRoute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_src);
8556         YY_BREAK
8557 case 459:
8558 /* rule 459 can match eol */
8559 YY_RULE_SETUP
8560 if (surfxml_bypassRoute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassRoute>");} surfxml_bypassRoute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_dst);
8561         YY_BREAK
8562 case 460:
8563 /* rule 460 can match eol */
8564 YY_RULE_SETUP
8565 if (surfxml_bypassRoute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassRoute>");}  surfxml_bypassRoute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_dst);
8566         YY_BREAK
8567 case 461:
8568 YY_RULE_SETUP
8569 {
8570   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
8571   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
8572   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
8573  }
8574         YY_BREAK
8575 case 462:
8576 YY_RULE_SETUP
8577 {
8578   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
8579   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
8580   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
8581   switch (YY_START) {
8582    case S_surfxml_AS_12: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_15: case S_surfxml_AS_3: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
8583   }
8584  }
8585         YY_BREAK
8586 case 463:
8587 YY_RULE_SETUP
8588 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", surf_parse_text[0]);
8589         YY_BREAK
8590 case 464:
8591 YY_RULE_SETUP
8592 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",surf_parse_text);
8593         YY_BREAK
8594 case YY_STATE_EOF(AL_surfxml_bypassRoute):
8595 FAIL("EOF in attribute list of `bypassRoute' element.");
8596         YY_BREAK
8597
8598 case 465:
8599 /* rule 465 can match eol */
8600 YY_RULE_SETUP
8601 {
8602   LEAVE;
8603   ETag_surfxml_bypassRoute();
8604   popbuffer(); /* attribute */
8605   switch (YY_START) {
8606    case S_surfxml_AS_12: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_15: case S_surfxml_AS_3: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
8607   }
8608  }
8609         YY_BREAK
8610 case 466:
8611 /* rule 466 can match eol */
8612 YY_RULE_SETUP
8613 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",surf_parse_text);
8614         YY_BREAK
8615 case 467:
8616 YY_RULE_SETUP
8617 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",surf_parse_text[0]);
8618         YY_BREAK
8619 case YY_STATE_EOF(S_surfxml_bypassRoute):
8620 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
8621 case YY_STATE_EOF(E_surfxml_bypassRoute):
8622 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassRoute>' expected.");
8623         YY_BREAK
8624
8625 case 468:
8626 /* rule 468 can match eol */
8627 YY_RULE_SETUP
8628 FAIL("Starting tag <bypassASroute> is not allowed here.");
8629         YY_BREAK
8630 case 469:
8631 /* rule 469 can match eol */
8632 YY_RULE_SETUP
8633 {
8634   AX_surfxml_bypassASroute_src = 0;
8635   surfxml_bypassASroute_src_isset = 0;
8636   AX_surfxml_bypassASroute_dst = 0;
8637   surfxml_bypassASroute_dst_isset = 0;
8638   AX_surfxml_bypassASroute_gw___src = 0;
8639   surfxml_bypassASroute_gw___src_isset = 0;
8640   AX_surfxml_bypassASroute_gw___dst = 0;
8641   surfxml_bypassASroute_gw___dst_isset = 0;
8642   ENTER(AL_surfxml_bypassASroute); pushbuffer(0);
8643   }
8644         YY_BREAK
8645
8646 case 470:
8647 /* rule 470 can match eol */
8648 YY_RULE_SETUP
8649 if (surfxml_bypassASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassASroute>");} surfxml_bypassASroute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_src);
8650         YY_BREAK
8651 case 471:
8652 /* rule 471 can match eol */
8653 YY_RULE_SETUP
8654 if (surfxml_bypassASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassASroute>");}  surfxml_bypassASroute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_src);
8655         YY_BREAK
8656 case 472:
8657 /* rule 472 can match eol */
8658 YY_RULE_SETUP
8659 if (surfxml_bypassASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassASroute>");} surfxml_bypassASroute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_dst);
8660         YY_BREAK
8661 case 473:
8662 /* rule 473 can match eol */
8663 YY_RULE_SETUP
8664 if (surfxml_bypassASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassASroute>");}  surfxml_bypassASroute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_dst);
8665         YY_BREAK
8666 case 474:
8667 /* rule 474 can match eol */
8668 YY_RULE_SETUP
8669 if (surfxml_bypassASroute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_bypassASroute>");} surfxml_bypassASroute_gw___src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_gw___src);
8670         YY_BREAK
8671 case 475:
8672 /* rule 475 can match eol */
8673 YY_RULE_SETUP
8674 if (surfxml_bypassASroute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_bypassASroute>");}  surfxml_bypassASroute_gw___src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_gw___src);
8675         YY_BREAK
8676 case 476:
8677 /* rule 476 can match eol */
8678 YY_RULE_SETUP
8679 if (surfxml_bypassASroute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_bypassASroute>");} surfxml_bypassASroute_gw___dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_gw___dst);
8680         YY_BREAK
8681 case 477:
8682 /* rule 477 can match eol */
8683 YY_RULE_SETUP
8684 if (surfxml_bypassASroute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_bypassASroute>");}  surfxml_bypassASroute_gw___dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_gw___dst);
8685         YY_BREAK
8686 case 478:
8687 YY_RULE_SETUP
8688 {
8689   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
8690   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
8691   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
8692   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
8693   LEAVE; STag_surfxml_bypassASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassASroute);
8694  }
8695         YY_BREAK
8696 case 479:
8697 YY_RULE_SETUP
8698 {
8699   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
8700   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
8701   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
8702   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
8703   LEAVE; STag_surfxml_bypassASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */
8704   switch (YY_START) {
8705    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
8706   }
8707  }
8708         YY_BREAK
8709 case 480:
8710 YY_RULE_SETUP
8711 FAIL("Unexpected character `%c' in attribute list of bypassASroute element.", surf_parse_text[0]);
8712         YY_BREAK
8713 case 481:
8714 YY_RULE_SETUP
8715 FAIL("Bad attribute `%s' in `bypassASroute' element start tag.",surf_parse_text);
8716         YY_BREAK
8717 case YY_STATE_EOF(AL_surfxml_bypassASroute):
8718 FAIL("EOF in attribute list of `bypassASroute' element.");
8719         YY_BREAK
8720
8721 case 482:
8722 /* rule 482 can match eol */
8723 YY_RULE_SETUP
8724 {
8725   LEAVE;
8726   ETag_surfxml_bypassASroute();
8727   popbuffer(); /* attribute */
8728   switch (YY_START) {
8729    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
8730   }
8731  }
8732         YY_BREAK
8733 case 483:
8734 /* rule 483 can match eol */
8735 YY_RULE_SETUP
8736 FAIL("Unexpected end-tag `%s': `</bypassASroute>' expected.",surf_parse_text);
8737         YY_BREAK
8738 case 484:
8739 YY_RULE_SETUP
8740 FAIL("Unexpected character `%c': `</bypassASroute>' expected.",surf_parse_text[0]);
8741         YY_BREAK
8742 case YY_STATE_EOF(S_surfxml_bypassASroute_2):
8743 case YY_STATE_EOF(E_surfxml_bypassASroute):
8744 case YY_STATE_EOF(S_surfxml_bypassASroute):
8745 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassASroute>' expected.");
8746         YY_BREAK
8747
8748 case 485:
8749 /* rule 485 can match eol */
8750 YY_RULE_SETUP
8751 FAIL("Starting tag <process> is not allowed here.");
8752         YY_BREAK
8753 case 486:
8754 /* rule 486 can match eol */
8755 YY_RULE_SETUP
8756 {
8757   AX_surfxml_process_host = 0;
8758   surfxml_process_host_isset = 0;
8759   AX_surfxml_process_function = 0;
8760   surfxml_process_function_isset = 0;
8761   AX_surfxml_process_start___time = 28;
8762   surfxml_process_start___time_isset = 0;
8763   AX_surfxml_process_kill___time = 33;
8764   surfxml_process_kill___time_isset = 0;
8765   AX_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
8766   surfxml_process_on___failure_isset = 0;
8767   ENTER(AL_surfxml_process); pushbuffer(0);
8768   }
8769         YY_BREAK
8770
8771 case 487:
8772 /* rule 487 can match eol */
8773 YY_RULE_SETUP
8774 if (surfxml_process_host_isset != 0) {FAIL("Multiple definition of attribute host in <surfxml_process>");} surfxml_process_host_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_host);
8775         YY_BREAK
8776 case 488:
8777 /* rule 488 can match eol */
8778 YY_RULE_SETUP
8779 if (surfxml_process_host_isset != 0) {FAIL("Multiple definition of attribute host in <surfxml_process>");}  surfxml_process_host_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_host);
8780         YY_BREAK
8781 case 489:
8782 /* rule 489 can match eol */
8783 YY_RULE_SETUP
8784 if (surfxml_process_function_isset != 0) {FAIL("Multiple definition of attribute function in <surfxml_process>");} surfxml_process_function_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_function);
8785         YY_BREAK
8786 case 490:
8787 /* rule 490 can match eol */
8788 YY_RULE_SETUP
8789 if (surfxml_process_function_isset != 0) {FAIL("Multiple definition of attribute function in <surfxml_process>");}  surfxml_process_function_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_function);
8790         YY_BREAK
8791 case 491:
8792 /* rule 491 can match eol */
8793 YY_RULE_SETUP
8794 if (surfxml_process_start___time_isset != 0) {FAIL("Multiple definition of attribute start_time in <surfxml_process>");} surfxml_process_start___time_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_start___time);
8795         YY_BREAK
8796 case 492:
8797 /* rule 492 can match eol */
8798 YY_RULE_SETUP
8799 if (surfxml_process_start___time_isset != 0) {FAIL("Multiple definition of attribute start_time in <surfxml_process>");}  surfxml_process_start___time_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_start___time);
8800         YY_BREAK
8801 case 493:
8802 /* rule 493 can match eol */
8803 YY_RULE_SETUP
8804 if (surfxml_process_kill___time_isset != 0) {FAIL("Multiple definition of attribute kill_time in <surfxml_process>");} surfxml_process_kill___time_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_kill___time);
8805         YY_BREAK
8806 case 494:
8807 /* rule 494 can match eol */
8808 YY_RULE_SETUP
8809 if (surfxml_process_kill___time_isset != 0) {FAIL("Multiple definition of attribute kill_time in <surfxml_process>");}  surfxml_process_kill___time_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_kill___time);
8810         YY_BREAK
8811 case 495:
8812 /* rule 495 can match eol */
8813 case 496:
8814 /* rule 496 can match eol */
8815 YY_RULE_SETUP
8816 A_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
8817         YY_BREAK
8818 case 497:
8819 /* rule 497 can match eol */
8820 case 498:
8821 /* rule 498 can match eol */
8822 YY_RULE_SETUP
8823 A_surfxml_process_on___failure = A_surfxml_process_on___failure_RESTART;
8824         YY_BREAK
8825 case 499:
8826 YY_RULE_SETUP
8827 {
8828   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
8829   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
8830   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
8831  }
8832         YY_BREAK
8833 case 500:
8834 YY_RULE_SETUP
8835 {
8836   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
8837   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
8838   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
8839   switch (YY_START) {
8840    case S_surfxml_platform_6: case S_surfxml_platform_4: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_8: case S_surfxml_platform_7: case S_surfxml_platform_3: SET(S_surfxml_platform_8); break;
8841   }
8842  }
8843         YY_BREAK
8844 case 501:
8845 YY_RULE_SETUP
8846 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
8847         YY_BREAK
8848 case 502:
8849 YY_RULE_SETUP
8850 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
8851         YY_BREAK
8852 case YY_STATE_EOF(AL_surfxml_process):
8853 FAIL("EOF in attribute list of `process' element.");
8854         YY_BREAK
8855
8856 case 503:
8857 /* rule 503 can match eol */
8858 YY_RULE_SETUP
8859 {
8860   LEAVE;
8861   ETag_surfxml_process();
8862   popbuffer(); /* attribute */
8863   switch (YY_START) {
8864    case S_surfxml_platform_6: case S_surfxml_platform_4: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_8: case S_surfxml_platform_7: case S_surfxml_platform_3: SET(S_surfxml_platform_8); break;
8865   }
8866  }
8867         YY_BREAK
8868 case 504:
8869 /* rule 504 can match eol */
8870 YY_RULE_SETUP
8871 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
8872         YY_BREAK
8873 case 505:
8874 YY_RULE_SETUP
8875 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
8876         YY_BREAK
8877 case YY_STATE_EOF(E_surfxml_process):
8878 case YY_STATE_EOF(S_surfxml_process):
8879 case YY_STATE_EOF(S_surfxml_process_2):
8880 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</process>' expected.");
8881         YY_BREAK
8882
8883 case 506:
8884 /* rule 506 can match eol */
8885 YY_RULE_SETUP
8886 FAIL("Starting tag <argument> is not allowed here.");
8887         YY_BREAK
8888 case 507:
8889 /* rule 507 can match eol */
8890 YY_RULE_SETUP
8891 {
8892   AX_surfxml_argument_value = 0;
8893   surfxml_argument_value_isset = 0;
8894   ENTER(AL_surfxml_argument); pushbuffer(0);
8895   }
8896         YY_BREAK
8897
8898 case 508:
8899 /* rule 508 can match eol */
8900 YY_RULE_SETUP
8901 if (surfxml_argument_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_argument>");} surfxml_argument_value_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_argument_value);
8902         YY_BREAK
8903 case 509:
8904 /* rule 509 can match eol */
8905 YY_RULE_SETUP
8906 if (surfxml_argument_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_argument>");}  surfxml_argument_value_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_argument_value);
8907         YY_BREAK
8908 case 510:
8909 YY_RULE_SETUP
8910 {
8911   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
8912   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
8913  }
8914         YY_BREAK
8915 case 511:
8916 YY_RULE_SETUP
8917 {
8918   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
8919   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
8920   switch (YY_START) {
8921    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8922   }
8923  }
8924         YY_BREAK
8925 case 512:
8926 YY_RULE_SETUP
8927 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
8928         YY_BREAK
8929 case 513:
8930 YY_RULE_SETUP
8931 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
8932         YY_BREAK
8933 case YY_STATE_EOF(AL_surfxml_argument):
8934 FAIL("EOF in attribute list of `argument' element.");
8935         YY_BREAK
8936
8937 case 514:
8938 /* rule 514 can match eol */
8939 YY_RULE_SETUP
8940 {
8941   LEAVE;
8942   ETag_surfxml_argument();
8943   popbuffer(); /* attribute */
8944   switch (YY_START) {
8945    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8946   }
8947  }
8948         YY_BREAK
8949 case 515:
8950 /* rule 515 can match eol */
8951 YY_RULE_SETUP
8952 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
8953         YY_BREAK
8954 case 516:
8955 YY_RULE_SETUP
8956 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
8957         YY_BREAK
8958 case YY_STATE_EOF(E_surfxml_argument):
8959 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</argument>' expected.");
8960         YY_BREAK
8961
8962 case 517:
8963 /* rule 517 can match eol */
8964 YY_RULE_SETUP
8965 FAIL("Starting tag <config> is not allowed here.");
8966         YY_BREAK
8967 case 518:
8968 /* rule 518 can match eol */
8969 YY_RULE_SETUP
8970 {
8971   AX_surfxml_config_id = 0;
8972   surfxml_config_id_isset = 0;
8973   ENTER(AL_surfxml_config); pushbuffer(0);
8974   }
8975         YY_BREAK
8976
8977 case 519:
8978 /* rule 519 can match eol */
8979 YY_RULE_SETUP
8980 if (surfxml_config_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_config>");} surfxml_config_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_config_id);
8981         YY_BREAK
8982 case 520:
8983 /* rule 520 can match eol */
8984 YY_RULE_SETUP
8985 if (surfxml_config_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_config>");}  surfxml_config_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_config_id);
8986         YY_BREAK
8987 case 521:
8988 YY_RULE_SETUP
8989 {
8990   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
8991  }
8992         YY_BREAK
8993 case 522:
8994 YY_RULE_SETUP
8995 {
8996   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
8997   switch (YY_START) {
8998    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
8999   }
9000  }
9001         YY_BREAK
9002 case 523:
9003 YY_RULE_SETUP
9004 FAIL("Unexpected character `%c' in attribute list of config element.", surf_parse_text[0]);
9005         YY_BREAK
9006 case 524:
9007 YY_RULE_SETUP
9008 FAIL("Bad attribute `%s' in `config' element start tag.",surf_parse_text);
9009         YY_BREAK
9010 case YY_STATE_EOF(AL_surfxml_config):
9011 FAIL("EOF in attribute list of `config' element.");
9012         YY_BREAK
9013
9014 case 525:
9015 /* rule 525 can match eol */
9016 YY_RULE_SETUP
9017 {
9018   LEAVE;
9019   ETag_surfxml_config();
9020   popbuffer(); /* attribute */
9021   switch (YY_START) {
9022    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
9023   }
9024  }
9025         YY_BREAK
9026 case 526:
9027 /* rule 526 can match eol */
9028 YY_RULE_SETUP
9029 FAIL("Unexpected end-tag `%s': `</config>' expected.",surf_parse_text);
9030         YY_BREAK
9031 case 527:
9032 YY_RULE_SETUP
9033 FAIL("Unexpected character `%c': `</config>' expected.",surf_parse_text[0]);
9034         YY_BREAK
9035 case YY_STATE_EOF(S_surfxml_config):
9036 case YY_STATE_EOF(S_surfxml_config_2):
9037 case YY_STATE_EOF(E_surfxml_config):
9038 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</config>' expected.");
9039         YY_BREAK
9040
9041 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
9042   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
9043 case 528:
9044 /* rule 528 can match eol */
9045 YY_RULE_SETUP
9046 FAIL("Starting tag <prop> is not allowed here.");
9047         YY_BREAK
9048 case 529:
9049 /* rule 529 can match eol */
9050 YY_RULE_SETUP
9051 {
9052   AX_surfxml_prop_id = 0;
9053   surfxml_prop_id_isset = 0;
9054   AX_surfxml_prop_value = 0;
9055   surfxml_prop_value_isset = 0;
9056   ENTER(AL_surfxml_prop); pushbuffer(0);
9057   }
9058         YY_BREAK
9059
9060 case 530:
9061 /* rule 530 can match eol */
9062 YY_RULE_SETUP
9063 if (surfxml_prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_prop>");} surfxml_prop_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_id);
9064         YY_BREAK
9065 case 531:
9066 /* rule 531 can match eol */
9067 YY_RULE_SETUP
9068 if (surfxml_prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_prop>");}  surfxml_prop_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_id);
9069         YY_BREAK
9070 case 532:
9071 /* rule 532 can match eol */
9072 YY_RULE_SETUP
9073 if (surfxml_prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_prop>");} surfxml_prop_value_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_value);
9074         YY_BREAK
9075 case 533:
9076 /* rule 533 can match eol */
9077 YY_RULE_SETUP
9078 if (surfxml_prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_prop>");}  surfxml_prop_value_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_value);
9079         YY_BREAK
9080 case 534:
9081 YY_RULE_SETUP
9082 {
9083   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
9084   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
9085   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
9086  }
9087         YY_BREAK
9088 case 535:
9089 YY_RULE_SETUP
9090 {
9091   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
9092   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
9093   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
9094   switch (YY_START) {
9095    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
9096    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
9097    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
9098    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9099    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
9100    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
9101    case S_surfxml_storage___type_1: case S_surfxml_storage___type: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
9102   }
9103  }
9104         YY_BREAK
9105 case 536:
9106 YY_RULE_SETUP
9107 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
9108         YY_BREAK
9109 case 537:
9110 YY_RULE_SETUP
9111 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
9112         YY_BREAK
9113 case YY_STATE_EOF(AL_surfxml_prop):
9114 FAIL("EOF in attribute list of `prop' element.");
9115         YY_BREAK
9116
9117 case 538:
9118 /* rule 538 can match eol */
9119 YY_RULE_SETUP
9120 {
9121   LEAVE;
9122   ETag_surfxml_prop();
9123   popbuffer(); /* attribute */
9124   switch (YY_START) {
9125    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
9126    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
9127    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
9128    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9129    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
9130    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
9131    case S_surfxml_storage___type_1: case S_surfxml_storage___type: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
9132   }
9133  }
9134         YY_BREAK
9135 case 539:
9136 /* rule 539 can match eol */
9137 YY_RULE_SETUP
9138 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
9139         YY_BREAK
9140 case 540:
9141 YY_RULE_SETUP
9142 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
9143         YY_BREAK
9144 case YY_STATE_EOF(E_surfxml_prop):
9145 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</prop>' expected.");
9146         YY_BREAK
9147
9148 /* EPILOG: after the root element. */
9149
9150 case 541:
9151 YY_RULE_SETUP
9152 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
9153         YY_BREAK
9154 case YY_STATE_EOF(EPILOG):
9155 SUCCEED;
9156         YY_BREAK
9157
9158 /* CHARACTER DATA. */
9159
9160 /* Non-defined standard entities... */
9161 case 542:
9162 YY_RULE_SETUP
9163 BUFFERPUTC('&');
9164         YY_BREAK
9165 case 543:
9166 YY_RULE_SETUP
9167 BUFFERPUTC('<');
9168         YY_BREAK
9169 case 544:
9170 YY_RULE_SETUP
9171 BUFFERPUTC('>');
9172         YY_BREAK
9173 case 545:
9174 YY_RULE_SETUP
9175 BUFFERPUTC('\'');
9176         YY_BREAK
9177 case 546:
9178 YY_RULE_SETUP
9179 BUFFERPUTC('"');
9180         YY_BREAK
9181 /* Character entities. */
9182 case 547:
9183 YY_RULE_SETUP
9184 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
9185         YY_BREAK
9186 case 548:
9187 YY_RULE_SETUP
9188 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
9189         YY_BREAK
9190
9191 case 549:
9192 /* rule 549 can match eol */
9193 case 550:
9194 /* rule 550 can match eol */
9195 case 551:
9196 /* rule 551 can match eol */
9197 case 552:
9198 /* rule 552 can match eol */
9199 YY_RULE_SETUP
9200 BUFFERPUTC('\n');
9201         YY_BREAK
9202
9203 case 553:
9204 YY_RULE_SETUP
9205 ENTER(CDATA);
9206         YY_BREAK
9207 case 554:
9208 YY_RULE_SETUP
9209 FAIL("Unexpected `]""]>' in character data.");
9210         YY_BREAK
9211
9212 case 555:
9213 YY_RULE_SETUP
9214 BUFFERDONE; LEAVE;
9215         YY_BREAK
9216 case YY_STATE_EOF(VALUE1):
9217 FAIL("EOF in literal (\"'\" expected).");
9218         YY_BREAK
9219
9220 case 556:
9221 YY_RULE_SETUP
9222 BUFFERDONE; LEAVE;
9223         YY_BREAK
9224 case YY_STATE_EOF(VALUE2):
9225 FAIL("EOF in literal (`\"' expected).");
9226         YY_BREAK
9227
9228 case 557:
9229 /* rule 557 can match eol */
9230 YY_RULE_SETUP
9231 BUFFERPUTC(surf_parse_text[0]);
9232         YY_BREAK
9233 case 558:
9234 YY_RULE_SETUP
9235 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
9236         YY_BREAK
9237
9238 case 559:
9239 YY_RULE_SETUP
9240 LEAVE;
9241         YY_BREAK
9242 /* "]""]"               BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
9243 case 560:
9244 YY_RULE_SETUP
9245 BUFFERPUTC(surf_parse_text[0]);
9246         YY_BREAK
9247 case YY_STATE_EOF(CDATA):
9248 FAIL("EOF in CDATA section.");
9249         YY_BREAK
9250
9251 /* Impossible rules to avoid warnings from flex(1). */
9252 /* Ideally, this should be replaced by code in flexml.pl that
9253     generates just the states not covered by other rules. */
9254
9255 case 561:
9256 /* rule 561 can match eol */
9257 YY_RULE_SETUP
9258 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
9259         YY_BREAK
9260
9261 case 562:
9262 YY_RULE_SETUP
9263 ECHO;
9264         YY_BREAK
9265 case YY_STATE_EOF(INITIAL):
9266 case YY_STATE_EOF(ROOT_surfxml_platform):
9267 case YY_STATE_EOF(S_surfxml_platform_2):
9268 case YY_STATE_EOF(S_surfxml_platform_5):
9269 case YY_STATE_EOF(S_surfxml_platform_7):
9270 case YY_STATE_EOF(S_surfxml_include_1):
9271 case YY_STATE_EOF(S_surfxml_AS_2):
9272 case YY_STATE_EOF(S_surfxml_AS_5):
9273 case YY_STATE_EOF(S_surfxml_AS_8):
9274 case YY_STATE_EOF(S_surfxml_AS_10):
9275 case YY_STATE_EOF(S_surfxml_AS_13):
9276 case YY_STATE_EOF(S_surfxml_AS_15):
9277 case YY_STATE_EOF(S_surfxml_storage___type_1):
9278 case YY_STATE_EOF(S_surfxml_storage_1):
9279 case YY_STATE_EOF(S_surfxml_host_1):
9280 case YY_STATE_EOF(S_surfxml_link_1):
9281 case YY_STATE_EOF(S_surfxml_route_1):
9282 case YY_STATE_EOF(S_surfxml_ASroute_1):
9283 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
9284 case YY_STATE_EOF(S_surfxml_bypassASroute_1):
9285 case YY_STATE_EOF(S_surfxml_process_1):
9286 case YY_STATE_EOF(S_surfxml_config_1):
9287 case YY_STATE_EOF(IMPOSSIBLE):
9288         yyterminate();
9289
9290         case YY_END_OF_BUFFER:
9291                 {
9292                 /* Amount of text matched not including the EOB char. */
9293                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
9294
9295                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
9296                 *yy_cp = (yy_hold_char);
9297                 YY_RESTORE_YY_MORE_OFFSET
9298
9299                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
9300                         {
9301                         /* We're scanning a new file or input source.  It's
9302                          * possible that this happened because the user
9303                          * just pointed surf_parse_in at a new source and called
9304                          * surf_parse_lex().  If so, then we have to assure
9305                          * consistency between YY_CURRENT_BUFFER and our
9306                          * globals.  Here is the right place to do so, because
9307                          * this is the first action (other than possibly a
9308                          * back-up) that will match for the new input source.
9309                          */
9310                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9311                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
9312                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
9313                         }
9314
9315                 /* Note that here we test for yy_c_buf_p "<=" to the position
9316                  * of the first EOB in the buffer, since yy_c_buf_p will
9317                  * already have been incremented past the NUL character
9318                  * (since all states make transitions on EOB to the
9319                  * end-of-buffer state).  Contrast this with the test
9320                  * in input().
9321                  */
9322                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9323                         { /* This was really a NUL. */
9324                         yy_state_type yy_next_state;
9325
9326                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
9327
9328                         yy_current_state = yy_get_previous_state(  );
9329
9330                         /* Okay, we're now positioned to make the NUL
9331                          * transition.  We couldn't have
9332                          * yy_get_previous_state() go ahead and do it
9333                          * for us because it doesn't know how to deal
9334                          * with the possibility of jamming (and we don't
9335                          * want to build jamming into it because then it
9336                          * will run more slowly).
9337                          */
9338
9339                         yy_next_state = yy_try_NUL_trans( yy_current_state );
9340
9341                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9342
9343                         if ( yy_next_state )
9344                                 {
9345                                 /* Consume the NUL. */
9346                                 yy_cp = ++(yy_c_buf_p);
9347                                 yy_current_state = yy_next_state;
9348                                 goto yy_match;
9349                                 }
9350
9351                         else
9352                                 {
9353                                 yy_cp = (yy_c_buf_p);
9354                                 goto yy_find_action;
9355                                 }
9356                         }
9357
9358                 else switch ( yy_get_next_buffer(  ) )
9359                         {
9360                         case EOB_ACT_END_OF_FILE:
9361                                 {
9362                                 (yy_did_buffer_switch_on_eof) = 0;
9363
9364                                 if ( surf_parse_wrap( ) )
9365                                         {
9366                                         /* Note: because we've taken care in
9367                                          * yy_get_next_buffer() to have set up
9368                                          * surf_parse_text, we can now set up
9369                                          * yy_c_buf_p so that if some total
9370                                          * hoser (like flex itself) wants to
9371                                          * call the scanner after we return the
9372                                          * YY_NULL, it'll still work - another
9373                                          * YY_NULL will get returned.
9374                                          */
9375                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
9376
9377                                         yy_act = YY_STATE_EOF(YY_START);
9378                                         goto do_action;
9379                                         }
9380
9381                                 else
9382                                         {
9383                                         if ( ! (yy_did_buffer_switch_on_eof) )
9384                                                 YY_NEW_FILE;
9385                                         }
9386                                 break;
9387                                 }
9388
9389                         case EOB_ACT_CONTINUE_SCAN:
9390                                 (yy_c_buf_p) =
9391                                         (yytext_ptr) + yy_amount_of_matched_text;
9392
9393                                 yy_current_state = yy_get_previous_state(  );
9394
9395                                 yy_cp = (yy_c_buf_p);
9396                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9397                                 goto yy_match;
9398
9399                         case EOB_ACT_LAST_MATCH:
9400                                 (yy_c_buf_p) =
9401                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
9402
9403                                 yy_current_state = yy_get_previous_state(  );
9404
9405                                 yy_cp = (yy_c_buf_p);
9406                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9407                                 goto yy_find_action;
9408                         }
9409                 break;
9410                 }
9411
9412         default:
9413                 YY_FATAL_ERROR(
9414                         "fatal flex scanner internal error--no action found" );
9415         } /* end of action switch */
9416                 } /* end of scanning one token */
9417 } /* end of surf_parse_lex */
9418
9419 /* yy_get_next_buffer - try to read in a new buffer
9420  *
9421  * Returns a code representing an action:
9422  *      EOB_ACT_LAST_MATCH -
9423  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
9424  *      EOB_ACT_END_OF_FILE - end of file
9425  */
9426 static int yy_get_next_buffer (void)
9427 {
9428         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
9429         register char *source = (yytext_ptr);
9430         register int number_to_move, i;
9431         int ret_val;
9432
9433         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
9434                 YY_FATAL_ERROR(
9435                 "fatal flex scanner internal error--end of buffer missed" );
9436
9437         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
9438                 { /* Don't try to fill the buffer, so this is an EOF. */
9439                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
9440                         {
9441                         /* We matched a single character, the EOB, so
9442                          * treat this as a final EOF.
9443                          */
9444                         return EOB_ACT_END_OF_FILE;
9445                         }
9446
9447                 else
9448                         {
9449                         /* We matched some text prior to the EOB, first
9450                          * process it.
9451                          */
9452                         return EOB_ACT_LAST_MATCH;
9453                         }
9454                 }
9455
9456         /* Try to read more data. */
9457
9458         /* First move last chars to start of buffer. */
9459         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
9460
9461         for ( i = 0; i < number_to_move; ++i )
9462                 *(dest++) = *(source++);
9463
9464         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
9465                 /* don't do the read, it's not guaranteed to return an EOF,
9466                  * just force an EOF
9467                  */
9468                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
9469
9470         else
9471                 {
9472                         int num_to_read =
9473                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
9474
9475                 while ( num_to_read <= 0 )
9476                         { /* Not enough room in the buffer - grow it. */
9477
9478                         /* just a shorter name for the current buffer */
9479                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
9480
9481                         int yy_c_buf_p_offset =
9482                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
9483
9484                         if ( b->yy_is_our_buffer )
9485                                 {
9486                                 int new_size = b->yy_buf_size * 2;
9487
9488                                 if ( new_size <= 0 )
9489                                         b->yy_buf_size += b->yy_buf_size / 8;
9490                                 else
9491                                         b->yy_buf_size *= 2;
9492
9493                                 b->yy_ch_buf = (char *)
9494                                         /* Include room in for 2 EOB chars. */
9495                                         surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
9496                                 }
9497                         else
9498                                 /* Can't grow it, we don't own it. */
9499                                 b->yy_ch_buf = 0;
9500
9501                         if ( ! b->yy_ch_buf )
9502                                 YY_FATAL_ERROR(
9503                                 "fatal error - scanner input buffer overflow" );
9504
9505                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
9506
9507                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
9508                                                 number_to_move - 1;
9509
9510                         }
9511
9512                 if ( num_to_read > YY_READ_BUF_SIZE )
9513                         num_to_read = YY_READ_BUF_SIZE;
9514
9515                 /* Read in more data. */
9516                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
9517                         (yy_n_chars), (size_t) num_to_read );
9518
9519                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9520                 }
9521
9522         if ( (yy_n_chars) == 0 )
9523                 {
9524                 if ( number_to_move == YY_MORE_ADJ )
9525                         {
9526                         ret_val = EOB_ACT_END_OF_FILE;
9527                         surf_parse_restart(surf_parse_in  );
9528                         }
9529
9530                 else
9531                         {
9532                         ret_val = EOB_ACT_LAST_MATCH;
9533                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
9534                                 YY_BUFFER_EOF_PENDING;
9535                         }
9536                 }
9537
9538         else
9539                 ret_val = EOB_ACT_CONTINUE_SCAN;
9540
9541         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
9542                 /* Extend the array by 50%, plus the number we really need. */
9543                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
9544                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) surf_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
9545                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
9546                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
9547         }
9548
9549         (yy_n_chars) += number_to_move;
9550         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
9551         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
9552
9553         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
9554
9555         return ret_val;
9556 }
9557
9558 /* yy_get_previous_state - get the state just before the EOB char was reached */
9559
9560     static yy_state_type yy_get_previous_state (void)
9561 {
9562         register yy_state_type yy_current_state;
9563         register char *yy_cp;
9564     
9565         yy_current_state = (yy_start);
9566
9567         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
9568                 {
9569                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
9570                 if ( yy_accept[yy_current_state] )
9571                         {
9572                         (yy_last_accepting_state) = yy_current_state;
9573                         (yy_last_accepting_cpos) = yy_cp;
9574                         }
9575                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9576                         {
9577                         yy_current_state = (int) yy_def[yy_current_state];
9578                         if ( yy_current_state >= 3279 )
9579                                 yy_c = yy_meta[(unsigned int) yy_c];
9580                         }
9581                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
9582                 }
9583
9584         return yy_current_state;
9585 }
9586
9587 /* yy_try_NUL_trans - try to make a transition on the NUL character
9588  *
9589  * synopsis
9590  *      next_state = yy_try_NUL_trans( current_state );
9591  */
9592     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
9593 {
9594         register int yy_is_jam;
9595         register char *yy_cp = (yy_c_buf_p);
9596
9597         register YY_CHAR yy_c = 1;
9598         if ( yy_accept[yy_current_state] )
9599                 {
9600                 (yy_last_accepting_state) = yy_current_state;
9601                 (yy_last_accepting_cpos) = yy_cp;
9602                 }
9603         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9604                 {
9605                 yy_current_state = (int) yy_def[yy_current_state];
9606                 if ( yy_current_state >= 3279 )
9607                         yy_c = yy_meta[(unsigned int) yy_c];
9608                 }
9609         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
9610         yy_is_jam = (yy_current_state == 3278);
9611
9612         return yy_is_jam ? 0 : yy_current_state;
9613 }
9614
9615 #ifndef YY_NO_INPUT
9616 #ifdef __cplusplus
9617     static int yyinput (void)
9618 #else
9619     static int input  (void)
9620 #endif
9621
9622 {
9623         int c;
9624     
9625         *(yy_c_buf_p) = (yy_hold_char);
9626
9627         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
9628                 {
9629                 /* yy_c_buf_p now points to the character we want to return.
9630                  * If this occurs *before* the EOB characters, then it's a
9631                  * valid NUL; if not, then we've hit the end of the buffer.
9632                  */
9633                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9634                         /* This was really a NUL. */
9635                         *(yy_c_buf_p) = '\0';
9636
9637                 else
9638                         { /* need more input */
9639                         int offset = (yy_c_buf_p) - (yytext_ptr);
9640                         ++(yy_c_buf_p);
9641
9642                         switch ( yy_get_next_buffer(  ) )
9643                                 {
9644                                 case EOB_ACT_LAST_MATCH:
9645                                         /* This happens because yy_g_n_b()
9646                                          * sees that we've accumulated a
9647                                          * token and flags that we need to
9648                                          * try matching the token before
9649                                          * proceeding.  But for input(),
9650                                          * there's no matching to consider.
9651                                          * So convert the EOB_ACT_LAST_MATCH
9652                                          * to EOB_ACT_END_OF_FILE.
9653                                          */
9654
9655                                         /* Reset buffer status. */
9656                                         surf_parse_restart(surf_parse_in );
9657
9658                                         /*FALLTHROUGH*/
9659
9660                                 case EOB_ACT_END_OF_FILE:
9661                                         {
9662                                         if ( surf_parse_wrap( ) )
9663                                                 return EOF;
9664
9665                                         if ( ! (yy_did_buffer_switch_on_eof) )
9666                                                 YY_NEW_FILE;
9667 #ifdef __cplusplus
9668                                         return yyinput();
9669 #else
9670                                         return input();
9671 #endif
9672                                         }
9673
9674                                 case EOB_ACT_CONTINUE_SCAN:
9675                                         (yy_c_buf_p) = (yytext_ptr) + offset;
9676                                         break;
9677                                 }
9678                         }
9679                 }
9680
9681         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
9682         *(yy_c_buf_p) = '\0';   /* preserve surf_parse_text */
9683         (yy_hold_char) = *++(yy_c_buf_p);
9684
9685         if ( c == '\n' )
9686                    
9687     surf_parse_lineno++;
9688 ;
9689
9690         return c;
9691 }
9692 #endif  /* ifndef YY_NO_INPUT */
9693
9694 /** Immediately switch to a different input stream.
9695  * @param input_file A readable stream.
9696  * 
9697  * @note This function does not reset the start condition to @c INITIAL .
9698  */
9699     void surf_parse_restart  (FILE * input_file )
9700 {
9701     
9702         if ( ! YY_CURRENT_BUFFER ){
9703         surf_parse_ensure_buffer_stack ();
9704                 YY_CURRENT_BUFFER_LVALUE =
9705             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
9706         }
9707
9708         surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
9709         surf_parse__load_buffer_state( );
9710 }
9711
9712 /** Switch to a different input buffer.
9713  * @param new_buffer The new input buffer.
9714  * 
9715  */
9716     void surf_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
9717 {
9718     
9719         /* TODO. We should be able to replace this entire function body
9720          * with
9721          *              surf_parse_pop_buffer_state();
9722          *              surf_parse_push_buffer_state(new_buffer);
9723      */
9724         surf_parse_ensure_buffer_stack ();
9725         if ( YY_CURRENT_BUFFER == new_buffer )
9726                 return;
9727
9728         if ( YY_CURRENT_BUFFER )
9729                 {
9730                 /* Flush out information for old buffer. */
9731                 *(yy_c_buf_p) = (yy_hold_char);
9732                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
9733                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9734                 }
9735
9736         YY_CURRENT_BUFFER_LVALUE = new_buffer;
9737         surf_parse__load_buffer_state( );
9738
9739         /* We don't actually know whether we did this switch during
9740          * EOF (surf_parse_wrap()) processing, but the only time this flag
9741          * is looked at is after surf_parse_wrap() is called, so it's safe
9742          * to go ahead and always set it.
9743          */
9744         (yy_did_buffer_switch_on_eof) = 1;
9745 }
9746
9747 static void surf_parse__load_buffer_state  (void)
9748 {
9749         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9750         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
9751         surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
9752         (yy_hold_char) = *(yy_c_buf_p);
9753 }
9754
9755 /** Allocate and initialize an input buffer state.
9756  * @param file A readable stream.
9757  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
9758  * 
9759  * @return the allocated buffer state.
9760  */
9761     YY_BUFFER_STATE surf_parse__create_buffer  (FILE * file, int  size )
9762 {
9763         YY_BUFFER_STATE b;
9764     
9765         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
9766         if ( ! b )
9767                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
9768
9769         b->yy_buf_size = size;
9770
9771         /* yy_ch_buf has to be 2 characters longer than the size given because
9772          * we need to put in 2 end-of-buffer characters.
9773          */
9774         b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2  );
9775         if ( ! b->yy_ch_buf )
9776                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
9777
9778         b->yy_is_our_buffer = 1;
9779
9780         surf_parse__init_buffer(b,file );
9781
9782         return b;
9783 }
9784
9785 /** Destroy the buffer.
9786  * @param b a buffer created with surf_parse__create_buffer()
9787  * 
9788  */
9789     void surf_parse__delete_buffer (YY_BUFFER_STATE  b )
9790 {
9791     
9792         if ( ! b )
9793                 return;
9794
9795         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
9796                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
9797
9798         if ( b->yy_is_our_buffer )
9799                 surf_parse_free((void *) b->yy_ch_buf  );
9800
9801         surf_parse_free((void *) b  );
9802 }
9803
9804 #ifndef __cplusplus
9805 extern int isatty (int );
9806 #endif /* __cplusplus */
9807     
9808 /* Initializes or reinitializes a buffer.
9809  * This function is sometimes called more than once on the same buffer,
9810  * such as during a surf_parse_restart() or at EOF.
9811  */
9812     static void surf_parse__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
9813
9814 {
9815         int oerrno = errno;
9816     
9817         surf_parse__flush_buffer(b );
9818
9819         b->yy_input_file = file;
9820         b->yy_fill_buffer = 1;
9821
9822     /* If b is the current buffer, then surf_parse__init_buffer was _probably_
9823      * called from surf_parse_restart() or through yy_get_next_buffer.
9824      * In that case, we don't want to reset the lineno or column.
9825      */
9826     if (b != YY_CURRENT_BUFFER){
9827         b->yy_bs_lineno = 1;
9828         b->yy_bs_column = 0;
9829     }
9830
9831         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
9832     
9833         errno = oerrno;
9834 }
9835
9836 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
9837  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
9838  * 
9839  */
9840     void surf_parse__flush_buffer (YY_BUFFER_STATE  b )
9841 {
9842         if ( ! b )
9843                 return;
9844
9845         b->yy_n_chars = 0;
9846
9847         /* We always need two end-of-buffer characters.  The first causes
9848          * a transition to the end-of-buffer state.  The second causes
9849          * a jam in that state.
9850          */
9851         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
9852         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
9853
9854         b->yy_buf_pos = &b->yy_ch_buf[0];
9855
9856         b->yy_at_bol = 1;
9857         b->yy_buffer_status = YY_BUFFER_NEW;
9858
9859         if ( b == YY_CURRENT_BUFFER )
9860                 surf_parse__load_buffer_state( );
9861 }
9862
9863 /** Pushes the new state onto the stack. The new state becomes
9864  *  the current state. This function will allocate the stack
9865  *  if necessary.
9866  *  @param new_buffer The new state.
9867  *  
9868  */
9869 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
9870 {
9871         if (new_buffer == NULL)
9872                 return;
9873
9874         surf_parse_ensure_buffer_stack();
9875
9876         /* This block is copied from surf_parse__switch_to_buffer. */
9877         if ( YY_CURRENT_BUFFER )
9878                 {
9879                 /* Flush out information for old buffer. */
9880                 *(yy_c_buf_p) = (yy_hold_char);
9881                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
9882                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9883                 }
9884
9885         /* Only push if top exists. Otherwise, replace top. */
9886         if (YY_CURRENT_BUFFER)
9887                 (yy_buffer_stack_top)++;
9888         YY_CURRENT_BUFFER_LVALUE = new_buffer;
9889
9890         /* copied from surf_parse__switch_to_buffer. */
9891         surf_parse__load_buffer_state( );
9892         (yy_did_buffer_switch_on_eof) = 1;
9893 }
9894
9895 /** Removes and deletes the top of the stack, if present.
9896  *  The next element becomes the new top.
9897  *  
9898  */
9899 void surf_parse_pop_buffer_state (void)
9900 {
9901         if (!YY_CURRENT_BUFFER)
9902                 return;
9903
9904         surf_parse__delete_buffer(YY_CURRENT_BUFFER );
9905         YY_CURRENT_BUFFER_LVALUE = NULL;
9906         if ((yy_buffer_stack_top) > 0)
9907                 --(yy_buffer_stack_top);
9908
9909         if (YY_CURRENT_BUFFER) {
9910                 surf_parse__load_buffer_state( );
9911                 (yy_did_buffer_switch_on_eof) = 1;
9912         }
9913 }
9914
9915 /* Allocates the stack if it does not exist.
9916  *  Guarantees space for at least one push.
9917  */
9918 static void surf_parse_ensure_buffer_stack (void)
9919 {
9920         int num_to_alloc;
9921     
9922         if (!(yy_buffer_stack)) {
9923
9924                 /* First allocation is just for 2 elements, since we don't know if this
9925                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
9926                  * immediate realloc on the next call.
9927          */
9928                 num_to_alloc = 1;
9929                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
9930                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
9931                                                                 );
9932                 if ( ! (yy_buffer_stack) )
9933                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
9934                                                                   
9935                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
9936                                 
9937                 (yy_buffer_stack_max) = num_to_alloc;
9938                 (yy_buffer_stack_top) = 0;
9939                 return;
9940         }
9941
9942         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
9943
9944                 /* Increase the buffer to prepare for a possible push. */
9945                 int grow_size = 8 /* arbitrary grow size */;
9946
9947                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
9948                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
9949                                                                 ((yy_buffer_stack),
9950                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
9951                                                                 );
9952                 if ( ! (yy_buffer_stack) )
9953                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
9954
9955                 /* zero only the new slots.*/
9956                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
9957                 (yy_buffer_stack_max) = num_to_alloc;
9958         }
9959 }
9960
9961 /** Setup the input buffer state to scan directly from a user-specified character buffer.
9962  * @param base the character buffer
9963  * @param size the size in bytes of the character buffer
9964  * 
9965  * @return the newly allocated buffer state object. 
9966  */
9967 YY_BUFFER_STATE surf_parse__scan_buffer  (char * base, yy_size_t  size )
9968 {
9969         YY_BUFFER_STATE b;
9970     
9971         if ( size < 2 ||
9972              base[size-2] != YY_END_OF_BUFFER_CHAR ||
9973              base[size-1] != YY_END_OF_BUFFER_CHAR )
9974                 /* They forgot to leave room for the EOB's. */
9975                 return 0;
9976
9977         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
9978         if ( ! b )
9979                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
9980
9981         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
9982         b->yy_buf_pos = b->yy_ch_buf = base;
9983         b->yy_is_our_buffer = 0;
9984         b->yy_input_file = 0;
9985         b->yy_n_chars = b->yy_buf_size;
9986         b->yy_is_interactive = 0;
9987         b->yy_at_bol = 1;
9988         b->yy_fill_buffer = 0;
9989         b->yy_buffer_status = YY_BUFFER_NEW;
9990
9991         surf_parse__switch_to_buffer(b  );
9992
9993         return b;
9994 }
9995
9996 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
9997  * scan from a @e copy of @a str.
9998  * @param yystr a NUL-terminated string to scan
9999  * 
10000  * @return the newly allocated buffer state object.
10001  * @note If you want to scan bytes that may contain NUL values, then use
10002  *       surf_parse__scan_bytes() instead.
10003  */
10004 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
10005 {
10006     
10007         return surf_parse__scan_bytes(yystr,strlen(yystr) );
10008 }
10009
10010 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
10011  * scan from a @e copy of @a bytes.
10012  * @param yybytes the byte buffer to scan
10013  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
10014  * 
10015  * @return the newly allocated buffer state object.
10016  */
10017 YY_BUFFER_STATE surf_parse__scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
10018 {
10019         YY_BUFFER_STATE b;
10020         char *buf;
10021         yy_size_t n;
10022         int i;
10023     
10024         /* Get memory for full buffer, including space for trailing EOB's. */
10025         n = _yybytes_len + 2;
10026         buf = (char *) surf_parse_alloc(n  );
10027         if ( ! buf )
10028                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
10029
10030         for ( i = 0; i < _yybytes_len; ++i )
10031                 buf[i] = yybytes[i];
10032
10033         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
10034
10035         b = surf_parse__scan_buffer(buf,n );
10036         if ( ! b )
10037                 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
10038
10039         /* It's okay to grow etc. this buffer, and we should throw it
10040          * away when we're done.
10041          */
10042         b->yy_is_our_buffer = 1;
10043
10044         return b;
10045 }
10046
10047     static void yy_push_state (int  new_state )
10048 {
10049         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
10050                 {
10051                 yy_size_t new_size;
10052
10053                 (yy_start_stack_depth) += YY_START_STACK_INCR;
10054                 new_size = (yy_start_stack_depth) * sizeof( int );
10055
10056                 if ( ! (yy_start_stack) )
10057                         (yy_start_stack) = (int *) surf_parse_alloc(new_size  );
10058
10059                 else
10060                         (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size  );
10061
10062                 if ( ! (yy_start_stack) )
10063                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
10064                 }
10065
10066         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
10067
10068         BEGIN(new_state);
10069 }
10070
10071     static void yy_pop_state  (void)
10072 {
10073         if ( --(yy_start_stack_ptr) < 0 )
10074                 YY_FATAL_ERROR( "start-condition stack underflow" );
10075
10076         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
10077 }
10078
10079 #ifndef YY_EXIT_FAILURE
10080 #define YY_EXIT_FAILURE 2
10081 #endif
10082
10083 static void yy_fatal_error (yyconst char* msg )
10084 {
10085         (void) fprintf( stderr, "%s\n", msg );
10086         exit( YY_EXIT_FAILURE );
10087 }
10088
10089 /* Redefine yyless() so it works in section 3 code. */
10090
10091 #undef yyless
10092 #define yyless(n) \
10093         do \
10094                 { \
10095                 /* Undo effects of setting up surf_parse_text. */ \
10096         int yyless_macro_arg = (n); \
10097         YY_LESS_LINENO(yyless_macro_arg);\
10098                 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
10099                 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
10100                 (yy_hold_char) = *(yy_c_buf_p); \
10101                 *(yy_c_buf_p) = '\0'; \
10102                 surf_parse_leng = yyless_macro_arg; \
10103                 } \
10104         while ( 0 )
10105
10106 /* Accessor  methods (get/set functions) to struct members. */
10107
10108 /** Get the current line number.
10109  * 
10110  */
10111 int surf_parse_get_lineno  (void)
10112 {
10113         
10114     return surf_parse_lineno;
10115 }
10116
10117 /** Get the input stream.
10118  * 
10119  */
10120 FILE *surf_parse_get_in  (void)
10121 {
10122         return surf_parse_in;
10123 }
10124
10125 /** Get the output stream.
10126  * 
10127  */
10128 FILE *surf_parse_get_out  (void)
10129 {
10130         return surf_parse_out;
10131 }
10132
10133 /** Get the length of the current token.
10134  * 
10135  */
10136 int surf_parse_get_leng  (void)
10137 {
10138         return surf_parse_leng;
10139 }
10140
10141 /** Get the current token.
10142  * 
10143  */
10144
10145 char *surf_parse_get_text  (void)
10146 {
10147         return surf_parse_text;
10148 }
10149
10150 /** Set the current line number.
10151  * @param line_number
10152  * 
10153  */
10154 void surf_parse_set_lineno (int  line_number )
10155 {
10156     
10157     surf_parse_lineno = line_number;
10158 }
10159
10160 /** Set the input stream. This does not discard the current
10161  * input buffer.
10162  * @param in_str A readable stream.
10163  * 
10164  * @see surf_parse__switch_to_buffer
10165  */
10166 void surf_parse_set_in (FILE *  in_str )
10167 {
10168         surf_parse_in = in_str ;
10169 }
10170
10171 void surf_parse_set_out (FILE *  out_str )
10172 {
10173         surf_parse_out = out_str ;
10174 }
10175
10176 int surf_parse_get_debug  (void)
10177 {
10178         return surf_parse__flex_debug;
10179 }
10180
10181 void surf_parse_set_debug (int  bdebug )
10182 {
10183         surf_parse__flex_debug = bdebug ;
10184 }
10185
10186 static int yy_init_globals (void)
10187 {
10188         /* Initialization is the same as for the non-reentrant scanner.
10189      * This function is called from surf_parse_lex_destroy(), so don't allocate here.
10190      */
10191
10192     /* We do not touch surf_parse_lineno unless the option is enabled. */
10193     surf_parse_lineno =  1;
10194     
10195     (yy_buffer_stack) = 0;
10196     (yy_buffer_stack_top) = 0;
10197     (yy_buffer_stack_max) = 0;
10198     (yy_c_buf_p) = (char *) 0;
10199     (yy_init) = 0;
10200     (yy_start) = 0;
10201
10202     (yy_start_stack_ptr) = 0;
10203     (yy_start_stack_depth) = 0;
10204     (yy_start_stack) =  NULL;
10205
10206 /* Defined in main.c */
10207 #ifdef YY_STDINIT
10208     surf_parse_in = stdin;
10209     surf_parse_out = stdout;
10210 #else
10211     surf_parse_in = (FILE *) 0;
10212     surf_parse_out = (FILE *) 0;
10213 #endif
10214
10215     /* For future reference: Set errno on error, since we are called by
10216      * surf_parse_lex_init()
10217      */
10218     return 0;
10219 }
10220
10221 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
10222 int surf_parse_lex_destroy  (void)
10223 {
10224     
10225     /* Pop the buffer stack, destroying each element. */
10226         while(YY_CURRENT_BUFFER){
10227                 surf_parse__delete_buffer(YY_CURRENT_BUFFER  );
10228                 YY_CURRENT_BUFFER_LVALUE = NULL;
10229                 surf_parse_pop_buffer_state();
10230         }
10231
10232         /* Destroy the stack itself. */
10233         surf_parse_free((yy_buffer_stack) );
10234         (yy_buffer_stack) = NULL;
10235
10236     /* Destroy the start condition stack. */
10237         surf_parse_free((yy_start_stack)  );
10238         (yy_start_stack) = NULL;
10239
10240     /* Reset the globals. This is important in a non-reentrant scanner so the next time
10241      * surf_parse_lex() is called, initialization will occur. */
10242     yy_init_globals( );
10243
10244     return 0;
10245 }
10246
10247 /*
10248  * Internal utility routines.
10249  */
10250
10251 #ifndef yytext_ptr
10252 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
10253 {
10254         register int i;
10255         for ( i = 0; i < n; ++i )
10256                 s1[i] = s2[i];
10257 }
10258 #endif
10259
10260 #ifdef YY_NEED_STRLEN
10261 static int yy_flex_strlen (yyconst char * s )
10262 {
10263         register int n;
10264         for ( n = 0; s[n]; ++n )
10265                 ;
10266
10267         return n;
10268 }
10269 #endif
10270
10271 void *surf_parse_alloc (yy_size_t  size )
10272 {
10273         return (void *) malloc( size );
10274 }
10275
10276 void *surf_parse_realloc  (void * ptr, yy_size_t  size )
10277 {
10278         /* The cast to (char *) in the following accommodates both
10279          * implementations that use char* generic pointers, and those
10280          * that use void* generic pointers.  It works with the latter
10281          * because both ANSI C and C++ allow castless assignment from
10282          * any pointer type to void*, and deal with argument conversions
10283          * as though doing an assignment.
10284          */
10285         return (void *) realloc( (char *) ptr, size );
10286 }
10287
10288 void surf_parse_free (void * ptr )
10289 {
10290         free( (char *) ptr );   /* see surf_parse_realloc() for (char *) cast */
10291 }
10292
10293 #define YYTABLES_NAME "yytables"
10294
10295 /* Element context stack lookup. */
10296 int surfxml_element_context(int i)
10297 {
10298   return (0<i && i<yy_start_stack_depth
10299           ? yy_start_stack[yy_start_stack_ptr - i]
10300           : 0);
10301 }
10302
10303 #ifdef FLEX_DEBUG
10304 void print_yy_stack(char* fmt, ...)
10305 {
10306   int i = 0; va_list ap; va_start(ap, fmt);
10307   vfprintf(stderr, fmt, ap);
10308   if (surfxml_statenames) {
10309       for (i=1; i<yy_start_stack_ptr; i++) {
10310           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
10311       }
10312       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
10313   }
10314   va_end(ap);
10315 }
10316
10317 void print_surfxml_bufferstack()
10318 {
10319     int i;
10320     fputs("Buffer: ", stderr);
10321     for (i = 0; i < blimit; i++) {
10322        if ( surfxml_bufferstack[i] == '\377' ) break;
10323          putc(surfxml_bufferstack[i], stderr);
10324     }
10325     putc('\n', stderr);
10326 }
10327
10328 static void debug_enter(int state, const char* statename) {
10329   yy_push_state(state);
10330   if (surf_parse__flex_debug) {
10331        print_yy_stack("--ENTER(%s) : ",statename);
10332        print_surfxml_bufferstack();
10333   }
10334 }
10335
10336 static void debug_leave(void) {
10337     if (surf_parse__flex_debug) {
10338         print_yy_stack("--LEAVE : ");
10339         print_surfxml_bufferstack();
10340     }
10341   yy_pop_state();
10342 }
10343
10344 static void debug_set(int state, const char* statename) {
10345   BEGIN(state);
10346   if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
10347 }
10348 #endif
10349
10350 static void cleanup(void)
10351 {
10352     if (surfxml_statenames) {
10353         free(surfxml_statenames);
10354         surfxml_statenames = NULL;
10355     }
10356     free(surfxml_bufferstack);
10357     surfxml_bufferstack = NULL;
10358
10359     free(indexstack);
10360     indexstack = NULL;
10361 }
10362
10363 static int fail(const char* fmt, ...)
10364 {
10365     int chars_left, used;
10366     va_list ap; va_start(ap, fmt);
10367 #ifdef FLEXML_yylineno
10368     used = sprintf(flexml_err_msg,
10369                    "Invalid XML (XML input line %d, state %d): ",
10370                    surf_parse_lineno, YY_START);
10371 #else
10372     used = sprintf(flexml_err_msg,
10373                    "Invalid XML (state %d): ",
10374                    YY_START);
10375 #endif
10376     chars_left = flexml_max_err_msg_size - used - 1;
10377     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
10378     va_end(ap);
10379
10380 #ifndef FLEXML_quiet_parser
10381     /* print directly to sdterr */
10382     fprintf(stderr, "%s\n", flexml_err_msg);
10383     flexml_err_msg[0] = '\0';
10384 #endif
10385
10386     cleanup();
10387
10388     return 1;
10389 }
10390