Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
new flex run
[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 39
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 #ifndef YY_TYPEDEF_YY_SIZE_T
184 #define YY_TYPEDEF_YY_SIZE_T
185 typedef size_t yy_size_t;
186 #endif
187
188 extern yy_size_t surf_parse_leng;
189
190 extern FILE *surf_parse_in, *surf_parse_out;
191
192 #define EOB_ACT_CONTINUE_SCAN 0
193 #define EOB_ACT_END_OF_FILE 1
194 #define EOB_ACT_LAST_MATCH 2
195
196     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
197      *       access to the local variable yy_act. Since yyless() is a macro, it would break
198      *       existing scanners that call yyless() from OUTSIDE surf_parse_lex. 
199      *       One obvious solution it to make yy_act a global. I tried that, and saw
200      *       a 5% performance hit in a non-surf_parse_lineno scanner, because yy_act is
201      *       normally declared as a register variable-- so it is not worth it.
202      */
203     #define  YY_LESS_LINENO(n) \
204             do { \
205                 int yyl;\
206                 for ( yyl = n; yyl < surf_parse_leng; ++yyl )\
207                     if ( surf_parse_text[yyl] == '\n' )\
208                         --surf_parse_lineno;\
209             }while(0)
210     #define YY_LINENO_REWIND_TO(dst) \
211             do {\
212                 const char *p;\
213                 for ( p = yy_cp-1; p >= (dst); --p)\
214                     if ( *p == '\n' )\
215                         --surf_parse_lineno;\
216             }while(0)
217     
218 /* Return all but the first "n" matched characters back to the input stream. */
219 #define yyless(n) \
220         do \
221                 { \
222                 /* Undo effects of setting up surf_parse_text. */ \
223         int yyless_macro_arg = (n); \
224         YY_LESS_LINENO(yyless_macro_arg);\
225                 *yy_cp = (yy_hold_char); \
226                 YY_RESTORE_YY_MORE_OFFSET \
227                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
228                 YY_DO_BEFORE_ACTION; /* set up surf_parse_text again */ \
229                 } \
230         while ( 0 )
231
232 #define unput(c) yyunput( c, (yytext_ptr)  )
233
234 #ifndef YY_STRUCT_YY_BUFFER_STATE
235 #define YY_STRUCT_YY_BUFFER_STATE
236 struct yy_buffer_state
237         {
238         FILE *yy_input_file;
239
240         char *yy_ch_buf;                /* input buffer */
241         char *yy_buf_pos;               /* current position in input buffer */
242
243         /* Size of input buffer in bytes, not including room for EOB
244          * characters.
245          */
246         yy_size_t yy_buf_size;
247
248         /* Number of characters read into yy_ch_buf, not including EOB
249          * characters.
250          */
251         yy_size_t yy_n_chars;
252
253         /* Whether we "own" the buffer - i.e., we know we created it,
254          * and can realloc() it to grow it, and should free() it to
255          * delete it.
256          */
257         int yy_is_our_buffer;
258
259         /* Whether this is an "interactive" input source; if so, and
260          * if we're using stdio for input, then we want to use getc()
261          * instead of fread(), to make sure we stop fetching input after
262          * each newline.
263          */
264         int yy_is_interactive;
265
266         /* Whether we're considered to be at the beginning of a line.
267          * If so, '^' rules will be active on the next match, otherwise
268          * not.
269          */
270         int yy_at_bol;
271
272     int yy_bs_lineno; /**< The line count. */
273     int yy_bs_column; /**< The column count. */
274     
275         /* Whether to try to fill the input buffer when we reach the
276          * end of it.
277          */
278         int yy_fill_buffer;
279
280         int yy_buffer_status;
281
282 #define YY_BUFFER_NEW 0
283 #define YY_BUFFER_NORMAL 1
284         /* When an EOF's been seen but there's still some text to process
285          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
286          * shouldn't try reading from the input source any more.  We might
287          * still have a bunch of tokens to match, though, because of
288          * possible backing-up.
289          *
290          * When we actually see the EOF, we change the status to "new"
291          * (via surf_parse_restart()), so that the user can continue scanning by
292          * just pointing surf_parse_in at a new input file.
293          */
294 #define YY_BUFFER_EOF_PENDING 2
295
296         };
297 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
298
299 /* Stack of input buffers. */
300 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
301 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
302 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
303
304 /* We provide macros for accessing buffer states in case in the
305  * future we want to put the buffer states in a more general
306  * "scanner state".
307  *
308  * Returns the top of the stack, or NULL.
309  */
310 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
311                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
312                           : NULL)
313
314 /* Same as previous macro, but useful when we know that the buffer stack is not
315  * NULL or when we need an lvalue. For internal use only.
316  */
317 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
318
319 /* yy_hold_char holds the character lost when surf_parse_text is formed. */
320 static char yy_hold_char;
321 static yy_size_t yy_n_chars;            /* number of characters read into yy_ch_buf */
322 yy_size_t surf_parse_leng;
323
324 /* Points to current character in buffer. */
325 static char *yy_c_buf_p = (char *) 0;
326 static int yy_init = 0;         /* whether we need to initialize */
327 static int yy_start = 0;        /* start state number */
328
329 /* Flag which is used to allow surf_parse_wrap()'s to do buffer switches
330  * instead of setting up a fresh surf_parse_in.  A bit of a hack ...
331  */
332 static int yy_did_buffer_switch_on_eof;
333
334 void surf_parse_restart (FILE *input_file  );
335 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer  );
336 YY_BUFFER_STATE surf_parse__create_buffer (FILE *file,int size  );
337 void surf_parse__delete_buffer (YY_BUFFER_STATE b  );
338 void surf_parse__flush_buffer (YY_BUFFER_STATE b  );
339 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer  );
340 void surf_parse_pop_buffer_state (void );
341
342 static void surf_parse_ensure_buffer_stack (void );
343 static void surf_parse__load_buffer_state (void );
344 static void surf_parse__init_buffer (YY_BUFFER_STATE b,FILE *file  );
345
346 #define YY_FLUSH_BUFFER surf_parse__flush_buffer(YY_CURRENT_BUFFER )
347
348 YY_BUFFER_STATE surf_parse__scan_buffer (char *base,yy_size_t size  );
349 YY_BUFFER_STATE surf_parse__scan_string (yyconst char *yy_str  );
350 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char *bytes,yy_size_t len  );
351
352 void *surf_parse_alloc (yy_size_t  );
353 void *surf_parse_realloc (void *,yy_size_t  );
354 void surf_parse_free (void *  );
355
356 #define yy_new_buffer surf_parse__create_buffer
357
358 #define yy_set_interactive(is_interactive) \
359         { \
360         if ( ! YY_CURRENT_BUFFER ){ \
361         surf_parse_ensure_buffer_stack (); \
362                 YY_CURRENT_BUFFER_LVALUE =    \
363             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
364         } \
365         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
366         }
367
368 #define yy_set_bol(at_bol) \
369         { \
370         if ( ! YY_CURRENT_BUFFER ){\
371         surf_parse_ensure_buffer_stack (); \
372                 YY_CURRENT_BUFFER_LVALUE =    \
373             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
374         } \
375         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
376         }
377
378 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
379
380 /* Begin user sect3 */
381
382 #define surf_parse_wrap() 1
383 #define YY_SKIP_YYWRAP
384
385 typedef unsigned char YY_CHAR;
386
387 FILE *surf_parse_in = (FILE *) 0, *surf_parse_out = (FILE *) 0;
388
389 typedef int yy_state_type;
390
391 extern int surf_parse_lineno;
392
393 int surf_parse_lineno = 1;
394
395 extern char *surf_parse_text;
396 #define yytext_ptr surf_parse_text
397
398 static yy_state_type yy_get_previous_state (void );
399 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
400 static int yy_get_next_buffer (void );
401 static void yy_fatal_error (yyconst char msg[]  );
402
403 /* Done after the current pattern has been matched and before the
404  * corresponding action - sets up surf_parse_text.
405  */
406 #define YY_DO_BEFORE_ACTION \
407         (yytext_ptr) = yy_bp; \
408         surf_parse_leng = (size_t) (yy_cp - yy_bp); \
409         (yy_hold_char) = *yy_cp; \
410         *yy_cp = '\0'; \
411         (yy_c_buf_p) = yy_cp;
412
413 #define YY_NUM_RULES 591
414 #define YY_END_OF_BUFFER 592
415 /* This struct is not used in this scanner,
416    but its presence is necessary. */
417 struct yy_trans_info
418         {
419         flex_int32_t yy_verify;
420         flex_int32_t yy_nxt;
421         };
422 static yyconst flex_int16_t yy_accept[3469] =
423     {   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         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
428         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
429         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
430         0,    0,    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
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         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
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,    0,    0,    0,    0,    0,    0,    0,    0,
445
446         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
447         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
448         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
449         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
450         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
451         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
452         0,    0,  592,  590,   15,   10,   10,   15,   15,  570,
453        10,  570,    5,    6,    5,    8,    9,    8,  586,  578,
454       579,  587,  584,  587,  585,  589,  578,  579,  589,  590,
455        22,   10,   22,   22,   22,   20,   22,   26,   10,   26,
456
457        26,  590,   26,  590,  590,   26,   33,   10,   33,   33,
458        33,   31,   33,   37,   10,   37,   37,   48,   10,   48,
459        48,   48,   46,   48,   48,   48,  587,  586,   78,   10,
460        78,   78,   78,   76,   78,   78,   78,   78,   78,   82,
461        10,   82,  101,   10,  101,  101,  101,   99,  101,  101,
462       101,  105,   10,  105,  128,   10,  128,  128,  128,  126,
463       128,  128,  132,   10,  132,  132,  590,  132,  590,  132,
464       132,  590,  590,  132,  590,  132,  590,  132,  147,   10,
465       147,  147,  147,  145,  147,  147,  147,  147,  151,   10,
466       151,  590,  151,  160,   10,  160,  160,  160,  158,  160,
467
468       160,  164,   10,  164,  173,   10,  173,  173,  173,  171,
469       173,  173,  177,   10,  177,  202,   10,  202,  202,  202,
470       200,  202,  202,  202,  202,  202,  206,   10,  206,  590,
471       206,  221,   10,  221,  221,  221,  219,  221,  221,  221,
472       221,  225,   10,  225,  225,  232,   10,  232,  232,  232,
473       230,  232,  236,   10,  236,  247,   10,  247,  247,  247,
474       245,  247,  247,  247,  251,   10,  251,  304,   10,  304,
475       304,  304,  302,  304,  304,  304,  304,  304,  304,  304,
476       304,  304,  308,   10,  308,  308,  327,   10,  327,  327,
477       327,  325,  327,  327,  327,  327,  327,  327,  331,   10,
478
479       331,  352,   10,  352,  352,  352,  350,  352,  352,  352,
480       352,  352,  352,  352,  356,   10,  356,  365,   10,  365,
481       365,  365,  363,  365,  365,  369,   10,  369,  380,   10,
482       380,  380,  380,  378,  380,  380,  380,  384,   10,  384,
483       411,   10,  411,  411,  411,  409,  411,  411,  411,  411,
484       415,   10,  415,  415,  428,   10,  428,  428,  428,  426,
485       428,  428,  432,   10,  432,  590,  432,  449,   10,  449,
486       449,  449,  447,  449,  449,  449,  453,   10,  453,  453,
487       466,   10,  466,  466,  466,  464,  466,  466,  470,   10,
488       470,  479,   10,  479,  479,  479,  477,  479,  479,  483,
489
490        10,  483,  483,  496,   10,  496,  496,  496,  494,  496,
491       496,  496,  500,   10,  500,  500,  517,   10,  517,  517,
492       517,  515,  517,  517,  517,  517,  517,  521,   10,  521,
493       590,  521,  528,   10,  528,  528,  528,  526,  528,  532,
494        10,  532,  539,   10,  539,  539,  539,  537,  539,  543,
495        10,  543,  543,  552,   10,  552,  552,  552,  550,  552,
496       552,  556,   10,  556,  565,   10,  565,  565,  565,  563,
497       565,  565,  569,   10,  569,   10,    0,    2,    2,    0,
498         4,    7,  581,  580,    0,    0,    0,    0,    0,    0,
499         0,   21,   23,   23,    0,    0,    0,    0,    0,    0,
500
501         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
502         0,    0,    0,    0,    0,    0,    0,    0,   32,   34,
503        34,    0,   47,   49,   49,   49,   49,    0,    0,    0,
504        77,   79,   79,   79,   79,   79,   79,   79,   79,   79,
505         0,  100,  102,  102,  102,  102,    0,  127,  129,  129,
506       129,    0,    0,    0,    0,    0,    0,    0,    0,    0,
507         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
508       146,  148,  148,  148,  148,  148,    0,    0,  159,  161,
509       161,  161,    0,  172,  174,  174,  174,    0,  201,  203,
510       203,  203,  203,  203,  203,  203,    0,    0,  220,  222,
511
512       222,  222,  222,  222,    0,  231,  233,  233,    0,  246,
513       248,  248,  248,  248,    0,  303,  305,  305,  305,  305,
514       305,  305,  305,  305,  305,  305,  305,  305,  305,  305,
515       305,  305,  305,    0,  326,  328,  328,  328,  328,  328,
516       328,  328,  328,    0,  351,  353,  353,  353,  353,  353,
517       353,  353,  353,    0,  364,  366,  366,  366,    0,  379,
518       381,  381,  381,  381,    0,  410,  412,  412,  412,  412,
519       412,  412,    0,  427,  429,  429,  429,  429,    0,    0,
520       448,  450,  450,  450,  450,  450,    0,  465,  467,  467,
521       467,    0,  478,  480,  480,  480,    0,  495,  497,  497,
522
523       497,  497,    0,  516,  518,  518,  518,  518,  518,  518,
524         0,    0,  527,  529,  529,    0,  538,  540,  540,    0,
525       551,  553,  553,  553,    0,  564,  566,  566,  566,    0,
526         0,    0,    0,    0,    3,    0,    0,    0,    0,    0,
527         0,    0,  588,    0,   23,    0,    0,  107,    0,    0,
528         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
529         0,    0,    0,    0,    0,    0,    0,    0,    0,  106,
530         0,    0,    0,    0,    0,    0,   34,    0,    0,   49,
531         0,    0,   49,    0,    0,    0,  583,   79,    0,    0,
532        79,   79,   79,   79,   79,   79,    0,    0,  102,  102,
533
534       102,    0,    0,    0,    0,  129,    0,    0,  107,    0,
535         0,    0,    0,    0,    0,    0,    0,  106,    0,    0,
536         0,    0,  148,    0,    0,  148,  148,    0,    0,    0,
537       161,  161,    0,    0,  174,  174,    0,    0,  203,  203,
538       203,    0,    0,  203,  203,  203,    0,    0,    0,    0,
539       222,  222,    0,    0,  222,    0,    0,  233,    0,    0,
540       248,    0,    0,    0,    0,    0,    0,  305,  305,    0,
541         0,  305,    0,    0,  305,  305,  305,  305,  305,  305,
542       305,  305,  305,  305,  305,    0,    0,    0,    0,    0,
543         0,  328,  328,  328,  328,  328,    0,    0,  353,  353,
544
545       353,    0,    0,  353,  353,  353,    0,    0,  366,    0,
546         0,    0,    0,  381,    0,    0,  381,    0,    0,  412,
547         0,    0,  412,  412,  412,    0,    0,  429,  429,  429,
548         0,    0,    0,  450,  450,  450,  450,    0,    0,  467,
549         0,    0,    0,    0,  480,  480,    0,    0,  497,  497,
550       497,    0,    0,  518,  518,  518,  518,  518,    0,    0,
551         0,  529,    0,    0,    0,    0,    0,    0,    0,    0,
552       553,    0,    0,    0,    0,  566,    0,    0,    0,   14,
553         1,    0,    0,  576,    0,    0,    0,  573,  572,    0,
554         0,   23,    0,    0,   25,    0,  107,    0,    0,    0,
555
556         0,    0,    0,    0,  226,    0,    0,    0,    0,    0,
557         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
558       106,    0,    0,    0,    0,    0,    0,   34,    0,    0,
559        36,    0,   49,    0,   41,   40,   49,    0,    0,    0,
560        51,    0,   79,    0,   55,   54,    0,    0,   79,    0,
561         0,   79,   79,   79,    0,    0,   81,    0,  102,  102,
562       102,    0,    0,  104,    0,    0,  109,  108,  129,    0,
563         0,  131,    0,    0,    0,    0,  227,    0,    0,    0,
564         0,    0,    0,    0,    0,    0,  148,    0,  136,  135,
565       148,  148,    0,    0,  150,    0,    0,  161,  161,    0,
566
567         0,  163,    0,  174,  174,    0,    0,  176,    0,  203,
568       203,  203,    0,  181,  180,  203,  203,  203,    0,    0,
569       205,    0,    0,    0,  222,  222,    0,  210,  209,  222,
570         0,    0,  224,    0,  233,    0,    0,  235,    0,  248,
571         0,  240,  239,    0,  242,  241,    0,    0,  250,    0,
572       305,  305,  305,  305,    0,  267,  266,  305,    0,  255,
573       254,    0,    0,  305,  305,  305,  305,  305,  305,  305,
574       305,  305,  305,    0,    0,  307,    0,    0,  322,  321,
575         0,  312,  311,    0,    0,  328,  328,  328,  328,    0,
576         0,  330,    0,  353,  353,  353,  353,    0,  335,  334,
577
578         0,    0,  353,  353,    0,    0,  355,    0,  366,    0,
579       360,  359,    0,    0,  368,    0,  381,    0,  373,  372,
580       381,    0,    0,  383,    0,  412,    0,  388,  387,  412,
581       412,  412,    0,    0,  414,    0,    0,    0,    0,    0,
582       429,    0,    0,  431,    0,    0,    0,    0,  450,  450,
583         0,    0,  450,    0,    0,  452,    0,  467,    0,  457,
584       456,    0,    0,  469,    0,    0,    0,    0,    0,    0,
585         0,  482,    0,    0,    0,  497,  497,    0,    0,    0,
586         0,  499,    0,  518,  518,  518,  518,  518,    0,    0,
587       520,    0,    0,  529,    0,    0,  531,    0,    0,  536,
588
589       535,    0,    0,  542,    0,    0,  547,  546,  553,    0,
590         0,  555,    0,    0,  560,  559,  566,    0,    0,  568,
591         0,    0,    0,  577,  571,    0,    0,    0,   23,    0,
592         0,    0,    0,    0,    0,    0,    0,  226,  178,    0,
593       385,    0,    0,    0,  333,    0,    0,  544,    0,    0,
594         0,    0,    0,    0,    0,    0,    0,  332,    0,    0,
595         0,    0,    0,    0,    0,   49,    0,    0,   79,    0,
596        59,   58,    0,    0,    0,   57,   56,   79,    0,    0,
597        79,    0,  102,    0,    0,  102,    0,  129,    0,  130,
598         0,    0,    0,  227,  179,  386,  545,    0,    0,    0,
599
600         0,    0,    0,  148,  148,    0,    0,    0,    0,    0,
601         0,  161,    0,    0,    0,  174,    0,  203,  203,    0,
602         0,  203,  203,  203,    0,    0,    0,  222,  222,  222,
603         0,    0,    0,    0,    0,    0,    0,  305,  305,  305,
604       305,    0,    0,    0,  269,  268,  305,  305,  305,  305,
605       305,  305,  305,  305,  305,  305,  305,    0,    0,  324,
606       323,  328,  328,  328,  328,    0,  353,  353,  353,  353,
607         0,  343,  342,  353,  353,    0,  366,    0,  381,  381,
608         0,  412,  412,  412,  412,    0,    0,  421,  420,    0,
609       419,  418,  429,    0,  385,    0,  438,  437,  450,  450,
610
611         0,  436,  435,  450,    0,  467,    0,    0,  476,  475,
612         0,  474,  473,    0,    0,  489,  488,  497,  497,    0,
613       487,  486,    0,  518,    0,    0,  518,  518,  518,    0,
614         0,  529,    0,    0,  553,    0,  566,    0,    0,    0,
615         0,   12,    0,  574,  575,    0,   23,    0,    0,    0,
616         0,    0,    0,    0,    0,  178,    0,    0,  385,    0,
617         0,  152,    0,  333,    0,    0,  544,    0,  416,    0,
618        39,    0,    0,    0,    0,    0,  332,    0,   38,    0,
619        30,   29,    0,    0,   43,   42,   49,    0,    0,   79,
620         0,   61,   60,   79,    0,   65,   64,   79,    0,  102,
621
622         0,    0,    0,    0,    0,    0,  129,    0,    0,    0,
623       179,    0,  386,  545,  417,    0,    0,    0,  417,  416,
624       148,    0,    0,    0,  140,  139,    0,    0,    0,  157,
625       156,  161,    0,    0,  170,  169,  174,    0,  203,  203,
626         0,  185,  184,    0,    0,  203,    0,    0,  203,    0,
627       153,    0,  222,  222,  222,    0,    0,  229,  228,    0,
628       234,    0,  244,  243,    0,  305,    0,    0,  305,  305,
629         0,  265,  264,  305,  305,    0,    0,  305,  305,  305,
630       305,  305,  305,  305,  305,    0,    0,    0,  328,  328,
631       328,    0,  353,    0,    0,  353,  353,    0,    0,  353,
632
633         0,  366,    0,  381,  381,    0,  412,  412,  412,    0,
634         0,  412,    0,  429,    0,    0,  450,  450,  450,    0,
635       467,    0,    0,  497,  497,    0,  518,    0,  504,  503,
636       518,  518,  518,    0,    0,    0,    0,    0,    0,    0,
637         0,    0,    0,    0,    0,    0,    0,    0,   11,    0,
638        23,    0,    0,    0,    0,    0,    0,    0,  534,    0,
639         0,    0,    0,  152,    0,    0,    0,   53,  416,  357,
640         0,   39,    0,  533,   52,    0,    0,    0,    0,   38,
641         0,    0,   49,    0,    0,   79,   79,   79,    0,  102,
642         0,    0,    0,    0,    0,    0,    0,    0,    0,   96,
643
644        95,    0,  129,    0,    0,    0,    0,  417,  358,    0,
645         0,    0,  148,    0,  138,  137,    0,    0,  161,    0,
646         0,    0,    0,  203,  203,    0,  183,  182,    0,    0,
647         0,    0,    0,  203,    0,  204,  153,    0,    0,    0,
648       222,    0,    0,    0,    0,  305,    0,  283,  282,    0,
649         0,  305,  305,  305,    0,  263,  262,    0,    0,  305,
650       305,  305,  305,    0,    0,  305,  305,    0,    0,  320,
651       319,    0,    0,  328,    0,    0,    0,  353,    0,  339,
652       338,    0,    0,  353,    0,  337,  336,  353,    0,  354,
653       366,    0,  381,  381,    0,  412,  412,  412,    0,    0,
654
655         0,  412,    0,  413,  429,    0,    0,    0,    0,    0,
656         0,  450,    0,  467,    0,    0,    0,    0,    0,    0,
657         0,  518,  518,  518,  518,    0,    0,    0,  525,  524,
658         0,    0,    0,  549,  548,    0,  554,    0,  562,  561,
659         0,    0,    0,    0,    0,    0,    0,    0,  433,    0,
660         0,    0,    0,  310,  253,  534,    0,   28,    0,    0,
661         0,    0,  502,   53,  357,  207,    0,  533,   52,  309,
662       252,   27,  501,    0,    0,   49,    0,    0,   50,   79,
663         0,    0,   79,    0,    0,    0,    0,    0,    0,    0,
664         0,    0,    0,    0,    0,    0,    0,    0,    0,  434,
665
666         0,    0,    0,    0,  358,  208,    0,    0,  148,    0,
667         0,  161,    0,  162,    0,  168,  167,    0,  203,  203,
668         0,  199,  198,    0,    0,  203,    0,    0,  218,  217,
669         0,    0,  222,    0,  212,  211,    0,    0,  305,    0,
670       285,  284,  305,  305,  305,    0,  257,  256,    0,    0,
671       305,  305,  305,    0,  259,  258,  305,  305,    0,    0,
672       314,  313,    0,    0,    0,  316,  315,    0,  353,    0,
673       341,  340,  353,  353,  366,    0,  381,    0,    0,    0,
674       412,    0,    0,  412,  412,    0,    0,  412,  429,    0,
675       430,    0,    0,  442,  441,    0,  440,  439,  450,    0,
676
677       467,    0,    0,    0,  493,  492,    0,  491,  490,    0,
678       518,  518,  518,  518,    0,    0,    0,    0,    0,    0,
679         0,    0,   17,    0,   19,   18,    0,  433,  522,  370,
680         0,    0,  310,  253,    0,   28,  454,    0,  165,   16,
681       502,  207,    0,    0,  309,  252,   27,  501,    0,    0,
682        49,  582,   79,    0,   67,   66,   79,    0,   80,    0,
683        98,   97,    0,    0,    0,    0,    0,    0,    0,    0,
684         0,    0,    0,    0,    0,    0,  434,  371,    0,    0,
685         0,  208,    0,    0,  142,  141,  148,    0,    0,  161,
686         0,  203,  203,    0,    0,    0,    0,  203,  166,    0,
687
688       214,  213,  222,    0,    0,  305,  305,  305,  305,    0,
689       261,  260,  305,  305,  305,  305,    0,    0,    0,    0,
690       318,  317,    0,  353,  353,  353,  366,    0,  367,  381,
691         0,  377,  376,    0,  412,    0,  394,  393,  412,  412,
692         0,    0,    0,    0,  412,  429,  455,  450,    0,  467,
693         0,    0,    0,    0,    0,  518,  518,  518,    0,  523,
694         0,    0,  541,    0,    0,    0,    0,   17,    0,  522,
695       370,    0,    0,  237,  454,    0,  165,   16,    0,    0,
696         0,    0,   35,   49,    0,    0,   79,    0,    0,    0,
697         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
698
699         0,    0,    0,    0,    0,    0,    0,    0,  371,    0,
700         0,  238,    0,  148,    0,    0,    0,    0,    0,  203,
701       203,    0,  191,    0,  190,  203,  166,  222,    0,  223,
702         0,  305,  305,  305,  305,  305,    0,    0,  305,  305,
703       305,    0,    0,    0,    0,  306,    0,  329,  353,  353,
704       353,  366,    0,    0,    0,    0,    0,  412,  412,  412,
705         0,  398,    0,  397,  412,  429,  455,  450,    0,  451,
706         0,    0,    0,    0,    0,    0,  506,  505,    0,    0,
707       518,  518,    0,  519,  523,    0,    0,    0,    0,    0,
708         0,   24,    0,    0,  237,  557,    0,    0,    0,   49,
709
710         0,    0,    0,   79,    0,    0,    0,    0,    0,    0,
711         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
712         0,    0,    0,    0,    0,    0,    0,    0,    0,  238,
713         0,  148,    0,  558,    0,  155,  154,    0,  175,  203,
714       203,  193,  192,    0,    0,  222,    0,  305,  305,  305,
715       305,  305,    0,  295,  294,  305,    0,    0,  305,    0,
716         0,    0,    0,  353,  353,    0,    0,  366,    0,  375,
717       374,    0,  382,    0,  390,  389,  412,  412,  412,  400,
718       399,    0,    0,  429,  450,    0,    0,    0,    0,  468,
719         0,    0,    0,  510,  509,    0,    0,    0,    0,    0,
720
721       530,    0,    0,    0,    0,    0,  471,  557,    0,    0,
722         0,    0,    0,    0,    0,    0,    0,    0,    0,   79,
723         0,    0,    0,    0,   88,    0,    0,    0,    0,   87,
724         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
725         0,    0,    0,    0,  472,    0,  148,    0,  558,  203,
726         0,    0,    0,  195,  194,  222,    0,  249,  305,  305,
727       305,    0,    0,  305,  305,    0,  293,  292,  305,    0,
728         0,    0,    0,  353,    0,    0,    0,  349,  348,    0,
729         0,  412,  412,  412,    0,  402,  401,    0,    0,    0,
730         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
731
732         0,    0,    0,  508,  507,    0,    0,    0,    0,    0,
733       471,  133,    0,    0,    0,   45,   44,    0,    0,    0,
734         0,    0,    0,    0,    0,   79,    0,    0,    0,    0,
735         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
736         0,    0,    0,    0,    0,    0,    0,    0,  472,  134,
737         0,    0,    0,    0,    0,  203,    0,  197,  196,    0,
738         0,  305,  305,    0,    0,    0,  299,  298,    0,    0,
739       305,  305,    0,    0,    0,    0,  353,    0,  345,  344,
740         0,  362,  361,  412,    0,    0,  412,    0,    0,    0,
741         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
742
743         0,    0,    0,    0,    0,    0,  567,    0,    0,    0,
744         0,  484,  133,   84,   83,    0,    0,    0,    0,    0,
745         0,    0,    0,    0,    0,    0,    0,   94,    0,    0,
746         0,   93,    0,    0,    0,    0,    0,  111,  119,    0,
747         0,    0,    0,  110,  118,    0,  485,  134,    0,  144,
748       143,    0,    0,  187,  186,  203,    0,  216,  215,  305,
749       305,    0,  297,  296,    0,  301,  300,  305,  305,    0,
750         0,    0,    0,  353,  412,    0,  396,  395,  412,    0,
751         0,    0,    0,    0,    0,    0,    0,    0,    0,  459,
752         0,    0,  458,    0,  481,    0,    0,    0,    0,    0,
753
754         0,    0,    0,    0,    0,    0,  484,   84,   83,    0,
755         0,    0,    0,    0,    0,    0,    0,    0,   63,   62,
756         0,    0,    0,    0,    0,    0,    0,    0,    0,  113,
757         0,    0,    0,  112,    0,  485,    0,  149,  203,  305,
758       305,    0,    0,  305,  277,    0,  276,    0,  353,    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,    0,    0,    0,    0,   75,   71,    0,
762         0,   74,   70,    0,   92,    0,    0,   91,    0,    0,
763         0,  103,    0,    0,    0,    0,    0,    0,  203,  305,
764
765       305,    0,    0,    0,    0,    0,  279,  278,  353,    0,
766       392,  391,    0,    0,    0,  425,    0,  424,    0,  446,
767         0,  445,    0,  461,  463,  460,  462,    0,  498,  512,
768         0,  511,    0,    0,    0,    0,   12,    0,   12,    0,
769         0,    0,    0,    0,   86,   90,   85,   89,  123,    0,
770         0,  121,  122,    0,    0,  120,  203,  305,  305,    0,
771         0,    0,    0,    0,  281,  280,  353,    0,    0,    0,
772         0,  423,  422,  444,  443,    0,    0,    0,    0,    0,
773         0,    0,    0,    0,    0,    0,    0,  115,    0,    0,
774       114,    0,    0,    0,    0,    0,    0,    0,    0,    0,
775
776         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
777         0,    0,    0,    0,    0,    0,   69,    0,   68,    0,
778         0,    0,    0,    0,    0,  189,  188,    0,  291,  290,
779         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
780       347,  346,    0,    0,    0,    0,    0,    0,    0,    0,
781         0,   11,    0,    0,    0,    0,    0,    0,    0,    0,
782         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
783         0,    0,    0,    0,  514,  513,    0,   73,   72,    0,
784         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
785         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
786
787         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
788         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
789         0,  125,  117,  124,  116,    0,    0,    0,    0,    0,
790         0,  271,    0,    0,  270,    0,    0,  404,    0,    0,
791       403,    0,    0,    0,    0,    0,  275,    0,  274,    0,
792       406,    0,  405,    0,    0,    0,    0,    0,    0,    0,
793         0,    0,    0,    0,    0,  287,    0,  286,    0,    0,
794         0,    0,    0,    0,  289,  288,  273,  272,  408,  407,
795         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
796         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
797
798         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
799         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
800         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
801         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
802         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
803         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
804         0,    0,    0,    0,    0,    0,   13,    0
805     } ;
806
807 static yyconst flex_int32_t yy_ec[256] =
808     {   0,
809         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
810         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
811         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
812         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
813         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
814        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
815        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
816        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
817        31,   38,   39,   40,   41,   42,   43,   44,   45,   31,
818        46,    1,   47,    1,   48,    1,   49,   50,   51,   52,
819
820        53,   54,   55,   56,   57,   58,   59,   60,   61,   62,
821        63,   64,   65,   66,   67,   68,   69,   70,   71,   72,
822        73,   74,    1,    1,    1,    1,    1,    1,    1,    1,
823         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
824         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
825         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
826         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
827         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
828         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
829         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
830
831         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
832         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
833         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
834         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
835         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
836         1,    1,    1,    1,    1
837     } ;
838
839 static yyconst flex_int32_t yy_meta[75] =
840     {   0,
841         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
842         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
843         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
844         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
845         5,    5,    5,    5,    5,    1,    1,    5,    9,    9,
846         9,    9,    9,    9,    5,    5,    5,    5,    5,    5,
847         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
848         5,    5,    5,    5
849     } ;
850
851 static yyconst flex_int16_t yy_base[3981] =
852     {   0,
853         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
854        14,   17,   33,   36,   49,   55,   45,   61,   66,   72,
855       108,  178,   75,   78,   83,  128,  131,  134,  138,  141,
856       158,  198,  201,  204,  208,  211,  228,  231,  234,  237,
857       240,  257,  275,  329,  295,  298,  301,  305,  308,  349,
858       352,  355,  383,  447,  360,  416,  511,  578,  407,  410,
859       645,  713,  413,  467,  781,  847,  470,  473,  477,  480,
860       531,  534,  537,  541,  544,  598,  601,  604,  608,  611,
861       665,  668,  671,  675,  678,  733,  736,  739,  743,  746,
862       801,  804,  807,  811,  814,  867,  870,  873,  877,  880,
863
864       897,  903,  921,  988,  941,  944,  947,  951, 1008, 1011,
865      1014, 1018, 1055, 1122, 1075, 1078, 1189, 1257, 1081, 1085,
866      1325, 1392, 1088, 1142, 1145, 1148, 1152, 1155, 1209, 1212,
867      1459, 1527, 1215, 1219, 1222, 1277, 1280, 1283, 1287, 1290,
868      1595, 1657, 1345, 1348, 1719, 1788, 1351, 1355, 1857,    0,
869      1412, 1415, 1418, 1422, 1479, 1482, 1485, 1489, 1931, 1998,
870      1547, 1550, 2065, 2132, 1553, 1557, 2199, 2256, 1615, 1618,
871      2313, 2373, 1621, 1625, 2433, 2500, 1628, 1677, 1680, 1683,
872      1687, 1690, 1739, 1742, 2567, 2634, 1745, 1749, 1752, 1808,
873      1811, 1814, 1818, 1821, 2701, 2768, 1951, 1954, 1957, 1961,
874
875      1964, 2018, 2021, 2024, 2835, 2892, 2028, 2031, 2949, 3016,
876      2085, 2088, 2091, 2095, 2152, 2155, 2158, 2162, 3083, 3150,
877      2219, 2222, 2225, 2229, 2276, 2279, 2282, 2286, 3217, 3284,
878      2333, 2336, 2339, 2343, 2346, 2393, 2396, 2399, 3351, 3421,
879      2403, 2406, 3491, 3548, 2453, 2456, 2459, 2463, 2466, 2520,
880      2523, 2526, 3605, 3675, 2530, 2533, 3745, 3815, 2587, 2590,
881         0,    0, 9426,12639,12639,   95,  100,   29,   41,12639,
882       103,   51,12639,12639, 9415,12639,12639, 9404,12639, 9415,
883      9415,  202,12639,12639,12639,12639, 9413, 9409, 9364,  153,
884     12639,  161, 9390,    0,  145,12639, 9352,12639,  165, 3881,
885
886        73, 2599,  315,  357, 9392, 9339,12639,  168, 9378,    0,
887       152,12639, 9340,12639,  261, 9384,   31,12639,  266, 9371,
888         0,  245,12639, 9333, 9337, 9331,  421, 9336,12639,  269,
889      9362,    0,  340,12639, 9324, 9324,  271, 9326,  238,12639,
890       441,  484,12639,  504, 9350,    0,  401,12639, 9309, 9311,
891      9297,12639,  561,  548,12639,  571, 9342,    0,  481,12639,
892      9309, 9293,12639,  628, 3945, 9291,  163, 2533,  567,  206,
893        38, 9342,  954, 2607,  639,  907,  437,   79,12639,  634,
894      9329,    0,  546,12639, 9285, 9295, 9279, 9284,12639,  638,
895       313,  559,  368,12639,  697, 9320,    0,  549,12639, 9286,
896
897      9266,12639,  704,  750,12639,  707, 9313,    0,  747,12639,
898      9279, 9254,12639,  771,  758,12639,  774, 9306,    0,  748,
899     12639, 9251, 9257, 9267,  251, 9246,12639,  831,  429, 9252,
900       497,12639,  837, 9292,    0,  815,12639, 9239, 9243, 9253,
901      8660,12639,  840,  530,  564,12639,  906, 8712,    0,  816,
902     12639, 8681,12639,  914,  891,12639,  977, 8709,    0,  825,
903     12639, 8665, 8675, 8662,12639,  981,  965,12639, 1021, 8705,
904         0,  881,12639, 8654,  203, 8659, 8669,  970,   85,  429,
905       972, 8656,12639, 1040,  814,  833,12639, 1044, 8691,    0,
906       953,12639, 8639, 8656, 8651,  157, 8649, 8628,12639, 1048,
907
908      1092,12639, 1105, 8675,    0,  966,12639, 8620, 8618, 8624,
909      8629, 8630, 8612, 8605,12639, 1108, 1093,12639, 1116, 8652,
910         0, 1032,12639, 8599, 8599,12639, 1172, 1159,12639, 1175,
911      8630,    0, 1033,12639, 8591, 8587, 8588,12639, 1179, 1226,
912     12639, 1183, 8609,    0, 1095,12639, 8578, 8572, 8573,   15,
913     12639, 1239,  899, 1074,12639, 1242, 8597,    0, 1167,12639,
914      8549,  181,12639, 1246, 1242,  367,  303,12639, 1307, 8585,
915         0, 1234,12639, 8537, 8527,  299,12639, 1310, 1310,  350,
916     12639, 1313, 8572,    0, 1302,12639, 8529, 8533,12639, 1358,
917      1363,12639, 1377, 8557,    0, 1362,12639, 8509, 8508,12639,
918
919      1383, 1430,  370,12639, 1425, 8549,    0, 1426,12639, 8501,
920      8495, 8491,12639, 1442, 1436,  488,12639, 1448, 8534,    0,
921      1432,12639, 8482, 8469, 8474, 8467, 8456,12639, 1509, 1445,
922       560, 1103,12639, 1515, 8502,    0, 1494,12639, 8472,12639,
923      1518, 1558,12639, 1521, 8499,    0, 1559,12639, 8453,12639,
924      1579, 1141, 1344,12639, 1583, 8484,    0, 1567,12639, 8441,
925      8443,12639, 1587, 1632,12639, 1590, 8468,    0, 1629,12639,
926      8434, 8436,12639, 1645, 1633, 1707,  677, 8412,12639, 8472,
927      8461,12639,12639,12639, 1700,  375, 8411, 8404, 8398, 8446,
928      8404,12639,    0, 8389, 8390, 8413, 8377,  104, 1328, 8374,
929
930      8361, 8356, 8360,  621, 1646,  695, 8347, 8330, 1701,  912,
931      8352, 1719, 8328, 1709, 8313, 1724, 1777, 1778,12639,    0,
932      8318, 8319,12639,    0, 8315, 2098, 8307,  666, 8300, 8337,
933     12639,    0, 8292, 2165, 8276, 8297, 8281, 8289, 8284, 8283,
934      8258,12639,    0, 8270, 8255, 8267, 8235,12639,    0, 2232,
935      8233, 8278, 8256,  172, 8230, 8229, 8229, 1788, 1171, 8216,
936      1789, 8241,  707,  814,  841, 1022, 1577, 1913, 1639, 1179,
937     12639,    0, 8216, 2289, 8225, 8201, 8200,  889,12639,    0,
938      8203, 8196, 8197,12639,    0, 8185, 8181, 8182,12639,    0,
939      8174,  826, 2596, 8151, 8151, 8167, 8158,  897,12639,    0,
940
941      8143, 8127, 2614, 8124, 8119,12639,    0, 8119, 8123,12639,
942         0, 8102, 2656, 2666, 8116,12639,    0, 8121, 8114, 2674,
943      8095, 2680, 8091, 8092, 8088, 8075, 8092, 8091, 8066, 8085,
944      8079, 8072, 8061, 8072,12639,    0, 2721, 2724, 8050, 8042,
945      8057, 8053, 8050, 8042,12639,    0, 8043, 8042, 8022, 2727,
946      8016, 8007, 8028, 8002,12639,    0, 7982, 2730, 7977,12639,
947         0, 7963, 2733, 7950, 7967,12639,    0, 7953, 2788, 7935,
948      7953, 7943, 7931,12639,    0, 7913, 7929, 7909, 7903, 7910,
949     12639,    0, 7890, 7908, 7900, 7889, 7926,12639,    0, 7874,
950      2791, 7879,12639,    0, 7869, 7881, 7881,12639,    0, 7858,
951
952      7853, 7849, 7848,12639,    0, 7831, 7825, 7828, 7839, 7831,
953      7791, 7787,12639,    0, 7789, 7796,12639,    0, 2794, 7792,
954     12639,    0, 2797, 7782, 7760,12639,    0, 2800, 7763, 7752,
955      7792, 7800, 1615, 7741,12639, 1970,    0, 7737, 7736, 7781,
956      7779, 7731,12639, 7744, 7724, 2600, 2855, 1714, 7722, 7725,
957      7710, 7723, 7702, 7708, 7699, 7689, 7704, 7683,  458, 7676,
958      7689, 7684, 7669, 7668, 7656, 7661, 7669, 7655, 7653, 1990,
959      7657, 7637, 7650, 7647, 7631, 7640, 7634, 2858, 2863, 7632,
960      2866, 2048, 7627, 7658, 2869, 2914,12639, 7624, 2917, 2117,
961      2924, 7614, 2927, 7611, 7615, 7617, 2920, 2983, 7603, 7610,
962
963      7610, 2969, 2972, 2975, 2184, 7587, 2979, 3037, 2363, 7596,
964      7582, 7575, 7572, 7576, 7559, 7552, 7553, 2423, 7551, 7549,
965      7529, 7528, 7514, 3040, 2550, 7528, 7526, 3044, 3047,  868,
966      7525, 7501, 3050, 3103, 7513, 7508, 3106, 3114, 7503, 7492,
967      7496, 3109, 2621, 7495, 7496, 7476, 3117, 3129, 1204, 7474,
968      7486, 7459, 3170, 2685, 7472, 3173, 3180, 7470, 3183, 3242,
969      7460, 3176, 2755, 3237, 2822, 3247, 3250, 7463, 1993, 3255,
970      3002, 7462, 3305, 3069, 3308, 7457, 7439, 7449, 7443, 7439,
971      7426, 7419, 7407, 7411, 7393, 3312, 3315, 3318, 3137, 3374,
972      3204, 3377, 3384, 3397, 3387, 3453, 3443, 3467, 7397,   37,
973
974      7387, 3446, 3405, 3456, 7398, 7373, 3511, 3519, 7373, 3515,
975      3474, 3522, 3525, 7386, 3571, 3574, 7375, 3582, 3625, 7372,
976      3628, 3594, 7369, 7355, 7342, 3633, 3640, 3636, 3646, 3654,
977      3696, 3704, 7346, 3699, 3709, 3723, 3770, 3766, 3775, 7350,
978      3778, 3727, 3781, 3835, 3838, 3841, 3844, 3847, 3850, 3872,
979      3875, 3878, 3885, 7351, 7312, 7318, 7322, 7308, 3893, 3897,
980      7317, 7302, 3905, 3908, 3949, 3735, 3952, 3957, 3967, 3801,
981      7300, 3977, 3987, 3980, 3912, 7299, 4012, 4015, 7346,12639,
982     12639, 1141, 7275,12639, 7317, 7310, 7259,12639,12639, 7250,
983      7245, 7248, 4019, 4022,12639, 4025, 1848, 7240, 7228, 7237,
984
985      7245, 7235, 7224, 7221, 2250, 7205, 7209, 7209, 7213, 7188,
986      7185, 7176, 7173, 1450, 7187, 7170, 7167, 7181, 7167, 7168,
987      2307, 7157, 7146, 7151, 7137, 1782, 7150, 4044, 4034, 4047,
988     12639, 4053, 4056, 4062,12639,12639, 4077, 7170, 4080, 4083,
989     12639, 4086, 7127, 4089,12639,12639, 4105, 4108, 4117, 4123,
990      4128, 7131, 4141, 7129, 4144, 4147,12639, 4150, 7123, 4153,
991      7121, 4159, 4171,12639, 4174, 4178,12639,12639, 7116, 4186,
992      4193,12639, 4196, 7108, 7104, 7113, 2483, 7092, 7100, 2054,
993      7088, 7088, 7101, 7089, 7069, 7063, 7076, 4199,12639,12639,
994      7067, 4207, 4215, 4218,12639, 4225, 7073, 4228, 4237, 4240,
995
996      4246,12639, 4249, 4255, 4259, 4273, 4277,12639, 4280, 7041,
997      7048, 4268, 4292,12639,12639, 7029, 7026, 7039, 4288, 4300,
998     12639, 4303, 7018, 7016, 7021, 7018, 4307,12639,12639, 7039,
999      4322, 4325,12639, 4329, 4332, 4335, 4354,12639, 4357, 4350,
1000      4362,12639,12639, 4376,12639,12639, 4384, 4387,12639, 4391,
1001      6992, 6979, 6997, 6985, 4394,12639,12639, 4406, 4410,12639,
1002     12639, 4418, 4425, 6971, 6984, 6967, 6974, 6966, 6941, 6936,
1003      6931, 6919,  637, 4436, 4439,12639, 4442, 4445,12639,12639,
1004      4461,12639,12639, 4469, 4472, 6909, 6916, 6921, 6900, 4480,
1005      4483,12639, 4487, 6896, 6891, 6878, 6893, 4490,12639,12639,
1006
1007      4502, 4506, 6878, 6866, 4514, 4520,12639, 4523, 6866, 4526,
1008     12639,12639, 4542, 4545,12639, 4548, 6841, 4551,12639,12639,
1009      6848, 4567, 4570,12639, 4575, 6830, 4579,12639,12639, 6838,
1010      6833, 6831, 4589, 4594,12639, 4598, 4601, 4604, 4619, 4625,
1011      6828, 4633, 4637,12639, 4641, 6819, 4644, 4662, 6801, 6732,
1012      4648, 4670, 6695, 4678, 4681,12639, 4684, 6689, 4687,12639,
1013     12639, 4703, 4709,12639, 4712, 4715, 4718, 4733, 4736, 4744,
1014      4751,12639, 4755, 4758, 4763, 6598, 6595, 4776, 4779, 4787,
1015      4790,12639, 4794, 6536, 4797, 6555, 6552, 6520, 4800, 4809,
1016     12639, 4819, 6517, 6481, 4822, 4828,12639, 4831, 4834,12639,
1017
1018     12639, 4842, 4850,12639, 4853, 4857,12639,12639, 6475, 4865,
1019      4872,12639, 4875, 4885,12639,12639, 6450, 4894, 4897,12639,
1020      4900, 1280, 4903,12639,12639, 6462, 6436, 6398, 6335, 4906,
1021      6250, 6247, 6246, 6167, 6159, 6038, 6019, 2492, 2495,   20,
1022      2559,  134,  249,  294, 2562,  345,  352, 2662,  383,  444,
1023       450,  497,  561,  580,  667,  697,  698, 2693,  744,  759,
1024      4909, 4927, 4937, 4940, 4944,  771,  802, 4952,  782, 4958,
1025     12639,12639, 4966, 4973, 4984,12639,12639,  981, 4992, 4996,
1026       978, 5004, 1032, 5010, 5013, 5023, 5028, 1059, 5031,12639,
1027      1093, 1179, 1165, 2763, 3010, 3077, 2830, 1200, 1239, 1229,
1028
1029      1230, 1246, 1265, 1259, 5034, 5041, 5055, 5063, 1264, 5066,
1030      5069, 1286, 5078, 5084, 5087, 1312, 5097, 1316, 1333, 5102,
1031      5105, 5116, 1370, 5120, 5123, 1364, 1368, 1379, 1392, 1403,
1032      5128, 5134, 5143, 5152, 5155, 5160, 5173, 1409, 5176, 1407,
1033      1446, 5179, 5183, 5197,12639,12639, 1449, 1477, 5205, 1471,
1034      1509, 1496, 1504, 1519, 1497, 1513, 1548, 5208, 5211,12639,
1035     12639, 5219, 5223, 5227, 5230, 5233, 1603, 5241, 1587, 1599,
1036      5248,12639,12639, 5259, 1625, 5262, 1639, 5265, 1640, 1649,
1037      5268, 1650, 1684, 1696, 5277, 5289, 5295,12639,12639, 5304,
1038     12639,12639, 1691, 5312, 3212, 5315,12639,12639, 1706, 1726,
1039
1040      5332,12639,12639, 1710, 5327, 1713, 5340, 5347,12639,12639,
1041      5355,12639,12639, 5363, 5366,12639,12639, 1715, 1734, 5375,
1042     12639,12639, 5383, 1729, 5389, 5392, 1736, 1762, 1779, 5402,
1043      1767, 5407, 5411, 5414, 5417, 5421, 5425, 5435, 1951, 1827,
1044      5443,12639, 1833,12639,12639, 1793, 1885, 5446, 1902, 1921,
1045      1917, 1919, 1936, 1937, 1959, 3275, 1969, 1985, 3279, 1987,
1046      1992, 3342, 1992, 3346, 1984, 1992, 3380, 2000, 3415, 2008,
1047      3482, 2026, 2035, 2051, 2054, 2056, 3450, 2043, 3666, 5455,
1048     12639,12639, 5467, 5470,12639,12639, 2067, 2087, 5479, 2060,
1049      5488,12639,12639, 2070, 5499,12639,12639, 2061, 5507, 2080,
1050
1051      5512, 2851, 3032, 5520, 5531, 5526, 2108, 2103, 2109, 2107,
1052      3486, 2115, 3589, 3796, 5539, 2122, 2118, 2124, 5545, 5548,
1053      2126, 5552, 5555, 5563,12639,12639, 5571, 2147, 5574,12639,
1054     12639, 2144, 5582, 5586,12639,12639, 5594, 5597, 2148, 2153,
1055      5606,12639,12639, 5619, 5622, 5630, 5633, 5637, 2176, 5651,
1056      3809, 2189, 5654, 5657, 5662, 5665, 5680,12639,12639, 5675,
1057     12639, 5688,12639,12639, 5696, 2189, 5699, 5702, 5717, 2175,
1058      5720,12639,12639, 2176, 2193, 5728, 5731, 5739, 2188, 2201,
1059      2200, 2218, 5746, 2238, 2240, 5749, 5752, 5757, 5770, 5773,
1060      5776, 5779, 2246, 5782, 5794, 5802, 2236, 5805, 5809, 2245,
1061
1062      5823, 2239, 5826, 2253, 2233, 5832, 2260, 2256, 2289, 5835,
1063      5847, 2298, 5855, 2287, 5858, 2304, 5861, 5864, 5867, 5870,
1064      2299, 5889, 5885, 5893, 5896, 5899, 2295, 5904,12639,12639,
1065      2305, 2308, 2301, 5914, 2318, 5919, 5922, 5938, 5941, 5944,
1066      5947, 5966, 5969, 5972, 5980, 2352, 2402, 2396,12639, 2338,
1067      5987, 5990, 2359, 2351, 2353, 2450, 2350, 2362, 3931, 2374,
1068      2379, 2405, 2411, 4652, 2421, 2412, 2415, 5037, 5993, 5999,
1069      2438, 6005, 2441, 6009, 6012, 2448, 2465, 2486, 2473, 6015,
1070      2491, 6018, 2498, 2536, 6021, 2532, 6024, 2539, 6027, 6030,
1071      2584, 2573, 2649, 2574, 2590, 2586, 2668, 2590, 6033,12639,
1072
1073     12639, 6042, 6048, 2575, 2569, 2716, 2575, 6052, 6055, 2608,
1074      2717, 2722, 6061, 6069,12639,12639, 6079, 2598, 2642, 6082,
1075      6089, 6092, 6101, 2617, 2643, 6108,12639,12639, 6116, 6120,
1076      6134, 2664, 2681, 2684, 6128,12639, 6142, 2687, 6149, 6152,
1077      6160, 6163, 6167, 6181, 6184, 2688, 6187,12639,12639, 6195,
1078      6203, 2693, 2703, 2703, 6213,12639,12639, 6221, 6224, 6235,
1079      2706, 2736, 2748, 6239, 6243, 2740, 2735, 6253, 6257,12639,
1080     12639, 6265, 6268, 6276, 6279, 6283, 6297, 2752, 6301,12639,
1081     12639, 6309, 6312, 2762, 6320,12639,12639, 2755, 6328,12639,
1082      2768, 6331, 2750, 6334, 6337, 2753, 6340, 2774, 6343, 2791,
1083
1084      2793, 2773, 6352,12639, 2794, 6358, 2795, 6361, 6364, 6372,
1085      6380, 2807, 6390, 2813, 6399, 6402, 6405, 6409, 6423, 6426,
1086      6434, 2815, 2818, 2817, 2833, 6437, 2829, 6442,12639,12639,
1087      6457, 6460, 6464,12639,12639, 6472,12639, 6479,12639,12639,
1088      6487, 2888, 2964, 2922, 2871, 6492, 6496, 6510, 6514, 2865,
1089      2882, 2898, 2878, 6517, 6520, 6523, 2883, 6529, 2885, 2882,
1090      2912, 2929, 6534, 6537, 6540, 6543, 2928, 6546, 6549, 6552,
1091      6555, 6558, 6561, 2930, 6564, 2940, 2952, 6567,12639, 2934,
1092      6570, 6576, 2953, 6590, 6593, 6596, 2972, 2970, 2970, 3010,
1093      3013, 3025, 3027, 3034, 3042, 3039, 6604, 6611, 6616, 6624,
1094
1095      3046, 3075, 3059, 3062, 6629, 6632, 6635, 6638, 3059, 6646,
1096      3070, 3090, 6649,12639, 6654,12639,12639, 6668, 3084, 3077,
1097      6672,12639,12639, 3163, 3164, 3087, 3095, 6680,12639,12639,
1098      6688, 6691, 3120, 6699,12639,12639, 6707, 6710, 3134, 6713,
1099     12639,12639, 3139, 3144, 3161, 6722,12639,12639, 6730, 6733,
1100      3159, 3148, 3173, 6741,12639,12639, 3193, 6749, 6752, 6755,
1101     12639,12639, 6767, 6771, 6779,12639,12639, 6787, 3183, 6790,
1102     12639,12639, 3179, 3195, 3193, 6799, 3209, 6802, 6806, 6820,
1103      3210, 6823, 6826, 3214, 3205, 3298, 3299, 3212, 3224, 6834,
1104     12639, 3238, 6841,12639,12639, 6854,12639,12639, 3272, 6849,
1105
1106      3266, 6863, 6868, 6871,12639,12639, 6883,12639,12639, 6891,
1107      6895, 6901, 6905, 6913, 6919, 3261, 6923, 6926, 6931, 6938,
1108      3322, 3353, 6934, 6946,12639,12639, 6957, 6960, 6963, 6966,
1109      3270, 3270, 6976, 6979, 3282, 6985, 6988, 3304, 6994, 6997,
1110      7000, 7003, 3306, 3330, 7006, 7009, 7012, 7017, 3332, 7020,
1111      3327,12639, 7023, 7026,12639,12639, 7034, 7041,12639, 7045,
1112     12639,12639, 3377, 3364, 3379, 3378, 3386, 3388, 3375, 3417,
1113      3429, 3436, 7053, 7056, 7039, 7043, 7073, 7080, 3398, 3397,
1114      3414, 7084, 3406, 7087,12639,12639, 3406, 7095, 3419, 7101,
1115      7104, 3463, 3479, 3506, 3529, 3509, 3531, 3488, 7107, 7119,
1116
1117     12639,12639, 3470, 7110, 7115, 3487, 3491, 3490, 3521, 7130,
1118     12639,12639, 7142, 3501, 3517, 3518, 7145, 7149, 7163, 7166,
1119     12639,12639, 7176, 3525, 3534, 3536, 3546, 7182,12639, 7185,
1120      7188,12639,12639, 7196, 7203, 7206,12639,12639, 7215, 7221,
1121      3574, 3598, 3594, 3624, 7224, 3585, 7138, 3592, 7227, 7233,
1122      7242, 7251, 7254, 7257, 7261, 7276, 7279, 7283, 7286, 7297,
1123      7305, 7308,12639, 7313, 7317, 3639, 3647, 7320, 7327, 7336,
1124      7339, 3583, 3586, 7342, 7346, 3597, 7349, 7352, 3590, 3602,
1125      3604, 7355,12639, 3598, 7358, 7361, 3615, 3662, 3661, 3675,
1126      3669, 3681, 3677, 3675, 3699, 3687, 3702, 7380, 3683, 3714,
1127
1128      3727, 3712, 3731, 3730, 3736, 3796, 3731, 3749, 7383, 3745,
1129      3741, 7386, 3785, 3795, 7389, 3799, 7392, 7395, 7403, 3798,
1130      3801, 3864,12639, 3862,12639, 7410, 7413, 3809, 7416,12639,
1131      7423, 3815, 3836, 3828, 3833, 3857, 7428, 7431, 3859, 7442,
1132      3869, 7446, 3900, 3935, 7456,12639, 7460,12639, 3855, 3859,
1133      7464, 3862, 7467, 7475, 7470, 7485, 7489, 3889, 3884, 3886,
1134      3958,12639, 3956,12639, 7497, 3913, 7503, 3916, 7506,12639,
1135      7509, 7515, 7527, 7530, 7534, 7537,12639,12639, 7549, 7553,
1136      7561, 7567, 7570,12639, 7573, 7581, 7585, 3973, 3983, 3967,
1137      7589,12639, 3909, 3932, 7592, 7600, 3924, 3939, 3945, 7604,
1138
1139      7608, 4006, 4080, 3941, 3978, 3988, 4010, 4021, 4046, 4031,
1140      4040, 4045, 4048, 4063, 7616, 4007, 4019, 4031, 4037, 4037,
1141      4031, 4033, 4055, 4053, 4062, 4061, 4058, 4060, 4080, 7622,
1142      4074, 4086, 7625, 7628, 7631,12639,12639, 7639,12639, 4068,
1143      7647,12639,12639, 7650, 7654, 4105, 7668, 4086, 4101, 4107,
1144      7671, 4100, 7677,12639,12639, 4112, 7689, 7693, 4103, 4150,
1145      4149, 4153, 4156, 4120, 7701, 7707, 7710, 7719, 7725,12639,
1146     12639, 7733,12639, 7737,12639,12639, 4147, 4154, 4157,12639,
1147     12639, 7745, 7748, 7756, 7759, 7763, 4305, 4425, 7777,12639,
1148      7780, 7783, 7786,12639,12639, 7802, 7805, 7813, 7816, 7824,
1149
1150     12639, 7827, 4205, 4253, 4279, 4147, 7831, 7834, 4171, 4182,
1151      4183, 7837, 7848, 4198, 4201, 4233, 4208, 4228, 4328, 4203,
1152      4242, 4243, 4267, 4272,12639, 4292, 4277, 4276, 4280,12639,
1153      7856, 4276, 4285, 4274, 4302, 4314, 4323, 4306, 4316, 4303,
1154      4321, 4330, 4335, 4331, 7859, 4348, 7862, 7865, 7868, 7871,
1155      7875, 7880, 7893,12639,12639, 7901, 7904,12639, 4354, 4342,
1156      7908, 7911, 7919, 7914, 4355, 7932,12639,12639, 4362, 4395,
1157      4380, 4401, 4386, 4382, 7940, 7943, 7951,12639,12639, 7959,
1158      7962, 4372, 7970, 4382, 7973,12639,12639, 7981, 7984, 7992,
1159      7995, 4399, 4400, 4415, 4417, 4419, 4420, 8003, 8006, 8010,
1160
1161      4476, 4495, 8018,12639,12639, 8026, 4493, 4511, 8029, 4408,
1162      8032, 8035, 4400, 4401, 8038,12639,12639, 4455, 4444, 4445,
1163      4467, 4475, 4463, 4467, 4491, 8048, 4496, 4516, 4533, 4519,
1164      4502, 4534, 4549, 4537, 8051, 4495, 4497, 4515, 4569, 4574,
1165      4524, 4518, 4522, 4542, 4590, 4602, 4552, 4562, 8055, 8058,
1166      8061, 8070, 8066, 8079, 8085, 4562, 8097,12639,12639, 8093,
1167      8105, 4565, 4564, 8113, 8118, 8127,12639,12639, 8135, 8138,
1168      4552, 4564, 4592, 4592, 4602, 4608, 4604, 8146,12639,12639,
1169      8154,12639,12639, 4606, 8162, 8165, 4589, 8173, 4657, 4664,
1170      8181, 4696, 4698, 4626, 4635, 4669, 4634, 4643, 4685, 8189,
1171
1172      8192, 4665, 4671, 4670, 4677, 8195,12639, 4764, 8198, 8201,
1173      8204, 8223, 8226, 8229, 8232, 4673, 4699, 4701, 4689, 4695,
1174      4718, 4724, 4712, 8235, 8238, 4727, 4733,12639, 4738, 4741,
1175      4743,12639, 4746, 8246, 4733, 4719, 4799,12639,12639, 4754,
1176      4755, 4741, 4806,12639,12639, 4765, 8249, 8253, 8259,12639,
1177     12639, 8267, 8270,12639,12639, 4770, 8279,12639,12639, 4771,
1178      4784, 8287,12639,12639, 8295,12639,12639, 8303, 4780, 4843,
1179      4811, 4855, 4826, 4814, 8306, 8309,12639,12639, 8317, 4836,
1180      4854, 4845, 4857, 4848, 4864, 4857, 4890, 4883, 4893,12639,
1181      4886, 4896,12639, 8324,12639, 8327, 4899, 4888, 4906, 4895,
1182
1183      4915, 8330, 8336, 8349, 8380, 8427, 8357, 8360, 8363, 4912,
1184      4939, 4943, 4911, 4933, 4954, 4956, 4926, 8368,12639,12639,
1185      4965, 4940, 4947, 4972, 4950, 4951, 8391, 4923, 4925,12639,
1186      4935, 4935, 4938,12639, 4952, 8400, 8403,12639, 4950, 4958,
1187      4969, 8406, 8410, 8418,12639, 5015,12639, 5014, 4968, 8438,
1188      8447, 8456, 8459, 5040, 5008, 5040, 5011, 5046, 5015, 5046,
1189      5023, 5057, 5068, 5067, 5068, 8467, 5078, 5052, 5085, 5055,
1190      5095, 8474, 5096, 5124, 8494, 8541, 5083,12639,12639, 5072,
1191      5098,12639,12639, 5075,12639, 5122, 5128,12639, 5132, 5133,
1192      8487,12639, 5191, 5101, 5145, 5156, 5118, 5161, 5118, 5120,
1193
1194      5111, 8514, 5163, 5220, 8506, 8524,12639,12639, 5135, 8561,
1195     12639,12639, 8569, 5247, 5250,12639, 5190,12639, 5196,12639,
1196      5210,12639, 5209,12639,12639,12639,12639, 8532,12639,12639,
1197      5197,12639, 5218, 5285, 5267, 5235, 5242, 5274, 5249, 8535,
1198      5269, 5274, 5288, 5285,12639,12639,12639,12639,12639, 5244,
1199      5316,12639,12639, 5252, 5328,12639, 8577, 8580, 8587, 5304,
1200      5294, 5332, 5310, 8591,12639,12639, 8599, 5333, 5333, 5341,
1201      5342,12639,12639,12639,12639, 5338, 5350, 8605, 5383, 5376,
1202      5391, 8608, 5396, 5385, 5421, 5411, 5372,12639, 5391, 5379,
1203     12639, 5394, 8611, 8617, 8629, 8632, 8640, 8643, 5411, 5419,
1204
1205      5432, 5416, 5427, 5440, 8651, 8654, 5425, 5434, 5453, 5437,
1206      5445, 5462, 5446, 5449, 8662, 5473,12639, 5461,12639, 5464,
1207      5438, 5455, 5441, 5461, 8665,12639,12639, 8674,12639,12639,
1208      8682, 5492, 5499, 5480, 5487, 5487, 5507, 5512, 5515, 8690,
1209     12639,12639, 5523, 5529, 5525, 5531, 5548, 5544, 5581, 5584,
1210      5574,12639, 5597, 5595, 5537, 5551, 5547, 5562, 5605, 5600,
1211      5608, 5613, 5614, 5620, 5621, 5618, 5626, 5636, 5640, 5647,
1212      5648, 5645, 5655, 5661,12639,12639, 5668,12639,12639, 5626,
1213      5643, 5642, 5657, 5672, 5691, 5675, 5695, 5690, 5687, 5713,
1214      5702, 5704, 5721, 5720, 5721, 5739, 5730, 5727, 5745, 5770,
1215
1216      5781, 5782, 5782, 5784, 5757, 5764, 5777, 5778, 5793, 5783,
1217      5816, 5797, 5794, 5823, 5814, 5805, 5838, 5819, 5810, 5839,
1218      5894,12639,12639,12639,12639, 5825, 5850, 5847, 5855, 5878,
1219      5852,12639, 5885, 5871,12639, 5921, 5896,12639, 5921, 5899,
1220     12639, 5945, 5898, 5911, 5917, 5930,12639, 5931,12639, 5933,
1221     12639, 5934,12639, 5936, 8700, 5938, 5971, 5954, 5976, 5943,
1222      5960, 5961, 6004, 8703, 6054,12639, 6052,12639, 6060, 6059,
1223      6063, 6065, 6057, 6059,12639,12639,12639,12639,12639,12639,
1224      6107, 6113, 6127, 6152, 6077, 6096, 6158, 6215, 6137, 6180,
1225      6182, 6191, 6198, 6209, 6193, 6231, 6067, 6119, 6087, 6242,
1226
1227      6228, 6305, 6233, 6338, 6212, 6365, 6282, 6370, 6359, 6376,
1228      6105, 6255, 6357, 6423, 6367, 6427, 6379, 6401, 6157, 6396,
1229      6467, 6486, 6451, 6452, 6307, 6403, 6509, 6557, 6589, 6639,
1230      6271, 6435, 6570, 6653, 6591, 6623, 6563, 6596, 6667, 6686,
1231      6601, 6698, 6647, 6709, 6701, 6718, 6665, 6721, 6767, 6775,
1232      6743, 6777, 6726, 6764, 6800, 6828, 6794, 6797, 6793, 6811,
1233      6839, 6844, 6856, 6080, 8711, 8714,12639,12639, 8734, 8743,
1234      8752, 8761, 8770, 8779, 8788, 8797, 8806, 8815, 8824, 8833,
1235      8842, 8851, 8860, 8869, 8878, 8887, 8896, 8905, 8914, 8923,
1236      8932, 8941, 8950, 8959, 8968, 8977, 8986, 8995, 9004, 9013,
1237
1238      9022, 9031, 9040, 9049, 9058, 9067, 9076, 9085, 9094, 9103,
1239      9112, 9121, 9130, 9139, 9148, 9157, 9166, 9175, 9184, 9193,
1240      9202, 9211, 9220, 9229, 9238, 9247, 9256, 9265, 9274, 9283,
1241      9292, 9299, 9306, 9313, 9320, 9327, 9334, 9341, 9348, 9355,
1242      9362, 9369, 9376, 9383, 9390, 9397, 9404, 9411, 9418, 9425,
1243      9432, 9439, 9446, 9453, 9460, 9467, 9474, 9481, 9488, 9495,
1244      9504, 9511, 9516, 9523, 9528, 9535, 9540, 9547, 9552, 9559,
1245      9564, 9571, 9576, 9583, 9588, 9595, 9600, 9607, 9612, 9619,
1246      9624, 9631, 9636, 9643, 9648, 9655, 9660, 9667, 9672, 9679,
1247      9684, 9691, 9696, 9703, 9708, 9715, 9720, 9727, 9732, 9739,
1248
1249      9744, 9751, 9756, 9763, 9768, 9775, 9780, 9787, 9792, 9799,
1250      9804, 9811, 9816, 9823, 9828, 9835, 9840, 9847, 9852, 9861,
1251      9867, 9874, 9882, 9889, 9897, 9904, 9912, 9919, 9927, 9934,
1252      9942, 9949, 9957, 9964, 9972, 9979, 9987, 9994,10002,10009,
1253     10017,10024,10032,10039,10047,10054,10062,10069,10077,10085,
1254     10093,10100,10108,10115,10123,10130,10138,10145,10153,10161,
1255     10169,10177,10185,10192,10200,10208,10216,10224,10232,10239,
1256     10247,10254,10262,10270,10277,10285,10292,10300,10309,10315,
1257     10322,10330,10338,10346,10354,10362,10369,10377,10384,10392,
1258     10399,10407,10414,10422,10430,10438,10446,10454,10461,10469,
1259
1260     10476,10484,10492,10500,10508,10516,10523,10531,10538,10546,
1261     10553,10561,10568,10576,10583,10591,10598,10606,10613,10621,
1262     10628,10636,10643,10651,10659,10666,10674,10681,10689,10696,
1263     10704,10712,10719,10727,10734,10742,10751,10760,10767,10775,
1264     10783,10790,10798,10805,10813,10820,10828,10835,10842,10850,
1265     10857,10865,10872,10880,10887,10895,10902,10910,10918,10926,
1266     10933,10941,10949,10957,10964,10972,10979,10987,10994,11002,
1267     11009,11017,11024,11032,11039,11047,11054,11062,11070,11077,
1268     11085,11092,11100,11108,11116,11124,11132,11140,11148,11156,
1269     11165,11174,11181,11189,11197,11204,11212,11219,11227,11234,
1270
1271     11242,11249,11256,11264,11271,11279,11287,11295,11302,11310,
1272     11318,11326,11334,11341,11349,11357,11365,11372,11380,11387,
1273     11395,11402,11410,11417,11425,11432,11440,11448,11456,11463,
1274     11471,11479,11487,11495,11502,11510,11518,11526,11534,11542,
1275     11551,11560,11568,11576,11584,11591,11599,11606,11614,11622,
1276     11630,11638,11646,11654,11661,11669,11677,11684,11692,11700,
1277     11708,11715,11723,11731,11739,11746,11753,11761,11768,11776,
1278     11783,11790,11798,11805,11813,11820,11828,11836,11844,11851,
1279     11859,11867,11875,11883,11892,11901,11909,11917,11924,11931,
1280     11939,11947,11954,11962,11969,11977,11984,11991,11999,12007,
1281
1282     12014,12022,12030,12037,12044,12052,12059,12067,12074,12081,
1283     12088,12096,12103,12111,12119,12127,12135,12143,12151,12159,
1284     12167,12176,12185,12193,12201,12208,12216,12224,12231,12239,
1285     12247,12255,12262,12269,12277,12285,12292,12300,12308,12315,
1286     12322,12330,12338,12346,12353,12360,12368,12376,12384,12392,
1287     12400,12408,12416,12424,12432,12441,12450,12458,12465,12472,
1288     12480,12487,12495,12503,12510,12517,12525,12532,12539,12546,
1289     12554,12561,12568,12575,12584,12593,12602,12611,12620,12629
1290     } ;
1291
1292 static yyconst flex_int16_t yy_def[3981] =
1293     {   0,
1294      3469, 3469, 3470, 3470, 3470, 3470, 3471, 3471, 3472, 3472,
1295      3473, 3473, 3474, 3474, 3474, 3474, 3475, 3475, 3469, 3469,
1296      3476, 3476, 3477, 3477, 3477, 3477, 3469, 3469, 3477, 3477,
1297      3477, 3477, 3469, 3469, 3477, 3477, 3469, 3469, 3477, 3477,
1298      3477, 3477, 3478, 3478, 3479, 3479, 3469, 3469, 3479, 3479,
1299      3479, 3479, 3480, 3480, 3474, 3474, 3481, 3481, 3482, 3482,
1300      3483, 3483, 3484, 3484, 3485, 3485, 3486, 3486, 3486, 3486,
1301      3469, 3469, 3486, 3486, 3486, 3486, 3469, 3469, 3486, 3486,
1302      3486, 3486, 3469, 3469, 3486, 3486, 3469, 3469, 3486, 3486,
1303      3486, 3486, 3469, 3469, 3486, 3486, 3469, 3469, 3486, 3486,
1304
1305      3486, 3486, 3487, 3487, 3488, 3488, 3469, 3469, 3488, 3488,
1306      3488, 3488, 3489, 3489, 3490, 3490, 3491, 3491, 3492, 3492,
1307      3493, 3493, 3494, 3494, 3469, 3469, 3494, 3494, 3494, 3494,
1308      3495, 3495, 3496, 3496, 3469, 3469, 3496, 3496, 3496, 3496,
1309      3497, 3497, 3498, 3498, 3499, 3499, 3500, 3500, 3468,  149,
1310      3501, 3501, 3469, 3469, 3501, 3501, 3501, 3501, 3502, 3502,
1311      3503, 3503, 3504, 3504, 3505, 3505, 3506, 3506, 3507, 3507,
1312      3508, 3508, 3509, 3509, 3510, 3510, 3511, 3511, 3469, 3469,
1313      3511, 3511, 3511, 3511, 3512, 3512, 3513, 3513, 3469, 3469,
1314      3513, 3513, 3513, 3513, 3514, 3514, 3515, 3515, 3469, 3469,
1315
1316      3515, 3515, 3515, 3515, 3516, 3516, 3517, 3517, 3518, 3518,
1317      3519, 3519, 3469, 3469, 3519, 3519, 3519, 3519, 3520, 3520,
1318      3521, 3521, 3469, 3469, 3521, 3521, 3521, 3521, 3522, 3522,
1319      3523, 3523, 3469, 3469, 3523, 3523, 3523, 3523, 3524, 3524,
1320      3525, 3525, 3526, 3526, 3527, 3527, 3469, 3469, 3527, 3527,
1321      3527, 3527, 3528, 3528, 3529, 3529, 3530, 3530, 3531, 3531,
1322      3469, 3469, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1323      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1324      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1325      3468, 3468, 3468, 3532, 3468, 3468, 3532, 3468, 3468, 3468,
1326
1327       300,  300,  302,  300,  303,  303, 3468, 3468, 3468, 3533,
1328      3468, 3468, 3533, 3468, 3468,  304,  303, 3468, 3468, 3468,
1329      3534, 3468, 3468, 3534, 3534, 3534, 3468, 3468, 3468, 3468,
1330      3468, 3535, 3468, 3468, 3535, 3535, 3535, 3535, 3535, 3468,
1331      3468, 3468, 3468, 3468, 3468, 3536, 3468, 3468, 3536, 3536,
1332      3536, 3468, 3468, 3468, 3468, 3468, 3468, 3537, 3468, 3468,
1333      3537, 3537, 3468, 3468, 3468,  365,  303,  303,  304,  369,
1334       368,  368,  368,  368,  369,  375,  373,  373, 3468, 3468,
1335      3468, 3538, 3468, 3468, 3538, 3538, 3538, 3538, 3468, 3468,
1336       303,  303,  303, 3468, 3468, 3468, 3539, 3468, 3468, 3539,
1337
1338      3539, 3468, 3468, 3468, 3468, 3468, 3468, 3540, 3468, 3468,
1339      3540, 3540, 3468, 3468, 3468, 3468, 3468, 3468, 3541, 3468,
1340      3468, 3541, 3541, 3541, 3541, 3541, 3468, 3468,  392,  392,
1341       303, 3468, 3468, 3468, 3542, 3468, 3468, 3542, 3542, 3542,
1342      3542, 3468, 3468,  303,  303, 3468, 3468, 3468, 3543, 3468,
1343      3468, 3543, 3468, 3468, 3468, 3468, 3468, 3468, 3544, 3468,
1344      3468, 3544, 3544, 3544, 3468, 3468, 3468, 3468, 3468, 3468,
1345      3545, 3468, 3468, 3545, 3545, 3545, 3545, 3545, 3545, 3545,
1346      3545, 3545, 3468, 3468,  303,  303, 3468, 3468, 3468, 3546,
1347      3468, 3468, 3546, 3546, 3546, 3546, 3546, 3546, 3468, 3468,
1348
1349      3468, 3468, 3468, 3468, 3547, 3468, 3468, 3547, 3547, 3547,
1350      3547, 3547, 3547, 3547, 3468, 3468, 3468, 3468, 3468, 3468,
1351      3548, 3468, 3468, 3548, 3548, 3468, 3468, 3468, 3468, 3468,
1352      3468, 3549, 3468, 3468, 3549, 3549, 3549, 3468, 3468, 3468,
1353      3468, 3468, 3468, 3550, 3468, 3468, 3550, 3550, 3550, 3550,
1354      3468, 3468,  303,  303, 3468, 3468, 3468, 3551, 3468, 3468,
1355      3551, 3551, 3468, 3468,  303,  373,  373, 3468, 3468, 3468,
1356      3552, 3468, 3468, 3552, 3552, 3552, 3468, 3468,  373,  373,
1357      3468, 3468, 3468, 3553, 3468, 3468, 3553, 3553, 3468, 3468,
1358      3468, 3468, 3468, 3468, 3554, 3468, 3468, 3554, 3554, 3468,
1359
1360      3468,  373,  373, 3468, 3468, 3468, 3555, 3468, 3468, 3555,
1361      3555, 3555, 3468, 3468,  373,  373, 3468, 3468, 3468, 3556,
1362      3468, 3468, 3556, 3556, 3556, 3556, 3556, 3468, 3468,  303,
1363       392,  303, 3468, 3468, 3468, 3557, 3468, 3468, 3557, 3468,
1364      3468, 3468, 3468, 3468, 3468, 3558, 3468, 3468, 3558, 3468,
1365      3468,  303,  303, 3468, 3468, 3468, 3559, 3468, 3468, 3559,
1366      3559, 3468, 3468, 3468, 3468, 3468, 3468, 3560, 3468, 3468,
1367      3560, 3560, 3468, 3468, 3468, 3468, 3561, 3468, 3468, 3468,
1368      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1369      3468, 3468, 3562, 3562, 3563, 3468, 3468, 3468, 3468, 3468,
1370
1371      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1372      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3564,
1373      3564, 3565, 3468, 3566, 3566, 3566, 3566, 3468, 3567, 3468,
1374      3468, 3568, 3568, 3568, 3568, 3568, 3568, 3568, 3568, 3568,
1375      3569, 3468, 3570, 3570, 3570, 3570, 3571, 3468, 3572, 3572,
1376      3572, 3573, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1377      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1378      3468, 3574, 3574, 3574, 3574, 3574, 3575, 3468, 3468, 3576,
1379      3576, 3576, 3577, 3468, 3578, 3578, 3578, 3579, 3468, 3580,
1380      3580, 3580, 3580, 3580, 3580, 3580, 3581, 3468, 3468, 3582,
1381
1382      3582, 3582, 3582, 3582, 3583, 3468, 3584, 3584, 3585, 3468,
1383      3586, 3586, 3586, 3586, 3587, 3468, 3588, 3588, 3588, 3588,
1384      3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588,
1385      3588, 3588, 3588, 3589, 3468, 3590, 3590, 3590, 3590, 3590,
1386      3590, 3590, 3590, 3591, 3468, 3592, 3592, 3592, 3592, 3592,
1387      3592, 3592, 3592, 3593, 3468, 3594, 3594, 3594, 3595, 3468,
1388      3596, 3596, 3596, 3596, 3597, 3468, 3598, 3598, 3598, 3598,
1389      3598, 3598, 3599, 3468, 3600, 3600, 3600, 3600, 3601, 3468,
1390      3468, 3602, 3602, 3602, 3602, 3602, 3603, 3468, 3604, 3604,
1391      3604, 3605, 3468, 3606, 3606, 3606, 3607, 3468, 3608, 3608,
1392
1393      3608, 3608, 3609, 3468, 3610, 3610, 3610, 3610, 3610, 3610,
1394      3611, 3468, 3468, 3612, 3612, 3613, 3468, 3614, 3614, 3615,
1395      3468, 3616, 3616, 3616, 3617, 3468, 3618, 3618, 3618, 3619,
1396      3620, 3468, 3620, 3468, 3468, 3468, 3621, 3468, 3468, 3468,
1397      3468, 3468, 3468, 3468, 3622, 3623, 3623, 3468, 3468, 3468,
1398      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1399      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1400      3468, 3468, 3468, 3468, 3468, 3468, 3624, 3625, 3625, 3626,
1401      3468, 3468, 3626, 3468, 3627, 3627, 3468, 3628, 3468, 3468,
1402      3628, 3628, 3628, 3628, 3628, 3628, 3629, 3629, 3630, 3630,
1403
1404      3630, 3631, 3631, 3468, 3468, 3632, 3633, 3633, 3468, 3468,
1405      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1406      3468, 3468, 3634, 3468, 3468, 3634, 3634, 3635, 3635, 3468,
1407      3636, 3636, 3637, 3637, 3638, 3638, 3639, 3639, 3640, 3640,
1408      3640, 3468, 3468, 3640, 3640, 3640, 3641, 3641, 3468, 3468,
1409      3642, 3642, 3468, 3468, 3642, 3643, 3643, 3644, 3645, 3645,
1410      3646, 3468, 3468, 3468, 3468, 3647, 3647, 3648, 3648, 3468,
1411      3468, 3648, 3468, 3468, 3648, 3648, 3648, 3648, 3648, 3648,
1412      3648, 3648, 3648, 3648, 3648, 3649, 3649, 3468, 3468, 3468,
1413      3468, 3650, 3650, 3650, 3650, 3650, 3651, 3651, 3652, 3652,
1414
1415      3652, 3468, 3468, 3652, 3652, 3652, 3653, 3653, 3654, 3468,
1416      3468, 3655, 3655, 3656, 3468, 3468, 3656, 3657, 3657, 3658,
1417      3468, 3468, 3658, 3658, 3658, 3659, 3659, 3660, 3660, 3660,
1418      3661, 3661, 3468, 3662, 3662, 3662, 3662, 3663, 3663, 3664,
1419      3468, 3468, 3665, 3665, 3666, 3666, 3667, 3667, 3668, 3668,
1420      3668, 3669, 3669, 3670, 3670, 3670, 3670, 3670, 3671, 3671,
1421      3468, 3672, 3673, 3673, 3468, 3468, 3674, 3674, 3468, 3468,
1422      3675, 3676, 3676, 3468, 3468, 3677, 3678, 3678, 3679, 3468,
1423      3468, 3679, 3468, 3468, 3680, 3468, 3468, 3468, 3468, 3468,
1424      3468, 3681, 3468, 3682, 3468, 3682, 3468, 3468, 3468, 3468,
1425
1426      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1427      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1428      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3683, 3468, 3684,
1429      3468, 3684, 3685, 3468, 3468, 3468, 3685, 3468, 3468, 3686,
1430      3468, 3686, 3687, 3468, 3468, 3468, 3468, 3468, 3687, 3468,
1431      3468, 3687, 3687, 3687, 3468, 3688, 3468, 3688, 3689, 3689,
1432      3689, 3468, 3690, 3468, 3690, 3468, 3468, 3468, 3691, 3468,
1433      3692, 3468, 3692, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1434      3468, 3468, 3468, 3468, 3468, 3468, 3693, 3468, 3468, 3468,
1435      3693, 3693, 3468, 3694, 3468, 3694, 3468, 3695, 3695, 3468,
1436
1437      3696, 3468, 3696, 3697, 3697, 3468, 3698, 3468, 3698, 3699,
1438      3699, 3699, 3468, 3468, 3468, 3699, 3699, 3699, 3468, 3700,
1439      3468, 3700, 3468, 3468, 3701, 3701, 3468, 3468, 3468, 3701,
1440      3468, 3702, 3468, 3702, 3703, 3468, 3704, 3468, 3704, 3705,
1441      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3706, 3468, 3706,
1442      3707, 3707, 3707, 3707, 3468, 3468, 3468, 3707, 3468, 3468,
1443      3468, 3468, 3468, 3707, 3707, 3707, 3707, 3707, 3707, 3707,
1444      3707, 3707, 3707, 3468, 3708, 3468, 3708, 3468, 3468, 3468,
1445      3468, 3468, 3468, 3468, 3468, 3709, 3709, 3709, 3709, 3468,
1446      3710, 3468, 3710, 3711, 3711, 3711, 3711, 3468, 3468, 3468,
1447
1448      3468, 3468, 3711, 3711, 3468, 3712, 3468, 3712, 3713, 3468,
1449      3468, 3468, 3468, 3714, 3468, 3714, 3715, 3468, 3468, 3468,
1450      3715, 3468, 3716, 3468, 3716, 3717, 3468, 3468, 3468, 3717,
1451      3717, 3717, 3468, 3718, 3468, 3718, 3468, 3468, 3468, 3468,
1452      3719, 3468, 3720, 3468, 3720, 3468, 3468, 3468, 3721, 3721,
1453      3468, 3468, 3721, 3468, 3722, 3468, 3722, 3723, 3468, 3468,
1454      3468, 3468, 3724, 3468, 3724, 3468, 3468, 3468, 3468, 3468,
1455      3725, 3468, 3725, 3468, 3468, 3726, 3726, 3468, 3468, 3468,
1456      3727, 3468, 3727, 3728, 3728, 3728, 3728, 3728, 3468, 3729,
1457      3468, 3729, 3468, 3730, 3468, 3731, 3468, 3731, 3468, 3468,
1458
1459      3468, 3468, 3732, 3468, 3732, 3468, 3468, 3468, 3733, 3468,
1460      3734, 3468, 3734, 3468, 3468, 3468, 3735, 3468, 3736, 3468,
1461      3736, 3737, 3738, 3468, 3468, 3468, 3468, 3468, 3739, 3740,
1462      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1463      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1464      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1465      3468, 3468, 3741, 3468, 3468, 3742, 3468, 3743, 3744, 3468,
1466      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3744, 3468, 3468,
1467      3744, 3745, 3746, 3468, 3468, 3746, 3747, 3748, 3468, 3468,
1468      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1469
1470      3468, 3468, 3468, 3749, 3749, 3468, 3468, 3750, 3468, 3468,
1471      3468, 3751, 3752, 3468, 3468, 3753, 3754, 3755, 3755, 3468,
1472      3468, 3755, 3755, 3755, 3756, 3468, 3468, 3757, 3757, 3757,
1473      3758, 3468, 3468, 3759, 3468, 3468, 3760, 3761, 3761, 3761,
1474      3761, 3468, 3468, 3468, 3468, 3468, 3761, 3761, 3761, 3761,
1475      3761, 3761, 3761, 3761, 3761, 3761, 3761, 3762, 3468, 3468,
1476      3468, 3763, 3763, 3763, 3763, 3764, 3765, 3765, 3765, 3765,
1477      3468, 3468, 3468, 3765, 3765, 3766, 3767, 3768, 3769, 3769,
1478      3770, 3771, 3771, 3771, 3771, 3772, 3468, 3468, 3468, 3468,
1479      3468, 3468, 3773, 3774, 3468, 3468, 3468, 3468, 3775, 3775,
1480
1481      3468, 3468, 3468, 3775, 3776, 3777, 3778, 3468, 3468, 3468,
1482      3468, 3468, 3468, 3779, 3468, 3468, 3468, 3780, 3780, 3468,
1483      3468, 3468, 3781, 3782, 3468, 3468, 3782, 3782, 3782, 3783,
1484      3468, 3784, 3785, 3786, 3787, 3788, 3789, 3790, 3791, 3792,
1485      3792, 3468, 3792, 3468, 3468, 3468, 3793, 3794, 3468, 3468,
1486      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1487      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1488      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1489      3468, 3468, 3795, 3468, 3468, 3468, 3796, 3468, 3797, 3798,
1490      3468, 3468, 3468, 3798, 3468, 3468, 3468, 3798, 3799, 3800,
1491
1492      3468, 3468, 3468, 3468, 3468, 3801, 3802, 3468, 3468, 3468,
1493      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1494      3803, 3468, 3468, 3468, 3468, 3468, 3804, 3468, 3468, 3468,
1495      3468, 3805, 3806, 3468, 3468, 3468, 3807, 3808, 3809, 3809,
1496      3468, 3468, 3468, 3468, 3468, 3809, 3468, 3468, 3809, 3810,
1497      3468, 3468, 3811, 3811, 3811, 3812, 3468, 3468, 3468, 3468,
1498      3468, 3468, 3468, 3468, 3813, 3814, 3468, 3468, 3814, 3814,
1499      3468, 3468, 3468, 3814, 3814, 3468, 3468, 3814, 3814, 3814,
1500      3814, 3814, 3814, 3814, 3814, 3815, 3468, 3468, 3816, 3816,
1501      3816, 3817, 3818, 3468, 3468, 3818, 3818, 3468, 3468, 3818,
1502
1503      3819, 3820, 3821, 3822, 3822, 3823, 3824, 3824, 3824, 3468,
1504      3468, 3824, 3825, 3826, 3827, 3468, 3828, 3828, 3828, 3829,
1505      3830, 3831, 3832, 3833, 3833, 3834, 3835, 3468, 3468, 3468,
1506      3835, 3835, 3835, 3836, 3468, 3468, 3468, 3837, 3838, 3468,
1507      3468, 3839, 3468, 3468, 3840, 3841, 3842, 3842, 3468, 3468,
1508      3843, 3844, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1509      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1510      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1511      3468, 3845, 3846, 3468, 3847, 3848, 3848, 3848, 3849, 3850,
1512      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1513
1514      3468, 3851, 3852, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1515      3468, 3468, 3853, 3468, 3468, 3468, 3854, 3468, 3855, 3856,
1516      3468, 3468, 3857, 3858, 3858, 3468, 3468, 3468, 3468, 3468,
1517      3468, 3468, 3468, 3858, 3468, 3468, 3468, 3468, 3468, 3468,
1518      3859, 3468, 3468, 3860, 3861, 3862, 3468, 3468, 3468, 3468,
1519      3468, 3862, 3862, 3862, 3468, 3468, 3468, 3468, 3468, 3862,
1520      3862, 3862, 3862, 3468, 3468, 3862, 3862, 3863, 3468, 3468,
1521      3468, 3468, 3468, 3864, 3468, 3468, 3865, 3866, 3468, 3468,
1522      3468, 3468, 3468, 3866, 3468, 3468, 3468, 3866, 3468, 3468,
1523      3867, 3868, 3869, 3869, 3870, 3871, 3871, 3871, 3468, 3468,
1524
1525      3468, 3871, 3468, 3468, 3872, 3873, 3468, 3468, 3468, 3468,
1526      3468, 3874, 3875, 3876, 3877, 3878, 3468, 3468, 3468, 3468,
1527      3879, 3880, 3880, 3880, 3880, 3881, 3468, 3468, 3468, 3468,
1528      3882, 3883, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1529      3884, 3885, 3886, 3886, 3468, 3468, 3468, 3887, 3468, 3468,
1530      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1531      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1532      3468, 3468, 3468, 3468, 3888, 3889, 3468, 3468, 3468, 3890,
1533      3468, 3468, 3890, 3891, 3468, 3468, 3468, 3468, 3468, 3468,
1534      3468, 3468, 3468, 3468, 3468, 3468, 3892, 3468, 3468, 3468,
1535
1536      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3893, 3894,
1537      3468, 3895, 3468, 3468, 3468, 3468, 3468, 3896, 3897, 3897,
1538      3468, 3468, 3468, 3468, 3468, 3897, 3468, 3468, 3468, 3468,
1539      3468, 3468, 3898, 3468, 3468, 3468, 3899, 3900, 3901, 3468,
1540      3468, 3468, 3901, 3901, 3901, 3468, 3468, 3468, 3468, 3468,
1541      3901, 3901, 3901, 3468, 3468, 3468, 3901, 3901, 3902, 3468,
1542      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3903, 3904, 3468,
1543      3468, 3468, 3904, 3904, 3905, 3906, 3907, 3468, 3468, 3908,
1544      3909, 3468, 3468, 3909, 3909, 3468, 3468, 3909, 3910, 3468,
1545      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3911, 3912,
1546
1547      3913, 3914, 3915, 3468, 3468, 3468, 3468, 3468, 3468, 3916,
1548      3917, 3917, 3917, 3917, 3918, 3468, 3919, 3920, 3921, 3922,
1549      3923, 3923, 3468, 3468, 3468, 3468, 3924, 3468, 3468, 3468,
1550      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1551      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3925,
1552      3926, 3468, 3927, 3468, 3468, 3468, 3927, 3468, 3468, 3468,
1553      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1554      3468, 3468, 3928, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1555      3468, 3468, 3468, 3468, 3468, 3468, 3929, 3930, 3468, 3931,
1556      3932, 3933, 3933, 3468, 3468, 3468, 3468, 3933, 3468, 3468,
1557
1558      3468, 3468, 3934, 3935, 3936, 3937, 3937, 3937, 3937, 3468,
1559      3468, 3468, 3937, 3937, 3937, 3937, 3468, 3468, 3938, 3468,
1560      3468, 3468, 3939, 3940, 3940, 3940, 3941, 3468, 3468, 3942,
1561      3468, 3468, 3468, 3943, 3944, 3468, 3468, 3468, 3944, 3944,
1562      3468, 3468, 3468, 3468, 3944, 3945, 3468, 3946, 3947, 3948,
1563      3949, 3950, 3951, 3468, 3468, 3952, 3952, 3952, 3953, 3468,
1564      3954, 3468, 3468, 3955, 3956, 3957, 3957, 3468, 3958, 3468,
1565      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1566      3468, 3468, 3468, 3959, 3468, 3468, 3960, 3468, 3468, 3468,
1567      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3961, 3468, 3468,
1568
1569      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1570      3468, 3468, 3468, 3962, 3963, 3468, 3468, 3468, 3964, 3965,
1571      3965, 3468, 3468, 3468, 3468, 3965, 3468, 3966, 3468, 3468,
1572      3967, 3968, 3968, 3968, 3968, 3968, 3468, 3468, 3968, 3968,
1573      3968, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3969, 3969,
1574      3969, 3970, 3468, 3468, 3971, 3468, 3468, 3972, 3972, 3972,
1575      3468, 3468, 3468, 3468, 3972, 3973, 3468, 3974, 3468, 3468,
1576      3468, 3468, 3949, 3950, 3951, 3468, 3468, 3468, 3468, 3468,
1577      3952, 3952, 3468, 3468, 3468, 3954, 3955, 3956, 3957, 3957,
1578      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3959,
1579
1580      3468, 3468, 3468, 3960, 3468, 3468, 3468, 3468, 3468, 3468,
1581      3468, 3468, 3468, 3468, 3961, 3468, 3468, 3468, 3468, 3468,
1582      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1583      3468, 3962, 3963, 3468, 3468, 3468, 3468, 3468, 3468, 3965,
1584      3965, 3468, 3468, 3468, 3468, 3966, 3967, 3968, 3968, 3968,
1585      3968, 3968, 3468, 3468, 3468, 3968, 3468, 3468, 3968, 3468,
1586      3468, 3468, 3468, 3969, 3969, 3468, 3468, 3970, 3468, 3468,
1587      3468, 3468, 3468, 3468, 3468, 3468, 3972, 3972, 3972, 3468,
1588      3468, 3468, 3468, 3973, 3974, 3468, 3468, 3468, 3468, 3468,
1589      3950, 3951, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1590
1591      3468, 3955, 3956, 3957, 3957, 3468, 3468, 3468, 3468, 3468,
1592      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3960,
1593      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1594      3961, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1595      3468, 3468, 3468, 3468, 3468, 3468, 3962, 3963, 3468, 3965,
1596      3468, 3468, 3468, 3468, 3468, 3966, 3468, 3468, 3968, 3968,
1597      3968, 3468, 3468, 3968, 3968, 3468, 3468, 3468, 3968, 3468,
1598      3468, 3468, 3468, 3969, 3468, 3468, 3468, 3468, 3468, 3468,
1599      3468, 3972, 3972, 3972, 3468, 3468, 3468, 3468, 3468, 3468,
1600      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3950, 3951, 3468,
1601
1602      3468, 3468, 3468, 3468, 3468, 3955, 3956, 3957, 3957, 3468,
1603      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1604      3468, 3468, 3468, 3468, 3468, 3960, 3468, 3468, 3468, 3468,
1605      3468, 3468, 3468, 3468, 3961, 3468, 3468, 3468, 3468, 3468,
1606      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1607      3468, 3468, 3963, 3468, 3468, 3965, 3468, 3468, 3468, 3468,
1608      3468, 3968, 3968, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1609      3968, 3968, 3468, 3468, 3468, 3468, 3969, 3468, 3468, 3468,
1610      3468, 3468, 3468, 3972, 3468, 3468, 3972, 3468, 3468, 3468,
1611      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3950,
1612
1613      3951, 3468, 3468, 3468, 3468, 3468, 3468, 3956, 3957, 3957,
1614      3957, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1615      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1616      3468, 3468, 3468, 3961, 3468, 3468, 3468, 3468, 3468, 3468,
1617      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1618      3468, 3963, 3468, 3468, 3468, 3965, 3468, 3468, 3468, 3968,
1619      3968, 3468, 3468, 3468, 3468, 3468, 3468, 3968, 3968, 3468,
1620      3468, 3468, 3468, 3969, 3972, 3468, 3468, 3468, 3972, 3468,
1621      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1622      3468, 3468, 3468, 3468, 3468, 3951, 3468, 3468, 3468, 3468,
1623
1624      3956, 3957, 3957, 3957, 3975, 3976, 3468, 3468, 3468, 3468,
1625      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1626      3468, 3468, 3468, 3468, 3468, 3468, 3961, 3468, 3468, 3468,
1627      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3965, 3968,
1628      3968, 3468, 3468, 3968, 3468, 3468, 3468, 3468, 3969, 3468,
1629      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1630      3468, 3468, 3468, 3468, 3468, 3951, 3468, 3468, 3468, 3468,
1631      3956, 3957, 3977, 3978, 3975, 3976, 3468, 3468, 3468, 3468,
1632      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1633      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3965, 3968,
1634
1635      3968, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3969, 3468,
1636      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1637      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1638      3468, 3468, 3468, 3956, 3977, 3957, 3979, 3978, 3980, 3957,
1639      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1640      3468, 3468, 3468, 3468, 3468, 3468, 3965, 3968, 3968, 3468,
1641      3468, 3468, 3468, 3468, 3468, 3468, 3969, 3468, 3468, 3468,
1642      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3956, 3979, 3468,
1643      3980, 3957, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1644      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1645
1646      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1647      3468, 3468, 3468, 3468, 3956, 3468, 3468, 3468, 3468, 3468,
1648      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1649      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1650      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1651      3956, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1652      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1653      3468, 3468, 3468, 3468, 3468, 3468, 3956, 3468, 3468, 3468,
1654      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1655      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3956,
1656
1657      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1658      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1659      3956, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1660      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1661      3468, 3956, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1662      3468, 3468, 3468, 3468, 3956, 3468, 3468, 3468, 3468, 3468,
1663      3468, 3468, 3468, 3956, 3468, 3468, 3468, 3468, 3468, 3468,
1664      3468, 3468, 3956, 3956, 3468, 3468, 3468, 3468, 3468, 3468,
1665      3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956,
1666      3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956,
1667
1668      3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956,
1669      3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956,
1670      3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956,
1671      3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956,
1672      3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956,
1673      3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956,
1674      3956, 3956, 3956, 3956, 3956, 3956, 3468,    0, 3468, 3468,
1675      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1676      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1677      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1678
1679      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1680      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1681      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1682      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1683      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1684      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1685      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1686      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1687      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1688      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1689
1690      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1691      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1692      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1693      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1694      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1695      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1696      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1697      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1698      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1699      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1700
1701      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1702      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1703      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1704      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1705      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1706      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1707      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1708      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1709      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1710      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1711
1712      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1713      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1714      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1715      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1716      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1717      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1718      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1719      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1720      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1721      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1722
1723      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1724      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1725      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1726      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1727      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1728      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1729      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1730      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468
1731     } ;
1732
1733 static yyconst flex_int16_t yy_nxt[12714] =
1734     {   0,
1735      3468,  266,  267,  266,  266,  267,  266,  266,  267,  266,
1736       266,  267,  266,  271,  267,  271,  277,  268,  274,  277,
1737       268,  274, 3468,  269, 3468,  275,  269, 3468,  275,  272,
1738       271,  267,  271,  677,  278,  280,  281,  278,  280,  281,
1739       282,  283,  722,  282,  283,  677,  272,  287,  288,  678,
1740       284,  280,  281,  284,  285,  680,  282,  280,  281,  711,
1741       285,  679,  282,  287,  288, 3468,  284,  267,  267,  267,
1742       871,  679,  284,  267,  267,  267,  299,  267,  299,  299,
1743       267,  299,  872,  290,  299,  267,  299,  698, 1758,  290,
1744       752,  289,  300, 1395,  714,  300,  676,  676,  676, 1396,
1745
1746       301,  676,  676,  676,  676,  676,  676,  289,  291,  292,
1747       267,  292,  291,  291,  291,  291,  291,  291,  291,  293,
1748       291,  291,  291,  709,  291,  295,  291,  296,  291,  299,
1749       267,  299,  267,  267,  267,  267,  267,  267,  710,  299,
1750       267,  299,  299,  267,  299,  301,  715,  826,  302,  680,
1751       827,  302,  950,  291,  291,  300,  680,  680,  300,  299,
1752       267,  299,  676,  676,  676,  679,  676,  676,  676,  676,
1753       676,  676,  679,  679, 3468,  303,  951,  297,  291,  292,
1754       267,  292,  291,  291,  291,  291,  291,  291,  291,  293,
1755       291,  291,  291, 1761,  291,  295,  291,  296,  291,  299,
1756
1757       267,  299,  267,  267,  267,  267,  267,  267,  685,  299,
1758       267,  299,  299,  267,  299,  303,  691,  752,  304,  840,
1759      1010,  304,  841,  291,  291,  301,  761,  753,  301,  267,
1760       267,  267,  267,  267,  267,  299,  267,  299,  299,  267,
1761       299,  299,  267,  299, 1011,  305,  877,  297,  305,  680,
1762       686,  303,  819,  878,  303,  765,  687,  306,  299,  267,
1763       299,  688,  676,  676,  676,  679,  689,  676,  676,  676,
1764       676,  676,  676,  820,  306,  307,  308,  267,  308,  307,
1765       307,  307,  307,  307,  307,  307,  309,  307,  307,  307,
1766       739,  307,  311,  307,  312,  307,  315,  267,  315,  315,
1767
1768       267,  315,  267,  267,  267,  740,  267,  267,  267,  315,
1769       267,  315,  316,  794,  879,  316, 1762,  795,  304,  735,
1770       307,  307,  304,  736,  777,  316,  695,  737,  313,  307,
1771       308,  267,  308,  307,  307,  307,  307,  307,  307,  307,
1772       309,  307,  307,  307,  680,  307,  311,  307,  312,  307,
1773       315,  267,  315,  315,  267,  315,  315,  267,  315, 1763,
1774       679,  887,  280,  281,  885,  716,  316,  282, 3468,  317,
1775       715,  886,  317,  778,  307,  307,  761,  327,  717,  777,
1776       710,  897,  313,  318,  319,  267,  319,  318,  318,  318,
1777       318,  318,  318,  318,  320,  318,  318,  318, 1765,  318,
1778
1779       322,  318,  323,  318, 1766,  680,  328,  709,  341,  267,
1780       341,  341,  267,  341,  353,  267,  353,  715,  280,  281,
1781       718,  679,  710,  282,  342,  728,  880,  342,  318,  318,
1782       354,  714,  729,  327,  715,  938,  324,  715,  939,  325,
1783       797,  679,  676,  676,  676, 1768,  326,  318,  319,  267,
1784       319,  318,  318,  318,  318,  318,  318,  318,  320,  318,
1785       318,  318,  328,  318,  322,  318,  323,  318,  353,  267,
1786       353,  364,  267,  364,  364,  267,  364,  828,  364,  267,
1787       364,  364,  267,  364,  354,  680,  766,  365,  680,  798,
1788       365,  829,  318,  318,  366,  741, 1769,  366, 1770,  903,
1789
1790       324,  679,  767,  325,  679,  676,  676,  676,  797, 1209,
1791       326,  329,  330,  267,  330,  329,  329,  329,  329,  329,
1792       329,  329,  331,  329,  329,  329, 1210,  329,  333,  329,
1793       334,  329,  267,  267,  267,  267,  267,  267,  364,  267,
1794       364,  805,  364,  267,  364,  364,  267,  364,  367, 1771,
1795       680,  367,  680,  680,  365,  715,  329,  329,  365,  747,
1796       714,  368,  676,  676,  676,  335,  679,  336,  679,  679,
1797      3468,  337,  676,  676,  676,  805,  338,  339,  329,  330,
1798       267,  330,  329,  329,  329,  329,  329,  329,  329,  331,
1799       329,  329,  329,  761,  329,  333,  329,  334,  329,  364,
1800
1801       267,  364,  267,  267,  267,  267,  267,  267,  912,  364,
1802       267,  364,  364,  267,  364,  368,  764, 1772,  369,  778,
1803       704,  369,  761,  329,  329,  370,  757,  714,  370,  676,
1804       676,  676,  335,  760,  336,  676,  676,  676,  337,  676,
1805       676,  676, 1773,  338,  339,  343,  344,  267,  344,  343,
1806       343,  343,  343,  343,  343,  343,  345,  343,  343,  343,
1807       711,  343,  347,  343,  348,  343,  364,  267,  364,  364,
1808       267,  364,  267,  267,  267,  932,  267,  267,  267,  364,
1809       267,  364,  371,  959, 1656,  371,  932,  960,  372,  768,
1810       343,  343,  372,  755,  756,  368, 1657,  349,  676,  676,
1811
1812       676,  933,  714,  350,  769,  676,  676,  676,  676,  676,
1813       676,  984,  351,  343,  344,  267,  344,  343,  343,  343,
1814       343,  343,  343,  343,  345,  343,  343,  343, 1774,  343,
1815       347,  343,  348,  343,  364,  267,  364,  267,  267,  267,
1816       267,  267,  267,  964,  364,  267,  364,  364,  267,  364,
1817       368,  680,  680,  373,  680,  950,  373,  965,  343,  343,
1818       371,  783,  680,  371, 1775,  349, 1776,  679,  679,  788,
1819       679,  350,  676,  676,  676,  676,  676,  676,  679, 1019,
1820       351,  355,  356,  267,  356,  355,  355,  355,  355,  355,
1821       355,  355,  357,  355,  355,  355, 1778,  355,  359,  355,
1822
1823       360,  355,  364,  267,  364,  364,  267,  364,  267,  267,
1824       267, 1779,  267,  267,  267,  364,  267,  364,  374,  680,
1825       680,  374, 1787, 1788,  375,  834,  355,  355,  375,  680,
1826      1790,  376,  676,  676,  676,  679,  679,  361,  676,  676,
1827       676,  676,  676,  676,  834,  679,  362,  355,  356,  267,
1828       356,  355,  355,  355,  355,  355,  355,  355,  357,  355,
1829       355,  355, 1010,  355,  359,  355,  360,  355,  364,  267,
1830       364,  267,  267,  267,  267,  267,  267,  761,  364,  267,
1831       364,  364,  267,  364,  376,  680,  951,  377, 1040, 1010,
1832       377, 1041,  355,  355,  374,  680,  714,  374,  364,  267,
1833
1834       364,  679,  809,  361,  364,  267,  364,  676,  676,  676,
1835       873,  679,  362, 1019,  378,  676,  676,  676,  752, 1297,
1836       378,  379,  380,  267,  380,  379,  379,  379,  379,  379,
1837       379,  379,  381,  379,  379,  379, 1210,  379,  383,  379,
1838       384,  379,  390,  267,  390,  390,  267,  390,  267,  267,
1839       267, 1030,  267,  267,  267,  960,  770,  680,  391, 1049,
1840       969,  391,  761, 1050,  392, 3468,  379,  379,  392,  680,
1841       680,  385,  759,  679,  965,  711,  815,  386,  676,  676,
1842       676,  387,  676,  676,  676,  679,  679,  388,  379,  380,
1843       267,  380,  379,  379,  379,  379,  379,  379,  379,  381,
1844
1845       379,  379,  379,  698,  379,  383,  379,  384,  379,  390,
1846       267,  390,  390,  267,  390,  390,  267,  390,  823,  390,
1847       267,  390,  676,  676,  676,  391,  824,  830,  391, 1794,
1848      1798,  393,  825,  379,  379,  393,  680,  680,  385,  831,
1849       832,  676,  676,  676,  386,  676,  676,  676,  387,  676,
1850       676,  676,  679,  679,  388,  394,  395,  267,  395,  394,
1851       394,  394,  394,  394,  394,  394,  396,  394,  394,  394,
1852       950,  394,  398,  394,  399,  394,  403,  267,  403,  403,
1853       267,  403,  414,  267,  414,  873,  414,  267,  414,  428,
1854       267,  428,  404, 1800, 1020,  404,  680,  680,  415,  680,
1855
1856       394,  394,  415,  844,  854,  429,  676,  676,  676,  676,
1857       676,  676,  679,  679,  911,  679,  400,  676,  676,  676,
1858      1807,  401,  394,  395,  267,  395,  394,  394,  394,  394,
1859       394,  394,  394,  396,  394,  394,  394,  714,  394,  398,
1860       394,  399,  394,  428,  267,  428,  267,  267,  267,  267,
1861       267,  267,  920,  428,  267,  428,  428,  267,  428,  429,
1862      1180, 1808,  430,  680, 1522,  430,  714,  394,  394,  429,
1863       859,  680,  429,  676,  676,  676,  676,  676,  676,  679,
1864       676,  676,  676,  400,  676,  676,  676,  679,  401,  405,
1865       406,  267,  406,  405,  405,  405,  405,  405,  405,  405,
1866
1867       407,  405,  405,  405,  761,  405,  409,  405,  410,  405,
1868       428,  267,  428,  428,  267,  428,  443,  267,  443,  969,
1869       443,  267,  443,  267,  267,  267,  431, 1010, 1809,  431,
1870       680, 1810,  444, 1016,  405,  405,  444,  865,  680,  367,
1871       676,  676,  676,  676,  676,  676,  679,  676,  676,  676,
1872       411, 1020, 1815,  879,  679, 1209,  412,  405,  406,  267,
1873       406,  405,  405,  405,  405,  405,  405,  405,  407,  405,
1874       405,  405, 1323,  405,  409,  405,  410,  405,  267,  267,
1875       267,  443,  267,  443,  443,  267,  443, 1816,  443,  267,
1876       443,  443,  267,  443,  367, 1817, 1818,  444, 1819, 1180,
1877
1878       444,  880,  405,  405,  445,  714,  680,  445,  676,  676,
1879       676,  676,  676,  676,  676,  676,  676, 1820,  411, 1739,
1880      1821,  887,  679, 1828,  412,  416,  417,  267,  417,  416,
1881       416,  416,  416,  416,  416,  416,  418,  416,  416,  416,
1882      1832,  416,  420,  416,  421,  416,  454,  267,  454,  454,
1883       267,  454,  466,  267,  466,  920,  466,  267,  466,  676,
1884       676,  676,  455, 1837, 1839,  455,  680,  680,  467,  880,
1885       416,  416,  467,  422,  892,  423,  952,  715,  676,  676,
1886       676,  424,  679,  679,  676,  676,  676,  953,  425, 1840,
1887       954,  426,  416,  417,  267,  417,  416,  416,  416,  416,
1888
1889       416,  416,  416,  418,  416,  416,  416,  714,  416,  420,
1890       416,  421,  416,  484,  267,  484,  484,  267,  484,  267,
1891       267,  267, 1846,  267,  267,  267,  676,  676,  676,  485,
1892       680, 1851,  485, 1852, 1853,  367,  680,  416,  416,  367,
1893       422,  897,  423,  676,  676,  676,  679,  903,  424,  676,
1894       676,  676,  679, 1854, 1855,  425,  911, 1866,  426,  432,
1895       433,  267,  433,  432,  432,  432,  432,  432,  432,  432,
1896       434,  432,  432,  432, 1869,  432,  436,  432,  437,  432,
1897       484,  267,  484,  484,  267,  484,  484,  267,  484,  880,
1898       484,  267,  484,  912, 1870,  880,  485,  715,  680,  485,
1899
1900      1547, 1874,  486,  715,  432,  432,  486,  438,  761,  439,
1901       676,  676,  676, 1548,  679,  440,  676,  676,  676,  676,
1902       676,  676,  676,  676,  676, 1875,  441,  432,  433,  267,
1903       433,  432,  432,  432,  432,  432,  432,  432,  434,  432,
1904       432,  432, 1878,  432,  436,  432,  437,  432,  500,  267,
1905       500,  500,  267,  500,  516,  267,  516, 1879,  516,  267,
1906       516, 1880,  680,  680,  501, 1881, 1882,  501, 1883,  916,
1907       517,  680,  432,  432,  517,  438, 1884,  439,  679,  679,
1908       676,  676,  676,  440,  676,  676,  676,  679,  676,  676,
1909       676,  676,  676,  676,  441,  446,  447,  267,  447,  446,
1910
1911       446,  446,  446,  446,  446,  446,  448,  446,  446,  446,
1912      1885,  446,  450,  446,  451,  446,  527,  267,  527,  527,
1913       267,  527,  539,  267,  539,  969,  539,  267,  539,  552,
1914       267,  552,  528,  680, 1180,  528,  680,  680,  540, 1021,
1915       446,  446,  540,  925,  930,  553,  676,  676,  676,  679,
1916      1182, 1893,  679,  679, 1896, 1897,  452,  446,  447,  267,
1917       447,  446,  446,  446,  446,  446,  446,  446,  448,  446,
1918       446,  446, 1900,  446,  450,  446,  451,  446,  552,  267,
1919       552,  267,  267,  267,  267,  267,  267,  969,  552,  267,
1920       552,  552,  267,  552,  553, 1902, 1904,  367,  961, 1905,
1921
1922       367, 1022,  446,  446,  553,  962, 1907,  553,  676,  676,
1923       676,  963,  936,  936,  936, 1197, 1197, 1197,  452,  456,
1924       457,  267,  457,  456,  456,  456,  456,  456,  456,  456,
1925       458,  456,  456,  456, 1908,  456,  460,  456,  461,  456,
1926       552,  267,  552,  552,  267,  552,  564,  267,  564,  952,
1927       564,  267,  564,  267,  267,  267,  554, 1909, 1914,  554,
1928       953,  974,  565,  968,  456,  456,  565,  971,  962,  566,
1929       462,  937,  971, 1917,  975,  463, 1918, 1919,  972, 1198,
1930      1921,  954, 1924,  972, 1925, 1927,  968,  464,  456,  457,
1931       267,  457,  456,  456,  456,  456,  456,  456,  456,  458,
1932
1933       456,  456,  456, 1931,  456,  460,  456,  461,  456,  267,
1934       267,  267,  564,  267,  564,  564,  267,  564, 1932,  564,
1935       267,  564,  564,  267,  564,  566, 1933, 1935,  565,  974,
1936       961,  565, 1559,  456,  456,  567,  962,  962,  567,  462,
1937       961,  974,  963,  975,  463, 1548, 1742,  962,  962, 1197,
1938      1197, 1197, 1949, 1015, 1015, 1950,  464,  468,  469,  267,
1939       469,  468,  468,  468,  468,  468,  468,  468,  470,  468,
1940       468,  468,  471,  468,  472,  468,  473,  468,  471,  471,
1941       471,  471,  471,  471,  471,  471,  471,  471,  471,  471,
1942       471,  471,  471,  471,  471,  471,  471,  471,  471,  471,
1943
1944       471,  471,  468,  468,  471,  474,  475,  476,  471,  471,
1945       471,  471,  471,  477,  471,  471,  478,  471,  471,  471,
1946       479,  471,  480,  481,  482,  471,  471,  471,  471,  471,
1947       471,  487,  488,  267,  488,  487,  487,  487,  487,  487,
1948       487,  487,  489,  487,  487,  487, 1951,  487,  491,  487,
1949       492,  487,  578,  267,  578,  578,  267,  578,  267,  267,
1950       267,  952,  267,  267,  267,  578,  267,  578,  579, 1953,
1951      1180,  579,  972, 1954,  566,  968,  487,  487,  566, 1955,
1952       493,  579,  936,  936,  936, 1956, 1184,  494, 1957, 1958,
1953       495, 1221, 1221, 1221,  496, 1946,  497,  498,  487,  488,
1954
1955       267,  488,  487,  487,  487,  487,  487,  487,  487,  489,
1956       487,  487,  487, 1959,  487,  491,  487,  492,  487,  578,
1957       267,  578,  578,  267,  578,  578,  267,  578, 1960,  590,
1958       267,  590,  590,  267,  590,  579, 1961, 1962,  580, 1963,
1959      1965,  580, 1352,  487,  487,  591, 1966,  493,  591, 1234,
1960      1234, 1234, 1353, 1235,  494, 1198, 1236,  495, 1967, 1354,
1961      1968,  496, 1971,  497,  498,  502,  503,  267,  503,  502,
1962       502,  502,  502,  502,  502,  502,  504,  502,  502,  502,
1963      1974,  502,  506,  502,  507,  502,  601,  267,  601,  601,
1964       267,  601,  267,  267,  267, 1975,  267,  267,  267,  981,
1965
1966       981,  981,  602, 1976, 1559,  602, 1977, 1978,  566, 1979,
1967       502,  502,  566,  508,  509,  510,  982, 1597, 1244, 1244,
1968      1244,  511, 1245, 1983,  512, 1246, 1984, 1986,  513, 1987,
1969      1988,  514,  502,  503,  267,  503,  502,  502,  502,  502,
1970       502,  502,  502,  504,  502,  502,  502, 1990,  502,  506,
1971       502,  507,  502,  601,  267,  601,  601,  267,  601,  601,
1972       267,  601, 2003,  601,  267,  601,  989,  989,  989,  602,
1973      2004, 2005,  602, 2006, 2007,  603, 2010,  502,  502,  603,
1974       508,  509,  510,  990, 2011, 1266, 1266, 1266,  511, 1267,
1975      2012,  512, 1268, 2013, 2018,  513, 2019, 2024,  514,  518,
1976
1977       519,  267,  519,  518,  518,  518,  518,  518,  518,  518,
1978       520,  518,  518,  518, 2025,  518,  522,  518,  523,  518,
1979       614,  267,  614,  614,  267,  614,  267,  267,  267, 2034,
1980       267,  267,  267, 1004, 1004, 1004,  615, 2038, 2046,  615,
1981      2052, 2053,  566, 2054,  518,  518,  566, 2060, 2061,  524,
1982      1005, 1538, 1538, 1538, 2062,  525,  518,  519,  267,  519,
1983       518,  518,  518,  518,  518,  518,  518,  520,  518,  518,
1984       518, 2063,  518,  522,  518,  523,  518,  614,  267,  614,
1985       614,  267,  614,  614,  267,  614, 2066,  614,  267,  614,
1986      1024, 1024, 1024,  615, 2067, 2078,  615, 2084, 2088,  616,
1987
1988      2091,  518,  518,  616, 2093, 2094,  524, 1025, 1221, 1221,
1989      1221, 2096,  525,  529,  530,  267,  530,  529,  529,  529,
1990       529,  529,  529,  529,  531,  529,  529,  529, 2097,  529,
1991       533,  529,  534,  529,  629,  267,  629,  629,  267,  629,
1992       267,  267,  267, 2098,  267,  267,  267,  629,  267,  629,
1993       630, 2102, 2105,  630, 2107, 2114,  631, 2122,  529,  529,
1994       631, 2123,  535,  630, 1197, 1197, 1197, 2124, 2125,  536,
1995      2127, 1180,  537,  529,  530,  267,  530,  529,  529,  529,
1996       529,  529,  529,  529,  531,  529,  529,  529, 2142,  529,
1997       533,  529,  534,  529,  629,  267,  629,  629,  267,  629,
1998
1999       629,  267,  629, 2145,  641,  267,  641,  641,  267,  641,
2000       630, 2149, 2150,  632, 2151, 1742,  632, 2154,  529,  529,
2001       642, 1742,  535,  642, 1221, 1221, 1221, 2155, 1274,  536,
2002      2157, 2158,  537,  541,  542,  267,  542,  541,  541,  541,
2003       541,  541,  541,  541,  543,  541,  541,  541, 2144,  541,
2004       545,  541,  546,  541,  651,  267,  651,  651,  267,  651,
2005       267,  267,  267, 2143,  267,  267,  267,  651,  267,  651,
2006       652, 2152, 2159,  652, 2160, 2161,  367, 2162,  541,  541,
2007       367, 2163,  547,  652, 1594, 1594, 1594, 2153, 1274,  548,
2008      2166, 2167,  549, 1538, 1538, 1538, 1756, 1756, 1756,  550,
2009
2010       541,  542,  267,  542,  541,  541,  541,  541,  541,  541,
2011       541,  543,  541,  541,  541, 2170,  541,  545,  541,  546,
2012       541,  651,  267,  651,  651,  267,  651,  651,  267,  651,
2013      2171,  663,  267,  663,  663,  267,  663,  652, 2172, 2173,
2014       653, 2174, 1757,  653,  752,  541,  541,  664, 2176,  547,
2015       664, 1288, 1288, 1288,  762, 1289,  548, 2177, 1290,  549,
2016      1759, 1759, 1759, 1764, 1764, 1764,  550,  555,  556,  267,
2017       556,  555,  555,  555,  555,  555,  555,  555,  557,  555,
2018       555,  555,  763,  555,  559,  555,  560,  555,  674,  267,
2019       674,  674,  267,  674, 2180, 2183,  714, 1042, 1042, 1042,
2020
2021       708, 1193, 1193, 1193,  675, 2187, 1760,  675, 2188, 2191,
2022      3468, 2192,  555,  555, 1043, 1053, 1053, 1053,  561, 1195,
2023       711, 2193, 1313, 1313, 1313, 2196, 1314, 2200,  711, 1315,
2024      2201, 2204, 1054,  562,  555,  556,  267,  556,  555,  555,
2025       555,  555,  555,  555,  555,  557,  555,  555,  555,  712,
2026       555,  559,  555,  560,  555,  713,  766, 1062, 1062, 1062,
2027      2206, 2211,  714, 1767, 1767, 1767,  715, 1064, 1064, 1064,
2028      2189, 2212,  767, 2219, 1063, 1070, 1070, 1070, 2190,  555,
2029       555, 1073, 1073, 1073, 1065,  561, 1327, 1327, 1327, 2194,
2030      1328, 2220, 1071, 1329, 1777, 1777, 1777, 2195, 1074, 2224,
2031
2032       562,  568,  569,  267,  569,  568,  568,  568,  568,  568,
2033       568,  568,  570,  568,  568,  568, 2225,  568,  572,  568,
2034       573,  568, 1088, 1088, 1088, 1090, 1090, 1090, 1102, 1102,
2035      1102, 1110, 1110, 1110, 1115, 1115, 1115, 2202, 2202, 1089,
2036      2226, 2227, 1091, 2152, 2239, 1103,  568,  568, 1111, 2243,
2037      2244, 1116,  574, 2203, 2153,  575, 1341, 1341, 1341, 2203,
2038      1342, 2245, 2251, 1343, 1594, 1594, 1594,  576,  568,  569,
2039       267,  569,  568,  568,  568,  568,  568,  568,  568,  570,
2040       568,  568,  568, 2252,  568,  572,  568,  573,  568, 1121,
2041      1121, 1121, 1141, 1141, 1141, 1165, 1165, 1165, 1169, 1169,
2042
2043      1169, 1174, 1174, 1174, 2253, 2257, 1122, 2258, 2269, 1142,
2044      2273, 2274, 1166,  568,  568, 1170, 2275, 2277, 1175,  574,
2045      2281, 2285,  575, 1344, 1344, 1344, 2286, 1345, 2287, 2288,
2046      1346, 1814, 1814, 1814,  576,  581,  582,  267,  582,  581,
2047       581,  581,  581,  581,  581,  581,  583,  581,  581,  581,
2048      2289,  581,  585,  581,  586,  581, 1193, 1193, 1193, 1229,
2049      1229, 1229, 2292, 2299, 1229, 1229, 1229,  981,  981,  981,
2050      1239, 1239, 1239, 1991, 1195, 2301, 2311, 1231, 2312, 1992,
2051       581,  581, 1231, 1993,  982, 2313,  587, 1994, 1241, 2314,
2052      2316,  588,  581,  582,  267,  582,  581,  581,  581,  581,
2053
2054       581,  581,  581,  583,  581,  581,  581, 1180,  581,  585,
2055       581,  586,  581, 2320, 1196, 1239, 1239, 1239,  989,  989,
2056       989, 1255, 1255, 1255, 1232, 1247, 1247, 1247, 1250, 1250,
2057      1250, 2323, 2329, 1241, 2330,  990, 2331,  581,  581, 1257,
2058      2332, 1742, 1248,  587, 2335, 1251, 2337, 2338,  588,  592,
2059       593,  267,  593,  592,  592,  592,  592,  592,  592,  592,
2060       594,  592,  592,  592, 2339,  592,  596,  592,  597,  592,
2061      1262, 1262, 1262, 1262, 1262, 1262, 1004, 1004, 1004, 1242,
2062      1270, 1270, 1270, 1742, 1255, 1255, 1255, 2322, 1264, 2340,
2063      2344, 1264, 2349, 1005,  592,  592, 2351, 2352, 1272, 2353,
2064
2065       598, 2357, 1257, 1355, 1355, 1355, 2363, 1356, 2364, 2365,
2066      1357, 1811, 1811, 1811, 2321,  599,  592,  593,  267,  593,
2067       592,  592,  592,  592,  592,  592,  592,  594,  592,  592,
2068       592, 1258,  592,  596,  592,  597,  592, 1265, 1270, 1270,
2069      1270, 1024, 1024, 1024, 2366, 1293, 1293, 1293, 1293, 1293,
2070      1293, 1300, 1300, 1300, 1995, 2367, 1272, 1812, 1025, 2368,
2071      1996,  592,  592, 1295, 1997, 2369, 1295,  598, 1998, 1302,
2072      1359, 1359, 1359, 2370, 1360, 1273, 2371, 1361, 1813, 1813,
2073      1813, 2372,  599,  604,  605,  267,  605,  604,  604,  604,
2074       604,  604,  604,  604,  606,  604,  604,  604, 2378,  604,
2075
2076       608,  604,  609,  604, 1300, 1300, 1300, 1306, 1306, 1306,
2077      1042, 1042, 1042, 2379, 1296, 1306, 1306, 1306, 1319, 1319,
2078      1319, 2380, 1302, 2381, 1760, 1308, 2387, 1043,  604,  604,
2079      1319, 1319, 1319, 1308,  610, 2389, 1321,  611, 1378, 1378,
2080      1378, 2390, 1379, 2392, 2393, 1380, 2398, 2399, 1321,  612,
2081       604,  605,  267,  605,  604,  604,  604,  604,  604,  604,
2082       604,  606,  604,  604,  604, 1303,  604,  608,  604,  609,
2083       604, 1053, 1053, 1053, 1331, 1331, 1331, 1062, 1062, 1062,
2084      1309, 1331, 1331, 1331, 1336, 1336, 1336, 2403, 1054, 2394,
2085      2396, 1322, 1333, 2406, 1063,  604,  604, 2395, 2397, 1333,
2086
2087      2407,  610, 1338, 2408,  611, 1381, 1381, 1381, 2409, 1382,
2088      2413, 2414, 1383, 1759, 1759, 1759,  612,  617,  618,  267,
2089       618,  617,  617,  617,  617,  617,  617,  617,  619,  617,
2090       617,  617, 2415,  617,  621,  617,  622,  617, 1064, 1064,
2091      1064, 2416, 2424, 1336, 1336, 1336, 2425, 1334, 1347, 1347,
2092      1347, 1347, 1347, 1347, 2426, 1065, 1070, 1070, 1070, 1916,
2093      2427, 1338,  617,  617, 2430, 2435, 1349, 2439, 2440, 1349,
2094       623, 2445,  624, 1071, 2446,  625, 1756, 1756, 1756,  626,
2095      1759, 1759, 1759,  627,  617,  618,  267,  618,  617,  617,
2096       617,  617,  617,  617,  617,  619,  617,  617,  617, 2447,
2097
2098       617,  621,  617,  622,  617, 1339, 1073, 1073, 1073, 1362,
2099      1362, 1362, 1350, 1374, 1374, 1374, 1374, 1374, 1374, 1088,
2100      1088, 1088, 2448, 1074, 2441, 2443, 1363, 2450, 2460,  617,
2101       617, 1376, 2442, 2444, 1376, 2472, 1089,  623, 2473,  624,
2102      2474, 1742,  625, 1964, 1964, 1964,  626, 1764, 1764, 1764,
2103       627,  633,  634,  267,  634,  633,  633,  633,  633,  633,
2104       633,  633,  635,  633,  633,  633, 2476,  633,  637,  633,
2105       638,  633, 1742, 2479, 1377, 1090, 1090, 1090, 1384, 1384,
2106      1384, 1767, 1767, 1767, 2466, 3468, 3468, 3468, 3468, 3468,
2107      3468, 2480, 1091, 2481, 2484, 1385,  633,  633, 3468, 3468,
2108
2109      3468, 2488, 3468, 2489, 2490, 3468, 1398, 1398, 1398, 2491,
2110      1399, 2492, 2493, 1400, 2494, 3468, 1969, 1969, 1969, 2467,
2111       639,  633,  634,  267,  634,  633,  633,  633,  633,  633,
2112       633,  633,  635,  633,  633,  633, 1386,  633,  637,  633,
2113       638,  633, 2495, 1388, 1390, 1390, 1390, 1102, 1102, 1102,
2114      1387, 1777, 1777, 1777, 3468, 3468, 3468, 1401, 1401, 1401,
2115      2496, 2497, 1392, 2510, 1103, 2511,  633,  633, 1390, 1390,
2116      1390, 3468, 2512, 2513, 1402, 1410, 1410, 1410, 2514, 1411,
2117      1970, 2516, 1412, 1972, 1972, 1972, 1392, 1811, 1811, 1811,
2118       639,  643,  644,  267,  644,  643,  643,  643,  643,  643,
2119
2120       643,  643,  645,  643,  643,  643, 1389,  643,  647,  643,
2121       648,  643, 1405, 1405, 1405, 1393, 1110, 1110, 1110, 2520,
2122      1405, 1405, 1405, 1413, 1413, 1413, 1413, 1413, 1413, 1973,
2123      1407, 2521, 2522, 1111, 2523, 2524,  643,  643, 1407, 2525,
2124      2526, 1415, 2528, 2532, 1415, 2533, 2534,  649,  643,  644,
2125       267,  644,  643,  643,  643,  643,  643,  643,  643,  645,
2126       643,  643,  643, 2539,  643,  647,  643,  648,  643, 2540,
2127      2535, 1408, 1115, 1115, 1115, 1418, 1418, 1418, 2541, 1419,
2128      2536, 2549, 1420, 1422, 1422, 1422, 2550, 1416, 2551, 1116,
2129      1813, 1813, 1813,  643,  643, 1427, 1427, 1427, 2552, 1428,
2130
2131      2561, 1424, 1429, 2562,  649,  654,  655,  267,  655,  654,
2132       654,  654,  654,  654,  654,  654,  656,  654,  654,  654,
2133      2563,  654,  658,  654,  659,  654, 1422, 1422, 1422, 1121,
2134      1121, 1121, 2564, 2566, 1433, 1433, 1433, 1437, 1437, 1437,
2135      2568, 1433, 1433, 1433, 1424, 2593, 1122, 1439, 1439, 1439,
2136       654,  654, 1435, 2594, 1438, 3468, 3468, 3468, 1742, 1435,
2137      2596,  660, 2597, 2598, 1440, 2599, 1742, 1980, 1980, 1980,
2138      2600, 2604, 3468, 1425,  661,  654,  655,  267,  655,  654,
2139       654,  654,  654,  654,  654,  654,  656,  654,  654,  654,
2140      2589,  654,  658,  654,  659,  654, 1436, 1442, 1442, 1442,
2141
2142      1447, 1447, 1447, 2590, 2605, 1442, 1442, 1442, 2606, 2607,
2143      3468, 3468, 3468, 1981, 1441, 1444, 2608, 1448, 2609, 2610,
2144       654,  654, 2611, 1444, 1451, 1451, 1451, 3468, 1459, 1459,
2145      1459,  660, 1460, 2612, 2613, 1461, 1499, 1499, 1499, 2614,
2146      1500, 1452, 2616, 1501,  661,  665,  666,  267,  666,  665,
2147       665,  665,  665,  665,  665,  665,  667,  665,  665,  665,
2148      1449,  665,  669,  665,  670,  665, 1445, 1454, 1454, 1454,
2149      2617, 3468, 3468, 3468, 2620, 1450, 1454, 1454, 1454, 1141,
2150      1141, 1141, 1462, 1462, 1462, 1456, 2618, 2621, 3468, 2622,
2151       665,  665, 2623, 2626, 1456, 2619, 1142, 1814, 1814, 1814,
2152
2153      1464,  671, 1506, 1506, 1506, 2627, 1507, 2628, 2629, 1508,
2154      2037, 2037, 2037, 1457,  672,  665,  666,  267,  666,  665,
2155       665,  665,  665,  665,  665,  665,  667,  665,  665,  665,
2156      1453,  665,  669,  665,  670,  665, 1462, 1462, 1462, 1466,
2157      1466, 1466, 1468, 1468, 1468, 1470, 1470, 1470, 1470, 1470,
2158      1470, 1474, 1474, 1474, 1464, 2624, 1467, 2631, 2632, 1469,
2159       665,  665, 2634, 1472, 2625, 2640, 1472, 2641, 1475, 2642,
2160      2643,  671, 2646, 3468, 3468, 3468, 1478, 1478, 1478, 1480,
2161      1480, 1480, 2648, 2649,  672,  680, 1480, 1480, 1480, 2650,
2162      3468, 1465,  695, 1479, 1489, 1489, 1489, 1482, 1489, 1489,
2163
2164      1489,  679,  696, 2651, 1482, 2652, 1495, 1495, 1495, 1495,
2165      1495, 1495, 1491, 1514, 1514, 1514, 1491, 1515, 2656, 1473,
2166      1516, 2659, 2664, 1476, 1497, 2665, 2660, 1497, 2668,  697,
2167       698,  699, 2156, 2156, 2156,  700,  701,  702, 1477, 2661,
2168       703,  704, 2677, 2678,  705, 2679,  706,  707,  708,  680,
2169      1165, 1165, 1165, 1502, 1502, 1502,  752, 1483, 1502, 1502,
2170      1502, 2662, 1492, 2680, 2681,  679,  753, 1166, 1169, 1169,
2171      1169, 1504, 2684, 1498, 2663, 2685, 1504, 2706, 1510, 1510,
2172      1510, 1174, 1174, 1174, 2707, 1170, 1742, 2709, 1510, 1510,
2173      1510, 2710, 1180,  697,  754,  709, 1512, 2711, 1175,  755,
2174
2175       756,  702, 1742, 2720,  757,  704, 1512, 2721,  758, 2722,
2176       759,  760,  708, 1518, 1518, 1518, 1518, 1518, 1518, 1505,
2177      1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 2705,
2178      2714, 1520, 2703, 2723, 1520, 1229, 1229, 1229, 1195, 2704,
2179      2715, 1195, 2724, 2716, 1195, 1561, 1561, 1561, 1229, 1229,
2180      1229, 2725, 1513, 1231, 1229, 1229, 1229, 1564, 1564, 1564,
2181      2726, 2727, 1562, 1234, 1234, 1234, 1231, 1235, 2728, 2729,
2182      1236, 2730, 1231, 1530, 1565, 2732, 2733, 1521, 3468, 3468,
2183      3468, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239,
2184      1244, 1244, 1244, 2734, 1245, 3468, 2735, 1246, 2736, 1241,
2185
2186      2737, 2738, 1241, 1563, 2717, 1241, 1247, 1247, 1247, 1570,
2187      1570, 1570, 2739, 1571, 2718, 2740, 1572, 2719, 1573, 1573,
2188      1573, 2741, 2742, 1248, 1250, 1250, 1250, 2743, 2744, 1575,
2189      1575, 1575, 2745, 1576, 1568, 1574, 1577, 2746, 2747, 1566,
2190      2750, 1251, 1579, 1579, 1579, 1255, 1255, 1255, 1255, 1255,
2191      1255, 1255, 1255, 1255, 1584, 1584, 1584, 2756, 2759, 1580,
2192      1262, 1262, 1262, 1257, 2760, 2761, 1257, 2764, 2765, 1257,
2193      2769, 1585, 1262, 1262, 1262, 1262, 1262, 1262, 1264, 1266,
2194      1266, 1266, 2770, 1267, 2771, 2772, 1268, 1270, 1270, 1270,
2195      1264, 2773, 2774, 1264, 1270, 1270, 1270, 1589, 1589, 1589,
2196
2197      1288, 1288, 1288, 2782, 1289, 1272, 2783, 1290, 1606, 1606,
2198      1606, 1582, 1272, 2784, 2810, 1590, 1293, 1293, 1293, 1293,
2199      1293, 1293, 1587, 2812, 1180, 1607, 1293, 1293, 1293, 1610,
2200      1610, 1610, 2813, 2814, 1295, 2818, 2819, 1295, 3468, 3468,
2201      3468, 1300, 1300, 1300, 1295, 2822, 1611, 1300, 1300, 1300,
2202      1300, 1300, 1300, 2807, 2820, 3468, 1614, 1614, 1614, 1302,
2203      3468, 3468, 3468, 2823, 2826, 1302, 2827, 2821, 1302, 1620,
2204      1620, 1620, 1742, 1615, 1306, 1306, 1306, 3468, 1306, 1306,
2205      1306, 1306, 1306, 1306, 2828, 1612, 1621, 1608, 1616, 1319,
2206      1319, 1319, 1308, 1313, 1313, 1313, 1308, 1314, 1742, 1308,
2207
2208      1315, 1319, 1319, 1319, 1319, 1319, 1319, 1321, 1327, 1327,
2209      1327, 2829, 1328, 2830, 2808, 1329, 2831, 1613, 2832, 1321,
2210      2833, 2834, 1321, 1331, 1331, 1331, 1331, 1331, 1331, 2792,
2211      1331, 1331, 1331, 1632, 1632, 1632, 1336, 1336, 1336, 2793,
2212      2809, 1333, 2836, 2837, 1333, 2794, 2838, 1617, 1333, 2824,
2213      1633, 1635, 1635, 1635, 1338, 1336, 1336, 1336, 1336, 1336,
2214      1336, 2839, 2825, 1341, 1341, 1341, 2840, 1342, 1636, 1625,
2215      1343, 2841, 2842, 1338, 2843, 2844, 1338, 1344, 1344, 1344,
2216      2845, 1345, 2846, 2847, 1346, 1347, 1347, 1347, 1347, 1347,
2217      1347, 1631, 1347, 1347, 1347, 1355, 1355, 1355, 2848, 1356,
2218
2219      2850, 2862, 1357, 1349, 2863, 2871, 1349, 1642, 1642, 1642,
2220      1349, 1359, 1359, 1359, 2872, 1360, 2873, 2874, 1361, 1362,
2221      1362, 1362, 2875, 2876, 1643, 1634, 1644, 1644, 1644, 2877,
2222      1645, 2884, 2887, 1646, 2894, 2895, 1363, 1374, 1374, 1374,
2223      1374, 1374, 1374, 1374, 1374, 1374, 1378, 1378, 1378, 2795,
2224      1379, 2896, 2897, 1380, 2898, 1376, 2899, 1637, 1376, 2796,
2225      2912, 1376, 1381, 1381, 1381, 2797, 1382, 2914, 2915, 1383,
2226      1384, 1384, 1384, 1659, 1659, 1659, 2916, 1660, 2917, 2918,
2227      1661, 1390, 1390, 1390, 1390, 1390, 1390, 1385, 1390, 1390,
2228      1390, 1398, 1398, 1398, 2919, 1399, 2920, 2921, 1400, 1392,
2229
2230      2902, 2922, 1392, 1401, 1401, 1401, 1392, 1671, 1671, 1671,
2231      1658, 1672, 1180, 2903, 1673, 1405, 1405, 1405, 2923, 2904,
2232      1402, 1405, 1405, 1405, 1405, 1405, 1405, 1410, 1410, 1410,
2233      1742, 1411, 2905, 1407, 1412, 2926, 1666, 2927, 2928, 1407,
2234      2929, 2930, 1407, 1413, 1413, 1413, 1413, 1413, 1413, 1413,
2235      1413, 1413, 1418, 1418, 1418, 2931, 1419, 2932, 2933, 1420,
2236      2908, 1415, 2935, 2936, 1415, 2909, 2937, 1415, 1422, 1422,
2237      1422, 1422, 1422, 1422, 2938, 1676, 1422, 1422, 1422, 2939,
2238      1427, 1427, 1427, 2940, 1428, 2941, 1424, 1429, 2942, 1424,
2239      1433, 1433, 1433, 2943, 1424, 1433, 1433, 1433, 2944, 1433,
2240
2241      1433, 1433, 1437, 1437, 1437, 1687, 1687, 1687, 1435, 1688,
2242      2945, 2946, 1689, 1435, 2947, 2956, 1678, 1435, 2960, 1438,
2243      1439, 1439, 1439, 2961, 2968, 1681, 1690, 1690, 1690, 2969,
2244      1691, 2970, 2971, 1692, 1442, 1442, 1442, 1440, 1442, 1442,
2245      1442, 2972, 1442, 1442, 1442, 1447, 1447, 1447, 2973, 1451,
2246      1451, 1451, 1444, 1964, 1964, 1964, 1444, 2974, 2975, 1686,
2247      1444, 2979, 1448, 1696, 1696, 1696, 1452, 1697, 2988, 2989,
2248      1698, 1701, 1701, 1701, 2990, 1702, 2991, 2992, 1703, 1454,
2249      1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1459, 1459,
2250      1459, 2980, 1460, 2993, 2997, 1461, 2998, 1456, 2982, 2999,
2251
2252      1456, 2981, 3000, 1456, 1462, 1462, 1462, 3010, 2983, 1694,
2253      1462, 1462, 1462, 1462, 1462, 1462, 1466, 1466, 1466, 1708,
2254      1708, 1708, 1464, 1709, 3011, 3012, 1710, 3013, 1464, 3014,
2255      2984, 1464, 2986, 1467, 1468, 1468, 1468, 1711, 1711, 1711,
2256      2985, 1712, 2987, 3015, 1713, 1470, 1470, 1470, 3016, 1705,
2257      3017, 1469, 1470, 1470, 1470, 3021, 1470, 1470, 1470, 1474,
2258      1474, 1474, 3022, 1472, 1715, 1715, 1715, 3023, 1716, 3024,
2259      1472, 1717, 3025, 1707, 1472, 3026, 1475, 1478, 1478, 1478,
2260      1720, 1720, 1720, 1180, 1721, 3028, 3029, 1722, 1480, 1480,
2261      1480, 1480, 1480, 1480, 1479, 1480, 1480, 1480, 1725, 1725,
2262
2263      1725, 1489, 1489, 1489, 3030, 3031, 1482, 3032, 3033, 1482,
2264      1489, 1489, 1489, 1482, 3034, 1726, 3035, 3001, 1714, 1491,
2265      1489, 1489, 1489, 1495, 1495, 1495, 3039, 3040, 1491, 1495,
2266      1495, 1495, 1495, 1495, 1495, 1499, 1499, 1499, 1491, 1500,
2267      3041, 1497, 1501, 1502, 1502, 1502, 3044, 1497, 3045, 3046,
2268      1497, 1502, 1502, 1502, 1502, 1502, 1502, 1723, 1506, 1506,
2269      1506, 1504, 1507, 3047, 3048, 1508, 1510, 1510, 1510, 1504,
2270      3049, 3054, 1504, 1510, 1510, 1510, 1510, 1510, 1510, 3055,
2271      3056, 1730, 3057, 3058, 1512, 1733, 1514, 1514, 1514, 3059,
2272      1515, 1512, 3060, 1516, 1512, 1518, 1518, 1518, 1518, 1518,
2273
2274      1518, 1518, 1518, 1518, 1741, 1741, 1741, 1193, 1193, 1193,
2275      1561, 1561, 1561, 1520, 1734, 3061, 1520, 3062, 3063, 1520,
2276      3064, 3065, 1742, 1743, 3067, 1195, 3068, 1562, 1780, 1780,
2277      1780, 3069, 1781, 3070, 1180, 1782, 3077, 1736, 1229, 1229,
2278      1229, 1564, 1564, 1564, 3078, 1784, 1784, 1784, 3079, 1785,
2279      3080, 1738, 1786, 1239, 1239, 1239, 1231, 3081, 1565, 1570,
2280      1570, 1570, 3082, 1571, 3083, 3084, 1572, 1573, 1573, 1573,
2281      3085, 1241, 3086, 1748, 1791, 1791, 1791, 3071, 1792, 3087,
2282      3088, 1793, 3089, 3090, 1574, 1575, 1575, 1575, 3093, 1576,
2283      3094, 3095, 1577, 1579, 1579, 1579, 1783, 1795, 1795, 1795,
2284
2285      3096, 1796, 1789, 3097, 1797, 1255, 1255, 1255, 3098, 3099,
2286      1580, 1584, 1584, 1584, 1801, 1801, 1801, 3100, 1802, 3101,
2287      3107, 1803, 3108, 1257, 1804, 1804, 1804, 3109, 1585, 1262,
2288      1262, 1262, 1589, 1589, 1589, 1822, 1822, 1822, 2164, 2164,
2289      2164, 1805, 1606, 1606, 1606, 3116, 3117, 1264, 3118, 3119,
2290      1590, 3120, 1823, 3121, 3122, 1799, 1824, 1824, 1824, 1607,
2291      1825, 3123, 3124, 1826, 1293, 1293, 1293, 1610, 1610, 1610,
2292      1829, 1829, 1829, 3125, 1830, 3126, 3127, 1831, 1806, 1300,
2293      1300, 1300, 1295, 3130, 1611, 1614, 1614, 1614, 1834, 1834,
2294      1834, 3131, 1835, 3132, 3133, 1836, 3141, 1302, 1306, 1306,
2295
2296      1306, 3136, 1615, 1620, 1620, 1620, 1841, 1841, 1841, 3142,
2297      1842, 3143, 3144, 1843, 1180, 3137, 1308, 1844, 1844, 1844,
2298      1621, 1847, 1847, 1847, 1319, 1319, 1319, 3145, 1827, 1331,
2299      1331, 1331, 3136, 3146, 1845, 1632, 1632, 1632, 1848, 1833,
2300      3147, 3148, 1321, 3139, 1857, 1857, 1857, 1333, 1858, 3151,
2301      3152, 1859, 1633, 1860, 1860, 1860, 1635, 1635, 1635, 1838,
2302      3134, 1862, 1862, 1862, 3153, 1863, 3155, 1849, 1864, 3156,
2303      3157, 1861, 3158, 1636, 1347, 1347, 1347, 1867, 1867, 1867,
2304      1642, 1642, 1642, 3159, 1871, 1871, 1871, 3167, 1872, 3160,
2305      1850, 1873, 1349, 1856, 1868, 3172, 3149, 1643, 1644, 1644,
2306
2307      1644, 3161, 1645, 3154, 3173, 1646, 1876, 1876, 1876, 1374,
2308      1374, 1374, 1659, 1659, 1659, 3174, 1660, 3175, 3176, 1661,
2309      1887, 1887, 1887, 1877, 3468, 3468, 3468, 1376, 3468, 3468,
2310      3468, 3468, 3468, 3468, 1390, 1390, 1390, 1888, 3150, 3177,
2311      1865, 3468, 1894, 1894, 1894, 3468, 3162, 3180, 3468, 1671,
2312      1671, 1671, 1392, 1672, 1742, 1743, 1673, 3180, 3163, 1895,
2313      1898, 1898, 1898, 1405, 1405, 1405, 1413, 1413, 1413, 1422,
2314      1422, 1422, 3136, 3168, 1886, 1890, 3170, 1899, 1910, 1910,
2315      1910, 1407, 3136, 3183, 1415, 3169, 3137, 1424, 3171, 1892,
2316      1433, 1433, 1433, 3139, 1889, 1911, 1687, 1687, 1687, 3184,
2317
2318      1688, 1891, 3185, 1689, 1180, 1690, 1690, 1690, 1435, 1691,
2319      3186, 3187, 1692, 1442, 1442, 1442, 1696, 1696, 1696, 3190,
2320      1697, 3188, 3201, 1698, 1912, 3199, 1906, 1901, 1454, 1454,
2321      1454, 1444, 1903, 1701, 1701, 1701, 3191, 1702, 3204, 3189,
2322      1703, 1462, 1462, 1462, 3200, 3178, 1456, 1913, 1708, 1708,
2323      1708, 3192, 1709, 3202, 3207, 1710, 1711, 1711, 1711, 1464,
2324      1712, 3209, 3210, 1713, 1470, 1470, 1470, 1715, 1715, 1715,
2325      3212, 1716, 3203, 3208, 1717, 3213, 1720, 1720, 1720, 1915,
2326      1721, 3211, 1472, 1722, 1480, 1480, 1480, 3214, 3180, 1920,
2327      1725, 1725, 1725, 1928, 1928, 1928, 3216, 1929, 1922, 3180,
2328
2329      1930, 3217, 1482, 1489, 1489, 1489, 3218, 1726, 1936, 1936,
2330      1936, 1923, 1495, 1495, 1495, 1502, 1502, 1502, 1940, 1940,
2331      1940, 1491, 1510, 1510, 1510, 1937, 1943, 1943, 1943, 3219,
2332      1497, 1926, 3220, 1504, 3221, 1941, 1518, 1518, 1518, 3222,
2333      1512, 3223, 3224, 1944, 1741, 1741, 1741, 1193, 1193, 1193,
2334      3234, 3235, 1934, 3236, 1520, 3237, 1780, 1780, 1780, 3238,
2335      1781, 3239, 1742, 1782, 3243, 1195, 3244, 1939, 1229, 1229,
2336      1229, 1784, 1784, 1784, 3245, 1785, 3246, 3247, 1786, 1938,
2337      1239, 1239, 1239, 3248, 1942, 3249, 1231, 1945, 3250, 1791,
2338      1791, 1791, 3252, 1792, 3253, 1947, 1793, 3254, 1241, 1952,
2339
2340      1795, 1795, 1795, 3255, 1796, 3256, 3257, 1797, 1255, 1255,
2341      1255, 3258, 1948, 1801, 1801, 1801, 3263, 1802, 3259, 3264,
2342      1803, 1804, 1804, 1804, 3265, 3261, 1257, 1262, 1262, 1262,
2343      3260, 1985, 1999, 1999, 1999, 1982, 2000, 3262, 1805, 2001,
2344      2008, 2008, 2008, 3266, 3267, 1264, 2008, 2008, 2008, 1969,
2345      1969, 1969, 3268, 1822, 1822, 1822, 2014, 2014, 2014, 3269,
2346      2015, 3270, 3271, 2016, 1824, 1824, 1824, 3272, 1825, 1989,
2347      1823, 1826, 1293, 1293, 1293, 1829, 1829, 1829, 2002, 1830,
2348      3273, 3274, 1831, 1300, 1300, 1300, 3275, 1834, 1834, 1834,
2349      1295, 1835, 3276, 1180, 1836, 2021, 2021, 2021, 1306, 1306,
2350
2351      1306, 1302, 3278, 3279, 2009, 3280, 3281, 1841, 1841, 1841,
2352      1970, 1842, 2022, 2009, 1843, 3282, 1308, 3283, 3277, 2017,
2353      1844, 1844, 1844, 2026, 2026, 2026, 3284, 2027, 3285, 3286,
2354      2028, 2029, 2029, 2029, 1847, 1847, 1847, 1845, 2031, 2031,
2355      2031, 3287, 2032, 3288, 3289, 2033, 3290, 3291, 2030, 2020,
2356      3292, 1848, 2035, 2035, 2035, 2039, 2039, 2039, 3468, 3468,
2357      3468, 3293, 2023, 2042, 2042, 2042, 1331, 1331, 1331, 3294,
2358      2036, 3295, 2040, 3296, 3297, 3468, 1860, 1860, 1860, 3298,
2359      2043, 1857, 1857, 1857, 1333, 1858, 3299, 1180, 1859, 1862,
2360      1862, 1862, 3301, 1863, 1861, 3302, 1864, 1347, 1347, 1347,
2361
2362      1867, 1867, 1867, 2047, 2047, 2047, 3300, 2048, 3303, 3304,
2363      2049, 3305, 3306, 2044, 3307, 1349, 3308, 1868, 2050, 2050,
2364      2050, 1871, 1871, 1871, 2041, 1872, 3309, 3310, 1873, 1876,
2365      1876, 1876, 2055, 2055, 2055, 2051, 2056, 3311, 3312, 2057,
2366      2058, 2058, 2058, 2045, 3313, 3314, 1877, 2064, 2064, 2064,
2367      1374, 1374, 1374, 1887, 1887, 1887, 3315, 2059, 2069, 2069,
2368      2069, 3316, 2070, 3317, 2065, 2071, 3318, 3319, 1376, 3320,
2369      1888, 2072, 2072, 2072, 3468, 3468, 3468, 2075, 2075, 2075,
2370      1390, 1390, 1390, 1894, 1894, 1894, 3322, 3323, 2073, 1180,
2371      3324, 3468, 3325, 3326, 2076, 2079, 2079, 2079, 1392, 2080,
2372
2373      1895, 3327, 2081, 2082, 2082, 2082, 1898, 1898, 1898, 3321,
2374      2085, 2085, 2085, 3328, 2086, 3329, 2068, 2087, 3330, 3331,
2375      2083, 3332, 3333, 1899, 2089, 2089, 2089, 1413, 1413, 1413,
2376      3334, 3335, 2074, 1422, 1422, 1422, 1910, 1910, 1910, 3336,
2377      2077, 3337, 2090, 3338, 3339, 1415, 3340, 3341, 2099, 2099,
2378      2099, 1424, 2100, 1911, 3343, 2101, 2103, 2103, 2103, 1442,
2379      1442, 1442, 2108, 2108, 2108, 2110, 2110, 2110, 3468, 3468,
2380      3468, 1454, 1454, 1454, 2104, 3344, 3345, 1444, 2092, 2109,
2381      3346, 2095, 2111, 3347, 3348, 3468, 1470, 1470, 1470, 1456,
2382      1462, 1462, 1462, 3349, 2117, 2117, 2117, 2119, 2119, 2119,
2383
2384      1480, 1480, 1480, 3350, 1472, 1928, 1928, 1928, 1464, 1929,
2385      2106, 2118, 1930, 1180, 2120, 1489, 1489, 1489, 1482, 3342,
2386      1936, 1936, 1936, 2128, 2128, 2128, 3351, 2129, 3352, 3353,
2387      2130, 3354, 2112, 1491, 3356, 3357, 2115, 1937, 2113, 1495,
2388      1495, 1495, 1502, 1502, 1502, 1940, 1940, 1940, 2133, 2133,
2389      2133, 2116, 2134, 3358, 3359, 2135, 3360, 1497, 3361, 3362,
2390      1504, 3363, 1941, 3365, 1180, 2121, 2126, 2136, 2136, 2136,
2391      1943, 1943, 1943, 2138, 2138, 2138, 3366, 2139, 3355, 3367,
2392      2140, 1518, 1518, 1518, 3368, 2137, 3369, 1944, 2146, 2146,
2393      2146, 1193, 1193, 1193, 1969, 1969, 1969, 2132, 2131, 1520,
2394
2395      2165, 2165, 2165, 3370, 3371, 2147, 1972, 1972, 1972, 1195,
2396      2168, 2168, 2168, 2169, 2169, 2169, 1980, 1980, 1980, 1229,
2397      1229, 1229, 2178, 2178, 2178, 2181, 2181, 2181, 1255, 1255,
2398      1255, 2185, 2185, 2185, 1999, 1999, 1999, 1231, 2000, 2141,
2399      2179, 2001, 2182, 1262, 1262, 1262, 1257, 3372, 2186, 2198,
2400      2198, 2198, 2148, 2008, 2008, 2008, 2205, 2205, 2205, 3375,
2401      3376, 1264, 2207, 2207, 2207, 3377, 2199, 3378, 3379, 2175,
2402      2014, 2014, 2014, 3380, 2015, 1755, 1180, 2016, 1180, 2208,
2403      1293, 1293, 1293, 2213, 2213, 2213, 1180, 2184, 3465, 2197,
2404      2021, 2021, 2021, 2215, 2215, 2215, 1180, 2216, 1295, 1180,
2405
2406      2217, 2214, 1306, 1306, 1306, 1754, 1180, 2022, 2209, 2026,
2407      2026, 2026, 3381, 2027, 3382, 1180, 2028, 2029, 2029, 2029,
2408      1308, 2221, 2221, 2221, 1180, 2222, 1180, 3399, 2223, 2035,
2409      2035, 2035, 1180, 2210, 2030, 2031, 2031, 2031, 1180, 2032,
2410      3387, 3401, 2033, 2037, 2037, 2037, 1180, 2036, 3391, 2218,
2411      2039, 2039, 2039, 2228, 2228, 2228, 1180, 2229, 3413, 3388,
2412      2230, 2231, 2231, 2231, 2042, 2042, 2042, 2040, 2234, 2234,
2413      2234, 1180, 2235, 3389, 3383, 2236, 1180, 1180, 2232, 3400,
2414      3384, 2043, 1331, 1331, 1331, 1347, 1347, 1347, 2047, 2047,
2415      2047, 3392, 2048, 3393, 3385, 2049, 2050, 2050, 2050, 1180,
2416
2417      1333, 1180, 3394, 1349, 2240, 2240, 2240, 2233, 2241, 3421,
2418      1180, 2242, 1180, 2051, 2055, 2055, 2055, 1180, 2056, 3386,
2419      1753, 2057, 2058, 2058, 2058, 2246, 2246, 2246, 1180, 2247,
2420      3390, 1180, 2248, 1752, 1180, 2237, 2249, 2249, 2249, 2059,
2421      2064, 2064, 2064, 2238, 2254, 2254, 2254, 1180, 2255, 3397,
2422      1180, 2256, 1180, 2250, 1374, 1374, 1374, 2065, 2069, 2069,
2423      2069, 1180, 2070, 3407, 3395, 2071, 2072, 2072, 2072, 2260,
2424      2260, 2260, 1376, 2261, 1180, 3396, 2262, 2263, 2263, 2263,
2425      2075, 2075, 2075, 2073, 2265, 2265, 2265, 3398, 2266, 3405,
2426      1180, 2267, 3409, 3403, 2264, 1751, 3402, 2076, 1390, 1390,
2427
2428      1390, 1180, 2079, 2079, 2079, 2259, 2080, 1750, 3414, 2081,
2429      2082, 2082, 2082, 2270, 2270, 2270, 1392, 2271, 1749, 3433,
2430      2272, 2085, 2085, 2085, 1180, 2086, 1180, 2083, 2087, 2089,
2431      2089, 2089, 1413, 1413, 1413, 2278, 2278, 2278, 1422, 1422,
2432      1422, 2282, 2282, 2282, 2099, 2099, 2099, 2090, 2100, 2268,
2433      1415, 2101, 2279, 2103, 2103, 2103, 1424, 1180, 2283, 2290,
2434      2290, 2290, 2108, 2108, 2108, 2293, 2293, 2293, 3427, 2294,
2435      3404, 2104, 2295, 2110, 2110, 2110, 1180, 2291, 1180, 2109,
2436      3410, 2296, 2296, 2296, 1180, 2297, 1180, 2284, 2298, 1180,
2437      2111, 1454, 1454, 1454, 3406, 1180, 2276, 1747, 1180, 2280,
2438
2439      1462, 1462, 1462, 1470, 1470, 1470, 2117, 2117, 2117, 1456,
2440      2304, 2304, 2304, 3411, 2305, 1180, 3408, 2306, 1464, 3415,
2441      1180, 1472, 1180, 2118, 2119, 2119, 2119, 2307, 2307, 2307,
2442      3412, 2308, 3417, 3419, 2309, 1480, 1480, 1480, 1489, 1489,
2443      1489, 2120, 1180, 2128, 2128, 2128, 1180, 2129, 3422, 2302,
2444      2130, 1746, 1745, 1482, 1180, 3420, 1491, 2300, 1495, 1495,
2445      1495, 1502, 1502, 1502, 3428, 2133, 2133, 2133, 2303, 2134,
2446      1180, 1180, 2135, 2136, 2136, 2136, 1497, 3423, 1744, 1504,
2447      2138, 2138, 2138, 3434, 2139, 3416, 1180, 2140, 1518, 1518,
2448      1518, 2137, 3418, 2146, 2146, 2146, 3424, 2324, 2324, 2324,
2449
2450      2310, 2325, 1737, 2315, 2326, 1180, 1520, 3425, 3426, 2317,
2451      2147, 1193, 1193, 1193, 2318, 2328, 2328, 2328, 2333, 2333,
2452      2333, 2334, 2334, 2334, 2156, 2156, 2156, 1735, 1180, 1195,
2453      2336, 2336, 2336, 1732, 2319, 2341, 2341, 2341, 2164, 2164,
2454      2164, 2165, 2165, 2165, 2342, 2342, 2342, 2168, 2168, 2168,
2455      2169, 2169, 2169, 2345, 2345, 2345, 2346, 2346, 2346, 2347,
2456      2347, 2347, 2348, 2348, 2348, 1229, 1229, 1229, 2178, 2178,
2457      2178, 2181, 2181, 2181, 3429, 2327, 1180, 2354, 2354, 2354,
2458      3435, 2355, 1180, 1231, 2356, 1731, 2179, 1729, 2182, 1180,
2459      2343, 2358, 2358, 2358, 2185, 2185, 2185, 2360, 2360, 2360,
2460
2461      1728, 2361, 1727, 1724, 2362, 1262, 1262, 1262, 1180, 2359,
2462      1180, 2186, 2198, 2198, 2198, 1180, 2350, 2374, 2374, 2374,
2463      1180, 2375, 3430, 1264, 2376, 2377, 2377, 2377, 3439, 2199,
2464      2205, 2205, 2205, 2382, 2382, 2382, 2207, 2207, 2207, 2384,
2465      2384, 2384, 1180, 2385, 3437, 3431, 2386, 1293, 1293, 1293,
2466      2213, 2213, 2213, 2208, 2373, 2215, 2215, 2215, 1180, 2216,
2467      1719, 3440, 2217, 3436, 1718, 1295, 1180, 3443, 2214, 1306,
2468      1306, 1306, 1180, 2221, 2221, 2221, 3438, 2222, 3441, 2383,
2469      2223, 2228, 2228, 2228, 1180, 2229, 1180, 1308, 2230, 2231,
2470      2231, 2231, 2400, 2400, 2400, 3432, 2401, 3442, 2388, 2402,
2471
2472      2234, 2234, 2234, 3445, 2235, 1180, 2232, 2236, 1331, 1331,
2473      1331, 1347, 1347, 1347, 2240, 2240, 2240, 1180, 2241, 3449,
2474      1180, 2242, 2391, 2246, 2246, 2246, 1333, 2247, 1180, 1349,
2475      2248, 2249, 2249, 2249, 2410, 2410, 2410, 1180, 2411, 1706,
2476      1180, 2412, 2254, 2254, 2254, 1180, 2255, 1704, 2250, 2256,
2477      2417, 2417, 2417, 1374, 1374, 1374, 2260, 2260, 2260, 2404,
2478      2261, 3447, 1180, 2262, 3444, 3446, 2405, 2418, 2263, 2263,
2479      2263, 1376, 2420, 2420, 2420, 3450, 2421, 3455, 3448, 2422,
2480      2265, 2265, 2265, 1180, 2266, 2264, 1180, 2267, 1390, 1390,
2481      1390, 2270, 2270, 2270, 1180, 2271, 1180, 1700, 2272, 3453,
2482
2483      2428, 2428, 2428, 2278, 2278, 2278, 1392, 2431, 2431, 2431,
2484      3457, 2432, 1180, 1180, 2433, 3456, 1180, 2419, 2429, 1180,
2485      2279, 1422, 1422, 1422, 2282, 2282, 2282, 2436, 2436, 2436,
2486      1180, 2437, 3451, 3454, 2438, 2290, 2290, 2290, 3458, 1424,
2487      3452, 2283, 2293, 2293, 2293, 3459, 2294, 1180, 3460, 2295,
2488      1454, 1454, 1454, 2291, 2423, 2296, 2296, 2296, 1180, 2297,
2489      3461, 3465, 2298, 1180, 1462, 1462, 1462, 1699, 1456, 1470,
2490      1470, 1470, 2304, 2304, 2304, 1180, 2305, 1695, 3462, 2306,
2491      1693, 2434, 1464, 1685, 2307, 2307, 2307, 1472, 2308, 1684,
2492      3463, 2309, 1480, 1480, 1480, 3464, 2454, 2454, 2454, 1683,
2493
2494      1682, 2449, 3468, 3468, 3468, 2452, 3468, 3468, 3468, 1680,
2495      1482, 1679, 2453, 2455, 3468, 3468, 3468, 1677, 1675, 3468,
2496      1489, 1489, 1489, 3468, 1495, 1495, 1495, 2462, 2462, 2462,
2497      2451, 3468, 1518, 1518, 1518, 2468, 2468, 2468, 1491, 2465,
2498      2465, 2465, 1497, 1674, 1670, 2463, 1669, 2324, 2324, 2324,
2499      1520, 2325, 1668, 2456, 2326, 1667, 1665, 1180, 1193, 1193,
2500      1193, 2328, 2328, 2328, 2470, 2470, 2470, 2471, 2471, 2471,
2501      2457, 1664, 1663, 2458, 1662, 1655, 1195, 2333, 2333, 2333,
2502      2334, 2334, 2334, 1654, 2461, 2459, 2336, 2336, 2336, 2475,
2503      2475, 2475, 1653, 1652, 2464, 2477, 2477, 2477, 2478, 2478,
2504
2505      2478, 2341, 2341, 2341, 2342, 2342, 2342, 2345, 2345, 2345,
2506      2346, 2346, 2346, 2347, 2347, 2347, 1651, 2469, 2348, 2348,
2507      2348, 2482, 2482, 2482, 2485, 2485, 2485, 2354, 2354, 2354,
2508      1650, 2355, 1649, 1648, 2356, 3468, 3468, 3468, 1647, 2483,
2509      1641, 2486, 2358, 2358, 2358, 1640, 2360, 2360, 2360, 1639,
2510      2361, 1638, 3468, 2362, 1262, 1262, 1262, 2374, 2374, 2374,
2511      2359, 2375, 2499, 2500, 2376, 2501, 2504, 2505, 1630, 2506,
2512      1629, 1628, 1264, 2502, 2377, 2377, 2377, 2507, 1627, 1626,
2513      2503, 2509, 2509, 2509, 2508, 2382, 2382, 2382, 2384, 2384,
2514      2384, 1624, 2385, 1623, 1622, 2386, 1293, 1293, 1293, 1619,
2515
2516      1618, 2487, 2517, 2517, 2517, 1306, 1306, 1306, 2527, 2527,
2517      2527, 2529, 2529, 2529, 1295, 2498, 1347, 1347, 1347, 2518,
2518      2400, 2400, 2400, 1308, 2401, 1609, 1605, 2402, 1604, 2530,
2519      1603, 2410, 2410, 2410, 1349, 2411, 1602, 1601, 2412, 2567,
2520      2567, 2567, 2515, 2537, 2537, 2537, 2417, 2417, 2417, 1600,
2521      2542, 2542, 2542, 1599, 2543, 1598, 2519, 2544, 1596, 1595,
2522      2538, 1593, 1592, 2418, 2545, 2545, 2545, 2420, 2420, 2420,
2523      1591, 2421, 1588, 1586, 2422, 1583, 2531, 2547, 2547, 2547,
2524      1581, 1578, 2546, 2428, 2428, 2428, 2553, 2553, 2553, 2431,
2525      2431, 2431, 1569, 2432, 1567, 2548, 2433, 1422, 1422, 1422,
2526
2527      1560, 2429, 1558, 2554, 2556, 2556, 2556, 2436, 2436, 2436,
2528      1557, 2437, 1556, 1555, 2438, 1424, 3468, 3468, 3468, 1554,
2529      1553, 2557, 3468, 3468, 3468, 3468, 3468, 3468, 2569, 2569,
2530      2569, 1552, 1551, 3468, 2571, 2571, 2571, 1550, 1549, 3468,
2531      1546, 1545, 3468, 1462, 1462, 1462, 2570, 1544, 2555, 1543,
2532      2558, 2572, 1470, 1470, 1470, 1480, 1480, 1480, 2454, 2454,
2533      2454, 1464, 2576, 2576, 2576, 1542, 2577, 1541, 1540, 2578,
2534      1472, 2559, 1539, 1482, 1537, 2455, 2565, 2579, 2579, 2579,
2535      3468, 3468, 3468, 2560, 3468, 3468, 3468, 2583, 2583, 2583,
2536      1536, 1535, 2575, 1534, 2580, 1533, 1532, 3468, 2585, 2585,
2537
2538      2585, 3468, 1531, 2573, 1529, 2584, 1495, 1495, 1495, 2462,
2539      2462, 2462, 1528, 2574, 1518, 1518, 1518, 1527, 2465, 2465,
2540      2465, 2468, 2468, 2468, 1497, 1526, 1525, 2463, 2591, 2591,
2541      2591, 2581, 1520, 1524, 1523, 2582, 1180, 2470, 2470, 2470,
2542      2471, 2471, 2471, 2595, 2595, 2595, 2592, 2475, 2475, 2475,
2543      2477, 2477, 2477, 2478, 2478, 2478, 2482, 2482, 2482, 2485,
2544      2485, 2485, 2601, 2601, 2601, 1180, 2602, 1517, 1509, 2603,
2545      1494, 1493, 2586, 1488, 2483, 1487, 2486, 1486, 2587, 1485,
2546      2588, 1262, 1262, 1262, 2509, 2509, 2509, 2630, 2630, 2630,
2547      1293, 1293, 1293, 2517, 2517, 2517, 2635, 2635, 2635, 1264,
2548
2549      2636, 1484, 1458, 2637, 2638, 2638, 2638, 1446, 1295, 1432,
2550      2518, 2644, 2644, 2644, 2527, 2527, 2527, 2529, 2529, 2529,
2551      1431, 1430, 2639, 1426, 1347, 1347, 1347, 1421, 2645, 2537,
2552      2537, 2537, 2653, 2653, 2653, 2530, 2654, 1417, 1409, 2655,
2553      1404, 2615, 1349, 2657, 2657, 2657, 2538, 2542, 2542, 2542,
2554      1403, 2543, 1397, 1394, 2544, 1373, 2633, 2545, 2545, 2545,
2555      2658, 2547, 2547, 2547, 1372, 2666, 2666, 2666, 2553, 2553,
2556      2553, 2672, 2672, 2672, 1371, 2546, 2669, 2669, 2669, 2548,
2557      2670, 2647, 2667, 2671, 1370, 2554, 2556, 2556, 2556, 2673,
2558      2674, 2674, 2674, 1369, 2675, 1368, 1367, 2676, 2682, 2682,
2559
2560      2682, 1366, 1365, 2557, 2567, 2567, 2567, 2569, 2569, 2569,
2561      2571, 2571, 2571, 1364, 1358, 2683, 2686, 2686, 2686, 1351,
2562      2687, 1340, 1335, 2688, 1330, 2570, 1326, 2572, 2689, 2689,
2563      2689, 1470, 1470, 1470, 1325, 1480, 1480, 1480, 2576, 2576,
2564      2576, 1324, 2577, 1318, 1317, 2578, 2690, 1316, 1312, 1472,
2565      2579, 2579, 2579, 1482, 2693, 2693, 2693, 1311, 2694, 1310,
2566      1305, 2695, 2696, 2696, 2696, 1304, 1299, 2580, 2698, 2698,
2567      2698, 2583, 2583, 2583, 2585, 2585, 2585, 1298, 1292, 2697,
2568      1291, 1287, 2700, 2700, 2700, 2699, 1518, 1518, 1518, 2584,
2569      2591, 2591, 2591, 2595, 2595, 2595, 1286, 1285, 2691, 2692,
2570
2571      2701, 2708, 2708, 2708, 1520, 2712, 2712, 2712, 2592, 2601,
2572      2601, 2601, 1284, 2602, 1283, 1282, 2603, 1262, 1262, 1262,
2573      1281, 1280, 2713, 2630, 2630, 2630, 1293, 1293, 1293, 2749,
2574      2749, 2749, 2635, 2635, 2635, 1264, 2636, 1279, 1278, 2637,
2575      2638, 2638, 2638, 1277, 1295, 1276, 1275, 2702, 2751, 2751,
2576      2751, 2644, 2644, 2644, 1269, 2753, 2753, 2753, 2639, 2754,
2577      1261, 1260, 2755, 1259, 1254, 2752, 1253, 1252, 2645, 2757,
2578      2757, 2757, 2762, 2762, 2762, 1249, 1243, 2731, 2653, 2653,
2579      2653, 1238, 2654, 1237, 1233, 2655, 1228, 2758, 1227, 2763,
2580      2657, 2657, 2657, 1226, 2766, 2766, 2766, 2748, 2767, 1225,
2581
2582      1224, 2768, 2775, 2775, 2775, 1223, 1222, 2658, 2666, 2666,
2583      2666, 2777, 2777, 2777, 1220, 2778, 1219, 1218, 2779, 2776,
2584      2780, 2780, 2780, 1217, 1216, 2667, 2669, 2669, 2669, 1215,
2585      2670, 1214, 1213, 2671, 2672, 2672, 2672, 2781, 2674, 2674,
2586      2674, 1212, 2675, 1211, 1208, 2676, 2682, 2682, 2682, 2785,
2587      2785, 2785, 2673, 2786, 1207, 1206, 2787, 2788, 2788, 2788,
2588      2790, 2790, 2790, 2683, 2686, 2686, 2686, 1205, 2687, 1204,
2589      1203, 2688, 1202, 1201, 2789, 1200, 1199, 2791, 2689, 2689,
2590      2689, 1470, 1470, 1470, 1480, 1480, 1480, 2693, 2693, 2693,
2591      1192, 2694, 1191, 1190, 2695, 1189, 2690, 1188, 1187, 1472,
2592
2593      1186, 1183, 1482, 2696, 2696, 2696, 2800, 2800, 2800, 1181,
2594      2801, 1180, 1178, 2802, 2698, 2698, 2698, 2803, 2803, 2803,
2595      2697, 2804, 1176, 1173, 2805, 2700, 2700, 2700, 1518, 1518,
2596      1518, 2699, 2811, 2811, 2811, 2708, 2708, 2708, 2712, 2712,
2597      2712, 1171, 1168, 2701, 1164, 2799, 1520, 2798, 1162, 2815,
2598      2815, 2815, 1161, 2816, 1160, 2713, 2817, 1262, 1262, 1262,
2599      2849, 2849, 2849, 2851, 2851, 2851, 1293, 1293, 1293, 2749,
2600      2749, 2749, 2854, 2854, 2854, 1264, 2751, 2751, 2751, 1158,
2601      2852, 2857, 2857, 2857, 1295, 2858, 1157, 1156, 2859, 2855,
2602      2806, 1155, 1154, 2752, 2753, 2753, 2753, 1153, 2754, 1151,
2603
2604      1150, 2755, 2860, 2860, 2860, 2757, 2757, 2757, 2835, 2864,
2605      2864, 2864, 2762, 2762, 2762, 2869, 2869, 2869, 2856, 2861,
2606      2866, 2866, 2866, 2758, 2867, 1149, 2865, 2868, 2853, 2763,
2607      1148, 1146, 2870, 2766, 2766, 2766, 1145, 2767, 1144, 1140,
2608      2768, 2775, 2775, 2775, 2878, 2878, 2878, 1139, 2879, 1137,
2609      1136, 2880, 2777, 2777, 2777, 1135, 2778, 1134, 2776, 2779,
2610      2780, 2780, 2780, 2881, 2881, 2881, 1133, 2882, 1132, 1130,
2611      2883, 2885, 2885, 2885, 2785, 2785, 2785, 2781, 2786, 1129,
2612      1128, 2787, 2788, 2788, 2788, 2888, 2888, 2888, 2886, 2889,
2613      1127, 1125, 2890, 2790, 2790, 2790, 2891, 2891, 2891, 2789,
2614
2615      2892, 1124, 1123, 2893, 1470, 1470, 1470, 1480, 1480, 1480,
2616      2791, 2800, 2800, 2800, 1120, 2801, 1119, 1117, 2802, 2803,
2617      2803, 2803, 1472, 2804, 1114, 1482, 2805, 2906, 2906, 2906,
2618      2910, 2910, 2910, 2811, 2811, 2811, 2913, 2913, 2913, 2815,
2619      2815, 2815, 1113, 2816, 1109, 2907, 2817, 2911, 1742, 2924,
2620      2924, 2924, 1262, 1262, 1262, 2900, 2849, 2849, 2849, 2948,
2621      2948, 2948, 2851, 2851, 2851, 1108, 2925, 1293, 1293, 1293,
2622      1264, 2949, 2949, 2949, 2901, 2950, 1106, 1105, 2951, 2852,
2623      2854, 2854, 2854, 1104, 1101, 1295, 2953, 2953, 2953, 1100,
2624      2954, 1099, 1098, 2955, 2860, 2860, 2860, 2855, 2857, 2857,
2625
2626      2857, 2934, 2858, 1096, 1095, 2859, 2957, 2957, 2957, 1094,
2627      2958, 2861, 1093, 2959, 2864, 2864, 2864, 1092, 2952, 2962,
2628      2962, 2962, 1087, 2963, 1085, 1084, 2964, 1083, 2866, 2866,
2629      2866, 2865, 2867, 1082, 1081, 2868, 2869, 2869, 2869, 2965,
2630      2965, 2965, 1080, 2966, 1079, 1078, 2967, 2878, 2878, 2878,
2631      1077, 2879, 1076, 2870, 2880, 2881, 2881, 2881, 1075, 2882,
2632      1072, 1069, 2883, 2885, 2885, 2885, 2976, 2976, 2976, 1068,
2633      2977, 1067, 1061, 2978, 2888, 2888, 2888, 1060, 2889, 1058,
2634      2886, 2890, 2891, 2891, 2891, 1057, 2892, 1055, 1052, 2893,
2635      2994, 2994, 2994, 1480, 1480, 1480, 2906, 2906, 2906, 3002,
2636
2637      3002, 3002, 2910, 2910, 2910, 3004, 3004, 3004, 2995, 3005,
2638      1051, 1482, 3006, 1048, 2907, 1046, 3003, 1742, 1045, 2911,
2639      1742, 1044, 1039, 1742, 3007, 3007, 3007, 2913, 2913, 2913,
2640      3008, 3008, 3008, 3009, 3009, 3009, 2924, 2924, 2924, 3018,
2641      3018, 3018, 1038, 3019, 1036, 1035, 3020, 1262, 1262, 1262,
2642      3036, 3036, 3036, 2925, 2948, 2948, 2948, 1034, 1032, 2996,
2643      2949, 2949, 2949, 1031, 2950, 1264, 1029, 2951, 3037, 3037,
2644      3037, 2953, 2953, 2953, 1027, 2954, 1026, 1023, 2955, 1018,
2645      2957, 2957, 2957, 1017, 2958, 1014, 3038, 2959, 2962, 2962,
2646      2962, 1013, 2963, 1012, 1009, 2964, 2965, 2965, 2965, 1008,
2647
2648      2966, 1006, 1003, 2967, 3042, 3042, 3042, 3050, 3050, 3050,
2649      2976, 2976, 2976, 3027, 2977, 1001, 1000, 2978, 3052, 3052,
2650      3052, 3043,  999,  998, 3051, 2994, 2994, 2994, 1480, 1480,
2651      1480, 3002, 3002, 3002,  996, 3053,  995, 3072, 3072, 3072,
2652       994, 3073,  993, 2995, 3074,  992, 1482,  991, 3003, 1742,
2653      3004, 3004, 3004,  988, 3005, 1742,  987, 3006, 3007, 3007,
2654      3007, 3008, 3008, 3008, 3009, 3009, 3009,  986, 1742, 3018,
2655      3018, 3018,  983, 3019,  980,  979, 3020,  977,  976, 3066,
2656      1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740,  973,
2657       970, 1740, 3091, 3091, 3091,  967, 1740, 1740, 1740, 1742,
2658
2659      1740, 3036, 3036, 3036, 3037, 3037, 3037, 3042, 3042, 3042,
2660      3092, 3102, 3102, 3102,  966, 3103,  958,  957, 3104, 3105,
2661      3105, 3105, 3038,  956, 3043, 1740, 1740, 1740, 1740, 1740,
2662      1740, 1740, 1740, 1740, 1740, 1740, 3106,  955, 1740, 3050,
2663      3050, 3050,  949, 1740, 1740, 1740, 1742, 1740, 3110, 3110,
2664      3110,  948, 3111,  947,  945, 3112, 3051, 3052, 3052, 3052,
2665      3113, 3113, 3113,  944, 3114,  943,  942, 3115, 3128, 3128,
2666      3128,  941, 1740, 1740, 3053, 3072, 3072, 3072,  940, 3073,
2667       935,  932, 3074,  934,  929,  928, 3129,  926, 3091, 3091,
2668      3091,  924,  923, 1742, 1740, 1740, 1740, 1740, 1740, 3140,
2669
2670      1740, 1740, 1740,  921,  919, 1740, 3092, 3105, 3105, 3105,
2671      1740, 1740, 1740, 1742, 1740, 3102, 3102, 3102,  917, 3103,
2672       915,  913, 3104,  910, 3106, 3164, 3164, 3164,  909, 3165,
2673       908,  907, 3166, 3128, 3128, 3128, 3182, 3182, 3182, 1740,
2674      1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 3140,
2675       906, 3129, 1740,  904, 1742, 1743,  902, 1740, 1740, 1740,
2676      1742, 1740, 3110, 3110, 3110,  901, 3111,  900,  898, 3112,
2677      3113, 3113, 3113,  896, 3114,  895,  893, 3115, 3193, 3193,
2678      3193, 3195, 3195, 3195,  891,  890, 1740, 1740, 3197, 3197,
2679      3197,  888, 3164, 3164, 3164, 3194, 3165,  884, 3196, 3166,
2680
2681      3205, 3205, 3205,  883,  881, 3198, 3215, 3215, 3215, 3182,
2682      3182, 3182, 3193, 3193, 3193,  876,  874, 3206, 3225, 3225,
2683      3225,  870, 3226,  869, 1180, 3227,  868, 1742,  866, 3194,
2684      3195, 3195, 3195, 3228, 3228, 3228,  864, 3229,  863,  862,
2685      3230, 3197, 3197, 3197, 3231, 3231, 3231, 3196, 3232,  860,
2686       858, 3233, 3205, 3205, 3205, 3240, 3240, 3240, 3198, 3241,
2687      1947,  857, 3242, 3215, 3215, 3215, 3225, 3225, 3225, 3206,
2688      3226,  855,  853, 3227,  852, 3228, 3228, 3228,  851, 3229,
2689       850, 1180, 3230, 3231, 3231, 3231,  849, 3232,  848,  847,
2690      3233, 3240, 3240, 3240,  845, 3241,  843,  842, 3242,  839,
2691
2692      3251, 3364, 3364, 3364, 3364, 3364, 3364,  838, 3373,  837,
2693       835, 3374, 3466, 3466, 3466, 3466, 3466, 3466,  833, 1180,
2694       822,  821, 1180,  818,  816,  814,  813,  812,  810,  808,
2695      3467,  806,  804, 3467,  264,  264,  264,  264,  264,  264,
2696       264,  264,  264,  265,  265,  265,  265,  265,  265,  265,
2697       265,  265,  270,  270,  270,  270,  270,  270,  270,  270,
2698       270,  273,  273,  273,  273,  273,  273,  273,  273,  273,
2699       276,  276,  276,  276,  276,  276,  276,  276,  276,  279,
2700       279,  279,  279,  279,  279,  279,  279,  279,  286,  286,
2701       286,  286,  286,  286,  286,  286,  286,  294,  294,  294,
2702
2703       294,  294,  294,  294,  294,  294,  298,  298,  298,  298,
2704       298,  298,  298,  298,  298,  310,  310,  310,  310,  310,
2705       310,  310,  310,  310,  314,  314,  314,  314,  314,  314,
2706       314,  314,  314,  321,  321,  321,  321,  321,  321,  321,
2707       321,  321,  332,  332,  332,  332,  332,  332,  332,  332,
2708       332,  340,  340,  340,  340,  340,  340,  340,  340,  340,
2709       346,  346,  346,  346,  346,  346,  346,  346,  346,  352,
2710       352,  352,  352,  352,  352,  352,  352,  352,  358,  358,
2711       358,  358,  358,  358,  358,  358,  358,  363,  363,  363,
2712       363,  363,  363,  363,  363,  363,  382,  382,  382,  382,
2713
2714       382,  382,  382,  382,  382,  389,  389,  389,  389,  389,
2715       389,  389,  389,  389,  397,  397,  397,  397,  397,  397,
2716       397,  397,  397,  402,  402,  402,  402,  402,  402,  402,
2717       402,  402,  408,  408,  408,  408,  408,  408,  408,  408,
2718       408,  413,  413,  413,  413,  413,  413,  413,  413,  413,
2719       419,  419,  419,  419,  419,  419,  419,  419,  419,  427,
2720       427,  427,  427,  427,  427,  427,  427,  427,  435,  435,
2721       435,  435,  435,  435,  435,  435,  435,  442,  442,  442,
2722       442,  442,  442,  442,  442,  442,  449,  449,  449,  449,
2723       449,  449,  449,  449,  449,  453,  453,  453,  453,  453,
2724
2725       453,  453,  453,  453,  459,  459,  459,  459,  459,  459,
2726       459,  459,  459,  465,  465,  465,  465,  465,  465,  465,
2727       465,  465,  483,  483,  483,  483,  483,  483,  483,  483,
2728       483,  490,  490,  490,  490,  490,  490,  490,  490,  490,
2729       499,  499,  499,  499,  499,  499,  499,  499,  499,  505,
2730       505,  505,  505,  505,  505,  505,  505,  505,  515,  515,
2731       515,  515,  515,  515,  515,  515,  515,  521,  521,  521,
2732       521,  521,  521,  521,  521,  521,  526,  526,  526,  526,
2733       526,  526,  526,  526,  526,  532,  532,  532,  532,  532,
2734       532,  532,  532,  532,  538,  538,  538,  538,  538,  538,
2735
2736       538,  538,  538,  544,  544,  544,  544,  544,  544,  544,
2737       544,  544,  551,  551,  551,  551,  551,  551,  551,  551,
2738       551,  558,  558,  558,  558,  558,  558,  558,  558,  558,
2739       563,  563,  563,  563,  563,  563,  563,  563,  563,  571,
2740       571,  571,  571,  571,  571,  571,  571,  571,  577,  577,
2741       577,  577,  577,  577,  577,  577,  577,  584,  584,  584,
2742       584,  584,  584,  584,  584,  584,  589,  589,  589,  589,
2743       589,  589,  589,  589,  589,  595,  595,  595,  595,  595,
2744       595,  595,  595,  595,  600,  600,  600,  600,  600,  600,
2745       600,  600,  600,  607,  607,  607,  607,  607,  607,  607,
2746
2747       607,  607,  613,  613,  613,  613,  613,  613,  613,  613,
2748       613,  620,  620,  620,  620,  620,  620,  620,  620,  620,
2749       628,  628,  628,  628,  628,  628,  628,  628,  628,  636,
2750       636,  636,  636,  636,  636,  636,  636,  636,  640,  640,
2751       640,  640,  640,  640,  640,  640,  640,  646,  646,  646,
2752       646,  646,  646,  646,  646,  646,  650,  650,  650,  650,
2753       650,  650,  650,  650,  650,  657,  657,  657,  657,  657,
2754       657,  657,  657,  657,  662,  662,  662,  662,  662,  662,
2755       662,  662,  662,  668,  668,  668,  668,  668,  668,  668,
2756       668,  668,  673,  673,  673,  673,  673,  673,  673,  673,
2757
2758       673,  693,  693,  693,  803,  802,  801,  693,  720,  720,
2759       720,  799,  798,  796,  720,  724,  724,  724,  793,  792,
2760       791,  724,  732,  732,  732,  789,  787,  786,  732,  743,
2761       743,  743,  784,  782,  781,  743,  749,  749,  749,  779,
2762       776,  775,  749,  772,  772,  772,  774,  773,  771,  772,
2763       780,  780,  780, 3468,  718,  751,  780,  785,  785,  785,
2764       750,  748,  746,  785,  790,  790,  790,  745,  744,  742,
2765       790,  800,  800,  800,  738,  734,  733,  800,  807,  807,
2766       807,  731,  730,  727,  807,  811,  811,  811,  726,  725,
2767       723,  811,  817,  817,  817,  722,  721,  719,  817,  836,
2768
2769       836,  836,  714, 3468,  694,  836,  846,  846,  846,  692,
2770       690,  684,  846,  856,  856,  856,  683,  684,  683,  856,
2771       861,  861,  861,  682,  681, 3468,  861,  867,  867,  867,
2772      3468, 3468, 3468,  867,  875,  875,  875, 3468, 3468, 3468,
2773       875,  882,  882,  882, 3468, 3468, 3468,  882,  889,  889,
2774       889, 3468, 3468, 3468,  889,  894,  894,  894, 3468, 3468,
2775      3468,  894,  899,  899,  899, 3468, 3468, 3468,  899,  905,
2776       905,  905, 3468, 3468, 3468,  905,  914,  914,  914, 3468,
2777      3468, 3468,  914,  918,  918,  918, 3468, 3468, 3468,  918,
2778       922,  922,  922, 3468, 3468, 3468,  922,  927,  927,  927,
2779
2780      3468, 3468, 3468,  927,  931,  931,  931,  931,  931,  931,
2781       931, 3468,  931,  693,  693,  693, 3468, 3468, 3468,  693,
2782       946, 3468, 3468, 3468,  946,  720,  720,  720, 3468, 3468,
2783      3468,  720,  978, 3468, 3468, 3468,  978,  724,  724,  724,
2784      3468, 3468, 3468,  724,  985, 3468, 3468, 3468,  985,  732,
2785       732,  732, 3468, 3468, 3468,  732,  997, 3468, 3468, 3468,
2786       997,  743,  743,  743, 3468, 3468, 3468,  743, 1002, 3468,
2787      3468, 3468, 1002,  749,  749,  749, 3468, 3468, 3468,  749,
2788      1007, 3468, 3468, 3468, 1007,  772,  772,  772, 3468, 3468,
2789      3468,  772, 1028, 3468, 3468, 3468, 1028,  780,  780,  780,
2790
2791      3468, 3468, 3468,  780, 1033, 3468, 3468, 3468, 1033,  785,
2792       785,  785, 3468, 3468, 3468,  785, 1037, 3468, 3468, 3468,
2793      1037,  790,  790,  790, 3468, 3468, 3468,  790, 1047, 3468,
2794      3468, 3468, 1047,  800,  800,  800, 3468, 3468, 3468,  800,
2795      1056, 3468, 3468, 3468, 1056,  807,  807,  807, 3468, 3468,
2796      3468,  807, 1059, 3468, 3468, 3468, 1059,  811,  811,  811,
2797      3468, 3468, 3468,  811, 1066, 3468, 3468, 3468, 1066,  817,
2798       817,  817, 3468, 3468, 3468,  817, 1086, 3468, 3468, 3468,
2799      1086,  836,  836,  836, 3468, 3468, 3468,  836, 1097, 3468,
2800      3468, 3468, 1097,  846,  846,  846, 3468, 3468, 3468,  846,
2801
2802      1107, 3468, 3468, 3468, 1107,  856,  856,  856, 3468, 3468,
2803      3468,  856, 1112, 3468, 3468, 3468, 1112,  861,  861,  861,
2804      3468, 3468, 3468,  861, 1118, 3468, 3468, 3468, 1118,  867,
2805       867,  867, 3468, 3468, 3468,  867, 1126, 3468, 3468, 3468,
2806      1126,  875,  875,  875, 3468, 3468, 3468,  875, 1131, 3468,
2807      3468, 3468, 1131,  882,  882,  882, 3468, 3468, 3468,  882,
2808      1138, 3468, 3468, 3468, 1138,  889,  889,  889, 3468, 3468,
2809      3468,  889, 1143, 3468, 3468, 3468, 1143,  894,  894,  894,
2810      3468, 3468, 3468,  894, 1147, 3468, 3468, 3468, 1147,  899,
2811       899,  899, 3468, 3468, 3468,  899, 1152, 3468, 3468, 3468,
2812
2813      1152,  905,  905,  905, 3468, 3468, 3468,  905, 1159, 3468,
2814      3468, 3468, 1159,  914,  914,  914, 3468, 3468, 3468,  914,
2815      1163, 3468, 3468, 3468, 1163,  918,  918,  918, 3468, 3468,
2816      3468,  918, 1167, 3468, 3468, 3468, 1167,  922,  922,  922,
2817      3468, 3468, 3468,  922, 1172, 3468, 3468, 3468, 1172,  927,
2818       927,  927, 3468, 3468, 3468,  927, 1177, 3468, 3468, 3468,
2819      1177, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179,
2820      1185, 3468, 3468, 3468, 3468, 1185,  693,  693,  693, 3468,
2821      3468, 3468,  693, 1194, 1194, 1194, 1194, 3468, 3468, 1194,
2822      1194,  720,  720,  720, 3468, 3468, 3468,  720, 1230, 1230,
2823
2824      1230, 1230, 3468, 3468, 1230, 1230,  724,  724,  724, 3468,
2825      3468, 3468,  724, 1240, 1240, 1240, 1240, 3468, 3468, 1240,
2826      1240,  732,  732,  732, 3468, 3468, 3468,  732, 1256, 1256,
2827      1256, 1256, 3468, 3468, 1256, 1256,  743,  743,  743, 3468,
2828      3468, 3468,  743, 1263, 1263, 1263, 1263, 3468, 3468, 1263,
2829      1263,  749,  749,  749, 3468, 3468, 3468,  749, 1271, 1271,
2830      1271, 1271, 3468, 3468, 1271, 1271,  772,  772,  772, 3468,
2831      3468, 3468,  772, 1294, 1294, 1294, 1294, 3468, 3468, 1294,
2832      1294,  780,  780,  780, 3468, 3468, 3468,  780, 1301, 1301,
2833      1301, 1301, 3468, 3468, 1301, 1301,  785,  785,  785, 3468,
2834
2835      3468, 3468,  785, 1307, 1307, 1307, 1307, 3468, 3468, 1307,
2836      1307,  790,  790,  790, 3468, 3468, 3468,  790, 1320, 1320,
2837      1320, 1320, 3468, 3468, 1320, 1320,  800,  800,  800, 3468,
2838      3468, 3468,  800, 1332, 1332, 1332, 1332, 3468, 3468, 1332,
2839      1332,  807,  807,  807, 3468, 3468, 3468,  807, 1337, 1337,
2840      1337, 1337, 3468, 3468, 1337, 1337,  811,  811,  811, 3468,
2841      3468, 3468,  811, 1348, 1348, 1348, 1348, 3468, 3468, 1348,
2842      1348,  817,  817,  817, 3468, 3468, 3468,  817, 1375, 1375,
2843      1375, 1375, 3468, 3468, 1375, 1375,  836,  836,  836,  836,
2844      3468,  836, 3468,  836, 1391, 1391, 1391, 1391, 3468, 3468,
2845
2846      1391, 1391,  846,  846,  846, 3468, 3468, 3468,  846, 1406,
2847      1406, 1406, 1406, 3468, 3468, 1406, 1406,  856,  856,  856,
2848      3468, 3468, 3468,  856, 1414, 1414, 1414, 1414, 3468, 3468,
2849      1414, 1414,  861,  861,  861, 3468, 3468, 3468,  861, 1423,
2850      1423, 1423, 1423, 3468, 3468, 1423, 1423,  867,  867,  867,
2851      3468, 3468, 3468,  867, 1434, 1434, 1434, 1434, 3468, 3468,
2852      1434, 1434,  875,  875,  875,  875, 3468,  875, 3468,  875,
2853      1443, 1443, 1443, 1443, 3468, 3468, 1443, 1443,  882,  882,
2854       882,  882, 3468,  882, 3468,  882, 1455, 1455, 1455, 1455,
2855      3468, 3468, 1455, 1455,  889,  889,  889, 3468, 3468, 3468,
2856
2857       889, 1463, 1463, 1463, 1463, 3468, 3468, 1463, 1463,  894,
2858       894,  894,  894, 3468,  894, 3468,  894, 1471, 1471, 1471,
2859      1471, 3468, 3468, 1471, 1471,  899,  899,  899,  899, 3468,
2860       899, 3468,  899, 1481, 1481, 1481, 1481, 3468, 3468, 1481,
2861      1481,  905,  905,  905, 3468, 3468, 3468,  905, 1490, 1490,
2862      1490, 1490, 3468, 3468, 1490, 1490,  914,  914,  914, 3468,
2863      3468, 3468,  914, 1496, 1496, 1496, 1496, 3468, 3468, 1496,
2864      1496, 1503, 1503, 1503, 1503, 3468, 3468, 1503, 1503,  922,
2865       922,  922, 3468, 3468, 3468,  922, 1511, 1511, 1511, 1511,
2866      3468, 3468, 1511, 1511,  927,  927,  927, 3468, 3468, 3468,
2867
2868       927, 1519, 1519, 1519, 1519, 3468, 3468, 1519, 1519, 1179,
2869      1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1185, 3468,
2870      1185, 3468, 3468, 1185,  693,  693,  693, 3468, 3468, 3468,
2871       693, 1194, 1194, 1194, 1194, 3468, 3468, 1194, 1194,  720,
2872       720,  720,  720, 3468,  720, 3468,  720, 1230, 1230, 1230,
2873      1230, 3468, 3468, 1230, 1230,  724,  724,  724,  724, 3468,
2874       724, 3468,  724, 1240, 1240, 1240, 1240, 3468, 3468, 1240,
2875      1240,  732,  732,  732, 3468, 3468, 3468,  732, 1256, 1256,
2876      1256, 1256, 3468, 3468, 1256, 1256,  743,  743,  743, 3468,
2877      3468, 3468,  743, 1263, 1263, 1263, 1263, 3468, 3468, 1263,
2878
2879      1263,  749,  749,  749, 3468, 3468, 3468,  749, 1271, 1271,
2880      1271, 1271, 3468, 3468, 1271, 1271,  772,  772,  772, 3468,
2881      3468, 3468,  772, 1294, 1294, 1294, 1294, 3468, 3468, 1294,
2882      1294,  780,  780,  780,  780, 3468,  780, 3468,  780, 1301,
2883      1301, 1301, 1301, 3468, 3468, 1301, 1301,  785,  785,  785,
2884       785, 3468,  785, 3468,  785, 1307, 1307, 1307, 1307, 3468,
2885      3468, 1307, 1307,  790,  790,  790, 3468, 3468, 3468,  790,
2886      1320, 1320, 1320, 1320, 3468, 3468, 1320, 1320,  800,  800,
2887       800, 3468, 3468, 3468,  800, 1332, 1332, 1332, 1332, 3468,
2888      3468, 1332, 1332,  807,  807,  807,  807, 3468,  807, 3468,
2889
2890       807, 1337, 1337, 1337, 1337, 3468, 3468, 1337, 1337,  811,
2891       811,  811,  811, 3468,  811, 3468,  811, 1348, 1348, 1348,
2892      1348, 3468, 3468, 1348, 1348,  817,  817,  817, 3468, 3468,
2893      3468,  817, 1375, 1375, 1375, 1375, 3468, 3468, 1375, 1375,
2894       836,  836,  836, 3468, 3468, 3468,  836, 1391, 1391, 1391,
2895      1391, 3468, 3468, 1391, 1391,  846,  846,  846, 3468, 3468,
2896      3468,  846, 1406, 1406, 1406, 1406, 3468, 3468, 1406, 1406,
2897       856,  856,  856, 3468, 3468, 3468,  856, 1414, 1414, 1414,
2898      1414, 3468, 3468, 1414, 1414,  861,  861,  861, 3468, 3468,
2899      3468,  861, 1423, 1423, 1423, 1423, 3468, 3468, 1423, 1423,
2900
2901       867,  867,  867, 3468, 3468, 3468,  867, 1434, 1434, 1434,
2902      1434, 3468, 3468, 1434, 1434,  875,  875,  875, 3468, 3468,
2903      3468,  875, 1443, 1443, 1443, 1443, 3468, 3468, 1443, 1443,
2904       882,  882,  882, 3468, 3468, 3468,  882, 1455, 1455, 1455,
2905      1455, 3468, 3468, 1455, 1455,  889,  889,  889, 3468, 3468,
2906      3468,  889, 1463, 1463, 1463, 1463, 3468, 3468, 1463, 1463,
2907      1471, 1471, 1471, 1471, 3468, 3468, 1471, 1471,  899,  899,
2908       899, 3468, 3468, 3468,  899, 1481, 1481, 1481, 1481, 3468,
2909      3468, 1481, 1481,  905,  905,  905, 3468, 3468, 3468,  905,
2910      1490, 1490, 1490, 1490, 3468, 3468, 1490, 1490,  914,  914,
2911
2912       914, 3468, 3468, 3468,  914, 1496, 1496, 1496, 1496, 3468,
2913      3468, 1496, 1496, 1503, 1503, 1503, 1503, 3468, 3468, 1503,
2914      1503,  922,  922,  922, 3468, 3468, 3468,  922, 1511, 1511,
2915      1511, 1511, 3468, 3468, 1511, 1511,  927,  927,  927, 3468,
2916      3468, 3468,  927, 1519, 1519, 1519, 1519, 3468, 3468, 1519,
2917      1519, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179,
2918      1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740,  693,
2919       693,  693, 3468, 3468, 3468,  693, 1194, 1194, 1194, 1194,
2920      3468, 3468, 1194, 1194, 1230, 1230, 1230, 1230, 3468, 3468,
2921      1230, 1230,  724,  724,  724, 3468, 3468, 3468,  724, 1240,
2922
2923      1240, 1240, 1240, 3468, 3468, 1240, 1240,  732,  732,  732,
2924      3468, 3468, 3468,  732, 1256, 1256, 1256, 1256, 3468, 3468,
2925      1256, 1256,  743,  743,  743, 3468, 3468, 3468,  743, 1263,
2926      1263, 1263, 1263, 3468, 3468, 1263, 1263,  749,  749,  749,
2927      3468, 3468, 3468,  749,  772,  772,  772, 3468, 3468, 3468,
2928       772, 1294, 1294, 1294, 1294, 3468, 3468, 1294, 1294,  780,
2929       780,  780, 3468, 3468, 3468,  780, 1301, 1301, 1301, 1301,
2930      3468, 3468, 1301, 1301,  785,  785,  785, 3468, 3468, 3468,
2931       785, 1307, 1307, 1307, 1307, 3468, 3468, 1307, 1307,  790,
2932       790,  790, 3468, 3468, 3468,  790, 1320, 1320, 1320, 1320,
2933
2934      3468, 3468, 1320, 1320,  800,  800,  800, 3468, 3468, 3468,
2935       800, 1332, 1332, 1332, 1332, 3468, 3468, 1332, 1332, 1337,
2936      1337, 1337, 1337, 3468, 3468, 1337, 1337, 1348, 1348, 1348,
2937      1348, 3468, 3468, 1348, 1348,  817,  817,  817, 3468, 3468,
2938      3468,  817, 1375, 1375, 1375, 1375, 3468, 3468, 1375, 1375,
2939       836,  836,  836,  836, 3468,  836, 3468,  836, 1391, 1391,
2940      1391, 1391, 3468, 3468, 1391, 1391,  846,  846,  846, 3468,
2941      3468, 3468,  846, 1406, 1406, 1406, 1406, 3468, 3468, 1406,
2942      1406,  856,  856,  856, 3468, 3468, 3468,  856, 1414, 1414,
2943      1414, 1414, 3468, 3468, 1414, 1414,  861,  861,  861, 3468,
2944
2945      3468, 3468,  861, 1423, 1423, 1423, 1423, 3468, 3468, 1423,
2946      1423,  867,  867,  867, 3468, 3468, 3468,  867, 1434, 1434,
2947      1434, 1434, 3468, 3468, 1434, 1434,  875,  875,  875, 3468,
2948      3468, 3468,  875, 1443, 1443, 1443, 1443, 3468, 3468, 1443,
2949      1443,  882,  882,  882, 3468, 3468, 3468,  882, 1455, 1455,
2950      1455, 1455, 3468, 3468, 1455, 1455,  889,  889,  889, 3468,
2951      3468, 3468,  889, 1463, 1463, 1463, 1463, 3468, 3468, 1463,
2952      1463, 1471, 1471, 1471, 1471, 3468, 3468, 1471, 1471,  899,
2953       899,  899, 3468, 3468, 3468,  899, 1481, 1481, 1481, 1481,
2954      3468, 3468, 1481, 1481,  905,  905,  905, 3468, 3468, 3468,
2955
2956       905, 1490, 1490, 1490, 1490, 3468, 3468, 1490, 1490,  914,
2957       914,  914,  914, 3468,  914, 3468,  914, 1496, 1496, 1496,
2958      1496, 3468, 3468, 1496, 1496, 1503, 1503, 1503, 1503, 3468,
2959      3468, 1503, 1503,  922,  922,  922,  922, 3468,  922, 3468,
2960       922, 1511, 1511, 1511, 1511, 3468, 3468, 1511, 1511,  927,
2961       927,  927,  927, 3468,  927, 3468,  927, 1519, 1519, 1519,
2962      1519, 3468, 3468, 1519, 1519, 1179, 1179, 1179, 1179, 1179,
2963      1179, 1179, 1179, 1179, 1740, 1740, 1740, 1740, 1740, 1740,
2964      1740, 1740, 1740,  693,  693,  693, 3468, 3468, 3468,  693,
2965      1194, 1194, 1194, 1194, 3468, 3468, 1194, 1194, 1230, 1230,
2966
2967      1230, 1230, 3468, 3468, 1230, 1230,  724,  724,  724, 3468,
2968      3468, 3468,  724, 1240, 1240, 1240, 1240, 3468, 3468, 1240,
2969      1240,  732,  732,  732, 3468, 3468, 3468,  732, 1256, 1256,
2970      1256, 1256, 3468, 3468, 1256, 1256,  743,  743,  743, 3468,
2971      3468, 3468,  743, 1263, 1263, 1263, 1263, 3468, 3468, 1263,
2972      1263,  749,  749,  749, 3468, 3468, 3468,  749,  772,  772,
2973       772, 3468, 3468, 3468,  772, 1294, 1294, 1294, 1294, 3468,
2974      3468, 1294, 1294,  780,  780,  780, 3468, 3468, 3468,  780,
2975      1301, 1301, 1301, 1301, 3468, 3468, 1301, 1301,  785,  785,
2976       785,  785, 3468,  785, 3468,  785, 1307, 1307, 1307, 1307,
2977
2978      3468, 3468, 1307, 1307,  790,  790,  790, 3468, 3468, 3468,
2979       790, 1320, 1320, 1320, 1320, 3468, 3468, 1320, 1320,  800,
2980       800,  800,  800, 3468,  800, 3468,  800, 1332, 1332, 1332,
2981      1332, 3468, 3468, 1332, 1332, 1348, 1348, 1348, 1348, 3468,
2982      3468, 1348, 1348,  817,  817,  817, 3468, 3468, 3468,  817,
2983      1375, 1375, 1375, 1375, 3468, 3468, 1375, 1375,  836,  836,
2984       836,  836, 3468,  836, 3468,  836, 1391, 1391, 1391, 1391,
2985      3468, 3468, 1391, 1391,  846,  846,  846, 3468, 3468, 3468,
2986       846, 1406, 1406, 1406, 1406, 3468, 3468, 1406, 1406,  856,
2987       856,  856, 3468, 3468, 3468,  856, 1414, 1414, 1414, 1414,
2988
2989      3468, 3468, 1414, 1414,  861,  861,  861, 3468, 3468, 3468,
2990       861, 1423, 1423, 1423, 1423, 3468, 3468, 1423, 1423,  867,
2991       867,  867, 3468, 3468, 3468,  867, 1434, 1434, 1434, 1434,
2992      3468, 3468, 1434, 1434,  875,  875,  875, 3468, 3468, 3468,
2993       875, 1443, 1443, 1443, 1443, 3468, 3468, 1443, 1443,  882,
2994       882,  882,  882, 3468,  882, 3468,  882, 1455, 1455, 1455,
2995      1455, 3468, 3468, 1455, 1455,  889,  889,  889, 3468, 3468,
2996      3468,  889, 1463, 1463, 1463, 1463, 3468, 3468, 1463, 1463,
2997      1471, 1471, 1471, 1471, 3468, 3468, 1471, 1471,  899,  899,
2998       899,  899, 3468,  899, 3468,  899, 1481, 1481, 1481, 1481,
2999
3000      3468, 3468, 1481, 1481,  905,  905,  905, 3468, 3468, 3468,
3001       905, 1490, 1490, 1490, 1490, 3468, 3468, 1490, 1490, 1496,
3002      1496, 1496, 1496, 3468, 3468, 1496, 1496, 1503, 1503, 1503,
3003      1503, 3468, 3468, 1503, 1503, 1511, 1511, 1511, 1511, 3468,
3004      3468, 1511, 1511, 1519, 1519, 1519, 1519, 3468, 3468, 1519,
3005      1519, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179,
3006      1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740,  693,
3007       693,  693,  693, 3468,  693, 3468,  693, 1194, 1194, 1194,
3008      1194, 3468, 3468, 1194, 1194, 1230, 1230, 1230, 1230, 3468,
3009      3468, 1230, 1230,  724,  724,  724, 3468, 3468, 3468,  724,
3010
3011      1240, 1240, 1240, 1240, 3468, 3468, 1240, 1240,  732,  732,
3012       732, 3468, 3468, 3468,  732, 1256, 1256, 1256, 1256, 3468,
3013      3468, 1256, 1256,  743,  743,  743,  743, 3468,  743, 3468,
3014       743, 1263, 1263, 1263, 1263, 3468, 3468, 1263, 1263,  749,
3015       749,  749,  749, 3468,  749, 3468,  749,  772,  772,  772,
3016       772, 3468,  772, 3468,  772, 1294, 1294, 1294, 1294, 3468,
3017      3468, 1294, 1294,  780,  780,  780, 3468, 3468, 3468,  780,
3018      1301, 1301, 1301, 1301, 3468, 3468, 1301, 1301, 1307, 1307,
3019      1307, 1307, 3468, 3468, 1307, 1307,  790,  790,  790, 3468,
3020      3468, 3468,  790,  800,  800,  800,  800, 3468,  800, 3468,
3021
3022       800, 1332, 1332, 1332, 1332, 3468, 3468, 1332, 1332, 1348,
3023      1348, 1348, 1348, 3468, 3468, 1348, 1348,  817,  817,  817,
3024      3468, 3468, 3468,  817, 1375, 1375, 1375, 1375, 3468, 3468,
3025      1375, 1375,  836,  836,  836,  836, 3468,  836, 3468,  836,
3026      1391, 1391, 1391, 1391, 3468, 3468, 1391, 1391,  846,  846,
3027       846, 3468, 3468, 3468,  846,  856,  856,  856, 3468, 3468,
3028      3468,  856, 1414, 1414, 1414, 1414, 3468, 3468, 1414, 1414,
3029       861,  861,  861, 3468, 3468, 3468,  861, 1423, 1423, 1423,
3030      1423, 3468, 3468, 1423, 1423,  867,  867,  867, 3468, 3468,
3031      3468,  867,  875,  875,  875, 3468, 3468, 3468,  875, 1443,
3032
3033      1443, 1443, 1443, 3468, 3468, 1443, 1443,  882,  882,  882,
3034      3468, 3468, 3468,  882, 1455, 1455, 1455, 1455, 3468, 3468,
3035      1455, 1455,  889,  889,  889, 3468, 3468, 3468,  889, 1463,
3036      1463, 1463, 1463, 3468, 3468, 1463, 1463, 1471, 1471, 1471,
3037      1471, 3468, 3468, 1471, 1471, 1481, 1481, 1481, 1481, 3468,
3038      3468, 1481, 1481,  905,  905,  905, 3468, 3468, 3468,  905,
3039      1490, 1490, 1490, 1490, 3468, 3468, 1490, 1490, 1496, 1496,
3040      1496, 1496, 3468, 3468, 1496, 1496, 1503, 1503, 1503, 1503,
3041      3468, 3468, 1503, 1503, 1519, 1519, 1519, 1519, 3468, 3468,
3042      1519, 1519, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179,
3043
3044      1179, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740,
3045      1194, 1194, 1194, 1194, 3468, 3468, 1194, 1194, 1230, 1230,
3046      1230, 1230, 3468, 3468, 1230, 1230,  724,  724,  724, 3468,
3047      3468, 3468,  724,  732,  732,  732, 3468, 3468, 3468,  732,
3048      1256, 1256, 1256, 1256, 3468, 3468, 1256, 1256, 1263, 1263,
3049      1263, 1263, 3468, 3468, 1263, 1263,  772,  772,  772, 3468,
3050      3468, 3468,  772, 1294, 1294, 1294, 1294, 3468, 3468, 1294,
3051      1294,  780,  780,  780, 3468, 3468, 3468,  780, 1307, 1307,
3052      1307, 1307, 3468, 3468, 1307, 1307,  790,  790,  790, 3468,
3053      3468, 3468,  790,  800,  800,  800, 3468, 3468, 3468,  800,
3054
3055      1332, 1332, 1332, 1332, 3468, 3468, 1332, 1332, 1348, 1348,
3056      1348, 1348, 3468, 3468, 1348, 1348,  817,  817,  817, 3468,
3057      3468, 3468,  817, 1375, 1375, 1375, 1375, 3468, 3468, 1375,
3058      1375, 1391, 1391, 1391, 1391, 3468, 3468, 1391, 1391,  846,
3059       846,  846, 3468, 3468, 3468,  846,  856,  856,  856, 3468,
3060      3468, 3468,  856, 1414, 1414, 1414, 1414, 3468, 3468, 1414,
3061      1414,  861,  861,  861, 3468, 3468, 3468,  861, 1423, 1423,
3062      1423, 1423, 3468, 3468, 1423, 1423,  867,  867,  867, 3468,
3063      3468, 3468,  867,  875,  875,  875, 3468, 3468, 3468,  875,
3064       882,  882,  882, 3468, 3468, 3468,  882, 1455, 1455, 1455,
3065
3066      1455, 3468, 3468, 1455, 1455,  889,  889,  889, 3468, 3468,
3067      3468,  889, 1463, 1463, 1463, 1463, 3468, 3468, 1463, 1463,
3068      1471, 1471, 1471, 1471, 3468, 3468, 1471, 1471, 1481, 1481,
3069      1481, 1481, 3468, 3468, 1481, 1481,  905,  905,  905,  905,
3070      3468,  905, 3468,  905, 1490, 1490, 1490, 1490, 3468, 3468,
3071      1490, 1490, 1496, 1496, 1496, 1496, 3468, 3468, 1496, 1496,
3072      1503, 1503, 1503, 1503, 3468, 3468, 1503, 1503, 1519, 1519,
3073      1519, 1519, 3468, 3468, 1519, 1519, 1179, 1179, 1179, 1179,
3074      1179, 1179, 1179, 1179, 1179, 1740, 1740, 1740, 1740, 1740,
3075      1740, 1740, 1740, 1740, 1194, 1194, 1194, 1194, 3468, 3468,
3076
3077      1194, 1194, 1230, 1230, 1230, 1230, 3468, 3468, 1230, 1230,
3078       724,  724,  724, 3468, 3468, 3468,  724,  732,  732,  732,
3079       732, 3468,  732, 3468,  732, 1263, 1263, 1263, 1263, 3468,
3080      3468, 1263, 1263,  772,  772,  772, 3468, 3468, 3468,  772,
3081      1294, 1294, 1294, 1294, 3468, 3468, 1294, 1294,  780,  780,
3082       780,  780, 3468,  780, 3468,  780, 1307, 1307, 1307, 1307,
3083      3468, 3468, 1307, 1307,  790,  790,  790, 3468, 3468, 3468,
3084       790,  800,  800,  800, 3468, 3468, 3468,  800, 1332, 1332,
3085      1332, 1332, 3468, 3468, 1332, 1332, 1348, 1348, 1348, 1348,
3086      3468, 3468, 1348, 1348,  817,  817,  817, 3468, 3468, 3468,
3087
3088       817, 1375, 1375, 1375, 1375, 3468, 3468, 1375, 1375, 1391,
3089      1391, 1391, 1391, 3468, 3468, 1391, 1391,  846,  846,  846,
3090      3468, 3468, 3468,  846,  856,  856,  856, 3468, 3468, 3468,
3091       856,  861,  861,  861,  861, 3468,  861, 3468,  861, 1423,
3092      1423, 1423, 1423, 3468, 3468, 1423, 1423,  867,  867,  867,
3093       867, 3468,  867, 3468,  867,  875,  875,  875, 3468, 3468,
3094      3468,  875,  882,  882,  882, 3468, 3468, 3468,  882, 1455,
3095      1455, 1455, 1455, 3468, 3468, 1455, 1455,  889,  889,  889,
3096       889, 3468,  889, 3468,  889, 1463, 1463, 1463, 1463, 3468,
3097      3468, 1463, 1463, 1471, 1471, 1471, 1471, 3468, 3468, 1471,
3098
3099      1471, 1481, 1481, 1481, 1481, 3468, 3468, 1481, 1481,  905,
3100       905,  905,  905, 3468,  905, 3468,  905, 1490, 1490, 1490,
3101      1490, 3468, 3468, 1490, 1490, 1496, 1496, 1496, 1496, 3468,
3102      3468, 1496, 1496, 1519, 1519, 1519, 1519, 3468, 3468, 1519,
3103      1519, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179,
3104      1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1194,
3105      1194, 1194, 1194, 3468, 3468, 1194, 1194,  724,  724,  724,
3106      3468, 3468, 3468,  724,  732,  732,  732, 3468, 3468, 3468,
3107       732, 1263, 1263, 1263, 1263, 3468, 3468, 1263, 1263,  772,
3108       772,  772, 3468, 3468, 3468,  772, 1294, 1294, 1294, 1294,
3109
3110      3468, 3468, 1294, 1294, 1307, 1307, 1307, 1307, 3468, 3468,
3111      1307, 1307,  790,  790,  790, 3468, 3468, 3468,  790,  800,
3112       800,  800, 3468, 3468, 3468,  800, 1348, 1348, 1348, 1348,
3113      3468, 3468, 1348, 1348,  817,  817,  817, 3468, 3468, 3468,
3114       817,  846,  846,  846, 3468, 3468, 3468,  846,  856,  856,
3115       856, 3468, 3468, 3468,  856, 1423, 1423, 1423, 1423, 3468,
3116      3468, 1423, 1423,  867,  867,  867, 3468, 3468, 3468,  867,
3117       875,  875,  875, 3468, 3468, 3468,  875,  882,  882,  882,
3118      3468, 3468, 3468,  882, 3075, 3075, 3075, 3075, 3075, 3075,
3119      3075, 3075, 3075, 3076, 3076, 3076, 3076, 3076, 3076, 3076,
3120
3121      3076, 3076, 3135, 3135, 3135, 3135, 3135, 3135, 3135, 3135,
3122      3135, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138,
3123      3179, 3179, 3179, 3179, 3179, 3179, 3179, 3179, 3179, 3181,
3124      3181, 3181, 3181, 3181, 3181, 3181, 3181, 3181,  263, 3468,
3125      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
3126      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
3127      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
3128      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
3129      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
3130      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
3131
3132      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
3133      3468, 3468, 3468
3134     } ;
3135
3136 static yyconst flex_int16_t yy_chk[12714] =
3137     {   0,
3138         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
3139         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
3140         4,   10,    0,    5,    0,    9,    6,    0,   10,    7,
3141         8,    8,    8,  268,   11,   13,   13,   12,   14,   14,
3142        13,   13,  317,   14,   14,  269,    8,   17,   17,  268,
3143        13,   15,   15,   14,   15,  272,   15,   16,   16,  371,
3144        16,  269,   16,   18,   18,    0,   15,   19,   19,   19,
3145       550,  272,   16,   20,   20,   20,   23,   23,   23,   24,
3146        24,   24,  550,   19,   25,   25,   25,  371, 1540,   20,
3147       378,   17,   23, 1100,  317,   24,  266,  266,  266, 1100,
3148
3149        25,  267,  267,  267,  271,  271,  271,   18,   21,   21,
3150        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
3151        21,   21,   21,  301,   21,   21,   21,   21,   21,   26,
3152        26,   26,   27,   27,   27,   28,   28,   28,  301,   29,
3153        29,   29,   30,   30,   30,   26,  378,  479,   27,  295,
3154       479,   28,  698,   21,   21,   29,  311,  290,   30,   31,
3155        31,   31,  292,  292,  292,  295,  299,  299,  299,  308,
3156       308,  308,  311,  290,  367,   31,  698,   21,   22,   22,
3157        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
3158        22,   22,   22, 1542,   22,   22,   22,   22,   22,   32,
3159
3160        32,   32,   33,   33,   33,   34,   34,   34,  282,   35,
3161        35,   35,   36,   36,   36,   32,  290,  370,   33,  496,
3162       754,   34,  496,   22,   22,   35,  367,  370,   36,   37,
3163        37,   37,   38,   38,   38,   39,   39,   39,   40,   40,
3164        40,   41,   41,   41,  754,   37,  562,   22,   38,  322,
3165       282,   39,  475,  562,   40,  370,  282,   41,   42,   42,
3166        42,  282,  315,  315,  315,  322,  282,  319,  319,  319,
3167       330,  330,  330,  475,   42,   43,   43,   43,   43,   43,
3168        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
3169       339,   43,   43,   43,   43,   43,   45,   45,   45,   46,
3170
3171        46,   46,   47,   47,   47,  339,   48,   48,   48,   49,
3172        49,   49,   45,  425,  567,   46, 1543,  425,   47,  337,
3173        43,   43,   48,  337,  391,   49,  303,  337,   43,   44,
3174        44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
3175        44,   44,   44,   44,  333,   44,   44,   44,   44,   44,
3176        50,   50,   50,   51,   51,   51,   52,   52,   52, 1544,
3177       333,  580,   55,   55,  576,  303,   50,   55,  304,   51,
3178       567,  576,   52,  391,   44,   44,  391,   55,  303,  393,
3179       303,  603,   44,   53,   53,   53,   53,   53,   53,   53,
3180        53,   53,   53,   53,   53,   53,   53,   53, 1546,   53,
3181
3182        53,   53,   53,   53, 1547,  347,   55,  304,   59,   59,
3183        59,   60,   60,   60,   63,   63,   63,  580,   56,   56,
3184       304,  347,  304,   56,   59,  327,  566,   60,   53,   53,
3185        63,  393,  327,   56,  566,  686,   53,  603,  686,   53,
3186       429,  327,  341,  341,  341, 1549,   53,   54,   54,   54,
3187        54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
3188        54,   54,   56,   54,   54,   54,   54,   54,   64,   64,
3189        64,   67,   67,   67,   68,   68,   68,  480,   69,   69,
3190        69,   70,   70,   70,   64,  359,  377,   67,  342,  429,
3191        68,  480,   54,   54,   69,  342, 1550,   70, 1551,  616,
3192
3193        54,  359,  377,   54,  342,  344,  344,  344,  431,  959,
3194        54,   57,   57,   57,   57,   57,   57,   57,   57,   57,
3195        57,   57,   57,   57,   57,   57,  959,   57,   57,   57,
3196        57,   57,   71,   71,   71,   72,   72,   72,   73,   73,
3197        73,  444,   74,   74,   74,   75,   75,   75,   71, 1552,
3198       383,   72,  354,  398,   73,  616,   57,   57,   74,  354,
3199       431,   75,  353,  353,  353,   57,  383,   57,  354,  398,
3200       392,   57,  356,  356,  356,  445,   57,   57,   58,   58,
3201        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
3202        58,   58,   58,  444,   58,   58,   58,   58,   58,   76,
3203
3204        76,   76,   77,   77,   77,   78,   78,   78,  631,   79,
3205        79,   79,   80,   80,   80,   76,  369, 1553,   77,  392,
3206       631,   78,  392,   58,   58,   79,  369,  445,   80,  364,
3207       364,  364,   58,  369,   58,  380,  380,  380,   58,  390,
3208       390,  390, 1554,   58,   58,   61,   61,   61,   61,   61,
3209        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
3210       375,   61,   61,   61,   61,   61,   81,   81,   81,   82,
3211        82,   82,   83,   83,   83,  728,   84,   84,   84,   85,
3212        85,   85,   81,  704, 1373,   82,  677,  704,   83,  375,
3213        61,   61,   84,  375,  375,   85, 1373,   61,  395,  395,
3214
3215       395,  677,  375,   61,  375,  403,  403,  403,  406,  406,
3216       406,  728,   61,   62,   62,   62,   62,   62,   62,   62,
3217        62,   62,   62,   62,   62,   62,   62,   62, 1555,   62,
3218        62,   62,   62,   62,   86,   86,   86,   87,   87,   87,
3219        88,   88,   88,  706,   89,   89,   89,   90,   90,   90,
3220        86,  409,  420,   87,  404,  763,   88,  706,   62,   62,
3221        89,  404,  415,   90, 1556,   62, 1557,  409,  420,  415,
3222       404,   62,  414,  414,  414,  417,  417,  417,  415,  763,
3223        62,   65,   65,   65,   65,   65,   65,   65,   65,   65,
3224        65,   65,   65,   65,   65,   65, 1559,   65,   65,   65,
3225
3226        65,   65,   91,   91,   91,   92,   92,   92,   93,   93,
3227        93, 1560,   94,   94,   94,   95,   95,   95,   91,  436,
3228       450,   92, 1566, 1567,   93,  485,   65,   65,   94,  460,
3229      1569,   95,  428,  428,  428,  436,  450,   65,  433,  433,
3230       433,  443,  443,  443,  486,  460,   65,   66,   66,   66,
3231        66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
3232        66,   66,  764,   66,   66,   66,   66,   66,   96,   96,
3233        96,   97,   97,   97,   98,   98,   98,  485,   99,   99,
3234        99,  100,  100,  100,   96,  472,  764,   97,  792,  765,
3235        98,  792,   66,   66,   99,  455,  486,  100,  101,  101,
3236
3237       101,  472,  455,   66,  102,  102,  102,  447,  447,  447,
3238       553,  455,   66,  765,  101,  454,  454,  454,  376, 1030,
3239       102,  103,  103,  103,  103,  103,  103,  103,  103,  103,
3240       103,  103,  103,  103,  103,  103, 1030,  103,  103,  103,
3241       103,  103,  105,  105,  105,  106,  106,  106,  107,  107,
3242       107,  778,  108,  108,  108,  778,  376,  491,  105,  798,
3243       710,  106,  553,  798,  107,  373,  103,  103,  108,  467,
3244       506,  103,  376,  491,  710,  373,  467,  103,  457,  457,
3245       457,  103,  466,  466,  466,  467,  506,  103,  104,  104,
3246       104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
3247
3248       104,  104,  104,  373,  104,  104,  104,  104,  104,  109,
3249       109,  109,  110,  110,  110,  111,  111,  111,  478,  112,
3250       112,  112,  469,  469,  469,  109,  478,  481,  110, 1578,
3251      1581,  111,  478,  104,  104,  112,  522,  533,  104,  481,
3252       481,  484,  484,  484,  104,  488,  488,  488,  104,  500,
3253       500,  500,  522,  533,  104,  113,  113,  113,  113,  113,
3254       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
3255       766,  113,  113,  113,  113,  113,  115,  115,  115,  116,
3256       116,  116,  119,  119,  119,  554,  120,  120,  120,  123,
3257       123,  123,  115, 1583,  766,  116,  501,  517,  119,  545,
3258
3259       113,  113,  120,  501,  517,  123,  503,  503,  503,  516,
3260       516,  516,  501,  517,  632,  545,  113,  519,  519,  519,
3261      1588,  113,  114,  114,  114,  114,  114,  114,  114,  114,
3262       114,  114,  114,  114,  114,  114,  114,  554,  114,  114,
3263       114,  114,  114,  124,  124,  124,  125,  125,  125,  126,
3264       126,  126,  652,  127,  127,  127,  128,  128,  128,  124,
3265      1182, 1591,  125,  528, 1182,  126,  632,  114,  114,  127,
3266       528,  559,  128,  527,  527,  527,  530,  530,  530,  528,
3267       539,  539,  539,  114,  542,  542,  542,  559,  114,  117,
3268       117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
3269
3270       117,  117,  117,  117,  652,  117,  117,  117,  117,  117,
3271       129,  129,  129,  130,  130,  130,  133,  133,  133,  759,
3272       134,  134,  134,  135,  135,  135,  129,  770, 1592,  130,
3273       540, 1593,  133,  759,  117,  117,  134,  540,  572,  135,
3274       552,  552,  552,  556,  556,  556,  540,  564,  564,  564,
3275       117,  770, 1598,  565,  572, 1049,  117,  118,  118,  118,
3276       118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
3277       118,  118, 1049,  118,  118,  118,  118,  118,  136,  136,
3278       136,  137,  137,  137,  138,  138,  138, 1599,  139,  139,
3279       139,  140,  140,  140,  136, 1600, 1601,  137, 1602, 1522,
3280
3281       138,  565,  118,  118,  139,  565,  585,  140,  569,  569,
3282       569,  578,  578,  578,  582,  582,  582, 1603,  118, 1522,
3283      1604,  579,  585, 1609,  118,  121,  121,  121,  121,  121,
3284       121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
3285      1612,  121,  121,  121,  121,  121,  143,  143,  143,  144,
3286       144,  144,  147,  147,  147,  653,  148,  148,  148,  590,
3287       590,  590,  143, 1616, 1618,  144,  596,  591,  147,  579,
3288       121,  121,  148,  121,  591,  121,  699,  579,  593,  593,
3289       593,  121,  596,  591,  601,  601,  601,  699,  121, 1619,
3290       699,  121,  122,  122,  122,  122,  122,  122,  122,  122,
3291
3292       122,  122,  122,  122,  122,  122,  122,  653,  122,  122,
3293       122,  122,  122,  151,  151,  151,  152,  152,  152,  153,
3294       153,  153, 1623,  154,  154,  154,  605,  605,  605,  151,
3295       608, 1626,  152, 1627, 1628,  153,  621,  122,  122,  154,
3296       122,  602,  122,  614,  614,  614,  608,  615,  122,  618,
3297       618,  618,  621, 1629, 1630,  122,  630, 1638,  122,  131,
3298       131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
3299       131,  131,  131,  131, 1640,  131,  131,  131,  131,  131,
3300       155,  155,  155,  156,  156,  156,  157,  157,  157,  602,
3301       158,  158,  158,  630, 1641,  615,  155,  602,  637,  156,
3302
3303      1214, 1647,  157,  615,  131,  131,  158,  131,  630,  131,
3304       629,  629,  629, 1214,  637,  131,  634,  634,  634,  641,
3305       641,  641,  644,  644,  644, 1648,  131,  132,  132,  132,
3306       132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
3307       132,  132, 1650,  132,  132,  132,  132,  132,  161,  161,
3308       161,  162,  162,  162,  165,  165,  165, 1651,  166,  166,
3309       166, 1652,  642,  647,  161, 1653, 1654,  162, 1655,  642,
3310       165,  658,  132,  132,  166,  132, 1656,  132,  642,  647,
3311       651,  651,  651,  132,  655,  655,  655,  658,  663,  663,
3312       663,  666,  666,  666,  132,  141,  141,  141,  141,  141,
3313
3314       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
3315      1657,  141,  141,  141,  141,  141,  169,  169,  169,  170,
3316       170,  170,  173,  173,  173,  767,  174,  174,  174,  177,
3317       177,  177,  169,  669,  933,  170,  664,  675,  173,  767,
3318       141,  141,  174,  664,  675,  177,  674,  674,  674,  669,
3319       933, 1667,  664,  675, 1669, 1670,  141,  142,  142,  142,
3320       142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
3321       142,  142, 1675,  142,  142,  142,  142,  142,  178,  178,
3322       178,  179,  179,  179,  180,  180,  180,  769,  181,  181,
3323       181,  182,  182,  182,  178, 1677, 1679,  179,  705, 1680,
3324
3325       180,  769,  142,  142,  181,  705, 1682,  182,  676,  676,
3326       676,  705,  685,  685,  685,  948,  948,  948,  142,  145,
3327       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3328       145,  145,  145,  145, 1683,  145,  145,  145,  145,  145,
3329       183,  183,  183,  184,  184,  184,  187,  187,  187,  709,
3330       188,  188,  188,  189,  189,  189,  183, 1684, 1693,  184,
3331       709,  714,  187,  709,  145,  145,  188,  712,  714,  189,
3332       145,  685,  716, 1699,  714,  145, 1700, 1704,  712,  948,
3333      1706,  712, 1718,  716, 1719, 1724,  716,  145,  146,  146,
3334       146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
3335
3336       146,  146,  146, 1727,  146,  146,  146,  146,  146,  190,
3337       190,  190,  191,  191,  191,  192,  192,  192, 1728,  193,
3338       193,  193,  194,  194,  194,  190, 1729, 1731,  191,  717,
3339       718,  192, 1226,  146,  146,  193,  717,  718,  194,  146,
3340       758,  761,  717,  718,  146, 1226, 1740,  758,  761, 1197,
3341      1197, 1197, 1743,  758,  761, 1746,  146,  149,  149,  149,
3342       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3343       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3344       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3345       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3346
3347       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3348       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3349       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3350       149,  159,  159,  159,  159,  159,  159,  159,  159,  159,
3351       159,  159,  159,  159,  159,  159, 1747,  159,  159,  159,
3352       159,  159,  197,  197,  197,  198,  198,  198,  199,  199,
3353       199,  768,  200,  200,  200,  201,  201,  201,  197, 1749,
3354      1739,  198,  768, 1750,  199,  768,  159,  159,  200, 1751,
3355       159,  201,  936,  936,  936, 1752,  936,  159, 1753, 1754,
3356       159,  970,  970,  970,  159, 1739,  159,  159,  160,  160,
3357
3358       160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
3359       160,  160,  160, 1755,  160,  160,  160,  160,  160,  202,
3360       202,  202,  203,  203,  203,  204,  204,  204, 1757,  207,
3361       207,  207,  208,  208,  208,  202, 1758, 1760,  203, 1761,
3362      1763,  204, 1069,  160,  160,  207, 1765,  160,  208,  982,
3363       982,  982, 1069,  982,  160,  970,  982,  160, 1766, 1069,
3364      1768,  160, 1770,  160,  160,  163,  163,  163,  163,  163,
3365       163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
3366      1772,  163,  163,  163,  163,  163,  211,  211,  211,  212,
3367       212,  212,  213,  213,  213, 1773,  214,  214,  214,  726,
3368
3369       726,  726,  211, 1774, 1280,  212, 1775, 1776,  213, 1778,
3370       163,  163,  214,  163,  163,  163,  726, 1280,  990,  990,
3371       990,  163,  990, 1787,  163,  990, 1788, 1790,  163, 1794,
3372      1798,  163,  164,  164,  164,  164,  164,  164,  164,  164,
3373       164,  164,  164,  164,  164,  164,  164, 1800,  164,  164,
3374       164,  164,  164,  215,  215,  215,  216,  216,  216,  217,
3375       217,  217, 1807,  218,  218,  218,  734,  734,  734,  215,
3376      1808, 1809,  216, 1810, 1812,  217, 1816,  164,  164,  218,
3377       164,  164,  164,  734, 1817, 1005, 1005, 1005,  164, 1005,
3378      1818,  164, 1005, 1821, 1828,  164, 1832, 1839,  164,  167,
3379
3380       167,  167,  167,  167,  167,  167,  167,  167,  167,  167,
3381       167,  167,  167,  167, 1840,  167,  167,  167,  167,  167,
3382       221,  221,  221,  222,  222,  222,  223,  223,  223, 1849,
3383       224,  224,  224,  750,  750,  750,  221, 1852, 1866,  222,
3384      1870, 1874,  223, 1875,  167,  167,  224, 1879, 1880,  167,
3385       750, 1205, 1205, 1205, 1881,  167,  168,  168,  168,  168,
3386       168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
3387       168, 1882,  168,  168,  168,  168,  168,  225,  225,  225,
3388       226,  226,  226,  227,  227,  227, 1884,  228,  228,  228,
3389       774,  774,  774,  225, 1885, 1893,  226, 1897, 1900,  227,
3390
3391      1902,  168,  168,  228, 1904, 1905,  168,  774, 1221, 1221,
3392      1221, 1907,  168,  171,  171,  171,  171,  171,  171,  171,
3393       171,  171,  171,  171,  171,  171,  171,  171, 1908,  171,
3394       171,  171,  171,  171,  231,  231,  231,  232,  232,  232,
3395       233,  233,  233, 1909,  234,  234,  234,  235,  235,  235,
3396       231, 1912, 1914,  232, 1916, 1921,  233, 1927,  171,  171,
3397       234, 1931,  171,  235, 1009, 1009, 1009, 1932, 1933,  171,
3398      1935, 1946,  171,  172,  172,  172,  172,  172,  172,  172,
3399       172,  172,  172,  172,  172,  172,  172,  172, 1946,  172,
3400       172,  172,  172,  172,  236,  236,  236,  237,  237,  237,
3401
3402       238,  238,  238, 1950,  241,  241,  241,  242,  242,  242,
3403       236, 1953, 1954,  237, 1955, 1948,  238, 1957,  172,  172,
3404       241, 1947,  172,  242, 1018, 1018, 1018, 1958, 1009,  172,
3405      1960, 1961,  172,  175,  175,  175,  175,  175,  175,  175,
3406       175,  175,  175,  175,  175,  175,  175,  175, 1948,  175,
3407       175,  175,  175,  175,  245,  245,  245,  246,  246,  246,
3408       247,  247,  247, 1947,  248,  248,  248,  249,  249,  249,
3409       245, 1956, 1962,  246, 1963, 1965,  247, 1966,  175,  175,
3410       248, 1967,  175,  249, 1277, 1277, 1277, 1956, 1018,  175,
3411      1971, 1973,  175, 1538, 1538, 1538, 1539, 1539, 1539,  175,
3412
3413       176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
3414       176,  176,  176,  176,  176, 1976,  176,  176,  176,  176,
3415       176,  250,  250,  250,  251,  251,  251,  252,  252,  252,
3416      1977,  255,  255,  255,  256,  256,  256,  250, 1978, 1979,
3417       251, 1981, 1539,  252,  368,  176,  176,  255, 1983,  176,
3418       256, 1025, 1025, 1025,  368, 1025,  176, 1984, 1025,  176,
3419      1541, 1541, 1541, 1545, 1545, 1545,  176,  185,  185,  185,
3420       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
3421       185,  185,  368,  185,  185,  185,  185,  185,  259,  259,
3422       259,  260,  260,  260, 1986, 1988,  368,  793,  793,  793,
3423
3424       368,  946,  946,  946,  259, 1991, 1541,  260, 1992, 1994,
3425       302, 1995,  185,  185,  793,  803,  803,  803,  185,  946,
3426       302, 1996, 1043, 1043, 1043, 1998, 1043, 2004,  374, 1043,
3427      2005, 2007,  803,  185,  186,  186,  186,  186,  186,  186,
3428       186,  186,  186,  186,  186,  186,  186,  186,  186,  302,
3429       186,  186,  186,  186,  186,  302,  374,  813,  813,  813,
3430      2010, 2018,  302, 1548, 1548, 1548,  302,  814,  814,  814,
3431      1993, 2019,  374, 2024,  813,  820,  820,  820, 1993,  186,
3432       186,  822,  822,  822,  814,  186, 1054, 1054, 1054, 1997,
3433      1054, 2025,  820, 1054, 1558, 1558, 1558, 1997,  822, 2032,
3434
3435       186,  195,  195,  195,  195,  195,  195,  195,  195,  195,
3436       195,  195,  195,  195,  195,  195, 2033,  195,  195,  195,
3437       195,  195,  837,  837,  837,  838,  838,  838,  850,  850,
3438       850,  858,  858,  858,  863,  863,  863, 2006, 2011,  837,
3439      2034, 2038,  838, 2012, 2046,  850,  195,  195,  858, 2052,
3440      2053,  863,  195, 2006, 2011,  195, 1063, 1063, 1063, 2012,
3441      1063, 2054, 2061, 1063, 1594, 1594, 1594,  195,  196,  196,
3442       196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
3443       196,  196,  196, 2062,  196,  196,  196,  196,  196,  869,
3444       869,  869,  891,  891,  891,  919,  919,  919,  923,  923,
3445
3446       923,  928,  928,  928, 2063, 2066,  869, 2067, 2078,  891,
3447      2084, 2088,  919,  196,  196,  923, 2091, 2093,  928,  196,
3448      2096, 2098,  196, 1065, 1065, 1065, 2100, 1065, 2101, 2102,
3449      1065, 1597, 1597, 1597,  196,  205,  205,  205,  205,  205,
3450       205,  205,  205,  205,  205,  205,  205,  205,  205,  205,
3451      2105,  205,  205,  205,  205,  205,  947,  947,  947,  978,
3452       978,  978, 2107, 2112,  979,  979,  979,  981,  981,  981,
3453       985,  985,  985, 1802,  947, 2114, 2122,  978, 2123, 1802,
3454       205,  205,  979, 1802,  981, 2124,  205, 1802,  985, 2125,
3455      2127,  205,  206,  206,  206,  206,  206,  206,  206,  206,
3456
3457       206,  206,  206,  206,  206,  206,  206, 2142,  206,  206,
3458       206,  206,  206, 2142,  947,  986,  986,  986,  989,  989,
3459       989,  997,  997,  997,  979,  991,  991,  991,  993,  993,
3460       993, 2145, 2150,  986, 2151,  989, 2152,  206,  206,  997,
3461      2153, 2144,  991,  206, 2157,  993, 2159, 2160,  206,  209,
3462       209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
3463       209,  209,  209,  209, 2161,  209,  209,  209,  209,  209,
3464      1002, 1002, 1002, 1003, 1003, 1003, 1004, 1004, 1004,  986,
3465      1007, 1007, 1007, 2143,  998,  998,  998, 2144, 1002, 2162,
3466      2167, 1003, 2174, 1004,  209,  209, 2176, 2177, 1007, 2180,
3467
3468       209, 2183,  998, 1071, 1071, 1071, 2187, 1071, 2188, 2189,
3469      1071, 1595, 1595, 1595, 2143,  209,  210,  210,  210,  210,
3470       210,  210,  210,  210,  210,  210,  210,  210,  210,  210,
3471       210,  998,  210,  210,  210,  210,  210, 1003, 1008, 1008,
3472      1008, 1024, 1024, 1024, 2190, 1028, 1028, 1028, 1029, 1029,
3473      1029, 1033, 1033, 1033, 1803, 2191, 1008, 1595, 1024, 2192,
3474      1803,  210,  210, 1028, 1803, 2193, 1029,  210, 1803, 1033,
3475      1074, 1074, 1074, 2194, 1074, 1008, 2195, 1074, 1596, 1596,
3476      1596, 2196,  210,  219,  219,  219,  219,  219,  219,  219,
3477       219,  219,  219,  219,  219,  219,  219,  219, 2201,  219,
3478
3479       219,  219,  219,  219, 1034, 1034, 1034, 1037, 1037, 1037,
3480      1042, 1042, 1042, 2202, 1029, 1038, 1038, 1038, 1047, 1047,
3481      1047, 2203, 1034, 2204, 1596, 1037, 2209, 1042,  219,  219,
3482      1048, 1048, 1048, 1038,  219, 2211, 1047,  219, 1089, 1089,
3483      1089, 2212, 1089, 2219, 2220, 1089, 2226, 2227, 1048,  219,
3484       220,  220,  220,  220,  220,  220,  220,  220,  220,  220,
3485       220,  220,  220,  220,  220, 1034,  220,  220,  220,  220,
3486       220, 1053, 1053, 1053, 1056, 1056, 1056, 1062, 1062, 1062,
3487      1038, 1057, 1057, 1057, 1059, 1059, 1059, 2233, 1053, 2224,
3488      2225, 1048, 1056, 2239, 1062,  220,  220, 2224, 2225, 1057,
3489
3490      2243,  220, 1059, 2244,  220, 1091, 1091, 1091, 2245, 1091,
3491      2251, 2252, 1091, 1695, 1695, 1695,  220,  229,  229,  229,
3492       229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
3493       229,  229, 2253,  229,  229,  229,  229,  229, 1064, 1064,
3494      1064, 2257, 2269, 1060, 1060, 1060, 2273, 1057, 1066, 1066,
3495      1066, 1067, 1067, 1067, 2274, 1064, 1070, 1070, 1070, 1695,
3496      2275, 1060,  229,  229, 2277, 2281, 1066, 2284, 2285, 1067,
3497       229, 2288,  229, 1070, 2289,  229, 1756, 1756, 1756,  229,
3498      1759, 1759, 1759,  229,  230,  230,  230,  230,  230,  230,
3499       230,  230,  230,  230,  230,  230,  230,  230,  230, 2292,
3500
3501       230,  230,  230,  230,  230, 1060, 1073, 1073, 1073, 1075,
3502      1075, 1075, 1067, 1086, 1086, 1086, 1087, 1087, 1087, 1088,
3503      1088, 1088, 2299, 1073, 2286, 2287, 1075, 2301, 2316,  230,
3504       230, 1086, 2286, 2287, 1087, 2331, 1088,  230, 2332,  230,
3505      2335, 2321,  230, 1762, 1762, 1762,  230, 1764, 1764, 1764,
3506       230,  239,  239,  239,  239,  239,  239,  239,  239,  239,
3507       239,  239,  239,  239,  239,  239, 2338,  239,  239,  239,
3508       239,  239, 2322, 2343, 1087, 1090, 1090, 1090, 1092, 1092,
3509      1092, 1767, 1767, 1767, 2321, 1093, 1093, 1093, 1095, 1095,
3510      1095, 2344, 1090, 2349, 2351, 1092,  239,  239, 1094, 1094,
3511
3512      1094, 2363, 1093, 2364, 2365, 1095, 1103, 1103, 1103, 2366,
3513      1103, 2367, 2368, 1103, 2369, 1094, 1769, 1769, 1769, 2322,
3514       239,  240,  240,  240,  240,  240,  240,  240,  240,  240,
3515       240,  240,  240,  240,  240,  240, 1093,  240,  240,  240,
3516       240,  240, 2370, 1095, 1097, 1097, 1097, 1102, 1102, 1102,
3517      1094, 1777, 1777, 1777, 1096, 1096, 1096, 1104, 1104, 1104,
3518      2371, 2372, 1097, 2379, 1102, 2380,  240,  240, 1098, 1098,
3519      1098, 1096, 2381, 2383, 1104, 1111, 1111, 1111, 2387, 1111,
3520      1769, 2389, 1111, 1771, 1771, 1771, 1098, 1811, 1811, 1811,
3521       240,  243,  243,  243,  243,  243,  243,  243,  243,  243,
3522
3523       243,  243,  243,  243,  243,  243, 1096,  243,  243,  243,
3524       243,  243, 1107, 1107, 1107, 1098, 1110, 1110, 1110, 2392,
3525      1108, 1108, 1108, 1112, 1112, 1112, 1113, 1113, 1113, 1771,
3526      1107, 2393, 2394, 1110, 2395, 2396,  243,  243, 1108, 2397,
3527      2398, 1112, 2403, 2406, 1113, 2407, 2408,  243,  244,  244,
3528       244,  244,  244,  244,  244,  244,  244,  244,  244,  244,
3529       244,  244,  244, 2414,  244,  244,  244,  244,  244, 2415,
3530      2409, 1108, 1115, 1115, 1115, 1116, 1116, 1116, 2416, 1116,
3531      2409, 2424, 1116, 1118, 1118, 1118, 2425, 1113, 2426, 1115,
3532      1813, 1813, 1813,  244,  244, 1122, 1122, 1122, 2427, 1122,
3533
3534      2441, 1118, 1122, 2442,  244,  253,  253,  253,  253,  253,
3535       253,  253,  253,  253,  253,  253,  253,  253,  253,  253,
3536      2443,  253,  253,  253,  253,  253, 1119, 1119, 1119, 1121,
3537      1121, 1121, 2444, 2446, 1126, 1126, 1126, 1128, 1128, 1128,
3538      2448, 1127, 1127, 1127, 1119, 2472, 1121, 1129, 1129, 1129,
3539       253,  253, 1126, 2473, 1128, 1130, 1130, 1130, 2466, 1127,
3540      2476,  253, 2479, 2480, 1129, 2481, 2467, 1779, 1779, 1779,
3541      2484, 2487, 1130, 1119,  253,  254,  254,  254,  254,  254,
3542       254,  254,  254,  254,  254,  254,  254,  254,  254,  254,
3543      2466,  254,  254,  254,  254,  254, 1127, 1131, 1131, 1131,
3544
3545      1134, 1134, 1134, 2467, 2488, 1132, 1132, 1132, 2489, 2490,
3546      1135, 1135, 1135, 1779, 1130, 1131, 2491, 1134, 2492, 2493,
3547       254,  254, 2494, 1132, 1136, 1136, 1136, 1135, 1142, 1142,
3548      1142,  254, 1142, 2495, 2496, 1142, 1166, 1166, 1166, 2497,
3549      1166, 1136, 2499, 1166,  254,  257,  257,  257,  257,  257,
3550       257,  257,  257,  257,  257,  257,  257,  257,  257,  257,
3551      1135,  257,  257,  257,  257,  257, 1132, 1138, 1138, 1138,
3552      2500, 1137, 1137, 1137, 2502, 1135, 1139, 1139, 1139, 1141,
3553      1141, 1141, 1143, 1143, 1143, 1138, 2501, 2503, 1137, 2504,
3554       257,  257, 2505, 2507, 1139, 2501, 1141, 1814, 1814, 1814,
3555
3556      1143,  257, 1170, 1170, 1170, 2508, 1170, 2510, 2511, 1170,
3557      1851, 1851, 1851, 1139,  257,  258,  258,  258,  258,  258,
3558       258,  258,  258,  258,  258,  258,  258,  258,  258,  258,
3559      1137,  258,  258,  258,  258,  258, 1144, 1144, 1144, 1145,
3560      1145, 1145, 1146, 1146, 1146, 1147, 1147, 1147, 1148, 1148,
3561      1148, 1149, 1149, 1149, 1144, 2506, 1145, 2513, 2514, 1146,
3562       258,  258, 2516, 1147, 2506, 2520, 1148, 2521, 1149, 2522,
3563      2524,  258, 2528, 1150, 1150, 1150, 1151, 1151, 1151, 1152,
3564      1152, 1152, 2532, 2533,  258,  300, 1153, 1153, 1153, 2534,
3565      1150, 1144,  300, 1151, 1159, 1159, 1159, 1152, 1160, 1160,
3566
3567      1160,  300,  300, 2535, 1153, 2536, 1163, 1163, 1163, 1164,
3568      1164, 1164, 1159, 1175, 1175, 1175, 1160, 1175, 2539, 1148,
3569      1175, 2541, 2549, 1150, 1163, 2550, 2543, 1164, 2552,  300,
3570       300,  300, 1959, 1959, 1959,  300,  300,  300, 1150, 2543,
3571       300,  300, 2558, 2559,  300, 2560,  300,  300,  300,  365,
3572      1165, 1165, 1165, 1167, 1167, 1167,  365, 1153, 1168, 1168,
3573      1168, 2544, 1160, 2561, 2563,  365,  365, 1165, 1169, 1169,
3574      1169, 1167, 2566, 1164, 2544, 2568, 1168, 2593, 1172, 1172,
3575      1172, 1174, 1174, 1174, 2594, 1169, 2590, 2597, 1173, 1173,
3576      1173, 2598, 2588,  365,  365,  365, 1172, 2599, 1174,  365,
3577
3578       365,  365, 2589, 2604,  365,  365, 1173, 2605,  365, 2606,
3579       365,  365,  365, 1177, 1177, 1177, 1178, 1178, 1178, 1168,
3580      1193, 1193, 1193, 1194, 1194, 1194, 1196, 1196, 1196, 2590,
3581      2602, 1177, 2588, 2607, 1178, 1229, 1229, 1229, 1193, 2589,
3582      2602, 1194, 2608, 2602, 1196, 1228, 1228, 1228, 1230, 1230,
3583      1230, 2609, 1173, 1229, 1232, 1232, 1232, 1233, 1233, 1233,
3584      2610, 2611, 1228, 1234, 1234, 1234, 1230, 1234, 2612, 2613,
3585      1234, 2614, 1232, 1196, 1233, 2616, 2617, 1178, 1237, 1237,
3586      1237, 1239, 1239, 1239, 1240, 1240, 1240, 1242, 1242, 1242,
3587      1244, 1244, 1244, 2618, 1244, 1237, 2619, 1244, 2620, 1239,
3588
3589      2621, 2622, 1240, 1232, 2603, 1242, 1247, 1247, 1247, 1248,
3590      1248, 1248, 2623, 1248, 2603, 2624, 1248, 2603, 1249, 1249,
3591      1249, 2625, 2626, 1247, 1250, 1250, 1250, 2627, 2628, 1251,
3592      1251, 1251, 2629, 1251, 1242, 1249, 1251, 2631, 2632, 1237,
3593      2640, 1250, 1253, 1253, 1253, 1255, 1255, 1255, 1256, 1256,
3594      1256, 1258, 1258, 1258, 1260, 1260, 1260, 2646, 2648, 1253,
3595      1262, 1262, 1262, 1255, 2649, 2650, 1256, 2652, 2656, 1258,
3596      2659, 1260, 1263, 1263, 1263, 1265, 1265, 1265, 1262, 1266,
3597      1266, 1266, 2660, 1266, 2661, 2662, 1266, 1270, 1270, 1270,
3598      1263, 2663, 2664, 1265, 1271, 1271, 1271, 1273, 1273, 1273,
3599
3600      1288, 1288, 1288, 2677, 1288, 1270, 2678, 1288, 1292, 1292,
3601      1292, 1258, 1271, 2679, 2706, 1273, 1293, 1293, 1293, 1294,
3602      1294, 1294, 1265, 2709, 2703, 1292, 1296, 1296, 1296, 1298,
3603      1298, 1298, 2710, 2711, 1293, 2714, 2715, 1294, 1299, 1299,
3604      1299, 1300, 1300, 1300, 1296, 2717, 1298, 1301, 1301, 1301,
3605      1303, 1303, 1303, 2703, 2716, 1299, 1304, 1304, 1304, 1300,
3606      1305, 1305, 1305, 2718, 2720, 1301, 2721, 2716, 1303, 1312,
3607      1312, 1312, 2704, 1304, 1306, 1306, 1306, 1305, 1307, 1307,
3608      1307, 1309, 1309, 1309, 2722, 1299, 1312, 1296, 1305, 1319,
3609      1319, 1319, 1306, 1313, 1313, 1313, 1307, 1313, 2705, 1309,
3610
3611      1313, 1320, 1320, 1320, 1322, 1322, 1322, 1319, 1327, 1327,
3612      1327, 2723, 1327, 2724, 2704, 1327, 2726, 1303, 2727, 1320,
3613      2728, 2729, 1322, 1331, 1331, 1331, 1332, 1332, 1332, 2687,
3614      1334, 1334, 1334, 1335, 1335, 1335, 1336, 1336, 1336, 2687,
3615      2705, 1331, 2732, 2733, 1332, 2687, 2734, 1309, 1334, 2719,
3616      1335, 1340, 1340, 1340, 1336, 1337, 1337, 1337, 1339, 1339,
3617      1339, 2735, 2719, 1341, 1341, 1341, 2736, 1341, 1340, 1322,
3618      1341, 2737, 2738, 1337, 2739, 2740, 1339, 1344, 1344, 1344,
3619      2741, 1344, 2742, 2743, 1344, 1347, 1347, 1347, 1348, 1348,
3620      1348, 1334, 1350, 1350, 1350, 1355, 1355, 1355, 2744, 1355,
3621
3622      2746, 2759, 1355, 1347, 2760, 2765, 1348, 1358, 1358, 1358,
3623      1350, 1359, 1359, 1359, 2769, 1359, 2770, 2771, 1359, 1362,
3624      1362, 1362, 2772, 2773, 1358, 1339, 1363, 1363, 1363, 2774,
3625      1363, 2782, 2784, 1363, 2792, 2793, 1362, 1374, 1374, 1374,
3626      1375, 1375, 1375, 1377, 1377, 1377, 1378, 1378, 1378, 2688,
3627      1378, 2794, 2795, 1378, 2796, 1374, 2797, 1350, 1375, 2688,
3628      2810, 1377, 1381, 1381, 1381, 2688, 1381, 2813, 2814, 1381,
3629      1384, 1384, 1384, 1385, 1385, 1385, 2818, 1385, 2819, 2820,
3630      1385, 1390, 1390, 1390, 1391, 1391, 1391, 1384, 1393, 1393,
3631      1393, 1398, 1398, 1398, 2821, 1398, 2822, 2823, 1398, 1390,
3632
3633      2801, 2824, 1391, 1401, 1401, 1401, 1393, 1402, 1402, 1402,
3634      1377, 1402, 2807, 2801, 1402, 1405, 1405, 1405, 2825, 2802,
3635      1401, 1406, 1406, 1406, 1408, 1408, 1408, 1410, 1410, 1410,
3636      2808, 1410, 2802, 1405, 1410, 2827, 1393, 2828, 2829, 1406,
3637      2830, 2831, 1408, 1413, 1413, 1413, 1414, 1414, 1414, 1416,
3638      1416, 1416, 1418, 1418, 1418, 2832, 1418, 2833, 2834, 1418,
3639      2807, 1413, 2836, 2837, 1414, 2808, 2838, 1416, 1422, 1422,
3640      1422, 1423, 1423, 1423, 2839, 1408, 1425, 1425, 1425, 2840,
3641      1427, 1427, 1427, 2841, 1427, 2842, 1422, 1427, 2843, 1423,
3642      1433, 1433, 1433, 2844, 1425, 1434, 1434, 1434, 2845, 1436,
3643
3644      1436, 1436, 1437, 1437, 1437, 1438, 1438, 1438, 1433, 1438,
3645      2846, 2847, 1438, 1434, 2848, 2856, 1416, 1436, 2862, 1437,
3646      1439, 1439, 1439, 2863, 2871, 1425, 1440, 1440, 1440, 2872,
3647      1440, 2873, 2874, 1440, 1442, 1442, 1442, 1439, 1443, 1443,
3648      1443, 2875, 1445, 1445, 1445, 1447, 1447, 1447, 2876, 1451,
3649      1451, 1451, 1442, 1964, 1964, 1964, 1443, 2877, 2884, 1436,
3650      1445, 2887, 1447, 1448, 1448, 1448, 1451, 1448, 2894, 2895,
3651      1448, 1452, 1452, 1452, 2896, 1452, 2897, 2898, 1452, 1454,
3652      1454, 1454, 1455, 1455, 1455, 1457, 1457, 1457, 1459, 1459,
3653      1459, 2889, 1459, 2899, 2902, 1459, 2903, 1454, 2890, 2904,
3654
3655      1455, 2889, 2905, 1457, 1462, 1462, 1462, 2916, 2890, 1445,
3656      1463, 1463, 1463, 1465, 1465, 1465, 1466, 1466, 1466, 1467,
3657      1467, 1467, 1462, 1467, 2917, 2918, 1467, 2919, 1463, 2920,
3658      2892, 1465, 2893, 1466, 1468, 1468, 1468, 1469, 1469, 1469,
3659      2892, 1469, 2893, 2921, 1469, 1470, 1470, 1470, 2922, 1457,
3660      2923, 1468, 1471, 1471, 1471, 2926, 1473, 1473, 1473, 1474,
3661      1474, 1474, 2927, 1470, 1475, 1475, 1475, 2929, 1475, 2930,
3662      1471, 1475, 2931, 1465, 1473, 2933, 1474, 1478, 1478, 1478,
3663      1479, 1479, 1479, 2908, 1479, 2935, 2936, 1479, 1480, 1480,
3664      1480, 1481, 1481, 1481, 1478, 1483, 1483, 1483, 1485, 1485,
3665
3666      1485, 1489, 1489, 1489, 2937, 2940, 1480, 2941, 2942, 1481,
3667      1490, 1490, 1490, 1483, 2943, 1485, 2946, 2908, 1473, 1489,
3668      1492, 1492, 1492, 1495, 1495, 1495, 2956, 2960, 1490, 1496,
3669      1496, 1496, 1498, 1498, 1498, 1499, 1499, 1499, 1492, 1499,
3670      2961, 1495, 1499, 1502, 1502, 1502, 2969, 1496, 2970, 2971,
3671      1498, 1503, 1503, 1503, 1505, 1505, 1505, 1483, 1506, 1506,
3672      1506, 1502, 1506, 2972, 2973, 1506, 1510, 1510, 1510, 1503,
3673      2974, 2980, 1505, 1511, 1511, 1511, 1513, 1513, 1513, 2981,
3674      2982, 1492, 2983, 2984, 1510, 1498, 1514, 1514, 1514, 2985,
3675      1514, 1511, 2986, 1514, 1513, 1518, 1518, 1518, 1519, 1519,
3676
3677      1519, 1521, 1521, 1521, 1523, 1523, 1523, 1530, 1530, 1530,
3678      1561, 1561, 1561, 1518, 1505, 2987, 1519, 2988, 2989, 1521,
3679      2991, 2992, 1523, 1523, 2997, 1530, 2998, 1561, 1562, 1562,
3680      1562, 2999, 1562, 3000, 3001, 1562, 3010, 1513, 1563, 1563,
3681      1563, 1564, 1564, 1564, 3011, 1565, 1565, 1565, 3012, 1565,
3682      3013, 1521, 1565, 1568, 1568, 1568, 1563, 3014, 1564, 1570,
3683      1570, 1570, 3015, 1570, 3016, 3017, 1570, 1573, 1573, 1573,
3684      3021, 1568, 3022, 1530, 1574, 1574, 1574, 3001, 1574, 3023,
3685      3024, 1574, 3025, 3026, 1573, 1575, 1575, 1575, 3028, 1575,
3686      3029, 3031, 1575, 1579, 1579, 1579, 1563, 1580, 1580, 1580,
3687
3688      3032, 1580, 1568, 3033, 1580, 1582, 1582, 1582, 3035, 3039,
3689      1579, 1584, 1584, 1584, 1585, 1585, 1585, 3040, 1585, 3041,
3690      3046, 1585, 3048, 1582, 1586, 1586, 1586, 3049, 1584, 1587,
3691      1587, 1587, 1589, 1589, 1589, 1605, 1605, 1605, 1968, 1968,
3692      1968, 1586, 1606, 1606, 1606, 3054, 3055, 1587, 3056, 3057,
3693      1589, 3058, 1605, 3059, 3060, 1582, 1607, 1607, 1607, 1606,
3694      1607, 3061, 3062, 1607, 1608, 1608, 1608, 1610, 1610, 1610,
3695      1611, 1611, 1611, 3063, 1611, 3064, 3065, 1611, 1587, 1613,
3696      1613, 1613, 1608, 3067, 1610, 1614, 1614, 1614, 1615, 1615,
3697      1615, 3068, 1615, 3069, 3070, 1615, 3077, 1613, 1617, 1617,
3698
3699      1617, 3073, 1614, 1620, 1620, 1620, 1621, 1621, 1621, 3080,
3700      1621, 3081, 3084, 1621, 3071, 3073, 1617, 1622, 1622, 1622,
3701      1620, 1624, 1624, 1624, 1625, 1625, 1625, 3086, 1608, 1631,
3702      1631, 1631, 3074, 3087, 1622, 1632, 1632, 1632, 1624, 1613,
3703      3089, 3090, 1625, 3074, 1633, 1633, 1633, 1631, 1633, 3094,
3704      3095, 1633, 1632, 1634, 1634, 1634, 1635, 1635, 1635, 1617,
3705      3071, 1636, 1636, 1636, 3096, 1636, 3097, 1624, 1636, 3098,
3706      3099, 1634, 3100, 1635, 1637, 1637, 1637, 1639, 1639, 1639,
3707      1642, 1642, 1642, 3101, 1643, 1643, 1643, 3109, 1643, 3103,
3708      1625, 1643, 1637, 1631, 1639, 3117, 3093, 1642, 1644, 1644,
3709
3710      1644, 3103, 1644, 3096, 3119, 1644, 1649, 1649, 1649, 1658,
3711      1658, 1658, 1659, 1659, 1659, 3121, 1659, 3123, 3131, 1659,
3712      1662, 1662, 1662, 1649, 1663, 1663, 1663, 1658, 1664, 1664,
3713      1664, 1665, 1665, 1665, 1666, 1666, 1666, 1662, 3093, 3133,
3714      1637, 1663, 1668, 1668, 1668, 1664, 3104, 3137, 1665, 1671,
3715      1671, 1671, 1666, 1671, 3136, 3136, 1671, 3139, 3104, 1668,
3716      1674, 1674, 1674, 1676, 1676, 1676, 1678, 1678, 1678, 1681,
3717      1681, 1681, 3135, 3114, 1658, 1664, 3115, 1674, 1685, 1685,
3718      1685, 1676, 3138, 3141, 1678, 3114, 3135, 1681, 3115, 1666,
3719      1686, 1686, 1686, 3138, 1663, 1685, 1687, 1687, 1687, 3142,
3720
3721      1687, 1665, 3143, 1687, 3134, 1690, 1690, 1690, 1686, 1690,
3722      3144, 3150, 1690, 1694, 1694, 1694, 1696, 1696, 1696, 3154,
3723      1696, 3151, 3161, 1696, 1685, 3160, 1681, 1676, 1705, 1705,
3724      1705, 1694, 1678, 1701, 1701, 1701, 3155, 1701, 3163, 3151,
3725      1701, 1707, 1707, 1707, 3160, 3134, 1705, 1686, 1708, 1708,
3726      1708, 3155, 1708, 3162, 3168, 1708, 1711, 1711, 1711, 1707,
3727      1711, 3169, 3170, 1711, 1714, 1714, 1714, 1715, 1715, 1715,
3728      3171, 1715, 3162, 3168, 1715, 3176, 1720, 1720, 1720, 1694,
3729      1720, 3170, 1714, 1720, 1723, 1723, 1723, 3177, 3179, 1705,
3730      1725, 1725, 1725, 1726, 1726, 1726, 3180, 1726, 1707, 3181,
3731
3732      1726, 3183, 1723, 1730, 1730, 1730, 3184, 1725, 1732, 1732,
3733      1732, 1714, 1733, 1733, 1733, 1734, 1734, 1734, 1735, 1735,
3734      1735, 1730, 1736, 1736, 1736, 1732, 1737, 1737, 1737, 3185,
3735      1733, 1723, 3186, 1734, 3187, 1735, 1738, 1738, 1738, 3189,
3736      1736, 3190, 3192, 1737, 1741, 1741, 1741, 1748, 1748, 1748,
3737      3199, 3200, 1730, 3201, 1738, 3202, 1780, 1780, 1780, 3203,
3738      1780, 3204, 1741, 1780, 3207, 1748, 3208, 1734, 1783, 1783,
3739      1783, 1784, 1784, 1784, 3209, 1784, 3210, 3211, 1784, 1733,
3740      1789, 1789, 1789, 3212, 1736, 3213, 1783, 1738, 3214, 1791,
3741      1791, 1791, 3216, 1791, 3218, 1741, 1791, 3220, 1789, 1748,
3742
3743      1795, 1795, 1795, 3221, 1795, 3222, 3223, 1795, 1799, 1799,
3744      1799, 3224, 1741, 1801, 1801, 1801, 3234, 1801, 3232, 3235,
3745      1801, 1804, 1804, 1804, 3236, 3233, 1799, 1806, 1806, 1806,
3746      3232, 1789, 1805, 1805, 1805, 1783, 1805, 3233, 1804, 1805,
3747      1815, 1815, 1815, 3237, 3238, 1806, 1819, 1819, 1819, 1820,
3748      1820, 1820, 3239, 1822, 1822, 1822, 1823, 1823, 1823, 3243,
3749      1823, 3244, 3245, 1823, 1824, 1824, 1824, 3246, 1824, 1799,
3750      1822, 1824, 1827, 1827, 1827, 1829, 1829, 1829, 1806, 1829,
3751      3247, 3248, 1829, 1833, 1833, 1833, 3249, 1834, 1834, 1834,
3752      1827, 1834, 3250, 3251, 1834, 1837, 1837, 1837, 1838, 1838,
3753
3754      1838, 1833, 3253, 3254, 1815, 3255, 3256, 1841, 1841, 1841,
3755      1819, 1841, 1837, 1820, 1841, 3257, 1838, 3258, 3251, 1827,
3756      1844, 1844, 1844, 1845, 1845, 1845, 3259, 1845, 3260, 3261,
3757      1845, 1846, 1846, 1846, 1847, 1847, 1847, 1844, 1848, 1848,
3758      1848, 3262, 1848, 3263, 3264, 1848, 3265, 3266, 1846, 1833,
3759      3267, 1847, 1850, 1850, 1850, 1853, 1853, 1853, 1854, 1854,
3760      1854, 3268, 1838, 1855, 1855, 1855, 1856, 1856, 1856, 3269,
3761      1850, 3270, 1853, 3271, 3272, 1854, 1860, 1860, 1860, 3273,
3762      1855, 1857, 1857, 1857, 1856, 1857, 3274, 3277, 1857, 1862,
3763      1862, 1862, 3280, 1862, 1860, 3281, 1862, 1865, 1865, 1865,
3764
3765      1867, 1867, 1867, 1868, 1868, 1868, 3277, 1868, 3282, 3283,
3766      1868, 3284, 3285, 1856, 3286, 1865, 3287, 1867, 1869, 1869,
3767      1869, 1871, 1871, 1871, 1854, 1871, 3288, 3289, 1871, 1876,
3768      1876, 1876, 1877, 1877, 1877, 1869, 1877, 3290, 3291, 1877,
3769      1878, 1878, 1878, 1865, 3292, 3293, 1876, 1883, 1883, 1883,
3770      1886, 1886, 1886, 1887, 1887, 1887, 3294, 1878, 1888, 1888,
3771      1888, 3295, 1888, 3296, 1883, 1888, 3297, 3298, 1886, 3299,
3772      1887, 1889, 1889, 1889, 1890, 1890, 1890, 1891, 1891, 1891,
3773      1892, 1892, 1892, 1894, 1894, 1894, 3301, 3302, 1889, 3300,
3774      3303, 1890, 3304, 3305, 1891, 1895, 1895, 1895, 1892, 1895,
3775
3776      1894, 3306, 1895, 1896, 1896, 1896, 1898, 1898, 1898, 3300,
3777      1899, 1899, 1899, 3307, 1899, 3308, 1886, 1899, 3309, 3310,
3778      1896, 3311, 3312, 1898, 1901, 1901, 1901, 1903, 1903, 1903,
3779      3313, 3314, 1890, 1906, 1906, 1906, 1910, 1910, 1910, 3315,
3780      1892, 3316, 1901, 3317, 3318, 1903, 3319, 3320, 1911, 1911,
3781      1911, 1906, 1911, 1910, 3326, 1911, 1913, 1913, 1913, 1915,
3782      1915, 1915, 1917, 1917, 1917, 1918, 1918, 1918, 1919, 1919,
3783      1919, 1920, 1920, 1920, 1913, 3327, 3328, 1915, 1903, 1917,
3784      3329, 1906, 1918, 3330, 3331, 1919, 1923, 1923, 1923, 1920,
3785      1922, 1922, 1922, 3333, 1924, 1924, 1924, 1925, 1925, 1925,
3786
3787      1926, 1926, 1926, 3334, 1923, 1928, 1928, 1928, 1922, 1928,
3788      1915, 1924, 1928, 3321, 1925, 1934, 1934, 1934, 1926, 3321,
3789      1936, 1936, 1936, 1937, 1937, 1937, 3336, 1937, 3337, 3339,
3790      1937, 3340, 1919, 1934, 3343, 3344, 1922, 1936, 1920, 1938,
3791      1938, 1938, 1939, 1939, 1939, 1940, 1940, 1940, 1941, 1941,
3792      1941, 1923, 1941, 3345, 3346, 1941, 3348, 1938, 3350, 3352,
3793      1939, 3354, 1940, 3356, 3342, 1926, 1934, 1942, 1942, 1942,
3794      1943, 1943, 1943, 1944, 1944, 1944, 3357, 1944, 3342, 3358,
3795      1944, 1945, 1945, 1945, 3359, 1942, 3360, 1943, 1951, 1951,
3796      1951, 1952, 1952, 1952, 1969, 1969, 1969, 1939, 1938, 1945,
3797
3798      1970, 1970, 1970, 3361, 3362, 1951, 1972, 1972, 1972, 1952,
3799      1974, 1974, 1974, 1975, 1975, 1975, 1980, 1980, 1980, 1982,
3800      1982, 1982, 1985, 1985, 1985, 1987, 1987, 1987, 1989, 1989,
3801      1989, 1990, 1990, 1990, 1999, 1999, 1999, 1982, 1999, 1945,
3802      1985, 1999, 1987, 2002, 2002, 2002, 1989, 3363, 1990, 2003,
3803      2003, 2003, 1952, 2008, 2008, 2008, 2009, 2009, 2009, 3365,
3804      3367, 2002, 2013, 2013, 2013, 3369, 2003, 3370, 3371, 1982,
3805      2014, 2014, 2014, 3372, 2014, 1537, 3373, 2014, 3374, 2013,
3806      2017, 2017, 2017, 2020, 2020, 2020, 3397, 1989, 3464, 2002,
3807      2021, 2021, 2021, 2022, 2022, 2022, 3385, 2022, 2017, 3464,
3808
3809      2022, 2020, 2023, 2023, 2023, 1536, 3399, 2021, 2013, 2026,
3810      2026, 2026, 3373, 2026, 3374, 3386, 2026, 2029, 2029, 2029,
3811      2023, 2030, 2030, 2030, 3411, 2030, 3381, 3397, 2030, 2035,
3812      2035, 2035, 3382, 2017, 2029, 2031, 2031, 2031, 3398, 2031,
3813      3385, 3399, 2031, 2037, 2037, 2037, 3383, 2035, 3389, 2023,
3814      2039, 2039, 2039, 2040, 2040, 2040, 3389, 2040, 3411, 3386,
3815      2040, 2041, 2041, 2041, 2042, 2042, 2042, 2039, 2043, 2043,
3816      2043, 3384, 2043, 3387, 3381, 2043, 3419, 3387, 2041, 3398,
3817      3382, 2042, 2044, 2044, 2044, 2045, 2045, 2045, 2047, 2047,
3818      2047, 3390, 2047, 3391, 3383, 2047, 2050, 2050, 2050, 3390,
3819
3820      2044, 3391, 3392, 2045, 2051, 2051, 2051, 2041, 2051, 3419,
3821      3392, 2051, 3395, 2050, 2055, 2055, 2055, 3393, 2055, 3384,
3822      1535, 2055, 2058, 2058, 2058, 2059, 2059, 2059, 3394, 2059,
3823      3388, 3405, 2059, 1534, 3388, 2044, 2060, 2060, 2060, 2058,
3824      2064, 2064, 2064, 2045, 2065, 2065, 2065, 3401, 2065, 3395,
3825      3396, 2065, 3403, 2060, 2068, 2068, 2068, 2064, 2069, 2069,
3826      2069, 3400, 2069, 3405, 3393, 2069, 2072, 2072, 2072, 2073,
3827      2073, 2073, 2068, 2073, 3412, 3394, 2073, 2074, 2074, 2074,
3828      2075, 2075, 2075, 2072, 2076, 2076, 2076, 3396, 2076, 3403,
3829      3431, 2076, 3407, 3401, 2074, 1533, 3400, 2075, 2077, 2077,
3830
3831      2077, 3407, 2079, 2079, 2079, 2068, 2079, 1532, 3412, 2079,
3832      2082, 2082, 2082, 2083, 2083, 2083, 2077, 2083, 1531, 3431,
3833      2083, 2085, 2085, 2085, 3402, 2085, 3425, 2082, 2085, 2089,
3834      2089, 2089, 2092, 2092, 2092, 2094, 2094, 2094, 2095, 2095,
3835      2095, 2097, 2097, 2097, 2099, 2099, 2099, 2089, 2099, 2077,
3836      2092, 2099, 2094, 2103, 2103, 2103, 2095, 3404, 2097, 2106,
3837      2106, 2106, 2108, 2108, 2108, 2109, 2109, 2109, 3425, 2109,
3838      3402, 2103, 2109, 2110, 2110, 2110, 3413, 2106, 3409, 2108,
3839      3408, 2111, 2111, 2111, 3406, 2111, 3415, 2097, 2111, 3408,
3840      2110, 2113, 2113, 2113, 3404, 3410, 2092, 1529, 3417, 2095,
3841
3842      2115, 2115, 2115, 2116, 2116, 2116, 2117, 2117, 2117, 2113,
3843      2118, 2118, 2118, 3409, 2118, 3420, 3406, 2118, 2115, 3413,
3844      3418, 2116, 3426, 2117, 2119, 2119, 2119, 2120, 2120, 2120,
3845      3410, 2120, 3415, 3417, 2120, 2121, 2121, 2121, 2126, 2126,
3846      2126, 2119, 3414, 2128, 2128, 2128, 3416, 2128, 3420, 2115,
3847      2128, 1528, 1527, 2121, 3432, 3418, 2126, 2113, 2131, 2131,
3848      2131, 2132, 2132, 2132, 3426, 2133, 2133, 2133, 2116, 2133,
3849      3423, 3424, 2133, 2136, 2136, 2136, 2131, 3421, 1526, 2132,
3850      2138, 2138, 2138, 3432, 2138, 3414, 3421, 2138, 2141, 2141,
3851      2141, 2136, 3416, 2146, 2146, 2146, 3422, 2147, 2147, 2147,
3852
3853      2121, 2147, 1517, 2126, 2147, 3422, 2141, 3423, 3424, 2131,
3854      2146, 2148, 2148, 2148, 2132, 2149, 2149, 2149, 2154, 2154,
3855      2154, 2155, 2155, 2155, 2156, 2156, 2156, 1509, 3427, 2148,
3856      2158, 2158, 2158, 1494, 2141, 2163, 2163, 2163, 2164, 2164,
3857      2164, 2165, 2165, 2165, 2166, 2166, 2166, 2168, 2168, 2168,
3858      2169, 2169, 2169, 2170, 2170, 2170, 2171, 2171, 2171, 2172,
3859      2172, 2172, 2173, 2173, 2173, 2175, 2175, 2175, 2178, 2178,
3860      2178, 2181, 2181, 2181, 3427, 2148, 3428, 2182, 2182, 2182,
3861      3433, 2182, 3437, 2175, 2182, 1493, 2178, 1488, 2181, 3433,
3862      2166, 2184, 2184, 2184, 2185, 2185, 2185, 2186, 2186, 2186,
3863
3864      1487, 2186, 1486, 1484, 2186, 2197, 2197, 2197, 3429, 2184,
3865      3435, 2185, 2198, 2198, 2198, 3438, 2175, 2199, 2199, 2199,
3866      3441, 2199, 3428, 2197, 2199, 2200, 2200, 2200, 3437, 2198,
3867      2205, 2205, 2205, 2206, 2206, 2206, 2207, 2207, 2207, 2208,
3868      2208, 2208, 3436, 2208, 3435, 3429, 2208, 2210, 2210, 2210,
3869      2213, 2213, 2213, 2207, 2197, 2215, 2215, 2215, 3430, 2215,
3870      1477, 3438, 2215, 3434, 1476, 2210, 3443, 3441, 2213, 2218,
3871      2218, 2218, 3434, 2221, 2221, 2221, 3436, 2221, 3439, 2206,
3872      2221, 2228, 2228, 2228, 3447, 2228, 3439, 2218, 2228, 2231,
3873      2231, 2231, 2232, 2232, 2232, 3430, 2232, 3440, 2210, 2232,
3874
3875      2234, 2234, 2234, 3443, 2234, 3440, 2231, 2234, 2237, 2237,
3876      2237, 2238, 2238, 2238, 2240, 2240, 2240, 3442, 2240, 3447,
3877      3445, 2240, 2218, 2246, 2246, 2246, 2237, 2246, 3444, 2238,
3878      2246, 2249, 2249, 2249, 2250, 2250, 2250, 3446, 2250, 1458,
3879      3448, 2250, 2254, 2254, 2254, 3453, 2254, 1453, 2249, 2254,
3880      2258, 2258, 2258, 2259, 2259, 2259, 2260, 2260, 2260, 2237,
3881      2260, 3445, 3451, 2260, 3442, 3444, 2238, 2258, 2263, 2263,
3882      2263, 2259, 2264, 2264, 2264, 3448, 2264, 3453, 3446, 2264,
3883      2265, 2265, 2265, 3454, 2265, 2263, 3449, 2265, 2268, 2268,
3884      2268, 2270, 2270, 2270, 3450, 2270, 3452, 1450, 2270, 3451,
3885
3886      2276, 2276, 2276, 2278, 2278, 2278, 2268, 2279, 2279, 2279,
3887      3455, 2279, 3459, 3457, 2279, 3454, 3458, 2259, 2276, 3455,
3888      2278, 2280, 2280, 2280, 2282, 2282, 2282, 2283, 2283, 2283,
3889      3460, 2283, 3449, 3452, 2283, 2290, 2290, 2290, 3456, 2280,
3890      3450, 2282, 2293, 2293, 2293, 3457, 2293, 3456, 3458, 2293,
3891      2300, 2300, 2300, 2290, 2268, 2296, 2296, 2296, 3461, 2296,
3892      3459, 3463, 2296, 3462, 2302, 2302, 2302, 1449, 2300, 2303,
3893      2303, 2303, 2304, 2304, 2304, 3463, 2304, 1446, 3460, 2304,
3894      1441, 2280, 2302, 1432, 2307, 2307, 2307, 2303, 2307, 1431,
3895      3461, 2307, 2310, 2310, 2310, 3462, 2311, 2311, 2311, 1430,
3896
3897      1426, 2300, 2312, 2312, 2312, 2303, 2313, 2313, 2313, 1421,
3898      2310, 1417, 2310, 2311, 2314, 2314, 2314, 1409, 1404, 2312,
3899      2315, 2315, 2315, 2313, 2317, 2317, 2317, 2318, 2318, 2318,
3900      2302, 2314, 2319, 2319, 2319, 2323, 2323, 2323, 2315, 2320,
3901      2320, 2320, 2317, 1403, 1397, 2318, 1396, 2324, 2324, 2324,
3902      2319, 2324, 1395, 2312, 2324, 1394, 1389, 2320, 2327, 2327,
3903      2327, 2328, 2328, 2328, 2329, 2329, 2329, 2330, 2330, 2330,
3904      2313, 1388, 1387, 2314, 1386, 1372, 2327, 2333, 2333, 2333,
3905      2334, 2334, 2334, 1371, 2317, 2315, 2336, 2336, 2336, 2337,
3906      2337, 2337, 1370, 1369, 2319, 2339, 2339, 2339, 2340, 2340,
3907
3908      2340, 2341, 2341, 2341, 2342, 2342, 2342, 2345, 2345, 2345,
3909      2346, 2346, 2346, 2347, 2347, 2347, 1368, 2327, 2348, 2348,
3910      2348, 2350, 2350, 2350, 2353, 2353, 2353, 2354, 2354, 2354,
3911      1367, 2354, 1366, 1365, 2354, 2357, 2357, 2357, 1364, 2350,
3912      1354, 2353, 2358, 2358, 2358, 1353, 2360, 2360, 2360, 1352,
3913      2360, 1351, 2357, 2360, 2373, 2373, 2373, 2374, 2374, 2374,
3914      2358, 2374, 2375, 2375, 2374, 2375, 2376, 2376, 1330, 2376,
3915      1326, 1325, 2373, 2375, 2377, 2377, 2377, 2376, 1324, 1323,
3916      2375, 2378, 2378, 2378, 2376, 2382, 2382, 2382, 2384, 2384,
3917      2384, 1318, 2384, 1317, 1316, 2384, 2388, 2388, 2388, 1311,
3918
3919      1310, 2357, 2390, 2390, 2390, 2391, 2391, 2391, 2399, 2399,
3920      2399, 2404, 2404, 2404, 2388, 2373, 2405, 2405, 2405, 2390,
3921      2400, 2400, 2400, 2391, 2400, 1297, 1291, 2400, 1287, 2404,
3922      1286, 2410, 2410, 2410, 2405, 2410, 1285, 1284, 2410, 2447,
3923      2447, 2447, 2388, 2413, 2413, 2413, 2417, 2417, 2417, 1283,
3924      2418, 2418, 2418, 1282, 2418, 1281, 2391, 2418, 1279, 1278,
3925      2413, 1276, 1275, 2417, 2419, 2419, 2419, 2420, 2420, 2420,
3926      1274, 2420, 1269, 1261, 2420, 1259, 2405, 2423, 2423, 2423,
3927      1254, 1252, 2419, 2428, 2428, 2428, 2430, 2430, 2430, 2431,
3928      2431, 2431, 1243, 2431, 1238, 2423, 2431, 2434, 2434, 2434,
3929
3930      1227, 2428, 1225, 2430, 2435, 2435, 2435, 2436, 2436, 2436,
3931      1224, 2436, 1223, 1222, 2436, 2434, 2439, 2439, 2439, 1220,
3932      1219, 2435, 2440, 2440, 2440, 2445, 2445, 2445, 2449, 2449,
3933      2449, 1218, 1217, 2439, 2450, 2450, 2450, 1216, 1215, 2440,
3934      1213, 1212, 2445, 2451, 2451, 2451, 2449, 1211, 2434, 1210,
3935      2435, 2450, 2452, 2452, 2452, 2453, 2453, 2453, 2454, 2454,
3936      2454, 2451, 2455, 2455, 2455, 1209, 2455, 1208, 1207, 2455,
3937      2452, 2439, 1206, 2453, 1204, 2454, 2445, 2456, 2456, 2456,
3938      2457, 2457, 2457, 2440, 2458, 2458, 2458, 2459, 2459, 2459,
3939      1203, 1202, 2453, 1201, 2456, 1200, 1199, 2457, 2460, 2460,
3940
3941      2460, 2458, 1198, 2451, 1192, 2459, 2461, 2461, 2461, 2462,
3942      2462, 2462, 1191, 2452, 2464, 2464, 2464, 1190, 2465, 2465,
3943      2465, 2468, 2468, 2468, 2461, 1187, 1186, 2462, 2469, 2469,
3944      2469, 2457, 2464, 1185, 1183, 2458, 2465, 2470, 2470, 2470,
3945      2471, 2471, 2471, 2474, 2474, 2474, 2469, 2475, 2475, 2475,
3946      2477, 2477, 2477, 2478, 2478, 2478, 2482, 2482, 2482, 2485,
3947      2485, 2485, 2486, 2486, 2486, 1179, 2486, 1176, 1171, 2486,
3948      1162, 1161, 2461, 1158, 2482, 1157, 2485, 1156, 2464, 1155,
3949      2465, 2498, 2498, 2498, 2509, 2509, 2509, 2512, 2512, 2512,
3950      2515, 2515, 2515, 2517, 2517, 2517, 2518, 2518, 2518, 2498,
3951
3952      2518, 1154, 1140, 2518, 2519, 2519, 2519, 1133, 2515, 1125,
3953      2517, 2526, 2526, 2526, 2527, 2527, 2527, 2529, 2529, 2529,
3954      1124, 1123, 2519, 1120, 2531, 2531, 2531, 1117, 2526, 2537,
3955      2537, 2537, 2538, 2538, 2538, 2529, 2538, 1114, 1109, 2538,
3956      1106, 2498, 2531, 2540, 2540, 2540, 2537, 2542, 2542, 2542,
3957      1105, 2542, 1101, 1099, 2542, 1085, 2515, 2545, 2545, 2545,
3958      2540, 2547, 2547, 2547, 1084, 2551, 2551, 2551, 2553, 2553,
3959      2553, 2555, 2555, 2555, 1083, 2545, 2554, 2554, 2554, 2547,
3960      2554, 2531, 2551, 2554, 1082, 2553, 2556, 2556, 2556, 2555,
3961      2557, 2557, 2557, 1081, 2557, 1080, 1079, 2557, 2565, 2565,
3962
3963      2565, 1078, 1077, 2556, 2567, 2567, 2567, 2569, 2569, 2569,
3964      2571, 2571, 2571, 1076, 1072, 2565, 2572, 2572, 2572, 1068,
3965      2572, 1061, 1058, 2572, 1055, 2569, 1052, 2571, 2573, 2573,
3966      2573, 2574, 2574, 2574, 1051, 2575, 2575, 2575, 2576, 2576,
3967      2576, 1050, 2576, 1046, 1045, 2576, 2573, 1044, 1041, 2574,
3968      2579, 2579, 2579, 2575, 2580, 2580, 2580, 1040, 2580, 1039,
3969      1036, 2580, 2581, 2581, 2581, 1035, 1032, 2579, 2582, 2582,
3970      2582, 2583, 2583, 2583, 2585, 2585, 2585, 1031, 1027, 2581,
3971      1026, 1023, 2586, 2586, 2586, 2582, 2587, 2587, 2587, 2583,
3972      2591, 2591, 2591, 2595, 2595, 2595, 1022, 1021, 2574, 2575,
3973
3974      2586, 2596, 2596, 2596, 2587, 2600, 2600, 2600, 2591, 2601,
3975      2601, 2601, 1020, 2601, 1019, 1017, 2601, 2615, 2615, 2615,
3976      1016, 1015, 2600, 2630, 2630, 2630, 2633, 2633, 2633, 2634,
3977      2634, 2634, 2635, 2635, 2635, 2615, 2635, 1014, 1013, 2635,
3978      2638, 2638, 2638, 1012, 2633, 1011, 1010, 2587, 2641, 2641,
3979      2641, 2644, 2644, 2644, 1006, 2645, 2645, 2645, 2638, 2645,
3980      1001, 1000, 2645,  999,  996, 2641,  995,  994, 2644, 2647,
3981      2647, 2647, 2651, 2651, 2651,  992,  988, 2615, 2653, 2653,
3982      2653,  984, 2653,  983,  980, 2653,  977, 2647,  976, 2651,
3983      2657, 2657, 2657,  975, 2658, 2658, 2658, 2633, 2658,  974,
3984
3985       973, 2658, 2665, 2665, 2665,  972,  971, 2657, 2666, 2666,
3986      2666, 2667, 2667, 2667,  969, 2667,  968,  967, 2667, 2665,
3987      2668, 2668, 2668,  966,  965, 2666, 2669, 2669, 2669,  964,
3988      2669,  963,  962, 2669, 2672, 2672, 2672, 2668, 2674, 2674,
3989      2674,  961, 2674,  960,  958, 2674, 2682, 2682, 2682, 2683,
3990      2683, 2683, 2672, 2683,  957,  956, 2683, 2684, 2684, 2684,
3991      2685, 2685, 2685, 2682, 2686, 2686, 2686,  955, 2686,  954,
3992       953, 2686,  952,  951, 2684,  950,  949, 2685, 2689, 2689,
3993      2689, 2691, 2691, 2691, 2692, 2692, 2692, 2693, 2693, 2693,
3994       945, 2693,  944,  942, 2693,  941, 2689,  940,  939, 2691,
3995
3996       938,  934, 2692, 2696, 2696, 2696, 2697, 2697, 2697,  932,
3997      2697,  931,  930, 2697, 2698, 2698, 2698, 2699, 2699, 2699,
3998      2696, 2699,  929,  925, 2699, 2700, 2700, 2700, 2702, 2702,
3999      2702, 2698, 2707, 2707, 2707, 2708, 2708, 2708, 2712, 2712,
4000      2712,  924,  920, 2700,  916, 2692, 2702, 2691,  915, 2713,
4001      2713, 2713,  912, 2713,  911, 2712, 2713, 2731, 2731, 2731,
4002      2745, 2745, 2745, 2747, 2747, 2747, 2748, 2748, 2748, 2749,
4003      2749, 2749, 2750, 2750, 2750, 2731, 2751, 2751, 2751,  910,
4004      2747, 2752, 2752, 2752, 2748, 2752,  909,  908, 2752, 2750,
4005      2702,  907,  906, 2751, 2753, 2753, 2753,  903, 2753,  902,
4006
4007       901, 2753, 2756, 2756, 2756, 2757, 2757, 2757, 2731, 2761,
4008      2761, 2761, 2762, 2762, 2762, 2764, 2764, 2764, 2750, 2756,
4009      2763, 2763, 2763, 2757, 2763,  900, 2761, 2763, 2748, 2762,
4010       897,  896, 2764, 2766, 2766, 2766,  895, 2766,  892,  890,
4011      2766, 2775, 2775, 2775, 2776, 2776, 2776,  887, 2776,  886,
4012       885, 2776, 2777, 2777, 2777,  884, 2777,  883, 2775, 2777,
4013      2780, 2780, 2780, 2781, 2781, 2781,  880, 2781,  879,  878,
4014      2781, 2783, 2783, 2783, 2785, 2785, 2785, 2780, 2785,  877,
4015       876, 2785, 2788, 2788, 2788, 2789, 2789, 2789, 2783, 2789,
4016       873,  872, 2789, 2790, 2790, 2790, 2791, 2791, 2791, 2788,
4017
4018      2791,  871,  870, 2791, 2798, 2798, 2798, 2799, 2799, 2799,
4019      2790, 2800, 2800, 2800,  868, 2800,  865,  864, 2800, 2803,
4020      2803, 2803, 2798, 2803,  862, 2799, 2803, 2806, 2806, 2806,
4021      2809, 2809, 2809, 2811, 2811, 2811, 2812, 2812, 2812, 2815,
4022      2815, 2815,  859, 2815,  857, 2806, 2815, 2809, 2809, 2826,
4023      2826, 2826, 2835, 2835, 2835, 2798, 2849, 2849, 2849, 2850,
4024      2850, 2850, 2851, 2851, 2851,  854, 2826, 2853, 2853, 2853,
4025      2835, 2852, 2852, 2852, 2799, 2852,  853,  852, 2852, 2851,
4026      2854, 2854, 2854,  851,  849, 2853, 2855, 2855, 2855,  848,
4027      2855,  847,  844, 2855, 2860, 2860, 2860, 2854, 2857, 2857,
4028
4029      2857, 2835, 2857,  843,  842, 2857, 2861, 2861, 2861,  841,
4030      2861, 2860,  840, 2861, 2864, 2864, 2864,  839, 2853, 2865,
4031      2865, 2865,  834, 2865,  833,  832, 2865,  831, 2866, 2866,
4032      2866, 2864, 2866,  830,  829, 2866, 2869, 2869, 2869, 2870,
4033      2870, 2870,  828, 2870,  827,  826, 2870, 2878, 2878, 2878,
4034       825, 2878,  824, 2869, 2878, 2881, 2881, 2881,  823, 2881,
4035       821,  819, 2881, 2885, 2885, 2885, 2886, 2886, 2886,  818,
4036      2886,  815,  812, 2886, 2888, 2888, 2888,  809, 2888,  808,
4037      2885, 2888, 2891, 2891, 2891,  805, 2891,  804,  802, 2891,
4038      2900, 2900, 2900, 2901, 2901, 2901, 2906, 2906, 2906, 2909,
4039
4040      2909, 2909, 2910, 2910, 2910, 2911, 2911, 2911, 2900, 2911,
4041       801, 2901, 2911,  797, 2906,  796, 2909, 2909,  795, 2910,
4042      2910,  794,  791, 2911, 2912, 2912, 2912, 2913, 2913, 2913,
4043      2914, 2914, 2914, 2915, 2915, 2915, 2924, 2924, 2924, 2925,
4044      2925, 2925,  788, 2925,  787,  786, 2925, 2934, 2934, 2934,
4045      2947, 2947, 2947, 2924, 2948, 2948, 2948,  783,  782, 2901,
4046      2949, 2949, 2949,  781, 2949, 2934,  777, 2949, 2952, 2952,
4047      2952, 2953, 2953, 2953,  776, 2953,  775,  773, 2953,  762,
4048      2957, 2957, 2957,  760, 2957,  757, 2952, 2957, 2962, 2962,
4049      2962,  756, 2962,  755,  753, 2962, 2965, 2965, 2965,  752,
4050
4051      2965,  751,  747, 2965, 2968, 2968, 2968, 2975, 2975, 2975,
4052      2976, 2976, 2976, 2934, 2976,  746,  745, 2976, 2979, 2979,
4053      2979, 2968,  744,  741, 2975, 2994, 2994, 2994, 2996, 2996,
4054      2996, 3002, 3002, 3002,  740, 2979,  739, 3003, 3003, 3003,
4055       738, 3003,  737, 2994, 3003,  736, 2996,  735, 3002, 3002,
4056      3004, 3004, 3004,  733, 3004, 3003,  730, 3004, 3007, 3007,
4057      3007, 3008, 3008, 3008, 3009, 3009, 3009,  729, 3004, 3018,
4058      3018, 3018,  727, 3018,  725,  722, 3018,  721,  715, 2996,
4059      3005, 3005, 3005, 3005, 3005, 3005, 3005, 3005, 3005,  713,
4060       711, 3005, 3027, 3027, 3027,  708, 3005, 3005, 3005, 3005,
4061
4062      3005, 3036, 3036, 3036, 3037, 3037, 3037, 3042, 3042, 3042,
4063      3027, 3043, 3043, 3043,  707, 3043,  703,  702, 3043, 3044,
4064      3044, 3044, 3037,  701, 3042, 3005, 3005, 3006, 3006, 3006,
4065      3006, 3006, 3006, 3006, 3006, 3006, 3044,  700, 3006, 3050,
4066      3050, 3050,  697, 3006, 3006, 3006, 3006, 3006, 3051, 3051,
4067      3051,  696, 3051,  695,  694, 3051, 3050, 3052, 3052, 3052,
4068      3053, 3053, 3053,  691, 3053,  690,  689, 3053, 3066, 3066,
4069      3066,  688, 3006, 3006, 3052, 3072, 3072, 3072,  687, 3072,
4070       681,  680, 3072,  678,  672,  671, 3066,  667, 3091, 3091,
4071      3091,  661,  660, 3072, 3075, 3075, 3075, 3075, 3075, 3075,
4072
4073      3075, 3075, 3075,  656,  649, 3075, 3091, 3105, 3105, 3105,
4074      3075, 3075, 3075, 3075, 3075, 3102, 3102, 3102,  645, 3102,
4075       639,  635, 3102,  627, 3105, 3106, 3106, 3106,  626, 3106,
4076       625,  624, 3106, 3128, 3128, 3128, 3140, 3140, 3140, 3075,
4077      3075, 3076, 3076, 3076, 3076, 3076, 3076, 3076, 3076, 3076,
4078       623, 3128, 3076,  619, 3140, 3140,  612, 3076, 3076, 3076,
4079      3076, 3076, 3110, 3110, 3110,  611, 3110,  610,  606, 3110,
4080      3113, 3113, 3113,  599, 3113,  598,  594, 3113, 3157, 3157,
4081      3157, 3158, 3158, 3158,  588,  587, 3076, 3076, 3159, 3159,
4082      3159,  583, 3164, 3164, 3164, 3157, 3164,  575, 3158, 3164,
4083
4084      3167, 3167, 3167,  574,  570, 3159, 3178, 3178, 3178, 3182,
4085      3182, 3182, 3193, 3193, 3193,  561,  557, 3167, 3194, 3194,
4086      3194,  549, 3194,  548, 3178, 3194,  547, 3182,  543, 3193,
4087      3195, 3195, 3195, 3196, 3196, 3196,  537, 3196,  536,  535,
4088      3196, 3197, 3197, 3197, 3198, 3198, 3198, 3195, 3198,  531,
4089       525, 3198, 3205, 3205, 3205, 3206, 3206, 3206, 3197, 3206,
4090      3182,  524, 3206, 3215, 3215, 3215, 3225, 3225, 3225, 3205,
4091      3225,  520,  514, 3225,  513, 3228, 3228, 3228,  512, 3228,
4092       511, 3215, 3228, 3231, 3231, 3231,  510, 3231,  509,  508,
4093      3231, 3240, 3240, 3240,  504, 3240,  498,  497, 3240,  495,
4094
4095      3215, 3355, 3355, 3355, 3364, 3364, 3364,  494, 3364,  493,
4096       489, 3364, 3465, 3465, 3465, 3466, 3466, 3466,  482, 3355,
4097       477,  476, 3364,  474,  470,  464,  463,  462,  458,  452,
4098      3465,  448,  441, 3466, 3469, 3469, 3469, 3469, 3469, 3469,
4099      3469, 3469, 3469, 3470, 3470, 3470, 3470, 3470, 3470, 3470,
4100      3470, 3470, 3471, 3471, 3471, 3471, 3471, 3471, 3471, 3471,
4101      3471, 3472, 3472, 3472, 3472, 3472, 3472, 3472, 3472, 3472,
4102      3473, 3473, 3473, 3473, 3473, 3473, 3473, 3473, 3473, 3474,
4103      3474, 3474, 3474, 3474, 3474, 3474, 3474, 3474, 3475, 3475,
4104      3475, 3475, 3475, 3475, 3475, 3475, 3475, 3476, 3476, 3476,
4105
4106      3476, 3476, 3476, 3476, 3476, 3476, 3477, 3477, 3477, 3477,
4107      3477, 3477, 3477, 3477, 3477, 3478, 3478, 3478, 3478, 3478,
4108      3478, 3478, 3478, 3478, 3479, 3479, 3479, 3479, 3479, 3479,
4109      3479, 3479, 3479, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
4110      3480, 3480, 3481, 3481, 3481, 3481, 3481, 3481, 3481, 3481,
4111      3481, 3482, 3482, 3482, 3482, 3482, 3482, 3482, 3482, 3482,
4112      3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3484,
4113      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3485, 3485,
4114      3485, 3485, 3485, 3485, 3485, 3485, 3485, 3486, 3486, 3486,
4115      3486, 3486, 3486, 3486, 3486, 3486, 3487, 3487, 3487, 3487,
4116
4117      3487, 3487, 3487, 3487, 3487, 3488, 3488, 3488, 3488, 3488,
4118      3488, 3488, 3488, 3488, 3489, 3489, 3489, 3489, 3489, 3489,
4119      3489, 3489, 3489, 3490, 3490, 3490, 3490, 3490, 3490, 3490,
4120      3490, 3490, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
4121      3491, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492,
4122      3493, 3493, 3493, 3493, 3493, 3493, 3493, 3493, 3493, 3494,
4123      3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494, 3495, 3495,
4124      3495, 3495, 3495, 3495, 3495, 3495, 3495, 3496, 3496, 3496,
4125      3496, 3496, 3496, 3496, 3496, 3496, 3497, 3497, 3497, 3497,
4126      3497, 3497, 3497, 3497, 3497, 3498, 3498, 3498, 3498, 3498,
4127
4128      3498, 3498, 3498, 3498, 3499, 3499, 3499, 3499, 3499, 3499,
4129      3499, 3499, 3499, 3500, 3500, 3500, 3500, 3500, 3500, 3500,
4130      3500, 3500, 3501, 3501, 3501, 3501, 3501, 3501, 3501, 3501,
4131      3501, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
4132      3503, 3503, 3503, 3503, 3503, 3503, 3503, 3503, 3503, 3504,
4133      3504, 3504, 3504, 3504, 3504, 3504, 3504, 3504, 3505, 3505,
4134      3505, 3505, 3505, 3505, 3505, 3505, 3505, 3506, 3506, 3506,
4135      3506, 3506, 3506, 3506, 3506, 3506, 3507, 3507, 3507, 3507,
4136      3507, 3507, 3507, 3507, 3507, 3508, 3508, 3508, 3508, 3508,
4137      3508, 3508, 3508, 3508, 3509, 3509, 3509, 3509, 3509, 3509,
4138
4139      3509, 3509, 3509, 3510, 3510, 3510, 3510, 3510, 3510, 3510,
4140      3510, 3510, 3511, 3511, 3511, 3511, 3511, 3511, 3511, 3511,
4141      3511, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512,
4142      3513, 3513, 3513, 3513, 3513, 3513, 3513, 3513, 3513, 3514,
4143      3514, 3514, 3514, 3514, 3514, 3514, 3514, 3514, 3515, 3515,
4144      3515, 3515, 3515, 3515, 3515, 3515, 3515, 3516, 3516, 3516,
4145      3516, 3516, 3516, 3516, 3516, 3516, 3517, 3517, 3517, 3517,
4146      3517, 3517, 3517, 3517, 3517, 3518, 3518, 3518, 3518, 3518,
4147      3518, 3518, 3518, 3518, 3519, 3519, 3519, 3519, 3519, 3519,
4148      3519, 3519, 3519, 3520, 3520, 3520, 3520, 3520, 3520, 3520,
4149
4150      3520, 3520, 3521, 3521, 3521, 3521, 3521, 3521, 3521, 3521,
4151      3521, 3522, 3522, 3522, 3522, 3522, 3522, 3522, 3522, 3522,
4152      3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3524,
4153      3524, 3524, 3524, 3524, 3524, 3524, 3524, 3524, 3525, 3525,
4154      3525, 3525, 3525, 3525, 3525, 3525, 3525, 3526, 3526, 3526,
4155      3526, 3526, 3526, 3526, 3526, 3526, 3527, 3527, 3527, 3527,
4156      3527, 3527, 3527, 3527, 3527, 3528, 3528, 3528, 3528, 3528,
4157      3528, 3528, 3528, 3528, 3529, 3529, 3529, 3529, 3529, 3529,
4158      3529, 3529, 3529, 3530, 3530, 3530, 3530, 3530, 3530, 3530,
4159      3530, 3530, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
4160
4161      3531, 3532, 3532, 3532,  440,  439,  438, 3532, 3533, 3533,
4162      3533,  434,  430,  426, 3533, 3534, 3534, 3534,  424,  423,
4163       422, 3534, 3535, 3535, 3535,  418,  412,  411, 3535, 3536,
4164      3536, 3536,  407,  401,  400, 3536, 3537, 3537, 3537,  396,
4165       388,  387, 3537, 3538, 3538, 3538,  386,  385,  381, 3538,
4166      3539, 3539, 3539,  372,  366,  362, 3539, 3540, 3540, 3540,
4167       361,  357,  351, 3540, 3541, 3541, 3541,  350,  349,  345,
4168      3541, 3542, 3542, 3542,  338,  336,  335, 3542, 3543, 3543,
4169      3543,  331,  328,  326, 3543, 3544, 3544, 3544,  325,  324,
4170       320, 3544, 3545, 3545, 3545,  316,  313,  309, 3545, 3546,
4171
4172      3546, 3546,  306,  305,  297, 3546, 3547, 3547, 3547,  293,
4173       289,  288, 3547, 3548, 3548, 3548,  287,  281,  280, 3548,
4174      3549, 3549, 3549,  278,  275,  263, 3549, 3550, 3550, 3550,
4175         0,    0,    0, 3550, 3551, 3551, 3551,    0,    0,    0,
4176      3551, 3552, 3552, 3552,    0,    0,    0, 3552, 3553, 3553,
4177      3553,    0,    0,    0, 3553, 3554, 3554, 3554,    0,    0,
4178         0, 3554, 3555, 3555, 3555,    0,    0,    0, 3555, 3556,
4179      3556, 3556,    0,    0,    0, 3556, 3557, 3557, 3557,    0,
4180         0,    0, 3557, 3558, 3558, 3558,    0,    0,    0, 3558,
4181      3559, 3559, 3559,    0,    0,    0, 3559, 3560, 3560, 3560,
4182
4183         0,    0,    0, 3560, 3561, 3561, 3561, 3561, 3561, 3561,
4184      3561,    0, 3561, 3562, 3562, 3562,    0,    0,    0, 3562,
4185      3563,    0,    0,    0, 3563, 3564, 3564, 3564,    0,    0,
4186         0, 3564, 3565,    0,    0,    0, 3565, 3566, 3566, 3566,
4187         0,    0,    0, 3566, 3567,    0,    0,    0, 3567, 3568,
4188      3568, 3568,    0,    0,    0, 3568, 3569,    0,    0,    0,
4189      3569, 3570, 3570, 3570,    0,    0,    0, 3570, 3571,    0,
4190         0,    0, 3571, 3572, 3572, 3572,    0,    0,    0, 3572,
4191      3573,    0,    0,    0, 3573, 3574, 3574, 3574,    0,    0,
4192         0, 3574, 3575,    0,    0,    0, 3575, 3576, 3576, 3576,
4193
4194         0,    0,    0, 3576, 3577,    0,    0,    0, 3577, 3578,
4195      3578, 3578,    0,    0,    0, 3578, 3579,    0,    0,    0,
4196      3579, 3580, 3580, 3580,    0,    0,    0, 3580, 3581,    0,
4197         0,    0, 3581, 3582, 3582, 3582,    0,    0,    0, 3582,
4198      3583,    0,    0,    0, 3583, 3584, 3584, 3584,    0,    0,
4199         0, 3584, 3585,    0,    0,    0, 3585, 3586, 3586, 3586,
4200         0,    0,    0, 3586, 3587,    0,    0,    0, 3587, 3588,
4201      3588, 3588,    0,    0,    0, 3588, 3589,    0,    0,    0,
4202      3589, 3590, 3590, 3590,    0,    0,    0, 3590, 3591,    0,
4203         0,    0, 3591, 3592, 3592, 3592,    0,    0,    0, 3592,
4204
4205      3593,    0,    0,    0, 3593, 3594, 3594, 3594,    0,    0,
4206         0, 3594, 3595,    0,    0,    0, 3595, 3596, 3596, 3596,
4207         0,    0,    0, 3596, 3597,    0,    0,    0, 3597, 3598,
4208      3598, 3598,    0,    0,    0, 3598, 3599,    0,    0,    0,
4209      3599, 3600, 3600, 3600,    0,    0,    0, 3600, 3601,    0,
4210         0,    0, 3601, 3602, 3602, 3602,    0,    0,    0, 3602,
4211      3603,    0,    0,    0, 3603, 3604, 3604, 3604,    0,    0,
4212         0, 3604, 3605,    0,    0,    0, 3605, 3606, 3606, 3606,
4213         0,    0,    0, 3606, 3607,    0,    0,    0, 3607, 3608,
4214      3608, 3608,    0,    0,    0, 3608, 3609,    0,    0,    0,
4215
4216      3609, 3610, 3610, 3610,    0,    0,    0, 3610, 3611,    0,
4217         0,    0, 3611, 3612, 3612, 3612,    0,    0,    0, 3612,
4218      3613,    0,    0,    0, 3613, 3614, 3614, 3614,    0,    0,
4219         0, 3614, 3615,    0,    0,    0, 3615, 3616, 3616, 3616,
4220         0,    0,    0, 3616, 3617,    0,    0,    0, 3617, 3618,
4221      3618, 3618,    0,    0,    0, 3618, 3619,    0,    0,    0,
4222      3619, 3620, 3620, 3620, 3620, 3620, 3620, 3620, 3620, 3620,
4223      3621,    0,    0,    0,    0, 3621, 3622, 3622, 3622,    0,
4224         0,    0, 3622, 3623, 3623, 3623, 3623,    0,    0, 3623,
4225      3623, 3624, 3624, 3624,    0,    0,    0, 3624, 3625, 3625,
4226
4227      3625, 3625,    0,    0, 3625, 3625, 3626, 3626, 3626,    0,
4228         0,    0, 3626, 3627, 3627, 3627, 3627,    0,    0, 3627,
4229      3627, 3628, 3628, 3628,    0,    0,    0, 3628, 3629, 3629,
4230      3629, 3629,    0,    0, 3629, 3629, 3630, 3630, 3630,    0,
4231         0,    0, 3630, 3631, 3631, 3631, 3631,    0,    0, 3631,
4232      3631, 3632, 3632, 3632,    0,    0,    0, 3632, 3633, 3633,
4233      3633, 3633,    0,    0, 3633, 3633, 3634, 3634, 3634,    0,
4234         0,    0, 3634, 3635, 3635, 3635, 3635,    0,    0, 3635,
4235      3635, 3636, 3636, 3636,    0,    0,    0, 3636, 3637, 3637,
4236      3637, 3637,    0,    0, 3637, 3637, 3638, 3638, 3638,    0,
4237
4238         0,    0, 3638, 3639, 3639, 3639, 3639,    0,    0, 3639,
4239      3639, 3640, 3640, 3640,    0,    0,    0, 3640, 3641, 3641,
4240      3641, 3641,    0,    0, 3641, 3641, 3642, 3642, 3642,    0,
4241         0,    0, 3642, 3643, 3643, 3643, 3643,    0,    0, 3643,
4242      3643, 3644, 3644, 3644,    0,    0,    0, 3644, 3645, 3645,
4243      3645, 3645,    0,    0, 3645, 3645, 3646, 3646, 3646,    0,
4244         0,    0, 3646, 3647, 3647, 3647, 3647,    0,    0, 3647,
4245      3647, 3648, 3648, 3648,    0,    0,    0, 3648, 3649, 3649,
4246      3649, 3649,    0,    0, 3649, 3649, 3650, 3650, 3650, 3650,
4247         0, 3650,    0, 3650, 3651, 3651, 3651, 3651,    0,    0,
4248
4249      3651, 3651, 3652, 3652, 3652,    0,    0,    0, 3652, 3653,
4250      3653, 3653, 3653,    0,    0, 3653, 3653, 3654, 3654, 3654,
4251         0,    0,    0, 3654, 3655, 3655, 3655, 3655,    0,    0,
4252      3655, 3655, 3656, 3656, 3656,    0,    0,    0, 3656, 3657,
4253      3657, 3657, 3657,    0,    0, 3657, 3657, 3658, 3658, 3658,
4254         0,    0,    0, 3658, 3659, 3659, 3659, 3659,    0,    0,
4255      3659, 3659, 3660, 3660, 3660, 3660,    0, 3660,    0, 3660,
4256      3661, 3661, 3661, 3661,    0,    0, 3661, 3661, 3662, 3662,
4257      3662, 3662,    0, 3662,    0, 3662, 3663, 3663, 3663, 3663,
4258         0,    0, 3663, 3663, 3664, 3664, 3664,    0,    0,    0,
4259
4260      3664, 3665, 3665, 3665, 3665,    0,    0, 3665, 3665, 3666,
4261      3666, 3666, 3666,    0, 3666,    0, 3666, 3667, 3667, 3667,
4262      3667,    0,    0, 3667, 3667, 3668, 3668, 3668, 3668,    0,
4263      3668,    0, 3668, 3669, 3669, 3669, 3669,    0,    0, 3669,
4264      3669, 3670, 3670, 3670,    0,    0,    0, 3670, 3671, 3671,
4265      3671, 3671,    0,    0, 3671, 3671, 3672, 3672, 3672,    0,
4266         0,    0, 3672, 3673, 3673, 3673, 3673,    0,    0, 3673,
4267      3673, 3674, 3674, 3674, 3674,    0,    0, 3674, 3674, 3675,
4268      3675, 3675,    0,    0,    0, 3675, 3676, 3676, 3676, 3676,
4269         0,    0, 3676, 3676, 3677, 3677, 3677,    0,    0,    0,
4270
4271      3677, 3678, 3678, 3678, 3678,    0,    0, 3678, 3678, 3679,
4272      3679, 3679, 3679, 3679, 3679, 3679, 3679, 3679, 3680,    0,
4273      3680,    0,    0, 3680, 3681, 3681, 3681,    0,    0,    0,
4274      3681, 3682, 3682, 3682, 3682,    0,    0, 3682, 3682, 3683,
4275      3683, 3683, 3683,    0, 3683,    0, 3683, 3684, 3684, 3684,
4276      3684,    0,    0, 3684, 3684, 3685, 3685, 3685, 3685,    0,
4277      3685,    0, 3685, 3686, 3686, 3686, 3686,    0,    0, 3686,
4278      3686, 3687, 3687, 3687,    0,    0,    0, 3687, 3688, 3688,
4279      3688, 3688,    0,    0, 3688, 3688, 3689, 3689, 3689,    0,
4280         0,    0, 3689, 3690, 3690, 3690, 3690,    0,    0, 3690,
4281
4282      3690, 3691, 3691, 3691,    0,    0,    0, 3691, 3692, 3692,
4283      3692, 3692,    0,    0, 3692, 3692, 3693, 3693, 3693,    0,
4284         0,    0, 3693, 3694, 3694, 3694, 3694,    0,    0, 3694,
4285      3694, 3695, 3695, 3695, 3695,    0, 3695,    0, 3695, 3696,
4286      3696, 3696, 3696,    0,    0, 3696, 3696, 3697, 3697, 3697,
4287      3697,    0, 3697,    0, 3697, 3698, 3698, 3698, 3698,    0,
4288         0, 3698, 3698, 3699, 3699, 3699,    0,    0,    0, 3699,
4289      3700, 3700, 3700, 3700,    0,    0, 3700, 3700, 3701, 3701,
4290      3701,    0,    0,    0, 3701, 3702, 3702, 3702, 3702,    0,
4291         0, 3702, 3702, 3703, 3703, 3703, 3703,    0, 3703,    0,
4292
4293      3703, 3704, 3704, 3704, 3704,    0,    0, 3704, 3704, 3705,
4294      3705, 3705, 3705,    0, 3705,    0, 3705, 3706, 3706, 3706,
4295      3706,    0,    0, 3706, 3706, 3707, 3707, 3707,    0,    0,
4296         0, 3707, 3708, 3708, 3708, 3708,    0,    0, 3708, 3708,
4297      3709, 3709, 3709,    0,    0,    0, 3709, 3710, 3710, 3710,
4298      3710,    0,    0, 3710, 3710, 3711, 3711, 3711,    0,    0,
4299         0, 3711, 3712, 3712, 3712, 3712,    0,    0, 3712, 3712,
4300      3713, 3713, 3713,    0,    0,    0, 3713, 3714, 3714, 3714,
4301      3714,    0,    0, 3714, 3714, 3715, 3715, 3715,    0,    0,
4302         0, 3715, 3716, 3716, 3716, 3716,    0,    0, 3716, 3716,
4303
4304      3717, 3717, 3717,    0,    0,    0, 3717, 3718, 3718, 3718,
4305      3718,    0,    0, 3718, 3718, 3719, 3719, 3719,    0,    0,
4306         0, 3719, 3720, 3720, 3720, 3720,    0,    0, 3720, 3720,
4307      3721, 3721, 3721,    0,    0,    0, 3721, 3722, 3722, 3722,
4308      3722,    0,    0, 3722, 3722, 3723, 3723, 3723,    0,    0,
4309         0, 3723, 3724, 3724, 3724, 3724,    0,    0, 3724, 3724,
4310      3725, 3725, 3725, 3725,    0,    0, 3725, 3725, 3726, 3726,
4311      3726,    0,    0,    0, 3726, 3727, 3727, 3727, 3727,    0,
4312         0, 3727, 3727, 3728, 3728, 3728,    0,    0,    0, 3728,
4313      3729, 3729, 3729, 3729,    0,    0, 3729, 3729, 3730, 3730,
4314
4315      3730,    0,    0,    0, 3730, 3731, 3731, 3731, 3731,    0,
4316         0, 3731, 3731, 3732, 3732, 3732, 3732,    0,    0, 3732,
4317      3732, 3733, 3733, 3733,    0,    0,    0, 3733, 3734, 3734,
4318      3734, 3734,    0,    0, 3734, 3734, 3735, 3735, 3735,    0,
4319         0,    0, 3735, 3736, 3736, 3736, 3736,    0,    0, 3736,
4320      3736, 3737, 3737, 3737, 3737, 3737, 3737, 3737, 3737, 3737,
4321      3738, 3738, 3738, 3738, 3738, 3738, 3738, 3738, 3738, 3739,
4322      3739, 3739,    0,    0,    0, 3739, 3740, 3740, 3740, 3740,
4323         0,    0, 3740, 3740, 3741, 3741, 3741, 3741,    0,    0,
4324      3741, 3741, 3742, 3742, 3742,    0,    0,    0, 3742, 3743,
4325
4326      3743, 3743, 3743,    0,    0, 3743, 3743, 3744, 3744, 3744,
4327         0,    0,    0, 3744, 3745, 3745, 3745, 3745,    0,    0,
4328      3745, 3745, 3746, 3746, 3746,    0,    0,    0, 3746, 3747,
4329      3747, 3747, 3747,    0,    0, 3747, 3747, 3748, 3748, 3748,
4330         0,    0,    0, 3748, 3749, 3749, 3749,    0,    0,    0,
4331      3749, 3750, 3750, 3750, 3750,    0,    0, 3750, 3750, 3751,
4332      3751, 3751,    0,    0,    0, 3751, 3752, 3752, 3752, 3752,
4333         0,    0, 3752, 3752, 3753, 3753, 3753,    0,    0,    0,
4334      3753, 3754, 3754, 3754, 3754,    0,    0, 3754, 3754, 3755,
4335      3755, 3755,    0,    0,    0, 3755, 3756, 3756, 3756, 3756,
4336
4337         0,    0, 3756, 3756, 3757, 3757, 3757,    0,    0,    0,
4338      3757, 3758, 3758, 3758, 3758,    0,    0, 3758, 3758, 3759,
4339      3759, 3759, 3759,    0,    0, 3759, 3759, 3760, 3760, 3760,
4340      3760,    0,    0, 3760, 3760, 3761, 3761, 3761,    0,    0,
4341         0, 3761, 3762, 3762, 3762, 3762,    0,    0, 3762, 3762,
4342      3763, 3763, 3763, 3763,    0, 3763,    0, 3763, 3764, 3764,
4343      3764, 3764,    0,    0, 3764, 3764, 3765, 3765, 3765,    0,
4344         0,    0, 3765, 3766, 3766, 3766, 3766,    0,    0, 3766,
4345      3766, 3767, 3767, 3767,    0,    0,    0, 3767, 3768, 3768,
4346      3768, 3768,    0,    0, 3768, 3768, 3769, 3769, 3769,    0,
4347
4348         0,    0, 3769, 3770, 3770, 3770, 3770,    0,    0, 3770,
4349      3770, 3771, 3771, 3771,    0,    0,    0, 3771, 3772, 3772,
4350      3772, 3772,    0,    0, 3772, 3772, 3773, 3773, 3773,    0,
4351         0,    0, 3773, 3774, 3774, 3774, 3774,    0,    0, 3774,
4352      3774, 3775, 3775, 3775,    0,    0,    0, 3775, 3776, 3776,
4353      3776, 3776,    0,    0, 3776, 3776, 3777, 3777, 3777,    0,
4354         0,    0, 3777, 3778, 3778, 3778, 3778,    0,    0, 3778,
4355      3778, 3779, 3779, 3779, 3779,    0,    0, 3779, 3779, 3780,
4356      3780, 3780,    0,    0,    0, 3780, 3781, 3781, 3781, 3781,
4357         0,    0, 3781, 3781, 3782, 3782, 3782,    0,    0,    0,
4358
4359      3782, 3783, 3783, 3783, 3783,    0,    0, 3783, 3783, 3784,
4360      3784, 3784, 3784,    0, 3784,    0, 3784, 3785, 3785, 3785,
4361      3785,    0,    0, 3785, 3785, 3786, 3786, 3786, 3786,    0,
4362         0, 3786, 3786, 3787, 3787, 3787, 3787,    0, 3787,    0,
4363      3787, 3788, 3788, 3788, 3788,    0,    0, 3788, 3788, 3789,
4364      3789, 3789, 3789,    0, 3789,    0, 3789, 3790, 3790, 3790,
4365      3790,    0,    0, 3790, 3790, 3791, 3791, 3791, 3791, 3791,
4366      3791, 3791, 3791, 3791, 3792, 3792, 3792, 3792, 3792, 3792,
4367      3792, 3792, 3792, 3793, 3793, 3793,    0,    0,    0, 3793,
4368      3794, 3794, 3794, 3794,    0,    0, 3794, 3794, 3795, 3795,
4369
4370      3795, 3795,    0,    0, 3795, 3795, 3796, 3796, 3796,    0,
4371         0,    0, 3796, 3797, 3797, 3797, 3797,    0,    0, 3797,
4372      3797, 3798, 3798, 3798,    0,    0,    0, 3798, 3799, 3799,
4373      3799, 3799,    0,    0, 3799, 3799, 3800, 3800, 3800,    0,
4374         0,    0, 3800, 3801, 3801, 3801, 3801,    0,    0, 3801,
4375      3801, 3802, 3802, 3802,    0,    0,    0, 3802, 3803, 3803,
4376      3803,    0,    0,    0, 3803, 3804, 3804, 3804, 3804,    0,
4377         0, 3804, 3804, 3805, 3805, 3805,    0,    0,    0, 3805,
4378      3806, 3806, 3806, 3806,    0,    0, 3806, 3806, 3807, 3807,
4379      3807, 3807,    0, 3807,    0, 3807, 3808, 3808, 3808, 3808,
4380
4381         0,    0, 3808, 3808, 3809, 3809, 3809,    0,    0,    0,
4382      3809, 3810, 3810, 3810, 3810,    0,    0, 3810, 3810, 3811,
4383      3811, 3811, 3811,    0, 3811,    0, 3811, 3812, 3812, 3812,
4384      3812,    0,    0, 3812, 3812, 3813, 3813, 3813, 3813,    0,
4385         0, 3813, 3813, 3814, 3814, 3814,    0,    0,    0, 3814,
4386      3815, 3815, 3815, 3815,    0,    0, 3815, 3815, 3816, 3816,
4387      3816, 3816,    0, 3816,    0, 3816, 3817, 3817, 3817, 3817,
4388         0,    0, 3817, 3817, 3818, 3818, 3818,    0,    0,    0,
4389      3818, 3819, 3819, 3819, 3819,    0,    0, 3819, 3819, 3820,
4390      3820, 3820,    0,    0,    0, 3820, 3821, 3821, 3821, 3821,
4391
4392         0,    0, 3821, 3821, 3822, 3822, 3822,    0,    0,    0,
4393      3822, 3823, 3823, 3823, 3823,    0,    0, 3823, 3823, 3824,
4394      3824, 3824,    0,    0,    0, 3824, 3825, 3825, 3825, 3825,
4395         0,    0, 3825, 3825, 3826, 3826, 3826,    0,    0,    0,
4396      3826, 3827, 3827, 3827, 3827,    0,    0, 3827, 3827, 3828,
4397      3828, 3828, 3828,    0, 3828,    0, 3828, 3829, 3829, 3829,
4398      3829,    0,    0, 3829, 3829, 3830, 3830, 3830,    0,    0,
4399         0, 3830, 3831, 3831, 3831, 3831,    0,    0, 3831, 3831,
4400      3832, 3832, 3832, 3832,    0,    0, 3832, 3832, 3833, 3833,
4401      3833, 3833,    0, 3833,    0, 3833, 3834, 3834, 3834, 3834,
4402
4403         0,    0, 3834, 3834, 3835, 3835, 3835,    0,    0,    0,
4404      3835, 3836, 3836, 3836, 3836,    0,    0, 3836, 3836, 3837,
4405      3837, 3837, 3837,    0,    0, 3837, 3837, 3838, 3838, 3838,
4406      3838,    0,    0, 3838, 3838, 3839, 3839, 3839, 3839,    0,
4407         0, 3839, 3839, 3840, 3840, 3840, 3840,    0,    0, 3840,
4408      3840, 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841,
4409      3842, 3842, 3842, 3842, 3842, 3842, 3842, 3842, 3842, 3843,
4410      3843, 3843, 3843,    0, 3843,    0, 3843, 3844, 3844, 3844,
4411      3844,    0,    0, 3844, 3844, 3845, 3845, 3845, 3845,    0,
4412         0, 3845, 3845, 3846, 3846, 3846,    0,    0,    0, 3846,
4413
4414      3847, 3847, 3847, 3847,    0,    0, 3847, 3847, 3848, 3848,
4415      3848,    0,    0,    0, 3848, 3849, 3849, 3849, 3849,    0,
4416         0, 3849, 3849, 3850, 3850, 3850, 3850,    0, 3850,    0,
4417      3850, 3851, 3851, 3851, 3851,    0,    0, 3851, 3851, 3852,
4418      3852, 3852, 3852,    0, 3852,    0, 3852, 3853, 3853, 3853,
4419      3853,    0, 3853,    0, 3853, 3854, 3854, 3854, 3854,    0,
4420         0, 3854, 3854, 3855, 3855, 3855,    0,    0,    0, 3855,
4421      3856, 3856, 3856, 3856,    0,    0, 3856, 3856, 3857, 3857,
4422      3857, 3857,    0,    0, 3857, 3857, 3858, 3858, 3858,    0,
4423         0,    0, 3858, 3859, 3859, 3859, 3859,    0, 3859,    0,
4424
4425      3859, 3860, 3860, 3860, 3860,    0,    0, 3860, 3860, 3861,
4426      3861, 3861, 3861,    0,    0, 3861, 3861, 3862, 3862, 3862,
4427         0,    0,    0, 3862, 3863, 3863, 3863, 3863,    0,    0,
4428      3863, 3863, 3864, 3864, 3864, 3864,    0, 3864,    0, 3864,
4429      3865, 3865, 3865, 3865,    0,    0, 3865, 3865, 3866, 3866,
4430      3866,    0,    0,    0, 3866, 3867, 3867, 3867,    0,    0,
4431         0, 3867, 3868, 3868, 3868, 3868,    0,    0, 3868, 3868,
4432      3869, 3869, 3869,    0,    0,    0, 3869, 3870, 3870, 3870,
4433      3870,    0,    0, 3870, 3870, 3871, 3871, 3871,    0,    0,
4434         0, 3871, 3872, 3872, 3872,    0,    0,    0, 3872, 3873,
4435
4436      3873, 3873, 3873,    0,    0, 3873, 3873, 3874, 3874, 3874,
4437         0,    0,    0, 3874, 3875, 3875, 3875, 3875,    0,    0,
4438      3875, 3875, 3876, 3876, 3876,    0,    0,    0, 3876, 3877,
4439      3877, 3877, 3877,    0,    0, 3877, 3877, 3878, 3878, 3878,
4440      3878,    0,    0, 3878, 3878, 3879, 3879, 3879, 3879,    0,
4441         0, 3879, 3879, 3880, 3880, 3880,    0,    0,    0, 3880,
4442      3881, 3881, 3881, 3881,    0,    0, 3881, 3881, 3882, 3882,
4443      3882, 3882,    0,    0, 3882, 3882, 3883, 3883, 3883, 3883,
4444         0,    0, 3883, 3883, 3884, 3884, 3884, 3884,    0,    0,
4445      3884, 3884, 3885, 3885, 3885, 3885, 3885, 3885, 3885, 3885,
4446
4447      3885, 3886, 3886, 3886, 3886, 3886, 3886, 3886, 3886, 3886,
4448      3887, 3887, 3887, 3887,    0,    0, 3887, 3887, 3888, 3888,
4449      3888, 3888,    0,    0, 3888, 3888, 3889, 3889, 3889,    0,
4450         0,    0, 3889, 3890, 3890, 3890,    0,    0,    0, 3890,
4451      3891, 3891, 3891, 3891,    0,    0, 3891, 3891, 3892, 3892,
4452      3892, 3892,    0,    0, 3892, 3892, 3893, 3893, 3893,    0,
4453         0,    0, 3893, 3894, 3894, 3894, 3894,    0,    0, 3894,
4454      3894, 3895, 3895, 3895,    0,    0,    0, 3895, 3896, 3896,
4455      3896, 3896,    0,    0, 3896, 3896, 3897, 3897, 3897,    0,
4456         0,    0, 3897, 3898, 3898, 3898,    0,    0,    0, 3898,
4457
4458      3899, 3899, 3899, 3899,    0,    0, 3899, 3899, 3900, 3900,
4459      3900, 3900,    0,    0, 3900, 3900, 3901, 3901, 3901,    0,
4460         0,    0, 3901, 3902, 3902, 3902, 3902,    0,    0, 3902,
4461      3902, 3903, 3903, 3903, 3903,    0,    0, 3903, 3903, 3904,
4462      3904, 3904,    0,    0,    0, 3904, 3905, 3905, 3905,    0,
4463         0,    0, 3905, 3906, 3906, 3906, 3906,    0,    0, 3906,
4464      3906, 3907, 3907, 3907,    0,    0,    0, 3907, 3908, 3908,
4465      3908, 3908,    0,    0, 3908, 3908, 3909, 3909, 3909,    0,
4466         0,    0, 3909, 3910, 3910, 3910,    0,    0,    0, 3910,
4467      3911, 3911, 3911,    0,    0,    0, 3911, 3912, 3912, 3912,
4468
4469      3912,    0,    0, 3912, 3912, 3913, 3913, 3913,    0,    0,
4470         0, 3913, 3914, 3914, 3914, 3914,    0,    0, 3914, 3914,
4471      3915, 3915, 3915, 3915,    0,    0, 3915, 3915, 3916, 3916,
4472      3916, 3916,    0,    0, 3916, 3916, 3917, 3917, 3917, 3917,
4473         0, 3917,    0, 3917, 3918, 3918, 3918, 3918,    0,    0,
4474      3918, 3918, 3919, 3919, 3919, 3919,    0,    0, 3919, 3919,
4475      3920, 3920, 3920, 3920,    0,    0, 3920, 3920, 3921, 3921,
4476      3921, 3921,    0,    0, 3921, 3921, 3922, 3922, 3922, 3922,
4477      3922, 3922, 3922, 3922, 3922, 3923, 3923, 3923, 3923, 3923,
4478      3923, 3923, 3923, 3923, 3924, 3924, 3924, 3924,    0,    0,
4479
4480      3924, 3924, 3925, 3925, 3925, 3925,    0,    0, 3925, 3925,
4481      3926, 3926, 3926,    0,    0,    0, 3926, 3927, 3927, 3927,
4482      3927,    0, 3927,    0, 3927, 3928, 3928, 3928, 3928,    0,
4483         0, 3928, 3928, 3929, 3929, 3929,    0,    0,    0, 3929,
4484      3930, 3930, 3930, 3930,    0,    0, 3930, 3930, 3931, 3931,
4485      3931, 3931,    0, 3931,    0, 3931, 3932, 3932, 3932, 3932,
4486         0,    0, 3932, 3932, 3933, 3933, 3933,    0,    0,    0,
4487      3933, 3934, 3934, 3934,    0,    0,    0, 3934, 3935, 3935,
4488      3935, 3935,    0,    0, 3935, 3935, 3936, 3936, 3936, 3936,
4489         0,    0, 3936, 3936, 3937, 3937, 3937,    0,    0,    0,
4490
4491      3937, 3938, 3938, 3938, 3938,    0,    0, 3938, 3938, 3939,
4492      3939, 3939, 3939,    0,    0, 3939, 3939, 3940, 3940, 3940,
4493         0,    0,    0, 3940, 3941, 3941, 3941,    0,    0,    0,
4494      3941, 3942, 3942, 3942, 3942,    0, 3942,    0, 3942, 3943,
4495      3943, 3943, 3943,    0,    0, 3943, 3943, 3944, 3944, 3944,
4496      3944,    0, 3944,    0, 3944, 3945, 3945, 3945,    0,    0,
4497         0, 3945, 3946, 3946, 3946,    0,    0,    0, 3946, 3947,
4498      3947, 3947, 3947,    0,    0, 3947, 3947, 3948, 3948, 3948,
4499      3948,    0, 3948,    0, 3948, 3949, 3949, 3949, 3949,    0,
4500         0, 3949, 3949, 3950, 3950, 3950, 3950,    0,    0, 3950,
4501
4502      3950, 3951, 3951, 3951, 3951,    0,    0, 3951, 3951, 3952,
4503      3952, 3952, 3952,    0, 3952,    0, 3952, 3953, 3953, 3953,
4504      3953,    0,    0, 3953, 3953, 3954, 3954, 3954, 3954,    0,
4505         0, 3954, 3954, 3955, 3955, 3955, 3955,    0,    0, 3955,
4506      3955, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956,
4507      3957, 3957, 3957, 3957, 3957, 3957, 3957, 3957, 3957, 3958,
4508      3958, 3958, 3958,    0,    0, 3958, 3958, 3959, 3959, 3959,
4509         0,    0,    0, 3959, 3960, 3960, 3960,    0,    0,    0,
4510      3960, 3961, 3961, 3961, 3961,    0,    0, 3961, 3961, 3962,
4511      3962, 3962,    0,    0,    0, 3962, 3963, 3963, 3963, 3963,
4512
4513         0,    0, 3963, 3963, 3964, 3964, 3964, 3964,    0,    0,
4514      3964, 3964, 3965, 3965, 3965,    0,    0,    0, 3965, 3966,
4515      3966, 3966,    0,    0,    0, 3966, 3967, 3967, 3967, 3967,
4516         0,    0, 3967, 3967, 3968, 3968, 3968,    0,    0,    0,
4517      3968, 3969, 3969, 3969,    0,    0,    0, 3969, 3970, 3970,
4518      3970,    0,    0,    0, 3970, 3971, 3971, 3971, 3971,    0,
4519         0, 3971, 3971, 3972, 3972, 3972,    0,    0,    0, 3972,
4520      3973, 3973, 3973,    0,    0,    0, 3973, 3974, 3974, 3974,
4521         0,    0,    0, 3974, 3975, 3975, 3975, 3975, 3975, 3975,
4522      3975, 3975, 3975, 3976, 3976, 3976, 3976, 3976, 3976, 3976,
4523
4524      3976, 3976, 3977, 3977, 3977, 3977, 3977, 3977, 3977, 3977,
4525      3977, 3978, 3978, 3978, 3978, 3978, 3978, 3978, 3978, 3978,
4526      3979, 3979, 3979, 3979, 3979, 3979, 3979, 3979, 3979, 3980,
4527      3980, 3980, 3980, 3980, 3980, 3980, 3980, 3980, 3468, 3468,
4528      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
4529      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
4530      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
4531      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
4532      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
4533      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
4534
4535      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
4536      3468, 3468, 3468
4537     } ;
4538
4539 /* Table of booleans, true if rule could match eol. */
4540 static yyconst flex_int32_t yy_rule_can_match_eol[592] =
4541     {   0,
4542 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
4543     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4544     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4545     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4546     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
4547     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4548     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
4549     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 
4550     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4551     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4552     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
4553     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
4554     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 
4555     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4556     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4557     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4558     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 
4559     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
4560     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
4561     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4562     1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
4563     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
4564     1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 
4565     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 
4566     0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
4567     0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4568     1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 
4569     0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
4570     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 
4571     1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,     };
4572
4573 static yy_state_type yy_last_accepting_state;
4574 static char *yy_last_accepting_cpos;
4575
4576 extern int surf_parse__flex_debug;
4577 int surf_parse__flex_debug = 0;
4578
4579 /* The intent behind this definition is that it'll catch
4580  * any uses of REJECT which flex missed.
4581  */
4582 #define REJECT reject_used_but_not_detected
4583 #define yymore() yymore_used_but_not_detected
4584 #define YY_MORE_ADJ 0
4585 #define YY_RESTORE_YY_MORE_OFFSET
4586 char *surf_parse_text;
4587 /* Validating XML processor for src/surf/simgrid.dtd.
4588  *
4589  * This program was generated with the FleXML XML processor generator.
4590  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
4591  * FleXML is Copyright (C) 2003-2013 Martin Quinson.  All rights reserved.
4592  * (1.9.6).
4593  * 
4594  * There are two, intertwined parts to this program, part A and part B.
4595  *
4596  * Part A
4597  * ------
4598  * 
4599  * Some parts, here collectively called "Part A", are found in the 
4600  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
4601  * and Copyright (C) 2003-2013 Martin Quinson. All rights reserved.
4602  *
4603  * You can redistribute, use, perform, display and/or modify "Part A"
4604  * provided the following two conditions hold:
4605  *
4606  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
4607  *    FleXML; without even the implied warranty of MERCHANTABILITY or
4608  *    FITNESS FOR A PARTICULAR PURPOSE.
4609  *
4610  * 2. The program distribution conditions do not in any way affect the
4611  *    distribution conditions of the FleXML system used to generate this
4612  *    file or any version of FleXML derived from that system.
4613  *
4614  * Notice that these are explicit rights granted to you for files
4615  * generated by the FleXML system.  For your rights in connection with
4616  * the FleXML system itself please consult the GNU General Public License.
4617  * 
4618  * Part B
4619  * ------
4620  * 
4621  * The other parts, here collectively called "Part B", and which came 
4622  * from the DTD used by FleXML to generate this program, can be 
4623  * distributed (or not, as the case may be) under the terms of whoever
4624  * wrote them, provided these terms respect and obey the two conditions 
4625  * above under the heading "Part A".
4626  *
4627  * The author of and contributors to FleXML specifically disclaim
4628  * any copyright interest in "Part B", unless "Part B" was written 
4629  * by the author of or contributors to FleXML.
4630  * 
4631  */
4632
4633 /* Version strings. */
4634 const char surfxml_flexml_version[] = "1.9.6";
4635
4636 /* ANSI headers. */
4637 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
4638 #include <stdio.h>
4639 #include <string.h>
4640 #include <assert.h>
4641 #include <stdarg.h>
4642 #include <ctype.h>
4643      
4644 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
4645 # ifndef __STRICT_ANSI__
4646 #  include <io.h>
4647 #  include <process.h>
4648 # endif
4649 #else
4650 # include <unistd.h>
4651 #endif
4652      
4653 #ifndef FLEXML_INDEXSTACKSIZE
4654 #define FLEXML_INDEXSTACKSIZE 1000
4655 #endif
4656
4657 /* Generated definitions. */
4658 #define FLEXML_yylineno
4659 #ifndef FLEXML_BUFFERSTACKSIZE
4660 #define FLEXML_BUFFERSTACKSIZE 1000000
4661 #endif
4662 #define FLEXML_NEED_BUFFERLIT
4663
4664 /* XML processor api. */
4665 /* FleXML-provided data. */
4666 int surfxml_pcdata_ix;
4667 extern char *surfxml_bufferstack;
4668 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
4669 AT_surfxml_backbone_bandwidth AX_surfxml_backbone_bandwidth;
4670 #define A_surfxml_backbone_bandwidth (surfxml_bufferstack + AX_surfxml_backbone_bandwidth)
4671 short int surfxml_backbone_bandwidth_isset;
4672 AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
4673 #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
4674 short int surfxml_storage_typeId_isset;
4675 AT_surfxml_config_id AX_surfxml_config_id;
4676 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
4677 short int surfxml_config_id_isset;
4678 AT_surfxml_storage_content AX_surfxml_storage_content;
4679 #define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
4680 short int surfxml_storage_content_isset;
4681 AT_surfxml_process_function AX_surfxml_process_function;
4682 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
4683 short int surfxml_process_function_isset;
4684 AT_surfxml_host___link_up AX_surfxml_host___link_up;
4685 #define A_surfxml_host___link_up (surfxml_bufferstack + AX_surfxml_host___link_up)
4686 short int surfxml_host___link_up_isset;
4687 AT_surfxml_peer_lat AX_surfxml_peer_lat;
4688 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
4689 short int surfxml_peer_lat_isset;
4690 AT_surfxml_bypassASroute_gw___dst AX_surfxml_bypassASroute_gw___dst;
4691 #define A_surfxml_bypassASroute_gw___dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___dst)
4692 short int surfxml_bypassASroute_gw___dst_isset;
4693 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
4694 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
4695 short int surfxml_ASroute_symmetrical_isset;
4696 AT_surfxml_cabinet_id AX_surfxml_cabinet_id;
4697 #define A_surfxml_cabinet_id (surfxml_bufferstack + AX_surfxml_cabinet_id)
4698 short int surfxml_cabinet_id_isset;
4699 AT_surfxml_AS_id AX_surfxml_AS_id;
4700 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
4701 short int surfxml_AS_id_isset;
4702 AT_surfxml_cluster_state___file AX_surfxml_cluster_state___file;
4703 #define A_surfxml_cluster_state___file (surfxml_bufferstack + AX_surfxml_cluster_state___file)
4704 short int surfxml_cluster_state___file_isset;
4705 AT_surfxml_process_host AX_surfxml_process_host;
4706 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
4707 short int surfxml_process_host_isset;
4708 AT_surfxml_cabinet_power AX_surfxml_cabinet_power;
4709 #define A_surfxml_cabinet_power (surfxml_bufferstack + AX_surfxml_cabinet_power)
4710 short int surfxml_cabinet_power_isset;
4711 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
4712 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
4713 short int surfxml_ASroute_dst_isset;
4714 AT_surfxml_link_bandwidth___file AX_surfxml_link_bandwidth___file;
4715 #define A_surfxml_link_bandwidth___file (surfxml_bufferstack + AX_surfxml_link_bandwidth___file)
4716 short int surfxml_link_bandwidth___file_isset;
4717 AT_surfxml_cluster_loopback___bw AX_surfxml_cluster_loopback___bw;
4718 #define A_surfxml_cluster_loopback___bw (surfxml_bufferstack + AX_surfxml_cluster_loopback___bw)
4719 short int surfxml_cluster_loopback___bw_isset;
4720 AT_surfxml_random_generator AX_surfxml_random_generator;
4721 #define A_surfxml_random_generator AX_surfxml_random_generator
4722 short int surfxml_random_generator_isset;
4723 AT_surfxml_cluster_bb___bw AX_surfxml_cluster_bb___bw;
4724 #define A_surfxml_cluster_bb___bw (surfxml_bufferstack + AX_surfxml_cluster_bb___bw)
4725 short int surfxml_cluster_bb___bw_isset;
4726 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
4727 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
4728 short int surfxml_peer_coordinates_isset;
4729 AT_surfxml_cabinet_suffix AX_surfxml_cabinet_suffix;
4730 #define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix)
4731 short int surfxml_cabinet_suffix_isset;
4732 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
4733 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
4734 short int surfxml_ASroute_src_isset;
4735 AT_surfxml_cluster_limiter___link AX_surfxml_cluster_limiter___link;
4736 #define A_surfxml_cluster_limiter___link (surfxml_bufferstack + AX_surfxml_cluster_limiter___link)
4737 short int surfxml_cluster_limiter___link_isset;
4738 AT_surfxml_host_core AX_surfxml_host_core;
4739 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
4740 short int surfxml_host_core_isset;
4741 AT_surfxml_storage___type_id AX_surfxml_storage___type_id;
4742 #define A_surfxml_storage___type_id (surfxml_bufferstack + AX_surfxml_storage___type_id)
4743 short int surfxml_storage___type_id_isset;
4744 AT_surfxml_storage___type_content___type AX_surfxml_storage___type_content___type;
4745 #define A_surfxml_storage___type_content___type (surfxml_bufferstack + AX_surfxml_storage___type_content___type)
4746 short int surfxml_storage___type_content___type_isset;
4747 AT_surfxml_link_id AX_surfxml_link_id;
4748 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
4749 short int surfxml_link_id_isset;
4750 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
4751 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
4752 short int surfxml_trace_periodicity_isset;
4753 AT_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction;
4754 #define A_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction
4755 short int surfxml_link___ctn_direction_isset;
4756 AT_surfxml_storage_content___type AX_surfxml_storage_content___type;
4757 #define A_surfxml_storage_content___type (surfxml_bufferstack + AX_surfxml_storage_content___type)
4758 short int surfxml_storage_content___type_isset;
4759 AT_surfxml_host_power AX_surfxml_host_power;
4760 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
4761 short int surfxml_host_power_isset;
4762 AT_surfxml_peer_id AX_surfxml_peer_id;
4763 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
4764 short int surfxml_peer_id_isset;
4765 AT_surfxml_peer_state___file AX_surfxml_peer_state___file;
4766 #define A_surfxml_peer_state___file (surfxml_bufferstack + AX_surfxml_peer_state___file)
4767 short int surfxml_peer_state___file_isset;
4768 AT_surfxml_cluster_core AX_surfxml_cluster_core;
4769 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
4770 short int surfxml_cluster_core_isset;
4771 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
4772 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
4773 short int surfxml_cluster_radical_isset;
4774 AT_surfxml_mount_storageId AX_surfxml_mount_storageId;
4775 #define A_surfxml_mount_storageId (surfxml_bufferstack + AX_surfxml_mount_storageId)
4776 short int surfxml_mount_storageId_isset;
4777 AT_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy;
4778 #define A_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy
4779 short int surfxml_link_sharing___policy_isset;
4780 AT_surfxml_peer_bw___in AX_surfxml_peer_bw___in;
4781 #define A_surfxml_peer_bw___in (surfxml_bufferstack + AX_surfxml_peer_bw___in)
4782 short int surfxml_peer_bw___in_isset;
4783 AT_surfxml_include_file AX_surfxml_include_file;
4784 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
4785 short int surfxml_include_file_isset;
4786 AT_surfxml_cluster_availability___file AX_surfxml_cluster_availability___file;
4787 #define A_surfxml_cluster_availability___file (surfxml_bufferstack + AX_surfxml_cluster_availability___file)
4788 short int surfxml_cluster_availability___file_isset;
4789 AT_surfxml_cluster_bb___lat AX_surfxml_cluster_bb___lat;
4790 #define A_surfxml_cluster_bb___lat (surfxml_bufferstack + AX_surfxml_cluster_bb___lat)
4791 short int surfxml_cluster_bb___lat_isset;
4792 AT_surfxml_AS_routing AX_surfxml_AS_routing;
4793 #define A_surfxml_AS_routing AX_surfxml_AS_routing
4794 short int surfxml_AS_routing_isset;
4795 AT_surfxml_random_min AX_surfxml_random_min;
4796 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
4797 short int surfxml_random_min_isset;
4798 AT_surfxml_cluster_router___id AX_surfxml_cluster_router___id;
4799 #define A_surfxml_cluster_router___id (surfxml_bufferstack + AX_surfxml_cluster_router___id)
4800 short int surfxml_cluster_router___id_isset;
4801 AT_surfxml_host_pstate AX_surfxml_host_pstate;
4802 #define A_surfxml_host_pstate (surfxml_bufferstack + AX_surfxml_host_pstate)
4803 short int surfxml_host_pstate_isset;
4804 AT_surfxml_random_std___deviation AX_surfxml_random_std___deviation;
4805 #define A_surfxml_random_std___deviation (surfxml_bufferstack + AX_surfxml_random_std___deviation)
4806 short int surfxml_random_std___deviation_isset;
4807 AT_surfxml_ASroute_gw___dst AX_surfxml_ASroute_gw___dst;
4808 #define A_surfxml_ASroute_gw___dst (surfxml_bufferstack + AX_surfxml_ASroute_gw___dst)
4809 short int surfxml_ASroute_gw___dst_isset;
4810 AT_surfxml_backbone_id AX_surfxml_backbone_id;
4811 #define A_surfxml_backbone_id (surfxml_bufferstack + AX_surfxml_backbone_id)
4812 short int surfxml_backbone_id_isset;
4813 AT_surfxml_host___link_down AX_surfxml_host___link_down;
4814 #define A_surfxml_host___link_down (surfxml_bufferstack + AX_surfxml_host___link_down)
4815 short int surfxml_host___link_down_isset;
4816 AT_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy;
4817 #define A_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy
4818 short int surfxml_cluster_sharing___policy_isset;
4819 AT_surfxml_cluster_topo___parameters AX_surfxml_cluster_topo___parameters;
4820 #define A_surfxml_cluster_topo___parameters (surfxml_bufferstack + AX_surfxml_cluster_topo___parameters)
4821 short int surfxml_cluster_topo___parameters_isset;
4822 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
4823 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
4824 short int surfxml_route_symmetrical_isset;
4825 AT_surfxml_prop_id AX_surfxml_prop_id;
4826 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
4827 short int surfxml_prop_id_isset;
4828 AT_surfxml_peer_bw___out AX_surfxml_peer_bw___out;
4829 #define A_surfxml_peer_bw___out (surfxml_bufferstack + AX_surfxml_peer_bw___out)
4830 short int surfxml_peer_bw___out_isset;
4831 AT_surfxml_cabinet_bw AX_surfxml_cabinet_bw;
4832 #define A_surfxml_cabinet_bw (surfxml_bufferstack + AX_surfxml_cabinet_bw)
4833 short int surfxml_cabinet_bw_isset;
4834 AT_surfxml_cabinet_radical AX_surfxml_cabinet_radical;
4835 #define A_surfxml_cabinet_radical (surfxml_bufferstack + AX_surfxml_cabinet_radical)
4836 short int surfxml_cabinet_radical_isset;
4837 AT_surfxml_router_id AX_surfxml_router_id;
4838 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
4839 short int surfxml_router_id_isset;
4840 AT_surfxml_route_dst AX_surfxml_route_dst;
4841 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
4842 short int surfxml_route_dst_isset;
4843 AT_surfxml_cluster_loopback___lat AX_surfxml_cluster_loopback___lat;
4844 #define A_surfxml_cluster_loopback___lat (surfxml_bufferstack + AX_surfxml_cluster_loopback___lat)
4845 short int surfxml_cluster_loopback___lat_isset;
4846 AT_surfxml_prop_value AX_surfxml_prop_value;
4847 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
4848 short int surfxml_prop_value_isset;
4849 AT_surfxml_cabinet_lat AX_surfxml_cabinet_lat;
4850 #define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat)
4851 short int surfxml_cabinet_lat_isset;
4852 AT_surfxml_storage_attach AX_surfxml_storage_attach;
4853 #define A_surfxml_storage_attach (surfxml_bufferstack + AX_surfxml_storage_attach)
4854 short int surfxml_storage_attach_isset;
4855 AT_surfxml_bypassASroute_gw___src AX_surfxml_bypassASroute_gw___src;
4856 #define A_surfxml_bypassASroute_gw___src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___src)
4857 short int surfxml_bypassASroute_gw___src_isset;
4858 AT_surfxml_host___link_id AX_surfxml_host___link_id;
4859 #define A_surfxml_host___link_id (surfxml_bufferstack + AX_surfxml_host___link_id)
4860 short int surfxml_host___link_id_isset;
4861 AT_surfxml_mstorage_typeId AX_surfxml_mstorage_typeId;
4862 #define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId)
4863 short int surfxml_mstorage_typeId_isset;
4864 AT_surfxml_link___ctn_id AX_surfxml_link___ctn_id;
4865 #define A_surfxml_link___ctn_id (surfxml_bufferstack + AX_surfxml_link___ctn_id)
4866 short int surfxml_link___ctn_id_isset;
4867 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
4868 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
4869 short int surfxml_cluster_prefix_isset;
4870 AT_surfxml_storage___type_model AX_surfxml_storage___type_model;
4871 #define A_surfxml_storage___type_model (surfxml_bufferstack + AX_surfxml_storage___type_model)
4872 short int surfxml_storage___type_model_isset;
4873 AT_surfxml_random_max AX_surfxml_random_max;
4874 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
4875 short int surfxml_random_max_isset;
4876 AT_surfxml_storage___type_content AX_surfxml_storage___type_content;
4877 #define A_surfxml_storage___type_content (surfxml_bufferstack + AX_surfxml_storage___type_content)
4878 short int surfxml_storage___type_content_isset;
4879 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
4880 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
4881 short int surfxml_cluster_bw_isset;
4882 AT_surfxml_trace_file AX_surfxml_trace_file;
4883 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
4884 short int surfxml_trace_file_isset;
4885 AT_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy;
4886 #define A_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy
4887 short int surfxml_cluster_bb___sharing___policy_isset;
4888 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
4889 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
4890 short int surfxml_cluster_lat_isset;
4891 AT_surfxml_cluster_id AX_surfxml_cluster_id;
4892 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
4893 short int surfxml_cluster_id_isset;
4894 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
4895 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
4896 short int surfxml_cluster_suffix_isset;
4897 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
4898 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
4899 short int surfxml_bypassRoute_dst_isset;
4900 AT_surfxml_cluster_topology AX_surfxml_cluster_topology;
4901 #define A_surfxml_cluster_topology AX_surfxml_cluster_topology
4902 short int surfxml_cluster_topology_isset;
4903 AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src;
4904 #define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
4905 short int surfxml_bypassASroute_src_isset;
4906 AT_surfxml_bypassASroute_dst AX_surfxml_bypassASroute_dst;
4907 #define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
4908 short int surfxml_bypassASroute_dst_isset;
4909 AT_surfxml_host_id AX_surfxml_host_id;
4910 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
4911 short int surfxml_host_id_isset;
4912 AT_surfxml_random_id AX_surfxml_random_id;
4913 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
4914 short int surfxml_random_id_isset;
4915 AT_surfxml_process_kill___time AX_surfxml_process_kill___time;
4916 #define A_surfxml_process_kill___time (surfxml_bufferstack + AX_surfxml_process_kill___time)
4917 short int surfxml_process_kill___time_isset;
4918 AT_surfxml_route_src AX_surfxml_route_src;
4919 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
4920 short int surfxml_route_src_isset;
4921 AT_surfxml_link_latency___file AX_surfxml_link_latency___file;
4922 #define A_surfxml_link_latency___file (surfxml_bufferstack + AX_surfxml_link_latency___file)
4923 short int surfxml_link_latency___file_isset;
4924 AT_surfxml_peer_power AX_surfxml_peer_power;
4925 #define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power)
4926 short int surfxml_peer_power_isset;
4927 AT_surfxml_random_seed AX_surfxml_random_seed;
4928 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
4929 short int surfxml_random_seed_isset;
4930 AT_surfxml_cluster_power AX_surfxml_cluster_power;
4931 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
4932 short int surfxml_cluster_power_isset;
4933 AT_surfxml_storage_id AX_surfxml_storage_id;
4934 #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
4935 short int surfxml_storage_id_isset;
4936 AT_surfxml_storage___type_size AX_surfxml_storage___type_size;
4937 #define A_surfxml_storage___type_size (surfxml_bufferstack + AX_surfxml_storage___type_size)
4938 short int surfxml_storage___type_size_isset;
4939 AT_surfxml_link_state___file AX_surfxml_link_state___file;
4940 #define A_surfxml_link_state___file (surfxml_bufferstack + AX_surfxml_link_state___file)
4941 short int surfxml_link_state___file_isset;
4942 AT_surfxml_argument_value AX_surfxml_argument_value;
4943 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
4944 short int surfxml_argument_value_isset;
4945 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
4946 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
4947 short int surfxml_bypassRoute_src_isset;
4948 AT_surfxml_platform_version AX_surfxml_platform_version;
4949 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
4950 short int surfxml_platform_version_isset;
4951 AT_surfxml_model___prop_id AX_surfxml_model___prop_id;
4952 #define A_surfxml_model___prop_id (surfxml_bufferstack + AX_surfxml_model___prop_id)
4953 short int surfxml_model___prop_id_isset;
4954 AT_surfxml_cabinet_prefix AX_surfxml_cabinet_prefix;
4955 #define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix)
4956 short int surfxml_cabinet_prefix_isset;
4957 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
4958 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
4959 short int surfxml_router_coordinates_isset;
4960 AT_surfxml_host_state AX_surfxml_host_state;
4961 #define A_surfxml_host_state AX_surfxml_host_state
4962 short int surfxml_host_state_isset;
4963 AT_surfxml_random_radical AX_surfxml_random_radical;
4964 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
4965 short int surfxml_random_radical_isset;
4966 AT_surfxml_ASroute_gw___src AX_surfxml_ASroute_gw___src;
4967 #define A_surfxml_ASroute_gw___src (surfxml_bufferstack + AX_surfxml_ASroute_gw___src)
4968 short int surfxml_ASroute_gw___src_isset;
4969 AT_surfxml_link_latency AX_surfxml_link_latency;
4970 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
4971 short int surfxml_link_latency_isset;
4972 AT_surfxml_peer_availability___file AX_surfxml_peer_availability___file;
4973 #define A_surfxml_peer_availability___file (surfxml_bufferstack + AX_surfxml_peer_availability___file)
4974 short int surfxml_peer_availability___file_isset;
4975 AT_surfxml_mstorage_name AX_surfxml_mstorage_name;
4976 #define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name)
4977 short int surfxml_mstorage_name_isset;
4978 AT_surfxml_process_on___failure AX_surfxml_process_on___failure;
4979 #define A_surfxml_process_on___failure AX_surfxml_process_on___failure
4980 short int surfxml_process_on___failure_isset;
4981 AT_surfxml_mount_name AX_surfxml_mount_name;
4982 #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
4983 short int surfxml_mount_name_isset;
4984 AT_surfxml_gpu_name AX_surfxml_gpu_name;
4985 #define A_surfxml_gpu_name (surfxml_bufferstack + AX_surfxml_gpu_name)
4986 short int surfxml_gpu_name_isset;
4987 AT_surfxml_trace___connect_element AX_surfxml_trace___connect_element;
4988 #define A_surfxml_trace___connect_element (surfxml_bufferstack + AX_surfxml_trace___connect_element)
4989 short int surfxml_trace___connect_element_isset;
4990 AT_surfxml_process_start___time AX_surfxml_process_start___time;
4991 #define A_surfxml_process_start___time (surfxml_bufferstack + AX_surfxml_process_start___time)
4992 short int surfxml_process_start___time_isset;
4993 AT_surfxml_host_state___file AX_surfxml_host_state___file;
4994 #define A_surfxml_host_state___file (surfxml_bufferstack + AX_surfxml_host_state___file)
4995 short int surfxml_host_state___file_isset;
4996 AT_surfxml_host_availability AX_surfxml_host_availability;
4997 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
4998 short int surfxml_host_availability_isset;
4999 AT_surfxml_backbone_latency AX_surfxml_backbone_latency;
5000 #define A_surfxml_backbone_latency (surfxml_bufferstack + AX_surfxml_backbone_latency)
5001 short int surfxml_backbone_latency_isset;
5002 AT_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind;
5003 #define A_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind
5004 short int surfxml_trace___connect_kind_isset;
5005 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
5006 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
5007 short int surfxml_link_bandwidth_isset;
5008 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
5009 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
5010 short int surfxml_host_coordinates_isset;
5011 AT_surfxml_trace_id AX_surfxml_trace_id;
5012 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
5013 short int surfxml_trace_id_isset;
5014 AT_surfxml_host_availability___file AX_surfxml_host_availability___file;
5015 #define A_surfxml_host_availability___file (surfxml_bufferstack + AX_surfxml_host_availability___file)
5016 short int surfxml_host_availability___file_isset;
5017 AT_surfxml_link_state AX_surfxml_link_state;
5018 #define A_surfxml_link_state AX_surfxml_link_state
5019 short int surfxml_link_state_isset;
5020 AT_surfxml_trace___connect_trace AX_surfxml_trace___connect_trace;
5021 #define A_surfxml_trace___connect_trace (surfxml_bufferstack + AX_surfxml_trace___connect_trace)
5022 short int surfxml_trace___connect_trace_isset;
5023 AT_surfxml_random_mean AX_surfxml_random_mean;
5024 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
5025 short int surfxml_random_mean_isset;
5026 AT_surfxml_model___prop_value AX_surfxml_model___prop_value;
5027 #define A_surfxml_model___prop_value (surfxml_bufferstack + AX_surfxml_model___prop_value)
5028 short int surfxml_model___prop_value_isset;
5029
5030 /* XML state. */
5031 #ifdef FLEX_DEBUG
5032 # define ENTER(state)   debug_enter(state,#state)
5033 # define LEAVE          debug_leave()
5034 # define SET(state)     debug_set(state,#state)
5035   static void debug_enter(int, const char*);
5036   static void debug_leave(void);
5037   static void debug_set(int, const char*);
5038 #else
5039 # define ENTER(state)   (yy_push_state(state))
5040 # define LEAVE          (yy_pop_state())
5041 # define SET(state)     BEGIN(state)
5042 #endif
5043
5044 /* Generic actions. */
5045 #define SKIP    /*skip*/
5046 #define SUCCEED        CLEANUP; return 0
5047
5048 #define FAIL    return fail
5049 static int fail(const char*, ...);
5050
5051 enum {flexml_max_err_msg_size = 512};
5052 static char flexml_err_msg[flexml_max_err_msg_size];
5053 const char * surfxml_parse_err_msg()
5054 {
5055     return flexml_err_msg;
5056 }
5057 static void reset_surfxml_parse_err_msg()
5058 {
5059     flexml_err_msg[0] = '\0';
5060 }
5061
5062 /* Cleanup */
5063 static void cleanup(void);
5064 #define CLEANUP  cleanup()
5065
5066 /* Text buffer stack handling. */
5067 char *surfxml_bufferstack = NULL;
5068 static int blimit = FLEXML_BUFFERSTACKSIZE;
5069 static int bnext = 1;
5070
5071 static int *indexstack = NULL;
5072 static int ilimit = FLEXML_INDEXSTACKSIZE;
5073 static int inext = 1;
5074
5075 #define BUFFERSET(P)  (P = bnext)
5076 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
5077 #define BUFFERDONE    (BUFFERPUTC('\0'))
5078
5079 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
5080
5081 /* after this is called, there are at least 2 slots left in the stack */
5082 static int ck_blimit()
5083 {
5084      if (bnext >= blimit) {
5085          blimit += FLEXML_BUFFERSTACKSIZE + 2;
5086          {
5087              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
5088              assert(temp);
5089              surfxml_bufferstack = temp;
5090          }
5091      }
5092      return 0;
5093 }
5094
5095 /* after this is called, there are at least 2 slots left in the stack */
5096 static int ck_ilimit()
5097 {
5098      if (inext >= ilimit) {
5099          ilimit += FLEXML_INDEXSTACKSIZE + 2;
5100          {
5101              int *temp = (int *) realloc(indexstack, ilimit);
5102              assert(temp);
5103              indexstack = temp;
5104          }
5105      }
5106      return 0;
5107 }
5108
5109 #ifdef FLEXML_NEED_BUFFERLIT
5110 static void surfxml_bufferliteral(char c, int* pp, const char* text)
5111 {
5112    BUFFERSET(*pp);
5113    if (c) {
5114       const char *s = strchr(text, c), *e = strrchr(text, c);
5115       assert(s && e && s <= e);
5116       ++s;
5117       while (s < e) {
5118          if (isspace(*s)) {
5119             BUFFERPUTC(' ');
5120             do ++s; while (s < e && isspace(*s));
5121          } else
5122            BUFFERPUTC(*s++);
5123       }
5124    } else {
5125       const char *s = text;
5126       while (*s)
5127         BUFFERPUTC(*s++);
5128    }
5129    BUFFERDONE;
5130 }
5131 #endif
5132
5133 static void pushbuffer(int p)
5134 {
5135     ck_ilimit();
5136     indexstack[inext++] = p;
5137     indexstack[inext++] = bnext;    
5138 }
5139
5140 static int popbuffer(void)
5141 {
5142     assert(inext >= 2);
5143     bnext = indexstack[--inext];
5144     return indexstack[--inext];
5145 }
5146
5147 /* General internal entities are `unput' back onto the input stream... */
5148 #define ENTITYTEXT(T) \
5149   { char *s = (T), *e = s+strlen(s);\
5150     while (--e >= s) { unput(*e); }}
5151
5152 /* Flex standard options. */
5153 #define YY_NO_INPUT 1
5154 /* Flex user-requested options. */
5155 /* XML character classes (currently restricted to ASCII). */
5156 /* "Common syntactic structures." */
5157 /* "Names and Tokens." */
5158 /* Miscellaneous. */
5159 /* Parser states (flex `exclusive start conditions'):
5160  *
5161  * PROLOG       the XML prolog of the document before <?xml...>
5162  * DOCTYPE      the XML prolog of the document after <?xml...>
5163  * EPILOG       after the root element
5164  * INCOMMENT    inside an XML comment <!--....-->
5165  * INPI         inside an XML PI <?...?>
5166  * VALUE1       inside a '...'-delimited literal
5167  * VALUE2       inside a "..."-delimited literal
5168  * CDATA        inside a <![CDATA[...] ]> section.
5169  * ROOT_<tag>   expect root element <tag>
5170  * AL_<tag>     inside the attribute list for <tag>
5171  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
5172  * IMPOSSIBLE   dummy to permit disabling rules; must be last
5173  */
5174
5175 /* State names. */
5176 const char* *surfxml_statenames=NULL;
5177
5178 #define INITIAL 0
5179 #define PROLOG 1
5180 #define DOCTYPE 2
5181 #define EPILOG 3
5182 #define INCOMMENT 4
5183 #define INPI 5
5184 #define VALUE1 6
5185 #define VALUE2 7
5186 #define CDATA 8
5187 #define ROOT_surfxml_platform 9
5188 #define AL_surfxml_platform 10
5189 #define S_surfxml_platform 11
5190 #define S_surfxml_platform_1 12
5191 #define S_surfxml_platform_2 13
5192 #define S_surfxml_platform_3 14
5193 #define S_surfxml_platform_4 15
5194 #define S_surfxml_platform_5 16
5195 #define S_surfxml_platform_6 17
5196 #define S_surfxml_platform_7 18
5197 #define S_surfxml_platform_8 19
5198 #define E_surfxml_platform 20
5199 #define AL_surfxml_include 21
5200 #define S_surfxml_include 22
5201 #define S_surfxml_include_1 23
5202 #define S_surfxml_include_2 24
5203 #define E_surfxml_include 25
5204 #define AL_surfxml_trace 26
5205 #define IN_trace 27
5206 #define AL_surfxml_random 28
5207 #define E_surfxml_random 29
5208 #define AL_surfxml_trace___connect 30
5209 #define E_surfxml_trace___connect 31
5210 #define AL_surfxml_AS 32
5211 #define S_surfxml_AS 33
5212 #define S_surfxml_AS_1 34
5213 #define S_surfxml_AS_2 35
5214 #define S_surfxml_AS_3 36
5215 #define S_surfxml_AS_4 37
5216 #define S_surfxml_AS_5 38
5217 #define S_surfxml_AS_6 39
5218 #define S_surfxml_AS_7 40
5219 #define S_surfxml_AS_8 41
5220 #define S_surfxml_AS_9 42
5221 #define S_surfxml_AS_10 43
5222 #define S_surfxml_AS_11 44
5223 #define S_surfxml_AS_12 45
5224 #define S_surfxml_AS_13 46
5225 #define S_surfxml_AS_14 47
5226 #define S_surfxml_AS_15 48
5227 #define S_surfxml_AS_16 49
5228 #define E_surfxml_AS 50
5229 #define AL_surfxml_storage___type 51
5230 #define S_surfxml_storage___type 52
5231 #define S_surfxml_storage___type_1 53
5232 #define S_surfxml_storage___type_2 54
5233 #define E_surfxml_storage___type 55
5234 #define AL_surfxml_mount 56
5235 #define E_surfxml_mount 57
5236 #define AL_surfxml_mstorage 58
5237 #define E_surfxml_mstorage 59
5238 #define AL_surfxml_host 60
5239 #define S_surfxml_host 61
5240 #define S_surfxml_host_1 62
5241 #define S_surfxml_host_2 63
5242 #define E_surfxml_host 64
5243 #define AL_surfxml_storage 65
5244 #define S_surfxml_storage 66
5245 #define S_surfxml_storage_1 67
5246 #define S_surfxml_storage_2 68
5247 #define E_surfxml_storage 69
5248 #define AL_surfxml_gpu 70
5249 #define E_surfxml_gpu 71
5250 #define AL_surfxml_host___link 72
5251 #define E_surfxml_host___link 73
5252 #define AL_surfxml_cluster 74
5253 #define S_surfxml_cluster 75
5254 #define S_surfxml_cluster_1 76
5255 #define S_surfxml_cluster_2 77
5256 #define E_surfxml_cluster 78
5257 #define AL_surfxml_cabinet 79
5258 #define E_surfxml_cabinet 80
5259 #define AL_surfxml_peer 81
5260 #define E_surfxml_peer 82
5261 #define AL_surfxml_router 83
5262 #define E_surfxml_router 84
5263 #define AL_surfxml_backbone 85
5264 #define E_surfxml_backbone 86
5265 #define AL_surfxml_link 87
5266 #define S_surfxml_link 88
5267 #define S_surfxml_link_1 89
5268 #define S_surfxml_link_2 90
5269 #define E_surfxml_link 91
5270 #define AL_surfxml_route 92
5271 #define S_surfxml_route 93
5272 #define S_surfxml_route_1 94
5273 #define S_surfxml_route_2 95
5274 #define E_surfxml_route 96
5275 #define AL_surfxml_ASroute 97
5276 #define S_surfxml_ASroute 98
5277 #define S_surfxml_ASroute_1 99
5278 #define S_surfxml_ASroute_2 100
5279 #define E_surfxml_ASroute 101
5280 #define AL_surfxml_link___ctn 102
5281 #define E_surfxml_link___ctn 103
5282 #define AL_surfxml_bypassRoute 104
5283 #define S_surfxml_bypassRoute 105
5284 #define S_surfxml_bypassRoute_1 106
5285 #define S_surfxml_bypassRoute_2 107
5286 #define E_surfxml_bypassRoute 108
5287 #define AL_surfxml_bypassASroute 109
5288 #define S_surfxml_bypassASroute 110
5289 #define S_surfxml_bypassASroute_1 111
5290 #define S_surfxml_bypassASroute_2 112
5291 #define E_surfxml_bypassASroute 113
5292 #define AL_surfxml_process 114
5293 #define S_surfxml_process 115
5294 #define S_surfxml_process_1 116
5295 #define S_surfxml_process_2 117
5296 #define E_surfxml_process 118
5297 #define AL_surfxml_argument 119
5298 #define E_surfxml_argument 120
5299 #define AL_surfxml_config 121
5300 #define S_surfxml_config 122
5301 #define S_surfxml_config_1 123
5302 #define S_surfxml_config_2 124
5303 #define E_surfxml_config 125
5304 #define AL_surfxml_prop 126
5305 #define E_surfxml_prop 127
5306 #define AL_surfxml_model___prop 128
5307 #define E_surfxml_model___prop 129
5308 #define IMPOSSIBLE 130
5309
5310 #ifndef YY_NO_UNISTD_H
5311 /* Special case for "unistd.h", since it is non-ANSI. We include it way
5312  * down here because we want the user's section 1 to have been scanned first.
5313  * The user has a chance to override it with an option.
5314  */
5315 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
5316 #  ifndef __STRICT_ANSI__
5317 #    include <io.h>
5318 #    include <process.h>
5319 #  endif
5320 #else
5321 #  include <unistd.h>
5322 #endif
5323 #endif
5324
5325 #ifndef YY_EXTRA_TYPE
5326 #define YY_EXTRA_TYPE void *
5327 #endif
5328
5329 static int yy_init_globals (void );
5330
5331 /* Accessor methods to globals.
5332    These are made visible to non-reentrant scanners for convenience. */
5333
5334 int surf_parse_lex_destroy (void );
5335
5336 int surf_parse_get_debug (void );
5337
5338 void surf_parse_set_debug (int debug_flag  );
5339
5340 YY_EXTRA_TYPE surf_parse_get_extra (void );
5341
5342 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined  );
5343
5344 FILE *surf_parse_get_in (void );
5345
5346 void surf_parse_set_in  (FILE * in_str  );
5347
5348 FILE *surf_parse_get_out (void );
5349
5350 void surf_parse_set_out  (FILE * out_str  );
5351
5352 yy_size_t surf_parse_get_leng (void );
5353
5354 char *surf_parse_get_text (void );
5355
5356 int surf_parse_get_lineno (void );
5357
5358 void surf_parse_set_lineno (int line_number  );
5359
5360 /* Macros after this point can all be overridden by user definitions in
5361  * section 1.
5362  */
5363
5364 #ifndef YY_SKIP_YYWRAP
5365 #ifdef __cplusplus
5366 extern "C" int surf_parse_wrap (void );
5367 #else
5368 extern int surf_parse_wrap (void );
5369 #endif
5370 #endif
5371
5372 #ifndef yytext_ptr
5373 static void yy_flex_strncpy (char *,yyconst char *,int );
5374 #endif
5375
5376 #ifdef YY_NEED_STRLEN
5377 static int yy_flex_strlen (yyconst char * );
5378 #endif
5379
5380 #ifndef YY_NO_INPUT
5381
5382 #ifdef __cplusplus
5383 static int yyinput (void );
5384 #else
5385 static int input (void );
5386 #endif
5387
5388 #endif
5389
5390         static int yy_start_stack_ptr = 0;
5391         static int yy_start_stack_depth = 0;
5392         static int *yy_start_stack = NULL;
5393     
5394     static void yy_push_state (int new_state );
5395     
5396     static void yy_pop_state (void );
5397     
5398 /* Amount of stuff to slurp up with each read. */
5399 #ifndef YY_READ_BUF_SIZE
5400 #ifdef __ia64__
5401 /* On IA-64, the buffer size is 16k, not 8k */
5402 #define YY_READ_BUF_SIZE 16384
5403 #else
5404 #define YY_READ_BUF_SIZE 8192
5405 #endif /* __ia64__ */
5406 #endif
5407
5408 /* Copy whatever the last rule matched to the standard output. */
5409 #ifndef ECHO
5410 /* This used to be an fputs(), but since the string might contain NUL's,
5411  * we now use fwrite().
5412  */
5413 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
5414 #endif
5415
5416 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
5417  * is returned in "result".
5418  */
5419 #ifndef YY_INPUT
5420 #define YY_INPUT(buf,result,max_size) \
5421         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
5422                 { \
5423                 int c = '*'; \
5424                 size_t n; \
5425                 for ( n = 0; n < max_size && \
5426                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
5427                         buf[n] = (char) c; \
5428                 if ( c == '\n' ) \
5429                         buf[n++] = (char) c; \
5430                 if ( c == EOF && ferror( surf_parse_in ) ) \
5431                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
5432                 result = n; \
5433                 } \
5434         else \
5435                 { \
5436                 errno=0; \
5437                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
5438                         { \
5439                         if( errno != EINTR) \
5440                                 { \
5441                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
5442                                 break; \
5443                                 } \
5444                         errno=0; \
5445                         clearerr(surf_parse_in); \
5446                         } \
5447                 }\
5448 \
5449
5450 #endif
5451
5452 /* No semi-colon after return; correct usage is to write "yyterminate();" -
5453  * we don't want an extra ';' after the "return" because that will cause
5454  * some compilers to complain about unreachable statements.
5455  */
5456 #ifndef yyterminate
5457 #define yyterminate() return YY_NULL
5458 #endif
5459
5460 /* Number of entries by which start-condition stack grows. */
5461 #ifndef YY_START_STACK_INCR
5462 #define YY_START_STACK_INCR 25
5463 #endif
5464
5465 /* Report a fatal error. */
5466 #ifndef YY_FATAL_ERROR
5467 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
5468 #endif
5469
5470 /* end tables serialization structures and prototypes */
5471
5472 /* Default declaration of generated scanner - a define so the user can
5473  * easily add parameters.
5474  */
5475 #ifndef YY_DECL
5476 #define YY_DECL_IS_OURS 1
5477
5478 extern int surf_parse_lex (void);
5479
5480 #define YY_DECL int surf_parse_lex (void)
5481 #endif /* !YY_DECL */
5482
5483 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
5484  * have been set up.
5485  */
5486 #ifndef YY_USER_ACTION
5487 #define YY_USER_ACTION
5488 #endif
5489
5490 /* Code executed at the end of each rule. */
5491 #ifndef YY_BREAK
5492 #define YY_BREAK break;
5493 #endif
5494
5495 #define YY_RULE_SETUP \
5496         YY_USER_ACTION
5497
5498 /** The main scanner function which does all the work.
5499  */
5500 YY_DECL
5501 {
5502         register yy_state_type yy_current_state;
5503         register char *yy_cp, *yy_bp;
5504         register int yy_act;
5505     
5506         if ( !(yy_init) )
5507                 {
5508                 (yy_init) = 1;
5509
5510 #ifdef YY_USER_INIT
5511                 YY_USER_INIT;
5512 #endif
5513
5514                 if ( ! (yy_start) )
5515                         (yy_start) = 1; /* first start state */
5516
5517                 if ( ! surf_parse_in )
5518                         surf_parse_in = stdin;
5519
5520                 if ( ! surf_parse_out )
5521                         surf_parse_out = stdout;
5522
5523                 if ( ! YY_CURRENT_BUFFER ) {
5524                         surf_parse_ensure_buffer_stack ();
5525                         YY_CURRENT_BUFFER_LVALUE =
5526                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
5527                 }
5528
5529                 surf_parse__load_buffer_state( );
5530                 }
5531
5532         {
5533
5534  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
5535  SET(PROLOG);
5536  reset_surfxml_parse_err_msg();
5537  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
5538  assert(surfxml_bufferstack);
5539  #ifdef FLEX_DEBUG
5540  {
5541      int i;
5542      for (i = 0; i < blimit; i++) {
5543          surfxml_bufferstack[i] = '\377';
5544      }
5545  }
5546  #endif
5547  surfxml_bufferstack[0] = '\0';
5548  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
5549  assert(indexstack);
5550  indexstack[0] = 0;
5551
5552   /* FleXML_init */
5553   bnext = inext = 1;
5554   surfxml_bufferliteral('\0', &bnext, "0.0");
5555   surfxml_bufferliteral('\0', &bnext, "2147483647");
5556   surfxml_bufferliteral('\0', &bnext, "txt_unix");
5557   surfxml_bufferliteral('\0', &bnext, "1");
5558   surfxml_bufferliteral('\0', &bnext, "1.0");
5559   surfxml_bufferliteral('\0', &bnext, "0.0");
5560   surfxml_bufferliteral('\0', &bnext, "txt_unix");
5561   surfxml_bufferliteral('\0', &bnext, "1");
5562   surfxml_bufferliteral('\0', &bnext, "0.0");
5563   surfxml_bufferliteral('\0', &bnext, "-1.0");
5564   surfxml_bufferliteral('\0', &bnext, "-1.0");
5565   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
5566   surfxml_statenames[PROLOG] = NULL;
5567   surfxml_statenames[DOCTYPE] = NULL;
5568   surfxml_statenames[EPILOG] = NULL;
5569   surfxml_statenames[INCOMMENT] = NULL;
5570   surfxml_statenames[INPI] = NULL;
5571   surfxml_statenames[VALUE1] = NULL;
5572   surfxml_statenames[VALUE2] = NULL;
5573   surfxml_statenames[CDATA] = NULL;
5574   surfxml_statenames[ROOT_surfxml_platform] = NULL;
5575   surfxml_statenames[AL_surfxml_platform] = NULL;
5576   surfxml_statenames[S_surfxml_platform] = "platform";
5577   surfxml_statenames[S_surfxml_platform_1] = "platform";
5578   surfxml_statenames[S_surfxml_platform_2] = "platform";
5579   surfxml_statenames[S_surfxml_platform_3] = "platform";
5580   surfxml_statenames[S_surfxml_platform_4] = "platform";
5581   surfxml_statenames[S_surfxml_platform_5] = "platform";
5582   surfxml_statenames[S_surfxml_platform_6] = "platform";
5583   surfxml_statenames[S_surfxml_platform_7] = "platform";
5584   surfxml_statenames[S_surfxml_platform_8] = "platform";
5585   surfxml_statenames[E_surfxml_platform] = "platform";
5586   surfxml_statenames[AL_surfxml_include] = NULL;
5587   surfxml_statenames[S_surfxml_include] = "include";
5588   surfxml_statenames[S_surfxml_include_1] = "include";
5589   surfxml_statenames[S_surfxml_include_2] = "include";
5590   surfxml_statenames[E_surfxml_include] = "include";
5591   surfxml_statenames[AL_surfxml_trace] = NULL;
5592   surfxml_statenames[IN_trace] = "trace";
5593   surfxml_statenames[AL_surfxml_random] = NULL;
5594   surfxml_statenames[E_surfxml_random] = "random";
5595   surfxml_statenames[AL_surfxml_trace___connect] = NULL;
5596   surfxml_statenames[E_surfxml_trace___connect] = "trace_connect";
5597   surfxml_statenames[AL_surfxml_AS] = NULL;
5598   surfxml_statenames[S_surfxml_AS] = "AS";
5599   surfxml_statenames[S_surfxml_AS_1] = "AS";
5600   surfxml_statenames[S_surfxml_AS_2] = "AS";
5601   surfxml_statenames[S_surfxml_AS_3] = "AS";
5602   surfxml_statenames[S_surfxml_AS_4] = "AS";
5603   surfxml_statenames[S_surfxml_AS_5] = "AS";
5604   surfxml_statenames[S_surfxml_AS_6] = "AS";
5605   surfxml_statenames[S_surfxml_AS_7] = "AS";
5606   surfxml_statenames[S_surfxml_AS_8] = "AS";
5607   surfxml_statenames[S_surfxml_AS_9] = "AS";
5608   surfxml_statenames[S_surfxml_AS_10] = "AS";
5609   surfxml_statenames[S_surfxml_AS_11] = "AS";
5610   surfxml_statenames[S_surfxml_AS_12] = "AS";
5611   surfxml_statenames[S_surfxml_AS_13] = "AS";
5612   surfxml_statenames[S_surfxml_AS_14] = "AS";
5613   surfxml_statenames[S_surfxml_AS_15] = "AS";
5614   surfxml_statenames[S_surfxml_AS_16] = "AS";
5615   surfxml_statenames[E_surfxml_AS] = "AS";
5616   surfxml_statenames[AL_surfxml_storage___type] = NULL;
5617   surfxml_statenames[S_surfxml_storage___type] = "storage_type";
5618   surfxml_statenames[S_surfxml_storage___type_1] = "storage_type";
5619   surfxml_statenames[S_surfxml_storage___type_2] = "storage_type";
5620   surfxml_statenames[E_surfxml_storage___type] = "storage_type";
5621   surfxml_statenames[AL_surfxml_mount] = NULL;
5622   surfxml_statenames[E_surfxml_mount] = "mount";
5623   surfxml_statenames[AL_surfxml_mstorage] = NULL;
5624   surfxml_statenames[E_surfxml_mstorage] = "mstorage";
5625   surfxml_statenames[AL_surfxml_host] = NULL;
5626   surfxml_statenames[S_surfxml_host] = "host";
5627   surfxml_statenames[S_surfxml_host_1] = "host";
5628   surfxml_statenames[S_surfxml_host_2] = "host";
5629   surfxml_statenames[E_surfxml_host] = "host";
5630   surfxml_statenames[AL_surfxml_storage] = NULL;
5631   surfxml_statenames[S_surfxml_storage] = "storage";
5632   surfxml_statenames[S_surfxml_storage_1] = "storage";
5633   surfxml_statenames[S_surfxml_storage_2] = "storage";
5634   surfxml_statenames[E_surfxml_storage] = "storage";
5635   surfxml_statenames[AL_surfxml_gpu] = NULL;
5636   surfxml_statenames[E_surfxml_gpu] = "gpu";
5637   surfxml_statenames[AL_surfxml_host___link] = NULL;
5638   surfxml_statenames[E_surfxml_host___link] = "host_link";
5639   surfxml_statenames[AL_surfxml_cluster] = NULL;
5640   surfxml_statenames[S_surfxml_cluster] = "cluster";
5641   surfxml_statenames[S_surfxml_cluster_1] = "cluster";
5642   surfxml_statenames[S_surfxml_cluster_2] = "cluster";
5643   surfxml_statenames[E_surfxml_cluster] = "cluster";
5644   surfxml_statenames[AL_surfxml_cabinet] = NULL;
5645   surfxml_statenames[E_surfxml_cabinet] = "cabinet";
5646   surfxml_statenames[AL_surfxml_peer] = NULL;
5647   surfxml_statenames[E_surfxml_peer] = "peer";
5648   surfxml_statenames[AL_surfxml_router] = NULL;
5649   surfxml_statenames[E_surfxml_router] = "router";
5650   surfxml_statenames[AL_surfxml_backbone] = NULL;
5651   surfxml_statenames[E_surfxml_backbone] = "backbone";
5652   surfxml_statenames[AL_surfxml_link] = NULL;
5653   surfxml_statenames[S_surfxml_link] = "link";
5654   surfxml_statenames[S_surfxml_link_1] = "link";
5655   surfxml_statenames[S_surfxml_link_2] = "link";
5656   surfxml_statenames[E_surfxml_link] = "link";
5657   surfxml_statenames[AL_surfxml_route] = NULL;
5658   surfxml_statenames[S_surfxml_route] = "route";
5659   surfxml_statenames[S_surfxml_route_1] = "route";
5660   surfxml_statenames[S_surfxml_route_2] = "route";
5661   surfxml_statenames[E_surfxml_route] = "route";
5662   surfxml_statenames[AL_surfxml_ASroute] = NULL;
5663   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
5664   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
5665   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
5666   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
5667   surfxml_statenames[AL_surfxml_link___ctn] = NULL;
5668   surfxml_statenames[E_surfxml_link___ctn] = "link_ctn";
5669   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
5670   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
5671   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
5672   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
5673   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
5674   surfxml_statenames[AL_surfxml_bypassASroute] = NULL;
5675   surfxml_statenames[S_surfxml_bypassASroute] = "bypassASroute";
5676   surfxml_statenames[S_surfxml_bypassASroute_1] = "bypassASroute";
5677   surfxml_statenames[S_surfxml_bypassASroute_2] = "bypassASroute";
5678   surfxml_statenames[E_surfxml_bypassASroute] = "bypassASroute";
5679   surfxml_statenames[AL_surfxml_process] = NULL;
5680   surfxml_statenames[S_surfxml_process] = "process";
5681   surfxml_statenames[S_surfxml_process_1] = "process";
5682   surfxml_statenames[S_surfxml_process_2] = "process";
5683   surfxml_statenames[E_surfxml_process] = "process";
5684   surfxml_statenames[AL_surfxml_argument] = NULL;
5685   surfxml_statenames[E_surfxml_argument] = "argument";
5686   surfxml_statenames[AL_surfxml_config] = NULL;
5687   surfxml_statenames[S_surfxml_config] = "config";
5688   surfxml_statenames[S_surfxml_config_1] = "config";
5689   surfxml_statenames[S_surfxml_config_2] = "config";
5690   surfxml_statenames[E_surfxml_config] = "config";
5691   surfxml_statenames[AL_surfxml_prop] = NULL;
5692   surfxml_statenames[E_surfxml_prop] = "prop";
5693   surfxml_statenames[AL_surfxml_model___prop] = NULL;
5694   surfxml_statenames[E_surfxml_model___prop] = "model_prop";
5695   }
5696
5697  /* COMMENTS and PIs: handled uniformly for efficiency. */
5698
5699         while ( 1 )             /* loops until end-of-file is reached */
5700                 {
5701                 yy_cp = (yy_c_buf_p);
5702
5703                 /* Support of surf_parse_text. */
5704                 *yy_cp = (yy_hold_char);
5705
5706                 /* yy_bp points to the position in yy_ch_buf of the start of
5707                  * the current run.
5708                  */
5709                 yy_bp = yy_cp;
5710
5711                 yy_current_state = (yy_start);
5712 yy_match:
5713                 do
5714                         {
5715                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
5716                         if ( yy_accept[yy_current_state] )
5717                                 {
5718                                 (yy_last_accepting_state) = yy_current_state;
5719                                 (yy_last_accepting_cpos) = yy_cp;
5720                                 }
5721                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5722                                 {
5723                                 yy_current_state = (int) yy_def[yy_current_state];
5724                                 if ( yy_current_state >= 3469 )
5725                                         yy_c = yy_meta[(unsigned int) yy_c];
5726                                 }
5727                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
5728                         ++yy_cp;
5729                         }
5730                 while ( yy_base[yy_current_state] != 12639 );
5731
5732 yy_find_action:
5733                 yy_act = yy_accept[yy_current_state];
5734                 if ( yy_act == 0 )
5735                         { /* have to back up */
5736                         yy_cp = (yy_last_accepting_cpos);
5737                         yy_current_state = (yy_last_accepting_state);
5738                         yy_act = yy_accept[yy_current_state];
5739                         }
5740
5741                 YY_DO_BEFORE_ACTION;
5742
5743                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
5744                         {
5745                         yy_size_t yyl;
5746                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
5747                                 if ( surf_parse_text[yyl] == '\n' )
5748                                            
5749     surf_parse_lineno++;
5750 ;
5751                         }
5752
5753 do_action:      /* This label is used only to access EOF actions. */
5754
5755                 switch ( yy_act )
5756         { /* beginning of action switch */
5757                         case 0: /* must back up */
5758                         /* undo the effects of YY_DO_BEFORE_ACTION */
5759                         *yy_cp = (yy_hold_char);
5760                         yy_cp = (yy_last_accepting_cpos);
5761                         yy_current_state = (yy_last_accepting_state);
5762                         goto yy_find_action;
5763
5764 case 1:
5765 YY_RULE_SETUP
5766 ENTER(INCOMMENT);
5767         YY_BREAK
5768 case 2:
5769 YY_RULE_SETUP
5770 ENTER(INPI);
5771         YY_BREAK
5772
5773 case 3:
5774 YY_RULE_SETUP
5775 LEAVE;
5776         YY_BREAK
5777 case 4:
5778 case 5:
5779 case 6:
5780 /* rule 6 can match eol */
5781 YY_RULE_SETUP
5782 SKIP;
5783         YY_BREAK
5784 case YY_STATE_EOF(INCOMMENT):
5785 FAIL("EOF in comment.");
5786         YY_BREAK
5787
5788 case 7:
5789 YY_RULE_SETUP
5790 LEAVE;
5791         YY_BREAK
5792 case 8:
5793 case 9:
5794 /* rule 9 can match eol */
5795 YY_RULE_SETUP
5796 SKIP;
5797         YY_BREAK
5798 case YY_STATE_EOF(INPI):
5799 FAIL("EOF in PI (processing instruction).");
5800         YY_BREAK
5801
5802 /* SPACES: skipped uniformly */
5803 case 10:
5804 /* rule 10 can match eol */
5805 YY_RULE_SETUP
5806 SKIP;
5807         YY_BREAK
5808 /* PROLOG: determine root element and process it. */
5809
5810 case 11:
5811 /* rule 11 can match eol */
5812 YY_RULE_SETUP
5813 SET(DOCTYPE); 
5814         YY_BREAK
5815 case 12:
5816 /* rule 12 can match eol */
5817 YY_RULE_SETUP
5818 FAIL("Bad declaration %s.",surf_parse_text);
5819         YY_BREAK
5820
5821 case 13:
5822 /* rule 13 can match eol */
5823 YY_RULE_SETUP
5824 SET(ROOT_surfxml_platform);
5825         YY_BREAK
5826 case 14:
5827 /* rule 14 can match eol */
5828 YY_RULE_SETUP
5829 FAIL("Bad declaration %s.",surf_parse_text);
5830         YY_BREAK
5831 case 15:
5832 YY_RULE_SETUP
5833 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
5834         YY_BREAK
5835 case YY_STATE_EOF(PROLOG):
5836 case YY_STATE_EOF(DOCTYPE):
5837 FAIL("EOF in prolog.");
5838         YY_BREAK
5839
5840 /* RULES DERIVED FROM DTD. */
5841 /* <!-- Small DTD for SURF based tools. -->  */
5842 case 16:
5843 /* rule 16 can match eol */
5844 YY_RULE_SETUP
5845 FAIL("Starting tag <platform> is not allowed here.");
5846         YY_BREAK
5847 case 17:
5848 /* rule 17 can match eol */
5849 YY_RULE_SETUP
5850 {
5851   AX_surfxml_platform_version = 1;
5852   surfxml_platform_version_isset = 0;
5853   ENTER(AL_surfxml_platform); pushbuffer(0);
5854   }
5855         YY_BREAK
5856
5857 case 18:
5858 /* rule 18 can match eol */
5859 YY_RULE_SETUP
5860 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);
5861         YY_BREAK
5862 case 19:
5863 /* rule 19 can match eol */
5864 YY_RULE_SETUP
5865 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);
5866         YY_BREAK
5867 case 20:
5868 YY_RULE_SETUP
5869 {
5870   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
5871  }
5872         YY_BREAK
5873 case 21:
5874 YY_RULE_SETUP
5875 {
5876   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
5877   switch (YY_START) {
5878    case ROOT_surfxml_platform: SET(EPILOG); break;
5879   }
5880  }
5881         YY_BREAK
5882 case 22:
5883 YY_RULE_SETUP
5884 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
5885         YY_BREAK
5886 case 23:
5887 YY_RULE_SETUP
5888 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
5889         YY_BREAK
5890 case YY_STATE_EOF(AL_surfxml_platform):
5891 FAIL("EOF in attribute list of `platform' element.");
5892         YY_BREAK
5893
5894 case 24:
5895 /* rule 24 can match eol */
5896 YY_RULE_SETUP
5897 {
5898   LEAVE;
5899   ETag_surfxml_platform();
5900   popbuffer(); /* attribute */
5901   switch (YY_START) {
5902    case ROOT_surfxml_platform: SET(EPILOG); break;
5903   }
5904  }
5905         YY_BREAK
5906 case 25:
5907 /* rule 25 can match eol */
5908 YY_RULE_SETUP
5909 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
5910         YY_BREAK
5911 case 26:
5912 YY_RULE_SETUP
5913 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
5914         YY_BREAK
5915 case YY_STATE_EOF(S_surfxml_platform_4):
5916 case YY_STATE_EOF(S_surfxml_platform_1):
5917 case YY_STATE_EOF(S_surfxml_platform_3):
5918 case YY_STATE_EOF(S_surfxml_platform_8):
5919 case YY_STATE_EOF(S_surfxml_platform):
5920 case YY_STATE_EOF(E_surfxml_platform):
5921 case YY_STATE_EOF(S_surfxml_platform_6):
5922 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</platform>' expected.");
5923         YY_BREAK
5924
5925 case 27:
5926 /* rule 27 can match eol */
5927 YY_RULE_SETUP
5928 FAIL("Starting tag <include> is not allowed here.");
5929         YY_BREAK
5930 case 28:
5931 /* rule 28 can match eol */
5932 YY_RULE_SETUP
5933 {
5934   AX_surfxml_include_file = 0;
5935   surfxml_include_file_isset = 0;
5936   ENTER(AL_surfxml_include); pushbuffer(0);
5937   }
5938         YY_BREAK
5939
5940 case 29:
5941 /* rule 29 can match eol */
5942 YY_RULE_SETUP
5943 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);
5944         YY_BREAK
5945 case 30:
5946 /* rule 30 can match eol */
5947 YY_RULE_SETUP
5948 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);
5949         YY_BREAK
5950 case 31:
5951 YY_RULE_SETUP
5952 {
5953   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5954   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
5955  }
5956         YY_BREAK
5957 case 32:
5958 YY_RULE_SETUP
5959 {
5960   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5961   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
5962   switch (YY_START) {
5963    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
5964    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5965    case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_3: case S_surfxml_AS: case S_surfxml_AS_1: SET(S_surfxml_AS_14); break;
5966    case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
5967   }
5968  }
5969         YY_BREAK
5970 case 33:
5971 YY_RULE_SETUP
5972 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
5973         YY_BREAK
5974 case 34:
5975 YY_RULE_SETUP
5976 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
5977         YY_BREAK
5978 case YY_STATE_EOF(AL_surfxml_include):
5979 FAIL("EOF in attribute list of `include' element.");
5980         YY_BREAK
5981
5982 case 35:
5983 /* rule 35 can match eol */
5984 YY_RULE_SETUP
5985 {
5986   LEAVE;
5987   ETag_surfxml_include();
5988   popbuffer(); /* attribute */
5989   switch (YY_START) {
5990    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
5991    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5992    case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_3: case S_surfxml_AS: case S_surfxml_AS_1: SET(S_surfxml_AS_14); break;
5993    case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
5994   }
5995  }
5996         YY_BREAK
5997 case 36:
5998 /* rule 36 can match eol */
5999 YY_RULE_SETUP
6000 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
6001         YY_BREAK
6002 case 37:
6003 YY_RULE_SETUP
6004 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
6005         YY_BREAK
6006 case YY_STATE_EOF(E_surfxml_include):
6007 case YY_STATE_EOF(S_surfxml_include_2):
6008 case YY_STATE_EOF(S_surfxml_include):
6009 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</include>' expected.");
6010         YY_BREAK
6011
6012 case 38:
6013 /* rule 38 can match eol */
6014 YY_RULE_SETUP
6015 FAIL("Starting tag <trace> is not allowed here.");
6016         YY_BREAK
6017 case 39:
6018 /* rule 39 can match eol */
6019 YY_RULE_SETUP
6020 {
6021   AX_surfxml_trace_id = 0;
6022   surfxml_trace_id_isset = 0;
6023   AX_surfxml_trace_file = 0;
6024   surfxml_trace_file_isset = 0;
6025   AX_surfxml_trace_periodicity = 0;
6026   surfxml_trace_periodicity_isset = 0;
6027   ENTER(AL_surfxml_trace); pushbuffer(0);
6028   }
6029         YY_BREAK
6030
6031 case 40:
6032 /* rule 40 can match eol */
6033 YY_RULE_SETUP
6034 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);
6035         YY_BREAK
6036 case 41:
6037 /* rule 41 can match eol */
6038 YY_RULE_SETUP
6039 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);
6040         YY_BREAK
6041 case 42:
6042 /* rule 42 can match eol */
6043 YY_RULE_SETUP
6044 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);
6045         YY_BREAK
6046 case 43:
6047 /* rule 43 can match eol */
6048 YY_RULE_SETUP
6049 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);
6050         YY_BREAK
6051 case 44:
6052 /* rule 44 can match eol */
6053 YY_RULE_SETUP
6054 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);
6055         YY_BREAK
6056 case 45:
6057 /* rule 45 can match eol */
6058 YY_RULE_SETUP
6059 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);
6060         YY_BREAK
6061 case 46:
6062 YY_RULE_SETUP
6063 {
6064   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
6065   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
6066   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
6067  }
6068         YY_BREAK
6069 case 47:
6070 YY_RULE_SETUP
6071 {
6072   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
6073   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
6074   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
6075   switch (YY_START) {
6076    case S_surfxml_platform: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
6077    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
6078    case S_surfxml_AS_4: case S_surfxml_AS_11: case S_surfxml_AS: case S_surfxml_AS_9: case S_surfxml_AS_7: case S_surfxml_AS_10: SET(S_surfxml_AS_11); break;
6079    case S_surfxml_include_1: case S_surfxml_include_2: case S_surfxml_include: SET(S_surfxml_include_2); break;
6080    case S_surfxml_AS_12: case S_surfxml_AS_3: case S_surfxml_AS_16: case S_surfxml_AS_1: case S_surfxml_AS_15: SET(S_surfxml_AS_16); break;
6081    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6082    case S_surfxml_AS_8: SET(S_surfxml_AS_9); break;
6083   }
6084  }
6085         YY_BREAK
6086 case 48:
6087 YY_RULE_SETUP
6088 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
6089         YY_BREAK
6090 case 49:
6091 YY_RULE_SETUP
6092 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
6093         YY_BREAK
6094 case YY_STATE_EOF(AL_surfxml_trace):
6095 FAIL("EOF in attribute list of `trace' element.");
6096         YY_BREAK
6097
6098 case 50:
6099 /* rule 50 can match eol */
6100 YY_RULE_SETUP
6101 {
6102   LEAVE;
6103   BUFFERDONE;
6104   ETag_surfxml_trace();
6105   surfxml_pcdata_ix = popbuffer();
6106   popbuffer(); /* attribute */
6107   switch (YY_START) {
6108    case S_surfxml_platform: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
6109    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
6110    case S_surfxml_AS_4: case S_surfxml_AS_11: case S_surfxml_AS: case S_surfxml_AS_9: case S_surfxml_AS_7: case S_surfxml_AS_10: SET(S_surfxml_AS_11); break;
6111    case S_surfxml_include_1: case S_surfxml_include_2: case S_surfxml_include: SET(S_surfxml_include_2); break;
6112    case S_surfxml_AS_12: case S_surfxml_AS_3: case S_surfxml_AS_16: case S_surfxml_AS_1: case S_surfxml_AS_15: SET(S_surfxml_AS_16); break;
6113    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6114    case S_surfxml_AS_8: SET(S_surfxml_AS_9); break;
6115   }
6116  }
6117         YY_BREAK
6118 case 51:
6119 /* rule 51 can match eol */
6120 YY_RULE_SETUP
6121 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
6122         YY_BREAK
6123 case YY_STATE_EOF(IN_trace):
6124 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace>' expected.");
6125         YY_BREAK
6126
6127 case 52:
6128 /* rule 52 can match eol */
6129 YY_RULE_SETUP
6130 FAIL("Starting tag <random> is not allowed here.");
6131         YY_BREAK
6132 case 53:
6133 /* rule 53 can match eol */
6134 YY_RULE_SETUP
6135 {
6136   AX_surfxml_random_id = 0;
6137   surfxml_random_id_isset = 0;
6138   AX_surfxml_random_min = 0;
6139   surfxml_random_min_isset = 0;
6140   AX_surfxml_random_max = 0;
6141   surfxml_random_max_isset = 0;
6142   AX_surfxml_random_mean = 0;
6143   surfxml_random_mean_isset = 0;
6144   AX_surfxml_random_std___deviation = 0;
6145   surfxml_random_std___deviation_isset = 0;
6146   AX_surfxml_random_seed = 5;
6147   surfxml_random_seed_isset = 0;
6148   AX_surfxml_random_radical = 0;
6149   surfxml_random_radical_isset = 0;
6150   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
6151   surfxml_random_generator_isset = 0;
6152   ENTER(AL_surfxml_random); pushbuffer(0);
6153   }
6154         YY_BREAK
6155
6156 case 54:
6157 /* rule 54 can match eol */
6158 YY_RULE_SETUP
6159 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);
6160         YY_BREAK
6161 case 55:
6162 /* rule 55 can match eol */
6163 YY_RULE_SETUP
6164 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);
6165         YY_BREAK
6166 case 56:
6167 /* rule 56 can match eol */
6168 YY_RULE_SETUP
6169 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);
6170         YY_BREAK
6171 case 57:
6172 /* rule 57 can match eol */
6173 YY_RULE_SETUP
6174 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);
6175         YY_BREAK
6176 case 58:
6177 /* rule 58 can match eol */
6178 YY_RULE_SETUP
6179 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);
6180         YY_BREAK
6181 case 59:
6182 /* rule 59 can match eol */
6183 YY_RULE_SETUP
6184 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);
6185         YY_BREAK
6186 case 60:
6187 /* rule 60 can match eol */
6188 YY_RULE_SETUP
6189 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);
6190         YY_BREAK
6191 case 61:
6192 /* rule 61 can match eol */
6193 YY_RULE_SETUP
6194 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);
6195         YY_BREAK
6196 case 62:
6197 /* rule 62 can match eol */
6198 YY_RULE_SETUP
6199 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);
6200         YY_BREAK
6201 case 63:
6202 /* rule 63 can match eol */
6203 YY_RULE_SETUP
6204 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);
6205         YY_BREAK
6206 case 64:
6207 /* rule 64 can match eol */
6208 YY_RULE_SETUP
6209 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);
6210         YY_BREAK
6211 case 65:
6212 /* rule 65 can match eol */
6213 YY_RULE_SETUP
6214 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);
6215         YY_BREAK
6216 case 66:
6217 /* rule 66 can match eol */
6218 YY_RULE_SETUP
6219 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);
6220         YY_BREAK
6221 case 67:
6222 /* rule 67 can match eol */
6223 YY_RULE_SETUP
6224 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);
6225         YY_BREAK
6226 case 68:
6227 /* rule 68 can match eol */
6228 case 69:
6229 /* rule 69 can match eol */
6230 YY_RULE_SETUP
6231 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
6232         YY_BREAK
6233 case 70:
6234 /* rule 70 can match eol */
6235 case 71:
6236 /* rule 71 can match eol */
6237 YY_RULE_SETUP
6238 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
6239         YY_BREAK
6240 case 72:
6241 /* rule 72 can match eol */
6242 case 73:
6243 /* rule 73 can match eol */
6244 YY_RULE_SETUP
6245 A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
6246         YY_BREAK
6247 case 74:
6248 /* rule 74 can match eol */
6249 case 75:
6250 /* rule 75 can match eol */
6251 YY_RULE_SETUP
6252 A_surfxml_random_generator = A_surfxml_random_generator_NONE;
6253         YY_BREAK
6254 case 76:
6255 YY_RULE_SETUP
6256 {
6257   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
6258   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
6259   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
6260   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
6261   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
6262   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(E_surfxml_random);
6263  }
6264         YY_BREAK
6265 case 77:
6266 YY_RULE_SETUP
6267 {
6268   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
6269   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
6270   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
6271   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
6272   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
6273   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
6274   switch (YY_START) {
6275    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
6276   }
6277  }
6278         YY_BREAK
6279 case 78:
6280 YY_RULE_SETUP
6281 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
6282         YY_BREAK
6283 case 79:
6284 YY_RULE_SETUP
6285 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
6286         YY_BREAK
6287 case YY_STATE_EOF(AL_surfxml_random):
6288 FAIL("EOF in attribute list of `random' element.");
6289         YY_BREAK
6290
6291 case 80:
6292 /* rule 80 can match eol */
6293 YY_RULE_SETUP
6294 {
6295   LEAVE;
6296   ETag_surfxml_random();
6297   popbuffer(); /* attribute */
6298   switch (YY_START) {
6299    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
6300   }
6301  }
6302         YY_BREAK
6303 case 81:
6304 /* rule 81 can match eol */
6305 YY_RULE_SETUP
6306 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
6307         YY_BREAK
6308 case 82:
6309 YY_RULE_SETUP
6310 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
6311         YY_BREAK
6312 case YY_STATE_EOF(E_surfxml_random):
6313 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</random>' expected.");
6314         YY_BREAK
6315
6316 case 83:
6317 /* rule 83 can match eol */
6318 YY_RULE_SETUP
6319 FAIL("Starting tag <trace_connect> is not allowed here.");
6320         YY_BREAK
6321 case 84:
6322 /* rule 84 can match eol */
6323 YY_RULE_SETUP
6324 {
6325   AX_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
6326   surfxml_trace___connect_kind_isset = 0;
6327   AX_surfxml_trace___connect_trace = 0;
6328   surfxml_trace___connect_trace_isset = 0;
6329   AX_surfxml_trace___connect_element = 0;
6330   surfxml_trace___connect_element_isset = 0;
6331   ENTER(AL_surfxml_trace___connect); pushbuffer(0);
6332   }
6333         YY_BREAK
6334
6335 case 85:
6336 /* rule 85 can match eol */
6337 case 86:
6338 /* rule 86 can match eol */
6339 YY_RULE_SETUP
6340 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
6341         YY_BREAK
6342 case 87:
6343 /* rule 87 can match eol */
6344 case 88:
6345 /* rule 88 can match eol */
6346 YY_RULE_SETUP
6347 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_POWER;
6348         YY_BREAK
6349 case 89:
6350 /* rule 89 can match eol */
6351 case 90:
6352 /* rule 90 can match eol */
6353 YY_RULE_SETUP
6354 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LINK___AVAIL;
6355         YY_BREAK
6356 case 91:
6357 /* rule 91 can match eol */
6358 case 92:
6359 /* rule 92 can match eol */
6360 YY_RULE_SETUP
6361 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_BANDWIDTH;
6362         YY_BREAK
6363 case 93:
6364 /* rule 93 can match eol */
6365 case 94:
6366 /* rule 94 can match eol */
6367 YY_RULE_SETUP
6368 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LATENCY;
6369         YY_BREAK
6370 case 95:
6371 /* rule 95 can match eol */
6372 YY_RULE_SETUP
6373 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);
6374         YY_BREAK
6375 case 96:
6376 /* rule 96 can match eol */
6377 YY_RULE_SETUP
6378 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);
6379         YY_BREAK
6380 case 97:
6381 /* rule 97 can match eol */
6382 YY_RULE_SETUP
6383 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);
6384         YY_BREAK
6385 case 98:
6386 /* rule 98 can match eol */
6387 YY_RULE_SETUP
6388 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);
6389         YY_BREAK
6390 case 99:
6391 YY_RULE_SETUP
6392 {
6393   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
6394   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
6395   LEAVE; STag_surfxml_trace___connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace___connect);
6396  }
6397         YY_BREAK
6398 case 100:
6399 YY_RULE_SETUP
6400 {
6401   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
6402   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
6403   LEAVE; STag_surfxml_trace___connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace___connect(); popbuffer(); /* attribute */
6404   switch (YY_START) {
6405    case S_surfxml_platform_3: case S_surfxml_platform_6: case S_surfxml_platform_1: case S_surfxml_platform_5: case S_surfxml_platform: SET(S_surfxml_platform_6); break;
6406    case S_surfxml_AS_13: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
6407    case S_surfxml_AS_15: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_16: case S_surfxml_AS_12: SET(S_surfxml_AS_16); break;
6408    case S_surfxml_AS_8: SET(S_surfxml_AS_9); break;
6409    case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6410    case S_surfxml_AS_10: case S_surfxml_AS_9: case S_surfxml_AS_7: case S_surfxml_AS: case S_surfxml_AS_11: case S_surfxml_AS_4: SET(S_surfxml_AS_11); break;
6411    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6412   }
6413  }
6414         YY_BREAK
6415 case 101:
6416 YY_RULE_SETUP
6417 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", surf_parse_text[0]);
6418         YY_BREAK
6419 case 102:
6420 YY_RULE_SETUP
6421 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",surf_parse_text);
6422         YY_BREAK
6423 case YY_STATE_EOF(AL_surfxml_trace___connect):
6424 FAIL("EOF in attribute list of `trace_connect' element.");
6425         YY_BREAK
6426
6427 case 103:
6428 /* rule 103 can match eol */
6429 YY_RULE_SETUP
6430 {
6431   LEAVE;
6432   ETag_surfxml_trace___connect();
6433   popbuffer(); /* attribute */
6434   switch (YY_START) {
6435    case S_surfxml_platform_3: case S_surfxml_platform_6: case S_surfxml_platform_1: case S_surfxml_platform_5: case S_surfxml_platform: SET(S_surfxml_platform_6); break;
6436    case S_surfxml_AS_13: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
6437    case S_surfxml_AS_15: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_16: case S_surfxml_AS_12: SET(S_surfxml_AS_16); break;
6438    case S_surfxml_AS_8: SET(S_surfxml_AS_9); break;
6439    case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6440    case S_surfxml_AS_10: case S_surfxml_AS_9: case S_surfxml_AS_7: case S_surfxml_AS: case S_surfxml_AS_11: case S_surfxml_AS_4: SET(S_surfxml_AS_11); break;
6441    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6442   }
6443  }
6444         YY_BREAK
6445 case 104:
6446 /* rule 104 can match eol */
6447 YY_RULE_SETUP
6448 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",surf_parse_text);
6449         YY_BREAK
6450 case 105:
6451 YY_RULE_SETUP
6452 FAIL("Unexpected character `%c': `</trace_connect>' expected.",surf_parse_text[0]);
6453         YY_BREAK
6454 case YY_STATE_EOF(E_surfxml_trace___connect):
6455 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace_connect>' expected.");
6456         YY_BREAK
6457
6458 case 106:
6459 /* rule 106 can match eol */
6460 YY_RULE_SETUP
6461 FAIL("Starting tag <AS> is not allowed here.");
6462         YY_BREAK
6463 case 107:
6464 /* rule 107 can match eol */
6465 YY_RULE_SETUP
6466 {
6467   AX_surfxml_AS_id = 0;
6468   surfxml_AS_id_isset = 0;
6469   AX_surfxml_AS_routing = AU_surfxml_AS_routing;
6470   surfxml_AS_routing_isset = 0;
6471   ENTER(AL_surfxml_AS); pushbuffer(0);
6472   }
6473         YY_BREAK
6474
6475 case 108:
6476 /* rule 108 can match eol */
6477 YY_RULE_SETUP
6478 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);
6479         YY_BREAK
6480 case 109:
6481 /* rule 109 can match eol */
6482 YY_RULE_SETUP
6483 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);
6484         YY_BREAK
6485 case 110:
6486 /* rule 110 can match eol */
6487 case 111:
6488 /* rule 111 can match eol */
6489 YY_RULE_SETUP
6490 A_surfxml_AS_routing = A_surfxml_AS_routing_Full;
6491         YY_BREAK
6492 case 112:
6493 /* rule 112 can match eol */
6494 case 113:
6495 /* rule 113 can match eol */
6496 YY_RULE_SETUP
6497 A_surfxml_AS_routing = A_surfxml_AS_routing_Floyd;
6498         YY_BREAK
6499 case 114:
6500 /* rule 114 can match eol */
6501 case 115:
6502 /* rule 115 can match eol */
6503 YY_RULE_SETUP
6504 A_surfxml_AS_routing = A_surfxml_AS_routing_Dijkstra;
6505         YY_BREAK
6506 case 116:
6507 /* rule 116 can match eol */
6508 case 117:
6509 /* rule 117 can match eol */
6510 YY_RULE_SETUP
6511 A_surfxml_AS_routing = A_surfxml_AS_routing_DijkstraCache;
6512         YY_BREAK
6513 case 118:
6514 /* rule 118 can match eol */
6515 case 119:
6516 /* rule 119 can match eol */
6517 YY_RULE_SETUP
6518 A_surfxml_AS_routing = A_surfxml_AS_routing_None;
6519         YY_BREAK
6520 case 120:
6521 /* rule 120 can match eol */
6522 case 121:
6523 /* rule 121 can match eol */
6524 YY_RULE_SETUP
6525 A_surfxml_AS_routing = A_surfxml_AS_routing_Vivaldi;
6526         YY_BREAK
6527 case 122:
6528 /* rule 122 can match eol */
6529 case 123:
6530 /* rule 123 can match eol */
6531 YY_RULE_SETUP
6532 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster;
6533         YY_BREAK
6534 case 124:
6535 /* rule 124 can match eol */
6536 case 125:
6537 /* rule 125 can match eol */
6538 YY_RULE_SETUP
6539 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster___torus;
6540         YY_BREAK
6541 case 126:
6542 YY_RULE_SETUP
6543 {
6544   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6545   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
6546   LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
6547  }
6548         YY_BREAK
6549 case 127:
6550 YY_RULE_SETUP
6551 {
6552   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6553   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
6554   LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
6555   switch (YY_START) {
6556    case S_surfxml_AS_6: case S_surfxml_AS_5: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS: SET(S_surfxml_AS_6); break;
6557    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6558    case S_surfxml_platform_1: case S_surfxml_platform_6: case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_5: SET(S_surfxml_platform_6); break;
6559   }
6560  }
6561         YY_BREAK
6562 case 128:
6563 YY_RULE_SETUP
6564 FAIL("Unexpected character `%c' in attribute list of AS element.", surf_parse_text[0]);
6565         YY_BREAK
6566 case 129:
6567 YY_RULE_SETUP
6568 FAIL("Bad attribute `%s' in `AS' element start tag.",surf_parse_text);
6569         YY_BREAK
6570 case YY_STATE_EOF(AL_surfxml_AS):
6571 FAIL("EOF in attribute list of `AS' element.");
6572         YY_BREAK
6573
6574 case 130:
6575 /* rule 130 can match eol */
6576 YY_RULE_SETUP
6577 {
6578   LEAVE;
6579   ETag_surfxml_AS();
6580   popbuffer(); /* attribute */
6581   switch (YY_START) {
6582    case S_surfxml_AS_6: case S_surfxml_AS_5: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS: SET(S_surfxml_AS_6); break;
6583    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6584    case S_surfxml_platform_1: case S_surfxml_platform_6: case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_5: SET(S_surfxml_platform_6); break;
6585   }
6586  }
6587         YY_BREAK
6588 case 131:
6589 /* rule 131 can match eol */
6590 YY_RULE_SETUP
6591 FAIL("Unexpected end-tag `%s': `</AS>' expected.",surf_parse_text);
6592         YY_BREAK
6593 case 132:
6594 YY_RULE_SETUP
6595 FAIL("Unexpected character `%c': `</AS>' expected.",surf_parse_text[0]);
6596         YY_BREAK
6597 case YY_STATE_EOF(S_surfxml_AS_11):
6598 case YY_STATE_EOF(S_surfxml_AS_4):
6599 case YY_STATE_EOF(S_surfxml_AS_14):
6600 case YY_STATE_EOF(S_surfxml_AS_6):
6601 case YY_STATE_EOF(S_surfxml_AS_12):
6602 case YY_STATE_EOF(S_surfxml_AS_3):
6603 case YY_STATE_EOF(S_surfxml_AS):
6604 case YY_STATE_EOF(S_surfxml_AS_16):
6605 case YY_STATE_EOF(E_surfxml_AS):
6606 case YY_STATE_EOF(S_surfxml_AS_7):
6607 case YY_STATE_EOF(S_surfxml_AS_9):
6608 case YY_STATE_EOF(S_surfxml_AS_1):
6609 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</AS>' expected.");
6610         YY_BREAK
6611
6612 case 133:
6613 /* rule 133 can match eol */
6614 YY_RULE_SETUP
6615 FAIL("Starting tag <storage_type> is not allowed here.");
6616         YY_BREAK
6617 case 134:
6618 /* rule 134 can match eol */
6619 YY_RULE_SETUP
6620 {
6621   AX_surfxml_storage___type_id = 0;
6622   surfxml_storage___type_id_isset = 0;
6623   AX_surfxml_storage___type_model = 0;
6624   surfxml_storage___type_model_isset = 0;
6625   AX_surfxml_storage___type_size = 0;
6626   surfxml_storage___type_size_isset = 0;
6627   AX_surfxml_storage___type_content = 0;
6628   surfxml_storage___type_content_isset = 0;
6629   AX_surfxml_storage___type_content___type = 16;
6630   surfxml_storage___type_content___type_isset = 0;
6631   ENTER(AL_surfxml_storage___type); pushbuffer(0);
6632   }
6633         YY_BREAK
6634
6635 case 135:
6636 /* rule 135 can match eol */
6637 YY_RULE_SETUP
6638 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);
6639         YY_BREAK
6640 case 136:
6641 /* rule 136 can match eol */
6642 YY_RULE_SETUP
6643 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);
6644         YY_BREAK
6645 case 137:
6646 /* rule 137 can match eol */
6647 YY_RULE_SETUP
6648 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);
6649         YY_BREAK
6650 case 138:
6651 /* rule 138 can match eol */
6652 YY_RULE_SETUP
6653 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);
6654         YY_BREAK
6655 case 139:
6656 /* rule 139 can match eol */
6657 YY_RULE_SETUP
6658 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);
6659         YY_BREAK
6660 case 140:
6661 /* rule 140 can match eol */
6662 YY_RULE_SETUP
6663 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);
6664         YY_BREAK
6665 case 141:
6666 /* rule 141 can match eol */
6667 YY_RULE_SETUP
6668 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);
6669         YY_BREAK
6670 case 142:
6671 /* rule 142 can match eol */
6672 YY_RULE_SETUP
6673 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);
6674         YY_BREAK
6675 case 143:
6676 /* rule 143 can match eol */
6677 YY_RULE_SETUP
6678 if (surfxml_storage___type_content___type_isset != 0) {FAIL("Multiple definition of attribute content_type in <surfxml_storage___type>");} surfxml_storage___type_content___type_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_content___type);
6679         YY_BREAK
6680 case 144:
6681 /* rule 144 can match eol */
6682 YY_RULE_SETUP
6683 if (surfxml_storage___type_content___type_isset != 0) {FAIL("Multiple definition of attribute content_type in <surfxml_storage___type>");}  surfxml_storage___type_content___type_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_content___type);
6684         YY_BREAK
6685 case 145:
6686 YY_RULE_SETUP
6687 {
6688   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
6689   if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
6690   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
6691   LEAVE; STag_surfxml_storage___type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage___type);
6692  }
6693         YY_BREAK
6694 case 146:
6695 YY_RULE_SETUP
6696 {
6697   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
6698   if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
6699   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
6700   LEAVE; STag_surfxml_storage___type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage___type(); popbuffer(); /* attribute */
6701   switch (YY_START) {
6702    case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6703    case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_1: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
6704   }
6705  }
6706         YY_BREAK
6707 case 147:
6708 YY_RULE_SETUP
6709 FAIL("Unexpected character `%c' in attribute list of storage_type element.", surf_parse_text[0]);
6710         YY_BREAK
6711 case 148:
6712 YY_RULE_SETUP
6713 FAIL("Bad attribute `%s' in `storage_type' element start tag.",surf_parse_text);
6714         YY_BREAK
6715 case YY_STATE_EOF(AL_surfxml_storage___type):
6716 FAIL("EOF in attribute list of `storage_type' element.");
6717         YY_BREAK
6718
6719 case 149:
6720 /* rule 149 can match eol */
6721 YY_RULE_SETUP
6722 {
6723   LEAVE;
6724   ETag_surfxml_storage___type();
6725   popbuffer(); /* attribute */
6726   switch (YY_START) {
6727    case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6728    case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_1: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
6729   }
6730  }
6731         YY_BREAK
6732 case 150:
6733 /* rule 150 can match eol */
6734 YY_RULE_SETUP
6735 FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",surf_parse_text);
6736         YY_BREAK
6737 case 151:
6738 YY_RULE_SETUP
6739 FAIL("Unexpected character `%c': `</storage_type>' expected.",surf_parse_text[0]);
6740         YY_BREAK
6741 case YY_STATE_EOF(S_surfxml_storage___type_2):
6742 case YY_STATE_EOF(S_surfxml_storage___type):
6743 case YY_STATE_EOF(E_surfxml_storage___type):
6744 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage_type>' expected.");
6745         YY_BREAK
6746
6747 case 152:
6748 /* rule 152 can match eol */
6749 YY_RULE_SETUP
6750 FAIL("Starting tag <mount> is not allowed here.");
6751         YY_BREAK
6752 case 153:
6753 /* rule 153 can match eol */
6754 YY_RULE_SETUP
6755 {
6756   AX_surfxml_mount_storageId = 0;
6757   surfxml_mount_storageId_isset = 0;
6758   AX_surfxml_mount_name = 0;
6759   surfxml_mount_name_isset = 0;
6760   ENTER(AL_surfxml_mount); pushbuffer(0);
6761   }
6762         YY_BREAK
6763
6764 case 154:
6765 /* rule 154 can match eol */
6766 YY_RULE_SETUP
6767 if (surfxml_mount_storageId_isset != 0) {FAIL("Multiple definition of attribute storageId in <surfxml_mount>");} surfxml_mount_storageId_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mount_storageId);
6768         YY_BREAK
6769 case 155:
6770 /* rule 155 can match eol */
6771 YY_RULE_SETUP
6772 if (surfxml_mount_storageId_isset != 0) {FAIL("Multiple definition of attribute storageId in <surfxml_mount>");}  surfxml_mount_storageId_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mount_storageId);
6773         YY_BREAK
6774 case 156:
6775 /* rule 156 can match eol */
6776 YY_RULE_SETUP
6777 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);
6778         YY_BREAK
6779 case 157:
6780 /* rule 157 can match eol */
6781 YY_RULE_SETUP
6782 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);
6783         YY_BREAK
6784 case 158:
6785 YY_RULE_SETUP
6786 {
6787   if (!AX_surfxml_mount_storageId) FAIL("Required attribute `storageId' not set for `mount' element.");
6788   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6789   LEAVE; STag_surfxml_mount();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mount);
6790  }
6791         YY_BREAK
6792 case 159:
6793 YY_RULE_SETUP
6794 {
6795   if (!AX_surfxml_mount_storageId) FAIL("Required attribute `storageId' not set for `mount' element.");
6796   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6797   LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */
6798   switch (YY_START) {
6799    case S_surfxml_host_2: case S_surfxml_host_1: case S_surfxml_host: SET(S_surfxml_host_2); break;
6800   }
6801  }
6802         YY_BREAK
6803 case 160:
6804 YY_RULE_SETUP
6805 FAIL("Unexpected character `%c' in attribute list of mount element.", surf_parse_text[0]);
6806         YY_BREAK
6807 case 161:
6808 YY_RULE_SETUP
6809 FAIL("Bad attribute `%s' in `mount' element start tag.",surf_parse_text);
6810         YY_BREAK
6811 case YY_STATE_EOF(AL_surfxml_mount):
6812 FAIL("EOF in attribute list of `mount' element.");
6813         YY_BREAK
6814
6815 case 162:
6816 /* rule 162 can match eol */
6817 YY_RULE_SETUP
6818 {
6819   LEAVE;
6820   ETag_surfxml_mount();
6821   popbuffer(); /* attribute */
6822   switch (YY_START) {
6823    case S_surfxml_host_2: case S_surfxml_host_1: case S_surfxml_host: SET(S_surfxml_host_2); break;
6824   }
6825  }
6826         YY_BREAK
6827 case 163:
6828 /* rule 163 can match eol */
6829 YY_RULE_SETUP
6830 FAIL("Unexpected end-tag `%s': `</mount>' expected.",surf_parse_text);
6831         YY_BREAK
6832 case 164:
6833 YY_RULE_SETUP
6834 FAIL("Unexpected character `%c': `</mount>' expected.",surf_parse_text[0]);
6835         YY_BREAK
6836 case YY_STATE_EOF(E_surfxml_mount):
6837 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mount>' expected.");
6838         YY_BREAK
6839
6840 case 165:
6841 /* rule 165 can match eol */
6842 YY_RULE_SETUP
6843 FAIL("Starting tag <mstorage> is not allowed here.");
6844         YY_BREAK
6845 case 166:
6846 /* rule 166 can match eol */
6847 YY_RULE_SETUP
6848 {
6849   AX_surfxml_mstorage_typeId = 0;
6850   surfxml_mstorage_typeId_isset = 0;
6851   AX_surfxml_mstorage_name = 0;
6852   surfxml_mstorage_name_isset = 0;
6853   ENTER(AL_surfxml_mstorage); pushbuffer(0);
6854   }
6855         YY_BREAK
6856
6857 case 167:
6858 /* rule 167 can match eol */
6859 YY_RULE_SETUP
6860 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);
6861         YY_BREAK
6862 case 168:
6863 /* rule 168 can match eol */
6864 YY_RULE_SETUP
6865 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);
6866         YY_BREAK
6867 case 169:
6868 /* rule 169 can match eol */
6869 YY_RULE_SETUP
6870 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);
6871         YY_BREAK
6872 case 170:
6873 /* rule 170 can match eol */
6874 YY_RULE_SETUP
6875 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);
6876         YY_BREAK
6877 case 171:
6878 YY_RULE_SETUP
6879 {
6880   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6881   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6882   LEAVE; STag_surfxml_mstorage();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mstorage);
6883  }
6884         YY_BREAK
6885 case 172:
6886 YY_RULE_SETUP
6887 {
6888   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6889   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6890   LEAVE; STag_surfxml_mstorage(); surfxml_pcdata_ix = 0; ETag_surfxml_mstorage(); popbuffer(); /* attribute */
6891   switch (YY_START) {
6892    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
6893   }
6894  }
6895         YY_BREAK
6896 case 173:
6897 YY_RULE_SETUP
6898 FAIL("Unexpected character `%c' in attribute list of mstorage element.", surf_parse_text[0]);
6899         YY_BREAK
6900 case 174:
6901 YY_RULE_SETUP
6902 FAIL("Bad attribute `%s' in `mstorage' element start tag.",surf_parse_text);
6903         YY_BREAK
6904 case YY_STATE_EOF(AL_surfxml_mstorage):
6905 FAIL("EOF in attribute list of `mstorage' element.");
6906         YY_BREAK
6907
6908 case 175:
6909 /* rule 175 can match eol */
6910 YY_RULE_SETUP
6911 {
6912   LEAVE;
6913   ETag_surfxml_mstorage();
6914   popbuffer(); /* attribute */
6915   switch (YY_START) {
6916    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
6917   }
6918  }
6919         YY_BREAK
6920 case 176:
6921 /* rule 176 can match eol */
6922 YY_RULE_SETUP
6923 FAIL("Unexpected end-tag `%s': `</mstorage>' expected.",surf_parse_text);
6924         YY_BREAK
6925 case 177:
6926 YY_RULE_SETUP
6927 FAIL("Unexpected character `%c': `</mstorage>' expected.",surf_parse_text[0]);
6928         YY_BREAK
6929 case YY_STATE_EOF(E_surfxml_mstorage):
6930 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mstorage>' expected.");
6931         YY_BREAK
6932
6933 case 178:
6934 /* rule 178 can match eol */
6935 YY_RULE_SETUP
6936 FAIL("Starting tag <host> is not allowed here.");
6937         YY_BREAK
6938 case 179:
6939 /* rule 179 can match eol */
6940 YY_RULE_SETUP
6941 {
6942   AX_surfxml_host_id = 0;
6943   surfxml_host_id_isset = 0;
6944   AX_surfxml_host_power = 0;
6945   surfxml_host_power_isset = 0;
6946   AX_surfxml_host_core = 25;
6947   surfxml_host_core_isset = 0;
6948   AX_surfxml_host_availability = 27;
6949   surfxml_host_availability_isset = 0;
6950   AX_surfxml_host_availability___file = 0;
6951   surfxml_host_availability___file_isset = 0;
6952   AX_surfxml_host_state = A_surfxml_host_state_ON;
6953   surfxml_host_state_isset = 0;
6954   AX_surfxml_host_state___file = 0;
6955   surfxml_host_state___file_isset = 0;
6956   AX_surfxml_host_coordinates = 0;
6957   surfxml_host_coordinates_isset = 0;
6958   AX_surfxml_host_pstate = 31;
6959   surfxml_host_pstate_isset = 0;
6960   ENTER(AL_surfxml_host); pushbuffer(0);
6961   }
6962         YY_BREAK
6963
6964 case 180:
6965 /* rule 180 can match eol */
6966 YY_RULE_SETUP
6967 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);
6968         YY_BREAK
6969 case 181:
6970 /* rule 181 can match eol */
6971 YY_RULE_SETUP
6972 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);
6973         YY_BREAK
6974 case 182:
6975 /* rule 182 can match eol */
6976 YY_RULE_SETUP
6977 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);
6978         YY_BREAK
6979 case 183:
6980 /* rule 183 can match eol */
6981 YY_RULE_SETUP
6982 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);
6983         YY_BREAK
6984 case 184:
6985 /* rule 184 can match eol */
6986 YY_RULE_SETUP
6987 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);
6988         YY_BREAK
6989 case 185:
6990 /* rule 185 can match eol */
6991 YY_RULE_SETUP
6992 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);
6993         YY_BREAK
6994 case 186:
6995 /* rule 186 can match eol */
6996 YY_RULE_SETUP
6997 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);
6998         YY_BREAK
6999 case 187:
7000 /* rule 187 can match eol */
7001 YY_RULE_SETUP
7002 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);
7003         YY_BREAK
7004 case 188:
7005 /* rule 188 can match eol */
7006 YY_RULE_SETUP
7007 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);
7008         YY_BREAK
7009 case 189:
7010 /* rule 189 can match eol */
7011 YY_RULE_SETUP
7012 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);
7013         YY_BREAK
7014 case 190:
7015 /* rule 190 can match eol */
7016 case 191:
7017 /* rule 191 can match eol */
7018 YY_RULE_SETUP
7019 A_surfxml_host_state = A_surfxml_host_state_ON;
7020         YY_BREAK
7021 case 192:
7022 /* rule 192 can match eol */
7023 case 193:
7024 /* rule 193 can match eol */
7025 YY_RULE_SETUP
7026 A_surfxml_host_state = A_surfxml_host_state_OFF;
7027         YY_BREAK
7028 case 194:
7029 /* rule 194 can match eol */
7030 YY_RULE_SETUP
7031 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);
7032         YY_BREAK
7033 case 195:
7034 /* rule 195 can match eol */
7035 YY_RULE_SETUP
7036 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);
7037         YY_BREAK
7038 case 196:
7039 /* rule 196 can match eol */
7040 YY_RULE_SETUP
7041 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);
7042         YY_BREAK
7043 case 197:
7044 /* rule 197 can match eol */
7045 YY_RULE_SETUP
7046 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);
7047         YY_BREAK
7048 case 198:
7049 /* rule 198 can match eol */
7050 YY_RULE_SETUP
7051 if (surfxml_host_pstate_isset != 0) {FAIL("Multiple definition of attribute pstate in <surfxml_host>");} surfxml_host_pstate_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_pstate);
7052         YY_BREAK
7053 case 199:
7054 /* rule 199 can match eol */
7055 YY_RULE_SETUP
7056 if (surfxml_host_pstate_isset != 0) {FAIL("Multiple definition of attribute pstate in <surfxml_host>");}  surfxml_host_pstate_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_pstate);
7057         YY_BREAK
7058 case 200:
7059 YY_RULE_SETUP
7060 {
7061   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
7062   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
7063   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
7064  }
7065         YY_BREAK
7066 case 201:
7067 YY_RULE_SETUP
7068 {
7069   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
7070   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
7071   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
7072   switch (YY_START) {
7073    case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_1: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
7074   }
7075  }
7076         YY_BREAK
7077 case 202:
7078 YY_RULE_SETUP
7079 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
7080         YY_BREAK
7081 case 203:
7082 YY_RULE_SETUP
7083 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
7084         YY_BREAK
7085 case YY_STATE_EOF(AL_surfxml_host):
7086 FAIL("EOF in attribute list of `host' element.");
7087         YY_BREAK
7088
7089 case 204:
7090 /* rule 204 can match eol */
7091 YY_RULE_SETUP
7092 {
7093   LEAVE;
7094   ETag_surfxml_host();
7095   popbuffer(); /* attribute */
7096   switch (YY_START) {
7097    case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_1: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
7098   }
7099  }
7100         YY_BREAK
7101 case 205:
7102 /* rule 205 can match eol */
7103 YY_RULE_SETUP
7104 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
7105         YY_BREAK
7106 case 206:
7107 YY_RULE_SETUP
7108 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
7109         YY_BREAK
7110 case YY_STATE_EOF(S_surfxml_host):
7111 case YY_STATE_EOF(S_surfxml_host_2):
7112 case YY_STATE_EOF(E_surfxml_host):
7113 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host>' expected.");
7114         YY_BREAK
7115
7116 case 207:
7117 /* rule 207 can match eol */
7118 YY_RULE_SETUP
7119 FAIL("Starting tag <storage> is not allowed here.");
7120         YY_BREAK
7121 case 208:
7122 /* rule 208 can match eol */
7123 YY_RULE_SETUP
7124 {
7125   AX_surfxml_storage_id = 0;
7126   surfxml_storage_id_isset = 0;
7127   AX_surfxml_storage_typeId = 0;
7128   surfxml_storage_typeId_isset = 0;
7129   AX_surfxml_storage_content = 0;
7130   surfxml_storage_content_isset = 0;
7131   AX_surfxml_storage_content___type = 35;
7132   surfxml_storage_content___type_isset = 0;
7133   AX_surfxml_storage_attach = 0;
7134   surfxml_storage_attach_isset = 0;
7135   ENTER(AL_surfxml_storage); pushbuffer(0);
7136   }
7137         YY_BREAK
7138
7139 case 209:
7140 /* rule 209 can match eol */
7141 YY_RULE_SETUP
7142 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);
7143         YY_BREAK
7144 case 210:
7145 /* rule 210 can match eol */
7146 YY_RULE_SETUP
7147 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);
7148         YY_BREAK
7149 case 211:
7150 /* rule 211 can match eol */
7151 YY_RULE_SETUP
7152 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);
7153         YY_BREAK
7154 case 212:
7155 /* rule 212 can match eol */
7156 YY_RULE_SETUP
7157 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);
7158         YY_BREAK
7159 case 213:
7160 /* rule 213 can match eol */
7161 YY_RULE_SETUP
7162 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);
7163         YY_BREAK
7164 case 214:
7165 /* rule 214 can match eol */
7166 YY_RULE_SETUP
7167 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);
7168         YY_BREAK
7169 case 215:
7170 /* rule 215 can match eol */
7171 YY_RULE_SETUP
7172 if (surfxml_storage_content___type_isset != 0) {FAIL("Multiple definition of attribute content_type in <surfxml_storage>");} surfxml_storage_content___type_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_content___type);
7173         YY_BREAK
7174 case 216:
7175 /* rule 216 can match eol */
7176 YY_RULE_SETUP
7177 if (surfxml_storage_content___type_isset != 0) {FAIL("Multiple definition of attribute content_type in <surfxml_storage>");}  surfxml_storage_content___type_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_content___type);
7178         YY_BREAK
7179 case 217:
7180 /* rule 217 can match eol */
7181 YY_RULE_SETUP
7182 if (surfxml_storage_attach_isset != 0) {FAIL("Multiple definition of attribute attach in <surfxml_storage>");} surfxml_storage_attach_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_attach);
7183         YY_BREAK
7184 case 218:
7185 /* rule 218 can match eol */
7186 YY_RULE_SETUP
7187 if (surfxml_storage_attach_isset != 0) {FAIL("Multiple definition of attribute attach in <surfxml_storage>");}  surfxml_storage_attach_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_attach);
7188         YY_BREAK
7189 case 219:
7190 YY_RULE_SETUP
7191 {
7192   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
7193   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
7194   if (!AX_surfxml_storage_attach) FAIL("Required attribute `attach' not set for `storage' element.");
7195   LEAVE; STag_surfxml_storage();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage);
7196  }
7197         YY_BREAK
7198 case 220:
7199 YY_RULE_SETUP
7200 {
7201   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
7202   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
7203   if (!AX_surfxml_storage_attach) FAIL("Required attribute `attach' not set for `storage' element.");
7204   LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */
7205   switch (YY_START) {
7206    case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_1: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
7207    case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
7208   }
7209  }
7210         YY_BREAK
7211 case 221:
7212 YY_RULE_SETUP
7213 FAIL("Unexpected character `%c' in attribute list of storage element.", surf_parse_text[0]);
7214         YY_BREAK
7215 case 222:
7216 YY_RULE_SETUP
7217 FAIL("Bad attribute `%s' in `storage' element start tag.",surf_parse_text);
7218         YY_BREAK
7219 case YY_STATE_EOF(AL_surfxml_storage):
7220 FAIL("EOF in attribute list of `storage' element.");
7221         YY_BREAK
7222
7223 case 223:
7224 /* rule 223 can match eol */
7225 YY_RULE_SETUP
7226 {
7227   LEAVE;
7228   ETag_surfxml_storage();
7229   popbuffer(); /* attribute */
7230   switch (YY_START) {
7231    case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_1: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
7232    case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
7233   }
7234  }
7235         YY_BREAK
7236 case 224:
7237 /* rule 224 can match eol */
7238 YY_RULE_SETUP
7239 FAIL("Unexpected end-tag `%s': `</storage>' expected.",surf_parse_text);
7240         YY_BREAK
7241 case 225:
7242 YY_RULE_SETUP
7243 FAIL("Unexpected character `%c': `</storage>' expected.",surf_parse_text[0]);
7244         YY_BREAK
7245 case YY_STATE_EOF(S_surfxml_storage_2):
7246 case YY_STATE_EOF(S_surfxml_storage):
7247 case YY_STATE_EOF(E_surfxml_storage):
7248 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage>' expected.");
7249         YY_BREAK
7250
7251 case 226:
7252 /* rule 226 can match eol */
7253 YY_RULE_SETUP
7254 FAIL("Starting tag <gpu> is not allowed here.");
7255         YY_BREAK
7256 case 227:
7257 /* rule 227 can match eol */
7258 YY_RULE_SETUP
7259 {
7260   AX_surfxml_gpu_name = 0;
7261   surfxml_gpu_name_isset = 0;
7262   ENTER(AL_surfxml_gpu); pushbuffer(0);
7263   }
7264         YY_BREAK
7265
7266 case 228:
7267 /* rule 228 can match eol */
7268 YY_RULE_SETUP
7269 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);
7270         YY_BREAK
7271 case 229:
7272 /* rule 229 can match eol */
7273 YY_RULE_SETUP
7274 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);
7275         YY_BREAK
7276 case 230:
7277 YY_RULE_SETUP
7278 {
7279   if (!AX_surfxml_gpu_name) FAIL("Required attribute `name' not set for `gpu' element.");
7280   LEAVE; STag_surfxml_gpu();surfxml_pcdata_ix = 0; ENTER(E_surfxml_gpu);
7281  }
7282         YY_BREAK
7283 case 231:
7284 YY_RULE_SETUP
7285 {
7286   if (!AX_surfxml_gpu_name) FAIL("Required attribute `name' not set for `gpu' element.");
7287   LEAVE; STag_surfxml_gpu(); surfxml_pcdata_ix = 0; ETag_surfxml_gpu(); popbuffer(); /* attribute */
7288   switch (YY_START) {
7289    case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
7290   }
7291  }
7292         YY_BREAK
7293 case 232:
7294 YY_RULE_SETUP
7295 FAIL("Unexpected character `%c' in attribute list of gpu element.", surf_parse_text[0]);
7296         YY_BREAK
7297 case 233:
7298 YY_RULE_SETUP
7299 FAIL("Bad attribute `%s' in `gpu' element start tag.",surf_parse_text);
7300         YY_BREAK
7301 case YY_STATE_EOF(AL_surfxml_gpu):
7302 FAIL("EOF in attribute list of `gpu' element.");
7303         YY_BREAK
7304
7305 case 234:
7306 /* rule 234 can match eol */
7307 YY_RULE_SETUP
7308 {
7309   LEAVE;
7310   ETag_surfxml_gpu();
7311   popbuffer(); /* attribute */
7312   switch (YY_START) {
7313    case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
7314   }
7315  }
7316         YY_BREAK
7317 case 235:
7318 /* rule 235 can match eol */
7319 YY_RULE_SETUP
7320 FAIL("Unexpected end-tag `%s': `</gpu>' expected.",surf_parse_text);
7321         YY_BREAK
7322 case 236:
7323 YY_RULE_SETUP
7324 FAIL("Unexpected character `%c': `</gpu>' expected.",surf_parse_text[0]);
7325         YY_BREAK
7326 case YY_STATE_EOF(E_surfxml_gpu):
7327 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</gpu>' expected.");
7328         YY_BREAK
7329
7330 case 237:
7331 /* rule 237 can match eol */
7332 YY_RULE_SETUP
7333 FAIL("Starting tag <host_link> is not allowed here.");
7334         YY_BREAK
7335 case 238:
7336 /* rule 238 can match eol */
7337 YY_RULE_SETUP
7338 {
7339   AX_surfxml_host___link_id = 0;
7340   surfxml_host___link_id_isset = 0;
7341   AX_surfxml_host___link_up = 0;
7342   surfxml_host___link_up_isset = 0;
7343   AX_surfxml_host___link_down = 0;
7344   surfxml_host___link_down_isset = 0;
7345   ENTER(AL_surfxml_host___link); pushbuffer(0);
7346   }
7347         YY_BREAK
7348
7349 case 239:
7350 /* rule 239 can match eol */
7351 YY_RULE_SETUP
7352 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);
7353         YY_BREAK
7354 case 240:
7355 /* rule 240 can match eol */
7356 YY_RULE_SETUP
7357 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);
7358         YY_BREAK
7359 case 241:
7360 /* rule 241 can match eol */
7361 YY_RULE_SETUP
7362 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);
7363         YY_BREAK
7364 case 242:
7365 /* rule 242 can match eol */
7366 YY_RULE_SETUP
7367 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);
7368         YY_BREAK
7369 case 243:
7370 /* rule 243 can match eol */
7371 YY_RULE_SETUP
7372 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);
7373         YY_BREAK
7374 case 244:
7375 /* rule 244 can match eol */
7376 YY_RULE_SETUP
7377 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);
7378         YY_BREAK
7379 case 245:
7380 YY_RULE_SETUP
7381 {
7382   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
7383   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
7384   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
7385   LEAVE; STag_surfxml_host___link();surfxml_pcdata_ix = 0; ENTER(E_surfxml_host___link);
7386  }
7387         YY_BREAK
7388 case 246:
7389 YY_RULE_SETUP
7390 {
7391   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
7392   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
7393   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
7394   LEAVE; STag_surfxml_host___link(); surfxml_pcdata_ix = 0; ETag_surfxml_host___link(); popbuffer(); /* attribute */
7395   switch (YY_START) {
7396    case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
7397   }
7398  }
7399         YY_BREAK
7400 case 247:
7401 YY_RULE_SETUP
7402 FAIL("Unexpected character `%c' in attribute list of host_link element.", surf_parse_text[0]);
7403         YY_BREAK
7404 case 248:
7405 YY_RULE_SETUP
7406 FAIL("Bad attribute `%s' in `host_link' element start tag.",surf_parse_text);
7407         YY_BREAK
7408 case YY_STATE_EOF(AL_surfxml_host___link):
7409 FAIL("EOF in attribute list of `host_link' element.");
7410         YY_BREAK
7411
7412 case 249:
7413 /* rule 249 can match eol */
7414 YY_RULE_SETUP
7415 {
7416   LEAVE;
7417   ETag_surfxml_host___link();
7418   popbuffer(); /* attribute */
7419   switch (YY_START) {
7420    case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
7421   }
7422  }
7423         YY_BREAK
7424 case 250:
7425 /* rule 250 can match eol */
7426 YY_RULE_SETUP
7427 FAIL("Unexpected end-tag `%s': `</host_link>' expected.",surf_parse_text);
7428         YY_BREAK
7429 case 251:
7430 YY_RULE_SETUP
7431 FAIL("Unexpected character `%c': `</host_link>' expected.",surf_parse_text[0]);
7432         YY_BREAK
7433 case YY_STATE_EOF(E_surfxml_host___link):
7434 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host_link>' expected.");
7435         YY_BREAK
7436
7437 case 252:
7438 /* rule 252 can match eol */
7439 YY_RULE_SETUP
7440 FAIL("Starting tag <cluster> is not allowed here.");
7441         YY_BREAK
7442 case 253:
7443 /* rule 253 can match eol */
7444 YY_RULE_SETUP
7445 {
7446   AX_surfxml_cluster_id = 0;
7447   surfxml_cluster_id_isset = 0;
7448   AX_surfxml_cluster_prefix = 0;
7449   surfxml_cluster_prefix_isset = 0;
7450   AX_surfxml_cluster_suffix = 0;
7451   surfxml_cluster_suffix_isset = 0;
7452   AX_surfxml_cluster_radical = 0;
7453   surfxml_cluster_radical_isset = 0;
7454   AX_surfxml_cluster_power = 0;
7455   surfxml_cluster_power_isset = 0;
7456   AX_surfxml_cluster_core = 44;
7457   surfxml_cluster_core_isset = 0;
7458   AX_surfxml_cluster_bw = 0;
7459   surfxml_cluster_bw_isset = 0;
7460   AX_surfxml_cluster_lat = 0;
7461   surfxml_cluster_lat_isset = 0;
7462   AX_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
7463   surfxml_cluster_sharing___policy_isset = 0;
7464   AX_surfxml_cluster_topology = A_surfxml_cluster_topology_FLAT;
7465   surfxml_cluster_topology_isset = 0;
7466   AX_surfxml_cluster_topo___parameters = 0;
7467   surfxml_cluster_topo___parameters_isset = 0;
7468   AX_surfxml_cluster_bb___bw = 0;
7469   surfxml_cluster_bb___bw_isset = 0;
7470   AX_surfxml_cluster_bb___lat = 0;
7471   surfxml_cluster_bb___lat_isset = 0;
7472   AX_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
7473   surfxml_cluster_bb___sharing___policy_isset = 0;
7474   AX_surfxml_cluster_availability___file = 0;
7475   surfxml_cluster_availability___file_isset = 0;
7476   AX_surfxml_cluster_state___file = 0;
7477   surfxml_cluster_state___file_isset = 0;
7478   AX_surfxml_cluster_router___id = 0;
7479   surfxml_cluster_router___id_isset = 0;
7480   AX_surfxml_cluster_limiter___link = 0;
7481   surfxml_cluster_limiter___link_isset = 0;
7482   AX_surfxml_cluster_loopback___bw = 0;
7483   surfxml_cluster_loopback___bw_isset = 0;
7484   AX_surfxml_cluster_loopback___lat = 0;
7485   surfxml_cluster_loopback___lat_isset = 0;
7486   ENTER(AL_surfxml_cluster); pushbuffer(0);
7487   }
7488         YY_BREAK
7489
7490 case 254:
7491 /* rule 254 can match eol */
7492 YY_RULE_SETUP
7493 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);
7494         YY_BREAK
7495 case 255:
7496 /* rule 255 can match eol */
7497 YY_RULE_SETUP
7498 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);
7499         YY_BREAK
7500 case 256:
7501 /* rule 256 can match eol */
7502 YY_RULE_SETUP
7503 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);
7504         YY_BREAK
7505 case 257:
7506 /* rule 257 can match eol */
7507 YY_RULE_SETUP
7508 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);
7509         YY_BREAK
7510 case 258:
7511 /* rule 258 can match eol */
7512 YY_RULE_SETUP
7513 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);
7514         YY_BREAK
7515 case 259:
7516 /* rule 259 can match eol */
7517 YY_RULE_SETUP
7518 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);
7519         YY_BREAK
7520 case 260:
7521 /* rule 260 can match eol */
7522 YY_RULE_SETUP
7523 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);
7524         YY_BREAK
7525 case 261:
7526 /* rule 261 can match eol */
7527 YY_RULE_SETUP
7528 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);
7529         YY_BREAK
7530 case 262:
7531 /* rule 262 can match eol */
7532 YY_RULE_SETUP
7533 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);
7534         YY_BREAK
7535 case 263:
7536 /* rule 263 can match eol */
7537 YY_RULE_SETUP
7538 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);
7539         YY_BREAK
7540 case 264:
7541 /* rule 264 can match eol */
7542 YY_RULE_SETUP
7543 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);
7544         YY_BREAK
7545 case 265:
7546 /* rule 265 can match eol */
7547 YY_RULE_SETUP
7548 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);
7549         YY_BREAK
7550 case 266:
7551 /* rule 266 can match eol */
7552 YY_RULE_SETUP
7553 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);
7554         YY_BREAK
7555 case 267:
7556 /* rule 267 can match eol */
7557 YY_RULE_SETUP
7558 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);
7559         YY_BREAK
7560 case 268:
7561 /* rule 268 can match eol */
7562 YY_RULE_SETUP
7563 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);
7564         YY_BREAK
7565 case 269:
7566 /* rule 269 can match eol */
7567 YY_RULE_SETUP
7568 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);
7569         YY_BREAK
7570 case 270:
7571 /* rule 270 can match eol */
7572 case 271:
7573 /* rule 271 can match eol */
7574 YY_RULE_SETUP
7575 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_SHARED;
7576         YY_BREAK
7577 case 272:
7578 /* rule 272 can match eol */
7579 case 273:
7580 /* rule 273 can match eol */
7581 YY_RULE_SETUP
7582 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
7583         YY_BREAK
7584 case 274:
7585 /* rule 274 can match eol */
7586 case 275:
7587 /* rule 275 can match eol */
7588 YY_RULE_SETUP
7589 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FATPIPE;
7590         YY_BREAK
7591 case 276:
7592 /* rule 276 can match eol */
7593 case 277:
7594 /* rule 277 can match eol */
7595 YY_RULE_SETUP
7596 A_surfxml_cluster_topology = A_surfxml_cluster_topology_FLAT;
7597         YY_BREAK
7598 case 278:
7599 /* rule 278 can match eol */
7600 case 279:
7601 /* rule 279 can match eol */
7602 YY_RULE_SETUP
7603 A_surfxml_cluster_topology = A_surfxml_cluster_topology_TORUS;
7604         YY_BREAK
7605 case 280:
7606 /* rule 280 can match eol */
7607 YY_RULE_SETUP
7608 if (surfxml_cluster_topo___parameters_isset != 0) {FAIL("Multiple definition of attribute topo_parameters in <surfxml_cluster>");} surfxml_cluster_topo___parameters_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_topo___parameters);
7609         YY_BREAK
7610 case 281:
7611 /* rule 281 can match eol */
7612 YY_RULE_SETUP
7613 if (surfxml_cluster_topo___parameters_isset != 0) {FAIL("Multiple definition of attribute topo_parameters in <surfxml_cluster>");}  surfxml_cluster_topo___parameters_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_topo___parameters);
7614         YY_BREAK
7615 case 282:
7616 /* rule 282 can match eol */
7617 YY_RULE_SETUP
7618 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);
7619         YY_BREAK
7620 case 283:
7621 /* rule 283 can match eol */
7622 YY_RULE_SETUP
7623 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);
7624         YY_BREAK
7625 case 284:
7626 /* rule 284 can match eol */
7627 YY_RULE_SETUP
7628 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);
7629         YY_BREAK
7630 case 285:
7631 /* rule 285 can match eol */
7632 YY_RULE_SETUP
7633 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);
7634         YY_BREAK
7635 case 286:
7636 /* rule 286 can match eol */
7637 case 287:
7638 /* rule 287 can match eol */
7639 YY_RULE_SETUP
7640 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
7641         YY_BREAK
7642 case 288:
7643 /* rule 288 can match eol */
7644 case 289:
7645 /* rule 289 can match eol */
7646 YY_RULE_SETUP
7647 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_FATPIPE;
7648         YY_BREAK
7649 case 290:
7650 /* rule 290 can match eol */
7651 YY_RULE_SETUP
7652 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);
7653         YY_BREAK
7654 case 291:
7655 /* rule 291 can match eol */
7656 YY_RULE_SETUP
7657 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);
7658         YY_BREAK
7659 case 292:
7660 /* rule 292 can match eol */
7661 YY_RULE_SETUP
7662 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);
7663         YY_BREAK
7664 case 293:
7665 /* rule 293 can match eol */
7666 YY_RULE_SETUP
7667 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);
7668         YY_BREAK
7669 case 294:
7670 /* rule 294 can match eol */
7671 YY_RULE_SETUP
7672 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);
7673         YY_BREAK
7674 case 295:
7675 /* rule 295 can match eol */
7676 YY_RULE_SETUP
7677 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);
7678         YY_BREAK
7679 case 296:
7680 /* rule 296 can match eol */
7681 YY_RULE_SETUP
7682 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);
7683         YY_BREAK
7684 case 297:
7685 /* rule 297 can match eol */
7686 YY_RULE_SETUP
7687 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);
7688         YY_BREAK
7689 case 298:
7690 /* rule 298 can match eol */
7691 YY_RULE_SETUP
7692 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);
7693         YY_BREAK
7694 case 299:
7695 /* rule 299 can match eol */
7696 YY_RULE_SETUP
7697 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);
7698         YY_BREAK
7699 case 300:
7700 /* rule 300 can match eol */
7701 YY_RULE_SETUP
7702 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);
7703         YY_BREAK
7704 case 301:
7705 /* rule 301 can match eol */
7706 YY_RULE_SETUP
7707 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);
7708         YY_BREAK
7709 case 302:
7710 YY_RULE_SETUP
7711 {
7712   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7713   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7714   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7715   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7716   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
7717   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7718   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7719   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(S_surfxml_cluster);
7720  }
7721         YY_BREAK
7722 case 303:
7723 YY_RULE_SETUP
7724 {
7725   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7726   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7727   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7728   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7729   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
7730   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7731   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7732   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
7733   switch (YY_START) {
7734    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7735    case S_surfxml_AS_6: case S_surfxml_AS_5: case S_surfxml_AS_3: case S_surfxml_AS: case S_surfxml_AS_1: SET(S_surfxml_AS_6); break;
7736    case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_6: case S_surfxml_platform: case S_surfxml_platform_5: SET(S_surfxml_platform_6); break;
7737   }
7738  }
7739         YY_BREAK
7740 case 304:
7741 YY_RULE_SETUP
7742 FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
7743         YY_BREAK
7744 case 305:
7745 YY_RULE_SETUP
7746 FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
7747         YY_BREAK
7748 case YY_STATE_EOF(AL_surfxml_cluster):
7749 FAIL("EOF in attribute list of `cluster' element.");
7750         YY_BREAK
7751
7752 case 306:
7753 /* rule 306 can match eol */
7754 YY_RULE_SETUP
7755 {
7756   LEAVE;
7757   ETag_surfxml_cluster();
7758   popbuffer(); /* attribute */
7759   switch (YY_START) {
7760    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7761    case S_surfxml_AS_6: case S_surfxml_AS_5: case S_surfxml_AS_3: case S_surfxml_AS: case S_surfxml_AS_1: SET(S_surfxml_AS_6); break;
7762    case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_6: case S_surfxml_platform: case S_surfxml_platform_5: SET(S_surfxml_platform_6); break;
7763   }
7764  }
7765         YY_BREAK
7766 case 307:
7767 /* rule 307 can match eol */
7768 YY_RULE_SETUP
7769 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
7770         YY_BREAK
7771 case 308:
7772 YY_RULE_SETUP
7773 FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
7774         YY_BREAK
7775 case YY_STATE_EOF(S_surfxml_cluster):
7776 case YY_STATE_EOF(S_surfxml_cluster_2):
7777 case YY_STATE_EOF(E_surfxml_cluster):
7778 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cluster>' expected.");
7779         YY_BREAK
7780
7781 case 309:
7782 /* rule 309 can match eol */
7783 YY_RULE_SETUP
7784 FAIL("Starting tag <cabinet> is not allowed here.");
7785         YY_BREAK
7786 case 310:
7787 /* rule 310 can match eol */
7788 YY_RULE_SETUP
7789 {
7790   AX_surfxml_cabinet_id = 0;
7791   surfxml_cabinet_id_isset = 0;
7792   AX_surfxml_cabinet_prefix = 0;
7793   surfxml_cabinet_prefix_isset = 0;
7794   AX_surfxml_cabinet_suffix = 0;
7795   surfxml_cabinet_suffix_isset = 0;
7796   AX_surfxml_cabinet_radical = 0;
7797   surfxml_cabinet_radical_isset = 0;
7798   AX_surfxml_cabinet_power = 0;
7799   surfxml_cabinet_power_isset = 0;
7800   AX_surfxml_cabinet_bw = 0;
7801   surfxml_cabinet_bw_isset = 0;
7802   AX_surfxml_cabinet_lat = 0;
7803   surfxml_cabinet_lat_isset = 0;
7804   ENTER(AL_surfxml_cabinet); pushbuffer(0);
7805   }
7806         YY_BREAK
7807
7808 case 311:
7809 /* rule 311 can match eol */
7810 YY_RULE_SETUP
7811 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);
7812         YY_BREAK
7813 case 312:
7814 /* rule 312 can match eol */
7815 YY_RULE_SETUP
7816 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);
7817         YY_BREAK
7818 case 313:
7819 /* rule 313 can match eol */
7820 YY_RULE_SETUP
7821 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);
7822         YY_BREAK
7823 case 314:
7824 /* rule 314 can match eol */
7825 YY_RULE_SETUP
7826 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);
7827         YY_BREAK
7828 case 315:
7829 /* rule 315 can match eol */
7830 YY_RULE_SETUP
7831 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);
7832         YY_BREAK
7833 case 316:
7834 /* rule 316 can match eol */
7835 YY_RULE_SETUP
7836 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);
7837         YY_BREAK
7838 case 317:
7839 /* rule 317 can match eol */
7840 YY_RULE_SETUP
7841 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);
7842         YY_BREAK
7843 case 318:
7844 /* rule 318 can match eol */
7845 YY_RULE_SETUP
7846 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);
7847         YY_BREAK
7848 case 319:
7849 /* rule 319 can match eol */
7850 YY_RULE_SETUP
7851 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);
7852         YY_BREAK
7853 case 320:
7854 /* rule 320 can match eol */
7855 YY_RULE_SETUP
7856 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);
7857         YY_BREAK
7858 case 321:
7859 /* rule 321 can match eol */
7860 YY_RULE_SETUP
7861 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);
7862         YY_BREAK
7863 case 322:
7864 /* rule 322 can match eol */
7865 YY_RULE_SETUP
7866 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);
7867         YY_BREAK
7868 case 323:
7869 /* rule 323 can match eol */
7870 YY_RULE_SETUP
7871 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);
7872         YY_BREAK
7873 case 324:
7874 /* rule 324 can match eol */
7875 YY_RULE_SETUP
7876 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);
7877         YY_BREAK
7878 case 325:
7879 YY_RULE_SETUP
7880 {
7881   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7882   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7883   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7884   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7885   if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
7886   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7887   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7888   LEAVE; STag_surfxml_cabinet();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cabinet);
7889  }
7890         YY_BREAK
7891 case 326:
7892 YY_RULE_SETUP
7893 {
7894   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7895   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7896   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7897   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7898   if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
7899   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7900   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7901   LEAVE; STag_surfxml_cabinet(); surfxml_pcdata_ix = 0; ETag_surfxml_cabinet(); popbuffer(); /* attribute */
7902   switch (YY_START) {
7903    case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_1: SET(S_surfxml_AS_14); break;
7904    case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_6: case S_surfxml_platform: case S_surfxml_platform_5: SET(S_surfxml_platform_6); break;
7905    case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
7906    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
7907   }
7908  }
7909         YY_BREAK
7910 case 327:
7911 YY_RULE_SETUP
7912 FAIL("Unexpected character `%c' in attribute list of cabinet element.", surf_parse_text[0]);
7913         YY_BREAK
7914 case 328:
7915 YY_RULE_SETUP
7916 FAIL("Bad attribute `%s' in `cabinet' element start tag.",surf_parse_text);
7917         YY_BREAK
7918 case YY_STATE_EOF(AL_surfxml_cabinet):
7919 FAIL("EOF in attribute list of `cabinet' element.");
7920         YY_BREAK
7921
7922 case 329:
7923 /* rule 329 can match eol */
7924 YY_RULE_SETUP
7925 {
7926   LEAVE;
7927   ETag_surfxml_cabinet();
7928   popbuffer(); /* attribute */
7929   switch (YY_START) {
7930    case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_1: SET(S_surfxml_AS_14); break;
7931    case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_6: case S_surfxml_platform: case S_surfxml_platform_5: SET(S_surfxml_platform_6); break;
7932    case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
7933    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
7934   }
7935  }
7936         YY_BREAK
7937 case 330:
7938 /* rule 330 can match eol */
7939 YY_RULE_SETUP
7940 FAIL("Unexpected end-tag `%s': `</cabinet>' expected.",surf_parse_text);
7941         YY_BREAK
7942 case 331:
7943 YY_RULE_SETUP
7944 FAIL("Unexpected character `%c': `</cabinet>' expected.",surf_parse_text[0]);
7945         YY_BREAK
7946 case YY_STATE_EOF(E_surfxml_cabinet):
7947 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cabinet>' expected.");
7948         YY_BREAK
7949
7950 case 332:
7951 /* rule 332 can match eol */
7952 YY_RULE_SETUP
7953 FAIL("Starting tag <peer> is not allowed here.");
7954         YY_BREAK
7955 case 333:
7956 /* rule 333 can match eol */
7957 YY_RULE_SETUP
7958 {
7959   AX_surfxml_peer_id = 0;
7960   surfxml_peer_id_isset = 0;
7961   AX_surfxml_peer_power = 0;
7962   surfxml_peer_power_isset = 0;
7963   AX_surfxml_peer_bw___in = 0;
7964   surfxml_peer_bw___in_isset = 0;
7965   AX_surfxml_peer_bw___out = 0;
7966   surfxml_peer_bw___out_isset = 0;
7967   AX_surfxml_peer_lat = 0;
7968   surfxml_peer_lat_isset = 0;
7969   AX_surfxml_peer_coordinates = 0;
7970   surfxml_peer_coordinates_isset = 0;
7971   AX_surfxml_peer_availability___file = 0;
7972   surfxml_peer_availability___file_isset = 0;
7973   AX_surfxml_peer_state___file = 0;
7974   surfxml_peer_state___file_isset = 0;
7975   ENTER(AL_surfxml_peer); pushbuffer(0);
7976   }
7977         YY_BREAK
7978
7979 case 334:
7980 /* rule 334 can match eol */
7981 YY_RULE_SETUP
7982 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);
7983         YY_BREAK
7984 case 335:
7985 /* rule 335 can match eol */
7986 YY_RULE_SETUP
7987 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);
7988         YY_BREAK
7989 case 336:
7990 /* rule 336 can match eol */
7991 YY_RULE_SETUP
7992 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);
7993         YY_BREAK
7994 case 337:
7995 /* rule 337 can match eol */
7996 YY_RULE_SETUP
7997 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);
7998         YY_BREAK
7999 case 338:
8000 /* rule 338 can match eol */
8001 YY_RULE_SETUP
8002 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);
8003         YY_BREAK
8004 case 339:
8005 /* rule 339 can match eol */
8006 YY_RULE_SETUP
8007 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);
8008         YY_BREAK
8009 case 340:
8010 /* rule 340 can match eol */
8011 YY_RULE_SETUP
8012 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);
8013         YY_BREAK
8014 case 341:
8015 /* rule 341 can match eol */
8016 YY_RULE_SETUP
8017 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);
8018         YY_BREAK
8019 case 342:
8020 /* rule 342 can match eol */
8021 YY_RULE_SETUP
8022 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);
8023         YY_BREAK
8024 case 343:
8025 /* rule 343 can match eol */
8026 YY_RULE_SETUP
8027 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);
8028         YY_BREAK
8029 case 344:
8030 /* rule 344 can match eol */
8031 YY_RULE_SETUP
8032 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);
8033         YY_BREAK
8034 case 345:
8035 /* rule 345 can match eol */
8036 YY_RULE_SETUP
8037 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);
8038         YY_BREAK
8039 case 346:
8040 /* rule 346 can match eol */
8041 YY_RULE_SETUP
8042 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);
8043         YY_BREAK
8044 case 347:
8045 /* rule 347 can match eol */
8046 YY_RULE_SETUP
8047 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);
8048         YY_BREAK
8049 case 348:
8050 /* rule 348 can match eol */
8051 YY_RULE_SETUP
8052 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);
8053         YY_BREAK
8054 case 349:
8055 /* rule 349 can match eol */
8056 YY_RULE_SETUP
8057 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);
8058         YY_BREAK
8059 case 350:
8060 YY_RULE_SETUP
8061 {
8062   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
8063   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
8064   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
8065   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
8066   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
8067   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
8068  }
8069         YY_BREAK
8070 case 351:
8071 YY_RULE_SETUP
8072 {
8073   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
8074   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
8075   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
8076   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
8077   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
8078   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
8079   switch (YY_START) {
8080    case S_surfxml_platform: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
8081    case S_surfxml_include_2: case S_surfxml_include_1: case S_surfxml_include: SET(S_surfxml_include_2); break;
8082    case S_surfxml_AS_5: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8083   }
8084  }
8085         YY_BREAK
8086 case 352:
8087 YY_RULE_SETUP
8088 FAIL("Unexpected character `%c' in attribute list of peer element.", surf_parse_text[0]);
8089         YY_BREAK
8090 case 353:
8091 YY_RULE_SETUP
8092 FAIL("Bad attribute `%s' in `peer' element start tag.",surf_parse_text);
8093         YY_BREAK
8094 case YY_STATE_EOF(AL_surfxml_peer):
8095 FAIL("EOF in attribute list of `peer' element.");
8096         YY_BREAK
8097
8098 case 354:
8099 /* rule 354 can match eol */
8100 YY_RULE_SETUP
8101 {
8102   LEAVE;
8103   ETag_surfxml_peer();
8104   popbuffer(); /* attribute */
8105   switch (YY_START) {
8106    case S_surfxml_platform: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
8107    case S_surfxml_include_2: case S_surfxml_include_1: case S_surfxml_include: SET(S_surfxml_include_2); break;
8108    case S_surfxml_AS_5: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8109   }
8110  }
8111         YY_BREAK
8112 case 355:
8113 /* rule 355 can match eol */
8114 YY_RULE_SETUP
8115 FAIL("Unexpected end-tag `%s': `</peer>' expected.",surf_parse_text);
8116         YY_BREAK
8117 case 356:
8118 YY_RULE_SETUP
8119 FAIL("Unexpected character `%c': `</peer>' expected.",surf_parse_text[0]);
8120         YY_BREAK
8121 case YY_STATE_EOF(E_surfxml_peer):
8122 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</peer>' expected.");
8123         YY_BREAK
8124
8125 case 357:
8126 /* rule 357 can match eol */
8127 YY_RULE_SETUP
8128 FAIL("Starting tag <router> is not allowed here.");
8129         YY_BREAK
8130 case 358:
8131 /* rule 358 can match eol */
8132 YY_RULE_SETUP
8133 {
8134   AX_surfxml_router_id = 0;
8135   surfxml_router_id_isset = 0;
8136   AX_surfxml_router_coordinates = 0;
8137   surfxml_router_coordinates_isset = 0;
8138   ENTER(AL_surfxml_router); pushbuffer(0);
8139   }
8140         YY_BREAK
8141
8142 case 359:
8143 /* rule 359 can match eol */
8144 YY_RULE_SETUP
8145 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);
8146         YY_BREAK
8147 case 360:
8148 /* rule 360 can match eol */
8149 YY_RULE_SETUP
8150 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);
8151         YY_BREAK
8152 case 361:
8153 /* rule 361 can match eol */
8154 YY_RULE_SETUP
8155 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);
8156         YY_BREAK
8157 case 362:
8158 /* rule 362 can match eol */
8159 YY_RULE_SETUP
8160 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);
8161         YY_BREAK
8162 case 363:
8163 YY_RULE_SETUP
8164 {
8165   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
8166   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
8167  }
8168         YY_BREAK
8169 case 364:
8170 YY_RULE_SETUP
8171 {
8172   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
8173   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
8174   switch (YY_START) {
8175    case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_1: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
8176   }
8177  }
8178         YY_BREAK
8179 case 365:
8180 YY_RULE_SETUP
8181 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
8182         YY_BREAK
8183 case 366:
8184 YY_RULE_SETUP
8185 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
8186         YY_BREAK
8187 case YY_STATE_EOF(AL_surfxml_router):
8188 FAIL("EOF in attribute list of `router' element.");
8189         YY_BREAK
8190
8191 case 367:
8192 /* rule 367 can match eol */
8193 YY_RULE_SETUP
8194 {
8195   LEAVE;
8196   ETag_surfxml_router();
8197   popbuffer(); /* attribute */
8198   switch (YY_START) {
8199    case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_1: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
8200   }
8201  }
8202         YY_BREAK
8203 case 368:
8204 /* rule 368 can match eol */
8205 YY_RULE_SETUP
8206 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
8207         YY_BREAK
8208 case 369:
8209 YY_RULE_SETUP
8210 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
8211         YY_BREAK
8212 case YY_STATE_EOF(E_surfxml_router):
8213 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</router>' expected.");
8214         YY_BREAK
8215
8216 case 370:
8217 /* rule 370 can match eol */
8218 YY_RULE_SETUP
8219 FAIL("Starting tag <backbone> is not allowed here.");
8220         YY_BREAK
8221 case 371:
8222 /* rule 371 can match eol */
8223 YY_RULE_SETUP
8224 {
8225   AX_surfxml_backbone_id = 0;
8226   surfxml_backbone_id_isset = 0;
8227   AX_surfxml_backbone_bandwidth = 0;
8228   surfxml_backbone_bandwidth_isset = 0;
8229   AX_surfxml_backbone_latency = 0;
8230   surfxml_backbone_latency_isset = 0;
8231   ENTER(AL_surfxml_backbone); pushbuffer(0);
8232   }
8233         YY_BREAK
8234
8235 case 372:
8236 /* rule 372 can match eol */
8237 YY_RULE_SETUP
8238 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);
8239         YY_BREAK
8240 case 373:
8241 /* rule 373 can match eol */
8242 YY_RULE_SETUP
8243 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);
8244         YY_BREAK
8245 case 374:
8246 /* rule 374 can match eol */
8247 YY_RULE_SETUP
8248 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);
8249         YY_BREAK
8250 case 375:
8251 /* rule 375 can match eol */
8252 YY_RULE_SETUP
8253 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);
8254         YY_BREAK
8255 case 376:
8256 /* rule 376 can match eol */
8257 YY_RULE_SETUP
8258 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);
8259         YY_BREAK
8260 case 377:
8261 /* rule 377 can match eol */
8262 YY_RULE_SETUP
8263 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);
8264         YY_BREAK
8265 case 378:
8266 YY_RULE_SETUP
8267 {
8268   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
8269   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
8270   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
8271   LEAVE; STag_surfxml_backbone();surfxml_pcdata_ix = 0; ENTER(E_surfxml_backbone);
8272  }
8273         YY_BREAK
8274 case 379:
8275 YY_RULE_SETUP
8276 {
8277   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
8278   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
8279   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
8280   LEAVE; STag_surfxml_backbone(); surfxml_pcdata_ix = 0; ETag_surfxml_backbone(); popbuffer(); /* attribute */
8281   switch (YY_START) {
8282    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8283    case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
8284   }
8285  }
8286         YY_BREAK
8287 case 380:
8288 YY_RULE_SETUP
8289 FAIL("Unexpected character `%c' in attribute list of backbone element.", surf_parse_text[0]);
8290         YY_BREAK
8291 case 381:
8292 YY_RULE_SETUP
8293 FAIL("Bad attribute `%s' in `backbone' element start tag.",surf_parse_text);
8294         YY_BREAK
8295 case YY_STATE_EOF(AL_surfxml_backbone):
8296 FAIL("EOF in attribute list of `backbone' element.");
8297         YY_BREAK
8298
8299 case 382:
8300 /* rule 382 can match eol */
8301 YY_RULE_SETUP
8302 {
8303   LEAVE;
8304   ETag_surfxml_backbone();
8305   popbuffer(); /* attribute */
8306   switch (YY_START) {
8307    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8308    case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
8309   }
8310  }
8311         YY_BREAK
8312 case 383:
8313 /* rule 383 can match eol */
8314 YY_RULE_SETUP
8315 FAIL("Unexpected end-tag `%s': `</backbone>' expected.",surf_parse_text);
8316         YY_BREAK
8317 case 384:
8318 YY_RULE_SETUP
8319 FAIL("Unexpected character `%c': `</backbone>' expected.",surf_parse_text[0]);
8320         YY_BREAK
8321 case YY_STATE_EOF(E_surfxml_backbone):
8322 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</backbone>' expected.");
8323         YY_BREAK
8324
8325 case 385:
8326 /* rule 385 can match eol */
8327 YY_RULE_SETUP
8328 FAIL("Starting tag <link> is not allowed here.");
8329         YY_BREAK
8330 case 386:
8331 /* rule 386 can match eol */
8332 YY_RULE_SETUP
8333 {
8334   AX_surfxml_link_id = 0;
8335   surfxml_link_id_isset = 0;
8336   AX_surfxml_link_bandwidth = 0;
8337   surfxml_link_bandwidth_isset = 0;
8338   AX_surfxml_link_bandwidth___file = 0;
8339   surfxml_link_bandwidth___file_isset = 0;
8340   AX_surfxml_link_latency = 46;
8341   surfxml_link_latency_isset = 0;
8342   AX_surfxml_link_latency___file = 0;
8343   surfxml_link_latency___file_isset = 0;
8344   AX_surfxml_link_state = A_surfxml_link_state_ON;
8345   surfxml_link_state_isset = 0;
8346   AX_surfxml_link_state___file = 0;
8347   surfxml_link_state___file_isset = 0;
8348   AX_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
8349   surfxml_link_sharing___policy_isset = 0;
8350   ENTER(AL_surfxml_link); pushbuffer(0);
8351   }
8352         YY_BREAK
8353
8354 case 387:
8355 /* rule 387 can match eol */
8356 YY_RULE_SETUP
8357 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);
8358         YY_BREAK
8359 case 388:
8360 /* rule 388 can match eol */
8361 YY_RULE_SETUP
8362 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);
8363         YY_BREAK
8364 case 389:
8365 /* rule 389 can match eol */
8366 YY_RULE_SETUP
8367 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);
8368         YY_BREAK
8369 case 390:
8370 /* rule 390 can match eol */
8371 YY_RULE_SETUP
8372 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);
8373         YY_BREAK
8374 case 391:
8375 /* rule 391 can match eol */
8376 YY_RULE_SETUP
8377 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);
8378         YY_BREAK
8379 case 392:
8380 /* rule 392 can match eol */
8381 YY_RULE_SETUP
8382 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);
8383         YY_BREAK
8384 case 393:
8385 /* rule 393 can match eol */
8386 YY_RULE_SETUP
8387 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);
8388         YY_BREAK
8389 case 394:
8390 /* rule 394 can match eol */
8391 YY_RULE_SETUP
8392 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);
8393         YY_BREAK
8394 case 395:
8395 /* rule 395 can match eol */
8396 YY_RULE_SETUP
8397 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);
8398         YY_BREAK
8399 case 396:
8400 /* rule 396 can match eol */
8401 YY_RULE_SETUP
8402 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);
8403         YY_BREAK
8404 case 397:
8405 /* rule 397 can match eol */
8406 case 398:
8407 /* rule 398 can match eol */
8408 YY_RULE_SETUP
8409 A_surfxml_link_state = A_surfxml_link_state_ON;
8410         YY_BREAK
8411 case 399:
8412 /* rule 399 can match eol */
8413 case 400:
8414 /* rule 400 can match eol */
8415 YY_RULE_SETUP
8416 A_surfxml_link_state = A_surfxml_link_state_OFF;
8417         YY_BREAK
8418 case 401:
8419 /* rule 401 can match eol */
8420 YY_RULE_SETUP
8421 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);
8422         YY_BREAK
8423 case 402:
8424 /* rule 402 can match eol */
8425 YY_RULE_SETUP
8426 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);
8427         YY_BREAK
8428 case 403:
8429 /* rule 403 can match eol */
8430 case 404:
8431 /* rule 404 can match eol */
8432 YY_RULE_SETUP
8433 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
8434         YY_BREAK
8435 case 405:
8436 /* rule 405 can match eol */
8437 case 406:
8438 /* rule 406 can match eol */
8439 YY_RULE_SETUP
8440 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FATPIPE;
8441         YY_BREAK
8442 case 407:
8443 /* rule 407 can match eol */
8444 case 408:
8445 /* rule 408 can match eol */
8446 YY_RULE_SETUP
8447 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FULLDUPLEX;
8448         YY_BREAK
8449 case 409:
8450 YY_RULE_SETUP
8451 {
8452   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
8453   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
8454   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
8455  }
8456         YY_BREAK
8457 case 410:
8458 YY_RULE_SETUP
8459 {
8460   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
8461   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
8462   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
8463   switch (YY_START) {
8464    case S_surfxml_AS_3: case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
8465    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8466   }
8467  }
8468         YY_BREAK
8469 case 411:
8470 YY_RULE_SETUP
8471 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
8472         YY_BREAK
8473 case 412:
8474 YY_RULE_SETUP
8475 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
8476         YY_BREAK
8477 case YY_STATE_EOF(AL_surfxml_link):
8478 FAIL("EOF in attribute list of `link' element.");
8479         YY_BREAK
8480
8481 case 413:
8482 /* rule 413 can match eol */
8483 YY_RULE_SETUP
8484 {
8485   LEAVE;
8486   ETag_surfxml_link();
8487   popbuffer(); /* attribute */
8488   switch (YY_START) {
8489    case S_surfxml_AS_3: case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
8490    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8491   }
8492  }
8493         YY_BREAK
8494 case 414:
8495 /* rule 414 can match eol */
8496 YY_RULE_SETUP
8497 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
8498         YY_BREAK
8499 case 415:
8500 YY_RULE_SETUP
8501 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
8502         YY_BREAK
8503 case YY_STATE_EOF(S_surfxml_link_2):
8504 case YY_STATE_EOF(S_surfxml_link):
8505 case YY_STATE_EOF(E_surfxml_link):
8506 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link>' expected.");
8507         YY_BREAK
8508
8509 case 416:
8510 /* rule 416 can match eol */
8511 YY_RULE_SETUP
8512 FAIL("Starting tag <route> is not allowed here.");
8513         YY_BREAK
8514 case 417:
8515 /* rule 417 can match eol */
8516 YY_RULE_SETUP
8517 {
8518   AX_surfxml_route_src = 0;
8519   surfxml_route_src_isset = 0;
8520   AX_surfxml_route_dst = 0;
8521   surfxml_route_dst_isset = 0;
8522   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
8523   surfxml_route_symmetrical_isset = 0;
8524   ENTER(AL_surfxml_route); pushbuffer(0);
8525   }
8526         YY_BREAK
8527
8528 case 418:
8529 /* rule 418 can match eol */
8530 YY_RULE_SETUP
8531 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);
8532         YY_BREAK
8533 case 419:
8534 /* rule 419 can match eol */
8535 YY_RULE_SETUP
8536 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);
8537         YY_BREAK
8538 case 420:
8539 /* rule 420 can match eol */
8540 YY_RULE_SETUP
8541 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);
8542         YY_BREAK
8543 case 421:
8544 /* rule 421 can match eol */
8545 YY_RULE_SETUP
8546 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);
8547         YY_BREAK
8548 case 422:
8549 /* rule 422 can match eol */
8550 case 423:
8551 /* rule 423 can match eol */
8552 YY_RULE_SETUP
8553 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
8554         YY_BREAK
8555 case 424:
8556 /* rule 424 can match eol */
8557 case 425:
8558 /* rule 425 can match eol */
8559 YY_RULE_SETUP
8560 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
8561         YY_BREAK
8562 case 426:
8563 YY_RULE_SETUP
8564 {
8565   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8566   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8567   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
8568  }
8569         YY_BREAK
8570 case 427:
8571 YY_RULE_SETUP
8572 {
8573   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8574   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8575   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
8576   switch (YY_START) {
8577    case S_surfxml_AS_16: case S_surfxml_AS_3: case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_12: case S_surfxml_AS_14: case S_surfxml_AS_15: SET(S_surfxml_AS_16); break;
8578   }
8579  }
8580         YY_BREAK
8581 case 428:
8582 YY_RULE_SETUP
8583 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
8584         YY_BREAK
8585 case 429:
8586 YY_RULE_SETUP
8587 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
8588         YY_BREAK
8589 case YY_STATE_EOF(AL_surfxml_route):
8590 FAIL("EOF in attribute list of `route' element.");
8591         YY_BREAK
8592
8593 case 430:
8594 /* rule 430 can match eol */
8595 YY_RULE_SETUP
8596 {
8597   LEAVE;
8598   ETag_surfxml_route();
8599   popbuffer(); /* attribute */
8600   switch (YY_START) {
8601    case S_surfxml_AS_16: case S_surfxml_AS_3: case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_12: case S_surfxml_AS_14: case S_surfxml_AS_15: SET(S_surfxml_AS_16); break;
8602   }
8603  }
8604         YY_BREAK
8605 case 431:
8606 /* rule 431 can match eol */
8607 YY_RULE_SETUP
8608 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
8609         YY_BREAK
8610 case 432:
8611 YY_RULE_SETUP
8612 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
8613         YY_BREAK
8614 case YY_STATE_EOF(S_surfxml_route):
8615 case YY_STATE_EOF(E_surfxml_route):
8616 case YY_STATE_EOF(S_surfxml_route_2):
8617 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</route>' expected.");
8618         YY_BREAK
8619
8620 case 433:
8621 /* rule 433 can match eol */
8622 YY_RULE_SETUP
8623 FAIL("Starting tag <ASroute> is not allowed here.");
8624         YY_BREAK
8625 case 434:
8626 /* rule 434 can match eol */
8627 YY_RULE_SETUP
8628 {
8629   AX_surfxml_ASroute_src = 0;
8630   surfxml_ASroute_src_isset = 0;
8631   AX_surfxml_ASroute_dst = 0;
8632   surfxml_ASroute_dst_isset = 0;
8633   AX_surfxml_ASroute_gw___src = 0;
8634   surfxml_ASroute_gw___src_isset = 0;
8635   AX_surfxml_ASroute_gw___dst = 0;
8636   surfxml_ASroute_gw___dst_isset = 0;
8637   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
8638   surfxml_ASroute_symmetrical_isset = 0;
8639   ENTER(AL_surfxml_ASroute); pushbuffer(0);
8640   }
8641         YY_BREAK
8642
8643 case 435:
8644 /* rule 435 can match eol */
8645 YY_RULE_SETUP
8646 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);
8647         YY_BREAK
8648 case 436:
8649 /* rule 436 can match eol */
8650 YY_RULE_SETUP
8651 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);
8652         YY_BREAK
8653 case 437:
8654 /* rule 437 can match eol */
8655 YY_RULE_SETUP
8656 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);
8657         YY_BREAK
8658 case 438:
8659 /* rule 438 can match eol */
8660 YY_RULE_SETUP
8661 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);
8662         YY_BREAK
8663 case 439:
8664 /* rule 439 can match eol */
8665 YY_RULE_SETUP
8666 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);
8667         YY_BREAK
8668 case 440:
8669 /* rule 440 can match eol */
8670 YY_RULE_SETUP
8671 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);
8672         YY_BREAK
8673 case 441:
8674 /* rule 441 can match eol */
8675 YY_RULE_SETUP
8676 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);
8677         YY_BREAK
8678 case 442:
8679 /* rule 442 can match eol */
8680 YY_RULE_SETUP
8681 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);
8682         YY_BREAK
8683 case 443:
8684 /* rule 443 can match eol */
8685 case 444:
8686 /* rule 444 can match eol */
8687 YY_RULE_SETUP
8688 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
8689         YY_BREAK
8690 case 445:
8691 /* rule 445 can match eol */
8692 case 446:
8693 /* rule 446 can match eol */
8694 YY_RULE_SETUP
8695 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
8696         YY_BREAK
8697 case 447:
8698 YY_RULE_SETUP
8699 {
8700   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
8701   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
8702   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
8703   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
8704   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
8705  }
8706         YY_BREAK
8707 case 448:
8708 YY_RULE_SETUP
8709 {
8710   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
8711   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
8712   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
8713   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
8714   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
8715   switch (YY_START) {
8716    case S_surfxml_AS_8: case S_surfxml_AS_6: case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS_4: SET(S_surfxml_AS_9); break;
8717   }
8718  }
8719         YY_BREAK
8720 case 449:
8721 YY_RULE_SETUP
8722 FAIL("Unexpected character `%c' in attribute list of ASroute element.", surf_parse_text[0]);
8723         YY_BREAK
8724 case 450:
8725 YY_RULE_SETUP
8726 FAIL("Bad attribute `%s' in `ASroute' element start tag.",surf_parse_text);
8727         YY_BREAK
8728 case YY_STATE_EOF(AL_surfxml_ASroute):
8729 FAIL("EOF in attribute list of `ASroute' element.");
8730         YY_BREAK
8731
8732 case 451:
8733 /* rule 451 can match eol */
8734 YY_RULE_SETUP
8735 {
8736   LEAVE;
8737   ETag_surfxml_ASroute();
8738   popbuffer(); /* attribute */
8739   switch (YY_START) {
8740    case S_surfxml_AS_8: case S_surfxml_AS_6: case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS_4: SET(S_surfxml_AS_9); break;
8741   }
8742  }
8743         YY_BREAK
8744 case 452:
8745 /* rule 452 can match eol */
8746 YY_RULE_SETUP
8747 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",surf_parse_text);
8748         YY_BREAK
8749 case 453:
8750 YY_RULE_SETUP
8751 FAIL("Unexpected character `%c': `</ASroute>' expected.",surf_parse_text[0]);
8752         YY_BREAK
8753 case YY_STATE_EOF(S_surfxml_ASroute):
8754 case YY_STATE_EOF(S_surfxml_ASroute_2):
8755 case YY_STATE_EOF(E_surfxml_ASroute):
8756 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</ASroute>' expected.");
8757         YY_BREAK
8758
8759 case 454:
8760 /* rule 454 can match eol */
8761 YY_RULE_SETUP
8762 FAIL("Starting tag <link_ctn> is not allowed here.");
8763         YY_BREAK
8764 case 455:
8765 /* rule 455 can match eol */
8766 YY_RULE_SETUP
8767 {
8768   AX_surfxml_link___ctn_id = 0;
8769   surfxml_link___ctn_id_isset = 0;
8770   AX_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
8771   surfxml_link___ctn_direction_isset = 0;
8772   ENTER(AL_surfxml_link___ctn); pushbuffer(0);
8773   }
8774         YY_BREAK
8775
8776 case 456:
8777 /* rule 456 can match eol */
8778 YY_RULE_SETUP
8779 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);
8780         YY_BREAK
8781 case 457:
8782 /* rule 457 can match eol */
8783 YY_RULE_SETUP
8784 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);
8785         YY_BREAK
8786 case 458:
8787 /* rule 458 can match eol */
8788 case 459:
8789 /* rule 459 can match eol */
8790 YY_RULE_SETUP
8791 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_UP;
8792         YY_BREAK
8793 case 460:
8794 /* rule 460 can match eol */
8795 case 461:
8796 /* rule 461 can match eol */
8797 YY_RULE_SETUP
8798 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_DOWN;
8799         YY_BREAK
8800 case 462:
8801 /* rule 462 can match eol */
8802 case 463:
8803 /* rule 463 can match eol */
8804 YY_RULE_SETUP
8805 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
8806         YY_BREAK
8807 case 464:
8808 YY_RULE_SETUP
8809 {
8810   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8811   LEAVE; STag_surfxml_link___ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link___ctn);
8812  }
8813         YY_BREAK
8814 case 465:
8815 YY_RULE_SETUP
8816 {
8817   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8818   LEAVE; STag_surfxml_link___ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link___ctn(); popbuffer(); /* attribute */
8819   switch (YY_START) {
8820    case S_surfxml_route_1: case S_surfxml_route_2: case S_surfxml_route: SET(S_surfxml_route_2); break;
8821    case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
8822    case S_surfxml_bypassASroute: case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: SET(S_surfxml_bypassASroute_2); break;
8823    case S_surfxml_ASroute_2: case S_surfxml_ASroute: case S_surfxml_ASroute_1: SET(S_surfxml_ASroute_2); break;
8824   }
8825  }
8826         YY_BREAK
8827 case 466:
8828 YY_RULE_SETUP
8829 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", surf_parse_text[0]);
8830         YY_BREAK
8831 case 467:
8832 YY_RULE_SETUP
8833 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",surf_parse_text);
8834         YY_BREAK
8835 case YY_STATE_EOF(AL_surfxml_link___ctn):
8836 FAIL("EOF in attribute list of `link_ctn' element.");
8837         YY_BREAK
8838
8839 case 468:
8840 /* rule 468 can match eol */
8841 YY_RULE_SETUP
8842 {
8843   LEAVE;
8844   ETag_surfxml_link___ctn();
8845   popbuffer(); /* attribute */
8846   switch (YY_START) {
8847    case S_surfxml_route_1: case S_surfxml_route_2: case S_surfxml_route: SET(S_surfxml_route_2); break;
8848    case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
8849    case S_surfxml_bypassASroute: case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: SET(S_surfxml_bypassASroute_2); break;
8850    case S_surfxml_ASroute_2: case S_surfxml_ASroute: case S_surfxml_ASroute_1: SET(S_surfxml_ASroute_2); break;
8851   }
8852  }
8853         YY_BREAK
8854 case 469:
8855 /* rule 469 can match eol */
8856 YY_RULE_SETUP
8857 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",surf_parse_text);
8858         YY_BREAK
8859 case 470:
8860 YY_RULE_SETUP
8861 FAIL("Unexpected character `%c': `</link_ctn>' expected.",surf_parse_text[0]);
8862         YY_BREAK
8863 case YY_STATE_EOF(E_surfxml_link___ctn):
8864 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link_ctn>' expected.");
8865         YY_BREAK
8866
8867 case 471:
8868 /* rule 471 can match eol */
8869 YY_RULE_SETUP
8870 FAIL("Starting tag <bypassRoute> is not allowed here.");
8871         YY_BREAK
8872 case 472:
8873 /* rule 472 can match eol */
8874 YY_RULE_SETUP
8875 {
8876   AX_surfxml_bypassRoute_src = 0;
8877   surfxml_bypassRoute_src_isset = 0;
8878   AX_surfxml_bypassRoute_dst = 0;
8879   surfxml_bypassRoute_dst_isset = 0;
8880   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
8881   }
8882         YY_BREAK
8883
8884 case 473:
8885 /* rule 473 can match eol */
8886 YY_RULE_SETUP
8887 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);
8888         YY_BREAK
8889 case 474:
8890 /* rule 474 can match eol */
8891 YY_RULE_SETUP
8892 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);
8893         YY_BREAK
8894 case 475:
8895 /* rule 475 can match eol */
8896 YY_RULE_SETUP
8897 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);
8898         YY_BREAK
8899 case 476:
8900 /* rule 476 can match eol */
8901 YY_RULE_SETUP
8902 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);
8903         YY_BREAK
8904 case 477:
8905 YY_RULE_SETUP
8906 {
8907   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
8908   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
8909   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
8910  }
8911         YY_BREAK
8912 case 478:
8913 YY_RULE_SETUP
8914 {
8915   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
8916   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
8917   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
8918   switch (YY_START) {
8919    case S_surfxml_AS_15: case S_surfxml_AS_12: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_16: case S_surfxml_AS_3: case S_surfxml_AS: SET(S_surfxml_AS_16); break;
8920   }
8921  }
8922         YY_BREAK
8923 case 479:
8924 YY_RULE_SETUP
8925 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", surf_parse_text[0]);
8926         YY_BREAK
8927 case 480:
8928 YY_RULE_SETUP
8929 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",surf_parse_text);
8930         YY_BREAK
8931 case YY_STATE_EOF(AL_surfxml_bypassRoute):
8932 FAIL("EOF in attribute list of `bypassRoute' element.");
8933         YY_BREAK
8934
8935 case 481:
8936 /* rule 481 can match eol */
8937 YY_RULE_SETUP
8938 {
8939   LEAVE;
8940   ETag_surfxml_bypassRoute();
8941   popbuffer(); /* attribute */
8942   switch (YY_START) {
8943    case S_surfxml_AS_15: case S_surfxml_AS_12: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_16: case S_surfxml_AS_3: case S_surfxml_AS: SET(S_surfxml_AS_16); break;
8944   }
8945  }
8946         YY_BREAK
8947 case 482:
8948 /* rule 482 can match eol */
8949 YY_RULE_SETUP
8950 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",surf_parse_text);
8951         YY_BREAK
8952 case 483:
8953 YY_RULE_SETUP
8954 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",surf_parse_text[0]);
8955         YY_BREAK
8956 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
8957 case YY_STATE_EOF(E_surfxml_bypassRoute):
8958 case YY_STATE_EOF(S_surfxml_bypassRoute):
8959 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassRoute>' expected.");
8960         YY_BREAK
8961
8962 case 484:
8963 /* rule 484 can match eol */
8964 YY_RULE_SETUP
8965 FAIL("Starting tag <bypassASroute> is not allowed here.");
8966         YY_BREAK
8967 case 485:
8968 /* rule 485 can match eol */
8969 YY_RULE_SETUP
8970 {
8971   AX_surfxml_bypassASroute_src = 0;
8972   surfxml_bypassASroute_src_isset = 0;
8973   AX_surfxml_bypassASroute_dst = 0;
8974   surfxml_bypassASroute_dst_isset = 0;
8975   AX_surfxml_bypassASroute_gw___src = 0;
8976   surfxml_bypassASroute_gw___src_isset = 0;
8977   AX_surfxml_bypassASroute_gw___dst = 0;
8978   surfxml_bypassASroute_gw___dst_isset = 0;
8979   ENTER(AL_surfxml_bypassASroute); pushbuffer(0);
8980   }
8981         YY_BREAK
8982
8983 case 486:
8984 /* rule 486 can match eol */
8985 YY_RULE_SETUP
8986 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);
8987         YY_BREAK
8988 case 487:
8989 /* rule 487 can match eol */
8990 YY_RULE_SETUP
8991 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);
8992         YY_BREAK
8993 case 488:
8994 /* rule 488 can match eol */
8995 YY_RULE_SETUP
8996 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);
8997         YY_BREAK
8998 case 489:
8999 /* rule 489 can match eol */
9000 YY_RULE_SETUP
9001 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);
9002         YY_BREAK
9003 case 490:
9004 /* rule 490 can match eol */
9005 YY_RULE_SETUP
9006 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);
9007         YY_BREAK
9008 case 491:
9009 /* rule 491 can match eol */
9010 YY_RULE_SETUP
9011 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);
9012         YY_BREAK
9013 case 492:
9014 /* rule 492 can match eol */
9015 YY_RULE_SETUP
9016 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);
9017         YY_BREAK
9018 case 493:
9019 /* rule 493 can match eol */
9020 YY_RULE_SETUP
9021 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);
9022         YY_BREAK
9023 case 494:
9024 YY_RULE_SETUP
9025 {
9026   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
9027   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
9028   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
9029   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
9030   LEAVE; STag_surfxml_bypassASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassASroute);
9031  }
9032         YY_BREAK
9033 case 495:
9034 YY_RULE_SETUP
9035 {
9036   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
9037   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
9038   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
9039   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
9040   LEAVE; STag_surfxml_bypassASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */
9041   switch (YY_START) {
9042    case S_surfxml_AS_4: case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_1: case S_surfxml_AS_9: case S_surfxml_AS_6: case S_surfxml_AS_8: SET(S_surfxml_AS_9); break;
9043   }
9044  }
9045         YY_BREAK
9046 case 496:
9047 YY_RULE_SETUP
9048 FAIL("Unexpected character `%c' in attribute list of bypassASroute element.", surf_parse_text[0]);
9049         YY_BREAK
9050 case 497:
9051 YY_RULE_SETUP
9052 FAIL("Bad attribute `%s' in `bypassASroute' element start tag.",surf_parse_text);
9053         YY_BREAK
9054 case YY_STATE_EOF(AL_surfxml_bypassASroute):
9055 FAIL("EOF in attribute list of `bypassASroute' element.");
9056         YY_BREAK
9057
9058 case 498:
9059 /* rule 498 can match eol */
9060 YY_RULE_SETUP
9061 {
9062   LEAVE;
9063   ETag_surfxml_bypassASroute();
9064   popbuffer(); /* attribute */
9065   switch (YY_START) {
9066    case S_surfxml_AS_4: case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_1: case S_surfxml_AS_9: case S_surfxml_AS_6: case S_surfxml_AS_8: SET(S_surfxml_AS_9); break;
9067   }
9068  }
9069         YY_BREAK
9070 case 499:
9071 /* rule 499 can match eol */
9072 YY_RULE_SETUP
9073 FAIL("Unexpected end-tag `%s': `</bypassASroute>' expected.",surf_parse_text);
9074         YY_BREAK
9075 case 500:
9076 YY_RULE_SETUP
9077 FAIL("Unexpected character `%c': `</bypassASroute>' expected.",surf_parse_text[0]);
9078         YY_BREAK
9079 case YY_STATE_EOF(S_surfxml_bypassASroute_2):
9080 case YY_STATE_EOF(S_surfxml_bypassASroute):
9081 case YY_STATE_EOF(E_surfxml_bypassASroute):
9082 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassASroute>' expected.");
9083         YY_BREAK
9084
9085 case 501:
9086 /* rule 501 can match eol */
9087 YY_RULE_SETUP
9088 FAIL("Starting tag <process> is not allowed here.");
9089         YY_BREAK
9090 case 502:
9091 /* rule 502 can match eol */
9092 YY_RULE_SETUP
9093 {
9094   AX_surfxml_process_host = 0;
9095   surfxml_process_host_isset = 0;
9096   AX_surfxml_process_function = 0;
9097   surfxml_process_function_isset = 0;
9098   AX_surfxml_process_start___time = 50;
9099   surfxml_process_start___time_isset = 0;
9100   AX_surfxml_process_kill___time = 55;
9101   surfxml_process_kill___time_isset = 0;
9102   AX_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
9103   surfxml_process_on___failure_isset = 0;
9104   ENTER(AL_surfxml_process); pushbuffer(0);
9105   }
9106         YY_BREAK
9107
9108 case 503:
9109 /* rule 503 can match eol */
9110 YY_RULE_SETUP
9111 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);
9112         YY_BREAK
9113 case 504:
9114 /* rule 504 can match eol */
9115 YY_RULE_SETUP
9116 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);
9117         YY_BREAK
9118 case 505:
9119 /* rule 505 can match eol */
9120 YY_RULE_SETUP
9121 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);
9122         YY_BREAK
9123 case 506:
9124 /* rule 506 can match eol */
9125 YY_RULE_SETUP
9126 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);
9127         YY_BREAK
9128 case 507:
9129 /* rule 507 can match eol */
9130 YY_RULE_SETUP
9131 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);
9132         YY_BREAK
9133 case 508:
9134 /* rule 508 can match eol */
9135 YY_RULE_SETUP
9136 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);
9137         YY_BREAK
9138 case 509:
9139 /* rule 509 can match eol */
9140 YY_RULE_SETUP
9141 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);
9142         YY_BREAK
9143 case 510:
9144 /* rule 510 can match eol */
9145 YY_RULE_SETUP
9146 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);
9147         YY_BREAK
9148 case 511:
9149 /* rule 511 can match eol */
9150 case 512:
9151 /* rule 512 can match eol */
9152 YY_RULE_SETUP
9153 A_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
9154         YY_BREAK
9155 case 513:
9156 /* rule 513 can match eol */
9157 case 514:
9158 /* rule 514 can match eol */
9159 YY_RULE_SETUP
9160 A_surfxml_process_on___failure = A_surfxml_process_on___failure_RESTART;
9161         YY_BREAK
9162 case 515:
9163 YY_RULE_SETUP
9164 {
9165   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
9166   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
9167   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
9168  }
9169         YY_BREAK
9170 case 516:
9171 YY_RULE_SETUP
9172 {
9173   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
9174   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
9175   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
9176   switch (YY_START) {
9177    case S_surfxml_platform_7: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_6: case S_surfxml_platform: case S_surfxml_platform_8: case S_surfxml_platform_4: SET(S_surfxml_platform_8); break;
9178   }
9179  }
9180         YY_BREAK
9181 case 517:
9182 YY_RULE_SETUP
9183 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
9184         YY_BREAK
9185 case 518:
9186 YY_RULE_SETUP
9187 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
9188         YY_BREAK
9189 case YY_STATE_EOF(AL_surfxml_process):
9190 FAIL("EOF in attribute list of `process' element.");
9191         YY_BREAK
9192
9193 case 519:
9194 /* rule 519 can match eol */
9195 YY_RULE_SETUP
9196 {
9197   LEAVE;
9198   ETag_surfxml_process();
9199   popbuffer(); /* attribute */
9200   switch (YY_START) {
9201    case S_surfxml_platform_7: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_6: case S_surfxml_platform: case S_surfxml_platform_8: case S_surfxml_platform_4: SET(S_surfxml_platform_8); break;
9202   }
9203  }
9204         YY_BREAK
9205 case 520:
9206 /* rule 520 can match eol */
9207 YY_RULE_SETUP
9208 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
9209         YY_BREAK
9210 case 521:
9211 YY_RULE_SETUP
9212 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
9213         YY_BREAK
9214 case YY_STATE_EOF(S_surfxml_process_2):
9215 case YY_STATE_EOF(E_surfxml_process):
9216 case YY_STATE_EOF(S_surfxml_process):
9217 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</process>' expected.");
9218         YY_BREAK
9219
9220 case 522:
9221 /* rule 522 can match eol */
9222 YY_RULE_SETUP
9223 FAIL("Starting tag <argument> is not allowed here.");
9224         YY_BREAK
9225 case 523:
9226 /* rule 523 can match eol */
9227 YY_RULE_SETUP
9228 {
9229   AX_surfxml_argument_value = 0;
9230   surfxml_argument_value_isset = 0;
9231   ENTER(AL_surfxml_argument); pushbuffer(0);
9232   }
9233         YY_BREAK
9234
9235 case 524:
9236 /* rule 524 can match eol */
9237 YY_RULE_SETUP
9238 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);
9239         YY_BREAK
9240 case 525:
9241 /* rule 525 can match eol */
9242 YY_RULE_SETUP
9243 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);
9244         YY_BREAK
9245 case 526:
9246 YY_RULE_SETUP
9247 {
9248   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
9249   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
9250  }
9251         YY_BREAK
9252 case 527:
9253 YY_RULE_SETUP
9254 {
9255   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
9256   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
9257   switch (YY_START) {
9258    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9259   }
9260  }
9261         YY_BREAK
9262 case 528:
9263 YY_RULE_SETUP
9264 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
9265         YY_BREAK
9266 case 529:
9267 YY_RULE_SETUP
9268 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
9269         YY_BREAK
9270 case YY_STATE_EOF(AL_surfxml_argument):
9271 FAIL("EOF in attribute list of `argument' element.");
9272         YY_BREAK
9273
9274 case 530:
9275 /* rule 530 can match eol */
9276 YY_RULE_SETUP
9277 {
9278   LEAVE;
9279   ETag_surfxml_argument();
9280   popbuffer(); /* attribute */
9281   switch (YY_START) {
9282    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9283   }
9284  }
9285         YY_BREAK
9286 case 531:
9287 /* rule 531 can match eol */
9288 YY_RULE_SETUP
9289 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
9290         YY_BREAK
9291 case 532:
9292 YY_RULE_SETUP
9293 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
9294         YY_BREAK
9295 case YY_STATE_EOF(E_surfxml_argument):
9296 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</argument>' expected.");
9297         YY_BREAK
9298
9299 case 533:
9300 /* rule 533 can match eol */
9301 YY_RULE_SETUP
9302 FAIL("Starting tag <config> is not allowed here.");
9303         YY_BREAK
9304 case 534:
9305 /* rule 534 can match eol */
9306 YY_RULE_SETUP
9307 {
9308   AX_surfxml_config_id = 0;
9309   surfxml_config_id_isset = 0;
9310   ENTER(AL_surfxml_config); pushbuffer(0);
9311   }
9312         YY_BREAK
9313
9314 case 535:
9315 /* rule 535 can match eol */
9316 YY_RULE_SETUP
9317 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);
9318         YY_BREAK
9319 case 536:
9320 /* rule 536 can match eol */
9321 YY_RULE_SETUP
9322 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);
9323         YY_BREAK
9324 case 537:
9325 YY_RULE_SETUP
9326 {
9327   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
9328  }
9329         YY_BREAK
9330 case 538:
9331 YY_RULE_SETUP
9332 {
9333   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
9334   switch (YY_START) {
9335    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
9336   }
9337  }
9338         YY_BREAK
9339 case 539:
9340 YY_RULE_SETUP
9341 FAIL("Unexpected character `%c' in attribute list of config element.", surf_parse_text[0]);
9342         YY_BREAK
9343 case 540:
9344 YY_RULE_SETUP
9345 FAIL("Bad attribute `%s' in `config' element start tag.",surf_parse_text);
9346         YY_BREAK
9347 case YY_STATE_EOF(AL_surfxml_config):
9348 FAIL("EOF in attribute list of `config' element.");
9349         YY_BREAK
9350
9351 case 541:
9352 /* rule 541 can match eol */
9353 YY_RULE_SETUP
9354 {
9355   LEAVE;
9356   ETag_surfxml_config();
9357   popbuffer(); /* attribute */
9358   switch (YY_START) {
9359    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
9360   }
9361  }
9362         YY_BREAK
9363 case 542:
9364 /* rule 542 can match eol */
9365 YY_RULE_SETUP
9366 FAIL("Unexpected end-tag `%s': `</config>' expected.",surf_parse_text);
9367         YY_BREAK
9368 case 543:
9369 YY_RULE_SETUP
9370 FAIL("Unexpected character `%c': `</config>' expected.",surf_parse_text[0]);
9371         YY_BREAK
9372 case YY_STATE_EOF(S_surfxml_config):
9373 case YY_STATE_EOF(E_surfxml_config):
9374 case YY_STATE_EOF(S_surfxml_config_2):
9375 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</config>' expected.");
9376         YY_BREAK
9377
9378 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
9379   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
9380 case 544:
9381 /* rule 544 can match eol */
9382 YY_RULE_SETUP
9383 FAIL("Starting tag <prop> is not allowed here.");
9384         YY_BREAK
9385 case 545:
9386 /* rule 545 can match eol */
9387 YY_RULE_SETUP
9388 {
9389   AX_surfxml_prop_id = 0;
9390   surfxml_prop_id_isset = 0;
9391   AX_surfxml_prop_value = 0;
9392   surfxml_prop_value_isset = 0;
9393   ENTER(AL_surfxml_prop); pushbuffer(0);
9394   }
9395         YY_BREAK
9396
9397 case 546:
9398 /* rule 546 can match eol */
9399 YY_RULE_SETUP
9400 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);
9401         YY_BREAK
9402 case 547:
9403 /* rule 547 can match eol */
9404 YY_RULE_SETUP
9405 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);
9406         YY_BREAK
9407 case 548:
9408 /* rule 548 can match eol */
9409 YY_RULE_SETUP
9410 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);
9411         YY_BREAK
9412 case 549:
9413 /* rule 549 can match eol */
9414 YY_RULE_SETUP
9415 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);
9416         YY_BREAK
9417 case 550:
9418 YY_RULE_SETUP
9419 {
9420   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
9421   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
9422   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
9423  }
9424         YY_BREAK
9425 case 551:
9426 YY_RULE_SETUP
9427 {
9428   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
9429   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
9430   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
9431   switch (YY_START) {
9432    case S_surfxml_host: case S_surfxml_host_2: case S_surfxml_host_1: SET(S_surfxml_host_2); break;
9433    case S_surfxml_storage_1: case S_surfxml_storage: case S_surfxml_storage_2: SET(S_surfxml_storage_2); break;
9434    case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: case S_surfxml_storage___type: SET(S_surfxml_storage___type_2); break;
9435    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9436    case S_surfxml_config_1: case S_surfxml_config_2: case S_surfxml_config: SET(S_surfxml_config_2); break;
9437    case S_surfxml_link: case S_surfxml_link_1: case S_surfxml_link_2: SET(S_surfxml_link_2); break;
9438    case S_surfxml_cluster_2: case S_surfxml_cluster_1: case S_surfxml_cluster: SET(S_surfxml_cluster_2); break;
9439    case S_surfxml_AS_2: case S_surfxml_AS_3: case S_surfxml_AS: SET(S_surfxml_AS_3); break;
9440   }
9441  }
9442         YY_BREAK
9443 case 552:
9444 YY_RULE_SETUP
9445 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
9446         YY_BREAK
9447 case 553:
9448 YY_RULE_SETUP
9449 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
9450         YY_BREAK
9451 case YY_STATE_EOF(AL_surfxml_prop):
9452 FAIL("EOF in attribute list of `prop' element.");
9453         YY_BREAK
9454
9455 case 554:
9456 /* rule 554 can match eol */
9457 YY_RULE_SETUP
9458 {
9459   LEAVE;
9460   ETag_surfxml_prop();
9461   popbuffer(); /* attribute */
9462   switch (YY_START) {
9463    case S_surfxml_host: case S_surfxml_host_2: case S_surfxml_host_1: SET(S_surfxml_host_2); break;
9464    case S_surfxml_storage_1: case S_surfxml_storage: case S_surfxml_storage_2: SET(S_surfxml_storage_2); break;
9465    case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: case S_surfxml_storage___type: SET(S_surfxml_storage___type_2); break;
9466    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9467    case S_surfxml_config_1: case S_surfxml_config_2: case S_surfxml_config: SET(S_surfxml_config_2); break;
9468    case S_surfxml_link: case S_surfxml_link_1: case S_surfxml_link_2: SET(S_surfxml_link_2); break;
9469    case S_surfxml_cluster_2: case S_surfxml_cluster_1: case S_surfxml_cluster: SET(S_surfxml_cluster_2); break;
9470    case S_surfxml_AS_2: case S_surfxml_AS_3: case S_surfxml_AS: SET(S_surfxml_AS_3); break;
9471   }
9472  }
9473         YY_BREAK
9474 case 555:
9475 /* rule 555 can match eol */
9476 YY_RULE_SETUP
9477 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
9478         YY_BREAK
9479 case 556:
9480 YY_RULE_SETUP
9481 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
9482         YY_BREAK
9483 case YY_STATE_EOF(E_surfxml_prop):
9484 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</prop>' expected.");
9485         YY_BREAK
9486
9487 /* <!-- <!ATTLIST model_prop key CDATA #REQUIRED> -->
9488   * <!-- <!ATTLIST model_prop key CDATA #REQUIRED> -->  */
9489 case 557:
9490 /* rule 557 can match eol */
9491 YY_RULE_SETUP
9492 FAIL("Starting tag <model_prop> is not allowed here.");
9493         YY_BREAK
9494 case 558:
9495 /* rule 558 can match eol */
9496 YY_RULE_SETUP
9497 {
9498   AX_surfxml_model___prop_id = 0;
9499   surfxml_model___prop_id_isset = 0;
9500   AX_surfxml_model___prop_value = 0;
9501   surfxml_model___prop_value_isset = 0;
9502   ENTER(AL_surfxml_model___prop); pushbuffer(0);
9503   }
9504         YY_BREAK
9505
9506 case 559:
9507 /* rule 559 can match eol */
9508 YY_RULE_SETUP
9509 if (surfxml_model___prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_model___prop>");} surfxml_model___prop_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_model___prop_id);
9510         YY_BREAK
9511 case 560:
9512 /* rule 560 can match eol */
9513 YY_RULE_SETUP
9514 if (surfxml_model___prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_model___prop>");}  surfxml_model___prop_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_model___prop_id);
9515         YY_BREAK
9516 case 561:
9517 /* rule 561 can match eol */
9518 YY_RULE_SETUP
9519 if (surfxml_model___prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_model___prop>");} surfxml_model___prop_value_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_model___prop_value);
9520         YY_BREAK
9521 case 562:
9522 /* rule 562 can match eol */
9523 YY_RULE_SETUP
9524 if (surfxml_model___prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_model___prop>");}  surfxml_model___prop_value_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_model___prop_value);
9525         YY_BREAK
9526 case 563:
9527 YY_RULE_SETUP
9528 {
9529   if (!AX_surfxml_model___prop_id) FAIL("Required attribute `id' not set for `model_prop' element.");
9530   if (!AX_surfxml_model___prop_value) FAIL("Required attribute `value' not set for `model_prop' element.");
9531   LEAVE; STag_surfxml_model___prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_model___prop);
9532  }
9533         YY_BREAK
9534 case 564:
9535 YY_RULE_SETUP
9536 {
9537   if (!AX_surfxml_model___prop_id) FAIL("Required attribute `id' not set for `model_prop' element.");
9538   if (!AX_surfxml_model___prop_value) FAIL("Required attribute `value' not set for `model_prop' element.");
9539   LEAVE; STag_surfxml_model___prop(); surfxml_pcdata_ix = 0; ETag_surfxml_model___prop(); popbuffer(); /* attribute */
9540   switch (YY_START) {
9541    case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: case S_surfxml_storage___type: SET(S_surfxml_storage___type_2); break;
9542   }
9543  }
9544         YY_BREAK
9545 case 565:
9546 YY_RULE_SETUP
9547 FAIL("Unexpected character `%c' in attribute list of model_prop element.", surf_parse_text[0]);
9548         YY_BREAK
9549 case 566:
9550 YY_RULE_SETUP
9551 FAIL("Bad attribute `%s' in `model_prop' element start tag.",surf_parse_text);
9552         YY_BREAK
9553 case YY_STATE_EOF(AL_surfxml_model___prop):
9554 FAIL("EOF in attribute list of `model_prop' element.");
9555         YY_BREAK
9556
9557 case 567:
9558 /* rule 567 can match eol */
9559 YY_RULE_SETUP
9560 {
9561   LEAVE;
9562   ETag_surfxml_model___prop();
9563   popbuffer(); /* attribute */
9564   switch (YY_START) {
9565    case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: case S_surfxml_storage___type: SET(S_surfxml_storage___type_2); break;
9566   }
9567  }
9568         YY_BREAK
9569 case 568:
9570 /* rule 568 can match eol */
9571 YY_RULE_SETUP
9572 FAIL("Unexpected end-tag `%s': `</model_prop>' expected.",surf_parse_text);
9573         YY_BREAK
9574 case 569:
9575 YY_RULE_SETUP
9576 FAIL("Unexpected character `%c': `</model_prop>' expected.",surf_parse_text[0]);
9577         YY_BREAK
9578 case YY_STATE_EOF(E_surfxml_model___prop):
9579 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</model_prop>' expected.");
9580         YY_BREAK
9581
9582 /* EPILOG: after the root element. */
9583
9584 case 570:
9585 YY_RULE_SETUP
9586 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
9587         YY_BREAK
9588 case YY_STATE_EOF(EPILOG):
9589 SUCCEED;
9590         YY_BREAK
9591
9592 /* CHARACTER DATA. */
9593
9594 /* Non-defined standard entities... */
9595 case 571:
9596 YY_RULE_SETUP
9597 BUFFERPUTC('&');
9598         YY_BREAK
9599 case 572:
9600 YY_RULE_SETUP
9601 BUFFERPUTC('<');
9602         YY_BREAK
9603 case 573:
9604 YY_RULE_SETUP
9605 BUFFERPUTC('>');
9606         YY_BREAK
9607 case 574:
9608 YY_RULE_SETUP
9609 BUFFERPUTC('\'');
9610         YY_BREAK
9611 case 575:
9612 YY_RULE_SETUP
9613 BUFFERPUTC('"');
9614         YY_BREAK
9615 /* Character entities. */
9616 case 576:
9617 YY_RULE_SETUP
9618 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
9619         YY_BREAK
9620 case 577:
9621 YY_RULE_SETUP
9622 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
9623         YY_BREAK
9624
9625 case 578:
9626 /* rule 578 can match eol */
9627 case 579:
9628 /* rule 579 can match eol */
9629 case 580:
9630 /* rule 580 can match eol */
9631 case 581:
9632 /* rule 581 can match eol */
9633 YY_RULE_SETUP
9634 BUFFERPUTC('\n');
9635         YY_BREAK
9636
9637 case 582:
9638 YY_RULE_SETUP
9639 ENTER(CDATA);
9640         YY_BREAK
9641 case 583:
9642 YY_RULE_SETUP
9643 FAIL("Unexpected `]""]>' in character data.");
9644         YY_BREAK
9645
9646 case 584:
9647 YY_RULE_SETUP
9648 BUFFERDONE; LEAVE;
9649         YY_BREAK
9650 case YY_STATE_EOF(VALUE1):
9651 FAIL("EOF in literal (\"'\" expected).");
9652         YY_BREAK
9653
9654 case 585:
9655 YY_RULE_SETUP
9656 BUFFERDONE; LEAVE;
9657         YY_BREAK
9658 case YY_STATE_EOF(VALUE2):
9659 FAIL("EOF in literal (`\"' expected).");
9660         YY_BREAK
9661
9662 case 586:
9663 /* rule 586 can match eol */
9664 YY_RULE_SETUP
9665 BUFFERPUTC(surf_parse_text[0]);
9666         YY_BREAK
9667 case 587:
9668 YY_RULE_SETUP
9669 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
9670         YY_BREAK
9671
9672 case 588:
9673 YY_RULE_SETUP
9674 LEAVE;
9675         YY_BREAK
9676 /* "]""]"               BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
9677 case 589:
9678 YY_RULE_SETUP
9679 BUFFERPUTC(surf_parse_text[0]);
9680         YY_BREAK
9681 case YY_STATE_EOF(CDATA):
9682 FAIL("EOF in CDATA section.");
9683         YY_BREAK
9684
9685 /* Impossible rules to avoid warnings from flex(1). */
9686 /* Ideally, this should be replaced by code in flexml.pl that
9687     generates just the states not covered by other rules. */
9688
9689 case 590:
9690 /* rule 590 can match eol */
9691 YY_RULE_SETUP
9692 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
9693         YY_BREAK
9694
9695 case 591:
9696 YY_RULE_SETUP
9697 ECHO;
9698         YY_BREAK
9699 case YY_STATE_EOF(INITIAL):
9700 case YY_STATE_EOF(ROOT_surfxml_platform):
9701 case YY_STATE_EOF(S_surfxml_platform_2):
9702 case YY_STATE_EOF(S_surfxml_platform_5):
9703 case YY_STATE_EOF(S_surfxml_platform_7):
9704 case YY_STATE_EOF(S_surfxml_include_1):
9705 case YY_STATE_EOF(S_surfxml_AS_2):
9706 case YY_STATE_EOF(S_surfxml_AS_5):
9707 case YY_STATE_EOF(S_surfxml_AS_8):
9708 case YY_STATE_EOF(S_surfxml_AS_10):
9709 case YY_STATE_EOF(S_surfxml_AS_13):
9710 case YY_STATE_EOF(S_surfxml_AS_15):
9711 case YY_STATE_EOF(S_surfxml_storage___type_1):
9712 case YY_STATE_EOF(S_surfxml_host_1):
9713 case YY_STATE_EOF(S_surfxml_storage_1):
9714 case YY_STATE_EOF(S_surfxml_cluster_1):
9715 case YY_STATE_EOF(S_surfxml_link_1):
9716 case YY_STATE_EOF(S_surfxml_route_1):
9717 case YY_STATE_EOF(S_surfxml_ASroute_1):
9718 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
9719 case YY_STATE_EOF(S_surfxml_bypassASroute_1):
9720 case YY_STATE_EOF(S_surfxml_process_1):
9721 case YY_STATE_EOF(S_surfxml_config_1):
9722 case YY_STATE_EOF(IMPOSSIBLE):
9723         yyterminate();
9724
9725         case YY_END_OF_BUFFER:
9726                 {
9727                 /* Amount of text matched not including the EOB char. */
9728                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
9729
9730                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
9731                 *yy_cp = (yy_hold_char);
9732                 YY_RESTORE_YY_MORE_OFFSET
9733
9734                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
9735                         {
9736                         /* We're scanning a new file or input source.  It's
9737                          * possible that this happened because the user
9738                          * just pointed surf_parse_in at a new source and called
9739                          * surf_parse_lex().  If so, then we have to assure
9740                          * consistency between YY_CURRENT_BUFFER and our
9741                          * globals.  Here is the right place to do so, because
9742                          * this is the first action (other than possibly a
9743                          * back-up) that will match for the new input source.
9744                          */
9745                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9746                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
9747                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
9748                         }
9749
9750                 /* Note that here we test for yy_c_buf_p "<=" to the position
9751                  * of the first EOB in the buffer, since yy_c_buf_p will
9752                  * already have been incremented past the NUL character
9753                  * (since all states make transitions on EOB to the
9754                  * end-of-buffer state).  Contrast this with the test
9755                  * in input().
9756                  */
9757                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9758                         { /* This was really a NUL. */
9759                         yy_state_type yy_next_state;
9760
9761                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
9762
9763                         yy_current_state = yy_get_previous_state(  );
9764
9765                         /* Okay, we're now positioned to make the NUL
9766                          * transition.  We couldn't have
9767                          * yy_get_previous_state() go ahead and do it
9768                          * for us because it doesn't know how to deal
9769                          * with the possibility of jamming (and we don't
9770                          * want to build jamming into it because then it
9771                          * will run more slowly).
9772                          */
9773
9774                         yy_next_state = yy_try_NUL_trans( yy_current_state );
9775
9776                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9777
9778                         if ( yy_next_state )
9779                                 {
9780                                 /* Consume the NUL. */
9781                                 yy_cp = ++(yy_c_buf_p);
9782                                 yy_current_state = yy_next_state;
9783                                 goto yy_match;
9784                                 }
9785
9786                         else
9787                                 {
9788                                 yy_cp = (yy_c_buf_p);
9789                                 goto yy_find_action;
9790                                 }
9791                         }
9792
9793                 else switch ( yy_get_next_buffer(  ) )
9794                         {
9795                         case EOB_ACT_END_OF_FILE:
9796                                 {
9797                                 (yy_did_buffer_switch_on_eof) = 0;
9798
9799                                 if ( surf_parse_wrap( ) )
9800                                         {
9801                                         /* Note: because we've taken care in
9802                                          * yy_get_next_buffer() to have set up
9803                                          * surf_parse_text, we can now set up
9804                                          * yy_c_buf_p so that if some total
9805                                          * hoser (like flex itself) wants to
9806                                          * call the scanner after we return the
9807                                          * YY_NULL, it'll still work - another
9808                                          * YY_NULL will get returned.
9809                                          */
9810                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
9811
9812                                         yy_act = YY_STATE_EOF(YY_START);
9813                                         goto do_action;
9814                                         }
9815
9816                                 else
9817                                         {
9818                                         if ( ! (yy_did_buffer_switch_on_eof) )
9819                                                 YY_NEW_FILE;
9820                                         }
9821                                 break;
9822                                 }
9823
9824                         case EOB_ACT_CONTINUE_SCAN:
9825                                 (yy_c_buf_p) =
9826                                         (yytext_ptr) + yy_amount_of_matched_text;
9827
9828                                 yy_current_state = yy_get_previous_state(  );
9829
9830                                 yy_cp = (yy_c_buf_p);
9831                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9832                                 goto yy_match;
9833
9834                         case EOB_ACT_LAST_MATCH:
9835                                 (yy_c_buf_p) =
9836                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
9837
9838                                 yy_current_state = yy_get_previous_state(  );
9839
9840                                 yy_cp = (yy_c_buf_p);
9841                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9842                                 goto yy_find_action;
9843                         }
9844                 break;
9845                 }
9846
9847         default:
9848                 YY_FATAL_ERROR(
9849                         "fatal flex scanner internal error--no action found" );
9850         } /* end of action switch */
9851                 } /* end of scanning one token */
9852         } /* end of user's declarations */
9853 } /* end of surf_parse_lex */
9854
9855 /* yy_get_next_buffer - try to read in a new buffer
9856  *
9857  * Returns a code representing an action:
9858  *      EOB_ACT_LAST_MATCH -
9859  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
9860  *      EOB_ACT_END_OF_FILE - end of file
9861  */
9862 static int yy_get_next_buffer (void)
9863 {
9864         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
9865         register char *source = (yytext_ptr);
9866         register int number_to_move, i;
9867         int ret_val;
9868
9869         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
9870                 YY_FATAL_ERROR(
9871                 "fatal flex scanner internal error--end of buffer missed" );
9872
9873         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
9874                 { /* Don't try to fill the buffer, so this is an EOF. */
9875                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
9876                         {
9877                         /* We matched a single character, the EOB, so
9878                          * treat this as a final EOF.
9879                          */
9880                         return EOB_ACT_END_OF_FILE;
9881                         }
9882
9883                 else
9884                         {
9885                         /* We matched some text prior to the EOB, first
9886                          * process it.
9887                          */
9888                         return EOB_ACT_LAST_MATCH;
9889                         }
9890                 }
9891
9892         /* Try to read more data. */
9893
9894         /* First move last chars to start of buffer. */
9895         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
9896
9897         for ( i = 0; i < number_to_move; ++i )
9898                 *(dest++) = *(source++);
9899
9900         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
9901                 /* don't do the read, it's not guaranteed to return an EOF,
9902                  * just force an EOF
9903                  */
9904                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
9905
9906         else
9907                 {
9908                         yy_size_t num_to_read =
9909                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
9910
9911                 while ( num_to_read <= 0 )
9912                         { /* Not enough room in the buffer - grow it. */
9913
9914                         /* just a shorter name for the current buffer */
9915                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
9916
9917                         int yy_c_buf_p_offset =
9918                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
9919
9920                         if ( b->yy_is_our_buffer )
9921                                 {
9922                                 yy_size_t new_size = b->yy_buf_size * 2;
9923
9924                                 if ( new_size <= 0 )
9925                                         b->yy_buf_size += b->yy_buf_size / 8;
9926                                 else
9927                                         b->yy_buf_size *= 2;
9928
9929                                 b->yy_ch_buf = (char *)
9930                                         /* Include room in for 2 EOB chars. */
9931                                         surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
9932                                 }
9933                         else
9934                                 /* Can't grow it, we don't own it. */
9935                                 b->yy_ch_buf = 0;
9936
9937                         if ( ! b->yy_ch_buf )
9938                                 YY_FATAL_ERROR(
9939                                 "fatal error - scanner input buffer overflow" );
9940
9941                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
9942
9943                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
9944                                                 number_to_move - 1;
9945
9946                         }
9947
9948                 if ( num_to_read > YY_READ_BUF_SIZE )
9949                         num_to_read = YY_READ_BUF_SIZE;
9950
9951                 /* Read in more data. */
9952                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
9953                         (yy_n_chars), num_to_read );
9954
9955                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9956                 }
9957
9958         if ( (yy_n_chars) == 0 )
9959                 {
9960                 if ( number_to_move == YY_MORE_ADJ )
9961                         {
9962                         ret_val = EOB_ACT_END_OF_FILE;
9963                         surf_parse_restart(surf_parse_in  );
9964                         }
9965
9966                 else
9967                         {
9968                         ret_val = EOB_ACT_LAST_MATCH;
9969                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
9970                                 YY_BUFFER_EOF_PENDING;
9971                         }
9972                 }
9973
9974         else
9975                 ret_val = EOB_ACT_CONTINUE_SCAN;
9976
9977         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
9978                 /* Extend the array by 50%, plus the number we really need. */
9979                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
9980                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) surf_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
9981                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
9982                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
9983         }
9984
9985         (yy_n_chars) += number_to_move;
9986         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
9987         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
9988
9989         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
9990
9991         return ret_val;
9992 }
9993
9994 /* yy_get_previous_state - get the state just before the EOB char was reached */
9995
9996     static yy_state_type yy_get_previous_state (void)
9997 {
9998         register yy_state_type yy_current_state;
9999         register char *yy_cp;
10000     
10001         yy_current_state = (yy_start);
10002
10003         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
10004                 {
10005                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
10006                 if ( yy_accept[yy_current_state] )
10007                         {
10008                         (yy_last_accepting_state) = yy_current_state;
10009                         (yy_last_accepting_cpos) = yy_cp;
10010                         }
10011                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
10012                         {
10013                         yy_current_state = (int) yy_def[yy_current_state];
10014                         if ( yy_current_state >= 3469 )
10015                                 yy_c = yy_meta[(unsigned int) yy_c];
10016                         }
10017                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
10018                 }
10019
10020         return yy_current_state;
10021 }
10022
10023 /* yy_try_NUL_trans - try to make a transition on the NUL character
10024  *
10025  * synopsis
10026  *      next_state = yy_try_NUL_trans( current_state );
10027  */
10028     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
10029 {
10030         register int yy_is_jam;
10031         register char *yy_cp = (yy_c_buf_p);
10032
10033         register YY_CHAR yy_c = 1;
10034         if ( yy_accept[yy_current_state] )
10035                 {
10036                 (yy_last_accepting_state) = yy_current_state;
10037                 (yy_last_accepting_cpos) = yy_cp;
10038                 }
10039         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
10040                 {
10041                 yy_current_state = (int) yy_def[yy_current_state];
10042                 if ( yy_current_state >= 3469 )
10043                         yy_c = yy_meta[(unsigned int) yy_c];
10044                 }
10045         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
10046         yy_is_jam = (yy_current_state == 3468);
10047
10048                 return yy_is_jam ? 0 : yy_current_state;
10049 }
10050
10051 #ifndef YY_NO_INPUT
10052 #ifdef __cplusplus
10053     static int yyinput (void)
10054 #else
10055     static int input  (void)
10056 #endif
10057
10058 {
10059         int c;
10060     
10061         *(yy_c_buf_p) = (yy_hold_char);
10062
10063         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
10064                 {
10065                 /* yy_c_buf_p now points to the character we want to return.
10066                  * If this occurs *before* the EOB characters, then it's a
10067                  * valid NUL; if not, then we've hit the end of the buffer.
10068                  */
10069                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
10070                         /* This was really a NUL. */
10071                         *(yy_c_buf_p) = '\0';
10072
10073                 else
10074                         { /* need more input */
10075                         yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
10076                         ++(yy_c_buf_p);
10077
10078                         switch ( yy_get_next_buffer(  ) )
10079                                 {
10080                                 case EOB_ACT_LAST_MATCH:
10081                                         /* This happens because yy_g_n_b()
10082                                          * sees that we've accumulated a
10083                                          * token and flags that we need to
10084                                          * try matching the token before
10085                                          * proceeding.  But for input(),
10086                                          * there's no matching to consider.
10087                                          * So convert the EOB_ACT_LAST_MATCH
10088                                          * to EOB_ACT_END_OF_FILE.
10089                                          */
10090
10091                                         /* Reset buffer status. */
10092                                         surf_parse_restart(surf_parse_in );
10093
10094                                         /*FALLTHROUGH*/
10095
10096                                 case EOB_ACT_END_OF_FILE:
10097                                         {
10098                                         if ( surf_parse_wrap( ) )
10099                                                 return EOF;
10100
10101                                         if ( ! (yy_did_buffer_switch_on_eof) )
10102                                                 YY_NEW_FILE;
10103 #ifdef __cplusplus
10104                                         return yyinput();
10105 #else
10106                                         return input();
10107 #endif
10108                                         }
10109
10110                                 case EOB_ACT_CONTINUE_SCAN:
10111                                         (yy_c_buf_p) = (yytext_ptr) + offset;
10112                                         break;
10113                                 }
10114                         }
10115                 }
10116
10117         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
10118         *(yy_c_buf_p) = '\0';   /* preserve surf_parse_text */
10119         (yy_hold_char) = *++(yy_c_buf_p);
10120
10121         if ( c == '\n' )
10122                    
10123     surf_parse_lineno++;
10124 ;
10125
10126         return c;
10127 }
10128 #endif  /* ifndef YY_NO_INPUT */
10129
10130 /** Immediately switch to a different input stream.
10131  * @param input_file A readable stream.
10132  * 
10133  * @note This function does not reset the start condition to @c INITIAL .
10134  */
10135     void surf_parse_restart  (FILE * input_file )
10136 {
10137     
10138         if ( ! YY_CURRENT_BUFFER ){
10139         surf_parse_ensure_buffer_stack ();
10140                 YY_CURRENT_BUFFER_LVALUE =
10141             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
10142         }
10143
10144         surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
10145         surf_parse__load_buffer_state( );
10146 }
10147
10148 /** Switch to a different input buffer.
10149  * @param new_buffer The new input buffer.
10150  * 
10151  */
10152     void surf_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
10153 {
10154     
10155         /* TODO. We should be able to replace this entire function body
10156          * with
10157          *              surf_parse_pop_buffer_state();
10158          *              surf_parse_push_buffer_state(new_buffer);
10159      */
10160         surf_parse_ensure_buffer_stack ();
10161         if ( YY_CURRENT_BUFFER == new_buffer )
10162                 return;
10163
10164         if ( YY_CURRENT_BUFFER )
10165                 {
10166                 /* Flush out information for old buffer. */
10167                 *(yy_c_buf_p) = (yy_hold_char);
10168                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
10169                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
10170                 }
10171
10172         YY_CURRENT_BUFFER_LVALUE = new_buffer;
10173         surf_parse__load_buffer_state( );
10174
10175         /* We don't actually know whether we did this switch during
10176          * EOF (surf_parse_wrap()) processing, but the only time this flag
10177          * is looked at is after surf_parse_wrap() is called, so it's safe
10178          * to go ahead and always set it.
10179          */
10180         (yy_did_buffer_switch_on_eof) = 1;
10181 }
10182
10183 static void surf_parse__load_buffer_state  (void)
10184 {
10185         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
10186         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
10187         surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
10188         (yy_hold_char) = *(yy_c_buf_p);
10189 }
10190
10191 /** Allocate and initialize an input buffer state.
10192  * @param file A readable stream.
10193  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
10194  * 
10195  * @return the allocated buffer state.
10196  */
10197     YY_BUFFER_STATE surf_parse__create_buffer  (FILE * file, int  size )
10198 {
10199         YY_BUFFER_STATE b;
10200     
10201         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
10202         if ( ! b )
10203                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
10204
10205         b->yy_buf_size = size;
10206
10207         /* yy_ch_buf has to be 2 characters longer than the size given because
10208          * we need to put in 2 end-of-buffer characters.
10209          */
10210         b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2  );
10211         if ( ! b->yy_ch_buf )
10212                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
10213
10214         b->yy_is_our_buffer = 1;
10215
10216         surf_parse__init_buffer(b,file );
10217
10218         return b;
10219 }
10220
10221 /** Destroy the buffer.
10222  * @param b a buffer created with surf_parse__create_buffer()
10223  * 
10224  */
10225     void surf_parse__delete_buffer (YY_BUFFER_STATE  b )
10226 {
10227     
10228         if ( ! b )
10229                 return;
10230
10231         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
10232                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
10233
10234         if ( b->yy_is_our_buffer )
10235                 surf_parse_free((void *) b->yy_ch_buf  );
10236
10237         surf_parse_free((void *) b  );
10238 }
10239
10240 /* Initializes or reinitializes a buffer.
10241  * This function is sometimes called more than once on the same buffer,
10242  * such as during a surf_parse_restart() or at EOF.
10243  */
10244     static void surf_parse__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
10245
10246 {
10247         int oerrno = errno;
10248     
10249         surf_parse__flush_buffer(b );
10250
10251         b->yy_input_file = file;
10252         b->yy_fill_buffer = 1;
10253
10254     /* If b is the current buffer, then surf_parse__init_buffer was _probably_
10255      * called from surf_parse_restart() or through yy_get_next_buffer.
10256      * In that case, we don't want to reset the lineno or column.
10257      */
10258     if (b != YY_CURRENT_BUFFER){
10259         b->yy_bs_lineno = 1;
10260         b->yy_bs_column = 0;
10261     }
10262
10263         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
10264     
10265         errno = oerrno;
10266 }
10267
10268 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
10269  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
10270  * 
10271  */
10272     void surf_parse__flush_buffer (YY_BUFFER_STATE  b )
10273 {
10274         if ( ! b )
10275                 return;
10276
10277         b->yy_n_chars = 0;
10278
10279         /* We always need two end-of-buffer characters.  The first causes
10280          * a transition to the end-of-buffer state.  The second causes
10281          * a jam in that state.
10282          */
10283         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
10284         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
10285
10286         b->yy_buf_pos = &b->yy_ch_buf[0];
10287
10288         b->yy_at_bol = 1;
10289         b->yy_buffer_status = YY_BUFFER_NEW;
10290
10291         if ( b == YY_CURRENT_BUFFER )
10292                 surf_parse__load_buffer_state( );
10293 }
10294
10295 /** Pushes the new state onto the stack. The new state becomes
10296  *  the current state. This function will allocate the stack
10297  *  if necessary.
10298  *  @param new_buffer The new state.
10299  *  
10300  */
10301 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
10302 {
10303         if (new_buffer == NULL)
10304                 return;
10305
10306         surf_parse_ensure_buffer_stack();
10307
10308         /* This block is copied from surf_parse__switch_to_buffer. */
10309         if ( YY_CURRENT_BUFFER )
10310                 {
10311                 /* Flush out information for old buffer. */
10312                 *(yy_c_buf_p) = (yy_hold_char);
10313                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
10314                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
10315                 }
10316
10317         /* Only push if top exists. Otherwise, replace top. */
10318         if (YY_CURRENT_BUFFER)
10319                 (yy_buffer_stack_top)++;
10320         YY_CURRENT_BUFFER_LVALUE = new_buffer;
10321
10322         /* copied from surf_parse__switch_to_buffer. */
10323         surf_parse__load_buffer_state( );
10324         (yy_did_buffer_switch_on_eof) = 1;
10325 }
10326
10327 /** Removes and deletes the top of the stack, if present.
10328  *  The next element becomes the new top.
10329  *  
10330  */
10331 void surf_parse_pop_buffer_state (void)
10332 {
10333         if (!YY_CURRENT_BUFFER)
10334                 return;
10335
10336         surf_parse__delete_buffer(YY_CURRENT_BUFFER );
10337         YY_CURRENT_BUFFER_LVALUE = NULL;
10338         if ((yy_buffer_stack_top) > 0)
10339                 --(yy_buffer_stack_top);
10340
10341         if (YY_CURRENT_BUFFER) {
10342                 surf_parse__load_buffer_state( );
10343                 (yy_did_buffer_switch_on_eof) = 1;
10344         }
10345 }
10346
10347 /* Allocates the stack if it does not exist.
10348  *  Guarantees space for at least one push.
10349  */
10350 static void surf_parse_ensure_buffer_stack (void)
10351 {
10352         yy_size_t num_to_alloc;
10353     
10354         if (!(yy_buffer_stack)) {
10355
10356                 /* First allocation is just for 2 elements, since we don't know if this
10357                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
10358                  * immediate realloc on the next call.
10359          */
10360                 num_to_alloc = 1;
10361                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
10362                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
10363                                                                 );
10364                 if ( ! (yy_buffer_stack) )
10365                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
10366                                                                   
10367                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
10368                                 
10369                 (yy_buffer_stack_max) = num_to_alloc;
10370                 (yy_buffer_stack_top) = 0;
10371                 return;
10372         }
10373
10374         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
10375
10376                 /* Increase the buffer to prepare for a possible push. */
10377                 int grow_size = 8 /* arbitrary grow size */;
10378
10379                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
10380                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
10381                                                                 ((yy_buffer_stack),
10382                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
10383                                                                 );
10384                 if ( ! (yy_buffer_stack) )
10385                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
10386
10387                 /* zero only the new slots.*/
10388                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
10389                 (yy_buffer_stack_max) = num_to_alloc;
10390         }
10391 }
10392
10393 /** Setup the input buffer state to scan directly from a user-specified character buffer.
10394  * @param base the character buffer
10395  * @param size the size in bytes of the character buffer
10396  * 
10397  * @return the newly allocated buffer state object. 
10398  */
10399 YY_BUFFER_STATE surf_parse__scan_buffer  (char * base, yy_size_t  size )
10400 {
10401         YY_BUFFER_STATE b;
10402     
10403         if ( size < 2 ||
10404              base[size-2] != YY_END_OF_BUFFER_CHAR ||
10405              base[size-1] != YY_END_OF_BUFFER_CHAR )
10406                 /* They forgot to leave room for the EOB's. */
10407                 return 0;
10408
10409         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
10410         if ( ! b )
10411                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
10412
10413         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
10414         b->yy_buf_pos = b->yy_ch_buf = base;
10415         b->yy_is_our_buffer = 0;
10416         b->yy_input_file = 0;
10417         b->yy_n_chars = b->yy_buf_size;
10418         b->yy_is_interactive = 0;
10419         b->yy_at_bol = 1;
10420         b->yy_fill_buffer = 0;
10421         b->yy_buffer_status = YY_BUFFER_NEW;
10422
10423         surf_parse__switch_to_buffer(b  );
10424
10425         return b;
10426 }
10427
10428 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
10429  * scan from a @e copy of @a str.
10430  * @param yystr a NUL-terminated string to scan
10431  * 
10432  * @return the newly allocated buffer state object.
10433  * @note If you want to scan bytes that may contain NUL values, then use
10434  *       surf_parse__scan_bytes() instead.
10435  */
10436 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
10437 {
10438     
10439         return surf_parse__scan_bytes(yystr,strlen(yystr) );
10440 }
10441
10442 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
10443  * scan from a @e copy of @a bytes.
10444  * @param yybytes the byte buffer to scan
10445  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
10446  * 
10447  * @return the newly allocated buffer state object.
10448  */
10449 YY_BUFFER_STATE surf_parse__scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
10450 {
10451         YY_BUFFER_STATE b;
10452         char *buf;
10453         yy_size_t n;
10454         yy_size_t i;
10455     
10456         /* Get memory for full buffer, including space for trailing EOB's. */
10457         n = _yybytes_len + 2;
10458         buf = (char *) surf_parse_alloc(n  );
10459         if ( ! buf )
10460                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
10461
10462         for ( i = 0; i < _yybytes_len; ++i )
10463                 buf[i] = yybytes[i];
10464
10465         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
10466
10467         b = surf_parse__scan_buffer(buf,n );
10468         if ( ! b )
10469                 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
10470
10471         /* It's okay to grow etc. this buffer, and we should throw it
10472          * away when we're done.
10473          */
10474         b->yy_is_our_buffer = 1;
10475
10476         return b;
10477 }
10478
10479     static void yy_push_state (int  new_state )
10480 {
10481         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
10482                 {
10483                 yy_size_t new_size;
10484
10485                 (yy_start_stack_depth) += YY_START_STACK_INCR;
10486                 new_size = (yy_start_stack_depth) * sizeof( int );
10487
10488                 if ( ! (yy_start_stack) )
10489                         (yy_start_stack) = (int *) surf_parse_alloc(new_size  );
10490
10491                 else
10492                         (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size  );
10493
10494                 if ( ! (yy_start_stack) )
10495                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
10496                 }
10497
10498         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
10499
10500         BEGIN(new_state);
10501 }
10502
10503     static void yy_pop_state  (void)
10504 {
10505         if ( --(yy_start_stack_ptr) < 0 )
10506                 YY_FATAL_ERROR( "start-condition stack underflow" );
10507
10508         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
10509 }
10510
10511 #ifndef YY_EXIT_FAILURE
10512 #define YY_EXIT_FAILURE 2
10513 #endif
10514
10515 static void yy_fatal_error (yyconst char* msg )
10516 {
10517         (void) fprintf( stderr, "%s\n", msg );
10518         exit( YY_EXIT_FAILURE );
10519 }
10520
10521 /* Redefine yyless() so it works in section 3 code. */
10522
10523 #undef yyless
10524 #define yyless(n) \
10525         do \
10526                 { \
10527                 /* Undo effects of setting up surf_parse_text. */ \
10528         int yyless_macro_arg = (n); \
10529         YY_LESS_LINENO(yyless_macro_arg);\
10530                 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
10531                 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
10532                 (yy_hold_char) = *(yy_c_buf_p); \
10533                 *(yy_c_buf_p) = '\0'; \
10534                 surf_parse_leng = yyless_macro_arg; \
10535                 } \
10536         while ( 0 )
10537
10538 /* Accessor  methods (get/set functions) to struct members. */
10539
10540 /** Get the current line number.
10541  * 
10542  */
10543 int surf_parse_get_lineno  (void)
10544 {
10545         
10546     return surf_parse_lineno;
10547 }
10548
10549 /** Get the input stream.
10550  * 
10551  */
10552 FILE *surf_parse_get_in  (void)
10553 {
10554         return surf_parse_in;
10555 }
10556
10557 /** Get the output stream.
10558  * 
10559  */
10560 FILE *surf_parse_get_out  (void)
10561 {
10562         return surf_parse_out;
10563 }
10564
10565 /** Get the length of the current token.
10566  * 
10567  */
10568 yy_size_t surf_parse_get_leng  (void)
10569 {
10570         return surf_parse_leng;
10571 }
10572
10573 /** Get the current token.
10574  * 
10575  */
10576
10577 char *surf_parse_get_text  (void)
10578 {
10579         return surf_parse_text;
10580 }
10581
10582 /** Set the current line number.
10583  * @param line_number
10584  * 
10585  */
10586 void surf_parse_set_lineno (int  line_number )
10587 {
10588     
10589     surf_parse_lineno = line_number;
10590 }
10591
10592 /** Set the input stream. This does not discard the current
10593  * input buffer.
10594  * @param in_str A readable stream.
10595  * 
10596  * @see surf_parse__switch_to_buffer
10597  */
10598 void surf_parse_set_in (FILE *  in_str )
10599 {
10600         surf_parse_in = in_str ;
10601 }
10602
10603 void surf_parse_set_out (FILE *  out_str )
10604 {
10605         surf_parse_out = out_str ;
10606 }
10607
10608 int surf_parse_get_debug  (void)
10609 {
10610         return surf_parse__flex_debug;
10611 }
10612
10613 void surf_parse_set_debug (int  bdebug )
10614 {
10615         surf_parse__flex_debug = bdebug ;
10616 }
10617
10618 static int yy_init_globals (void)
10619 {
10620         /* Initialization is the same as for the non-reentrant scanner.
10621      * This function is called from surf_parse_lex_destroy(), so don't allocate here.
10622      */
10623
10624     /* We do not touch surf_parse_lineno unless the option is enabled. */
10625     surf_parse_lineno =  1;
10626     
10627     (yy_buffer_stack) = 0;
10628     (yy_buffer_stack_top) = 0;
10629     (yy_buffer_stack_max) = 0;
10630     (yy_c_buf_p) = (char *) 0;
10631     (yy_init) = 0;
10632     (yy_start) = 0;
10633
10634     (yy_start_stack_ptr) = 0;
10635     (yy_start_stack_depth) = 0;
10636     (yy_start_stack) =  NULL;
10637
10638 /* Defined in main.c */
10639 #ifdef YY_STDINIT
10640     surf_parse_in = stdin;
10641     surf_parse_out = stdout;
10642 #else
10643     surf_parse_in = (FILE *) 0;
10644     surf_parse_out = (FILE *) 0;
10645 #endif
10646
10647     /* For future reference: Set errno on error, since we are called by
10648      * surf_parse_lex_init()
10649      */
10650     return 0;
10651 }
10652
10653 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
10654 int surf_parse_lex_destroy  (void)
10655 {
10656     
10657     /* Pop the buffer stack, destroying each element. */
10658         while(YY_CURRENT_BUFFER){
10659                 surf_parse__delete_buffer(YY_CURRENT_BUFFER  );
10660                 YY_CURRENT_BUFFER_LVALUE = NULL;
10661                 surf_parse_pop_buffer_state();
10662         }
10663
10664         /* Destroy the stack itself. */
10665         surf_parse_free((yy_buffer_stack) );
10666         (yy_buffer_stack) = NULL;
10667
10668     /* Destroy the start condition stack. */
10669         surf_parse_free((yy_start_stack)  );
10670         (yy_start_stack) = NULL;
10671
10672     /* Reset the globals. This is important in a non-reentrant scanner so the next time
10673      * surf_parse_lex() is called, initialization will occur. */
10674     yy_init_globals( );
10675
10676     return 0;
10677 }
10678
10679 /*
10680  * Internal utility routines.
10681  */
10682
10683 #ifndef yytext_ptr
10684 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
10685 {
10686         register int i;
10687         for ( i = 0; i < n; ++i )
10688                 s1[i] = s2[i];
10689 }
10690 #endif
10691
10692 #ifdef YY_NEED_STRLEN
10693 static int yy_flex_strlen (yyconst char * s )
10694 {
10695         register int n;
10696         for ( n = 0; s[n]; ++n )
10697                 ;
10698
10699         return n;
10700 }
10701 #endif
10702
10703 void *surf_parse_alloc (yy_size_t  size )
10704 {
10705         return (void *) malloc( size );
10706 }
10707
10708 void *surf_parse_realloc  (void * ptr, yy_size_t  size )
10709 {
10710         /* The cast to (char *) in the following accommodates both
10711          * implementations that use char* generic pointers, and those
10712          * that use void* generic pointers.  It works with the latter
10713          * because both ANSI C and C++ allow castless assignment from
10714          * any pointer type to void*, and deal with argument conversions
10715          * as though doing an assignment.
10716          */
10717         return (void *) realloc( (char *) ptr, size );
10718 }
10719
10720 void surf_parse_free (void * ptr )
10721 {
10722         free( (char *) ptr );   /* see surf_parse_realloc() for (char *) cast */
10723 }
10724
10725 #define YYTABLES_NAME "yytables"
10726
10727 /* Element context stack lookup. */
10728 int surfxml_element_context(int i)
10729 {
10730   return (0<i && i<yy_start_stack_depth
10731           ? yy_start_stack[yy_start_stack_ptr - i]
10732           : 0);
10733 }
10734
10735 #ifdef FLEX_DEBUG
10736 void print_yy_stack(char* fmt, ...)
10737 {
10738   int i = 0; va_list ap; va_start(ap, fmt);
10739   vfprintf(stderr, fmt, ap);
10740   if (surfxml_statenames) {
10741       for (i=1; i<yy_start_stack_ptr; i++) {
10742           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
10743       }
10744       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
10745   }
10746   va_end(ap);
10747 }
10748
10749 void print_surfxml_bufferstack()
10750 {
10751     int i;
10752     fputs("Buffer: ", stderr);
10753     for (i = 0; i < blimit; i++) {
10754        if ( surfxml_bufferstack[i] == '\377' ) break;
10755          putc(surfxml_bufferstack[i], stderr);
10756     }
10757     putc('\n', stderr);
10758 }
10759
10760 static void debug_enter(int state, const char* statename) {
10761   yy_push_state(state);
10762   if (surf_parse__flex_debug) {
10763        print_yy_stack("--ENTER(%s) : ",statename);
10764        print_surfxml_bufferstack();
10765   }
10766 }
10767
10768 static void debug_leave(void) {
10769     if (surf_parse__flex_debug) {
10770         print_yy_stack("--LEAVE : ");
10771         print_surfxml_bufferstack();
10772     }
10773   yy_pop_state();
10774 }
10775
10776 static void debug_set(int state, const char* statename) {
10777   BEGIN(state);
10778   if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
10779 }
10780 #endif
10781
10782 static void cleanup(void)
10783 {
10784     if (surfxml_statenames) {
10785         free(surfxml_statenames);
10786         surfxml_statenames = NULL;
10787     }
10788     free(surfxml_bufferstack);
10789     surfxml_bufferstack = NULL;
10790
10791     free(indexstack);
10792     indexstack = NULL;
10793 }
10794
10795 static int fail(const char* fmt, ...)
10796 {
10797     int chars_left, used;
10798     va_list ap; va_start(ap, fmt);
10799 #ifdef FLEXML_yylineno
10800     used = sprintf(flexml_err_msg,
10801                    "Invalid XML (XML input line %d, state %d): ",
10802                    surf_parse_lineno, YY_START);
10803 #else
10804     used = sprintf(flexml_err_msg,
10805                    "Invalid XML (state %d): ",
10806                    YY_START);
10807 #endif
10808     chars_left = flexml_max_err_msg_size - used - 1;
10809     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
10810     va_end(ap);
10811
10812 #ifndef FLEXML_quiet_parser
10813     /* print directly to sdterr */
10814     fprintf(stderr, "%s\n", flexml_err_msg);
10815     flexml_err_msg[0] = '\0';
10816 #endif
10817
10818     cleanup();
10819
10820     return 1;
10821 }
10822