Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
doc is whining +indent
[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 37
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 #define YY_BUF_SIZE 16384
164 #endif
165
166 /* The state buf must be large enough to hold one state per character in the main buffer.
167  */
168 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
169
170 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
171 #define YY_TYPEDEF_YY_BUFFER_STATE
172 typedef struct yy_buffer_state *YY_BUFFER_STATE;
173 #endif
174
175 #ifndef YY_TYPEDEF_YY_SIZE_T
176 #define YY_TYPEDEF_YY_SIZE_T
177 typedef size_t yy_size_t;
178 #endif
179
180 extern yy_size_t surf_parse_leng;
181
182 extern FILE *surf_parse_in, *surf_parse_out;
183
184 #define EOB_ACT_CONTINUE_SCAN 0
185 #define EOB_ACT_END_OF_FILE 1
186 #define EOB_ACT_LAST_MATCH 2
187
188     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
189      *       access to the local variable yy_act. Since yyless() is a macro, it would break
190      *       existing scanners that call yyless() from OUTSIDE surf_parse_lex. 
191      *       One obvious solution it to make yy_act a global. I tried that, and saw
192      *       a 5% performance hit in a non-surf_parse_lineno scanner, because yy_act is
193      *       normally declared as a register variable-- so it is not worth it.
194      */
195     #define  YY_LESS_LINENO(n) \
196             do { \
197                 int yyl;\
198                 for ( yyl = n; yyl < surf_parse_leng; ++yyl )\
199                     if ( surf_parse_text[yyl] == '\n' )\
200                         --surf_parse_lineno;\
201             }while(0)
202     
203 /* Return all but the first "n" matched characters back to the input stream. */
204 #define yyless(n) \
205         do \
206                 { \
207                 /* Undo effects of setting up surf_parse_text. */ \
208         int yyless_macro_arg = (n); \
209         YY_LESS_LINENO(yyless_macro_arg);\
210                 *yy_cp = (yy_hold_char); \
211                 YY_RESTORE_YY_MORE_OFFSET \
212                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
213                 YY_DO_BEFORE_ACTION; /* set up surf_parse_text again */ \
214                 } \
215         while ( 0 )
216
217 #define unput(c) yyunput( c, (yytext_ptr)  )
218
219 #ifndef YY_STRUCT_YY_BUFFER_STATE
220 #define YY_STRUCT_YY_BUFFER_STATE
221 struct yy_buffer_state
222         {
223         FILE *yy_input_file;
224
225         char *yy_ch_buf;                /* input buffer */
226         char *yy_buf_pos;               /* current position in input buffer */
227
228         /* Size of input buffer in bytes, not including room for EOB
229          * characters.
230          */
231         yy_size_t yy_buf_size;
232
233         /* Number of characters read into yy_ch_buf, not including EOB
234          * characters.
235          */
236         yy_size_t yy_n_chars;
237
238         /* Whether we "own" the buffer - i.e., we know we created it,
239          * and can realloc() it to grow it, and should free() it to
240          * delete it.
241          */
242         int yy_is_our_buffer;
243
244         /* Whether this is an "interactive" input source; if so, and
245          * if we're using stdio for input, then we want to use getc()
246          * instead of fread(), to make sure we stop fetching input after
247          * each newline.
248          */
249         int yy_is_interactive;
250
251         /* Whether we're considered to be at the beginning of a line.
252          * If so, '^' rules will be active on the next match, otherwise
253          * not.
254          */
255         int yy_at_bol;
256
257     int yy_bs_lineno; /**< The line count. */
258     int yy_bs_column; /**< The column count. */
259     
260         /* Whether to try to fill the input buffer when we reach the
261          * end of it.
262          */
263         int yy_fill_buffer;
264
265         int yy_buffer_status;
266
267 #define YY_BUFFER_NEW 0
268 #define YY_BUFFER_NORMAL 1
269         /* When an EOF's been seen but there's still some text to process
270          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
271          * shouldn't try reading from the input source any more.  We might
272          * still have a bunch of tokens to match, though, because of
273          * possible backing-up.
274          *
275          * When we actually see the EOF, we change the status to "new"
276          * (via surf_parse_restart()), so that the user can continue scanning by
277          * just pointing surf_parse_in at a new input file.
278          */
279 #define YY_BUFFER_EOF_PENDING 2
280
281         };
282 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
283
284 /* Stack of input buffers. */
285 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
286 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
287 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
288
289 /* We provide macros for accessing buffer states in case in the
290  * future we want to put the buffer states in a more general
291  * "scanner state".
292  *
293  * Returns the top of the stack, or NULL.
294  */
295 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
296                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
297                           : NULL)
298
299 /* Same as previous macro, but useful when we know that the buffer stack is not
300  * NULL or when we need an lvalue. For internal use only.
301  */
302 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
303
304 /* yy_hold_char holds the character lost when surf_parse_text is formed. */
305 static char yy_hold_char;
306 static yy_size_t yy_n_chars;            /* number of characters read into yy_ch_buf */
307 yy_size_t surf_parse_leng;
308
309 /* Points to current character in buffer. */
310 static char *yy_c_buf_p = (char *) 0;
311 static int yy_init = 0;         /* whether we need to initialize */
312 static int yy_start = 0;        /* start state number */
313
314 /* Flag which is used to allow surf_parse_wrap()'s to do buffer switches
315  * instead of setting up a fresh surf_parse_in.  A bit of a hack ...
316  */
317 static int yy_did_buffer_switch_on_eof;
318
319 void surf_parse_restart (FILE *input_file  );
320 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer  );
321 YY_BUFFER_STATE surf_parse__create_buffer (FILE *file,int size  );
322 void surf_parse__delete_buffer (YY_BUFFER_STATE b  );
323 void surf_parse__flush_buffer (YY_BUFFER_STATE b  );
324 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer  );
325 void surf_parse_pop_buffer_state (void );
326
327 static void surf_parse_ensure_buffer_stack (void );
328 static void surf_parse__load_buffer_state (void );
329 static void surf_parse__init_buffer (YY_BUFFER_STATE b,FILE *file  );
330
331 #define YY_FLUSH_BUFFER surf_parse__flush_buffer(YY_CURRENT_BUFFER )
332
333 YY_BUFFER_STATE surf_parse__scan_buffer (char *base,yy_size_t size  );
334 YY_BUFFER_STATE surf_parse__scan_string (yyconst char *yy_str  );
335 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char *bytes,yy_size_t len  );
336
337 void *surf_parse_alloc (yy_size_t  );
338 void *surf_parse_realloc (void *,yy_size_t  );
339 void surf_parse_free (void *  );
340
341 #define yy_new_buffer surf_parse__create_buffer
342
343 #define yy_set_interactive(is_interactive) \
344         { \
345         if ( ! YY_CURRENT_BUFFER ){ \
346         surf_parse_ensure_buffer_stack (); \
347                 YY_CURRENT_BUFFER_LVALUE =    \
348             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
349         } \
350         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
351         }
352
353 #define yy_set_bol(at_bol) \
354         { \
355         if ( ! YY_CURRENT_BUFFER ){\
356         surf_parse_ensure_buffer_stack (); \
357                 YY_CURRENT_BUFFER_LVALUE =    \
358             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
359         } \
360         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
361         }
362
363 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
364
365 /* Begin user sect3 */
366
367 #define surf_parse_wrap() 1
368 #define YY_SKIP_YYWRAP
369
370 typedef unsigned char YY_CHAR;
371
372 FILE *surf_parse_in = (FILE *) 0, *surf_parse_out = (FILE *) 0;
373
374 typedef int yy_state_type;
375
376 extern int surf_parse_lineno;
377
378 int surf_parse_lineno = 1;
379
380 extern char *surf_parse_text;
381 #define yytext_ptr surf_parse_text
382
383 static yy_state_type yy_get_previous_state (void );
384 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
385 static int yy_get_next_buffer (void );
386 static void yy_fatal_error (yyconst char msg[]  );
387
388 /* Done after the current pattern has been matched and before the
389  * corresponding action - sets up surf_parse_text.
390  */
391 #define YY_DO_BEFORE_ACTION \
392         (yytext_ptr) = yy_bp; \
393         surf_parse_leng = (size_t) (yy_cp - yy_bp); \
394         (yy_hold_char) = *yy_cp; \
395         *yy_cp = '\0'; \
396         (yy_c_buf_p) = yy_cp;
397
398 #define YY_NUM_RULES 595
399 #define YY_END_OF_BUFFER 596
400 /* This struct is not used in this scanner,
401    but its presence is necessary. */
402 struct yy_trans_info
403         {
404         flex_int32_t yy_verify;
405         flex_int32_t yy_nxt;
406         };
407 static yyconst flex_int16_t yy_accept[3503] =
408     {   0,
409         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
410         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
411         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
412         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
413         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
414         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
415         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
416         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
417         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
418         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
419
420         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
421         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
422         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
423         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
424         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
425         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
426         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
427         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
431         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
432         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
433         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
434         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
435         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
436         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
437         0,    0,  596,  594,   15,   10,   10,   15,   15,  574,
438        10,  574,    5,    6,    5,    8,    9,    8,  590,  582,
439       583,  591,  588,  591,  589,  593,  582,  583,  593,  594,
440        22,   10,   22,   22,   22,   20,   22,   26,   10,   26,
441
442        26,  594,   26,  594,  594,   26,   33,   10,   33,   33,
443        33,   31,   33,   37,   10,   37,   37,   48,   10,   48,
444        48,   48,   46,   48,   48,   48,  591,  590,   78,   10,
445        78,   78,   78,   76,   78,   78,   78,   78,   78,   82,
446        10,   82,  101,   10,  101,  101,  101,   99,  101,  101,
447       101,  105,   10,  105,  130,   10,  130,  130,  130,  128,
448       130,  130,  134,   10,  134,  134,  594,  134,  594,  134,
449       134,  594,  594,  134,  594,  134,  594,  134,  149,   10,
450       149,  149,  149,  147,  149,  149,  149,  149,  153,   10,
451       153,  594,  153,  162,   10,  162,  162,  162,  160,  162,
452
453       162,  166,   10,  166,  175,   10,  175,  175,  175,  173,
454       175,  175,  179,   10,  179,  204,   10,  204,  204,  204,
455       202,  204,  204,  204,  204,  204,  208,   10,  208,  594,
456       208,  223,   10,  223,  223,  223,  221,  223,  223,  223,
457       223,  227,   10,  227,  227,  234,   10,  234,  234,  234,
458       232,  234,  238,   10,  238,  249,   10,  249,  249,  249,
459       247,  249,  249,  249,  253,   10,  253,  308,   10,  308,
460       308,  308,  306,  308,  308,  308,  308,  308,  308,  308,
461       308,  308,  312,   10,  312,  312,  331,   10,  331,  331,
462       331,  329,  331,  331,  331,  331,  331,  331,  335,   10,
463
464       335,  356,   10,  356,  356,  356,  354,  356,  356,  356,
465       356,  356,  356,  356,  360,   10,  360,  369,   10,  369,
466       369,  369,  367,  369,  369,  373,   10,  373,  384,   10,
467       384,  384,  384,  382,  384,  384,  384,  388,   10,  388,
468       415,   10,  415,  415,  415,  413,  415,  415,  415,  415,
469       419,   10,  419,  419,  432,   10,  432,  432,  432,  430,
470       432,  432,  436,   10,  436,  594,  436,  453,   10,  453,
471       453,  453,  451,  453,  453,  453,  457,   10,  457,  457,
472       470,   10,  470,  470,  470,  468,  470,  470,  474,   10,
473       474,  483,   10,  483,  483,  483,  481,  483,  483,  487,
474
475        10,  487,  487,  500,   10,  500,  500,  500,  498,  500,
476       500,  500,  504,   10,  504,  504,  521,   10,  521,  521,
477       521,  519,  521,  521,  521,  521,  521,  525,   10,  525,
478       594,  525,  532,   10,  532,  532,  532,  530,  532,  536,
479        10,  536,  543,   10,  543,  543,  543,  541,  543,  547,
480        10,  547,  547,  556,   10,  556,  556,  556,  554,  556,
481       556,  560,   10,  560,  569,   10,  569,  569,  569,  567,
482       569,  569,  573,   10,  573,   10,    0,    2,    2,    0,
483         4,    7,  585,  584,    0,    0,    0,    0,    0,    0,
484         0,   21,   23,   23,    0,    0,    0,    0,    0,    0,
485
486         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
487         0,    0,    0,    0,    0,    0,    0,    0,   32,   34,
488        34,    0,   47,   49,   49,   49,   49,    0,    0,    0,
489        77,   79,   79,   79,   79,   79,   79,   79,   79,   79,
490         0,  100,  102,  102,  102,  102,    0,  129,  131,  131,
491       131,    0,    0,    0,    0,    0,    0,    0,    0,    0,
492         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
493       148,  150,  150,  150,  150,  150,    0,    0,  161,  163,
494       163,  163,    0,  174,  176,  176,  176,    0,  203,  205,
495       205,  205,  205,  205,  205,  205,    0,    0,  222,  224,
496
497       224,  224,  224,  224,    0,  233,  235,  235,    0,  248,
498       250,  250,  250,  250,    0,  307,  309,  309,  309,  309,
499       309,  309,  309,  309,  309,  309,  309,  309,  309,  309,
500       309,  309,  309,    0,  330,  332,  332,  332,  332,  332,
501       332,  332,  332,    0,  355,  357,  357,  357,  357,  357,
502       357,  357,  357,    0,  368,  370,  370,  370,    0,  383,
503       385,  385,  385,  385,    0,  414,  416,  416,  416,  416,
504       416,  416,    0,  431,  433,  433,  433,  433,    0,    0,
505       452,  454,  454,  454,  454,  454,    0,  469,  471,  471,
506       471,    0,  482,  484,  484,  484,    0,  499,  501,  501,
507
508       501,  501,    0,  520,  522,  522,  522,  522,  522,  522,
509         0,    0,  531,  533,  533,    0,  542,  544,  544,    0,
510       555,  557,  557,  557,    0,  568,  570,  570,  570,    0,
511         0,    0,    0,    0,    3,    0,    0,    0,    0,    0,
512         0,    0,  592,    0,   23,    0,    0,  107,    0,    0,
513         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
514         0,    0,    0,    0,    0,    0,    0,    0,    0,  106,
515         0,    0,    0,    0,    0,    0,   34,    0,    0,   49,
516         0,    0,   49,    0,    0,    0,  587,   79,    0,    0,
517        79,   79,   79,   79,   79,   79,    0,    0,  102,  102,
518
519       102,    0,    0,    0,    0,  131,    0,    0,  107,    0,
520         0,    0,    0,    0,    0,    0,    0,  106,    0,    0,
521         0,    0,  150,    0,    0,  150,  150,    0,    0,    0,
522       163,  163,    0,    0,  176,  176,    0,    0,  205,  205,
523       205,    0,    0,  205,  205,  205,    0,    0,    0,    0,
524       224,  224,    0,    0,  224,    0,    0,  235,    0,    0,
525       250,    0,    0,    0,    0,    0,    0,  309,  309,    0,
526         0,  309,    0,    0,  309,  309,  309,  309,  309,  309,
527       309,  309,  309,  309,  309,    0,    0,    0,    0,    0,
528         0,  332,  332,  332,  332,  332,    0,    0,  357,  357,
529
530       357,    0,    0,  357,  357,  357,    0,    0,  370,    0,
531         0,    0,    0,  385,    0,    0,  385,    0,    0,  416,
532         0,    0,  416,  416,  416,    0,    0,  433,  433,  433,
533         0,    0,    0,  454,  454,  454,  454,    0,    0,  471,
534         0,    0,    0,    0,  484,  484,    0,    0,  501,  501,
535       501,    0,    0,  522,  522,  522,  522,  522,    0,    0,
536         0,  533,    0,    0,    0,    0,    0,    0,    0,    0,
537       557,    0,    0,    0,    0,  570,    0,    0,    0,   14,
538         1,    0,    0,  580,    0,    0,    0,  577,  576,    0,
539         0,   23,    0,    0,   25,    0,  107,    0,    0,    0,
540
541         0,    0,    0,    0,  228,    0,    0,    0,    0,    0,
542         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
543       106,    0,    0,    0,    0,    0,    0,   34,    0,    0,
544        36,    0,   49,    0,   41,   40,   49,    0,    0,    0,
545        51,    0,   79,    0,   55,   54,    0,    0,   79,    0,
546         0,   79,   79,   79,    0,    0,   81,    0,  102,  102,
547       102,    0,    0,  104,    0,    0,  109,  108,  131,    0,
548         0,  133,    0,    0,    0,    0,  229,    0,    0,    0,
549         0,    0,    0,    0,    0,    0,  150,    0,  138,  137,
550       150,  150,    0,    0,  152,    0,    0,  163,  163,    0,
551
552         0,  165,    0,  176,  176,    0,    0,  178,    0,  205,
553       205,  205,    0,  183,  182,  205,  205,  205,    0,    0,
554       207,    0,    0,    0,  224,  224,    0,  212,  211,  224,
555         0,    0,  226,    0,  235,    0,    0,  237,    0,  250,
556         0,  242,  241,    0,  244,  243,    0,    0,  252,    0,
557       309,  309,  309,  309,    0,  269,  268,  309,    0,  257,
558       256,    0,    0,  309,  309,  309,  309,  309,  309,  309,
559       309,  309,  309,    0,    0,  311,    0,    0,  326,  325,
560         0,  316,  315,    0,    0,  332,  332,  332,  332,    0,
561         0,  334,    0,  357,  357,  357,  357,    0,  339,  338,
562
563         0,    0,  357,  357,    0,    0,  359,    0,  370,    0,
564       364,  363,    0,    0,  372,    0,  385,    0,  377,  376,
565       385,    0,    0,  387,    0,  416,    0,  392,  391,  416,
566       416,  416,    0,    0,  418,    0,    0,    0,    0,    0,
567       433,    0,    0,  435,    0,    0,    0,    0,  454,  454,
568         0,    0,  454,    0,    0,  456,    0,  471,    0,  461,
569       460,    0,    0,  473,    0,    0,    0,    0,    0,    0,
570         0,  486,    0,    0,    0,  501,  501,    0,    0,    0,
571         0,  503,    0,  522,  522,  522,  522,  522,    0,    0,
572       524,    0,    0,  533,    0,    0,  535,    0,    0,  540,
573
574       539,    0,    0,  546,    0,    0,  551,  550,  557,    0,
575         0,  559,    0,    0,  564,  563,  570,    0,    0,  572,
576         0,    0,    0,  581,  575,    0,    0,    0,   23,    0,
577         0,    0,    0,    0,    0,    0,    0,  228,  180,    0,
578       389,    0,    0,    0,  337,    0,    0,  548,    0,    0,
579         0,    0,    0,    0,    0,    0,    0,  336,    0,    0,
580         0,    0,    0,    0,    0,   49,    0,    0,   79,    0,
581        59,   58,    0,    0,    0,   57,   56,   79,    0,    0,
582        79,    0,  102,    0,    0,  102,    0,  131,    0,  132,
583         0,    0,    0,  229,  181,  390,  549,    0,    0,    0,
584
585         0,    0,    0,  150,  150,    0,    0,    0,    0,    0,
586         0,  163,    0,    0,    0,  176,    0,  205,  205,    0,
587         0,  205,  205,  205,    0,    0,    0,  224,  224,  224,
588         0,    0,    0,    0,    0,    0,    0,  309,  309,  309,
589       309,    0,    0,    0,  271,  270,  309,  309,  309,  309,
590       309,  309,  309,  309,  309,  309,  309,    0,    0,  328,
591       327,  332,  332,  332,  332,    0,  357,  357,  357,  357,
592         0,  347,  346,  357,  357,    0,  370,    0,  385,  385,
593         0,  416,  416,  416,  416,    0,    0,  425,  424,    0,
594       423,  422,  433,    0,  389,    0,  442,  441,  454,  454,
595
596         0,  440,  439,  454,    0,  471,    0,    0,  480,  479,
597         0,  478,  477,    0,    0,  493,  492,  501,  501,    0,
598       491,  490,    0,  522,    0,    0,  522,  522,  522,    0,
599         0,  533,    0,    0,  557,    0,  570,    0,    0,    0,
600         0,   12,    0,  578,  579,    0,   23,    0,    0,    0,
601         0,    0,    0,    0,    0,  180,    0,    0,  389,    0,
602         0,  154,    0,  337,    0,    0,  548,    0,  420,    0,
603        39,    0,    0,    0,    0,    0,  336,    0,   38,    0,
604        30,   29,    0,    0,   43,   42,   49,    0,    0,   79,
605         0,   61,   60,   79,    0,   65,   64,   79,    0,  102,
606
607         0,    0,    0,    0,    0,    0,  131,    0,    0,    0,
608       181,    0,  390,  549,  421,    0,    0,    0,  421,  420,
609       150,    0,    0,    0,  142,  141,    0,    0,    0,  159,
610       158,  163,    0,    0,  172,  171,  176,    0,  205,  205,
611         0,  187,  186,    0,    0,  205,    0,    0,  205,    0,
612       155,    0,  224,  224,  224,    0,    0,  231,  230,    0,
613       236,    0,  246,  245,    0,  309,    0,    0,  309,  309,
614         0,  267,  266,  309,  309,    0,    0,  309,  309,  309,
615       309,  309,  309,  309,  309,    0,    0,    0,  332,  332,
616       332,    0,  357,    0,    0,  357,  357,    0,    0,  357,
617
618         0,  370,    0,  385,  385,    0,  416,  416,  416,    0,
619         0,  416,    0,  433,    0,    0,  454,  454,  454,    0,
620       471,    0,    0,  501,  501,    0,  522,    0,  508,  507,
621       522,  522,  522,    0,    0,    0,    0,    0,    0,    0,
622         0,    0,    0,    0,    0,    0,    0,    0,   11,    0,
623        23,    0,    0,    0,    0,    0,    0,    0,  538,    0,
624         0,    0,    0,  154,    0,    0,    0,   53,  420,  361,
625         0,   39,    0,  537,   52,    0,    0,    0,    0,   38,
626         0,    0,   49,    0,    0,   79,   79,   79,    0,  102,
627         0,    0,    0,    0,    0,    0,    0,    0,    0,   96,
628
629        95,    0,  131,    0,    0,    0,    0,  421,  362,    0,
630         0,    0,  150,    0,  140,  139,    0,    0,  163,    0,
631         0,    0,    0,  205,  205,    0,  185,  184,    0,    0,
632         0,    0,    0,  205,    0,  206,  155,    0,    0,    0,
633       224,    0,    0,    0,    0,  309,    0,  287,  286,    0,
634         0,  309,  309,  309,    0,  265,  264,    0,    0,  309,
635       309,  309,  309,    0,    0,  309,  309,    0,    0,  324,
636       323,    0,    0,  332,    0,    0,    0,  357,    0,  343,
637       342,    0,    0,  357,    0,  341,  340,  357,    0,  358,
638       370,    0,  385,  385,    0,  416,  416,  416,    0,    0,
639
640         0,  416,    0,  417,  433,    0,    0,    0,    0,    0,
641         0,  454,    0,  471,    0,    0,    0,    0,    0,    0,
642         0,  522,  522,  522,  522,    0,    0,    0,  529,  528,
643         0,    0,    0,  553,  552,    0,  558,    0,  566,  565,
644         0,    0,    0,    0,    0,    0,    0,    0,  437,    0,
645         0,    0,    0,  314,  255,  538,    0,   28,    0,    0,
646         0,    0,  506,   53,  361,  209,    0,  537,   52,  313,
647       254,   27,  505,    0,    0,   49,    0,    0,   50,   79,
648         0,    0,   79,    0,    0,    0,    0,    0,    0,    0,
649         0,    0,    0,    0,    0,    0,    0,    0,    0,  438,
650
651         0,    0,    0,    0,  362,  210,    0,    0,  150,    0,
652         0,  163,    0,  164,    0,  170,  169,    0,  205,  205,
653         0,  201,  200,    0,    0,  205,    0,    0,  220,  219,
654         0,    0,  224,    0,  214,  213,    0,    0,  309,    0,
655       289,  288,  309,  309,  309,    0,  259,  258,    0,    0,
656       309,  309,  309,    0,  261,  260,  309,  309,    0,    0,
657       318,  317,    0,    0,    0,  320,  319,    0,  357,    0,
658       345,  344,  357,  357,  370,    0,  385,    0,    0,    0,
659       416,    0,    0,  416,  416,    0,    0,  416,  433,    0,
660       434,    0,    0,  446,  445,    0,  444,  443,  454,    0,
661
662       471,    0,    0,    0,  497,  496,    0,  495,  494,    0,
663       522,  522,  522,  522,    0,    0,    0,    0,    0,    0,
664         0,    0,   17,    0,   19,   18,    0,  437,  526,  374,
665         0,    0,  314,  255,    0,   28,  458,    0,  167,   16,
666       506,  209,    0,    0,  313,  254,   27,  505,    0,    0,
667        49,  586,   79,    0,   67,   66,   79,    0,   80,    0,
668        98,   97,    0,    0,    0,    0,    0,    0,    0,    0,
669         0,    0,    0,    0,    0,    0,  438,  375,    0,    0,
670         0,  210,    0,    0,  144,  143,  150,    0,    0,  163,
671         0,  205,  205,    0,    0,    0,    0,  205,  168,    0,
672
673       216,  215,  224,    0,    0,  309,  309,  309,  309,    0,
674       263,  262,  309,  309,  309,  309,    0,    0,    0,    0,
675       322,  321,    0,  357,  357,  357,  370,    0,  371,  385,
676         0,  381,  380,    0,  416,    0,  398,  397,  416,  416,
677         0,    0,    0,    0,  416,  433,  459,  454,    0,  471,
678         0,    0,    0,    0,    0,  522,  522,  522,    0,  527,
679         0,    0,  545,    0,    0,    0,    0,   17,    0,  526,
680       374,    0,    0,  239,  458,    0,  167,   16,    0,    0,
681         0,    0,   35,   49,    0,    0,   79,    0,    0,    0,
682         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
683
684         0,    0,    0,    0,    0,    0,    0,    0,  375,    0,
685         0,  240,    0,  150,    0,    0,    0,    0,    0,  205,
686       205,    0,  193,    0,  192,  205,  168,  224,    0,  225,
687         0,  309,  309,  309,  309,  309,    0,    0,  309,  309,
688       309,    0,    0,    0,    0,  310,    0,  333,  357,  357,
689       357,  370,    0,    0,    0,    0,    0,  416,  416,  416,
690         0,  402,    0,  401,  416,  433,  459,  454,    0,  455,
691         0,    0,    0,    0,    0,    0,  510,  509,    0,    0,
692       522,  522,    0,  523,  527,    0,    0,    0,    0,    0,
693         0,   24,    0,    0,  239,  561,    0,    0,    0,   49,
694
695         0,    0,    0,   79,    0,    0,    0,    0,    0,    0,
696         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
697         0,    0,    0,    0,    0,    0,    0,    0,    0,  240,
698         0,  150,    0,  562,    0,  157,  156,    0,  177,  205,
699       205,  195,  194,    0,    0,  224,    0,  309,  309,  309,
700       309,  309,    0,  299,  298,  309,    0,    0,  309,    0,
701         0,    0,    0,  357,  357,    0,    0,  370,    0,  379,
702       378,    0,  386,    0,  394,  393,  416,  416,  416,  404,
703       403,    0,    0,  433,  454,    0,    0,    0,    0,  472,
704         0,    0,    0,  514,  513,    0,    0,    0,    0,    0,
705
706       534,    0,    0,    0,    0,    0,  475,  561,    0,    0,
707         0,    0,    0,    0,    0,    0,    0,    0,    0,   79,
708         0,    0,    0,    0,   88,    0,    0,    0,    0,   87,
709         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
710         0,    0,    0,    0,  476,    0,  150,    0,  562,  205,
711         0,    0,    0,  197,  196,  224,    0,  251,  309,  309,
712       309,    0,    0,  309,  309,    0,  297,  296,  309,    0,
713         0,    0,    0,    0,    0,  357,    0,    0,    0,  353,
714       352,    0,    0,  416,  416,  416,    0,  406,  405,    0,
715         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
716
717         0,    0,    0,    0,    0,  512,  511,    0,    0,    0,
718         0,    0,  475,  135,    0,    0,    0,   45,   44,    0,
719         0,    0,    0,    0,    0,    0,    0,   79,    0,    0,
720         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
721         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
722       476,  136,    0,    0,    0,    0,    0,  205,    0,  199,
723       198,    0,    0,  309,  309,    0,    0,    0,  303,  302,
724         0,    0,  309,  309,    0,    0,    0,    0,    0,    0,
725       357,    0,  349,  348,    0,  366,  365,  416,    0,    0,
726       416,    0,    0,    0,    0,    0,    0,    0,    0,    0,
727
728         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
729       571,    0,    0,    0,    0,  488,  135,   84,   83,    0,
730         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
731         0,   94,    0,    0,    0,   93,    0,    0,    0,    0,
732         0,  111,  119,    0,    0,    0,    0,  110,  118,    0,
733       489,  136,    0,  146,  145,    0,    0,  189,  188,  205,
734         0,  218,  217,  309,  309,    0,  301,  300,    0,  305,
735       304,  309,  309,    0,    0,    0,    0,    0,    0,  357,
736       416,    0,  400,  399,  416,    0,    0,    0,    0,    0,
737         0,    0,    0,    0,    0,  463,    0,    0,  462,    0,
738
739       485,    0,    0,    0,    0,    0,    0,    0,    0,    0,
740         0,    0,  488,   84,   83,    0,    0,    0,    0,    0,
741         0,    0,    0,    0,   63,   62,    0,    0,    0,    0,
742         0,    0,    0,    0,    0,  113,    0,    0,    0,  112,
743         0,  489,    0,  151,  205,  309,  309,    0,    0,  309,
744         0,  279,    0,    0,  278,    0,  357,    0,    0,    0,
745         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
746         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
747         0,    0,    0,    0,    0,   75,   71,    0,    0,   74,
748        70,    0,   92,    0,    0,   91,    0,    0,    0,  103,
749
750         0,    0,    0,    0,    0,    0,  205,  309,  309,    0,
751         0,    0,    0,    0,    0,  281,    0,  280,  357,    0,
752       396,  395,    0,    0,    0,  429,    0,  428,    0,  450,
753         0,  449,    0,  465,  467,  464,  466,    0,  502,  516,
754         0,  515,    0,    0,    0,    0,   12,    0,   12,    0,
755         0,    0,    0,    0,   86,   90,   85,   89,  123,    0,
756         0,  121,  122,    0,    0,  120,  205,  309,  309,    0,
757         0,    0,    0,    0,  285,  284,    0,    0,  357,    0,
758         0,    0,    0,  427,  426,  448,  447,    0,    0,    0,
759         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
760
761       115,    0,    0,    0,  114,    0,    0,    0,    0,    0,
762         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
763         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
764         0,    0,   69,    0,   68,    0,    0,    0,    0,    0,
765         0,    0,    0,  191,  190,    0,  295,  294,    0,    0,
766         0,    0,    0,    0,    0,    0,    0,  283,  282,    0,
767       351,  350,    0,    0,    0,    0,    0,    0,    0,    0,
768         0,   11,    0,    0,    0,    0,    0,    0,    0,    0,
769         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
770         0,    0,    0,    0,    0,    0,  518,  517,    0,   73,
771
772        72,    0,    0,    0,    0,    0,    0,    0,    0,    0,
773         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
774         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
775         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
776         0,    0,    0,    0,    0,    0,    0,    0,  125,  117,
777         0,  124,  116,    0,    0,    0,    0,    0,    0,  273,
778         0,    0,  272,    0,    0,  408,    0,    0,  407,    0,
779         0,    0,    0,    0,    0,    0,  277,    0,  276,    0,
780       410,    0,  409,    0,    0,    0,    0,    0,    0,    0,
781         0,    0,    0,    0,    0,    0,  127,  126,    0,  291,
782
783         0,  290,    0,    0,    0,    0,    0,    0,  293,  292,
784       275,  274,  412,  411,    0,    0,    0,    0,    0,    0,
785         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
786         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
787         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
788         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
789         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
790         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
791         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
792         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
793
794        13,    0
795     } ;
796
797 static yyconst flex_int32_t yy_ec[256] =
798     {   0,
799         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
800         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
801         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
802         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
803         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
804        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
805        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
806        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
807        31,   38,   39,   40,   41,   42,   43,   44,   45,   31,
808        46,    1,   47,    1,   48,    1,   49,   50,   51,   52,
809
810        53,   54,   55,   56,   57,   58,   59,   60,   61,   62,
811        63,   64,   65,   66,   67,   68,   69,   70,   71,   72,
812        73,   74,    1,    1,    1,    1,    1,    1,    1,    1,
813         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
814         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
815         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
816         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
817         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
818         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
819         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
820
821         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
822         1,    1,    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
827     } ;
828
829 static yyconst flex_int32_t yy_meta[75] =
830     {   0,
831         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
832         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
833         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
834         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
835         5,    5,    5,    5,    5,    1,    1,    5,    9,    9,
836         9,    9,    9,    9,    5,    5,    5,    5,    5,    5,
837         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
838         5,    5,    5,    5
839     } ;
840
841 static yyconst flex_int16_t yy_base[4015] =
842     {   0,
843         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
844        14,   17,   33,   36,   49,   55,   45,   61,   66,   72,
845       108,  178,   75,   78,   83,  128,  131,  134,  138,  141,
846       158,  198,  201,  204,  208,  211,  228,  231,  234,  237,
847       240,  257,  275,  329,  295,  298,  301,  305,  308,  349,
848       352,  355,  383,  447,  360,  416,  511,  578,  407,  410,
849       645,  713,  413,  467,  781,  847,  470,  473,  477,  480,
850       531,  534,  537,  541,  544,  598,  601,  604,  608,  611,
851       665,  668,  671,  675,  678,  733,  736,  739,  743,  746,
852       801,  804,  807,  811,  814,  867,  870,  873,  877,  880,
853
854       897,  903,  921,  988,  941,  944,  947,  951, 1008, 1011,
855      1014, 1018, 1055, 1122, 1075, 1078, 1189, 1257, 1081, 1085,
856      1325, 1392, 1088, 1142, 1145, 1148, 1152, 1155, 1209, 1212,
857      1459, 1527, 1215, 1219, 1222, 1277, 1280, 1283, 1287, 1290,
858      1595, 1657, 1345, 1348, 1719, 1788, 1351, 1355, 1857,    0,
859      1412, 1415, 1418, 1422, 1479, 1482, 1485, 1489, 1931, 1998,
860      1547, 1550, 2065, 2132, 1553, 1557, 2199, 2256, 1615, 1618,
861      2313, 2373, 1621, 1625, 2433, 2500, 1628, 1677, 1680, 1683,
862      1687, 1690, 1739, 1742, 2567, 2634, 1745, 1749, 1752, 1808,
863      1811, 1814, 1818, 1821, 2701, 2768, 1951, 1954, 1957, 1961,
864
865      1964, 2018, 2021, 2024, 2835, 2892, 2028, 2031, 2949, 3016,
866      2085, 2088, 2091, 2095, 2152, 2155, 2158, 2162, 3083, 3150,
867      2219, 2222, 2225, 2229, 2276, 2279, 2282, 2286, 3217, 3284,
868      2333, 2336, 2339, 2343, 2346, 2393, 2396, 2399, 3351, 3421,
869      2403, 2406, 3491, 3548, 2453, 2456, 2459, 2463, 2466, 2520,
870      2523, 2526, 3605, 3675, 2530, 2533, 3745, 3815, 2587, 2590,
871         0,    0, 9512,12639,12639,   95,  100,   29,   41,12639,
872       103,   51,12639,12639, 9493,12639,12639, 9482,12639, 9497,
873      9493,  202,12639,12639,12639,12639, 9491, 9491, 9442,  153,
874     12639,  161, 9468,    0,  145,12639, 9434,12639,  165, 3881,
875
876        73, 2599,  315,  357, 9470, 9417,12639,  168, 9460,    0,
877       152,12639, 9418,12639,  261, 9462,   31,12639,  266, 9453,
878         0,  245,12639, 9411, 9415, 9413,  421, 9414,12639,  269,
879      9440,    0,  340,12639, 9406, 9402,  271, 9404,  238,12639,
880       441,  484,12639,  504, 9432,    0,  401,12639, 9387, 9389,
881      9379,12639,  561,  548,12639,  571, 9420,    0,  481,12639,
882      9387, 9375,12639,  628, 3945, 9369,  163, 2533,  567,  206,
883        38, 9420,  954, 2607,  639,  907,  437,   79,12639,  634,
884      9411,    0,  546,12639, 9363, 9373, 9361, 9362,12639,  638,
885       313,  559,  368,12639,  697, 9398,    0,  549,12639, 9368,
886
887      9344,12639,  704,  750,12639,  707, 9391,    0,  747,12639,
888      9361, 9332,12639,  771,  758,12639,  774, 9384,    0,  748,
889     12639, 9333, 9335, 9345,  251, 9328,12639,  831,  429, 9330,
890       497,12639,  837, 9370,    0,  815,12639, 9321, 9321, 9331,
891      9309,12639,  840,  530,  564,12639,  906, 9357,    0,  816,
892     12639, 9327,12639,  914,  891,12639,  977, 9355,    0,  825,
893     12639, 9307, 9317, 9304,12639,  981,  965,12639, 1021, 9343,
894         0,  881,12639, 9292,  203, 9298, 9304,  970,   85,  429,
895       972, 9292,12639, 1040,  814,  833,12639, 1044, 9334,    0,
896       953,12639, 9278, 9296, 9298,  157, 9293, 9272,12639, 1048,
897
898      1092,12639, 1105, 9320,    0,  966,12639, 9265, 9263, 9270,
899      9276, 9278, 9263, 9253,12639, 1108, 1093,12639, 1116, 9300,
900         0, 1032,12639, 9256, 9262,12639, 1172, 1159,12639, 1175,
901      9293,    0, 1033,12639, 9263, 9255, 9257,12639, 1179, 1226,
902     12639, 1183, 9285,    0, 1095,12639, 8684, 8680, 8681,   15,
903     12639, 1239,  899, 1074,12639, 1242, 8709,    0, 1167,12639,
904      8661,  181,12639, 1246, 1242,  367,  303,12639, 1307, 8707,
905         0, 1234,12639, 8659, 8654,  299,12639, 1310, 1310,  350,
906     12639, 1313, 8704,    0, 1302,12639, 8665, 8669,12639, 1358,
907      1363,12639, 1377, 8699,    0, 1362,12639, 8644, 8644,12639,
908
909      1383, 1430,  370,12639, 1425, 8688,    0, 1426,12639, 8633,
910      8627, 8631,12639, 1442, 1436,  488,12639, 1448, 8675,    0,
911      1432,12639, 8621, 8626, 8630, 8619, 8611,12639, 1509, 1445,
912       560, 1103,12639, 1515, 8655,    0, 1494,12639, 8624,12639,
913      1518, 1558,12639, 1521, 8652,    0, 1559,12639, 8610,12639,
914      1579, 1141, 1344,12639, 1583, 8631,    0, 1567,12639, 8598,
915      8591,12639, 1587, 1632,12639, 1590, 8619,    0, 1629,12639,
916      8585, 8580,12639, 1645, 1633, 1707,  677, 8555,12639, 8614,
917      8602,12639,12639,12639, 1700,  375, 8549, 8548, 8536, 8584,
918      8538,12639,    0, 8526, 8522, 8546, 8511,  104, 1328, 8512,
919
920      8511, 8507, 8511,  621, 1646,  695, 8498, 8491, 1701,  912,
921      8515, 1719, 8489, 1709, 8466, 1724, 1777, 1778,12639,    0,
922      8471, 8472,12639,    0, 8464, 2098, 8456,  666, 8453, 8499,
923     12639,    0, 8443, 2165, 8432, 8444, 8430, 8436, 8433, 8433,
924      8418,12639,    0, 8429, 8419, 8430, 8404,12639,    0, 2232,
925      8398, 8444, 8425,  172, 8391, 8391, 8395, 1788, 1171, 8375,
926      1789, 8399,  707,  814,  841, 1022, 1577, 1913, 1639, 1179,
927     12639,    0, 8362, 2289, 8366, 8343, 8348,  889,12639,    0,
928      8335, 8328, 8329,12639,    0, 8318, 8314, 8315,12639,    0,
929      8326,  826, 2596, 8302, 8300, 8308, 8298,  897,12639,    0,
930
931      8280, 8284, 2614, 8279, 8274,12639,    0, 8276, 8280,12639,
932         0, 8253, 2656, 2666, 8267,12639,    0, 8268, 8268, 2674,
933      8237, 2680, 8234, 8239, 8232, 8223, 8239, 8234, 8215, 8231,
934      8229, 8223, 8211, 8216,12639,    0, 2721, 2724, 8196, 8188,
935      8205, 8194, 8191, 8192,12639,    0, 8174, 8174, 8156, 2727,
936      8148, 8143, 8162, 8125,12639,    0, 8125, 2730, 8120,12639,
937         0, 8118, 2733, 8110, 8123,12639,    0, 8110, 2788, 8102,
938      8113, 8112, 8099,12639,    0, 8085, 8100, 8085, 8079, 8086,
939     12639,    0, 8067, 8086, 8077, 8065, 8103,12639,    0, 8057,
940      2791, 8058,12639,    0, 8045, 8059, 8055,12639,    0, 8036,
941
942      8045, 8041, 8040,12639,    0, 8023, 8017, 8018, 8029, 8017,
943      7981, 7977,12639,    0, 7965, 7969,12639,    0, 2794, 7966,
944     12639,    0, 2797, 7955, 7939,12639,    0, 2800, 7942, 7931,
945      7971, 7971, 1615, 7919,12639, 1970,    0, 7906, 7906, 7950,
946      7941, 7893,12639, 7902, 7883, 2600, 2855, 1714, 7893, 7889,
947      7875, 7887, 7863, 7869, 7857, 7834, 7849, 7836,  458, 7825,
948      7839, 7839, 7824, 7818, 7786, 7790, 7800, 7783, 7781, 1990,
949      7792, 7755, 7772, 7760, 7749, 7761, 7749, 2858, 2863, 7748,
950      2866, 2048, 7742, 7774, 2869, 2914,12639, 7743, 2917, 2117,
951      2924, 7732, 2927, 7736, 7739, 7729, 2920, 2983, 7715, 7722,
952
953      7722, 2969, 2972, 2975, 2184, 7703, 2979, 3037, 2363, 7719,
954      7704, 7687, 7688, 7683, 7681, 7673, 7670, 2423, 7668, 7666,
955      7656, 7655, 7650, 3040, 2550, 7664, 7662, 3044, 3047,  868,
956      7654, 7640, 3050, 3103, 7648, 7647, 3106, 3114, 7637, 7623,
957      7634, 3109, 2621, 7632, 7635, 7614, 3117, 3129, 1204, 7609,
958      7627, 7600, 3170, 2685, 7614, 3173, 3180, 7612, 3183, 3242,
959      7602, 3176, 2755, 3237, 2822, 3247, 3250, 7605, 1993, 3255,
960      3002, 7608, 3305, 3069, 3308, 7598, 7583, 7593, 7590, 7582,
961      7570, 7556, 7553, 7562, 7552, 3312, 3315, 3318, 3137, 3374,
962      3204, 3377, 3384, 3397, 3387, 3453, 3443, 3467, 7556,   37,
963
964      7532, 3446, 3405, 3456, 7544, 7514, 3511, 3519, 7515, 3515,
965      3474, 3522, 3525, 7527, 3571, 3574, 7525, 3582, 3625, 7515,
966      3628, 3594, 7513, 7495, 7492, 3633, 3640, 3636, 3646, 3654,
967      3696, 3704, 7496, 3699, 3709, 3723, 3770, 3766, 3775, 7496,
968      3778, 3727, 3781, 3835, 3838, 3841, 3844, 3847, 3850, 3872,
969      3875, 3878, 3885, 7497, 7477, 7484, 7488, 7469, 3893, 3897,
970      7472, 7456, 3905, 3908, 3949, 3735, 3952, 3957, 3967, 3801,
971      7454, 3977, 3987, 3980, 3912, 7453, 4012, 4015, 7500,12639,
972     12639, 1141, 7455,12639, 7497, 7486, 7435,12639,12639, 7429,
973      7428, 7437, 4019, 4022,12639, 4025, 1848, 7422, 7406, 7406,
974
975      7407, 7397, 7386, 7397, 2250, 7373, 7379, 7379, 7375, 7362,
976      7359, 7355, 7342, 1450, 7356, 7335, 7336, 7329, 7324, 7324,
977      2307, 7317, 7305, 7311, 7303, 1782, 7317, 4044, 4034, 4047,
978     12639, 4053, 4056, 4062,12639,12639, 4077, 7341, 4080, 4083,
979     12639, 4086, 7269, 4089,12639,12639, 4105, 4108, 4117, 4123,
980      4128, 7283, 4141, 7275, 4144, 4147,12639, 4150, 7273, 4153,
981      7265, 4159, 4171,12639, 4174, 4178,12639,12639, 7256, 4186,
982      4193,12639, 4196, 7242, 7244, 7248, 2483, 7228, 7235, 2054,
983      7224, 7225, 7226, 7224, 7201, 7200, 7213, 4199,12639,12639,
984      7190, 4207, 4215, 4218,12639, 4225, 7195, 4228, 4237, 4240,
985
986      4246,12639, 4249, 4255, 4259, 4273, 4277,12639, 4280, 7182,
987      7189, 4268, 4292,12639,12639, 7173, 7170, 7180, 4288, 4300,
988     12639, 4303, 7170, 7158, 7169, 7161, 4307,12639,12639, 7183,
989      4322, 4325,12639, 4329, 4332, 4335, 4354,12639, 4357, 4350,
990      4362,12639,12639, 4376,12639,12639, 4384, 4387,12639, 4391,
991      7143, 7130, 7146, 7137, 4394,12639,12639, 4406, 4410,12639,
992     12639, 4418, 4425, 7113, 7126, 7108, 7116, 7120, 7109, 7103,
993      7106, 7099,  637, 4436, 4439,12639, 4442, 4445,12639,12639,
994      4461,12639,12639, 4469, 4472, 7088, 7081, 7086, 7074, 4480,
995      4483,12639, 4487, 7069, 7030, 7011, 7020, 4490,12639,12639,
996
997      4502, 4506, 6984, 6993, 4514, 4520,12639, 4523, 6989, 4526,
998     12639,12639, 4542, 4545,12639, 4548, 6963, 4551,12639,12639,
999      6969, 4567, 4570,12639, 4575, 6946, 4579,12639,12639, 6914,
1000      6916, 6919, 4589, 4594,12639, 4598, 4601, 4604, 4619, 4625,
1001      6900, 4633, 4637,12639, 4641, 6859, 4644, 4662, 6823, 6812,
1002      4648, 4670, 6767, 4678, 4681,12639, 4684, 6711, 4687,12639,
1003     12639, 4703, 4709,12639, 4712, 4715, 4718, 4733, 4736, 4744,
1004      4751,12639, 4755, 4758, 4763, 6679, 6663, 4776, 4779, 4787,
1005      4790,12639, 4794, 6650, 4797, 6637, 6613, 6541, 4800, 4809,
1006     12639, 4819, 6534, 6537, 4822, 4828,12639, 4831, 4834,12639,
1007
1008     12639, 4842, 4850,12639, 4853, 4857,12639,12639, 6530, 4865,
1009      4872,12639, 4875, 4885,12639,12639, 6481, 4894, 4897,12639,
1010      4900, 1280, 4903,12639,12639, 6511, 6486, 6430, 6416, 4906,
1011      6352, 6338, 6269, 6235, 6235, 6164, 6154, 2492, 2495,   20,
1012      2559,  134,  249,  294, 2562,  345,  352, 2662,  383,  444,
1013       450,  497,  561,  580,  667,  697,  698, 2693,  744,  759,
1014      4909, 4927, 4937, 4940, 4944,  771,  802, 4952,  782, 4958,
1015     12639,12639, 4966, 4973, 4984,12639,12639,  981, 4992, 4996,
1016       978, 5004, 1032, 5010, 5013, 5023, 5028, 1059, 5031,12639,
1017      1093, 1179, 1165, 2763, 3010, 3077, 2830, 1200, 1239, 1229,
1018
1019      1230, 1246, 1265, 1259, 5034, 5041, 5055, 5063, 1264, 5066,
1020      5069, 1286, 5078, 5084, 5087, 1312, 5097, 1316, 1333, 5102,
1021      5105, 5116, 1370, 5120, 5123, 1364, 1368, 1379, 1392, 1403,
1022      5128, 5134, 5143, 5152, 5155, 5160, 5173, 1409, 5176, 1407,
1023      1446, 5179, 5183, 5197,12639,12639, 1449, 1477, 5205, 1471,
1024      1509, 1496, 1504, 1519, 1497, 1513, 1548, 5208, 5211,12639,
1025     12639, 5219, 5223, 5227, 5230, 5233, 1603, 5241, 1587, 1599,
1026      5248,12639,12639, 5259, 1625, 5262, 1639, 5265, 1640, 1649,
1027      5268, 1650, 1684, 1696, 5277, 5289, 5295,12639,12639, 5304,
1028     12639,12639, 1691, 5312, 3212, 5315,12639,12639, 1706, 1726,
1029
1030      5332,12639,12639, 1710, 5327, 1713, 5340, 5347,12639,12639,
1031      5355,12639,12639, 5363, 5366,12639,12639, 1715, 1734, 5375,
1032     12639,12639, 5383, 1729, 5389, 5392, 1736, 1762, 1779, 5402,
1033      1767, 5407, 5411, 5414, 5417, 5421, 5425, 5435, 1951, 1827,
1034      5443,12639, 1833,12639,12639, 1793, 1885, 5446, 1902, 1921,
1035      1917, 1919, 1936, 1937, 1959, 3275, 1969, 1985, 3279, 1987,
1036      1992, 3342, 1992, 3346, 1984, 1992, 3380, 2000, 3415, 2008,
1037      3482, 2026, 2035, 2051, 2054, 2056, 3450, 2043, 3666, 5455,
1038     12639,12639, 5467, 5470,12639,12639, 2067, 2087, 5479, 2060,
1039      5488,12639,12639, 2070, 5499,12639,12639, 2061, 5507, 2080,
1040
1041      5512, 2851, 3032, 5520, 5531, 5526, 2108, 2103, 2109, 2107,
1042      3486, 2115, 3589, 3796, 5539, 2122, 2118, 2124, 5545, 5548,
1043      2126, 5552, 5555, 5563,12639,12639, 5571, 2147, 5574,12639,
1044     12639, 2144, 5582, 5586,12639,12639, 5594, 5597, 2148, 2153,
1045      5606,12639,12639, 5619, 5622, 5630, 5633, 5637, 2176, 5651,
1046      3809, 2189, 5654, 5657, 5662, 5665, 5680,12639,12639, 5675,
1047     12639, 5688,12639,12639, 5696, 2189, 5699, 5702, 5717, 2175,
1048      5720,12639,12639, 2176, 2193, 5728, 5731, 5739, 2188, 2201,
1049      2200, 2218, 5746, 2238, 2240, 5749, 5752, 5757, 5770, 5773,
1050      5776, 5779, 2246, 5782, 5794, 5802, 2236, 5805, 5809, 2245,
1051
1052      5823, 2239, 5826, 2253, 2233, 5832, 2260, 2256, 2289, 5835,
1053      5847, 2298, 5855, 2287, 5858, 2304, 5861, 5864, 5867, 5870,
1054      2299, 5889, 5885, 5893, 5896, 5899, 2295, 5904,12639,12639,
1055      2305, 2308, 2301, 5914, 2318, 5919, 5922, 5938, 5941, 5944,
1056      5947, 5966, 5969, 5972, 5980, 2352, 2402, 2396,12639, 2338,
1057      5987, 5990, 2359, 2351, 2353, 2450, 2350, 2362, 3931, 2374,
1058      2379, 2405, 2411, 4652, 2421, 2412, 2415, 5037, 5993, 5999,
1059      2438, 6005, 2441, 6009, 6012, 2448, 2465, 2486, 2473, 6015,
1060      2491, 6018, 2498, 2536, 6021, 2532, 6024, 2539, 6027, 6030,
1061      2584, 2573, 2649, 2574, 2590, 2586, 2668, 2590, 6033,12639,
1062
1063     12639, 6042, 6048, 2575, 2569, 2716, 2575, 6052, 6055, 2608,
1064      2717, 2722, 6061, 6069,12639,12639, 6079, 2598, 2642, 6082,
1065      6089, 6092, 6101, 2617, 2643, 6108,12639,12639, 6116, 6120,
1066      6134, 2664, 2681, 2684, 6128,12639, 6142, 2687, 6149, 6152,
1067      6160, 6163, 6167, 6181, 6184, 2688, 6187,12639,12639, 6195,
1068      6203, 2693, 2703, 2703, 6213,12639,12639, 6221, 6224, 6235,
1069      2706, 2736, 2748, 6239, 6243, 2740, 2735, 6253, 6257,12639,
1070     12639, 6265, 6268, 6276, 6279, 6283, 6297, 2752, 6301,12639,
1071     12639, 6309, 6312, 2762, 6320,12639,12639, 2755, 6328,12639,
1072      2768, 6331, 2750, 6334, 6337, 2753, 6340, 2774, 6343, 2791,
1073
1074      2793, 2773, 6352,12639, 2794, 6358, 2795, 6361, 6364, 6372,
1075      6380, 2807, 6390, 2813, 6399, 6402, 6405, 6409, 6423, 6426,
1076      6434, 2815, 2818, 2817, 2833, 6437, 2829, 6442,12639,12639,
1077      6457, 6460, 6464,12639,12639, 6472,12639, 6479,12639,12639,
1078      6487, 2888, 2964, 2922, 2871, 6492, 6496, 6510, 6514, 2865,
1079      2882, 2898, 2878, 6517, 6520, 6523, 2883, 6529, 2885, 2882,
1080      2912, 2929, 6534, 6537, 6540, 6543, 2928, 6546, 6549, 6552,
1081      6555, 6558, 6561, 2930, 6564, 2940, 2952, 6567,12639, 2934,
1082      6570, 6576, 2953, 6590, 6593, 6596, 2972, 2970, 2970, 3010,
1083      3013, 3025, 3027, 3034, 3042, 3039, 6604, 6611, 6616, 6624,
1084
1085      3046, 3075, 3059, 3062, 6629, 6632, 6635, 6638, 3059, 6646,
1086      3070, 3090, 6649,12639, 6654,12639,12639, 6668, 3084, 3077,
1087      6672,12639,12639, 3163, 3164, 3087, 3095, 6680,12639,12639,
1088      6688, 6691, 3120, 6699,12639,12639, 6707, 6710, 3134, 6713,
1089     12639,12639, 3139, 3144, 3161, 6722,12639,12639, 6730, 6733,
1090      3159, 3148, 3173, 6741,12639,12639, 3193, 6749, 6752, 6755,
1091     12639,12639, 6767, 6771, 6779,12639,12639, 6787, 3183, 6790,
1092     12639,12639, 3179, 3195, 3193, 6799, 3209, 6802, 6806, 6820,
1093      3210, 6823, 6826, 3214, 3205, 3298, 3299, 3212, 3224, 6834,
1094     12639, 3238, 6841,12639,12639, 6854,12639,12639, 3272, 6849,
1095
1096      3266, 6863, 6868, 6871,12639,12639, 6883,12639,12639, 6891,
1097      6895, 6901, 6905, 6913, 6919, 3261, 6923, 6926, 6931, 6938,
1098      3322, 3353, 6934, 6946,12639,12639, 6957, 6960, 6963, 6966,
1099      3270, 3270, 6976, 6979, 3282, 6985, 6988, 3304, 6994, 6997,
1100      7000, 7003, 3306, 3330, 7006, 7009, 7012, 7017, 3332, 7020,
1101      3327,12639, 7023, 7026,12639,12639, 7034, 7041,12639, 7045,
1102     12639,12639, 3377, 3364, 3379, 3378, 3386, 3388, 3375, 3417,
1103      3429, 3436, 7053, 7056, 7039, 7043, 7073, 7080, 3398, 3397,
1104      3414, 7084, 3406, 7087,12639,12639, 3406, 7095, 3419, 7101,
1105      7104, 3463, 3479, 3506, 3529, 3509, 3531, 3488, 7107, 7119,
1106
1107     12639,12639, 3470, 7110, 7115, 3487, 3491, 3490, 3521, 7130,
1108     12639,12639, 7142, 3501, 3517, 3518, 7145, 7149, 7163, 7166,
1109     12639,12639, 7176, 3525, 3534, 3536, 3546, 7182,12639, 7185,
1110      7188,12639,12639, 7196, 7203, 7206,12639,12639, 7215, 7221,
1111      3574, 3598, 3594, 3624, 7224, 3585, 7138, 3592, 7227, 7233,
1112      7242, 7251, 7254, 7257, 7261, 7276, 7279, 7283, 7286, 7297,
1113      7305, 7308,12639, 7313, 7317, 3639, 3647, 7320, 7327, 7336,
1114      7339, 3583, 3586, 7342, 7346, 3597, 7349, 7352, 3590, 3602,
1115      3604, 7355,12639, 3598, 7358, 7361, 3615, 3662, 3661, 3675,
1116      3669, 3681, 3677, 3675, 3699, 3687, 3702, 7380, 3683, 3714,
1117
1118      3727, 3712, 3731, 3730, 3736, 3796, 3731, 3749, 7383, 3745,
1119      3741, 7386, 3785, 3795, 7389, 3799, 7392, 7395, 7403, 3798,
1120      3801, 3864,12639, 3862,12639, 7410, 7413, 3809, 7416,12639,
1121      7423, 3815, 3836, 3828, 3833, 3857, 7428, 7431, 3859, 7442,
1122      3869, 7446, 3900, 3935, 7456,12639, 7460,12639, 3855, 3859,
1123      7464, 3862, 7467, 7475, 7470, 7485, 7489, 3889, 3884, 3886,
1124      3958,12639, 3956,12639, 7497, 3913, 7503, 3916, 7506,12639,
1125      7509, 7515, 7527, 7530, 7534, 7537,12639,12639, 7549, 7553,
1126      7561, 7567, 7570,12639, 7573, 7581, 7585, 3973, 3983, 3967,
1127      7589,12639, 3909, 3932, 7592, 7600, 3924, 3939, 3945, 7604,
1128
1129      7608, 4006, 4080, 3941, 3978, 3988, 4010, 4021, 4046, 4031,
1130      4040, 4045, 4048, 4063, 7616, 4007, 4019, 4031, 4037, 4037,
1131      4031, 4033, 4055, 4053, 4062, 4061, 4058, 4060, 4080, 7622,
1132      4074, 4086, 7625, 7628, 7631,12639,12639, 7639,12639, 4068,
1133      7647,12639,12639, 7650, 7654, 4105, 7668, 4086, 4101, 4107,
1134      7671, 4100, 7677,12639,12639, 4112, 7689, 7693, 4103, 4171,
1135      4147, 4192, 4149, 4113, 7701, 7707, 7710, 7719, 7725,12639,
1136     12639, 7733,12639, 7737,12639,12639, 4135, 4154, 4158,12639,
1137     12639, 7745, 7748, 7756, 7759, 7763, 4305, 4425, 7777,12639,
1138      7780, 7783, 7786,12639,12639, 7802, 7805, 7813, 7816, 7824,
1139
1140     12639, 7827, 4216, 4253, 4279, 4156, 7831, 7834, 4180, 4183,
1141      4186, 7837, 7848, 4208, 4218, 4233, 4226, 4231, 4328, 4223,
1142      4287, 4272, 4272, 4277,12639, 4296, 4280, 4298, 4302,12639,
1143      7856, 4280, 4303, 4294, 4312, 4320, 4326, 4309, 4322, 4310,
1144      4324, 4346, 4352, 4334, 7859, 4352, 7862, 7865, 7868, 7871,
1145      7875, 7880, 7893,12639,12639, 7901, 7904,12639, 4358, 4352,
1146      7908, 7911, 7919, 7914, 4366, 7932,12639,12639, 4365, 4383,
1147      4402, 4392, 4392, 4411, 4397, 4388, 7940, 7943, 7951,12639,
1148     12639, 7959, 7962, 4392, 7970, 4402, 7973,12639,12639, 7981,
1149      7984, 7992, 7995, 4419, 4421, 4424, 4432, 4433, 4440, 8003,
1150
1151      8006, 8010, 4476, 4495, 8018,12639,12639, 8026, 4493, 4511,
1152      8029, 4426, 8032, 8035, 4412, 4427, 8038,12639,12639, 4475,
1153      4463, 4467, 4491, 4514, 4503, 4504, 4513, 8048, 4502, 4534,
1154      4552, 4537, 4523, 4542, 4558, 4553, 8051, 4512, 4517, 4534,
1155      4583, 4588, 4539, 4543, 4545, 4563, 4607, 4610, 4564, 4572,
1156      8055, 8058, 8061, 8070, 8066, 8079, 8085, 4576, 8097,12639,
1157     12639, 8093, 8105, 4578, 4573, 8113, 8118, 8127,12639,12639,
1158      8135, 8138, 4569, 4583, 4610, 4619, 4621, 4621, 4630, 4634,
1159      4623, 8146,12639,12639, 8154,12639,12639, 4625, 8162, 8165,
1160      4619, 8173, 4664, 4696, 8181, 4698, 4728, 4651, 4660, 4691,
1161
1162      4657, 4667, 4694, 8189, 8192, 4678, 4699, 4696, 4702, 8195,
1163     12639, 4764, 8198, 8201, 8204, 8223, 8226, 8229, 8232, 4695,
1164      4718, 4724, 4712, 4721, 4742, 4745, 4737, 8235, 8238, 4757,
1165      4757,12639, 4775, 4777, 4778,12639, 4779, 8246, 4762, 4749,
1166      4821,12639,12639, 4776, 4788, 4779, 4840,12639,12639, 4798,
1167      8249, 8253, 8259,12639,12639, 8267, 8270,12639,12639, 4807,
1168      8279,12639,12639, 4808, 4814, 8287,12639,12639, 8295,12639,
1169     12639, 8303, 4805, 4840, 4875, 4844, 4844, 4881, 4854, 4859,
1170      8306, 8309,12639,12639, 8317, 4882, 4893, 4885, 4896, 4889,
1171      4901, 4896, 4908, 4900, 4911,12639, 4910, 4923,12639, 8324,
1172
1173     12639, 8327, 4925, 4919, 4937, 4926, 4946, 8330, 8336, 8349,
1174      8380, 8427, 8357, 8360, 8363, 4946, 4967, 4972, 4940, 4956,
1175      4974, 4975, 4949, 8368,12639,12639, 4985, 4959, 4968, 4995,
1176      4977, 4985, 8391, 4954, 4955,12639, 4966, 4962, 4980,12639,
1177      4990, 8400, 8403,12639, 4989, 4990, 5001, 8406, 8410, 8418,
1178      5016,12639, 5049, 5024,12639, 5054, 5014, 8438, 8447, 8456,
1179      8459, 5070, 5038, 5075, 5053, 5088, 5056, 5088, 5063, 5104,
1180      5106, 5104, 5106, 8467, 5110, 5088, 5124, 5094, 5122, 8474,
1181      5145, 5141, 8494, 8541, 5127,12639,12639, 5106, 5153,12639,
1182     12639, 5132,12639, 5165, 5167,12639, 5175, 5181, 8487,12639,
1183
1184      5191, 5147, 5196, 5207, 5155, 5196, 5165, 5166, 5167, 8514,
1185      5220, 5247, 8506, 8524, 5222,12639, 5230,12639, 5205, 8561,
1186     12639,12639, 8569, 5250, 5273,12639, 5267,12639, 5274,12639,
1187      5278,12639, 5278,12639,12639,12639,12639, 8532,12639,12639,
1188      5272,12639, 5281, 5285, 5317, 5319, 5305, 5343, 5311, 8535,
1189      5307, 5300, 5330, 5328,12639,12639,12639,12639,12639, 5308,
1190      5349,12639,12639, 5320, 5373,12639, 8577, 8580, 8587, 5411,
1191      5342, 5413, 5360, 8591,12639,12639, 5374, 5376, 8599, 5421,
1192      5378, 5434, 5401,12639,12639,12639,12639, 5402, 5404, 8605,
1193      5445, 5439, 5456, 8608, 5461, 5455, 5469, 5462, 5437, 5426,
1194
1195     12639, 5444, 5446, 5435,12639, 5455, 8611, 8617, 8629, 8632,
1196      8640, 8643, 5466, 5474, 5490, 5477, 5486, 5498, 5519, 5517,
1197      8651, 8654, 5491, 5505, 5522, 5505, 5520, 5538, 5522, 5523,
1198      8662, 5548,12639, 5547,12639, 5548, 5519, 5527, 5543, 5535,
1199      5538, 5555, 8665,12639,12639, 8674,12639,12639, 8682, 5580,
1200      5591, 5579, 5594, 5591, 5605, 5611, 5607,12639,12639, 8690,
1201     12639,12639, 5610, 5615, 5613, 5625, 5637, 5634, 5668, 5666,
1202      5667,12639, 5674, 5679, 5645, 5627, 5651, 5661, 5641, 5657,
1203      5693, 5688, 5705, 5699, 5708, 5714, 5719, 5716, 5732, 5736,
1204      5734, 5742, 5742, 5740, 5762, 5762,12639,12639, 5771,12639,
1205
1206     12639, 5722, 5726, 5741, 5734, 5747, 5763, 5779, 5798, 5782,
1207      5801, 5794, 5791, 5815, 5805, 5803, 5820, 5810, 5807, 5830,
1208      5839, 5836, 5856, 5864, 5819, 5888, 5908, 5854, 5918, 5920,
1209      5893, 5894, 5898, 5898, 5928, 5918, 5951, 5933, 5923, 5953,
1210      5938, 5928, 5971, 5953, 5943, 5976, 6040, 5934,12639,12639,
1211      5951,12639,12639, 5975, 6022, 6031, 6042, 6063, 6041,12639,
1212      6067, 6044,12639, 6073, 6054,12639, 6080, 6064,12639, 6093,
1213      6047, 6053, 6070, 6090, 6079, 6100,12639, 6102,12639, 6107,
1214     12639, 6113,12639, 6115, 8700, 6136, 6138, 6123, 6151, 6133,
1215      6151, 6128, 6130, 6131, 6133, 8703,12639,12639, 6172,12639,
1216
1217      6171,12639, 6175, 6183, 6188, 6186, 6209, 6271,12639,12639,
1218     12639,12639,12639,12639, 6180, 6182, 6183, 6349, 6198, 6200,
1219      6215, 6274, 6201, 6276, 6359, 6365, 6367, 6376, 6338, 6396,
1220      6214, 6370, 6378, 6394, 6427, 6509, 6451, 6452, 6256, 6273,
1221      6445, 6467, 6400, 6561, 6432, 6557, 6190, 6566, 6601, 6700,
1222      6568, 6641, 6626, 6645, 6486, 6648, 6684, 6743, 6361, 6581,
1223      6718, 6745, 6756, 6759, 6657, 6797, 6653, 6767, 6667, 6777,
1224      6775, 6813, 6728, 6856, 6794, 6814, 6839, 6844, 6584, 6778,
1225      6829, 6890, 6927, 7013, 6899, 6937, 6892, 7019, 6880, 6964,
1226      7049, 7074, 7032, 7143, 7075, 7130, 6842, 6300, 8711, 8714,
1227
1228     12639,12639, 8734, 8743, 8752, 8761, 8770, 8779, 8788, 8797,
1229      8806, 8815, 8824, 8833, 8842, 8851, 8860, 8869, 8878, 8887,
1230      8896, 8905, 8914, 8923, 8932, 8941, 8950, 8959, 8968, 8977,
1231      8986, 8995, 9004, 9013, 9022, 9031, 9040, 9049, 9058, 9067,
1232      9076, 9085, 9094, 9103, 9112, 9121, 9130, 9139, 9148, 9157,
1233      9166, 9175, 9184, 9193, 9202, 9211, 9220, 9229, 9238, 9247,
1234      9256, 9265, 9274, 9283, 9292, 9299, 9306, 9313, 9320, 9327,
1235      9334, 9341, 9348, 9355, 9362, 9369, 9376, 9383, 9390, 9397,
1236      9404, 9411, 9418, 9425, 9432, 9439, 9446, 9453, 9460, 9467,
1237      9474, 9481, 9488, 9495, 9504, 9511, 9516, 9523, 9528, 9535,
1238
1239      9540, 9547, 9552, 9559, 9564, 9571, 9576, 9583, 9588, 9595,
1240      9600, 9607, 9612, 9619, 9624, 9631, 9636, 9643, 9648, 9655,
1241      9660, 9667, 9672, 9679, 9684, 9691, 9696, 9703, 9708, 9715,
1242      9720, 9727, 9732, 9739, 9744, 9751, 9756, 9763, 9768, 9775,
1243      9780, 9787, 9792, 9799, 9804, 9811, 9816, 9823, 9828, 9835,
1244      9840, 9847, 9852, 9861, 9867, 9874, 9882, 9889, 9897, 9904,
1245      9912, 9919, 9927, 9934, 9942, 9949, 9957, 9964, 9972, 9979,
1246      9987, 9994,10002,10009,10017,10024,10032,10039,10047,10054,
1247     10062,10069,10077,10085,10093,10100,10108,10115,10123,10130,
1248     10138,10145,10153,10161,10169,10177,10185,10192,10200,10208,
1249
1250     10216,10224,10232,10239,10247,10254,10262,10270,10277,10285,
1251     10292,10300,10309,10315,10322,10330,10338,10346,10354,10362,
1252     10369,10377,10384,10392,10399,10407,10414,10422,10430,10438,
1253     10446,10454,10461,10469,10476,10484,10492,10500,10508,10516,
1254     10523,10531,10538,10546,10553,10561,10568,10576,10583,10591,
1255     10598,10606,10613,10621,10628,10636,10643,10651,10659,10666,
1256     10674,10681,10689,10696,10704,10712,10719,10727,10734,10742,
1257     10751,10760,10767,10775,10783,10790,10798,10805,10813,10820,
1258     10828,10835,10842,10850,10857,10865,10872,10880,10887,10895,
1259     10902,10910,10918,10926,10933,10941,10949,10957,10964,10972,
1260
1261     10979,10987,10994,11002,11009,11017,11024,11032,11039,11047,
1262     11054,11062,11070,11077,11085,11092,11100,11108,11116,11124,
1263     11132,11140,11148,11156,11165,11174,11181,11189,11197,11204,
1264     11212,11219,11227,11234,11242,11249,11256,11264,11271,11279,
1265     11287,11295,11302,11310,11318,11326,11334,11341,11349,11357,
1266     11365,11372,11380,11387,11395,11402,11410,11417,11425,11432,
1267     11440,11448,11456,11463,11471,11479,11487,11495,11502,11510,
1268     11518,11526,11534,11542,11551,11560,11568,11576,11584,11591,
1269     11599,11606,11614,11622,11630,11638,11646,11654,11661,11669,
1270     11677,11684,11692,11700,11708,11715,11723,11731,11739,11746,
1271
1272     11753,11761,11768,11776,11783,11790,11798,11805,11813,11820,
1273     11828,11836,11844,11851,11859,11867,11875,11883,11892,11901,
1274     11909,11917,11924,11931,11939,11947,11954,11962,11969,11977,
1275     11984,11991,11999,12007,12014,12022,12030,12037,12044,12052,
1276     12059,12067,12074,12081,12088,12096,12103,12111,12119,12127,
1277     12135,12143,12151,12159,12167,12176,12185,12193,12201,12208,
1278     12216,12224,12231,12239,12247,12255,12262,12269,12277,12285,
1279     12292,12300,12308,12315,12322,12330,12338,12346,12353,12360,
1280     12368,12376,12384,12392,12400,12408,12416,12424,12432,12441,
1281     12450,12458,12465,12472,12480,12487,12495,12503,12510,12517,
1282
1283     12525,12532,12539,12546,12554,12561,12568,12575,12584,12593,
1284     12602,12611,12620,12629
1285     } ;
1286
1287 static yyconst flex_int16_t yy_def[4015] =
1288     {   0,
1289      3503, 3503, 3504, 3504, 3504, 3504, 3505, 3505, 3506, 3506,
1290      3507, 3507, 3508, 3508, 3508, 3508, 3509, 3509, 3503, 3503,
1291      3510, 3510, 3511, 3511, 3511, 3511, 3503, 3503, 3511, 3511,
1292      3511, 3511, 3503, 3503, 3511, 3511, 3503, 3503, 3511, 3511,
1293      3511, 3511, 3512, 3512, 3513, 3513, 3503, 3503, 3513, 3513,
1294      3513, 3513, 3514, 3514, 3508, 3508, 3515, 3515, 3516, 3516,
1295      3517, 3517, 3518, 3518, 3519, 3519, 3520, 3520, 3520, 3520,
1296      3503, 3503, 3520, 3520, 3520, 3520, 3503, 3503, 3520, 3520,
1297      3520, 3520, 3503, 3503, 3520, 3520, 3503, 3503, 3520, 3520,
1298      3520, 3520, 3503, 3503, 3520, 3520, 3503, 3503, 3520, 3520,
1299
1300      3520, 3520, 3521, 3521, 3522, 3522, 3503, 3503, 3522, 3522,
1301      3522, 3522, 3523, 3523, 3524, 3524, 3525, 3525, 3526, 3526,
1302      3527, 3527, 3528, 3528, 3503, 3503, 3528, 3528, 3528, 3528,
1303      3529, 3529, 3530, 3530, 3503, 3503, 3530, 3530, 3530, 3530,
1304      3531, 3531, 3532, 3532, 3533, 3533, 3534, 3534, 3502,  149,
1305      3535, 3535, 3503, 3503, 3535, 3535, 3535, 3535, 3536, 3536,
1306      3537, 3537, 3538, 3538, 3539, 3539, 3540, 3540, 3541, 3541,
1307      3542, 3542, 3543, 3543, 3544, 3544, 3545, 3545, 3503, 3503,
1308      3545, 3545, 3545, 3545, 3546, 3546, 3547, 3547, 3503, 3503,
1309      3547, 3547, 3547, 3547, 3548, 3548, 3549, 3549, 3503, 3503,
1310
1311      3549, 3549, 3549, 3549, 3550, 3550, 3551, 3551, 3552, 3552,
1312      3553, 3553, 3503, 3503, 3553, 3553, 3553, 3553, 3554, 3554,
1313      3555, 3555, 3503, 3503, 3555, 3555, 3555, 3555, 3556, 3556,
1314      3557, 3557, 3503, 3503, 3557, 3557, 3557, 3557, 3558, 3558,
1315      3559, 3559, 3560, 3560, 3561, 3561, 3503, 3503, 3561, 3561,
1316      3561, 3561, 3562, 3562, 3563, 3563, 3564, 3564, 3565, 3565,
1317      3503, 3503, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1318      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1319      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1320      3502, 3502, 3502, 3566, 3502, 3502, 3566, 3502, 3502, 3502,
1321
1322       300,  300,  302,  300,  303,  303, 3502, 3502, 3502, 3567,
1323      3502, 3502, 3567, 3502, 3502,  304,  303, 3502, 3502, 3502,
1324      3568, 3502, 3502, 3568, 3568, 3568, 3502, 3502, 3502, 3502,
1325      3502, 3569, 3502, 3502, 3569, 3569, 3569, 3569, 3569, 3502,
1326      3502, 3502, 3502, 3502, 3502, 3570, 3502, 3502, 3570, 3570,
1327      3570, 3502, 3502, 3502, 3502, 3502, 3502, 3571, 3502, 3502,
1328      3571, 3571, 3502, 3502, 3502,  365,  303,  303,  304,  369,
1329       368,  368,  368,  368,  369,  375,  373,  373, 3502, 3502,
1330      3502, 3572, 3502, 3502, 3572, 3572, 3572, 3572, 3502, 3502,
1331       303,  303,  303, 3502, 3502, 3502, 3573, 3502, 3502, 3573,
1332
1333      3573, 3502, 3502, 3502, 3502, 3502, 3502, 3574, 3502, 3502,
1334      3574, 3574, 3502, 3502, 3502, 3502, 3502, 3502, 3575, 3502,
1335      3502, 3575, 3575, 3575, 3575, 3575, 3502, 3502,  392,  392,
1336       303, 3502, 3502, 3502, 3576, 3502, 3502, 3576, 3576, 3576,
1337      3576, 3502, 3502,  303,  303, 3502, 3502, 3502, 3577, 3502,
1338      3502, 3577, 3502, 3502, 3502, 3502, 3502, 3502, 3578, 3502,
1339      3502, 3578, 3578, 3578, 3502, 3502, 3502, 3502, 3502, 3502,
1340      3579, 3502, 3502, 3579, 3579, 3579, 3579, 3579, 3579, 3579,
1341      3579, 3579, 3502, 3502,  303,  303, 3502, 3502, 3502, 3580,
1342      3502, 3502, 3580, 3580, 3580, 3580, 3580, 3580, 3502, 3502,
1343
1344      3502, 3502, 3502, 3502, 3581, 3502, 3502, 3581, 3581, 3581,
1345      3581, 3581, 3581, 3581, 3502, 3502, 3502, 3502, 3502, 3502,
1346      3582, 3502, 3502, 3582, 3582, 3502, 3502, 3502, 3502, 3502,
1347      3502, 3583, 3502, 3502, 3583, 3583, 3583, 3502, 3502, 3502,
1348      3502, 3502, 3502, 3584, 3502, 3502, 3584, 3584, 3584, 3584,
1349      3502, 3502,  303,  303, 3502, 3502, 3502, 3585, 3502, 3502,
1350      3585, 3585, 3502, 3502,  303,  373,  373, 3502, 3502, 3502,
1351      3586, 3502, 3502, 3586, 3586, 3586, 3502, 3502,  373,  373,
1352      3502, 3502, 3502, 3587, 3502, 3502, 3587, 3587, 3502, 3502,
1353      3502, 3502, 3502, 3502, 3588, 3502, 3502, 3588, 3588, 3502,
1354
1355      3502,  373,  373, 3502, 3502, 3502, 3589, 3502, 3502, 3589,
1356      3589, 3589, 3502, 3502,  373,  373, 3502, 3502, 3502, 3590,
1357      3502, 3502, 3590, 3590, 3590, 3590, 3590, 3502, 3502,  303,
1358       392,  303, 3502, 3502, 3502, 3591, 3502, 3502, 3591, 3502,
1359      3502, 3502, 3502, 3502, 3502, 3592, 3502, 3502, 3592, 3502,
1360      3502,  303,  303, 3502, 3502, 3502, 3593, 3502, 3502, 3593,
1361      3593, 3502, 3502, 3502, 3502, 3502, 3502, 3594, 3502, 3502,
1362      3594, 3594, 3502, 3502, 3502, 3502, 3595, 3502, 3502, 3502,
1363      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1364      3502, 3502, 3596, 3596, 3597, 3502, 3502, 3502, 3502, 3502,
1365
1366      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1367      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3598,
1368      3598, 3599, 3502, 3600, 3600, 3600, 3600, 3502, 3601, 3502,
1369      3502, 3602, 3602, 3602, 3602, 3602, 3602, 3602, 3602, 3602,
1370      3603, 3502, 3604, 3604, 3604, 3604, 3605, 3502, 3606, 3606,
1371      3606, 3607, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1372      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1373      3502, 3608, 3608, 3608, 3608, 3608, 3609, 3502, 3502, 3610,
1374      3610, 3610, 3611, 3502, 3612, 3612, 3612, 3613, 3502, 3614,
1375      3614, 3614, 3614, 3614, 3614, 3614, 3615, 3502, 3502, 3616,
1376
1377      3616, 3616, 3616, 3616, 3617, 3502, 3618, 3618, 3619, 3502,
1378      3620, 3620, 3620, 3620, 3621, 3502, 3622, 3622, 3622, 3622,
1379      3622, 3622, 3622, 3622, 3622, 3622, 3622, 3622, 3622, 3622,
1380      3622, 3622, 3622, 3623, 3502, 3624, 3624, 3624, 3624, 3624,
1381      3624, 3624, 3624, 3625, 3502, 3626, 3626, 3626, 3626, 3626,
1382      3626, 3626, 3626, 3627, 3502, 3628, 3628, 3628, 3629, 3502,
1383      3630, 3630, 3630, 3630, 3631, 3502, 3632, 3632, 3632, 3632,
1384      3632, 3632, 3633, 3502, 3634, 3634, 3634, 3634, 3635, 3502,
1385      3502, 3636, 3636, 3636, 3636, 3636, 3637, 3502, 3638, 3638,
1386      3638, 3639, 3502, 3640, 3640, 3640, 3641, 3502, 3642, 3642,
1387
1388      3642, 3642, 3643, 3502, 3644, 3644, 3644, 3644, 3644, 3644,
1389      3645, 3502, 3502, 3646, 3646, 3647, 3502, 3648, 3648, 3649,
1390      3502, 3650, 3650, 3650, 3651, 3502, 3652, 3652, 3652, 3653,
1391      3654, 3502, 3654, 3502, 3502, 3502, 3655, 3502, 3502, 3502,
1392      3502, 3502, 3502, 3502, 3656, 3657, 3657, 3502, 3502, 3502,
1393      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1394      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1395      3502, 3502, 3502, 3502, 3502, 3502, 3658, 3659, 3659, 3660,
1396      3502, 3502, 3660, 3502, 3661, 3661, 3502, 3662, 3502, 3502,
1397      3662, 3662, 3662, 3662, 3662, 3662, 3663, 3663, 3664, 3664,
1398
1399      3664, 3665, 3665, 3502, 3502, 3666, 3667, 3667, 3502, 3502,
1400      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1401      3502, 3502, 3668, 3502, 3502, 3668, 3668, 3669, 3669, 3502,
1402      3670, 3670, 3671, 3671, 3672, 3672, 3673, 3673, 3674, 3674,
1403      3674, 3502, 3502, 3674, 3674, 3674, 3675, 3675, 3502, 3502,
1404      3676, 3676, 3502, 3502, 3676, 3677, 3677, 3678, 3679, 3679,
1405      3680, 3502, 3502, 3502, 3502, 3681, 3681, 3682, 3682, 3502,
1406      3502, 3682, 3502, 3502, 3682, 3682, 3682, 3682, 3682, 3682,
1407      3682, 3682, 3682, 3682, 3682, 3683, 3683, 3502, 3502, 3502,
1408      3502, 3684, 3684, 3684, 3684, 3684, 3685, 3685, 3686, 3686,
1409
1410      3686, 3502, 3502, 3686, 3686, 3686, 3687, 3687, 3688, 3502,
1411      3502, 3689, 3689, 3690, 3502, 3502, 3690, 3691, 3691, 3692,
1412      3502, 3502, 3692, 3692, 3692, 3693, 3693, 3694, 3694, 3694,
1413      3695, 3695, 3502, 3696, 3696, 3696, 3696, 3697, 3697, 3698,
1414      3502, 3502, 3699, 3699, 3700, 3700, 3701, 3701, 3702, 3702,
1415      3702, 3703, 3703, 3704, 3704, 3704, 3704, 3704, 3705, 3705,
1416      3502, 3706, 3707, 3707, 3502, 3502, 3708, 3708, 3502, 3502,
1417      3709, 3710, 3710, 3502, 3502, 3711, 3712, 3712, 3713, 3502,
1418      3502, 3713, 3502, 3502, 3714, 3502, 3502, 3502, 3502, 3502,
1419      3502, 3715, 3502, 3716, 3502, 3716, 3502, 3502, 3502, 3502,
1420
1421      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1422      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1423      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3717, 3502, 3718,
1424      3502, 3718, 3719, 3502, 3502, 3502, 3719, 3502, 3502, 3720,
1425      3502, 3720, 3721, 3502, 3502, 3502, 3502, 3502, 3721, 3502,
1426      3502, 3721, 3721, 3721, 3502, 3722, 3502, 3722, 3723, 3723,
1427      3723, 3502, 3724, 3502, 3724, 3502, 3502, 3502, 3725, 3502,
1428      3726, 3502, 3726, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1429      3502, 3502, 3502, 3502, 3502, 3502, 3727, 3502, 3502, 3502,
1430      3727, 3727, 3502, 3728, 3502, 3728, 3502, 3729, 3729, 3502,
1431
1432      3730, 3502, 3730, 3731, 3731, 3502, 3732, 3502, 3732, 3733,
1433      3733, 3733, 3502, 3502, 3502, 3733, 3733, 3733, 3502, 3734,
1434      3502, 3734, 3502, 3502, 3735, 3735, 3502, 3502, 3502, 3735,
1435      3502, 3736, 3502, 3736, 3737, 3502, 3738, 3502, 3738, 3739,
1436      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3740, 3502, 3740,
1437      3741, 3741, 3741, 3741, 3502, 3502, 3502, 3741, 3502, 3502,
1438      3502, 3502, 3502, 3741, 3741, 3741, 3741, 3741, 3741, 3741,
1439      3741, 3741, 3741, 3502, 3742, 3502, 3742, 3502, 3502, 3502,
1440      3502, 3502, 3502, 3502, 3502, 3743, 3743, 3743, 3743, 3502,
1441      3744, 3502, 3744, 3745, 3745, 3745, 3745, 3502, 3502, 3502,
1442
1443      3502, 3502, 3745, 3745, 3502, 3746, 3502, 3746, 3747, 3502,
1444      3502, 3502, 3502, 3748, 3502, 3748, 3749, 3502, 3502, 3502,
1445      3749, 3502, 3750, 3502, 3750, 3751, 3502, 3502, 3502, 3751,
1446      3751, 3751, 3502, 3752, 3502, 3752, 3502, 3502, 3502, 3502,
1447      3753, 3502, 3754, 3502, 3754, 3502, 3502, 3502, 3755, 3755,
1448      3502, 3502, 3755, 3502, 3756, 3502, 3756, 3757, 3502, 3502,
1449      3502, 3502, 3758, 3502, 3758, 3502, 3502, 3502, 3502, 3502,
1450      3759, 3502, 3759, 3502, 3502, 3760, 3760, 3502, 3502, 3502,
1451      3761, 3502, 3761, 3762, 3762, 3762, 3762, 3762, 3502, 3763,
1452      3502, 3763, 3502, 3764, 3502, 3765, 3502, 3765, 3502, 3502,
1453
1454      3502, 3502, 3766, 3502, 3766, 3502, 3502, 3502, 3767, 3502,
1455      3768, 3502, 3768, 3502, 3502, 3502, 3769, 3502, 3770, 3502,
1456      3770, 3771, 3772, 3502, 3502, 3502, 3502, 3502, 3773, 3774,
1457      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1458      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1459      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1460      3502, 3502, 3775, 3502, 3502, 3776, 3502, 3777, 3778, 3502,
1461      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3778, 3502, 3502,
1462      3778, 3779, 3780, 3502, 3502, 3780, 3781, 3782, 3502, 3502,
1463      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1464
1465      3502, 3502, 3502, 3783, 3783, 3502, 3502, 3784, 3502, 3502,
1466      3502, 3785, 3786, 3502, 3502, 3787, 3788, 3789, 3789, 3502,
1467      3502, 3789, 3789, 3789, 3790, 3502, 3502, 3791, 3791, 3791,
1468      3792, 3502, 3502, 3793, 3502, 3502, 3794, 3795, 3795, 3795,
1469      3795, 3502, 3502, 3502, 3502, 3502, 3795, 3795, 3795, 3795,
1470      3795, 3795, 3795, 3795, 3795, 3795, 3795, 3796, 3502, 3502,
1471      3502, 3797, 3797, 3797, 3797, 3798, 3799, 3799, 3799, 3799,
1472      3502, 3502, 3502, 3799, 3799, 3800, 3801, 3802, 3803, 3803,
1473      3804, 3805, 3805, 3805, 3805, 3806, 3502, 3502, 3502, 3502,
1474      3502, 3502, 3807, 3808, 3502, 3502, 3502, 3502, 3809, 3809,
1475
1476      3502, 3502, 3502, 3809, 3810, 3811, 3812, 3502, 3502, 3502,
1477      3502, 3502, 3502, 3813, 3502, 3502, 3502, 3814, 3814, 3502,
1478      3502, 3502, 3815, 3816, 3502, 3502, 3816, 3816, 3816, 3817,
1479      3502, 3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826,
1480      3826, 3502, 3826, 3502, 3502, 3502, 3827, 3828, 3502, 3502,
1481      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1482      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1483      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1484      3502, 3502, 3829, 3502, 3502, 3502, 3830, 3502, 3831, 3832,
1485      3502, 3502, 3502, 3832, 3502, 3502, 3502, 3832, 3833, 3834,
1486
1487      3502, 3502, 3502, 3502, 3502, 3835, 3836, 3502, 3502, 3502,
1488      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1489      3837, 3502, 3502, 3502, 3502, 3502, 3838, 3502, 3502, 3502,
1490      3502, 3839, 3840, 3502, 3502, 3502, 3841, 3842, 3843, 3843,
1491      3502, 3502, 3502, 3502, 3502, 3843, 3502, 3502, 3843, 3844,
1492      3502, 3502, 3845, 3845, 3845, 3846, 3502, 3502, 3502, 3502,
1493      3502, 3502, 3502, 3502, 3847, 3848, 3502, 3502, 3848, 3848,
1494      3502, 3502, 3502, 3848, 3848, 3502, 3502, 3848, 3848, 3848,
1495      3848, 3848, 3848, 3848, 3848, 3849, 3502, 3502, 3850, 3850,
1496      3850, 3851, 3852, 3502, 3502, 3852, 3852, 3502, 3502, 3852,
1497
1498      3853, 3854, 3855, 3856, 3856, 3857, 3858, 3858, 3858, 3502,
1499      3502, 3858, 3859, 3860, 3861, 3502, 3862, 3862, 3862, 3863,
1500      3864, 3865, 3866, 3867, 3867, 3868, 3869, 3502, 3502, 3502,
1501      3869, 3869, 3869, 3870, 3502, 3502, 3502, 3871, 3872, 3502,
1502      3502, 3873, 3502, 3502, 3874, 3875, 3876, 3876, 3502, 3502,
1503      3877, 3878, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1504      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1505      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1506      3502, 3879, 3880, 3502, 3881, 3882, 3882, 3882, 3883, 3884,
1507      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1508
1509      3502, 3885, 3886, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1510      3502, 3502, 3887, 3502, 3502, 3502, 3888, 3502, 3889, 3890,
1511      3502, 3502, 3891, 3892, 3892, 3502, 3502, 3502, 3502, 3502,
1512      3502, 3502, 3502, 3892, 3502, 3502, 3502, 3502, 3502, 3502,
1513      3893, 3502, 3502, 3894, 3895, 3896, 3502, 3502, 3502, 3502,
1514      3502, 3896, 3896, 3896, 3502, 3502, 3502, 3502, 3502, 3896,
1515      3896, 3896, 3896, 3502, 3502, 3896, 3896, 3897, 3502, 3502,
1516      3502, 3502, 3502, 3898, 3502, 3502, 3899, 3900, 3502, 3502,
1517      3502, 3502, 3502, 3900, 3502, 3502, 3502, 3900, 3502, 3502,
1518      3901, 3902, 3903, 3903, 3904, 3905, 3905, 3905, 3502, 3502,
1519
1520      3502, 3905, 3502, 3502, 3906, 3907, 3502, 3502, 3502, 3502,
1521      3502, 3908, 3909, 3910, 3911, 3912, 3502, 3502, 3502, 3502,
1522      3913, 3914, 3914, 3914, 3914, 3915, 3502, 3502, 3502, 3502,
1523      3916, 3917, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1524      3918, 3919, 3920, 3920, 3502, 3502, 3502, 3921, 3502, 3502,
1525      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1526      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1527      3502, 3502, 3502, 3502, 3922, 3923, 3502, 3502, 3502, 3924,
1528      3502, 3502, 3924, 3925, 3502, 3502, 3502, 3502, 3502, 3502,
1529      3502, 3502, 3502, 3502, 3502, 3502, 3926, 3502, 3502, 3502,
1530
1531      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3927, 3928,
1532      3502, 3929, 3502, 3502, 3502, 3502, 3502, 3930, 3931, 3931,
1533      3502, 3502, 3502, 3502, 3502, 3931, 3502, 3502, 3502, 3502,
1534      3502, 3502, 3932, 3502, 3502, 3502, 3933, 3934, 3935, 3502,
1535      3502, 3502, 3935, 3935, 3935, 3502, 3502, 3502, 3502, 3502,
1536      3935, 3935, 3935, 3502, 3502, 3502, 3935, 3935, 3936, 3502,
1537      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3937, 3938, 3502,
1538      3502, 3502, 3938, 3938, 3939, 3940, 3941, 3502, 3502, 3942,
1539      3943, 3502, 3502, 3943, 3943, 3502, 3502, 3943, 3944, 3502,
1540      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3945, 3946,
1541
1542      3947, 3948, 3949, 3502, 3502, 3502, 3502, 3502, 3502, 3950,
1543      3951, 3951, 3951, 3951, 3952, 3502, 3953, 3954, 3955, 3956,
1544      3957, 3957, 3502, 3502, 3502, 3502, 3958, 3502, 3502, 3502,
1545      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1546      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3959,
1547      3960, 3502, 3961, 3502, 3502, 3502, 3961, 3502, 3502, 3502,
1548      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1549      3502, 3502, 3962, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1550      3502, 3502, 3502, 3502, 3502, 3502, 3963, 3964, 3502, 3965,
1551      3966, 3967, 3967, 3502, 3502, 3502, 3502, 3967, 3502, 3502,
1552
1553      3502, 3502, 3968, 3969, 3970, 3971, 3971, 3971, 3971, 3502,
1554      3502, 3502, 3971, 3971, 3971, 3971, 3502, 3502, 3972, 3502,
1555      3502, 3502, 3973, 3974, 3974, 3974, 3975, 3502, 3502, 3976,
1556      3502, 3502, 3502, 3977, 3978, 3502, 3502, 3502, 3978, 3978,
1557      3502, 3502, 3502, 3502, 3978, 3979, 3502, 3980, 3981, 3982,
1558      3983, 3984, 3985, 3502, 3502, 3986, 3986, 3986, 3987, 3502,
1559      3988, 3502, 3502, 3989, 3990, 3991, 3991, 3502, 3992, 3502,
1560      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1561      3502, 3502, 3502, 3993, 3502, 3502, 3994, 3502, 3502, 3502,
1562      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3995, 3502, 3502,
1563
1564      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1565      3502, 3502, 3502, 3996, 3997, 3502, 3502, 3502, 3998, 3999,
1566      3999, 3502, 3502, 3502, 3502, 3999, 3502, 4000, 3502, 3502,
1567      4001, 4002, 4002, 4002, 4002, 4002, 3502, 3502, 4002, 4002,
1568      4002, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 4003, 4003,
1569      4003, 4004, 3502, 3502, 4005, 3502, 3502, 4006, 4006, 4006,
1570      3502, 3502, 3502, 3502, 4006, 4007, 3502, 4008, 3502, 3502,
1571      3502, 3502, 3983, 3984, 3985, 3502, 3502, 3502, 3502, 3502,
1572      3986, 3986, 3502, 3502, 3502, 3988, 3989, 3990, 3991, 3991,
1573      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3993,
1574
1575      3502, 3502, 3502, 3994, 3502, 3502, 3502, 3502, 3502, 3502,
1576      3502, 3502, 3502, 3502, 3995, 3502, 3502, 3502, 3502, 3502,
1577      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1578      3502, 3996, 3997, 3502, 3502, 3502, 3502, 3502, 3502, 3999,
1579      3999, 3502, 3502, 3502, 3502, 4000, 4001, 4002, 4002, 4002,
1580      4002, 4002, 3502, 3502, 3502, 4002, 3502, 3502, 4002, 3502,
1581      3502, 3502, 3502, 4003, 4003, 3502, 3502, 4004, 3502, 3502,
1582      3502, 3502, 3502, 3502, 3502, 3502, 4006, 4006, 4006, 3502,
1583      3502, 3502, 3502, 4007, 4008, 3502, 3502, 3502, 3502, 3502,
1584      3984, 3985, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1585
1586      3502, 3989, 3990, 3991, 3991, 3502, 3502, 3502, 3502, 3502,
1587      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3994,
1588      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1589      3995, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1590      3502, 3502, 3502, 3502, 3502, 3502, 3996, 3997, 3502, 3999,
1591      3502, 3502, 3502, 3502, 3502, 4000, 3502, 3502, 4002, 4002,
1592      4002, 3502, 3502, 4002, 4002, 3502, 3502, 3502, 4002, 3502,
1593      3502, 3502, 3502, 3502, 3502, 4003, 3502, 3502, 3502, 3502,
1594      3502, 3502, 3502, 4006, 4006, 4006, 3502, 3502, 3502, 3502,
1595      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3984,
1596
1597      3985, 3502, 3502, 3502, 3502, 3502, 3502, 3989, 3990, 3991,
1598      3991, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1599      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3994, 3502, 3502,
1600      3502, 3502, 3502, 3502, 3502, 3502, 3995, 3502, 3502, 3502,
1601      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1602      3502, 3502, 3502, 3502, 3997, 3502, 3502, 3999, 3502, 3502,
1603      3502, 3502, 3502, 4002, 4002, 3502, 3502, 3502, 3502, 3502,
1604      3502, 3502, 4002, 4002, 3502, 3502, 3502, 3502, 3502, 3502,
1605      4003, 3502, 3502, 3502, 3502, 3502, 3502, 4006, 3502, 3502,
1606      4006, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1607
1608      3502, 3502, 3502, 3984, 3985, 3502, 3502, 3502, 3502, 3502,
1609      3502, 3990, 3991, 3991, 3991, 3502, 3502, 3502, 3502, 3502,
1610      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1611      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3995, 3502, 3502,
1612      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1613      3502, 3502, 3502, 3502, 3502, 3997, 3502, 3502, 3502, 3999,
1614      3502, 3502, 3502, 4002, 4002, 3502, 3502, 3502, 3502, 3502,
1615      3502, 4002, 4002, 3502, 3502, 3502, 3502, 3502, 3502, 4003,
1616      4006, 3502, 3502, 3502, 4006, 3502, 3502, 3502, 3502, 3502,
1617      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1618
1619      3502, 3985, 3502, 3502, 3502, 3502, 3990, 3991, 3991, 3991,
1620      4009, 4010, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1621      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1622      3502, 3502, 3995, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1623      3502, 3502, 3502, 3502, 3999, 4002, 4002, 3502, 3502, 4002,
1624      3502, 3502, 3502, 3502, 3502, 3502, 4003, 3502, 3502, 3502,
1625      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1626      3502, 3502, 3502, 3985, 3502, 3502, 3502, 3502, 3990, 3991,
1627      4011, 4012, 4009, 4010, 3502, 3502, 3502, 3502, 3502, 3502,
1628      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1629
1630      3502, 3502, 3502, 3502, 3502, 3502, 3999, 4002, 4002, 3502,
1631      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 4003, 3502,
1632      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1633      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1634      3502, 3502, 3502, 3990, 4011, 3991, 4013, 4012, 4014, 3991,
1635      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1636      3502, 3502, 3502, 3502, 3502, 3502, 3999, 4002, 4002, 3502,
1637      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 4003, 3502,
1638      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3990,
1639      4013, 3502, 4014, 3991, 3502, 3502, 3502, 3502, 3502, 3502,
1640
1641      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1642      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1643      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1644      3990, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1645      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1646      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1647      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1648      3990, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1649      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1650      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3990, 3502,
1651
1652      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1653      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1654      3502, 3502, 3502, 3990, 3502, 3502, 3502, 3502, 3502, 3502,
1655      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1656      3502, 3502, 3502, 3502, 3502, 3502, 3990, 3502, 3502, 3502,
1657      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1658      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3990,
1659      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1660      3502, 3502, 3502, 3502, 3990, 3502, 3502, 3502, 3502, 3502,
1661      3502, 3502, 3502, 3502, 3502, 3990, 3502, 3502, 3502, 3502,
1662
1663      3502, 3502, 3502, 3502, 3502, 3502, 3990, 3990, 3502, 3502,
1664      3502, 3502, 3502, 3502, 3990, 3990, 3990, 3990, 3990, 3990,
1665      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1666      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1667      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1668      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1669      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1670      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1671      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1672      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1673
1674      3502,    0, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1675      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1676      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1677      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1678      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1679      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1680      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1681      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1682      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1683      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1684
1685      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1686      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1687      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1688      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1689      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1690      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1691      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1692      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1693      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1694      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1695
1696      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1697      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1698      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1699      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1700      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1701      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1702      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1703      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1704      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1705      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1706
1707      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1708      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1709      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1710      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1711      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1712      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1713      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1714      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1715      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1716      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1717
1718      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1719      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1720      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1721      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1722      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1723      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1724      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1725      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1726      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1727      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1728
1729      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1730      3502, 3502, 3502, 3502
1731     } ;
1732
1733 static yyconst flex_int16_t yy_nxt[12714] =
1734     {   0,
1735      3502,  266,  267,  266,  266,  267,  266,  266,  267,  266,
1736       266,  267,  266,  271,  267,  271,  277,  268,  274,  277,
1737       268,  274, 3502,  269, 3502,  275,  269, 3502,  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, 3502,  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, 3502,  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, 3502,  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      3502,  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, 3502,  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      3502, 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, 3502, 3502, 3502, 3502, 3502,
2107      3502, 2480, 1091, 2481, 2484, 1385,  633,  633, 3502, 3502,
2108
2109      3502, 2488, 3502, 2489, 2490, 3502, 1398, 1398, 1398, 2491,
2110      1399, 2492, 2493, 1400, 2494, 3502, 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, 3502, 3502, 3502, 1401, 1401, 1401,
2115      2496, 2497, 1392, 2510, 1103, 2511,  633,  633, 1390, 1390,
2116      1390, 3502, 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, 3502, 3502, 3502, 1742, 1435,
2137      2596,  660, 2597, 2598, 1440, 2599, 1742, 1980, 1980, 1980,
2138      2600, 2604, 3502, 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      3502, 3502, 3502, 1981, 1441, 1444, 2608, 1448, 2609, 2610,
2144       654,  654, 2611, 1444, 1451, 1451, 1451, 3502, 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, 3502, 3502, 3502, 2620, 1450, 1454, 1454, 1454, 1141,
2150      1141, 1141, 1462, 1462, 1462, 1456, 2618, 2621, 3502, 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, 3502, 3502, 3502, 1478, 1478, 1478, 1480,
2161      1480, 1480, 2648, 2649,  672,  680, 1480, 1480, 1480, 2650,
2162      3502, 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, 3502, 3502,
2183      3502, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239,
2184      1244, 1244, 1244, 2734, 1245, 3502, 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, 2772, 1267, 2775, 2776, 1268, 1270, 1270, 1270,
2195      1264, 2784, 2770, 1264, 1270, 1270, 1270, 1589, 1589, 1589,
2196
2197      1288, 1288, 1288, 2771, 1289, 1272, 2785, 1290, 1606, 1606,
2198      1606, 1582, 1272, 2773, 2786, 1590, 1293, 1293, 1293, 1293,
2199      1293, 1293, 1587, 2812, 2774, 1607, 1293, 1293, 1293, 1610,
2200      1610, 1610, 2814, 2815, 1295, 1180, 2816, 1295, 3502, 3502,
2201      3502, 1300, 1300, 1300, 1295, 2820, 1611, 1300, 1300, 1300,
2202      1300, 1300, 1300, 2821, 2822, 3502, 1614, 1614, 1614, 1302,
2203      3502, 3502, 3502, 2824, 2809, 1302, 2825, 2823, 1302, 1620,
2204      1620, 1620, 1742, 1615, 1306, 1306, 1306, 3502, 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, 2810, 1329, 2831, 1613, 2832, 1321,
2210      2833, 2834, 1321, 1331, 1331, 1331, 1331, 1331, 1331, 2794,
2211      1331, 1331, 1331, 1632, 1632, 1632, 1336, 1336, 1336, 2795,
2212      2811, 1333, 2835, 2836, 1333, 2796, 2838, 1617, 1333, 2826,
2213      1633, 1635, 1635, 1635, 1338, 1336, 1336, 1336, 1336, 1336,
2214      1336, 2839, 2827, 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      2849, 2850, 1357, 1349, 2852, 2864, 1349, 1642, 1642, 1642,
2220      1349, 1359, 1359, 1359, 2865, 1360, 2873, 2874, 1361, 1362,
2221      1362, 1362, 2875, 2876, 1643, 1634, 1644, 1644, 1644, 2877,
2222      1645, 2878, 2879, 1646, 2880, 2881, 1363, 1374, 1374, 1374,
2223      1374, 1374, 1374, 1374, 1374, 1374, 1378, 1378, 1378, 2797,
2224      1379, 2888, 2891, 1380, 2898, 1376, 2899, 1637, 1376, 2798,
2225      2900, 1376, 1381, 1381, 1381, 2799, 1382, 2901, 2902, 1383,
2226      1384, 1384, 1384, 1659, 1659, 1659, 2903, 1660, 2916, 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      2906, 2922, 1392, 1401, 1401, 1401, 1392, 1671, 1671, 1671,
2231      1658, 1672, 1180, 2907, 1673, 1405, 1405, 1405, 2923, 2908,
2232      1402, 1405, 1405, 1405, 1405, 1405, 1405, 1410, 1410, 1410,
2233      1742, 1411, 2909, 1407, 1412, 2924, 1666, 2925, 2926, 1407,
2234      2927, 2930, 1407, 1413, 1413, 1413, 1413, 1413, 1413, 1413,
2235      1413, 1413, 1418, 1418, 1418, 2931, 1419, 2932, 2933, 1420,
2236      2912, 1415, 2934, 2935, 1415, 2913, 2936, 1415, 1422, 1422,
2237      1422, 1422, 1422, 1422, 2937, 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, 2948, 1678, 1435, 2949, 1438,
2243      1439, 1439, 1439, 2950, 2951, 1681, 1690, 1690, 1690, 2960,
2244      1691, 2964, 2965, 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, 2976, 1448, 1696, 1696, 1696, 1452, 1697, 2977, 2978,
2248      1698, 1701, 1701, 1701, 2979, 1702, 2980, 2981, 1703, 1454,
2249      1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1459, 1459,
2250      1459, 2985, 1460, 2994, 2995, 1461, 2996, 1456, 2986, 2997,
2251
2252      1456, 2998, 2999, 1456, 1462, 1462, 1462, 3003, 2987, 1694,
2253      1462, 1462, 1462, 1462, 1462, 1462, 1466, 1466, 1466, 1708,
2254      1708, 1708, 1464, 1709, 3004, 3005, 1710, 3006, 1464, 3016,
2255      2988, 1464, 2990, 1467, 1468, 1468, 1468, 1711, 1711, 1711,
2256      2989, 1712, 2991, 3017, 1713, 1470, 1470, 1470, 3018, 1705,
2257      3019, 1469, 1470, 1470, 1470, 3020, 1470, 1470, 1470, 1474,
2258      1474, 1474, 2992, 1472, 1715, 1715, 1715, 3021, 1716, 3022,
2259      1472, 1717, 2993, 1707, 1472, 3023, 1475, 1478, 1478, 1478,
2260      1720, 1720, 1720, 1180, 1721, 3027, 3028, 1722, 1480, 1480,
2261      1480, 1480, 1480, 1480, 1479, 1480, 1480, 1480, 1725, 1725,
2262
2263      1725, 1489, 1489, 1489, 3029, 3030, 1482, 3031, 3032, 1482,
2264      1489, 1489, 1489, 1482, 3034, 1726, 3035, 3007, 1714, 1491,
2265      1489, 1489, 1489, 1495, 1495, 1495, 3036, 3037, 1491, 1495,
2266      1495, 1495, 1495, 1495, 1495, 1499, 1499, 1499, 1491, 1500,
2267      3038, 1497, 1501, 1502, 1502, 1502, 3039, 1497, 3040, 3041,
2268      1497, 1502, 1502, 1502, 1502, 1502, 1502, 1723, 1506, 1506,
2269      1506, 1504, 1507, 3045, 3046, 1508, 1510, 1510, 1510, 1504,
2270      3047, 3050, 1504, 1510, 1510, 1510, 1510, 1510, 1510, 3051,
2271      3052, 1730, 3053, 3054, 1512, 1733, 1514, 1514, 1514, 3055,
2272      1515, 1512, 3056, 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, 3057, 1520, 3062, 3063, 1520,
2276      3064, 3065, 1742, 1743, 3066, 1195, 3067, 1562, 1780, 1780,
2277      1780, 3068, 1781, 3069, 3070, 1782, 3071, 1736, 1229, 1229,
2278      1229, 1564, 1564, 1564, 3072, 1784, 1784, 1784, 3073, 1785,
2279      3075, 1738, 1786, 1239, 1239, 1239, 1231, 3076, 1565, 1570,
2280      1570, 1570, 3077, 1571, 3078, 1180, 1572, 1573, 1573, 1573,
2281      3085, 1241, 3086, 1748, 1791, 1791, 1791, 3087, 1792, 3088,
2282      3089, 1793, 3090, 3091, 1574, 1575, 1575, 1575, 3092, 1576,
2283      3093, 3094, 1577, 1579, 1579, 1579, 1783, 1795, 1795, 1795,
2284
2285      3095, 1796, 1789, 3096, 1797, 1255, 1255, 1255, 3079, 3097,
2286      1580, 1584, 1584, 1584, 1801, 1801, 1801, 3098, 1802, 3101,
2287      3102, 1803, 3103, 1257, 1804, 1804, 1804, 3104, 1585, 1262,
2288      1262, 1262, 1589, 1589, 1589, 1822, 1822, 1822, 2164, 2164,
2289      2164, 1805, 1606, 1606, 1606, 3105, 3106, 1264, 3107, 3108,
2290      1590, 3109, 1823, 3115, 3116, 1799, 1824, 1824, 1824, 1607,
2291      1825, 3117, 3118, 1826, 1293, 1293, 1293, 1610, 1610, 1610,
2292      1829, 1829, 1829, 3119, 1830, 3126, 3127, 1831, 1806, 1300,
2293      1300, 1300, 1295, 3128, 1611, 1614, 1614, 1614, 1834, 1834,
2294      1834, 3129, 1835, 3130, 3131, 1836, 3132, 1302, 1306, 1306,
2295
2296      1306, 3133, 1615, 1620, 1620, 1620, 1841, 1841, 1841, 3134,
2297      1842, 3135, 3136, 1843, 3137, 3140, 1308, 1844, 1844, 1844,
2298      1621, 1847, 1847, 1847, 1319, 1319, 1319, 3141, 1827, 1331,
2299      1331, 1331, 3142, 3143, 1845, 1632, 1632, 1632, 1848, 1833,
2300      3151, 1180, 1321, 3152, 1857, 1857, 1857, 1333, 1858, 3146,
2301      3146, 1859, 1633, 1860, 1860, 1860, 1635, 1635, 1635, 1838,
2302      3149, 1862, 1862, 1862, 3147, 1863, 3153, 1849, 1864, 3154,
2303      3155, 1861, 3156, 1636, 1347, 1347, 1347, 1867, 1867, 1867,
2304      1642, 1642, 1642, 3157, 1871, 1871, 1871, 3144, 1872, 3158,
2305      1850, 1873, 1349, 1856, 1868, 3161, 3159, 1643, 1644, 1644,
2306
2307      1644, 3162, 1645, 3165, 3166, 1646, 1876, 1876, 1876, 1374,
2308      1374, 1374, 1659, 1659, 1659, 3163, 1660, 3167, 3168, 1661,
2309      1887, 1887, 1887, 1877, 3502, 3502, 3502, 1376, 3502, 3502,
2310      3502, 3502, 3502, 3502, 1390, 1390, 1390, 1888, 3160, 3169,
2311      1865, 3502, 1894, 1894, 1894, 3502, 3170, 3177, 3502, 1671,
2312      1671, 1671, 1392, 1672, 3164, 3178, 1673, 3179, 3171, 1895,
2313      1898, 1898, 1898, 1405, 1405, 1405, 1413, 1413, 1413, 1422,
2314      1422, 1422, 3184, 3172, 1886, 1890, 3180, 1899, 1910, 1910,
2315      1910, 1407, 3185, 3186, 1415, 3173, 3187, 1424, 3181, 1892,
2316      1433, 1433, 1433, 3188, 1889, 1911, 1687, 1687, 1687, 3182,
2317
2318      1688, 1891, 3189, 1689, 1180, 1690, 1690, 1690, 1435, 1691,
2319      3192, 3183, 1692, 1442, 1442, 1442, 1696, 1696, 1696, 3192,
2320      1697, 3195, 3146, 1698, 1912, 3196, 1906, 1901, 1454, 1454,
2321      1454, 1444, 1903, 1701, 1701, 1701, 3147, 1702, 1742, 1743,
2322      1703, 1462, 1462, 1462, 3197, 3190, 1456, 1913, 1708, 1708,
2323      1708, 3146, 1709, 3198, 3201, 1710, 1711, 1711, 1711, 1464,
2324      1712, 3199, 3149, 1713, 1470, 1470, 1470, 1715, 1715, 1715,
2325      3215, 1716, 3202, 3203, 1717, 3200, 1720, 1720, 1720, 1915,
2326      1721, 3205, 1472, 1722, 1480, 1480, 1480, 3204, 3218, 1920,
2327      1725, 1725, 1725, 1928, 1928, 1928, 3206, 1929, 1922, 3219,
2328
2329      1930, 3220, 1482, 1489, 1489, 1489, 3225, 1726, 1936, 1936,
2330      1936, 1923, 1495, 1495, 1495, 1502, 1502, 1502, 1940, 1940,
2331      1940, 1491, 1510, 1510, 1510, 1937, 1943, 1943, 1943, 3228,
2332      1497, 1926, 3213, 1504, 3216, 1941, 1518, 1518, 1518, 3229,
2333      1512, 3230, 3223, 1944, 1741, 1741, 1741, 1193, 1193, 1193,
2334      3192, 3214, 1934, 3217, 1520, 3226, 1780, 1780, 1780, 3232,
2335      1781, 3224, 1742, 1782, 3192, 1195, 3233, 1939, 1229, 1229,
2336      1229, 1784, 1784, 1784, 3227, 1785, 3234, 3235, 1786, 1938,
2337      1239, 1239, 1239, 3236, 1942, 3237, 1231, 1945, 3238, 1791,
2338      1791, 1791, 3239, 1792, 3240, 1947, 1793, 3241, 1241, 1952,
2339
2340      1795, 1795, 1795, 3242, 1796, 3252, 3253, 1797, 1255, 1255,
2341      1255, 3254, 1948, 1801, 1801, 1801, 3255, 1802, 3256, 3257,
2342      1803, 1804, 1804, 1804, 3258, 3259, 1257, 1262, 1262, 1262,
2343      3263, 1985, 1999, 1999, 1999, 1982, 2000, 3264, 1805, 2001,
2344      2008, 2008, 2008, 3265, 3266, 1264, 2008, 2008, 2008, 1969,
2345      1969, 1969, 3267, 1822, 1822, 1822, 2014, 2014, 2014, 3268,
2346      2015, 3269, 3270, 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, 3277, 1836, 2021, 2021, 2021, 1306, 1306,
2350
2351      1306, 1302, 3278, 3279, 2009, 3280, 3281, 1841, 1841, 1841,
2352      1970, 1842, 2022, 2009, 1843, 3285, 1308, 3283, 3282, 2017,
2353      1844, 1844, 1844, 2026, 2026, 2026, 3286, 2027, 3287, 3284,
2354      2028, 2029, 2029, 2029, 1847, 1847, 1847, 1845, 2031, 2031,
2355      2031, 3288, 2032, 3289, 3290, 2033, 3291, 3292, 2030, 2020,
2356      3293, 1848, 2035, 2035, 2035, 2039, 2039, 2039, 3502, 3502,
2357      3502, 3294, 2023, 2042, 2042, 2042, 1331, 1331, 1331, 3295,
2358      2036, 3296, 2040, 3297, 3298, 3502, 1860, 1860, 1860, 3300,
2359      2043, 1857, 1857, 1857, 1333, 1858, 1180, 3301, 1859, 1862,
2360      1862, 1862, 3302, 1863, 1861, 3303, 1864, 1347, 1347, 1347,
2361
2362      1867, 1867, 1867, 2047, 2047, 2047, 3304, 2048, 3305, 3306,
2363      2049, 3299, 3307, 2044, 3308, 1349, 3309, 1868, 2050, 2050,
2364      2050, 1871, 1871, 1871, 2041, 1872, 3310, 3311, 1873, 1876,
2365      1876, 1876, 2055, 2055, 2055, 2051, 2056, 3312, 3313, 2057,
2366      2058, 2058, 2058, 2045, 3314, 3315, 1877, 2064, 2064, 2064,
2367      1374, 1374, 1374, 1887, 1887, 1887, 3316, 2059, 2069, 2069,
2368      2069, 3317, 2070, 3318, 2065, 2071, 3319, 3320, 1376, 3321,
2369      1888, 2072, 2072, 2072, 3502, 3502, 3502, 2075, 2075, 2075,
2370      1390, 1390, 1390, 1894, 1894, 1894, 3322, 3323, 2073, 3325,
2371      1180, 3502, 3326, 3327, 2076, 2079, 2079, 2079, 1392, 2080,
2372
2373      1895, 3328, 2081, 2082, 2082, 2082, 1898, 1898, 1898, 3324,
2374      2085, 2085, 2085, 3329, 2086, 3330, 2068, 2087, 3331, 3332,
2375      2083, 3333, 3334, 1899, 2089, 2089, 2089, 1413, 1413, 1413,
2376      3335, 3336, 2074, 1422, 1422, 1422, 1910, 1910, 1910, 3337,
2377      2077, 3338, 2090, 3339, 3340, 1415, 3341, 3342, 2099, 2099,
2378      2099, 1424, 2100, 1911, 3343, 2101, 2103, 2103, 2103, 1442,
2379      1442, 1442, 2108, 2108, 2108, 2110, 2110, 2110, 3502, 3502,
2380      3502, 1454, 1454, 1454, 2104, 3344, 3345, 1444, 2092, 2109,
2381      3346, 2095, 2111, 1180, 3348, 3502, 1470, 1470, 1470, 1456,
2382      1462, 1462, 1462, 3349, 2117, 2117, 2117, 2119, 2119, 2119,
2383
2384      1480, 1480, 1480, 3347, 1472, 1928, 1928, 1928, 1464, 1929,
2385      2106, 2118, 1930, 3350, 2120, 1489, 1489, 1489, 1482, 3351,
2386      1936, 1936, 1936, 2128, 2128, 2128, 3352, 2129, 3353, 3354,
2387      2130, 3355, 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, 3364, 3365, 2121, 2126, 2136, 2136, 2136,
2391      1943, 1943, 1943, 2138, 2138, 2138, 3366, 2139, 3367, 3368,
2392      2140, 1518, 1518, 1518, 3369, 2137, 3371, 1944, 2146, 2146,
2393      2146, 1193, 1193, 1193, 1969, 1969, 1969, 2132, 2131, 1520,
2394
2395      2165, 2165, 2165, 3372, 3373, 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, 3374, 2186, 2198,
2400      2198, 2198, 2148, 2008, 2008, 2008, 2205, 2205, 2205, 1180,
2401      3375, 1264, 2207, 2207, 2207, 3370, 2199, 3376, 3377, 2175,
2402      2014, 2014, 2014, 3378, 2015, 3379, 3380, 2016, 3381, 2208,
2403      1293, 1293, 1293, 2213, 2213, 2213, 3382, 2184, 3383, 2197,
2404      2021, 2021, 2021, 2215, 2215, 2215, 3384, 2216, 1295, 3386,
2405
2406      2217, 2214, 1306, 1306, 1306, 3387, 3388, 2022, 2209, 2026,
2407      2026, 2026, 1180, 2027, 3389, 3390, 2028, 2029, 2029, 2029,
2408      1308, 2221, 2221, 2221, 3391, 2222, 3385, 3392, 2223, 2035,
2409      2035, 2035, 3393, 2210, 2030, 2031, 2031, 2031, 3394, 2032,
2410      3395, 3397, 2033, 2037, 2037, 2037, 3398, 2036, 3399, 2218,
2411      2039, 2039, 2039, 2228, 2228, 2228, 3400, 2229, 3401, 3402,
2412      2230, 2231, 2231, 2231, 2042, 2042, 2042, 2040, 2234, 2234,
2413      2234, 3403, 2235, 3404, 3405, 2236, 3406, 3409, 2232, 3410,
2414      3411, 2043, 1331, 1331, 1331, 1347, 1347, 1347, 2047, 2047,
2415      2047, 3412, 2048, 3413, 3414, 2049, 2050, 2050, 2050, 1180,
2416
2417      1333, 1180, 1180, 1349, 2240, 2240, 2240, 2233, 2241, 1180,
2418      1755, 2242, 3425, 2051, 2055, 2055, 2055, 1180, 2056, 1180,
2419      1180, 2057, 2058, 2058, 2058, 2246, 2246, 2246, 1180, 2247,
2420      3423, 1754, 2248, 1180, 1180, 2237, 2249, 2249, 2249, 2059,
2421      2064, 2064, 2064, 2238, 2254, 2254, 2254, 3417, 2255, 3418,
2422      3419, 2256, 3449, 2250, 1374, 1374, 1374, 2065, 2069, 2069,
2423      2069, 3421, 2070, 3422, 3415, 2071, 2072, 2072, 2072, 2260,
2424      2260, 2260, 1376, 2261, 3433, 1180, 2262, 2263, 2263, 2263,
2425      2075, 2075, 2075, 2073, 2265, 2265, 2265, 3426, 2266, 3424,
2426      1180, 2267, 1180, 1180, 2264, 1180, 1753, 2076, 1390, 1390,
2427
2428      1390, 1752, 2079, 2079, 2079, 2259, 2080, 3441, 3499, 2081,
2429      2082, 2082, 2082, 2270, 2270, 2270, 1392, 2271, 1751, 1180,
2430      2272, 2085, 2085, 2085, 3442, 2086, 3416, 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, 1180, 2294,
2435      3427, 2104, 2295, 2110, 2110, 2110, 3428, 2291, 1180, 2109,
2436      1180, 2296, 2296, 2296, 1180, 2297, 1180, 2284, 2298, 1180,
2437      2111, 1454, 1454, 1454, 3431, 1180, 2276, 1180, 1750, 2280,
2438
2439      1462, 1462, 1462, 1470, 1470, 1470, 2117, 2117, 2117, 1456,
2440      2304, 2304, 2304, 1180, 2305, 1180, 3420, 2306, 1464, 1180,
2441      1749, 1472, 3461, 2118, 2119, 2119, 2119, 2307, 2307, 2307,
2442      3434, 2308, 3435, 3429, 2309, 1480, 1480, 1480, 1489, 1489,
2443      1489, 2120, 3430, 2128, 2128, 2128, 1180, 2129, 3436, 2302,
2444      2130, 1180, 3432, 1482, 3445, 3443, 1491, 2300, 1495, 1495,
2445      1495, 1502, 1502, 1502, 1180, 2133, 2133, 2133, 2303, 2134,
2446      1180, 1180, 2135, 2136, 2136, 2136, 1497, 3444, 1747, 1504,
2447      2138, 2138, 2138, 1746, 2139, 3447, 1180, 2140, 1518, 1518,
2448      1518, 2137, 3437, 2146, 2146, 2146, 3457, 2324, 2324, 2324,
2449
2450      2310, 2325, 1745, 2315, 2326, 1180, 1520, 3439, 3440, 2317,
2451      2147, 1193, 1193, 1193, 2318, 2328, 2328, 2328, 2333, 2333,
2452      2333, 2334, 2334, 2334, 2156, 2156, 2156, 1744, 1180, 1195,
2453      2336, 2336, 2336, 1737, 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, 3438, 2327, 1180, 2354, 2354, 2354,
2458      1180, 2355, 1735, 1231, 2356, 1180, 2179, 1180, 2182, 1732,
2459      2343, 2358, 2358, 2358, 2185, 2185, 2185, 2360, 2360, 2360,
2460
2461      1180, 2361, 1731, 1180, 2362, 1262, 1262, 1262, 1729, 2359,
2462      3448, 2186, 2198, 2198, 2198, 3446, 2350, 2374, 2374, 2374,
2463      1180, 2375, 3453, 1264, 2376, 2377, 2377, 2377, 3450, 2199,
2464      2205, 2205, 2205, 2382, 2382, 2382, 2207, 2207, 2207, 2384,
2465      2384, 2384, 3462, 2385, 3481, 1180, 2386, 1293, 1293, 1293,
2466      2213, 2213, 2213, 2208, 2373, 2215, 2215, 2215, 3458, 2216,
2467      1180, 1728, 2217, 3469, 1180, 1295, 3451, 1180, 2214, 1306,
2468      1306, 1306, 1180, 2221, 2221, 2221, 1180, 2222, 3455, 2383,
2469      2223, 2228, 2228, 2228, 1727, 2229, 1180, 1308, 2230, 2231,
2470      2231, 2231, 2400, 2400, 2400, 3454, 2401, 3456, 2388, 2402,
2471
2472      2234, 2234, 2234, 1180, 2235, 3467, 2232, 2236, 1331, 1331,
2473      1331, 1347, 1347, 1347, 2240, 2240, 2240, 1724, 2241, 1180,
2474      3471, 2242, 2391, 2246, 2246, 2246, 1333, 2247, 1719, 1349,
2475      2248, 2249, 2249, 2249, 2410, 2410, 2410, 1180, 2411, 3475,
2476      3459, 2412, 2254, 2254, 2254, 1718, 2255, 1180, 2250, 2256,
2477      2417, 2417, 2417, 1374, 1374, 1374, 2260, 2260, 2260, 2404,
2478      2261, 1706, 1180, 2262, 1180, 3452, 2405, 2418, 2263, 2263,
2479      2263, 1376, 2420, 2420, 2420, 1180, 2421, 3470, 1180, 2422,
2480      2265, 2265, 2265, 3463, 2266, 2264, 1180, 2267, 1390, 1390,
2481      1390, 2270, 2270, 2270, 1180, 2271, 1180, 1180, 2272, 3460,
2482
2483      2428, 2428, 2428, 2278, 2278, 2278, 1392, 2431, 2431, 2431,
2484      3464, 2432, 3465, 1180, 2433, 3466, 1180, 2419, 2429, 1704,
2485      2279, 1422, 1422, 1422, 2282, 2282, 2282, 2436, 2436, 2436,
2486      3472, 2437, 1180, 1180, 2438, 2290, 2290, 2290, 3482, 1424,
2487      3473, 2283, 2293, 2293, 2293, 3468, 2294, 3499, 1180, 2295,
2488      1454, 1454, 1454, 2291, 2423, 2296, 2296, 2296, 1180, 2297,
2489      3477, 1180, 2298, 1180, 1462, 1462, 1462, 3476, 1456, 1470,
2490      1470, 1470, 2304, 2304, 2304, 1180, 2305, 1700, 3474, 2306,
2491      3478, 2434, 1464, 3483, 2307, 2307, 2307, 1472, 2308, 1699,
2492      3491, 2309, 1480, 1480, 1480, 3479, 2454, 2454, 2454, 1180,
2493
2494      3480, 2449, 3502, 3502, 3502, 2452, 3502, 3502, 3502, 1180,
2495      1482, 1180, 2453, 2455, 3502, 3502, 3502, 1695, 1180, 3502,
2496      1489, 1489, 1489, 3502, 1495, 1495, 1495, 2462, 2462, 2462,
2497      2451, 3502, 1518, 1518, 1518, 2468, 2468, 2468, 1491, 2465,
2498      2465, 2465, 1497, 3489, 3484, 2463, 1180, 2324, 2324, 2324,
2499      1520, 2325, 1693, 2456, 2326, 3487, 1180, 1180, 1193, 1193,
2500      1193, 2328, 2328, 2328, 2470, 2470, 2470, 2471, 2471, 2471,
2501      2457, 1685, 1684, 2458, 3492, 1683, 1195, 2333, 2333, 2333,
2502      2334, 2334, 2334, 1180, 2461, 2459, 2336, 2336, 2336, 2475,
2503      2475, 2475, 3485, 3488, 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, 1682, 2469, 2348, 2348,
2507      2348, 2482, 2482, 2482, 2485, 2485, 2485, 2354, 2354, 2354,
2508      1680, 2355, 1180, 1679, 2356, 3502, 3502, 3502, 1180, 2483,
2509      1677, 2486, 2358, 2358, 2358, 1675, 2360, 2360, 2360, 1674,
2510      2361, 1180, 3502, 2362, 1262, 1262, 1262, 2374, 2374, 2374,
2511      2359, 2375, 2499, 2500, 2376, 2501, 2504, 2505, 1180, 2506,
2512      3490, 1670, 1264, 2502, 2377, 2377, 2377, 2507, 3486, 1669,
2513      2503, 2509, 2509, 2509, 2508, 2382, 2382, 2382, 2384, 2384,
2514      2384, 1668, 2385, 1180, 1180, 2386, 1293, 1293, 1293, 3495,
2515
2516      3493, 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, 3494, 3497, 2402, 1667, 2530,
2519      1665, 2410, 2410, 2410, 1349, 2411, 1664, 1663, 2412, 2567,
2520      2567, 2567, 2515, 2537, 2537, 2537, 2417, 2417, 2417, 1180,
2521      2542, 2542, 2542, 1662, 2543, 1655, 2519, 2544, 1654, 1653,
2522      2538, 1652, 1180, 2418, 2545, 2545, 2545, 2420, 2420, 2420,
2523      1651, 2421, 1650, 1649, 2422, 1648, 2531, 2547, 2547, 2547,
2524      1647, 3498, 2546, 2428, 2428, 2428, 2553, 2553, 2553, 2431,
2525      2431, 2431, 1641, 2432, 1640, 2548, 2433, 1422, 1422, 1422,
2526
2527      1639, 2429, 1638, 2554, 2556, 2556, 2556, 2436, 2436, 2436,
2528      3496, 2437, 1630, 1629, 2438, 1424, 3502, 3502, 3502, 1628,
2529      1627, 2557, 3502, 3502, 3502, 3502, 3502, 3502, 2569, 2569,
2530      2569, 1626, 1624, 3502, 2571, 2571, 2571, 1623, 1622, 3502,
2531      1619, 1618, 3502, 1462, 1462, 1462, 2570, 1609, 2555, 1605,
2532      2558, 2572, 1470, 1470, 1470, 1480, 1480, 1480, 2454, 2454,
2533      2454, 1464, 2576, 2576, 2576, 1604, 2577, 1603, 1602, 2578,
2534      1472, 2559, 1601, 1482, 1600, 2455, 2565, 2579, 2579, 2579,
2535      3502, 3502, 3502, 2560, 3502, 3502, 3502, 2583, 2583, 2583,
2536      1599, 1598, 2575, 1596, 2580, 1595, 1593, 3502, 2585, 2585,
2537
2538      2585, 3502, 1592, 2573, 1591, 2584, 1495, 1495, 1495, 2462,
2539      2462, 2462, 1588, 2574, 1518, 1518, 1518, 1586, 2465, 2465,
2540      2465, 2468, 2468, 2468, 1497, 1583, 1581, 2463, 2591, 2591,
2541      2591, 2581, 1520, 1578, 1569, 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, 1567, 2602, 1560, 1558, 2603,
2545      1557, 1556, 2586, 1555, 2483, 1554, 2486, 1553, 2587, 1552,
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, 1551, 1550, 2637, 2638, 2638, 2638, 1549, 1295, 1546,
2550      2518, 2644, 2644, 2644, 2527, 2527, 2527, 2529, 2529, 2529,
2551      1545, 1544, 2639, 1543, 1347, 1347, 1347, 1542, 2645, 2537,
2552      2537, 2537, 2653, 2653, 2653, 2530, 2654, 1541, 1540, 2655,
2553      1539, 2615, 1349, 2657, 2657, 2657, 2538, 2542, 2542, 2542,
2554      1537, 2543, 1536, 1535, 2544, 1534, 2633, 2545, 2545, 2545,
2555      2658, 2547, 2547, 2547, 1533, 2666, 2666, 2666, 2553, 2553,
2556      2553, 2672, 2672, 2672, 1532, 2546, 2669, 2669, 2669, 2548,
2557      2670, 2647, 2667, 2671, 1531, 2554, 2556, 2556, 2556, 2673,
2558      2674, 2674, 2674, 1529, 2675, 1528, 1527, 2676, 2682, 2682,
2559
2560      2682, 1526, 1525, 2557, 2567, 2567, 2567, 2569, 2569, 2569,
2561      2571, 2571, 2571, 1524, 1523, 2683, 2686, 2686, 2686, 1180,
2562      2687, 1517, 1509, 2688, 1494, 2570, 1493, 2572, 2689, 2689,
2563      2689, 1470, 1470, 1470, 1488, 1480, 1480, 1480, 2576, 2576,
2564      2576, 1487, 2577, 1486, 1485, 2578, 2690, 1484, 1458, 1472,
2565      2579, 2579, 2579, 1482, 2693, 2693, 2693, 1446, 2694, 1432,
2566      1431, 2695, 2696, 2696, 2696, 1430, 1426, 2580, 2698, 2698,
2567      2698, 2583, 2583, 2583, 2585, 2585, 2585, 1421, 1417, 2697,
2568      1409, 1404, 2700, 2700, 2700, 2699, 1518, 1518, 1518, 2584,
2569      2591, 2591, 2591, 2595, 2595, 2595, 1403, 1397, 2691, 2692,
2570
2571      2701, 2708, 2708, 2708, 1520, 2712, 2712, 2712, 2592, 2601,
2572      2601, 2601, 1394, 2602, 1373, 1372, 2603, 1262, 1262, 1262,
2573      1371, 1370, 2713, 2630, 2630, 2630, 1293, 1293, 1293, 2749,
2574      2749, 2749, 2635, 2635, 2635, 1264, 2636, 1369, 1368, 2637,
2575      2638, 2638, 2638, 1367, 1295, 1366, 1365, 2702, 2751, 2751,
2576      2751, 2644, 2644, 2644, 1364, 2753, 2753, 2753, 2639, 2754,
2577      1358, 1351, 2755, 1340, 1335, 2752, 1330, 1326, 2645, 2757,
2578      2757, 2757, 2762, 2762, 2762, 1325, 1324, 2731, 2653, 2653,
2579      2653, 1318, 2654, 1317, 1316, 2655, 1312, 2758, 1311, 2763,
2580      2657, 2657, 2657, 1310, 2766, 2766, 2766, 2748, 2767, 1305,
2581
2582      1304, 2768, 2777, 2777, 2777, 1299, 1298, 2658, 2666, 2666,
2583      2666, 2779, 2779, 2779, 1292, 2780, 1291, 1287, 2781, 2778,
2584      2782, 2782, 2782, 1286, 1285, 2667, 2669, 2669, 2669, 1284,
2585      2670, 1283, 1282, 2671, 2672, 2672, 2672, 2783, 2674, 2674,
2586      2674, 1281, 2675, 1280, 1279, 2676, 2682, 2682, 2682, 2787,
2587      2787, 2787, 2673, 2788, 1278, 1277, 2789, 2790, 2790, 2790,
2588      2792, 2792, 2792, 2683, 2686, 2686, 2686, 1276, 2687, 1275,
2589      1269, 2688, 1261, 1260, 2791, 1259, 1254, 2793, 2689, 2689,
2590      2689, 1470, 1470, 1470, 1480, 1480, 1480, 2693, 2693, 2693,
2591      1253, 2694, 1252, 1249, 2695, 1243, 2690, 1238, 1237, 1472,
2592
2593      1233, 1228, 1482, 2696, 2696, 2696, 2802, 2802, 2802, 1227,
2594      2803, 1226, 1225, 2804, 2698, 2698, 2698, 2805, 2805, 2805,
2595      2697, 2806, 1224, 1223, 2807, 2700, 2700, 2700, 1518, 1518,
2596      1518, 2699, 2813, 2813, 2813, 2708, 2708, 2708, 2712, 2712,
2597      2712, 1222, 1220, 2701, 1219, 2801, 1520, 2800, 1218, 2817,
2598      2817, 2817, 1217, 2818, 1216, 2713, 2819, 1262, 1262, 1262,
2599      2851, 2851, 2851, 2853, 2853, 2853, 1293, 1293, 1293, 2749,
2600      2749, 2749, 2856, 2856, 2856, 1264, 2751, 2751, 2751, 1215,
2601      2854, 2859, 2859, 2859, 1295, 2860, 1214, 1213, 2861, 2857,
2602      2808, 1212, 1211, 2752, 2753, 2753, 2753, 1208, 2754, 1207,
2603
2604      1206, 2755, 2862, 2862, 2862, 2757, 2757, 2757, 2837, 2866,
2605      2866, 2866, 2762, 2762, 2762, 2871, 2871, 2871, 2858, 2863,
2606      2868, 2868, 2868, 2758, 2869, 1205, 2867, 2870, 2855, 2763,
2607      1204, 1203, 2872, 2766, 2766, 2766, 1202, 2767, 1201, 1200,
2608      2768, 2777, 2777, 2777, 2882, 2882, 2882, 1199, 2883, 1192,
2609      1191, 2884, 2779, 2779, 2779, 1190, 2780, 1189, 2778, 2781,
2610      2782, 2782, 2782, 2885, 2885, 2885, 1188, 2886, 1187, 1186,
2611      2887, 2889, 2889, 2889, 2787, 2787, 2787, 2783, 2788, 1183,
2612      1181, 2789, 2790, 2790, 2790, 2892, 2892, 2892, 2890, 2893,
2613      1180, 1178, 2894, 2792, 2792, 2792, 2895, 2895, 2895, 2791,
2614
2615      2896, 1176, 1173, 2897, 1470, 1470, 1470, 1480, 1480, 1480,
2616      2793, 2802, 2802, 2802, 1171, 2803, 1168, 1164, 2804, 2805,
2617      2805, 2805, 1472, 2806, 1162, 1482, 2807, 2910, 2910, 2910,
2618      2914, 2914, 2914, 2813, 2813, 2813, 2917, 2917, 2917, 2817,
2619      2817, 2817, 1161, 2818, 1160, 2911, 2819, 2915, 1742, 2928,
2620      2928, 2928, 1262, 1262, 1262, 2904, 2851, 2851, 2851, 2952,
2621      2952, 2952, 2853, 2853, 2853, 1158, 2929, 1293, 1293, 1293,
2622      1264, 2953, 2953, 2953, 2905, 2954, 1157, 1156, 2955, 2854,
2623      2856, 2856, 2856, 1155, 1154, 1295, 2957, 2957, 2957, 1153,
2624      2958, 1151, 1150, 2959, 2862, 2862, 2862, 2857, 2859, 2859,
2625
2626      2859, 2938, 2860, 1149, 1148, 2861, 2961, 2961, 2961, 1146,
2627      2962, 2863, 1145, 2963, 2866, 2866, 2866, 1144, 2956, 2966,
2628      2966, 2966, 1140, 2967, 1139, 1137, 2968, 1136, 2868, 2868,
2629      2868, 2867, 2869, 1135, 1134, 2870, 2871, 2871, 2871, 2969,
2630      2969, 2969, 1133, 2970, 1132, 1130, 2971, 2882, 2882, 2882,
2631      1129, 2883, 1128, 2872, 2884, 2885, 2885, 2885, 1127, 2886,
2632      1125, 1124, 2887, 2889, 2889, 2889, 2982, 2982, 2982, 1123,
2633      2983, 1120, 1119, 2984, 2892, 2892, 2892, 1117, 2893, 1114,
2634      2890, 2894, 2895, 2895, 2895, 1113, 2896, 1109, 1108, 2897,
2635      3000, 3000, 3000, 1480, 1480, 1480, 2910, 2910, 2910, 3008,
2636
2637      3008, 3008, 2914, 2914, 2914, 3010, 3010, 3010, 3001, 3011,
2638      1106, 1482, 3012, 1105, 2911, 1104, 3009, 1742, 1101, 2915,
2639      1742, 1100, 1099, 1742, 3013, 3013, 3013, 2917, 2917, 2917,
2640      3014, 3014, 3014, 3015, 3015, 3015, 2928, 2928, 2928, 3024,
2641      3024, 3024, 1098, 3025, 1096, 1095, 3026, 1262, 1262, 1262,
2642      3042, 3042, 3042, 2929, 2952, 2952, 2952, 1094, 1093, 3002,
2643      2953, 2953, 2953, 1092, 2954, 1264, 1087, 2955, 3043, 3043,
2644      3043, 2957, 2957, 2957, 1085, 2958, 1084, 1083, 2959, 1082,
2645      2961, 2961, 2961, 1081, 2962, 1080, 3044, 2963, 2966, 2966,
2646      2966, 1079, 2967, 1078, 1077, 2968, 2969, 2969, 2969, 1076,
2647
2648      2970, 1075, 1072, 2971, 3048, 3048, 3048, 3058, 3058, 3058,
2649      2982, 2982, 2982, 3033, 2983, 1069, 1068, 2984, 3060, 3060,
2650      3060, 3049, 1067, 1061, 3059, 3000, 3000, 3000, 1480, 1480,
2651      1480, 3008, 3008, 3008, 1060, 3061, 1058, 3080, 3080, 3080,
2652      1057, 3081, 1055, 3001, 3082, 1052, 1482, 1051, 3009, 1742,
2653      3010, 3010, 3010, 1048, 3011, 1742, 1046, 3012, 3013, 3013,
2654      3013, 3014, 3014, 3014, 3015, 3015, 3015, 1045, 1742, 3024,
2655      3024, 3024, 1044, 3025, 1039, 1038, 3026, 1036, 1035, 3074,
2656      1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1034,
2657      1032, 1740, 3099, 3099, 3099, 1031, 1740, 1740, 1740, 1742,
2658
2659      1740, 3042, 3042, 3042, 3043, 3043, 3043, 3048, 3048, 3048,
2660      3100, 3110, 3110, 3110, 1029, 3111, 1027, 1026, 3112, 3113,
2661      3113, 3113, 3044, 1023, 3049, 1740, 1740, 1740, 1740, 1740,
2662      1740, 1740, 1740, 1740, 1740, 1740, 3114, 1018, 1740, 3058,
2663      3058, 3058, 1017, 1740, 1740, 1740, 1742, 1740, 3120, 3120,
2664      3120, 1014, 3121, 1013, 1012, 3122, 3059, 3060, 3060, 3060,
2665      3123, 3123, 3123, 1009, 3124, 1008, 1006, 3125, 3138, 3138,
2666      3138, 1003, 1740, 1740, 3061, 3080, 3080, 3080, 1001, 3081,
2667      1000,  999, 3082,  998,  996,  995, 3139,  994, 3099, 3099,
2668      3099,  993,  992, 1742, 1740, 1740, 1740, 1740, 1740, 3150,
2669
2670      1740, 1740, 1740,  991,  988, 1740, 3100, 3113, 3113, 3113,
2671      1740, 1740, 1740, 1742, 1740, 3110, 3110, 3110,  987, 3111,
2672       986,  983, 3112,  980, 3114, 3174, 3174, 3174,  979, 3175,
2673       977,  976, 3176, 3138, 3138, 3138, 3194, 3194, 3194, 1740,
2674      1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 3150,
2675       973, 3139, 1740,  970, 1742, 1743,  967, 1740, 1740, 1740,
2676      1742, 1740, 3120, 3120, 3120,  966, 3121,  958,  957, 3122,
2677      3123, 3123, 3123,  956, 3124,  955,  949, 3125, 3207, 3207,
2678      3207, 3209, 3209, 3209,  948,  947, 1740, 1740, 3211, 3211,
2679      3211,  945, 3174, 3174, 3174, 3208, 3175,  944, 3210, 3176,
2680
2681      3221, 3221, 3221,  943,  942, 3212, 3231, 3231, 3231, 3194,
2682      3194, 3194, 3207, 3207, 3207,  941,  940, 3222, 3243, 3243,
2683      3243,  935, 3244,  932, 1180, 3245,  934, 1742,  929, 3208,
2684      3209, 3209, 3209, 3246, 3246, 3246,  928, 3247,  926,  924,
2685      3248, 3211, 3211, 3211, 3249, 3249, 3249, 3210, 3250,  923,
2686       921, 3251, 3221, 3221, 3221, 3260, 3260, 3260, 3212, 3261,
2687      1947,  919, 3262, 3231, 3231, 3231, 3243, 3243, 3243, 3222,
2688      3244,  917,  915, 3245,  913, 3246, 3246, 3246,  910, 3247,
2689       909, 1180, 3248, 3249, 3249, 3249,  908, 3250,  907,  906,
2690      3251, 3260, 3260, 3260,  904, 3261,  902,  901, 3262,  900,
2691
2692      3271, 3396, 3396, 3396, 3396, 3396, 3396,  898, 3407,  896,
2693       895, 3408, 3500, 3500, 3500, 3500, 3500, 3500,  893, 1180,
2694       891,  890, 1180,  888,  884,  883,  881,  876,  874,  870,
2695      3501,  869,  868, 3501,  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,  866,  864,  863,  693,  720,  720,
2759       720,  862,  860,  858,  720,  724,  724,  724,  857,  855,
2760       853,  724,  732,  732,  732,  852,  851,  850,  732,  743,
2761       743,  743,  849,  848,  847,  743,  749,  749,  749,  845,
2762       843,  842,  749,  772,  772,  772,  839,  838,  837,  772,
2763       780,  780,  780,  835,  833,  822,  780,  785,  785,  785,
2764       821,  818,  816,  785,  790,  790,  790,  814,  813,  812,
2765       790,  800,  800,  800,  810,  808,  806,  800,  807,  807,
2766       807,  804,  803,  802,  807,  811,  811,  811,  801,  799,
2767       798,  811,  817,  817,  817,  796,  793,  792,  817,  836,
2768
2769       836,  836,  791,  789,  787,  836,  846,  846,  846,  786,
2770       784,  782,  846,  856,  856,  856,  781,  779,  776,  856,
2771       861,  861,  861,  775,  774,  773,  861,  867,  867,  867,
2772       771, 3502,  718,  867,  875,  875,  875,  751,  750,  748,
2773       875,  882,  882,  882,  746,  745,  744,  882,  889,  889,
2774       889,  742,  738,  734,  889,  894,  894,  894,  733,  731,
2775       730,  894,  899,  899,  899,  727,  726,  725,  899,  905,
2776       905,  905,  723,  722,  721,  905,  914,  914,  914,  719,
2777       714, 3502,  914,  918,  918,  918,  694,  692,  690,  918,
2778       922,  922,  922,  684,  683,  684,  922,  927,  927,  927,
2779
2780       683,  682,  681,  927,  931,  931,  931,  931,  931,  931,
2781       931, 3502,  931,  693,  693,  693, 3502, 3502, 3502,  693,
2782       946, 3502, 3502, 3502,  946,  720,  720,  720, 3502, 3502,
2783      3502,  720,  978, 3502, 3502, 3502,  978,  724,  724,  724,
2784      3502, 3502, 3502,  724,  985, 3502, 3502, 3502,  985,  732,
2785       732,  732, 3502, 3502, 3502,  732,  997, 3502, 3502, 3502,
2786       997,  743,  743,  743, 3502, 3502, 3502,  743, 1002, 3502,
2787      3502, 3502, 1002,  749,  749,  749, 3502, 3502, 3502,  749,
2788      1007, 3502, 3502, 3502, 1007,  772,  772,  772, 3502, 3502,
2789      3502,  772, 1028, 3502, 3502, 3502, 1028,  780,  780,  780,
2790
2791      3502, 3502, 3502,  780, 1033, 3502, 3502, 3502, 1033,  785,
2792       785,  785, 3502, 3502, 3502,  785, 1037, 3502, 3502, 3502,
2793      1037,  790,  790,  790, 3502, 3502, 3502,  790, 1047, 3502,
2794      3502, 3502, 1047,  800,  800,  800, 3502, 3502, 3502,  800,
2795      1056, 3502, 3502, 3502, 1056,  807,  807,  807, 3502, 3502,
2796      3502,  807, 1059, 3502, 3502, 3502, 1059,  811,  811,  811,
2797      3502, 3502, 3502,  811, 1066, 3502, 3502, 3502, 1066,  817,
2798       817,  817, 3502, 3502, 3502,  817, 1086, 3502, 3502, 3502,
2799      1086,  836,  836,  836, 3502, 3502, 3502,  836, 1097, 3502,
2800      3502, 3502, 1097,  846,  846,  846, 3502, 3502, 3502,  846,
2801
2802      1107, 3502, 3502, 3502, 1107,  856,  856,  856, 3502, 3502,
2803      3502,  856, 1112, 3502, 3502, 3502, 1112,  861,  861,  861,
2804      3502, 3502, 3502,  861, 1118, 3502, 3502, 3502, 1118,  867,
2805       867,  867, 3502, 3502, 3502,  867, 1126, 3502, 3502, 3502,
2806      1126,  875,  875,  875, 3502, 3502, 3502,  875, 1131, 3502,
2807      3502, 3502, 1131,  882,  882,  882, 3502, 3502, 3502,  882,
2808      1138, 3502, 3502, 3502, 1138,  889,  889,  889, 3502, 3502,
2809      3502,  889, 1143, 3502, 3502, 3502, 1143,  894,  894,  894,
2810      3502, 3502, 3502,  894, 1147, 3502, 3502, 3502, 1147,  899,
2811       899,  899, 3502, 3502, 3502,  899, 1152, 3502, 3502, 3502,
2812
2813      1152,  905,  905,  905, 3502, 3502, 3502,  905, 1159, 3502,
2814      3502, 3502, 1159,  914,  914,  914, 3502, 3502, 3502,  914,
2815      1163, 3502, 3502, 3502, 1163,  918,  918,  918, 3502, 3502,
2816      3502,  918, 1167, 3502, 3502, 3502, 1167,  922,  922,  922,
2817      3502, 3502, 3502,  922, 1172, 3502, 3502, 3502, 1172,  927,
2818       927,  927, 3502, 3502, 3502,  927, 1177, 3502, 3502, 3502,
2819      1177, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179,
2820      1185, 3502, 3502, 3502, 3502, 1185,  693,  693,  693, 3502,
2821      3502, 3502,  693, 1194, 1194, 1194, 1194, 3502, 3502, 1194,
2822      1194,  720,  720,  720, 3502, 3502, 3502,  720, 1230, 1230,
2823
2824      1230, 1230, 3502, 3502, 1230, 1230,  724,  724,  724, 3502,
2825      3502, 3502,  724, 1240, 1240, 1240, 1240, 3502, 3502, 1240,
2826      1240,  732,  732,  732, 3502, 3502, 3502,  732, 1256, 1256,
2827      1256, 1256, 3502, 3502, 1256, 1256,  743,  743,  743, 3502,
2828      3502, 3502,  743, 1263, 1263, 1263, 1263, 3502, 3502, 1263,
2829      1263,  749,  749,  749, 3502, 3502, 3502,  749, 1271, 1271,
2830      1271, 1271, 3502, 3502, 1271, 1271,  772,  772,  772, 3502,
2831      3502, 3502,  772, 1294, 1294, 1294, 1294, 3502, 3502, 1294,
2832      1294,  780,  780,  780, 3502, 3502, 3502,  780, 1301, 1301,
2833      1301, 1301, 3502, 3502, 1301, 1301,  785,  785,  785, 3502,
2834
2835      3502, 3502,  785, 1307, 1307, 1307, 1307, 3502, 3502, 1307,
2836      1307,  790,  790,  790, 3502, 3502, 3502,  790, 1320, 1320,
2837      1320, 1320, 3502, 3502, 1320, 1320,  800,  800,  800, 3502,
2838      3502, 3502,  800, 1332, 1332, 1332, 1332, 3502, 3502, 1332,
2839      1332,  807,  807,  807, 3502, 3502, 3502,  807, 1337, 1337,
2840      1337, 1337, 3502, 3502, 1337, 1337,  811,  811,  811, 3502,
2841      3502, 3502,  811, 1348, 1348, 1348, 1348, 3502, 3502, 1348,
2842      1348,  817,  817,  817, 3502, 3502, 3502,  817, 1375, 1375,
2843      1375, 1375, 3502, 3502, 1375, 1375,  836,  836,  836,  836,
2844      3502,  836, 3502,  836, 1391, 1391, 1391, 1391, 3502, 3502,
2845
2846      1391, 1391,  846,  846,  846, 3502, 3502, 3502,  846, 1406,
2847      1406, 1406, 1406, 3502, 3502, 1406, 1406,  856,  856,  856,
2848      3502, 3502, 3502,  856, 1414, 1414, 1414, 1414, 3502, 3502,
2849      1414, 1414,  861,  861,  861, 3502, 3502, 3502,  861, 1423,
2850      1423, 1423, 1423, 3502, 3502, 1423, 1423,  867,  867,  867,
2851      3502, 3502, 3502,  867, 1434, 1434, 1434, 1434, 3502, 3502,
2852      1434, 1434,  875,  875,  875,  875, 3502,  875, 3502,  875,
2853      1443, 1443, 1443, 1443, 3502, 3502, 1443, 1443,  882,  882,
2854       882,  882, 3502,  882, 3502,  882, 1455, 1455, 1455, 1455,
2855      3502, 3502, 1455, 1455,  889,  889,  889, 3502, 3502, 3502,
2856
2857       889, 1463, 1463, 1463, 1463, 3502, 3502, 1463, 1463,  894,
2858       894,  894,  894, 3502,  894, 3502,  894, 1471, 1471, 1471,
2859      1471, 3502, 3502, 1471, 1471,  899,  899,  899,  899, 3502,
2860       899, 3502,  899, 1481, 1481, 1481, 1481, 3502, 3502, 1481,
2861      1481,  905,  905,  905, 3502, 3502, 3502,  905, 1490, 1490,
2862      1490, 1490, 3502, 3502, 1490, 1490,  914,  914,  914, 3502,
2863      3502, 3502,  914, 1496, 1496, 1496, 1496, 3502, 3502, 1496,
2864      1496, 1503, 1503, 1503, 1503, 3502, 3502, 1503, 1503,  922,
2865       922,  922, 3502, 3502, 3502,  922, 1511, 1511, 1511, 1511,
2866      3502, 3502, 1511, 1511,  927,  927,  927, 3502, 3502, 3502,
2867
2868       927, 1519, 1519, 1519, 1519, 3502, 3502, 1519, 1519, 1179,
2869      1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1185, 3502,
2870      1185, 3502, 3502, 1185,  693,  693,  693, 3502, 3502, 3502,
2871       693, 1194, 1194, 1194, 1194, 3502, 3502, 1194, 1194,  720,
2872       720,  720,  720, 3502,  720, 3502,  720, 1230, 1230, 1230,
2873      1230, 3502, 3502, 1230, 1230,  724,  724,  724,  724, 3502,
2874       724, 3502,  724, 1240, 1240, 1240, 1240, 3502, 3502, 1240,
2875      1240,  732,  732,  732, 3502, 3502, 3502,  732, 1256, 1256,
2876      1256, 1256, 3502, 3502, 1256, 1256,  743,  743,  743, 3502,
2877      3502, 3502,  743, 1263, 1263, 1263, 1263, 3502, 3502, 1263,
2878
2879      1263,  749,  749,  749, 3502, 3502, 3502,  749, 1271, 1271,
2880      1271, 1271, 3502, 3502, 1271, 1271,  772,  772,  772, 3502,
2881      3502, 3502,  772, 1294, 1294, 1294, 1294, 3502, 3502, 1294,
2882      1294,  780,  780,  780,  780, 3502,  780, 3502,  780, 1301,
2883      1301, 1301, 1301, 3502, 3502, 1301, 1301,  785,  785,  785,
2884       785, 3502,  785, 3502,  785, 1307, 1307, 1307, 1307, 3502,
2885      3502, 1307, 1307,  790,  790,  790, 3502, 3502, 3502,  790,
2886      1320, 1320, 1320, 1320, 3502, 3502, 1320, 1320,  800,  800,
2887       800, 3502, 3502, 3502,  800, 1332, 1332, 1332, 1332, 3502,
2888      3502, 1332, 1332,  807,  807,  807,  807, 3502,  807, 3502,
2889
2890       807, 1337, 1337, 1337, 1337, 3502, 3502, 1337, 1337,  811,
2891       811,  811,  811, 3502,  811, 3502,  811, 1348, 1348, 1348,
2892      1348, 3502, 3502, 1348, 1348,  817,  817,  817, 3502, 3502,
2893      3502,  817, 1375, 1375, 1375, 1375, 3502, 3502, 1375, 1375,
2894       836,  836,  836, 3502, 3502, 3502,  836, 1391, 1391, 1391,
2895      1391, 3502, 3502, 1391, 1391,  846,  846,  846, 3502, 3502,
2896      3502,  846, 1406, 1406, 1406, 1406, 3502, 3502, 1406, 1406,
2897       856,  856,  856, 3502, 3502, 3502,  856, 1414, 1414, 1414,
2898      1414, 3502, 3502, 1414, 1414,  861,  861,  861, 3502, 3502,
2899      3502,  861, 1423, 1423, 1423, 1423, 3502, 3502, 1423, 1423,
2900
2901       867,  867,  867, 3502, 3502, 3502,  867, 1434, 1434, 1434,
2902      1434, 3502, 3502, 1434, 1434,  875,  875,  875, 3502, 3502,
2903      3502,  875, 1443, 1443, 1443, 1443, 3502, 3502, 1443, 1443,
2904       882,  882,  882, 3502, 3502, 3502,  882, 1455, 1455, 1455,
2905      1455, 3502, 3502, 1455, 1455,  889,  889,  889, 3502, 3502,
2906      3502,  889, 1463, 1463, 1463, 1463, 3502, 3502, 1463, 1463,
2907      1471, 1471, 1471, 1471, 3502, 3502, 1471, 1471,  899,  899,
2908       899, 3502, 3502, 3502,  899, 1481, 1481, 1481, 1481, 3502,
2909      3502, 1481, 1481,  905,  905,  905, 3502, 3502, 3502,  905,
2910      1490, 1490, 1490, 1490, 3502, 3502, 1490, 1490,  914,  914,
2911
2912       914, 3502, 3502, 3502,  914, 1496, 1496, 1496, 1496, 3502,
2913      3502, 1496, 1496, 1503, 1503, 1503, 1503, 3502, 3502, 1503,
2914      1503,  922,  922,  922, 3502, 3502, 3502,  922, 1511, 1511,
2915      1511, 1511, 3502, 3502, 1511, 1511,  927,  927,  927, 3502,
2916      3502, 3502,  927, 1519, 1519, 1519, 1519, 3502, 3502, 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, 3502, 3502, 3502,  693, 1194, 1194, 1194, 1194,
2920      3502, 3502, 1194, 1194, 1230, 1230, 1230, 1230, 3502, 3502,
2921      1230, 1230,  724,  724,  724, 3502, 3502, 3502,  724, 1240,
2922
2923      1240, 1240, 1240, 3502, 3502, 1240, 1240,  732,  732,  732,
2924      3502, 3502, 3502,  732, 1256, 1256, 1256, 1256, 3502, 3502,
2925      1256, 1256,  743,  743,  743, 3502, 3502, 3502,  743, 1263,
2926      1263, 1263, 1263, 3502, 3502, 1263, 1263,  749,  749,  749,
2927      3502, 3502, 3502,  749,  772,  772,  772, 3502, 3502, 3502,
2928       772, 1294, 1294, 1294, 1294, 3502, 3502, 1294, 1294,  780,
2929       780,  780, 3502, 3502, 3502,  780, 1301, 1301, 1301, 1301,
2930      3502, 3502, 1301, 1301,  785,  785,  785, 3502, 3502, 3502,
2931       785, 1307, 1307, 1307, 1307, 3502, 3502, 1307, 1307,  790,
2932       790,  790, 3502, 3502, 3502,  790, 1320, 1320, 1320, 1320,
2933
2934      3502, 3502, 1320, 1320,  800,  800,  800, 3502, 3502, 3502,
2935       800, 1332, 1332, 1332, 1332, 3502, 3502, 1332, 1332, 1337,
2936      1337, 1337, 1337, 3502, 3502, 1337, 1337, 1348, 1348, 1348,
2937      1348, 3502, 3502, 1348, 1348,  817,  817,  817, 3502, 3502,
2938      3502,  817, 1375, 1375, 1375, 1375, 3502, 3502, 1375, 1375,
2939       836,  836,  836,  836, 3502,  836, 3502,  836, 1391, 1391,
2940      1391, 1391, 3502, 3502, 1391, 1391,  846,  846,  846, 3502,
2941      3502, 3502,  846, 1406, 1406, 1406, 1406, 3502, 3502, 1406,
2942      1406,  856,  856,  856, 3502, 3502, 3502,  856, 1414, 1414,
2943      1414, 1414, 3502, 3502, 1414, 1414,  861,  861,  861, 3502,
2944
2945      3502, 3502,  861, 1423, 1423, 1423, 1423, 3502, 3502, 1423,
2946      1423,  867,  867,  867, 3502, 3502, 3502,  867, 1434, 1434,
2947      1434, 1434, 3502, 3502, 1434, 1434,  875,  875,  875, 3502,
2948      3502, 3502,  875, 1443, 1443, 1443, 1443, 3502, 3502, 1443,
2949      1443,  882,  882,  882, 3502, 3502, 3502,  882, 1455, 1455,
2950      1455, 1455, 3502, 3502, 1455, 1455,  889,  889,  889, 3502,
2951      3502, 3502,  889, 1463, 1463, 1463, 1463, 3502, 3502, 1463,
2952      1463, 1471, 1471, 1471, 1471, 3502, 3502, 1471, 1471,  899,
2953       899,  899, 3502, 3502, 3502,  899, 1481, 1481, 1481, 1481,
2954      3502, 3502, 1481, 1481,  905,  905,  905, 3502, 3502, 3502,
2955
2956       905, 1490, 1490, 1490, 1490, 3502, 3502, 1490, 1490,  914,
2957       914,  914,  914, 3502,  914, 3502,  914, 1496, 1496, 1496,
2958      1496, 3502, 3502, 1496, 1496, 1503, 1503, 1503, 1503, 3502,
2959      3502, 1503, 1503,  922,  922,  922,  922, 3502,  922, 3502,
2960       922, 1511, 1511, 1511, 1511, 3502, 3502, 1511, 1511,  927,
2961       927,  927,  927, 3502,  927, 3502,  927, 1519, 1519, 1519,
2962      1519, 3502, 3502, 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, 3502, 3502, 3502,  693,
2965      1194, 1194, 1194, 1194, 3502, 3502, 1194, 1194, 1230, 1230,
2966
2967      1230, 1230, 3502, 3502, 1230, 1230,  724,  724,  724, 3502,
2968      3502, 3502,  724, 1240, 1240, 1240, 1240, 3502, 3502, 1240,
2969      1240,  732,  732,  732, 3502, 3502, 3502,  732, 1256, 1256,
2970      1256, 1256, 3502, 3502, 1256, 1256,  743,  743,  743, 3502,
2971      3502, 3502,  743, 1263, 1263, 1263, 1263, 3502, 3502, 1263,
2972      1263,  749,  749,  749, 3502, 3502, 3502,  749,  772,  772,
2973       772, 3502, 3502, 3502,  772, 1294, 1294, 1294, 1294, 3502,
2974      3502, 1294, 1294,  780,  780,  780, 3502, 3502, 3502,  780,
2975      1301, 1301, 1301, 1301, 3502, 3502, 1301, 1301,  785,  785,
2976       785,  785, 3502,  785, 3502,  785, 1307, 1307, 1307, 1307,
2977
2978      3502, 3502, 1307, 1307,  790,  790,  790, 3502, 3502, 3502,
2979       790, 1320, 1320, 1320, 1320, 3502, 3502, 1320, 1320,  800,
2980       800,  800,  800, 3502,  800, 3502,  800, 1332, 1332, 1332,
2981      1332, 3502, 3502, 1332, 1332, 1348, 1348, 1348, 1348, 3502,
2982      3502, 1348, 1348,  817,  817,  817, 3502, 3502, 3502,  817,
2983      1375, 1375, 1375, 1375, 3502, 3502, 1375, 1375,  836,  836,
2984       836,  836, 3502,  836, 3502,  836, 1391, 1391, 1391, 1391,
2985      3502, 3502, 1391, 1391,  846,  846,  846, 3502, 3502, 3502,
2986       846, 1406, 1406, 1406, 1406, 3502, 3502, 1406, 1406,  856,
2987       856,  856, 3502, 3502, 3502,  856, 1414, 1414, 1414, 1414,
2988
2989      3502, 3502, 1414, 1414,  861,  861,  861, 3502, 3502, 3502,
2990       861, 1423, 1423, 1423, 1423, 3502, 3502, 1423, 1423,  867,
2991       867,  867, 3502, 3502, 3502,  867, 1434, 1434, 1434, 1434,
2992      3502, 3502, 1434, 1434,  875,  875,  875, 3502, 3502, 3502,
2993       875, 1443, 1443, 1443, 1443, 3502, 3502, 1443, 1443,  882,
2994       882,  882,  882, 3502,  882, 3502,  882, 1455, 1455, 1455,
2995      1455, 3502, 3502, 1455, 1455,  889,  889,  889, 3502, 3502,
2996      3502,  889, 1463, 1463, 1463, 1463, 3502, 3502, 1463, 1463,
2997      1471, 1471, 1471, 1471, 3502, 3502, 1471, 1471,  899,  899,
2998       899,  899, 3502,  899, 3502,  899, 1481, 1481, 1481, 1481,
2999
3000      3502, 3502, 1481, 1481,  905,  905,  905, 3502, 3502, 3502,
3001       905, 1490, 1490, 1490, 1490, 3502, 3502, 1490, 1490, 1496,
3002      1496, 1496, 1496, 3502, 3502, 1496, 1496, 1503, 1503, 1503,
3003      1503, 3502, 3502, 1503, 1503, 1511, 1511, 1511, 1511, 3502,
3004      3502, 1511, 1511, 1519, 1519, 1519, 1519, 3502, 3502, 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, 3502,  693, 3502,  693, 1194, 1194, 1194,
3008      1194, 3502, 3502, 1194, 1194, 1230, 1230, 1230, 1230, 3502,
3009      3502, 1230, 1230,  724,  724,  724, 3502, 3502, 3502,  724,
3010
3011      1240, 1240, 1240, 1240, 3502, 3502, 1240, 1240,  732,  732,
3012       732, 3502, 3502, 3502,  732, 1256, 1256, 1256, 1256, 3502,
3013      3502, 1256, 1256,  743,  743,  743,  743, 3502,  743, 3502,
3014       743, 1263, 1263, 1263, 1263, 3502, 3502, 1263, 1263,  749,
3015       749,  749,  749, 3502,  749, 3502,  749,  772,  772,  772,
3016       772, 3502,  772, 3502,  772, 1294, 1294, 1294, 1294, 3502,
3017      3502, 1294, 1294,  780,  780,  780, 3502, 3502, 3502,  780,
3018      1301, 1301, 1301, 1301, 3502, 3502, 1301, 1301, 1307, 1307,
3019      1307, 1307, 3502, 3502, 1307, 1307,  790,  790,  790, 3502,
3020      3502, 3502,  790,  800,  800,  800,  800, 3502,  800, 3502,
3021
3022       800, 1332, 1332, 1332, 1332, 3502, 3502, 1332, 1332, 1348,
3023      1348, 1348, 1348, 3502, 3502, 1348, 1348,  817,  817,  817,
3024      3502, 3502, 3502,  817, 1375, 1375, 1375, 1375, 3502, 3502,
3025      1375, 1375,  836,  836,  836,  836, 3502,  836, 3502,  836,
3026      1391, 1391, 1391, 1391, 3502, 3502, 1391, 1391,  846,  846,
3027       846, 3502, 3502, 3502,  846,  856,  856,  856, 3502, 3502,
3028      3502,  856, 1414, 1414, 1414, 1414, 3502, 3502, 1414, 1414,
3029       861,  861,  861, 3502, 3502, 3502,  861, 1423, 1423, 1423,
3030      1423, 3502, 3502, 1423, 1423,  867,  867,  867, 3502, 3502,
3031      3502,  867,  875,  875,  875, 3502, 3502, 3502,  875, 1443,
3032
3033      1443, 1443, 1443, 3502, 3502, 1443, 1443,  882,  882,  882,
3034      3502, 3502, 3502,  882, 1455, 1455, 1455, 1455, 3502, 3502,
3035      1455, 1455,  889,  889,  889, 3502, 3502, 3502,  889, 1463,
3036      1463, 1463, 1463, 3502, 3502, 1463, 1463, 1471, 1471, 1471,
3037      1471, 3502, 3502, 1471, 1471, 1481, 1481, 1481, 1481, 3502,
3038      3502, 1481, 1481,  905,  905,  905, 3502, 3502, 3502,  905,
3039      1490, 1490, 1490, 1490, 3502, 3502, 1490, 1490, 1496, 1496,
3040      1496, 1496, 3502, 3502, 1496, 1496, 1503, 1503, 1503, 1503,
3041      3502, 3502, 1503, 1503, 1519, 1519, 1519, 1519, 3502, 3502,
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, 3502, 3502, 1194, 1194, 1230, 1230,
3046      1230, 1230, 3502, 3502, 1230, 1230,  724,  724,  724, 3502,
3047      3502, 3502,  724,  732,  732,  732, 3502, 3502, 3502,  732,
3048      1256, 1256, 1256, 1256, 3502, 3502, 1256, 1256, 1263, 1263,
3049      1263, 1263, 3502, 3502, 1263, 1263,  772,  772,  772, 3502,
3050      3502, 3502,  772, 1294, 1294, 1294, 1294, 3502, 3502, 1294,
3051      1294,  780,  780,  780, 3502, 3502, 3502,  780, 1307, 1307,
3052      1307, 1307, 3502, 3502, 1307, 1307,  790,  790,  790, 3502,
3053      3502, 3502,  790,  800,  800,  800, 3502, 3502, 3502,  800,
3054
3055      1332, 1332, 1332, 1332, 3502, 3502, 1332, 1332, 1348, 1348,
3056      1348, 1348, 3502, 3502, 1348, 1348,  817,  817,  817, 3502,
3057      3502, 3502,  817, 1375, 1375, 1375, 1375, 3502, 3502, 1375,
3058      1375, 1391, 1391, 1391, 1391, 3502, 3502, 1391, 1391,  846,
3059       846,  846, 3502, 3502, 3502,  846,  856,  856,  856, 3502,
3060      3502, 3502,  856, 1414, 1414, 1414, 1414, 3502, 3502, 1414,
3061      1414,  861,  861,  861, 3502, 3502, 3502,  861, 1423, 1423,
3062      1423, 1423, 3502, 3502, 1423, 1423,  867,  867,  867, 3502,
3063      3502, 3502,  867,  875,  875,  875, 3502, 3502, 3502,  875,
3064       882,  882,  882, 3502, 3502, 3502,  882, 1455, 1455, 1455,
3065
3066      1455, 3502, 3502, 1455, 1455,  889,  889,  889, 3502, 3502,
3067      3502,  889, 1463, 1463, 1463, 1463, 3502, 3502, 1463, 1463,
3068      1471, 1471, 1471, 1471, 3502, 3502, 1471, 1471, 1481, 1481,
3069      1481, 1481, 3502, 3502, 1481, 1481,  905,  905,  905,  905,
3070      3502,  905, 3502,  905, 1490, 1490, 1490, 1490, 3502, 3502,
3071      1490, 1490, 1496, 1496, 1496, 1496, 3502, 3502, 1496, 1496,
3072      1503, 1503, 1503, 1503, 3502, 3502, 1503, 1503, 1519, 1519,
3073      1519, 1519, 3502, 3502, 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, 3502, 3502,
3076
3077      1194, 1194, 1230, 1230, 1230, 1230, 3502, 3502, 1230, 1230,
3078       724,  724,  724, 3502, 3502, 3502,  724,  732,  732,  732,
3079       732, 3502,  732, 3502,  732, 1263, 1263, 1263, 1263, 3502,
3080      3502, 1263, 1263,  772,  772,  772, 3502, 3502, 3502,  772,
3081      1294, 1294, 1294, 1294, 3502, 3502, 1294, 1294,  780,  780,
3082       780,  780, 3502,  780, 3502,  780, 1307, 1307, 1307, 1307,
3083      3502, 3502, 1307, 1307,  790,  790,  790, 3502, 3502, 3502,
3084       790,  800,  800,  800, 3502, 3502, 3502,  800, 1332, 1332,
3085      1332, 1332, 3502, 3502, 1332, 1332, 1348, 1348, 1348, 1348,
3086      3502, 3502, 1348, 1348,  817,  817,  817, 3502, 3502, 3502,
3087
3088       817, 1375, 1375, 1375, 1375, 3502, 3502, 1375, 1375, 1391,
3089      1391, 1391, 1391, 3502, 3502, 1391, 1391,  846,  846,  846,
3090      3502, 3502, 3502,  846,  856,  856,  856, 3502, 3502, 3502,
3091       856,  861,  861,  861,  861, 3502,  861, 3502,  861, 1423,
3092      1423, 1423, 1423, 3502, 3502, 1423, 1423,  867,  867,  867,
3093       867, 3502,  867, 3502,  867,  875,  875,  875, 3502, 3502,
3094      3502,  875,  882,  882,  882, 3502, 3502, 3502,  882, 1455,
3095      1455, 1455, 1455, 3502, 3502, 1455, 1455,  889,  889,  889,
3096       889, 3502,  889, 3502,  889, 1463, 1463, 1463, 1463, 3502,
3097      3502, 1463, 1463, 1471, 1471, 1471, 1471, 3502, 3502, 1471,
3098
3099      1471, 1481, 1481, 1481, 1481, 3502, 3502, 1481, 1481,  905,
3100       905,  905,  905, 3502,  905, 3502,  905, 1490, 1490, 1490,
3101      1490, 3502, 3502, 1490, 1490, 1496, 1496, 1496, 1496, 3502,
3102      3502, 1496, 1496, 1519, 1519, 1519, 1519, 3502, 3502, 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, 3502, 3502, 1194, 1194,  724,  724,  724,
3106      3502, 3502, 3502,  724,  732,  732,  732, 3502, 3502, 3502,
3107       732, 1263, 1263, 1263, 1263, 3502, 3502, 1263, 1263,  772,
3108       772,  772, 3502, 3502, 3502,  772, 1294, 1294, 1294, 1294,
3109
3110      3502, 3502, 1294, 1294, 1307, 1307, 1307, 1307, 3502, 3502,
3111      1307, 1307,  790,  790,  790, 3502, 3502, 3502,  790,  800,
3112       800,  800, 3502, 3502, 3502,  800, 1348, 1348, 1348, 1348,
3113      3502, 3502, 1348, 1348,  817,  817,  817, 3502, 3502, 3502,
3114       817,  846,  846,  846, 3502, 3502, 3502,  846,  856,  856,
3115       856, 3502, 3502, 3502,  856, 1423, 1423, 1423, 1423, 3502,
3116      3502, 1423, 1423,  867,  867,  867, 3502, 3502, 3502,  867,
3117       875,  875,  875, 3502, 3502, 3502,  875,  882,  882,  882,
3118      3502, 3502, 3502,  882, 3083, 3083, 3083, 3083, 3083, 3083,
3119      3083, 3083, 3083, 3084, 3084, 3084, 3084, 3084, 3084, 3084,
3120
3121      3084, 3084, 3145, 3145, 3145, 3145, 3145, 3145, 3145, 3145,
3122      3145, 3148, 3148, 3148, 3148, 3148, 3148, 3148, 3148, 3148,
3123      3191, 3191, 3191, 3191, 3191, 3191, 3191, 3191, 3191, 3193,
3124      3193, 3193, 3193, 3193, 3193, 3193, 3193, 3193,  263, 3502,
3125      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
3126      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
3127      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
3128      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
3129      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
3130      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
3131
3132      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
3133      3502, 3502, 3502
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, 2661, 1266, 2663, 2664, 1266, 1270, 1270, 1270,
3598      1263, 2677, 2660, 1265, 1271, 1271, 1271, 1273, 1273, 1273,
3599
3600      1288, 1288, 1288, 2660, 1288, 1270, 2678, 1288, 1292, 1292,
3601      1292, 1258, 1271, 2662, 2679, 1273, 1293, 1293, 1293, 1294,
3602      1294, 1294, 1265, 2706, 2662, 1292, 1296, 1296, 1296, 1298,
3603      1298, 1298, 2709, 2710, 1293, 2703, 2711, 1294, 1299, 1299,
3604      1299, 1300, 1300, 1300, 1296, 2714, 1298, 1301, 1301, 1301,
3605      1303, 1303, 1303, 2715, 2716, 1299, 1304, 1304, 1304, 1300,
3606      1305, 1305, 1305, 2717, 2703, 1301, 2718, 2716, 1303, 1312,
3607      1312, 1312, 2704, 1304, 1306, 1306, 1306, 1305, 1307, 1307,
3608      1307, 1309, 1309, 1309, 2720, 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, 2721, 1327, 2722, 2704, 1327, 2723, 1303, 2724, 1320,
3613      2726, 2727, 1322, 1331, 1331, 1331, 1332, 1332, 1332, 2687,
3614      1334, 1334, 1334, 1335, 1335, 1335, 1336, 1336, 1336, 2687,
3615      2705, 1331, 2728, 2729, 1332, 2687, 2732, 1309, 1334, 2719,
3616      1335, 1340, 1340, 1340, 1336, 1337, 1337, 1337, 1339, 1339,
3617      1339, 2733, 2719, 1341, 1341, 1341, 2734, 1341, 1340, 1322,
3618      1341, 2735, 2736, 1337, 2737, 2738, 1339, 1344, 1344, 1344,
3619      2739, 1344, 2740, 2741, 1344, 1347, 1347, 1347, 1348, 1348,
3620      1348, 1334, 1350, 1350, 1350, 1355, 1355, 1355, 2742, 1355,
3621
3622      2743, 2744, 1355, 1347, 2746, 2759, 1348, 1358, 1358, 1358,
3623      1350, 1359, 1359, 1359, 2760, 1359, 2765, 2769, 1359, 1362,
3624      1362, 1362, 2770, 2771, 1358, 1339, 1363, 1363, 1363, 2772,
3625      1363, 2773, 2774, 1363, 2775, 2776, 1362, 1374, 1374, 1374,
3626      1375, 1375, 1375, 1377, 1377, 1377, 1378, 1378, 1378, 2688,
3627      1378, 2784, 2786, 1378, 2794, 1374, 2795, 1350, 1375, 2688,
3628      2796, 1377, 1381, 1381, 1381, 2688, 1381, 2797, 2798, 1381,
3629      1384, 1384, 1384, 1385, 1385, 1385, 2799, 1385, 2812, 2815,
3630      1385, 1390, 1390, 1390, 1391, 1391, 1391, 1384, 1393, 1393,
3631      1393, 1398, 1398, 1398, 2816, 1398, 2820, 2821, 1398, 1390,
3632
3633      2803, 2822, 1391, 1401, 1401, 1401, 1393, 1402, 1402, 1402,
3634      1377, 1402, 2809, 2803, 1402, 1405, 1405, 1405, 2823, 2804,
3635      1401, 1406, 1406, 1406, 1408, 1408, 1408, 1410, 1410, 1410,
3636      2810, 1410, 2804, 1405, 1410, 2824, 1393, 2825, 2826, 1406,
3637      2827, 2829, 1408, 1413, 1413, 1413, 1414, 1414, 1414, 1416,
3638      1416, 1416, 1418, 1418, 1418, 2830, 1418, 2831, 2832, 1418,
3639      2809, 1413, 2833, 2834, 1414, 2810, 2835, 1416, 1422, 1422,
3640      1422, 1423, 1423, 1423, 2836, 1408, 1425, 1425, 1425, 2838,
3641      1427, 1427, 1427, 2839, 1427, 2840, 1422, 1427, 2841, 1423,
3642      1433, 1433, 1433, 2842, 1425, 1434, 1434, 1434, 2843, 1436,
3643
3644      1436, 1436, 1437, 1437, 1437, 1438, 1438, 1438, 1433, 1438,
3645      2844, 2845, 1438, 1434, 2846, 2847, 1416, 1436, 2848, 1437,
3646      1439, 1439, 1439, 2849, 2850, 1425, 1440, 1440, 1440, 2858,
3647      1440, 2864, 2865, 1440, 1442, 1442, 1442, 1439, 1443, 1443,
3648      1443, 2873, 1445, 1445, 1445, 1447, 1447, 1447, 2874, 1451,
3649      1451, 1451, 1442, 1964, 1964, 1964, 1443, 2875, 2876, 1436,
3650      1445, 2877, 1447, 1448, 1448, 1448, 1451, 1448, 2878, 2879,
3651      1448, 1452, 1452, 1452, 2880, 1452, 2881, 2888, 1452, 1454,
3652      1454, 1454, 1455, 1455, 1455, 1457, 1457, 1457, 1459, 1459,
3653      1459, 2891, 1459, 2898, 2899, 1459, 2900, 1454, 2893, 2901,
3654
3655      1455, 2902, 2903, 1457, 1462, 1462, 1462, 2906, 2893, 1445,
3656      1463, 1463, 1463, 1465, 1465, 1465, 1466, 1466, 1466, 1467,
3657      1467, 1467, 1462, 1467, 2907, 2908, 1467, 2909, 1463, 2920,
3658      2894, 1465, 2896, 1466, 1468, 1468, 1468, 1469, 1469, 1469,
3659      2894, 1469, 2896, 2921, 1469, 1470, 1470, 1470, 2922, 1457,
3660      2923, 1468, 1471, 1471, 1471, 2924, 1473, 1473, 1473, 1474,
3661      1474, 1474, 2897, 1470, 1475, 1475, 1475, 2925, 1475, 2926,
3662      1471, 1475, 2897, 1465, 1473, 2927, 1474, 1478, 1478, 1478,
3663      1479, 1479, 1479, 2912, 1479, 2930, 2931, 1479, 1480, 1480,
3664      1480, 1481, 1481, 1481, 1478, 1483, 1483, 1483, 1485, 1485,
3665
3666      1485, 1489, 1489, 1489, 2933, 2934, 1480, 2935, 2937, 1481,
3667      1490, 1490, 1490, 1483, 2939, 1485, 2940, 2912, 1473, 1489,
3668      1492, 1492, 1492, 1495, 1495, 1495, 2941, 2944, 1490, 1496,
3669      1496, 1496, 1498, 1498, 1498, 1499, 1499, 1499, 1492, 1499,
3670      2945, 1495, 1499, 1502, 1502, 1502, 2946, 1496, 2947, 2950,
3671      1498, 1503, 1503, 1503, 1505, 1505, 1505, 1483, 1506, 1506,
3672      1506, 1502, 1506, 2960, 2964, 1506, 1510, 1510, 1510, 1503,
3673      2965, 2973, 1505, 1511, 1511, 1511, 1513, 1513, 1513, 2974,
3674      2975, 1492, 2976, 2977, 1510, 1498, 1514, 1514, 1514, 2978,
3675      1514, 1511, 2979, 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, 2980, 1519, 2986, 2987, 1521,
3679      2988, 2989, 1523, 1523, 2990, 1530, 2991, 1561, 1562, 1562,
3680      1562, 2992, 1562, 2993, 2994, 1562, 2995, 1513, 1563, 1563,
3681      1563, 1564, 1564, 1564, 2997, 1565, 1565, 1565, 2998, 1565,
3682      3003, 1521, 1565, 1568, 1568, 1568, 1563, 3004, 1564, 1570,
3683      1570, 1570, 3005, 1570, 3006, 3007, 1570, 1573, 1573, 1573,
3684      3016, 1568, 3017, 1530, 1574, 1574, 1574, 3018, 1574, 3019,
3685      3020, 1574, 3021, 3022, 1573, 1575, 1575, 1575, 3023, 1575,
3686      3027, 3028, 1575, 1579, 1579, 1579, 1563, 1580, 1580, 1580,
3687
3688      3029, 1580, 1568, 3030, 1580, 1582, 1582, 1582, 3007, 3031,
3689      1579, 1584, 1584, 1584, 1585, 1585, 1585, 3032, 1585, 3034,
3690      3035, 1585, 3037, 1582, 1586, 1586, 1586, 3038, 1584, 1587,
3691      1587, 1587, 1589, 1589, 1589, 1605, 1605, 1605, 1968, 1968,
3692      1968, 1586, 1606, 1606, 1606, 3039, 3041, 1587, 3045, 3046,
3693      1589, 3047, 1605, 3051, 3053, 1582, 1607, 1607, 1607, 1606,
3694      1607, 3054, 3056, 1607, 1608, 1608, 1608, 1610, 1610, 1610,
3695      1611, 1611, 1611, 3057, 1611, 3062, 3063, 1611, 1587, 1613,
3696      1613, 1613, 1608, 3064, 1610, 1614, 1614, 1614, 1615, 1615,
3697      1615, 3065, 1615, 3066, 3067, 1615, 3068, 1613, 1617, 1617,
3698
3699      1617, 3069, 1614, 1620, 1620, 1620, 1621, 1621, 1621, 3070,
3700      1621, 3071, 3072, 1621, 3073, 3075, 1617, 1622, 1622, 1622,
3701      1620, 1624, 1624, 1624, 1625, 1625, 1625, 3076, 1608, 1631,
3702      1631, 1631, 3077, 3078, 1622, 1632, 1632, 1632, 1624, 1613,
3703      3085, 3079, 1625, 3088, 1633, 1633, 1633, 1631, 1633, 3082,
3704      3081, 1633, 1632, 1634, 1634, 1634, 1635, 1635, 1635, 1617,
3705      3082, 1636, 1636, 1636, 3081, 1636, 3089, 1624, 1636, 3092,
3706      3094, 1634, 3095, 1635, 1637, 1637, 1637, 1639, 1639, 1639,
3707      1642, 1642, 1642, 3097, 1643, 1643, 1643, 3079, 1643, 3098,
3708      1625, 1643, 1637, 1631, 1639, 3102, 3101, 1642, 1644, 1644,
3709
3710      1644, 3103, 1644, 3105, 3106, 1644, 1649, 1649, 1649, 1658,
3711      1658, 1658, 1659, 1659, 1659, 3104, 1659, 3107, 3108, 1659,
3712      1662, 1662, 1662, 1649, 1663, 1663, 1663, 1658, 1664, 1664,
3713      1664, 1665, 1665, 1665, 1666, 1666, 1666, 1662, 3101, 3109,
3714      1637, 1663, 1668, 1668, 1668, 1664, 3111, 3115, 1665, 1671,
3715      1671, 1671, 1666, 1671, 3104, 3117, 1671, 3119, 3111, 1668,
3716      1674, 1674, 1674, 1676, 1676, 1676, 1678, 1678, 1678, 1681,
3717      1681, 1681, 3127, 3112, 1658, 1664, 3124, 1674, 1685, 1685,
3718      1685, 1676, 3129, 3131, 1678, 3112, 3133, 1681, 3124, 1666,
3719      1686, 1686, 1686, 3141, 1663, 1685, 1687, 1687, 1687, 3125,
3720
3721      1687, 1665, 3143, 1687, 3144, 1690, 1690, 1690, 1686, 1690,
3722      3147, 3125, 1690, 1694, 1694, 1694, 1696, 1696, 1696, 3149,
3723      1696, 3151, 3145, 1696, 1685, 3152, 1681, 1676, 1705, 1705,
3724      1705, 1694, 1678, 1701, 1701, 1701, 3145, 1701, 3146, 3146,
3725      1701, 1707, 1707, 1707, 3153, 3144, 1705, 1686, 1708, 1708,
3726      1708, 3148, 1708, 3154, 3161, 1708, 1711, 1711, 1711, 1707,
3727      1711, 3160, 3148, 1711, 1714, 1714, 1714, 1715, 1715, 1715,
3728      3171, 1715, 3161, 3164, 1715, 3160, 1720, 1720, 1720, 1694,
3729      1720, 3165, 1714, 1720, 1723, 1723, 1723, 3164, 3173, 1705,
3730      1725, 1725, 1725, 1726, 1726, 1726, 3165, 1726, 1707, 3177,
3731
3732      1726, 3178, 1723, 1730, 1730, 1730, 3181, 1725, 1732, 1732,
3733      1732, 1714, 1733, 1733, 1733, 1734, 1734, 1734, 1735, 1735,
3734      1735, 1730, 1736, 1736, 1736, 1732, 1737, 1737, 1737, 3183,
3735      1733, 1723, 3170, 1734, 3172, 1735, 1738, 1738, 1738, 3188,
3736      1736, 3189, 3180, 1737, 1741, 1741, 1741, 1748, 1748, 1748,
3737      3191, 3170, 1730, 3172, 1738, 3182, 1780, 1780, 1780, 3192,
3738      1780, 3180, 1741, 1780, 3193, 1748, 3195, 1734, 1783, 1783,
3739      1783, 1784, 1784, 1784, 3182, 1784, 3196, 3197, 1784, 1733,
3740      1789, 1789, 1789, 3198, 1736, 3199, 1783, 1738, 3200, 1791,
3741      1791, 1791, 3202, 1791, 3203, 1741, 1791, 3204, 1789, 1748,
3742
3743      1795, 1795, 1795, 3206, 1795, 3213, 3214, 1795, 1799, 1799,
3744      1799, 3215, 1741, 1801, 1801, 1801, 3216, 1801, 3217, 3218,
3745      1801, 1804, 1804, 1804, 3219, 3220, 1799, 1806, 1806, 1806,
3746      3223, 1789, 1805, 1805, 1805, 1783, 1805, 3224, 1804, 1805,
3747      1815, 1815, 1815, 3225, 3226, 1806, 1819, 1819, 1819, 1820,
3748      1820, 1820, 3227, 1822, 1822, 1822, 1823, 1823, 1823, 3228,
3749      1823, 3229, 3230, 1823, 1824, 1824, 1824, 3232, 1824, 1799,
3750      1822, 1824, 1827, 1827, 1827, 1829, 1829, 1829, 1806, 1829,
3751      3234, 3236, 1829, 1833, 1833, 1833, 3237, 1834, 1834, 1834,
3752      1827, 1834, 3238, 3239, 1834, 1837, 1837, 1837, 1838, 1838,
3753
3754      1838, 1833, 3240, 3241, 1815, 3242, 3250, 1841, 1841, 1841,
3755      1819, 1841, 1837, 1820, 1841, 3252, 1838, 3251, 3250, 1827,
3756      1844, 1844, 1844, 1845, 1845, 1845, 3253, 1845, 3254, 3251,
3757      1845, 1846, 1846, 1846, 1847, 1847, 1847, 1844, 1848, 1848,
3758      1848, 3255, 1848, 3256, 3257, 1848, 3263, 3264, 1846, 1833,
3759      3265, 1847, 1850, 1850, 1850, 1853, 1853, 1853, 1854, 1854,
3760      1854, 3266, 1838, 1855, 1855, 1855, 1856, 1856, 1856, 3267,
3761      1850, 3268, 1853, 3269, 3270, 1854, 1860, 1860, 1860, 3273,
3762      1855, 1857, 1857, 1857, 1856, 1857, 3271, 3274, 1857, 1862,
3763      1862, 1862, 3275, 1862, 1860, 3276, 1862, 1865, 1865, 1865,
3764
3765      1867, 1867, 1867, 1868, 1868, 1868, 3277, 1868, 3278, 3279,
3766      1868, 3271, 3280, 1856, 3281, 1865, 3282, 1867, 1869, 1869,
3767      1869, 1871, 1871, 1871, 1854, 1871, 3283, 3284, 1871, 1876,
3768      1876, 1876, 1877, 1877, 1877, 1869, 1877, 3285, 3286, 1877,
3769      1878, 1878, 1878, 1865, 3287, 3288, 1876, 1883, 1883, 1883,
3770      1886, 1886, 1886, 1887, 1887, 1887, 3289, 1878, 1888, 1888,
3771      1888, 3290, 1888, 3291, 1883, 1888, 3292, 3293, 1886, 3294,
3772      1887, 1889, 1889, 1889, 1890, 1890, 1890, 1891, 1891, 1891,
3773      1892, 1892, 1892, 1894, 1894, 1894, 3295, 3296, 1889, 3302,
3774      3299, 1890, 3303, 3304, 1891, 1895, 1895, 1895, 1892, 1895,
3775
3776      1894, 3305, 1895, 1896, 1896, 1896, 1898, 1898, 1898, 3299,
3777      1899, 1899, 1899, 3306, 1899, 3307, 1886, 1899, 3308, 3309,
3778      1896, 3310, 3311, 1898, 1901, 1901, 1901, 1903, 1903, 1903,
3779      3312, 3313, 1890, 1906, 1906, 1906, 1910, 1910, 1910, 3314,
3780      1892, 3315, 1901, 3316, 3317, 1903, 3318, 3319, 1911, 1911,
3781      1911, 1906, 1911, 1910, 3320, 1911, 1913, 1913, 1913, 1915,
3782      1915, 1915, 1917, 1917, 1917, 1918, 1918, 1918, 1919, 1919,
3783      1919, 1920, 1920, 1920, 1913, 3321, 3322, 1915, 1903, 1917,
3784      3323, 1906, 1918, 3324, 3325, 1919, 1923, 1923, 1923, 1920,
3785      1922, 1922, 1922, 3326, 1924, 1924, 1924, 1925, 1925, 1925,
3786
3787      1926, 1926, 1926, 3324, 1923, 1928, 1928, 1928, 1922, 1928,
3788      1915, 1924, 1928, 3327, 1925, 1934, 1934, 1934, 1926, 3328,
3789      1936, 1936, 1936, 1937, 1937, 1937, 3329, 1937, 3330, 3331,
3790      1937, 3332, 1919, 1934, 3333, 3334, 1922, 1936, 1920, 1938,
3791      1938, 1938, 1939, 1939, 1939, 1940, 1940, 1940, 1941, 1941,
3792      1941, 1923, 1941, 3335, 3336, 1941, 3337, 1938, 3338, 3339,
3793      1939, 3340, 1940, 3341, 3342, 1926, 1934, 1942, 1942, 1942,
3794      1943, 1943, 1943, 1944, 1944, 1944, 3343, 1944, 3344, 3345,
3795      1944, 1945, 1945, 1945, 3346, 1942, 3348, 1943, 1951, 1951,
3796      1951, 1952, 1952, 1952, 1969, 1969, 1969, 1939, 1938, 1945,
3797
3798      1970, 1970, 1970, 3351, 3354, 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, 3355, 1990, 2003,
3803      2003, 2003, 1952, 2008, 2008, 2008, 2009, 2009, 2009, 3347,
3804      3356, 2002, 2013, 2013, 2013, 3347, 2003, 3357, 3358, 1982,
3805      2014, 2014, 2014, 3359, 2014, 3361, 3362, 2014, 3364, 2013,
3806      2017, 2017, 2017, 2020, 2020, 2020, 3365, 1989, 3367, 2002,
3807      2021, 2021, 2021, 2022, 2022, 2022, 3368, 2022, 2017, 3371,
3808
3809      2022, 2020, 2023, 2023, 2023, 3372, 3373, 2021, 2013, 2026,
3810      2026, 2026, 3370, 2026, 3374, 3375, 2026, 2029, 2029, 2029,
3811      2023, 2030, 2030, 2030, 3376, 2030, 3370, 3378, 2030, 2035,
3812      2035, 2035, 3380, 2017, 2029, 2031, 2031, 2031, 3382, 2031,
3813      3384, 3386, 2031, 2037, 2037, 2037, 3387, 2035, 3388, 2023,
3814      2039, 2039, 2039, 2040, 2040, 2040, 3389, 2040, 3390, 3391,
3815      2040, 2041, 2041, 2041, 2042, 2042, 2042, 2039, 2043, 2043,
3816      2043, 3392, 2043, 3393, 3394, 2043, 3395, 3399, 2041, 3401,
3817      3403, 2042, 2044, 2044, 2044, 2045, 2045, 2045, 2047, 2047,
3818      2047, 3404, 2047, 3405, 3406, 2047, 2050, 2050, 2050, 3415,
3819
3820      2044, 3416, 3417, 2045, 2051, 2051, 2051, 2041, 2051, 3447,
3821      1537, 2051, 3423, 2050, 2055, 2055, 2055, 3419, 2055, 3420,
3822      3423, 2055, 2058, 2058, 2058, 2059, 2059, 2059, 3407, 2059,
3823      3421, 1536, 2059, 3431, 3421, 2044, 2060, 2060, 2060, 2058,
3824      2064, 2064, 2064, 2045, 2065, 2065, 2065, 3415, 2065, 3416,
3825      3417, 2065, 3447, 2060, 2068, 2068, 2068, 2064, 2069, 2069,
3826      2069, 3419, 2069, 3420, 3407, 2069, 2072, 2072, 2072, 2073,
3827      2073, 2073, 2068, 2073, 3431, 3439, 2073, 2074, 2074, 2074,
3828      2075, 2075, 2075, 2072, 2076, 2076, 2076, 3424, 2076, 3422,
3829      3408, 2076, 3440, 3422, 2074, 3424, 1535, 2075, 2077, 2077,
3830
3831      2077, 1534, 2079, 2079, 2079, 2068, 2079, 3439, 3498, 2079,
3832      2082, 2082, 2082, 2083, 2083, 2083, 2077, 2083, 1533, 3498,
3833      2083, 2085, 2085, 2085, 3440, 2085, 3408, 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, 3429, 2097, 2106,
3837      2106, 2106, 2108, 2108, 2108, 2109, 2109, 2109, 3418, 2109,
3838      3425, 2103, 2109, 2110, 2110, 2110, 3426, 2106, 3425, 2108,
3839      3459, 2111, 2111, 2111, 3426, 2111, 3427, 2097, 2111, 3432,
3840      2110, 2113, 2113, 2113, 3429, 3428, 2092, 3433, 1532, 2095,
3841
3842      2115, 2115, 2115, 2116, 2116, 2116, 2117, 2117, 2117, 2113,
3843      2118, 2118, 2118, 3434, 2118, 3430, 3418, 2118, 2115, 3443,
3844      1531, 2116, 3459, 2117, 2119, 2119, 2119, 2120, 2120, 2120,
3845      3432, 2120, 3433, 3427, 2120, 2121, 2121, 2121, 2126, 2126,
3846      2126, 2119, 3428, 2128, 2128, 2128, 3435, 2128, 3434, 2115,
3847      2128, 3445, 3430, 2121, 3443, 3441, 2126, 2113, 2131, 2131,
3848      2131, 2132, 2132, 2132, 3441, 2133, 2133, 2133, 2116, 2133,
3849      3437, 3438, 2133, 2136, 2136, 2136, 2131, 3442, 1529, 2132,
3850      2138, 2138, 2138, 1528, 2138, 3445, 3442, 2138, 2141, 2141,
3851      2141, 2136, 3435, 2146, 2146, 2146, 3455, 2147, 2147, 2147,
3852
3853      2121, 2147, 1527, 2126, 2147, 3455, 2141, 3437, 3438, 2131,
3854      2146, 2148, 2148, 2148, 2132, 2149, 2149, 2149, 2154, 2154,
3855      2154, 2155, 2155, 2155, 2156, 2156, 2156, 1526, 3436, 2148,
3856      2158, 2158, 2158, 1517, 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, 3436, 2148, 3446, 2182, 2182, 2182,
3861      3444, 2182, 1509, 2175, 2182, 3448, 2178, 3451, 2181, 1494,
3862      2166, 2184, 2184, 2184, 2185, 2185, 2185, 2186, 2186, 2186,
3863
3864      3460, 2186, 1493, 3479, 2186, 2197, 2197, 2197, 1488, 2184,
3865      3446, 2185, 2198, 2198, 2198, 3444, 2175, 2199, 2199, 2199,
3866      3449, 2199, 3451, 2197, 2199, 2200, 2200, 2200, 3448, 2198,
3867      2205, 2205, 2205, 2206, 2206, 2206, 2207, 2207, 2207, 2208,
3868      2208, 2208, 3460, 2208, 3479, 3453, 2208, 2210, 2210, 2210,
3869      2213, 2213, 2213, 2207, 2197, 2215, 2215, 2215, 3456, 2215,
3870      3452, 1487, 2215, 3467, 3454, 2210, 3449, 3456, 2213, 2218,
3871      2218, 2218, 3467, 2221, 2221, 2221, 3465, 2221, 3453, 2206,
3872      2221, 2228, 2228, 2228, 1486, 2228, 3469, 2218, 2228, 2231,
3873      2231, 2231, 2232, 2232, 2232, 3452, 2232, 3454, 2210, 2232,
3874
3875      2234, 2234, 2234, 3457, 2234, 3465, 2231, 2234, 2237, 2237,
3876      2237, 2238, 2238, 2238, 2240, 2240, 2240, 1484, 2240, 3450,
3877      3469, 2240, 2218, 2246, 2246, 2246, 2237, 2246, 1477, 2238,
3878      2246, 2249, 2249, 2249, 2250, 2250, 2250, 3461, 2250, 3473,
3879      3457, 2250, 2254, 2254, 2254, 1476, 2254, 3473, 2249, 2254,
3880      2258, 2258, 2258, 2259, 2259, 2259, 2260, 2260, 2260, 2237,
3881      2260, 1458, 3458, 2260, 3462, 3450, 2238, 2258, 2263, 2263,
3882      2263, 2259, 2264, 2264, 2264, 3463, 2264, 3468, 3464, 2264,
3883      2265, 2265, 2265, 3461, 2265, 2263, 3468, 2265, 2268, 2268,
3884      2268, 2270, 2270, 2270, 3471, 2270, 3470, 3480, 2270, 3458,
3885
3886      2276, 2276, 2276, 2278, 2278, 2278, 2268, 2279, 2279, 2279,
3887      3462, 2279, 3463, 3475, 2279, 3464, 3466, 2259, 2276, 1453,
3888      2278, 2280, 2280, 2280, 2282, 2282, 2282, 2283, 2283, 2283,
3889      3470, 2283, 3472, 3476, 2283, 2290, 2290, 2290, 3480, 2280,
3890      3471, 2282, 2293, 2293, 2293, 3466, 2293, 3497, 3481, 2293,
3891      2300, 2300, 2300, 2290, 2268, 2296, 2296, 2296, 3477, 2296,
3892      3475, 3497, 2296, 3478, 2302, 2302, 2302, 3474, 2300, 2303,
3893      2303, 2303, 2304, 2304, 2304, 3474, 2304, 1450, 3472, 2304,
3894      3476, 2280, 2302, 3481, 2307, 2307, 2307, 2303, 2307, 1449,
3895      3489, 2307, 2310, 2310, 2310, 3477, 2311, 2311, 2311, 3489,
3896
3897      3478, 2300, 2312, 2312, 2312, 2303, 2313, 2313, 2313, 3482,
3898      2310, 3487, 2310, 2311, 2314, 2314, 2314, 1446, 3485, 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, 3487, 3482, 2318, 3483, 2324, 2324, 2324,
3902      2319, 2324, 1441, 2312, 2324, 3485, 3486, 2320, 2327, 2327,
3903      2327, 2328, 2328, 2328, 2329, 2329, 2329, 2330, 2330, 2330,
3904      2313, 1432, 1431, 2314, 3490, 1430, 2327, 2333, 2333, 2333,
3905      2334, 2334, 2334, 3490, 2317, 2315, 2336, 2336, 2336, 2337,
3906      2337, 2337, 3483, 3486, 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, 1426, 2327, 2348, 2348,
3910      2348, 2350, 2350, 2350, 2353, 2353, 2353, 2354, 2354, 2354,
3911      1421, 2354, 3484, 1417, 2354, 2357, 2357, 2357, 3488, 2350,
3912      1409, 2353, 2358, 2358, 2358, 1404, 2360, 2360, 2360, 1403,
3913      2360, 3493, 2357, 2360, 2373, 2373, 2373, 2374, 2374, 2374,
3914      2358, 2374, 2375, 2375, 2374, 2375, 2376, 2376, 3491, 2376,
3915      3488, 1397, 2373, 2375, 2377, 2377, 2377, 2376, 3484, 1396,
3916      2375, 2378, 2378, 2378, 2376, 2382, 2382, 2382, 2384, 2384,
3917      2384, 1395, 2384, 3492, 3495, 2384, 2388, 2388, 2388, 3493,
3918
3919      3491, 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, 3492, 3495, 2400, 1394, 2404,
3922      1389, 2410, 2410, 2410, 2405, 2410, 1388, 1387, 2410, 2447,
3923      2447, 2447, 2388, 2413, 2413, 2413, 2417, 2417, 2417, 3496,
3924      2418, 2418, 2418, 1386, 2418, 1372, 2391, 2418, 1371, 1370,
3925      2413, 1369, 3494, 2417, 2419, 2419, 2419, 2420, 2420, 2420,
3926      1368, 2420, 1367, 1366, 2420, 1365, 2405, 2423, 2423, 2423,
3927      1364, 3496, 2419, 2428, 2428, 2428, 2430, 2430, 2430, 2431,
3928      2431, 2431, 1354, 2431, 1353, 2423, 2431, 2434, 2434, 2434,
3929
3930      1352, 2428, 1351, 2430, 2435, 2435, 2435, 2436, 2436, 2436,
3931      3494, 2436, 1330, 1326, 2436, 2434, 2439, 2439, 2439, 1325,
3932      1324, 2435, 2440, 2440, 2440, 2445, 2445, 2445, 2449, 2449,
3933      2449, 1323, 1318, 2439, 2450, 2450, 2450, 1317, 1316, 2440,
3934      1311, 1310, 2445, 2451, 2451, 2451, 2449, 1297, 2434, 1291,
3935      2435, 2450, 2452, 2452, 2452, 2453, 2453, 2453, 2454, 2454,
3936      2454, 2451, 2455, 2455, 2455, 1287, 2455, 1286, 1285, 2455,
3937      2452, 2439, 1284, 2453, 1283, 2454, 2445, 2456, 2456, 2456,
3938      2457, 2457, 2457, 2440, 2458, 2458, 2458, 2459, 2459, 2459,
3939      1282, 1281, 2453, 1279, 2456, 1278, 1276, 2457, 2460, 2460,
3940
3941      2460, 2458, 1275, 2451, 1274, 2459, 2461, 2461, 2461, 2462,
3942      2462, 2462, 1269, 2452, 2464, 2464, 2464, 1261, 2465, 2465,
3943      2465, 2468, 2468, 2468, 2461, 1259, 1254, 2462, 2469, 2469,
3944      2469, 2457, 2464, 1252, 1243, 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, 1238, 2486, 1227, 1225, 2486,
3948      1224, 1223, 2461, 1222, 2482, 1220, 2485, 1219, 2464, 1218,
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, 1217, 1216, 2518, 2519, 2519, 2519, 1215, 2515, 1213,
3953      2517, 2526, 2526, 2526, 2527, 2527, 2527, 2529, 2529, 2529,
3954      1212, 1211, 2519, 1210, 2531, 2531, 2531, 1209, 2526, 2537,
3955      2537, 2537, 2538, 2538, 2538, 2529, 2538, 1208, 1207, 2538,
3956      1206, 2498, 2531, 2540, 2540, 2540, 2537, 2542, 2542, 2542,
3957      1204, 2542, 1203, 1202, 2542, 1201, 2515, 2545, 2545, 2545,
3958      2540, 2547, 2547, 2547, 1200, 2551, 2551, 2551, 2553, 2553,
3959      2553, 2555, 2555, 2555, 1199, 2545, 2554, 2554, 2554, 2547,
3960      2554, 2531, 2551, 2554, 1198, 2553, 2556, 2556, 2556, 2555,
3961      2557, 2557, 2557, 1192, 2557, 1191, 1190, 2557, 2565, 2565,
3962
3963      2565, 1187, 1186, 2556, 2567, 2567, 2567, 2569, 2569, 2569,
3964      2571, 2571, 2571, 1185, 1183, 2565, 2572, 2572, 2572, 1179,
3965      2572, 1176, 1171, 2572, 1162, 2569, 1161, 2571, 2573, 2573,
3966      2573, 2574, 2574, 2574, 1158, 2575, 2575, 2575, 2576, 2576,
3967      2576, 1157, 2576, 1156, 1155, 2576, 2573, 1154, 1140, 2574,
3968      2579, 2579, 2579, 2575, 2580, 2580, 2580, 1133, 2580, 1125,
3969      1124, 2580, 2581, 2581, 2581, 1123, 1120, 2579, 2582, 2582,
3970      2582, 2583, 2583, 2583, 2585, 2585, 2585, 1117, 1114, 2581,
3971      1109, 1106, 2586, 2586, 2586, 2582, 2587, 2587, 2587, 2583,
3972      2591, 2591, 2591, 2595, 2595, 2595, 1105, 1101, 2574, 2575,
3973
3974      2586, 2596, 2596, 2596, 2587, 2600, 2600, 2600, 2591, 2601,
3975      2601, 2601, 1099, 2601, 1085, 1084, 2601, 2615, 2615, 2615,
3976      1083, 1082, 2600, 2630, 2630, 2630, 2633, 2633, 2633, 2634,
3977      2634, 2634, 2635, 2635, 2635, 2615, 2635, 1081, 1080, 2635,
3978      2638, 2638, 2638, 1079, 2633, 1078, 1077, 2587, 2641, 2641,
3979      2641, 2644, 2644, 2644, 1076, 2645, 2645, 2645, 2638, 2645,
3980      1072, 1068, 2645, 1061, 1058, 2641, 1055, 1052, 2644, 2647,
3981      2647, 2647, 2651, 2651, 2651, 1051, 1050, 2615, 2653, 2653,
3982      2653, 1046, 2653, 1045, 1044, 2653, 1041, 2647, 1040, 2651,
3983      2657, 2657, 2657, 1039, 2658, 2658, 2658, 2633, 2658, 1036,
3984
3985      1035, 2658, 2665, 2665, 2665, 1032, 1031, 2657, 2666, 2666,
3986      2666, 2667, 2667, 2667, 1027, 2667, 1026, 1023, 2667, 2665,
3987      2668, 2668, 2668, 1022, 1021, 2666, 2669, 2669, 2669, 1020,
3988      2669, 1019, 1017, 2669, 2672, 2672, 2672, 2668, 2674, 2674,
3989      2674, 1016, 2674, 1015, 1014, 2674, 2682, 2682, 2682, 2683,
3990      2683, 2683, 2672, 2683, 1013, 1012, 2683, 2684, 2684, 2684,
3991      2685, 2685, 2685, 2682, 2686, 2686, 2686, 1011, 2686, 1010,
3992      1006, 2686, 1001, 1000, 2684,  999,  996, 2685, 2689, 2689,
3993      2689, 2691, 2691, 2691, 2692, 2692, 2692, 2693, 2693, 2693,
3994       995, 2693,  994,  992, 2693,  988, 2689,  984,  983, 2691,
3995
3996       980,  977, 2692, 2696, 2696, 2696, 2697, 2697, 2697,  976,
3997      2697,  975,  974, 2697, 2698, 2698, 2698, 2699, 2699, 2699,
3998      2696, 2699,  973,  972, 2699, 2700, 2700, 2700, 2702, 2702,
3999      2702, 2698, 2707, 2707, 2707, 2708, 2708, 2708, 2712, 2712,
4000      2712,  971,  969, 2700,  968, 2692, 2702, 2691,  967, 2713,
4001      2713, 2713,  966, 2713,  965, 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,  964,
4004      2747, 2752, 2752, 2752, 2748, 2752,  963,  962, 2752, 2750,
4005      2702,  961,  960, 2751, 2753, 2753, 2753,  958, 2753,  957,
4006
4007       956, 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,  955, 2761, 2763, 2748, 2762,
4010       954,  953, 2764, 2766, 2766, 2766,  952, 2766,  951,  950,
4011      2766, 2777, 2777, 2777, 2778, 2778, 2778,  949, 2778,  945,
4012       944, 2778, 2779, 2779, 2779,  942, 2779,  941, 2777, 2779,
4013      2782, 2782, 2782, 2783, 2783, 2783,  940, 2783,  939,  938,
4014      2783, 2785, 2785, 2785, 2787, 2787, 2787, 2782, 2787,  934,
4015       932, 2787, 2790, 2790, 2790, 2791, 2791, 2791, 2785, 2791,
4016       931,  930, 2791, 2792, 2792, 2792, 2793, 2793, 2793, 2790,
4017
4018      2793,  929,  925, 2793, 2800, 2800, 2800, 2801, 2801, 2801,
4019      2792, 2802, 2802, 2802,  924, 2802,  920,  916, 2802, 2805,
4020      2805, 2805, 2800, 2805,  915, 2801, 2805, 2808, 2808, 2808,
4021      2811, 2811, 2811, 2813, 2813, 2813, 2814, 2814, 2814, 2817,
4022      2817, 2817,  912, 2817,  911, 2808, 2817, 2811, 2811, 2828,
4023      2828, 2828, 2837, 2837, 2837, 2800, 2851, 2851, 2851, 2852,
4024      2852, 2852, 2853, 2853, 2853,  910, 2828, 2855, 2855, 2855,
4025      2837, 2854, 2854, 2854, 2801, 2854,  909,  908, 2854, 2853,
4026      2856, 2856, 2856,  907,  906, 2855, 2857, 2857, 2857,  903,
4027      2857,  902,  901, 2857, 2862, 2862, 2862, 2856, 2859, 2859,
4028
4029      2859, 2837, 2859,  900,  897, 2859, 2863, 2863, 2863,  896,
4030      2863, 2862,  895, 2863, 2866, 2866, 2866,  892, 2855, 2867,
4031      2867, 2867,  890, 2867,  887,  886, 2867,  885, 2868, 2868,
4032      2868, 2866, 2868,  884,  883, 2868, 2871, 2871, 2871, 2872,
4033      2872, 2872,  880, 2872,  879,  878, 2872, 2882, 2882, 2882,
4034       877, 2882,  876, 2871, 2882, 2885, 2885, 2885,  873, 2885,
4035       872,  871, 2885, 2889, 2889, 2889, 2890, 2890, 2890,  870,
4036      2890,  868,  865, 2890, 2892, 2892, 2892,  864, 2892,  862,
4037      2889, 2892, 2895, 2895, 2895,  859, 2895,  857,  854, 2895,
4038      2904, 2904, 2904, 2905, 2905, 2905, 2910, 2910, 2910, 2913,
4039
4040      2913, 2913, 2914, 2914, 2914, 2915, 2915, 2915, 2904, 2915,
4041       853, 2905, 2915,  852, 2910,  851, 2913, 2913,  849, 2914,
4042      2914,  848,  847, 2915, 2916, 2916, 2916, 2917, 2917, 2917,
4043      2918, 2918, 2918, 2919, 2919, 2919, 2928, 2928, 2928, 2929,
4044      2929, 2929,  844, 2929,  843,  842, 2929, 2938, 2938, 2938,
4045      2951, 2951, 2951, 2928, 2952, 2952, 2952,  841,  840, 2905,
4046      2953, 2953, 2953,  839, 2953, 2938,  834, 2953, 2956, 2956,
4047      2956, 2957, 2957, 2957,  833, 2957,  832,  831, 2957,  830,
4048      2961, 2961, 2961,  829, 2961,  828, 2956, 2961, 2966, 2966,
4049      2966,  827, 2966,  826,  825, 2966, 2969, 2969, 2969,  824,
4050
4051      2969,  823,  821, 2969, 2972, 2972, 2972, 2981, 2981, 2981,
4052      2982, 2982, 2982, 2938, 2982,  819,  818, 2982, 2985, 2985,
4053      2985, 2972,  815,  812, 2981, 3000, 3000, 3000, 3002, 3002,
4054      3002, 3008, 3008, 3008,  809, 2985,  808, 3009, 3009, 3009,
4055       805, 3009,  804, 3000, 3009,  802, 3002,  801, 3008, 3008,
4056      3010, 3010, 3010,  797, 3010, 3009,  796, 3010, 3013, 3013,
4057      3013, 3014, 3014, 3014, 3015, 3015, 3015,  795, 3010, 3024,
4058      3024, 3024,  794, 3024,  791,  788, 3024,  787,  786, 3002,
4059      3011, 3011, 3011, 3011, 3011, 3011, 3011, 3011, 3011,  783,
4060       782, 3011, 3033, 3033, 3033,  781, 3011, 3011, 3011, 3011,
4061
4062      3011, 3042, 3042, 3042, 3043, 3043, 3043, 3048, 3048, 3048,
4063      3033, 3049, 3049, 3049,  777, 3049,  776,  775, 3049, 3050,
4064      3050, 3050, 3043,  773, 3048, 3011, 3011, 3012, 3012, 3012,
4065      3012, 3012, 3012, 3012, 3012, 3012, 3050,  762, 3012, 3058,
4066      3058, 3058,  760, 3012, 3012, 3012, 3012, 3012, 3059, 3059,
4067      3059,  757, 3059,  756,  755, 3059, 3058, 3060, 3060, 3060,
4068      3061, 3061, 3061,  753, 3061,  752,  751, 3061, 3074, 3074,
4069      3074,  747, 3012, 3012, 3060, 3080, 3080, 3080,  746, 3080,
4070       745,  744, 3080,  741,  740,  739, 3074,  738, 3099, 3099,
4071      3099,  737,  736, 3080, 3083, 3083, 3083, 3083, 3083, 3083,
4072
4073      3083, 3083, 3083,  735,  733, 3083, 3099, 3113, 3113, 3113,
4074      3083, 3083, 3083, 3083, 3083, 3110, 3110, 3110,  730, 3110,
4075       729,  727, 3110,  725, 3113, 3114, 3114, 3114,  722, 3114,
4076       721,  715, 3114, 3138, 3138, 3138, 3150, 3150, 3150, 3083,
4077      3083, 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084,
4078       713, 3138, 3084,  711, 3150, 3150,  708, 3084, 3084, 3084,
4079      3084, 3084, 3120, 3120, 3120,  707, 3120,  703,  702, 3120,
4080      3123, 3123, 3123,  701, 3123,  700,  697, 3123, 3167, 3167,
4081      3167, 3168, 3168, 3168,  696,  695, 3084, 3084, 3169, 3169,
4082      3169,  694, 3174, 3174, 3174, 3167, 3174,  691, 3168, 3174,
4083
4084      3179, 3179, 3179,  690,  689, 3169, 3190, 3190, 3190, 3194,
4085      3194, 3194, 3207, 3207, 3207,  688,  687, 3179, 3208, 3208,
4086      3208,  681, 3208,  680, 3190, 3208,  678, 3194,  672, 3207,
4087      3209, 3209, 3209, 3210, 3210, 3210,  671, 3210,  667,  661,
4088      3210, 3211, 3211, 3211, 3212, 3212, 3212, 3209, 3212,  660,
4089       656, 3212, 3221, 3221, 3221, 3222, 3222, 3222, 3211, 3222,
4090      3194,  649, 3222, 3231, 3231, 3231, 3243, 3243, 3243, 3221,
4091      3243,  645,  639, 3243,  635, 3246, 3246, 3246,  627, 3246,
4092       626, 3231, 3246, 3249, 3249, 3249,  625, 3249,  624,  623,
4093      3249, 3260, 3260, 3260,  619, 3260,  612,  611, 3260,  610,
4094
4095      3231, 3385, 3385, 3385, 3396, 3396, 3396,  606, 3396,  599,
4096       598, 3396, 3499, 3499, 3499, 3500, 3500, 3500,  594, 3385,
4097       588,  587, 3396,  583,  575,  574,  570,  561,  557,  549,
4098      3499,  548,  547, 3500, 3503, 3503, 3503, 3503, 3503, 3503,
4099      3503, 3503, 3503, 3504, 3504, 3504, 3504, 3504, 3504, 3504,
4100      3504, 3504, 3505, 3505, 3505, 3505, 3505, 3505, 3505, 3505,
4101      3505, 3506, 3506, 3506, 3506, 3506, 3506, 3506, 3506, 3506,
4102      3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3508,
4103      3508, 3508, 3508, 3508, 3508, 3508, 3508, 3508, 3509, 3509,
4104      3509, 3509, 3509, 3509, 3509, 3509, 3509, 3510, 3510, 3510,
4105
4106      3510, 3510, 3510, 3510, 3510, 3510, 3511, 3511, 3511, 3511,
4107      3511, 3511, 3511, 3511, 3511, 3512, 3512, 3512, 3512, 3512,
4108      3512, 3512, 3512, 3512, 3513, 3513, 3513, 3513, 3513, 3513,
4109      3513, 3513, 3513, 3514, 3514, 3514, 3514, 3514, 3514, 3514,
4110      3514, 3514, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515,
4111      3515, 3516, 3516, 3516, 3516, 3516, 3516, 3516, 3516, 3516,
4112      3517, 3517, 3517, 3517, 3517, 3517, 3517, 3517, 3517, 3518,
4113      3518, 3518, 3518, 3518, 3518, 3518, 3518, 3518, 3519, 3519,
4114      3519, 3519, 3519, 3519, 3519, 3519, 3519, 3520, 3520, 3520,
4115      3520, 3520, 3520, 3520, 3520, 3520, 3521, 3521, 3521, 3521,
4116
4117      3521, 3521, 3521, 3521, 3521, 3522, 3522, 3522, 3522, 3522,
4118      3522, 3522, 3522, 3522, 3523, 3523, 3523, 3523, 3523, 3523,
4119      3523, 3523, 3523, 3524, 3524, 3524, 3524, 3524, 3524, 3524,
4120      3524, 3524, 3525, 3525, 3525, 3525, 3525, 3525, 3525, 3525,
4121      3525, 3526, 3526, 3526, 3526, 3526, 3526, 3526, 3526, 3526,
4122      3527, 3527, 3527, 3527, 3527, 3527, 3527, 3527, 3527, 3528,
4123      3528, 3528, 3528, 3528, 3528, 3528, 3528, 3528, 3529, 3529,
4124      3529, 3529, 3529, 3529, 3529, 3529, 3529, 3530, 3530, 3530,
4125      3530, 3530, 3530, 3530, 3530, 3530, 3531, 3531, 3531, 3531,
4126      3531, 3531, 3531, 3531, 3531, 3532, 3532, 3532, 3532, 3532,
4127
4128      3532, 3532, 3532, 3532, 3533, 3533, 3533, 3533, 3533, 3533,
4129      3533, 3533, 3533, 3534, 3534, 3534, 3534, 3534, 3534, 3534,
4130      3534, 3534, 3535, 3535, 3535, 3535, 3535, 3535, 3535, 3535,
4131      3535, 3536, 3536, 3536, 3536, 3536, 3536, 3536, 3536, 3536,
4132      3537, 3537, 3537, 3537, 3537, 3537, 3537, 3537, 3537, 3538,
4133      3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3539, 3539,
4134      3539, 3539, 3539, 3539, 3539, 3539, 3539, 3540, 3540, 3540,
4135      3540, 3540, 3540, 3540, 3540, 3540, 3541, 3541, 3541, 3541,
4136      3541, 3541, 3541, 3541, 3541, 3542, 3542, 3542, 3542, 3542,
4137      3542, 3542, 3542, 3542, 3543, 3543, 3543, 3543, 3543, 3543,
4138
4139      3543, 3543, 3543, 3544, 3544, 3544, 3544, 3544, 3544, 3544,
4140      3544, 3544, 3545, 3545, 3545, 3545, 3545, 3545, 3545, 3545,
4141      3545, 3546, 3546, 3546, 3546, 3546, 3546, 3546, 3546, 3546,
4142      3547, 3547, 3547, 3547, 3547, 3547, 3547, 3547, 3547, 3548,
4143      3548, 3548, 3548, 3548, 3548, 3548, 3548, 3548, 3549, 3549,
4144      3549, 3549, 3549, 3549, 3549, 3549, 3549, 3550, 3550, 3550,
4145      3550, 3550, 3550, 3550, 3550, 3550, 3551, 3551, 3551, 3551,
4146      3551, 3551, 3551, 3551, 3551, 3552, 3552, 3552, 3552, 3552,
4147      3552, 3552, 3552, 3552, 3553, 3553, 3553, 3553, 3553, 3553,
4148      3553, 3553, 3553, 3554, 3554, 3554, 3554, 3554, 3554, 3554,
4149
4150      3554, 3554, 3555, 3555, 3555, 3555, 3555, 3555, 3555, 3555,
4151      3555, 3556, 3556, 3556, 3556, 3556, 3556, 3556, 3556, 3556,
4152      3557, 3557, 3557, 3557, 3557, 3557, 3557, 3557, 3557, 3558,
4153      3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3559, 3559,
4154      3559, 3559, 3559, 3559, 3559, 3559, 3559, 3560, 3560, 3560,
4155      3560, 3560, 3560, 3560, 3560, 3560, 3561, 3561, 3561, 3561,
4156      3561, 3561, 3561, 3561, 3561, 3562, 3562, 3562, 3562, 3562,
4157      3562, 3562, 3562, 3562, 3563, 3563, 3563, 3563, 3563, 3563,
4158      3563, 3563, 3563, 3564, 3564, 3564, 3564, 3564, 3564, 3564,
4159      3564, 3564, 3565, 3565, 3565, 3565, 3565, 3565, 3565, 3565,
4160
4161      3565, 3566, 3566, 3566,  543,  537,  536, 3566, 3567, 3567,
4162      3567,  535,  531,  525, 3567, 3568, 3568, 3568,  524,  520,
4163       514, 3568, 3569, 3569, 3569,  513,  512,  511, 3569, 3570,
4164      3570, 3570,  510,  509,  508, 3570, 3571, 3571, 3571,  504,
4165       498,  497, 3571, 3572, 3572, 3572,  495,  494,  493, 3572,
4166      3573, 3573, 3573,  489,  482,  477, 3573, 3574, 3574, 3574,
4167       476,  474,  470, 3574, 3575, 3575, 3575,  464,  463,  462,
4168      3575, 3576, 3576, 3576,  458,  452,  448, 3576, 3577, 3577,
4169      3577,  441,  440,  439, 3577, 3578, 3578, 3578,  438,  434,
4170       430, 3578, 3579, 3579, 3579,  426,  424,  423, 3579, 3580,
4171
4172      3580, 3580,  422,  418,  412, 3580, 3581, 3581, 3581,  411,
4173       407,  401, 3581, 3582, 3582, 3582,  400,  396,  388, 3582,
4174      3583, 3583, 3583,  387,  386,  385, 3583, 3584, 3584, 3584,
4175       381,  372,  366, 3584, 3585, 3585, 3585,  362,  361,  357,
4176      3585, 3586, 3586, 3586,  351,  350,  349, 3586, 3587, 3587,
4177      3587,  345,  338,  336, 3587, 3588, 3588, 3588,  335,  331,
4178       328, 3588, 3589, 3589, 3589,  326,  325,  324, 3589, 3590,
4179      3590, 3590,  320,  316,  313, 3590, 3591, 3591, 3591,  309,
4180       306,  305, 3591, 3592, 3592, 3592,  297,  293,  289, 3592,
4181      3593, 3593, 3593,  288,  287,  281, 3593, 3594, 3594, 3594,
4182
4183       280,  278,  275, 3594, 3595, 3595, 3595, 3595, 3595, 3595,
4184      3595,  263, 3595, 3596, 3596, 3596,    0,    0,    0, 3596,
4185      3597,    0,    0,    0, 3597, 3598, 3598, 3598,    0,    0,
4186         0, 3598, 3599,    0,    0,    0, 3599, 3600, 3600, 3600,
4187         0,    0,    0, 3600, 3601,    0,    0,    0, 3601, 3602,
4188      3602, 3602,    0,    0,    0, 3602, 3603,    0,    0,    0,
4189      3603, 3604, 3604, 3604,    0,    0,    0, 3604, 3605,    0,
4190         0,    0, 3605, 3606, 3606, 3606,    0,    0,    0, 3606,
4191      3607,    0,    0,    0, 3607, 3608, 3608, 3608,    0,    0,
4192         0, 3608, 3609,    0,    0,    0, 3609, 3610, 3610, 3610,
4193
4194         0,    0,    0, 3610, 3611,    0,    0,    0, 3611, 3612,
4195      3612, 3612,    0,    0,    0, 3612, 3613,    0,    0,    0,
4196      3613, 3614, 3614, 3614,    0,    0,    0, 3614, 3615,    0,
4197         0,    0, 3615, 3616, 3616, 3616,    0,    0,    0, 3616,
4198      3617,    0,    0,    0, 3617, 3618, 3618, 3618,    0,    0,
4199         0, 3618, 3619,    0,    0,    0, 3619, 3620, 3620, 3620,
4200         0,    0,    0, 3620, 3621,    0,    0,    0, 3621, 3622,
4201      3622, 3622,    0,    0,    0, 3622, 3623,    0,    0,    0,
4202      3623, 3624, 3624, 3624,    0,    0,    0, 3624, 3625,    0,
4203         0,    0, 3625, 3626, 3626, 3626,    0,    0,    0, 3626,
4204
4205      3627,    0,    0,    0, 3627, 3628, 3628, 3628,    0,    0,
4206         0, 3628, 3629,    0,    0,    0, 3629, 3630, 3630, 3630,
4207         0,    0,    0, 3630, 3631,    0,    0,    0, 3631, 3632,
4208      3632, 3632,    0,    0,    0, 3632, 3633,    0,    0,    0,
4209      3633, 3634, 3634, 3634,    0,    0,    0, 3634, 3635,    0,
4210         0,    0, 3635, 3636, 3636, 3636,    0,    0,    0, 3636,
4211      3637,    0,    0,    0, 3637, 3638, 3638, 3638,    0,    0,
4212         0, 3638, 3639,    0,    0,    0, 3639, 3640, 3640, 3640,
4213         0,    0,    0, 3640, 3641,    0,    0,    0, 3641, 3642,
4214      3642, 3642,    0,    0,    0, 3642, 3643,    0,    0,    0,
4215
4216      3643, 3644, 3644, 3644,    0,    0,    0, 3644, 3645,    0,
4217         0,    0, 3645, 3646, 3646, 3646,    0,    0,    0, 3646,
4218      3647,    0,    0,    0, 3647, 3648, 3648, 3648,    0,    0,
4219         0, 3648, 3649,    0,    0,    0, 3649, 3650, 3650, 3650,
4220         0,    0,    0, 3650, 3651,    0,    0,    0, 3651, 3652,
4221      3652, 3652,    0,    0,    0, 3652, 3653,    0,    0,    0,
4222      3653, 3654, 3654, 3654, 3654, 3654, 3654, 3654, 3654, 3654,
4223      3655,    0,    0,    0,    0, 3655, 3656, 3656, 3656,    0,
4224         0,    0, 3656, 3657, 3657, 3657, 3657,    0,    0, 3657,
4225      3657, 3658, 3658, 3658,    0,    0,    0, 3658, 3659, 3659,
4226
4227      3659, 3659,    0,    0, 3659, 3659, 3660, 3660, 3660,    0,
4228         0,    0, 3660, 3661, 3661, 3661, 3661,    0,    0, 3661,
4229      3661, 3662, 3662, 3662,    0,    0,    0, 3662, 3663, 3663,
4230      3663, 3663,    0,    0, 3663, 3663, 3664, 3664, 3664,    0,
4231         0,    0, 3664, 3665, 3665, 3665, 3665,    0,    0, 3665,
4232      3665, 3666, 3666, 3666,    0,    0,    0, 3666, 3667, 3667,
4233      3667, 3667,    0,    0, 3667, 3667, 3668, 3668, 3668,    0,
4234         0,    0, 3668, 3669, 3669, 3669, 3669,    0,    0, 3669,
4235      3669, 3670, 3670, 3670,    0,    0,    0, 3670, 3671, 3671,
4236      3671, 3671,    0,    0, 3671, 3671, 3672, 3672, 3672,    0,
4237
4238         0,    0, 3672, 3673, 3673, 3673, 3673,    0,    0, 3673,
4239      3673, 3674, 3674, 3674,    0,    0,    0, 3674, 3675, 3675,
4240      3675, 3675,    0,    0, 3675, 3675, 3676, 3676, 3676,    0,
4241         0,    0, 3676, 3677, 3677, 3677, 3677,    0,    0, 3677,
4242      3677, 3678, 3678, 3678,    0,    0,    0, 3678, 3679, 3679,
4243      3679, 3679,    0,    0, 3679, 3679, 3680, 3680, 3680,    0,
4244         0,    0, 3680, 3681, 3681, 3681, 3681,    0,    0, 3681,
4245      3681, 3682, 3682, 3682,    0,    0,    0, 3682, 3683, 3683,
4246      3683, 3683,    0,    0, 3683, 3683, 3684, 3684, 3684, 3684,
4247         0, 3684,    0, 3684, 3685, 3685, 3685, 3685,    0,    0,
4248
4249      3685, 3685, 3686, 3686, 3686,    0,    0,    0, 3686, 3687,
4250      3687, 3687, 3687,    0,    0, 3687, 3687, 3688, 3688, 3688,
4251         0,    0,    0, 3688, 3689, 3689, 3689, 3689,    0,    0,
4252      3689, 3689, 3690, 3690, 3690,    0,    0,    0, 3690, 3691,
4253      3691, 3691, 3691,    0,    0, 3691, 3691, 3692, 3692, 3692,
4254         0,    0,    0, 3692, 3693, 3693, 3693, 3693,    0,    0,
4255      3693, 3693, 3694, 3694, 3694, 3694,    0, 3694,    0, 3694,
4256      3695, 3695, 3695, 3695,    0,    0, 3695, 3695, 3696, 3696,
4257      3696, 3696,    0, 3696,    0, 3696, 3697, 3697, 3697, 3697,
4258         0,    0, 3697, 3697, 3698, 3698, 3698,    0,    0,    0,
4259
4260      3698, 3699, 3699, 3699, 3699,    0,    0, 3699, 3699, 3700,
4261      3700, 3700, 3700,    0, 3700,    0, 3700, 3701, 3701, 3701,
4262      3701,    0,    0, 3701, 3701, 3702, 3702, 3702, 3702,    0,
4263      3702,    0, 3702, 3703, 3703, 3703, 3703,    0,    0, 3703,
4264      3703, 3704, 3704, 3704,    0,    0,    0, 3704, 3705, 3705,
4265      3705, 3705,    0,    0, 3705, 3705, 3706, 3706, 3706,    0,
4266         0,    0, 3706, 3707, 3707, 3707, 3707,    0,    0, 3707,
4267      3707, 3708, 3708, 3708, 3708,    0,    0, 3708, 3708, 3709,
4268      3709, 3709,    0,    0,    0, 3709, 3710, 3710, 3710, 3710,
4269         0,    0, 3710, 3710, 3711, 3711, 3711,    0,    0,    0,
4270
4271      3711, 3712, 3712, 3712, 3712,    0,    0, 3712, 3712, 3713,
4272      3713, 3713, 3713, 3713, 3713, 3713, 3713, 3713, 3714,    0,
4273      3714,    0,    0, 3714, 3715, 3715, 3715,    0,    0,    0,
4274      3715, 3716, 3716, 3716, 3716,    0,    0, 3716, 3716, 3717,
4275      3717, 3717, 3717,    0, 3717,    0, 3717, 3718, 3718, 3718,
4276      3718,    0,    0, 3718, 3718, 3719, 3719, 3719, 3719,    0,
4277      3719,    0, 3719, 3720, 3720, 3720, 3720,    0,    0, 3720,
4278      3720, 3721, 3721, 3721,    0,    0,    0, 3721, 3722, 3722,
4279      3722, 3722,    0,    0, 3722, 3722, 3723, 3723, 3723,    0,
4280         0,    0, 3723, 3724, 3724, 3724, 3724,    0,    0, 3724,
4281
4282      3724, 3725, 3725, 3725,    0,    0,    0, 3725, 3726, 3726,
4283      3726, 3726,    0,    0, 3726, 3726, 3727, 3727, 3727,    0,
4284         0,    0, 3727, 3728, 3728, 3728, 3728,    0,    0, 3728,
4285      3728, 3729, 3729, 3729, 3729,    0, 3729,    0, 3729, 3730,
4286      3730, 3730, 3730,    0,    0, 3730, 3730, 3731, 3731, 3731,
4287      3731,    0, 3731,    0, 3731, 3732, 3732, 3732, 3732,    0,
4288         0, 3732, 3732, 3733, 3733, 3733,    0,    0,    0, 3733,
4289      3734, 3734, 3734, 3734,    0,    0, 3734, 3734, 3735, 3735,
4290      3735,    0,    0,    0, 3735, 3736, 3736, 3736, 3736,    0,
4291         0, 3736, 3736, 3737, 3737, 3737, 3737,    0, 3737,    0,
4292
4293      3737, 3738, 3738, 3738, 3738,    0,    0, 3738, 3738, 3739,
4294      3739, 3739, 3739,    0, 3739,    0, 3739, 3740, 3740, 3740,
4295      3740,    0,    0, 3740, 3740, 3741, 3741, 3741,    0,    0,
4296         0, 3741, 3742, 3742, 3742, 3742,    0,    0, 3742, 3742,
4297      3743, 3743, 3743,    0,    0,    0, 3743, 3744, 3744, 3744,
4298      3744,    0,    0, 3744, 3744, 3745, 3745, 3745,    0,    0,
4299         0, 3745, 3746, 3746, 3746, 3746,    0,    0, 3746, 3746,
4300      3747, 3747, 3747,    0,    0,    0, 3747, 3748, 3748, 3748,
4301      3748,    0,    0, 3748, 3748, 3749, 3749, 3749,    0,    0,
4302         0, 3749, 3750, 3750, 3750, 3750,    0,    0, 3750, 3750,
4303
4304      3751, 3751, 3751,    0,    0,    0, 3751, 3752, 3752, 3752,
4305      3752,    0,    0, 3752, 3752, 3753, 3753, 3753,    0,    0,
4306         0, 3753, 3754, 3754, 3754, 3754,    0,    0, 3754, 3754,
4307      3755, 3755, 3755,    0,    0,    0, 3755, 3756, 3756, 3756,
4308      3756,    0,    0, 3756, 3756, 3757, 3757, 3757,    0,    0,
4309         0, 3757, 3758, 3758, 3758, 3758,    0,    0, 3758, 3758,
4310      3759, 3759, 3759, 3759,    0,    0, 3759, 3759, 3760, 3760,
4311      3760,    0,    0,    0, 3760, 3761, 3761, 3761, 3761,    0,
4312         0, 3761, 3761, 3762, 3762, 3762,    0,    0,    0, 3762,
4313      3763, 3763, 3763, 3763,    0,    0, 3763, 3763, 3764, 3764,
4314
4315      3764,    0,    0,    0, 3764, 3765, 3765, 3765, 3765,    0,
4316         0, 3765, 3765, 3766, 3766, 3766, 3766,    0,    0, 3766,
4317      3766, 3767, 3767, 3767,    0,    0,    0, 3767, 3768, 3768,
4318      3768, 3768,    0,    0, 3768, 3768, 3769, 3769, 3769,    0,
4319         0,    0, 3769, 3770, 3770, 3770, 3770,    0,    0, 3770,
4320      3770, 3771, 3771, 3771, 3771, 3771, 3771, 3771, 3771, 3771,
4321      3772, 3772, 3772, 3772, 3772, 3772, 3772, 3772, 3772, 3773,
4322      3773, 3773,    0,    0,    0, 3773, 3774, 3774, 3774, 3774,
4323         0,    0, 3774, 3774, 3775, 3775, 3775, 3775,    0,    0,
4324      3775, 3775, 3776, 3776, 3776,    0,    0,    0, 3776, 3777,
4325
4326      3777, 3777, 3777,    0,    0, 3777, 3777, 3778, 3778, 3778,
4327         0,    0,    0, 3778, 3779, 3779, 3779, 3779,    0,    0,
4328      3779, 3779, 3780, 3780, 3780,    0,    0,    0, 3780, 3781,
4329      3781, 3781, 3781,    0,    0, 3781, 3781, 3782, 3782, 3782,
4330         0,    0,    0, 3782, 3783, 3783, 3783,    0,    0,    0,
4331      3783, 3784, 3784, 3784, 3784,    0,    0, 3784, 3784, 3785,
4332      3785, 3785,    0,    0,    0, 3785, 3786, 3786, 3786, 3786,
4333         0,    0, 3786, 3786, 3787, 3787, 3787,    0,    0,    0,
4334      3787, 3788, 3788, 3788, 3788,    0,    0, 3788, 3788, 3789,
4335      3789, 3789,    0,    0,    0, 3789, 3790, 3790, 3790, 3790,
4336
4337         0,    0, 3790, 3790, 3791, 3791, 3791,    0,    0,    0,
4338      3791, 3792, 3792, 3792, 3792,    0,    0, 3792, 3792, 3793,
4339      3793, 3793, 3793,    0,    0, 3793, 3793, 3794, 3794, 3794,
4340      3794,    0,    0, 3794, 3794, 3795, 3795, 3795,    0,    0,
4341         0, 3795, 3796, 3796, 3796, 3796,    0,    0, 3796, 3796,
4342      3797, 3797, 3797, 3797,    0, 3797,    0, 3797, 3798, 3798,
4343      3798, 3798,    0,    0, 3798, 3798, 3799, 3799, 3799,    0,
4344         0,    0, 3799, 3800, 3800, 3800, 3800,    0,    0, 3800,
4345      3800, 3801, 3801, 3801,    0,    0,    0, 3801, 3802, 3802,
4346      3802, 3802,    0,    0, 3802, 3802, 3803, 3803, 3803,    0,
4347
4348         0,    0, 3803, 3804, 3804, 3804, 3804,    0,    0, 3804,
4349      3804, 3805, 3805, 3805,    0,    0,    0, 3805, 3806, 3806,
4350      3806, 3806,    0,    0, 3806, 3806, 3807, 3807, 3807,    0,
4351         0,    0, 3807, 3808, 3808, 3808, 3808,    0,    0, 3808,
4352      3808, 3809, 3809, 3809,    0,    0,    0, 3809, 3810, 3810,
4353      3810, 3810,    0,    0, 3810, 3810, 3811, 3811, 3811,    0,
4354         0,    0, 3811, 3812, 3812, 3812, 3812,    0,    0, 3812,
4355      3812, 3813, 3813, 3813, 3813,    0,    0, 3813, 3813, 3814,
4356      3814, 3814,    0,    0,    0, 3814, 3815, 3815, 3815, 3815,
4357         0,    0, 3815, 3815, 3816, 3816, 3816,    0,    0,    0,
4358
4359      3816, 3817, 3817, 3817, 3817,    0,    0, 3817, 3817, 3818,
4360      3818, 3818, 3818,    0, 3818,    0, 3818, 3819, 3819, 3819,
4361      3819,    0,    0, 3819, 3819, 3820, 3820, 3820, 3820,    0,
4362         0, 3820, 3820, 3821, 3821, 3821, 3821,    0, 3821,    0,
4363      3821, 3822, 3822, 3822, 3822,    0,    0, 3822, 3822, 3823,
4364      3823, 3823, 3823,    0, 3823,    0, 3823, 3824, 3824, 3824,
4365      3824,    0,    0, 3824, 3824, 3825, 3825, 3825, 3825, 3825,
4366      3825, 3825, 3825, 3825, 3826, 3826, 3826, 3826, 3826, 3826,
4367      3826, 3826, 3826, 3827, 3827, 3827,    0,    0,    0, 3827,
4368      3828, 3828, 3828, 3828,    0,    0, 3828, 3828, 3829, 3829,
4369
4370      3829, 3829,    0,    0, 3829, 3829, 3830, 3830, 3830,    0,
4371         0,    0, 3830, 3831, 3831, 3831, 3831,    0,    0, 3831,
4372      3831, 3832, 3832, 3832,    0,    0,    0, 3832, 3833, 3833,
4373      3833, 3833,    0,    0, 3833, 3833, 3834, 3834, 3834,    0,
4374         0,    0, 3834, 3835, 3835, 3835, 3835,    0,    0, 3835,
4375      3835, 3836, 3836, 3836,    0,    0,    0, 3836, 3837, 3837,
4376      3837,    0,    0,    0, 3837, 3838, 3838, 3838, 3838,    0,
4377         0, 3838, 3838, 3839, 3839, 3839,    0,    0,    0, 3839,
4378      3840, 3840, 3840, 3840,    0,    0, 3840, 3840, 3841, 3841,
4379      3841, 3841,    0, 3841,    0, 3841, 3842, 3842, 3842, 3842,
4380
4381         0,    0, 3842, 3842, 3843, 3843, 3843,    0,    0,    0,
4382      3843, 3844, 3844, 3844, 3844,    0,    0, 3844, 3844, 3845,
4383      3845, 3845, 3845,    0, 3845,    0, 3845, 3846, 3846, 3846,
4384      3846,    0,    0, 3846, 3846, 3847, 3847, 3847, 3847,    0,
4385         0, 3847, 3847, 3848, 3848, 3848,    0,    0,    0, 3848,
4386      3849, 3849, 3849, 3849,    0,    0, 3849, 3849, 3850, 3850,
4387      3850, 3850,    0, 3850,    0, 3850, 3851, 3851, 3851, 3851,
4388         0,    0, 3851, 3851, 3852, 3852, 3852,    0,    0,    0,
4389      3852, 3853, 3853, 3853, 3853,    0,    0, 3853, 3853, 3854,
4390      3854, 3854,    0,    0,    0, 3854, 3855, 3855, 3855, 3855,
4391
4392         0,    0, 3855, 3855, 3856, 3856, 3856,    0,    0,    0,
4393      3856, 3857, 3857, 3857, 3857,    0,    0, 3857, 3857, 3858,
4394      3858, 3858,    0,    0,    0, 3858, 3859, 3859, 3859, 3859,
4395         0,    0, 3859, 3859, 3860, 3860, 3860,    0,    0,    0,
4396      3860, 3861, 3861, 3861, 3861,    0,    0, 3861, 3861, 3862,
4397      3862, 3862, 3862,    0, 3862,    0, 3862, 3863, 3863, 3863,
4398      3863,    0,    0, 3863, 3863, 3864, 3864, 3864,    0,    0,
4399         0, 3864, 3865, 3865, 3865, 3865,    0,    0, 3865, 3865,
4400      3866, 3866, 3866, 3866,    0,    0, 3866, 3866, 3867, 3867,
4401      3867, 3867,    0, 3867,    0, 3867, 3868, 3868, 3868, 3868,
4402
4403         0,    0, 3868, 3868, 3869, 3869, 3869,    0,    0,    0,
4404      3869, 3870, 3870, 3870, 3870,    0,    0, 3870, 3870, 3871,
4405      3871, 3871, 3871,    0,    0, 3871, 3871, 3872, 3872, 3872,
4406      3872,    0,    0, 3872, 3872, 3873, 3873, 3873, 3873,    0,
4407         0, 3873, 3873, 3874, 3874, 3874, 3874,    0,    0, 3874,
4408      3874, 3875, 3875, 3875, 3875, 3875, 3875, 3875, 3875, 3875,
4409      3876, 3876, 3876, 3876, 3876, 3876, 3876, 3876, 3876, 3877,
4410      3877, 3877, 3877,    0, 3877,    0, 3877, 3878, 3878, 3878,
4411      3878,    0,    0, 3878, 3878, 3879, 3879, 3879, 3879,    0,
4412         0, 3879, 3879, 3880, 3880, 3880,    0,    0,    0, 3880,
4413
4414      3881, 3881, 3881, 3881,    0,    0, 3881, 3881, 3882, 3882,
4415      3882,    0,    0,    0, 3882, 3883, 3883, 3883, 3883,    0,
4416         0, 3883, 3883, 3884, 3884, 3884, 3884,    0, 3884,    0,
4417      3884, 3885, 3885, 3885, 3885,    0,    0, 3885, 3885, 3886,
4418      3886, 3886, 3886,    0, 3886,    0, 3886, 3887, 3887, 3887,
4419      3887,    0, 3887,    0, 3887, 3888, 3888, 3888, 3888,    0,
4420         0, 3888, 3888, 3889, 3889, 3889,    0,    0,    0, 3889,
4421      3890, 3890, 3890, 3890,    0,    0, 3890, 3890, 3891, 3891,
4422      3891, 3891,    0,    0, 3891, 3891, 3892, 3892, 3892,    0,
4423         0,    0, 3892, 3893, 3893, 3893, 3893,    0, 3893,    0,
4424
4425      3893, 3894, 3894, 3894, 3894,    0,    0, 3894, 3894, 3895,
4426      3895, 3895, 3895,    0,    0, 3895, 3895, 3896, 3896, 3896,
4427         0,    0,    0, 3896, 3897, 3897, 3897, 3897,    0,    0,
4428      3897, 3897, 3898, 3898, 3898, 3898,    0, 3898,    0, 3898,
4429      3899, 3899, 3899, 3899,    0,    0, 3899, 3899, 3900, 3900,
4430      3900,    0,    0,    0, 3900, 3901, 3901, 3901,    0,    0,
4431         0, 3901, 3902, 3902, 3902, 3902,    0,    0, 3902, 3902,
4432      3903, 3903, 3903,    0,    0,    0, 3903, 3904, 3904, 3904,
4433      3904,    0,    0, 3904, 3904, 3905, 3905, 3905,    0,    0,
4434         0, 3905, 3906, 3906, 3906,    0,    0,    0, 3906, 3907,
4435
4436      3907, 3907, 3907,    0,    0, 3907, 3907, 3908, 3908, 3908,
4437         0,    0,    0, 3908, 3909, 3909, 3909, 3909,    0,    0,
4438      3909, 3909, 3910, 3910, 3910,    0,    0,    0, 3910, 3911,
4439      3911, 3911, 3911,    0,    0, 3911, 3911, 3912, 3912, 3912,
4440      3912,    0,    0, 3912, 3912, 3913, 3913, 3913, 3913,    0,
4441         0, 3913, 3913, 3914, 3914, 3914,    0,    0,    0, 3914,
4442      3915, 3915, 3915, 3915,    0,    0, 3915, 3915, 3916, 3916,
4443      3916, 3916,    0,    0, 3916, 3916, 3917, 3917, 3917, 3917,
4444         0,    0, 3917, 3917, 3918, 3918, 3918, 3918,    0,    0,
4445      3918, 3918, 3919, 3919, 3919, 3919, 3919, 3919, 3919, 3919,
4446
4447      3919, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920,
4448      3921, 3921, 3921, 3921,    0,    0, 3921, 3921, 3922, 3922,
4449      3922, 3922,    0,    0, 3922, 3922, 3923, 3923, 3923,    0,
4450         0,    0, 3923, 3924, 3924, 3924,    0,    0,    0, 3924,
4451      3925, 3925, 3925, 3925,    0,    0, 3925, 3925, 3926, 3926,
4452      3926, 3926,    0,    0, 3926, 3926, 3927, 3927, 3927,    0,
4453         0,    0, 3927, 3928, 3928, 3928, 3928,    0,    0, 3928,
4454      3928, 3929, 3929, 3929,    0,    0,    0, 3929, 3930, 3930,
4455      3930, 3930,    0,    0, 3930, 3930, 3931, 3931, 3931,    0,
4456         0,    0, 3931, 3932, 3932, 3932,    0,    0,    0, 3932,
4457
4458      3933, 3933, 3933, 3933,    0,    0, 3933, 3933, 3934, 3934,
4459      3934, 3934,    0,    0, 3934, 3934, 3935, 3935, 3935,    0,
4460         0,    0, 3935, 3936, 3936, 3936, 3936,    0,    0, 3936,
4461      3936, 3937, 3937, 3937, 3937,    0,    0, 3937, 3937, 3938,
4462      3938, 3938,    0,    0,    0, 3938, 3939, 3939, 3939,    0,
4463         0,    0, 3939, 3940, 3940, 3940, 3940,    0,    0, 3940,
4464      3940, 3941, 3941, 3941,    0,    0,    0, 3941, 3942, 3942,
4465      3942, 3942,    0,    0, 3942, 3942, 3943, 3943, 3943,    0,
4466         0,    0, 3943, 3944, 3944, 3944,    0,    0,    0, 3944,
4467      3945, 3945, 3945,    0,    0,    0, 3945, 3946, 3946, 3946,
4468
4469      3946,    0,    0, 3946, 3946, 3947, 3947, 3947,    0,    0,
4470         0, 3947, 3948, 3948, 3948, 3948,    0,    0, 3948, 3948,
4471      3949, 3949, 3949, 3949,    0,    0, 3949, 3949, 3950, 3950,
4472      3950, 3950,    0,    0, 3950, 3950, 3951, 3951, 3951, 3951,
4473         0, 3951,    0, 3951, 3952, 3952, 3952, 3952,    0,    0,
4474      3952, 3952, 3953, 3953, 3953, 3953,    0,    0, 3953, 3953,
4475      3954, 3954, 3954, 3954,    0,    0, 3954, 3954, 3955, 3955,
4476      3955, 3955,    0,    0, 3955, 3955, 3956, 3956, 3956, 3956,
4477      3956, 3956, 3956, 3956, 3956, 3957, 3957, 3957, 3957, 3957,
4478      3957, 3957, 3957, 3957, 3958, 3958, 3958, 3958,    0,    0,
4479
4480      3958, 3958, 3959, 3959, 3959, 3959,    0,    0, 3959, 3959,
4481      3960, 3960, 3960,    0,    0,    0, 3960, 3961, 3961, 3961,
4482      3961,    0, 3961,    0, 3961, 3962, 3962, 3962, 3962,    0,
4483         0, 3962, 3962, 3963, 3963, 3963,    0,    0,    0, 3963,
4484      3964, 3964, 3964, 3964,    0,    0, 3964, 3964, 3965, 3965,
4485      3965, 3965,    0, 3965,    0, 3965, 3966, 3966, 3966, 3966,
4486         0,    0, 3966, 3966, 3967, 3967, 3967,    0,    0,    0,
4487      3967, 3968, 3968, 3968,    0,    0,    0, 3968, 3969, 3969,
4488      3969, 3969,    0,    0, 3969, 3969, 3970, 3970, 3970, 3970,
4489         0,    0, 3970, 3970, 3971, 3971, 3971,    0,    0,    0,
4490
4491      3971, 3972, 3972, 3972, 3972,    0,    0, 3972, 3972, 3973,
4492      3973, 3973, 3973,    0,    0, 3973, 3973, 3974, 3974, 3974,
4493         0,    0,    0, 3974, 3975, 3975, 3975,    0,    0,    0,
4494      3975, 3976, 3976, 3976, 3976,    0, 3976,    0, 3976, 3977,
4495      3977, 3977, 3977,    0,    0, 3977, 3977, 3978, 3978, 3978,
4496      3978,    0, 3978,    0, 3978, 3979, 3979, 3979,    0,    0,
4497         0, 3979, 3980, 3980, 3980,    0,    0,    0, 3980, 3981,
4498      3981, 3981, 3981,    0,    0, 3981, 3981, 3982, 3982, 3982,
4499      3982,    0, 3982,    0, 3982, 3983, 3983, 3983, 3983,    0,
4500         0, 3983, 3983, 3984, 3984, 3984, 3984,    0,    0, 3984,
4501
4502      3984, 3985, 3985, 3985, 3985,    0,    0, 3985, 3985, 3986,
4503      3986, 3986, 3986,    0, 3986,    0, 3986, 3987, 3987, 3987,
4504      3987,    0,    0, 3987, 3987, 3988, 3988, 3988, 3988,    0,
4505         0, 3988, 3988, 3989, 3989, 3989, 3989,    0,    0, 3989,
4506      3989, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
4507      3991, 3991, 3991, 3991, 3991, 3991, 3991, 3991, 3991, 3992,
4508      3992, 3992, 3992,    0,    0, 3992, 3992, 3993, 3993, 3993,
4509         0,    0,    0, 3993, 3994, 3994, 3994,    0,    0,    0,
4510      3994, 3995, 3995, 3995, 3995,    0,    0, 3995, 3995, 3996,
4511      3996, 3996,    0,    0,    0, 3996, 3997, 3997, 3997, 3997,
4512
4513         0,    0, 3997, 3997, 3998, 3998, 3998, 3998,    0,    0,
4514      3998, 3998, 3999, 3999, 3999,    0,    0,    0, 3999, 4000,
4515      4000, 4000,    0,    0,    0, 4000, 4001, 4001, 4001, 4001,
4516         0,    0, 4001, 4001, 4002, 4002, 4002,    0,    0,    0,
4517      4002, 4003, 4003, 4003,    0,    0,    0, 4003, 4004, 4004,
4518      4004,    0,    0,    0, 4004, 4005, 4005, 4005, 4005,    0,
4519         0, 4005, 4005, 4006, 4006, 4006,    0,    0,    0, 4006,
4520      4007, 4007, 4007,    0,    0,    0, 4007, 4008, 4008, 4008,
4521         0,    0,    0, 4008, 4009, 4009, 4009, 4009, 4009, 4009,
4522      4009, 4009, 4009, 4010, 4010, 4010, 4010, 4010, 4010, 4010,
4523
4524      4010, 4010, 4011, 4011, 4011, 4011, 4011, 4011, 4011, 4011,
4525      4011, 4012, 4012, 4012, 4012, 4012, 4012, 4012, 4012, 4012,
4526      4013, 4013, 4013, 4013, 4013, 4013, 4013, 4013, 4013, 4014,
4527      4014, 4014, 4014, 4014, 4014, 4014, 4014, 4014, 3502, 3502,
4528      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
4529      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
4530      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
4531      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
4532      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
4533      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
4534
4535      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
4536      3502, 3502, 3502
4537     } ;
4538
4539 /* Table of booleans, true if rule could match eol. */
4540 static yyconst flex_int32_t yy_rule_can_match_eol[596] =
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, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 
4549     1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 
4550     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
4551     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4552     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4553     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
4554     1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 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, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
4558     1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
4559     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
4560     0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 
4561     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4562     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
4563     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
4564     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4565     1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 
4566     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
4567     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
4568     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
4569     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
4570     0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 
4571     0, 0, 1, 1, 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_cluster_lat AX_surfxml_cluster_lat;
4670 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
4671 short int surfxml_cluster_lat_isset;
4672 AT_surfxml_cabinet_radical AX_surfxml_cabinet_radical;
4673 #define A_surfxml_cabinet_radical (surfxml_bufferstack + AX_surfxml_cabinet_radical)
4674 short int surfxml_cabinet_radical_isset;
4675 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
4676 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
4677 short int surfxml_bypassRoute_dst_isset;
4678 AT_surfxml_cluster_loopback___lat AX_surfxml_cluster_loopback___lat;
4679 #define A_surfxml_cluster_loopback___lat (surfxml_bufferstack + AX_surfxml_cluster_loopback___lat)
4680 short int surfxml_cluster_loopback___lat_isset;
4681 AT_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind;
4682 #define A_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind
4683 short int surfxml_trace___connect_kind_isset;
4684 AT_surfxml_process_function AX_surfxml_process_function;
4685 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
4686 short int surfxml_process_function_isset;
4687 AT_surfxml_storage_attach AX_surfxml_storage_attach;
4688 #define A_surfxml_storage_attach (surfxml_bufferstack + AX_surfxml_storage_attach)
4689 short int surfxml_storage_attach_isset;
4690 AT_surfxml_host_state AX_surfxml_host_state;
4691 #define A_surfxml_host_state AX_surfxml_host_state
4692 short int surfxml_host_state_isset;
4693 AT_surfxml_argument_value AX_surfxml_argument_value;
4694 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
4695 short int surfxml_argument_value_isset;
4696 AT_surfxml_cluster_router___id AX_surfxml_cluster_router___id;
4697 #define A_surfxml_cluster_router___id (surfxml_bufferstack + AX_surfxml_cluster_router___id)
4698 short int surfxml_cluster_router___id_isset;
4699 AT_surfxml_cluster_power AX_surfxml_cluster_power;
4700 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
4701 short int surfxml_cluster_power_isset;
4702 AT_surfxml_trace_file AX_surfxml_trace_file;
4703 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
4704 short int surfxml_trace_file_isset;
4705 AT_surfxml_cluster_loopback___bw AX_surfxml_cluster_loopback___bw;
4706 #define A_surfxml_cluster_loopback___bw (surfxml_bufferstack + AX_surfxml_cluster_loopback___bw)
4707 short int surfxml_cluster_loopback___bw_isset;
4708 AT_surfxml_process_host AX_surfxml_process_host;
4709 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
4710 short int surfxml_process_host_isset;
4711 AT_surfxml_cabinet_bw AX_surfxml_cabinet_bw;
4712 #define A_surfxml_cabinet_bw (surfxml_bufferstack + AX_surfxml_cabinet_bw)
4713 short int surfxml_cabinet_bw_isset;
4714 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
4715 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
4716 short int surfxml_peer_coordinates_isset;
4717 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
4718 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
4719 short int surfxml_host_coordinates_isset;
4720 AT_surfxml_cluster_bb___bw AX_surfxml_cluster_bb___bw;
4721 #define A_surfxml_cluster_bb___bw (surfxml_bufferstack + AX_surfxml_cluster_bb___bw)
4722 short int surfxml_cluster_bb___bw_isset;
4723 AT_surfxml_peer_power AX_surfxml_peer_power;
4724 #define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power)
4725 short int surfxml_peer_power_isset;
4726 AT_surfxml_host_availability AX_surfxml_host_availability;
4727 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
4728 short int surfxml_host_availability_isset;
4729 AT_surfxml_host_state___file AX_surfxml_host_state___file;
4730 #define A_surfxml_host_state___file (surfxml_bufferstack + AX_surfxml_host_state___file)
4731 short int surfxml_host_state___file_isset;
4732 AT_surfxml_cluster_availability___file AX_surfxml_cluster_availability___file;
4733 #define A_surfxml_cluster_availability___file (surfxml_bufferstack + AX_surfxml_cluster_availability___file)
4734 short int surfxml_cluster_availability___file_isset;
4735 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
4736 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
4737 short int surfxml_router_coordinates_isset;
4738 AT_surfxml_random_min AX_surfxml_random_min;
4739 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
4740 short int surfxml_random_min_isset;
4741 AT_surfxml_ASroute_gw___dst AX_surfxml_ASroute_gw___dst;
4742 #define A_surfxml_ASroute_gw___dst (surfxml_bufferstack + AX_surfxml_ASroute_gw___dst)
4743 short int surfxml_ASroute_gw___dst_isset;
4744 AT_surfxml_random_id AX_surfxml_random_id;
4745 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
4746 short int surfxml_random_id_isset;
4747 AT_surfxml_route_dst AX_surfxml_route_dst;
4748 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
4749 short int surfxml_route_dst_isset;
4750 AT_surfxml_mount_storageId AX_surfxml_mount_storageId;
4751 #define A_surfxml_mount_storageId (surfxml_bufferstack + AX_surfxml_mount_storageId)
4752 short int surfxml_mount_storageId_isset;
4753 AT_surfxml_backbone_bandwidth AX_surfxml_backbone_bandwidth;
4754 #define A_surfxml_backbone_bandwidth (surfxml_bufferstack + AX_surfxml_backbone_bandwidth)
4755 short int surfxml_backbone_bandwidth_isset;
4756 AT_surfxml_cluster_topology AX_surfxml_cluster_topology;
4757 #define A_surfxml_cluster_topology AX_surfxml_cluster_topology
4758 short int surfxml_cluster_topology_isset;
4759 AT_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy;
4760 #define A_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy
4761 short int surfxml_cluster_bb___sharing___policy_isset;
4762 AT_surfxml_peer_bw___out AX_surfxml_peer_bw___out;
4763 #define A_surfxml_peer_bw___out (surfxml_bufferstack + AX_surfxml_peer_bw___out)
4764 short int surfxml_peer_bw___out_isset;
4765 AT_surfxml_cluster_id AX_surfxml_cluster_id;
4766 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
4767 short int surfxml_cluster_id_isset;
4768 AT_surfxml_host_power AX_surfxml_host_power;
4769 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
4770 short int surfxml_host_power_isset;
4771 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
4772 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
4773 short int surfxml_link_bandwidth_isset;
4774 AT_surfxml_cabinet_prefix AX_surfxml_cabinet_prefix;
4775 #define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix)
4776 short int surfxml_cabinet_prefix_isset;
4777 AT_surfxml_mstorage_name AX_surfxml_mstorage_name;
4778 #define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name)
4779 short int surfxml_mstorage_name_isset;
4780 AT_surfxml_backbone_latency AX_surfxml_backbone_latency;
4781 #define A_surfxml_backbone_latency (surfxml_bufferstack + AX_surfxml_backbone_latency)
4782 short int surfxml_backbone_latency_isset;
4783 AT_surfxml_storage___type_content___type AX_surfxml_storage___type_content___type;
4784 #define A_surfxml_storage___type_content___type (surfxml_bufferstack + AX_surfxml_storage___type_content___type)
4785 short int surfxml_storage___type_content___type_isset;
4786 AT_surfxml_backbone_id AX_surfxml_backbone_id;
4787 #define A_surfxml_backbone_id (surfxml_bufferstack + AX_surfxml_backbone_id)
4788 short int surfxml_backbone_id_isset;
4789 AT_surfxml_AS_routing AX_surfxml_AS_routing;
4790 #define A_surfxml_AS_routing AX_surfxml_AS_routing
4791 short int surfxml_AS_routing_isset;
4792 AT_surfxml_prop_value AX_surfxml_prop_value;
4793 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
4794 short int surfxml_prop_value_isset;
4795 AT_surfxml_link_latency___file AX_surfxml_link_latency___file;
4796 #define A_surfxml_link_latency___file (surfxml_bufferstack + AX_surfxml_link_latency___file)
4797 short int surfxml_link_latency___file_isset;
4798 AT_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction;
4799 #define A_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction
4800 short int surfxml_link___ctn_direction_isset;
4801 AT_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy;
4802 #define A_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy
4803 short int surfxml_cluster_sharing___policy_isset;
4804 AT_surfxml_cabinet_power AX_surfxml_cabinet_power;
4805 #define A_surfxml_cabinet_power (surfxml_bufferstack + AX_surfxml_cabinet_power)
4806 short int surfxml_cabinet_power_isset;
4807 AT_surfxml_host___link_up AX_surfxml_host___link_up;
4808 #define A_surfxml_host___link_up (surfxml_bufferstack + AX_surfxml_host___link_up)
4809 short int surfxml_host___link_up_isset;
4810 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
4811 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
4812 short int surfxml_route_symmetrical_isset;
4813 AT_surfxml_link_latency AX_surfxml_link_latency;
4814 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
4815 short int surfxml_link_latency_isset;
4816 AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
4817 #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
4818 short int surfxml_storage_typeId_isset;
4819 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
4820 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
4821 short int surfxml_ASroute_symmetrical_isset;
4822 AT_surfxml_cabinet_id AX_surfxml_cabinet_id;
4823 #define A_surfxml_cabinet_id (surfxml_bufferstack + AX_surfxml_cabinet_id)
4824 short int surfxml_cabinet_id_isset;
4825 AT_surfxml_mount_name AX_surfxml_mount_name;
4826 #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
4827 short int surfxml_mount_name_isset;
4828 AT_surfxml_process_start___time AX_surfxml_process_start___time;
4829 #define A_surfxml_process_start___time (surfxml_bufferstack + AX_surfxml_process_start___time)
4830 short int surfxml_process_start___time_isset;
4831 AT_surfxml_link_state___file AX_surfxml_link_state___file;
4832 #define A_surfxml_link_state___file (surfxml_bufferstack + AX_surfxml_link_state___file)
4833 short int surfxml_link_state___file_isset;
4834 AT_surfxml_peer_availability___file AX_surfxml_peer_availability___file;
4835 #define A_surfxml_peer_availability___file (surfxml_bufferstack + AX_surfxml_peer_availability___file)
4836 short int surfxml_peer_availability___file_isset;
4837 AT_surfxml_storage___type_content AX_surfxml_storage___type_content;
4838 #define A_surfxml_storage___type_content (surfxml_bufferstack + AX_surfxml_storage___type_content)
4839 short int surfxml_storage___type_content_isset;
4840 AT_surfxml_trace___connect_trace AX_surfxml_trace___connect_trace;
4841 #define A_surfxml_trace___connect_trace (surfxml_bufferstack + AX_surfxml_trace___connect_trace)
4842 short int surfxml_trace___connect_trace_isset;
4843 AT_surfxml_cluster_core AX_surfxml_cluster_core;
4844 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
4845 short int surfxml_cluster_core_isset;
4846 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
4847 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
4848 short int surfxml_cluster_suffix_isset;
4849 AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src;
4850 #define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
4851 short int surfxml_bypassASroute_src_isset;
4852 AT_surfxml_host_id AX_surfxml_host_id;
4853 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
4854 short int surfxml_host_id_isset;
4855 AT_surfxml_storage_content AX_surfxml_storage_content;
4856 #define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
4857 short int surfxml_storage_content_isset;
4858 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
4859 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
4860 short int surfxml_cluster_radical_isset;
4861 AT_surfxml_process_on___failure AX_surfxml_process_on___failure;
4862 #define A_surfxml_process_on___failure AX_surfxml_process_on___failure
4863 short int surfxml_process_on___failure_isset;
4864 AT_surfxml_link_id AX_surfxml_link_id;
4865 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
4866 short int surfxml_link_id_isset;
4867 AT_surfxml_bypassASroute_dst AX_surfxml_bypassASroute_dst;
4868 #define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
4869 short int surfxml_bypassASroute_dst_isset;
4870 AT_surfxml_model___prop_id AX_surfxml_model___prop_id;
4871 #define A_surfxml_model___prop_id (surfxml_bufferstack + AX_surfxml_model___prop_id)
4872 short int surfxml_model___prop_id_isset;
4873 AT_surfxml_random_generator AX_surfxml_random_generator;
4874 #define A_surfxml_random_generator AX_surfxml_random_generator
4875 short int surfxml_random_generator_isset;
4876 AT_surfxml_storage___type_size AX_surfxml_storage___type_size;
4877 #define A_surfxml_storage___type_size (surfxml_bufferstack + AX_surfxml_storage___type_size)
4878 short int surfxml_storage___type_size_isset;
4879 AT_surfxml_cluster_state___file AX_surfxml_cluster_state___file;
4880 #define A_surfxml_cluster_state___file (surfxml_bufferstack + AX_surfxml_cluster_state___file)
4881 short int surfxml_cluster_state___file_isset;
4882 AT_surfxml_link___ctn_id AX_surfxml_link___ctn_id;
4883 #define A_surfxml_link___ctn_id (surfxml_bufferstack + AX_surfxml_link___ctn_id)
4884 short int surfxml_link___ctn_id_isset;
4885 AT_surfxml_peer_bw___in AX_surfxml_peer_bw___in;
4886 #define A_surfxml_peer_bw___in (surfxml_bufferstack + AX_surfxml_peer_bw___in)
4887 short int surfxml_peer_bw___in_isset;
4888 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
4889 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
4890 short int surfxml_bypassRoute_src_isset;
4891 AT_surfxml_ASroute_gw___src AX_surfxml_ASroute_gw___src;
4892 #define A_surfxml_ASroute_gw___src (surfxml_bufferstack + AX_surfxml_ASroute_gw___src)
4893 short int surfxml_ASroute_gw___src_isset;
4894 AT_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy;
4895 #define A_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy
4896 short int surfxml_link_sharing___policy_isset;
4897 AT_surfxml_host_pstate AX_surfxml_host_pstate;
4898 #define A_surfxml_host_pstate (surfxml_bufferstack + AX_surfxml_host_pstate)
4899 short int surfxml_host_pstate_isset;
4900 AT_surfxml_route_src AX_surfxml_route_src;
4901 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
4902 short int surfxml_route_src_isset;
4903 AT_surfxml_cabinet_suffix AX_surfxml_cabinet_suffix;
4904 #define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix)
4905 short int surfxml_cabinet_suffix_isset;
4906 AT_surfxml_cluster_limiter___link AX_surfxml_cluster_limiter___link;
4907 #define A_surfxml_cluster_limiter___link (surfxml_bufferstack + AX_surfxml_cluster_limiter___link)
4908 short int surfxml_cluster_limiter___link_isset;
4909 AT_surfxml_cluster_bb___lat AX_surfxml_cluster_bb___lat;
4910 #define A_surfxml_cluster_bb___lat (surfxml_bufferstack + AX_surfxml_cluster_bb___lat)
4911 short int surfxml_cluster_bb___lat_isset;
4912 AT_surfxml_peer_state___file AX_surfxml_peer_state___file;
4913 #define A_surfxml_peer_state___file (surfxml_bufferstack + AX_surfxml_peer_state___file)
4914 short int surfxml_peer_state___file_isset;
4915 AT_surfxml_host___link_id AX_surfxml_host___link_id;
4916 #define A_surfxml_host___link_id (surfxml_bufferstack + AX_surfxml_host___link_id)
4917 short int surfxml_host___link_id_isset;
4918 AT_surfxml_random_radical AX_surfxml_random_radical;
4919 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
4920 short int surfxml_random_radical_isset;
4921 AT_surfxml_include_file AX_surfxml_include_file;
4922 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
4923 short int surfxml_include_file_isset;
4924 AT_surfxml_link_bandwidth___file AX_surfxml_link_bandwidth___file;
4925 #define A_surfxml_link_bandwidth___file (surfxml_bufferstack + AX_surfxml_link_bandwidth___file)
4926 short int surfxml_link_bandwidth___file_isset;
4927 AT_surfxml_prop_id AX_surfxml_prop_id;
4928 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
4929 short int surfxml_prop_id_isset;
4930 AT_surfxml_config_id AX_surfxml_config_id;
4931 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
4932 short int surfxml_config_id_isset;
4933 AT_surfxml_host_core AX_surfxml_host_core;
4934 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
4935 short int surfxml_host_core_isset;
4936 AT_surfxml_storage___type_id AX_surfxml_storage___type_id;
4937 #define A_surfxml_storage___type_id (surfxml_bufferstack + AX_surfxml_storage___type_id)
4938 short int surfxml_storage___type_id_isset;
4939 AT_surfxml_random_max AX_surfxml_random_max;
4940 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
4941 short int surfxml_random_max_isset;
4942 AT_surfxml_storage_id AX_surfxml_storage_id;
4943 #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
4944 short int surfxml_storage_id_isset;
4945 AT_surfxml_random_seed AX_surfxml_random_seed;
4946 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
4947 short int surfxml_random_seed_isset;
4948 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
4949 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
4950 short int surfxml_trace_periodicity_isset;
4951 AT_surfxml_model___prop_value AX_surfxml_model___prop_value;
4952 #define A_surfxml_model___prop_value (surfxml_bufferstack + AX_surfxml_model___prop_value)
4953 short int surfxml_model___prop_value_isset;
4954 AT_surfxml_random_std___deviation AX_surfxml_random_std___deviation;
4955 #define A_surfxml_random_std___deviation (surfxml_bufferstack + AX_surfxml_random_std___deviation)
4956 short int surfxml_random_std___deviation_isset;
4957 AT_surfxml_peer_id AX_surfxml_peer_id;
4958 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
4959 short int surfxml_peer_id_isset;
4960 AT_surfxml_random_mean AX_surfxml_random_mean;
4961 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
4962 short int surfxml_random_mean_isset;
4963 AT_surfxml_cluster_topo___parameters AX_surfxml_cluster_topo___parameters;
4964 #define A_surfxml_cluster_topo___parameters (surfxml_bufferstack + AX_surfxml_cluster_topo___parameters)
4965 short int surfxml_cluster_topo___parameters_isset;
4966 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
4967 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
4968 short int surfxml_ASroute_dst_isset;
4969 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
4970 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
4971 short int surfxml_cluster_prefix_isset;
4972 AT_surfxml_platform_version AX_surfxml_platform_version;
4973 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
4974 short int surfxml_platform_version_isset;
4975 AT_surfxml_link_state AX_surfxml_link_state;
4976 #define A_surfxml_link_state AX_surfxml_link_state
4977 short int surfxml_link_state_isset;
4978 AT_surfxml_storage___type_model AX_surfxml_storage___type_model;
4979 #define A_surfxml_storage___type_model (surfxml_bufferstack + AX_surfxml_storage___type_model)
4980 short int surfxml_storage___type_model_isset;
4981 AT_surfxml_gpu_name AX_surfxml_gpu_name;
4982 #define A_surfxml_gpu_name (surfxml_bufferstack + AX_surfxml_gpu_name)
4983 short int surfxml_gpu_name_isset;
4984 AT_surfxml_bypassASroute_gw___src AX_surfxml_bypassASroute_gw___src;
4985 #define A_surfxml_bypassASroute_gw___src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___src)
4986 short int surfxml_bypassASroute_gw___src_isset;
4987 AT_surfxml_router_id AX_surfxml_router_id;
4988 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
4989 short int surfxml_router_id_isset;
4990 AT_surfxml_storage_content___type AX_surfxml_storage_content___type;
4991 #define A_surfxml_storage_content___type (surfxml_bufferstack + AX_surfxml_storage_content___type)
4992 short int surfxml_storage_content___type_isset;
4993 AT_surfxml_trace_id AX_surfxml_trace_id;
4994 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
4995 short int surfxml_trace_id_isset;
4996 AT_surfxml_AS_id AX_surfxml_AS_id;
4997 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
4998 short int surfxml_AS_id_isset;
4999 AT_surfxml_mstorage_typeId AX_surfxml_mstorage_typeId;
5000 #define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId)
5001 short int surfxml_mstorage_typeId_isset;
5002 AT_surfxml_trace___connect_element AX_surfxml_trace___connect_element;
5003 #define A_surfxml_trace___connect_element (surfxml_bufferstack + AX_surfxml_trace___connect_element)
5004 short int surfxml_trace___connect_element_isset;
5005 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
5006 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
5007 short int surfxml_cluster_bw_isset;
5008 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
5009 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
5010 short int surfxml_ASroute_src_isset;
5011 AT_surfxml_host___link_down AX_surfxml_host___link_down;
5012 #define A_surfxml_host___link_down (surfxml_bufferstack + AX_surfxml_host___link_down)
5013 short int surfxml_host___link_down_isset;
5014 AT_surfxml_process_kill___time AX_surfxml_process_kill___time;
5015 #define A_surfxml_process_kill___time (surfxml_bufferstack + AX_surfxml_process_kill___time)
5016 short int surfxml_process_kill___time_isset;
5017 AT_surfxml_bypassASroute_gw___dst AX_surfxml_bypassASroute_gw___dst;
5018 #define A_surfxml_bypassASroute_gw___dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___dst)
5019 short int surfxml_bypassASroute_gw___dst_isset;
5020 AT_surfxml_host_availability___file AX_surfxml_host_availability___file;
5021 #define A_surfxml_host_availability___file (surfxml_bufferstack + AX_surfxml_host_availability___file)
5022 short int surfxml_host_availability___file_isset;
5023 AT_surfxml_peer_lat AX_surfxml_peer_lat;
5024 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
5025 short int surfxml_peer_lat_isset;
5026 AT_surfxml_cabinet_lat AX_surfxml_cabinet_lat;
5027 #define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat)
5028 short int surfxml_cabinet_lat_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 #define YY_READ_BUF_SIZE 8192
5401 #endif
5402
5403 /* Copy whatever the last rule matched to the standard output. */
5404 #ifndef ECHO
5405 /* This used to be an fputs(), but since the string might contain NUL's,
5406  * we now use fwrite().
5407  */
5408 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
5409 #endif
5410
5411 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
5412  * is returned in "result".
5413  */
5414 #ifndef YY_INPUT
5415 #define YY_INPUT(buf,result,max_size) \
5416         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
5417                 { \
5418                 int c = '*'; \
5419                 size_t n; \
5420                 for ( n = 0; n < max_size && \
5421                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
5422                         buf[n] = (char) c; \
5423                 if ( c == '\n' ) \
5424                         buf[n++] = (char) c; \
5425                 if ( c == EOF && ferror( surf_parse_in ) ) \
5426                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
5427                 result = n; \
5428                 } \
5429         else \
5430                 { \
5431                 errno=0; \
5432                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
5433                         { \
5434                         if( errno != EINTR) \
5435                                 { \
5436                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
5437                                 break; \
5438                                 } \
5439                         errno=0; \
5440                         clearerr(surf_parse_in); \
5441                         } \
5442                 }\
5443 \
5444
5445 #endif
5446
5447 /* No semi-colon after return; correct usage is to write "yyterminate();" -
5448  * we don't want an extra ';' after the "return" because that will cause
5449  * some compilers to complain about unreachable statements.
5450  */
5451 #ifndef yyterminate
5452 #define yyterminate() return YY_NULL
5453 #endif
5454
5455 /* Number of entries by which start-condition stack grows. */
5456 #ifndef YY_START_STACK_INCR
5457 #define YY_START_STACK_INCR 25
5458 #endif
5459
5460 /* Report a fatal error. */
5461 #ifndef YY_FATAL_ERROR
5462 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
5463 #endif
5464
5465 /* end tables serialization structures and prototypes */
5466
5467 /* Default declaration of generated scanner - a define so the user can
5468  * easily add parameters.
5469  */
5470 #ifndef YY_DECL
5471 #define YY_DECL_IS_OURS 1
5472
5473 extern int surf_parse_lex (void);
5474
5475 #define YY_DECL int surf_parse_lex (void)
5476 #endif /* !YY_DECL */
5477
5478 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
5479  * have been set up.
5480  */
5481 #ifndef YY_USER_ACTION
5482 #define YY_USER_ACTION
5483 #endif
5484
5485 /* Code executed at the end of each rule. */
5486 #ifndef YY_BREAK
5487 #define YY_BREAK break;
5488 #endif
5489
5490 #define YY_RULE_SETUP \
5491         YY_USER_ACTION
5492
5493 /** The main scanner function which does all the work.
5494  */
5495 YY_DECL
5496 {
5497         register yy_state_type yy_current_state;
5498         register char *yy_cp, *yy_bp;
5499         register int yy_act;
5500     
5501  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
5502  SET(PROLOG);
5503  reset_surfxml_parse_err_msg();
5504  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
5505  assert(surfxml_bufferstack);
5506  #ifdef FLEX_DEBUG
5507  {
5508      int i;
5509      for (i = 0; i < blimit; i++) {
5510          surfxml_bufferstack[i] = '\377';
5511      }
5512  }
5513  #endif
5514  surfxml_bufferstack[0] = '\0';
5515  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
5516  assert(indexstack);
5517  indexstack[0] = 0;
5518
5519   /* FleXML_init */
5520   bnext = inext = 1;
5521   surfxml_bufferliteral('\0', &bnext, "0.0");
5522   surfxml_bufferliteral('\0', &bnext, "2147483647");
5523   surfxml_bufferliteral('\0', &bnext, "txt_unix");
5524   surfxml_bufferliteral('\0', &bnext, "1");
5525   surfxml_bufferliteral('\0', &bnext, "1.0");
5526   surfxml_bufferliteral('\0', &bnext, "0.0");
5527   surfxml_bufferliteral('\0', &bnext, "txt_unix");
5528   surfxml_bufferliteral('\0', &bnext, "1");
5529   surfxml_bufferliteral('\0', &bnext, "0.0");
5530   surfxml_bufferliteral('\0', &bnext, "-1.0");
5531   surfxml_bufferliteral('\0', &bnext, "-1.0");
5532   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
5533   surfxml_statenames[PROLOG] = NULL;
5534   surfxml_statenames[DOCTYPE] = NULL;
5535   surfxml_statenames[EPILOG] = NULL;
5536   surfxml_statenames[INCOMMENT] = NULL;
5537   surfxml_statenames[INPI] = NULL;
5538   surfxml_statenames[VALUE1] = NULL;
5539   surfxml_statenames[VALUE2] = NULL;
5540   surfxml_statenames[CDATA] = NULL;
5541   surfxml_statenames[ROOT_surfxml_platform] = NULL;
5542   surfxml_statenames[AL_surfxml_platform] = NULL;
5543   surfxml_statenames[S_surfxml_platform] = "platform";
5544   surfxml_statenames[S_surfxml_platform_1] = "platform";
5545   surfxml_statenames[S_surfxml_platform_2] = "platform";
5546   surfxml_statenames[S_surfxml_platform_3] = "platform";
5547   surfxml_statenames[S_surfxml_platform_4] = "platform";
5548   surfxml_statenames[S_surfxml_platform_5] = "platform";
5549   surfxml_statenames[S_surfxml_platform_6] = "platform";
5550   surfxml_statenames[S_surfxml_platform_7] = "platform";
5551   surfxml_statenames[S_surfxml_platform_8] = "platform";
5552   surfxml_statenames[E_surfxml_platform] = "platform";
5553   surfxml_statenames[AL_surfxml_include] = NULL;
5554   surfxml_statenames[S_surfxml_include] = "include";
5555   surfxml_statenames[S_surfxml_include_1] = "include";
5556   surfxml_statenames[S_surfxml_include_2] = "include";
5557   surfxml_statenames[E_surfxml_include] = "include";
5558   surfxml_statenames[AL_surfxml_trace] = NULL;
5559   surfxml_statenames[IN_trace] = "trace";
5560   surfxml_statenames[AL_surfxml_random] = NULL;
5561   surfxml_statenames[E_surfxml_random] = "random";
5562   surfxml_statenames[AL_surfxml_trace___connect] = NULL;
5563   surfxml_statenames[E_surfxml_trace___connect] = "trace_connect";
5564   surfxml_statenames[AL_surfxml_AS] = NULL;
5565   surfxml_statenames[S_surfxml_AS] = "AS";
5566   surfxml_statenames[S_surfxml_AS_1] = "AS";
5567   surfxml_statenames[S_surfxml_AS_2] = "AS";
5568   surfxml_statenames[S_surfxml_AS_3] = "AS";
5569   surfxml_statenames[S_surfxml_AS_4] = "AS";
5570   surfxml_statenames[S_surfxml_AS_5] = "AS";
5571   surfxml_statenames[S_surfxml_AS_6] = "AS";
5572   surfxml_statenames[S_surfxml_AS_7] = "AS";
5573   surfxml_statenames[S_surfxml_AS_8] = "AS";
5574   surfxml_statenames[S_surfxml_AS_9] = "AS";
5575   surfxml_statenames[S_surfxml_AS_10] = "AS";
5576   surfxml_statenames[S_surfxml_AS_11] = "AS";
5577   surfxml_statenames[S_surfxml_AS_12] = "AS";
5578   surfxml_statenames[S_surfxml_AS_13] = "AS";
5579   surfxml_statenames[S_surfxml_AS_14] = "AS";
5580   surfxml_statenames[S_surfxml_AS_15] = "AS";
5581   surfxml_statenames[S_surfxml_AS_16] = "AS";
5582   surfxml_statenames[E_surfxml_AS] = "AS";
5583   surfxml_statenames[AL_surfxml_storage___type] = NULL;
5584   surfxml_statenames[S_surfxml_storage___type] = "storage_type";
5585   surfxml_statenames[S_surfxml_storage___type_1] = "storage_type";
5586   surfxml_statenames[S_surfxml_storage___type_2] = "storage_type";
5587   surfxml_statenames[E_surfxml_storage___type] = "storage_type";
5588   surfxml_statenames[AL_surfxml_mount] = NULL;
5589   surfxml_statenames[E_surfxml_mount] = "mount";
5590   surfxml_statenames[AL_surfxml_mstorage] = NULL;
5591   surfxml_statenames[E_surfxml_mstorage] = "mstorage";
5592   surfxml_statenames[AL_surfxml_host] = NULL;
5593   surfxml_statenames[S_surfxml_host] = "host";
5594   surfxml_statenames[S_surfxml_host_1] = "host";
5595   surfxml_statenames[S_surfxml_host_2] = "host";
5596   surfxml_statenames[E_surfxml_host] = "host";
5597   surfxml_statenames[AL_surfxml_storage] = NULL;
5598   surfxml_statenames[S_surfxml_storage] = "storage";
5599   surfxml_statenames[S_surfxml_storage_1] = "storage";
5600   surfxml_statenames[S_surfxml_storage_2] = "storage";
5601   surfxml_statenames[E_surfxml_storage] = "storage";
5602   surfxml_statenames[AL_surfxml_gpu] = NULL;
5603   surfxml_statenames[E_surfxml_gpu] = "gpu";
5604   surfxml_statenames[AL_surfxml_host___link] = NULL;
5605   surfxml_statenames[E_surfxml_host___link] = "host_link";
5606   surfxml_statenames[AL_surfxml_cluster] = NULL;
5607   surfxml_statenames[S_surfxml_cluster] = "cluster";
5608   surfxml_statenames[S_surfxml_cluster_1] = "cluster";
5609   surfxml_statenames[S_surfxml_cluster_2] = "cluster";
5610   surfxml_statenames[E_surfxml_cluster] = "cluster";
5611   surfxml_statenames[AL_surfxml_cabinet] = NULL;
5612   surfxml_statenames[E_surfxml_cabinet] = "cabinet";
5613   surfxml_statenames[AL_surfxml_peer] = NULL;
5614   surfxml_statenames[E_surfxml_peer] = "peer";
5615   surfxml_statenames[AL_surfxml_router] = NULL;
5616   surfxml_statenames[E_surfxml_router] = "router";
5617   surfxml_statenames[AL_surfxml_backbone] = NULL;
5618   surfxml_statenames[E_surfxml_backbone] = "backbone";
5619   surfxml_statenames[AL_surfxml_link] = NULL;
5620   surfxml_statenames[S_surfxml_link] = "link";
5621   surfxml_statenames[S_surfxml_link_1] = "link";
5622   surfxml_statenames[S_surfxml_link_2] = "link";
5623   surfxml_statenames[E_surfxml_link] = "link";
5624   surfxml_statenames[AL_surfxml_route] = NULL;
5625   surfxml_statenames[S_surfxml_route] = "route";
5626   surfxml_statenames[S_surfxml_route_1] = "route";
5627   surfxml_statenames[S_surfxml_route_2] = "route";
5628   surfxml_statenames[E_surfxml_route] = "route";
5629   surfxml_statenames[AL_surfxml_ASroute] = NULL;
5630   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
5631   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
5632   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
5633   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
5634   surfxml_statenames[AL_surfxml_link___ctn] = NULL;
5635   surfxml_statenames[E_surfxml_link___ctn] = "link_ctn";
5636   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
5637   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
5638   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
5639   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
5640   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
5641   surfxml_statenames[AL_surfxml_bypassASroute] = NULL;
5642   surfxml_statenames[S_surfxml_bypassASroute] = "bypassASroute";
5643   surfxml_statenames[S_surfxml_bypassASroute_1] = "bypassASroute";
5644   surfxml_statenames[S_surfxml_bypassASroute_2] = "bypassASroute";
5645   surfxml_statenames[E_surfxml_bypassASroute] = "bypassASroute";
5646   surfxml_statenames[AL_surfxml_process] = NULL;
5647   surfxml_statenames[S_surfxml_process] = "process";
5648   surfxml_statenames[S_surfxml_process_1] = "process";
5649   surfxml_statenames[S_surfxml_process_2] = "process";
5650   surfxml_statenames[E_surfxml_process] = "process";
5651   surfxml_statenames[AL_surfxml_argument] = NULL;
5652   surfxml_statenames[E_surfxml_argument] = "argument";
5653   surfxml_statenames[AL_surfxml_config] = NULL;
5654   surfxml_statenames[S_surfxml_config] = "config";
5655   surfxml_statenames[S_surfxml_config_1] = "config";
5656   surfxml_statenames[S_surfxml_config_2] = "config";
5657   surfxml_statenames[E_surfxml_config] = "config";
5658   surfxml_statenames[AL_surfxml_prop] = NULL;
5659   surfxml_statenames[E_surfxml_prop] = "prop";
5660   surfxml_statenames[AL_surfxml_model___prop] = NULL;
5661   surfxml_statenames[E_surfxml_model___prop] = "model_prop";
5662   }
5663
5664  /* COMMENTS and PIs: handled uniformly for efficiency. */
5665
5666         if ( !(yy_init) )
5667                 {
5668                 (yy_init) = 1;
5669
5670 #ifdef YY_USER_INIT
5671                 YY_USER_INIT;
5672 #endif
5673
5674                 if ( ! (yy_start) )
5675                         (yy_start) = 1; /* first start state */
5676
5677                 if ( ! surf_parse_in )
5678                         surf_parse_in = stdin;
5679
5680                 if ( ! surf_parse_out )
5681                         surf_parse_out = stdout;
5682
5683                 if ( ! YY_CURRENT_BUFFER ) {
5684                         surf_parse_ensure_buffer_stack ();
5685                         YY_CURRENT_BUFFER_LVALUE =
5686                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
5687                 }
5688
5689                 surf_parse__load_buffer_state( );
5690                 }
5691
5692         while ( 1 )             /* loops until end-of-file is reached */
5693                 {
5694                 yy_cp = (yy_c_buf_p);
5695
5696                 /* Support of surf_parse_text. */
5697                 *yy_cp = (yy_hold_char);
5698
5699                 /* yy_bp points to the position in yy_ch_buf of the start of
5700                  * the current run.
5701                  */
5702                 yy_bp = yy_cp;
5703
5704                 yy_current_state = (yy_start);
5705 yy_match:
5706                 do
5707                         {
5708                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
5709                         if ( yy_accept[yy_current_state] )
5710                                 {
5711                                 (yy_last_accepting_state) = yy_current_state;
5712                                 (yy_last_accepting_cpos) = yy_cp;
5713                                 }
5714                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5715                                 {
5716                                 yy_current_state = (int) yy_def[yy_current_state];
5717                                 if ( yy_current_state >= 3503 )
5718                                         yy_c = yy_meta[(unsigned int) yy_c];
5719                                 }
5720                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
5721                         ++yy_cp;
5722                         }
5723                 while ( yy_base[yy_current_state] != 12639 );
5724
5725 yy_find_action:
5726                 yy_act = yy_accept[yy_current_state];
5727                 if ( yy_act == 0 )
5728                         { /* have to back up */
5729                         yy_cp = (yy_last_accepting_cpos);
5730                         yy_current_state = (yy_last_accepting_state);
5731                         yy_act = yy_accept[yy_current_state];
5732                         }
5733
5734                 YY_DO_BEFORE_ACTION;
5735
5736                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
5737                         {
5738                         yy_size_t yyl;
5739                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
5740                                 if ( surf_parse_text[yyl] == '\n' )
5741                                            
5742     surf_parse_lineno++;
5743 ;
5744                         }
5745
5746 do_action:      /* This label is used only to access EOF actions. */
5747
5748                 switch ( yy_act )
5749         { /* beginning of action switch */
5750                         case 0: /* must back up */
5751                         /* undo the effects of YY_DO_BEFORE_ACTION */
5752                         *yy_cp = (yy_hold_char);
5753                         yy_cp = (yy_last_accepting_cpos);
5754                         yy_current_state = (yy_last_accepting_state);
5755                         goto yy_find_action;
5756
5757 case 1:
5758 YY_RULE_SETUP
5759 ENTER(INCOMMENT);
5760         YY_BREAK
5761 case 2:
5762 YY_RULE_SETUP
5763 ENTER(INPI);
5764         YY_BREAK
5765
5766 case 3:
5767 YY_RULE_SETUP
5768 LEAVE;
5769         YY_BREAK
5770 case 4:
5771 case 5:
5772 case 6:
5773 /* rule 6 can match eol */
5774 YY_RULE_SETUP
5775 SKIP;
5776         YY_BREAK
5777 case YY_STATE_EOF(INCOMMENT):
5778 FAIL("EOF in comment.");
5779         YY_BREAK
5780
5781 case 7:
5782 YY_RULE_SETUP
5783 LEAVE;
5784         YY_BREAK
5785 case 8:
5786 case 9:
5787 /* rule 9 can match eol */
5788 YY_RULE_SETUP
5789 SKIP;
5790         YY_BREAK
5791 case YY_STATE_EOF(INPI):
5792 FAIL("EOF in PI (processing instruction).");
5793         YY_BREAK
5794
5795 /* SPACES: skipped uniformly */
5796 case 10:
5797 /* rule 10 can match eol */
5798 YY_RULE_SETUP
5799 SKIP;
5800         YY_BREAK
5801 /* PROLOG: determine root element and process it. */
5802
5803 case 11:
5804 /* rule 11 can match eol */
5805 YY_RULE_SETUP
5806 SET(DOCTYPE); 
5807         YY_BREAK
5808 case 12:
5809 /* rule 12 can match eol */
5810 YY_RULE_SETUP
5811 FAIL("Bad declaration %s.",surf_parse_text);
5812         YY_BREAK
5813
5814 case 13:
5815 /* rule 13 can match eol */
5816 YY_RULE_SETUP
5817 SET(ROOT_surfxml_platform);
5818         YY_BREAK
5819 case 14:
5820 /* rule 14 can match eol */
5821 YY_RULE_SETUP
5822 FAIL("Bad declaration %s.",surf_parse_text);
5823         YY_BREAK
5824 case 15:
5825 YY_RULE_SETUP
5826 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
5827         YY_BREAK
5828 case YY_STATE_EOF(PROLOG):
5829 case YY_STATE_EOF(DOCTYPE):
5830 FAIL("EOF in prolog.");
5831         YY_BREAK
5832
5833 /* RULES DERIVED FROM DTD. */
5834 /* <!-- Small DTD for SURF based tools. -->  */
5835 case 16:
5836 /* rule 16 can match eol */
5837 YY_RULE_SETUP
5838 FAIL("Starting tag <platform> is not allowed here.");
5839         YY_BREAK
5840 case 17:
5841 /* rule 17 can match eol */
5842 YY_RULE_SETUP
5843 {
5844   AX_surfxml_platform_version = 1;
5845   surfxml_platform_version_isset = 0;
5846   ENTER(AL_surfxml_platform); pushbuffer(0);
5847   }
5848         YY_BREAK
5849
5850 case 18:
5851 /* rule 18 can match eol */
5852 YY_RULE_SETUP
5853 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);
5854         YY_BREAK
5855 case 19:
5856 /* rule 19 can match eol */
5857 YY_RULE_SETUP
5858 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);
5859         YY_BREAK
5860 case 20:
5861 YY_RULE_SETUP
5862 {
5863   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
5864  }
5865         YY_BREAK
5866 case 21:
5867 YY_RULE_SETUP
5868 {
5869   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
5870   switch (YY_START) {
5871    case ROOT_surfxml_platform: SET(EPILOG); break;
5872   }
5873  }
5874         YY_BREAK
5875 case 22:
5876 YY_RULE_SETUP
5877 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
5878         YY_BREAK
5879 case 23:
5880 YY_RULE_SETUP
5881 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
5882         YY_BREAK
5883 case YY_STATE_EOF(AL_surfxml_platform):
5884 FAIL("EOF in attribute list of `platform' element.");
5885         YY_BREAK
5886
5887 case 24:
5888 /* rule 24 can match eol */
5889 YY_RULE_SETUP
5890 {
5891   LEAVE;
5892   ETag_surfxml_platform();
5893   popbuffer(); /* attribute */
5894   switch (YY_START) {
5895    case ROOT_surfxml_platform: SET(EPILOG); break;
5896   }
5897  }
5898         YY_BREAK
5899 case 25:
5900 /* rule 25 can match eol */
5901 YY_RULE_SETUP
5902 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
5903         YY_BREAK
5904 case 26:
5905 YY_RULE_SETUP
5906 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
5907         YY_BREAK
5908 case YY_STATE_EOF(S_surfxml_platform_3):
5909 case YY_STATE_EOF(E_surfxml_platform):
5910 case YY_STATE_EOF(S_surfxml_platform_8):
5911 case YY_STATE_EOF(S_surfxml_platform):
5912 case YY_STATE_EOF(S_surfxml_platform_1):
5913 case YY_STATE_EOF(S_surfxml_platform_6):
5914 case YY_STATE_EOF(S_surfxml_platform_4):
5915 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</platform>' expected.");
5916         YY_BREAK
5917
5918 case 27:
5919 /* rule 27 can match eol */
5920 YY_RULE_SETUP
5921 FAIL("Starting tag <include> is not allowed here.");
5922         YY_BREAK
5923 case 28:
5924 /* rule 28 can match eol */
5925 YY_RULE_SETUP
5926 {
5927   AX_surfxml_include_file = 0;
5928   surfxml_include_file_isset = 0;
5929   ENTER(AL_surfxml_include); pushbuffer(0);
5930   }
5931         YY_BREAK
5932
5933 case 29:
5934 /* rule 29 can match eol */
5935 YY_RULE_SETUP
5936 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);
5937         YY_BREAK
5938 case 30:
5939 /* rule 30 can match eol */
5940 YY_RULE_SETUP
5941 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);
5942         YY_BREAK
5943 case 31:
5944 YY_RULE_SETUP
5945 {
5946   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5947   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
5948  }
5949         YY_BREAK
5950 case 32:
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; ETag_surfxml_include(); popbuffer(); /* attribute */
5955   switch (YY_START) {
5956    case S_surfxml_include_1: case S_surfxml_include: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
5957    case S_surfxml_AS_5: case S_surfxml_AS_3: case S_surfxml_AS_6: case S_surfxml_AS_1: SET(S_surfxml_AS_6); break;
5958    case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
5959    case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
5960   }
5961  }
5962         YY_BREAK
5963 case 33:
5964 YY_RULE_SETUP
5965 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
5966         YY_BREAK
5967 case 34:
5968 YY_RULE_SETUP
5969 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
5970         YY_BREAK
5971 case YY_STATE_EOF(AL_surfxml_include):
5972 FAIL("EOF in attribute list of `include' element.");
5973         YY_BREAK
5974
5975 case 35:
5976 /* rule 35 can match eol */
5977 YY_RULE_SETUP
5978 {
5979   LEAVE;
5980   ETag_surfxml_include();
5981   popbuffer(); /* attribute */
5982   switch (YY_START) {
5983    case S_surfxml_include_1: case S_surfxml_include: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
5984    case S_surfxml_AS_5: case S_surfxml_AS_3: case S_surfxml_AS_6: case S_surfxml_AS_1: SET(S_surfxml_AS_6); break;
5985    case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
5986    case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
5987   }
5988  }
5989         YY_BREAK
5990 case 36:
5991 /* rule 36 can match eol */
5992 YY_RULE_SETUP
5993 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
5994         YY_BREAK
5995 case 37:
5996 YY_RULE_SETUP
5997 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
5998         YY_BREAK
5999 case YY_STATE_EOF(S_surfxml_include):
6000 case YY_STATE_EOF(S_surfxml_include_2):
6001 case YY_STATE_EOF(E_surfxml_include):
6002 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</include>' expected.");
6003         YY_BREAK
6004
6005 case 38:
6006 /* rule 38 can match eol */
6007 YY_RULE_SETUP
6008 FAIL("Starting tag <trace> is not allowed here.");
6009         YY_BREAK
6010 case 39:
6011 /* rule 39 can match eol */
6012 YY_RULE_SETUP
6013 {
6014   AX_surfxml_trace_id = 0;
6015   surfxml_trace_id_isset = 0;
6016   AX_surfxml_trace_file = 0;
6017   surfxml_trace_file_isset = 0;
6018   AX_surfxml_trace_periodicity = 0;
6019   surfxml_trace_periodicity_isset = 0;
6020   ENTER(AL_surfxml_trace); pushbuffer(0);
6021   }
6022         YY_BREAK
6023
6024 case 40:
6025 /* rule 40 can match eol */
6026 YY_RULE_SETUP
6027 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);
6028         YY_BREAK
6029 case 41:
6030 /* rule 41 can match eol */
6031 YY_RULE_SETUP
6032 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);
6033         YY_BREAK
6034 case 42:
6035 /* rule 42 can match eol */
6036 YY_RULE_SETUP
6037 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);
6038         YY_BREAK
6039 case 43:
6040 /* rule 43 can match eol */
6041 YY_RULE_SETUP
6042 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);
6043         YY_BREAK
6044 case 44:
6045 /* rule 44 can match eol */
6046 YY_RULE_SETUP
6047 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);
6048         YY_BREAK
6049 case 45:
6050 /* rule 45 can match eol */
6051 YY_RULE_SETUP
6052 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);
6053         YY_BREAK
6054 case 46:
6055 YY_RULE_SETUP
6056 {
6057   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
6058   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
6059   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
6060  }
6061         YY_BREAK
6062 case 47:
6063 YY_RULE_SETUP
6064 {
6065   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
6066   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
6067   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
6068   switch (YY_START) {
6069    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6070    case S_surfxml_AS_6: case S_surfxml_AS_8: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break;
6071    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6072    case S_surfxml_AS_16: case S_surfxml_AS: case S_surfxml_AS_12: case S_surfxml_AS_15: SET(S_surfxml_AS_16); break;
6073    case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
6074    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
6075    case S_surfxml_AS_7: case S_surfxml_AS_11: case S_surfxml_AS_1: case S_surfxml_AS_4: case S_surfxml_AS_10: case S_surfxml_AS_3: SET(S_surfxml_AS_11); break;
6076   }
6077  }
6078         YY_BREAK
6079 case 48:
6080 YY_RULE_SETUP
6081 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
6082         YY_BREAK
6083 case 49:
6084 YY_RULE_SETUP
6085 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
6086         YY_BREAK
6087 case YY_STATE_EOF(AL_surfxml_trace):
6088 FAIL("EOF in attribute list of `trace' element.");
6089         YY_BREAK
6090
6091 case 50:
6092 /* rule 50 can match eol */
6093 YY_RULE_SETUP
6094 {
6095   LEAVE;
6096   BUFFERDONE;
6097   ETag_surfxml_trace();
6098   surfxml_pcdata_ix = popbuffer();
6099   popbuffer(); /* attribute */
6100   switch (YY_START) {
6101    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6102    case S_surfxml_AS_6: case S_surfxml_AS_8: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break;
6103    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6104    case S_surfxml_AS_16: case S_surfxml_AS: case S_surfxml_AS_12: case S_surfxml_AS_15: SET(S_surfxml_AS_16); break;
6105    case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
6106    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
6107    case S_surfxml_AS_7: case S_surfxml_AS_11: case S_surfxml_AS_1: case S_surfxml_AS_4: case S_surfxml_AS_10: case S_surfxml_AS_3: SET(S_surfxml_AS_11); break;
6108   }
6109  }
6110         YY_BREAK
6111 case 51:
6112 /* rule 51 can match eol */
6113 YY_RULE_SETUP
6114 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
6115         YY_BREAK
6116 case YY_STATE_EOF(IN_trace):
6117 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace>' expected.");
6118         YY_BREAK
6119
6120 case 52:
6121 /* rule 52 can match eol */
6122 YY_RULE_SETUP
6123 FAIL("Starting tag <random> is not allowed here.");
6124         YY_BREAK
6125 case 53:
6126 /* rule 53 can match eol */
6127 YY_RULE_SETUP
6128 {
6129   AX_surfxml_random_id = 0;
6130   surfxml_random_id_isset = 0;
6131   AX_surfxml_random_min = 0;
6132   surfxml_random_min_isset = 0;
6133   AX_surfxml_random_max = 0;
6134   surfxml_random_max_isset = 0;
6135   AX_surfxml_random_mean = 0;
6136   surfxml_random_mean_isset = 0;
6137   AX_surfxml_random_std___deviation = 0;
6138   surfxml_random_std___deviation_isset = 0;
6139   AX_surfxml_random_seed = 5;
6140   surfxml_random_seed_isset = 0;
6141   AX_surfxml_random_radical = 0;
6142   surfxml_random_radical_isset = 0;
6143   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
6144   surfxml_random_generator_isset = 0;
6145   ENTER(AL_surfxml_random); pushbuffer(0);
6146   }
6147         YY_BREAK
6148
6149 case 54:
6150 /* rule 54 can match eol */
6151 YY_RULE_SETUP
6152 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);
6153         YY_BREAK
6154 case 55:
6155 /* rule 55 can match eol */
6156 YY_RULE_SETUP
6157 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);
6158         YY_BREAK
6159 case 56:
6160 /* rule 56 can match eol */
6161 YY_RULE_SETUP
6162 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);
6163         YY_BREAK
6164 case 57:
6165 /* rule 57 can match eol */
6166 YY_RULE_SETUP
6167 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);
6168         YY_BREAK
6169 case 58:
6170 /* rule 58 can match eol */
6171 YY_RULE_SETUP
6172 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);
6173         YY_BREAK
6174 case 59:
6175 /* rule 59 can match eol */
6176 YY_RULE_SETUP
6177 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);
6178         YY_BREAK
6179 case 60:
6180 /* rule 60 can match eol */
6181 YY_RULE_SETUP
6182 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);
6183         YY_BREAK
6184 case 61:
6185 /* rule 61 can match eol */
6186 YY_RULE_SETUP
6187 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);
6188         YY_BREAK
6189 case 62:
6190 /* rule 62 can match eol */
6191 YY_RULE_SETUP
6192 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);
6193         YY_BREAK
6194 case 63:
6195 /* rule 63 can match eol */
6196 YY_RULE_SETUP
6197 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);
6198         YY_BREAK
6199 case 64:
6200 /* rule 64 can match eol */
6201 YY_RULE_SETUP
6202 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);
6203         YY_BREAK
6204 case 65:
6205 /* rule 65 can match eol */
6206 YY_RULE_SETUP
6207 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);
6208         YY_BREAK
6209 case 66:
6210 /* rule 66 can match eol */
6211 YY_RULE_SETUP
6212 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);
6213         YY_BREAK
6214 case 67:
6215 /* rule 67 can match eol */
6216 YY_RULE_SETUP
6217 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);
6218         YY_BREAK
6219 case 68:
6220 /* rule 68 can match eol */
6221 case 69:
6222 /* rule 69 can match eol */
6223 YY_RULE_SETUP
6224 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
6225         YY_BREAK
6226 case 70:
6227 /* rule 70 can match eol */
6228 case 71:
6229 /* rule 71 can match eol */
6230 YY_RULE_SETUP
6231 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
6232         YY_BREAK
6233 case 72:
6234 /* rule 72 can match eol */
6235 case 73:
6236 /* rule 73 can match eol */
6237 YY_RULE_SETUP
6238 A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
6239         YY_BREAK
6240 case 74:
6241 /* rule 74 can match eol */
6242 case 75:
6243 /* rule 75 can match eol */
6244 YY_RULE_SETUP
6245 A_surfxml_random_generator = A_surfxml_random_generator_NONE;
6246         YY_BREAK
6247 case 76:
6248 YY_RULE_SETUP
6249 {
6250   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
6251   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
6252   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
6253   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
6254   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
6255   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(E_surfxml_random);
6256  }
6257         YY_BREAK
6258 case 77:
6259 YY_RULE_SETUP
6260 {
6261   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
6262   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
6263   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
6264   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
6265   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
6266   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
6267   switch (YY_START) {
6268    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
6269   }
6270  }
6271         YY_BREAK
6272 case 78:
6273 YY_RULE_SETUP
6274 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
6275         YY_BREAK
6276 case 79:
6277 YY_RULE_SETUP
6278 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
6279         YY_BREAK
6280 case YY_STATE_EOF(AL_surfxml_random):
6281 FAIL("EOF in attribute list of `random' element.");
6282         YY_BREAK
6283
6284 case 80:
6285 /* rule 80 can match eol */
6286 YY_RULE_SETUP
6287 {
6288   LEAVE;
6289   ETag_surfxml_random();
6290   popbuffer(); /* attribute */
6291   switch (YY_START) {
6292    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
6293   }
6294  }
6295         YY_BREAK
6296 case 81:
6297 /* rule 81 can match eol */
6298 YY_RULE_SETUP
6299 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
6300         YY_BREAK
6301 case 82:
6302 YY_RULE_SETUP
6303 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
6304         YY_BREAK
6305 case YY_STATE_EOF(E_surfxml_random):
6306 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</random>' expected.");
6307         YY_BREAK
6308
6309 case 83:
6310 /* rule 83 can match eol */
6311 YY_RULE_SETUP
6312 FAIL("Starting tag <trace_connect> is not allowed here.");
6313         YY_BREAK
6314 case 84:
6315 /* rule 84 can match eol */
6316 YY_RULE_SETUP
6317 {
6318   AX_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
6319   surfxml_trace___connect_kind_isset = 0;
6320   AX_surfxml_trace___connect_trace = 0;
6321   surfxml_trace___connect_trace_isset = 0;
6322   AX_surfxml_trace___connect_element = 0;
6323   surfxml_trace___connect_element_isset = 0;
6324   ENTER(AL_surfxml_trace___connect); pushbuffer(0);
6325   }
6326         YY_BREAK
6327
6328 case 85:
6329 /* rule 85 can match eol */
6330 case 86:
6331 /* rule 86 can match eol */
6332 YY_RULE_SETUP
6333 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
6334         YY_BREAK
6335 case 87:
6336 /* rule 87 can match eol */
6337 case 88:
6338 /* rule 88 can match eol */
6339 YY_RULE_SETUP
6340 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_POWER;
6341         YY_BREAK
6342 case 89:
6343 /* rule 89 can match eol */
6344 case 90:
6345 /* rule 90 can match eol */
6346 YY_RULE_SETUP
6347 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LINK___AVAIL;
6348         YY_BREAK
6349 case 91:
6350 /* rule 91 can match eol */
6351 case 92:
6352 /* rule 92 can match eol */
6353 YY_RULE_SETUP
6354 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_BANDWIDTH;
6355         YY_BREAK
6356 case 93:
6357 /* rule 93 can match eol */
6358 case 94:
6359 /* rule 94 can match eol */
6360 YY_RULE_SETUP
6361 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LATENCY;
6362         YY_BREAK
6363 case 95:
6364 /* rule 95 can match eol */
6365 YY_RULE_SETUP
6366 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);
6367         YY_BREAK
6368 case 96:
6369 /* rule 96 can match eol */
6370 YY_RULE_SETUP
6371 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);
6372         YY_BREAK
6373 case 97:
6374 /* rule 97 can match eol */
6375 YY_RULE_SETUP
6376 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);
6377         YY_BREAK
6378 case 98:
6379 /* rule 98 can match eol */
6380 YY_RULE_SETUP
6381 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);
6382         YY_BREAK
6383 case 99:
6384 YY_RULE_SETUP
6385 {
6386   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
6387   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
6388   LEAVE; STag_surfxml_trace___connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace___connect);
6389  }
6390         YY_BREAK
6391 case 100:
6392 YY_RULE_SETUP
6393 {
6394   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
6395   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
6396   LEAVE; STag_surfxml_trace___connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace___connect(); popbuffer(); /* attribute */
6397   switch (YY_START) {
6398    case S_surfxml_platform: case S_surfxml_platform_5: case S_surfxml_platform_3: case S_surfxml_platform_1: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
6399    case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_11: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_10: SET(S_surfxml_AS_11); break;
6400    case S_surfxml_AS_13: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
6401    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6402    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6403    case S_surfxml_AS_8: case S_surfxml_AS_6: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break;
6404    case S_surfxml_AS: case S_surfxml_AS_16: case S_surfxml_AS_15: case S_surfxml_AS_12: SET(S_surfxml_AS_16); break;
6405   }
6406  }
6407         YY_BREAK
6408 case 101:
6409 YY_RULE_SETUP
6410 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", surf_parse_text[0]);
6411         YY_BREAK
6412 case 102:
6413 YY_RULE_SETUP
6414 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",surf_parse_text);
6415         YY_BREAK
6416 case YY_STATE_EOF(AL_surfxml_trace___connect):
6417 FAIL("EOF in attribute list of `trace_connect' element.");
6418         YY_BREAK
6419
6420 case 103:
6421 /* rule 103 can match eol */
6422 YY_RULE_SETUP
6423 {
6424   LEAVE;
6425   ETag_surfxml_trace___connect();
6426   popbuffer(); /* attribute */
6427   switch (YY_START) {
6428    case S_surfxml_platform: case S_surfxml_platform_5: case S_surfxml_platform_3: case S_surfxml_platform_1: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
6429    case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_11: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_10: SET(S_surfxml_AS_11); break;
6430    case S_surfxml_AS_13: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
6431    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6432    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6433    case S_surfxml_AS_8: case S_surfxml_AS_6: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break;
6434    case S_surfxml_AS: case S_surfxml_AS_16: case S_surfxml_AS_15: case S_surfxml_AS_12: SET(S_surfxml_AS_16); break;
6435   }
6436  }
6437         YY_BREAK
6438 case 104:
6439 /* rule 104 can match eol */
6440 YY_RULE_SETUP
6441 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",surf_parse_text);
6442         YY_BREAK
6443 case 105:
6444 YY_RULE_SETUP
6445 FAIL("Unexpected character `%c': `</trace_connect>' expected.",surf_parse_text[0]);
6446         YY_BREAK
6447 case YY_STATE_EOF(E_surfxml_trace___connect):
6448 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace_connect>' expected.");
6449         YY_BREAK
6450
6451 case 106:
6452 /* rule 106 can match eol */
6453 YY_RULE_SETUP
6454 FAIL("Starting tag <AS> is not allowed here.");
6455         YY_BREAK
6456 case 107:
6457 /* rule 107 can match eol */
6458 YY_RULE_SETUP
6459 {
6460   AX_surfxml_AS_id = 0;
6461   surfxml_AS_id_isset = 0;
6462   AX_surfxml_AS_routing = AU_surfxml_AS_routing;
6463   surfxml_AS_routing_isset = 0;
6464   ENTER(AL_surfxml_AS); pushbuffer(0);
6465   }
6466         YY_BREAK
6467
6468 case 108:
6469 /* rule 108 can match eol */
6470 YY_RULE_SETUP
6471 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);
6472         YY_BREAK
6473 case 109:
6474 /* rule 109 can match eol */
6475 YY_RULE_SETUP
6476 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);
6477         YY_BREAK
6478 case 110:
6479 /* rule 110 can match eol */
6480 case 111:
6481 /* rule 111 can match eol */
6482 YY_RULE_SETUP
6483 A_surfxml_AS_routing = A_surfxml_AS_routing_Full;
6484         YY_BREAK
6485 case 112:
6486 /* rule 112 can match eol */
6487 case 113:
6488 /* rule 113 can match eol */
6489 YY_RULE_SETUP
6490 A_surfxml_AS_routing = A_surfxml_AS_routing_Floyd;
6491         YY_BREAK
6492 case 114:
6493 /* rule 114 can match eol */
6494 case 115:
6495 /* rule 115 can match eol */
6496 YY_RULE_SETUP
6497 A_surfxml_AS_routing = A_surfxml_AS_routing_Dijkstra;
6498         YY_BREAK
6499 case 116:
6500 /* rule 116 can match eol */
6501 case 117:
6502 /* rule 117 can match eol */
6503 YY_RULE_SETUP
6504 A_surfxml_AS_routing = A_surfxml_AS_routing_DijkstraCache;
6505         YY_BREAK
6506 case 118:
6507 /* rule 118 can match eol */
6508 case 119:
6509 /* rule 119 can match eol */
6510 YY_RULE_SETUP
6511 A_surfxml_AS_routing = A_surfxml_AS_routing_None;
6512         YY_BREAK
6513 case 120:
6514 /* rule 120 can match eol */
6515 case 121:
6516 /* rule 121 can match eol */
6517 YY_RULE_SETUP
6518 A_surfxml_AS_routing = A_surfxml_AS_routing_Vivaldi;
6519         YY_BREAK
6520 case 122:
6521 /* rule 122 can match eol */
6522 case 123:
6523 /* rule 123 can match eol */
6524 YY_RULE_SETUP
6525 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster;
6526         YY_BREAK
6527 case 124:
6528 /* rule 124 can match eol */
6529 case 125:
6530 /* rule 125 can match eol */
6531 YY_RULE_SETUP
6532 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster___torus;
6533         YY_BREAK
6534 case 126:
6535 /* rule 126 can match eol */
6536 case 127:
6537 /* rule 127 can match eol */
6538 YY_RULE_SETUP
6539 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster___fat___tree;
6540         YY_BREAK
6541 case 128:
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 129:
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_platform_5: case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_6: case S_surfxml_platform_1: SET(S_surfxml_platform_6); break;
6557    case S_surfxml_AS: case S_surfxml_AS_5: case S_surfxml_AS_6: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
6558    case S_surfxml_include_2: case S_surfxml_include: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6559   }
6560  }
6561         YY_BREAK
6562 case 130:
6563 YY_RULE_SETUP
6564 FAIL("Unexpected character `%c' in attribute list of AS element.", surf_parse_text[0]);
6565         YY_BREAK
6566 case 131:
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 132:
6575 /* rule 132 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_platform_5: case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_6: case S_surfxml_platform_1: SET(S_surfxml_platform_6); break;
6583    case S_surfxml_AS: case S_surfxml_AS_5: case S_surfxml_AS_6: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
6584    case S_surfxml_include_2: case S_surfxml_include: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6585   }
6586  }
6587         YY_BREAK
6588 case 133:
6589 /* rule 133 can match eol */
6590 YY_RULE_SETUP
6591 FAIL("Unexpected end-tag `%s': `</AS>' expected.",surf_parse_text);
6592         YY_BREAK
6593 case 134:
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):
6598 case YY_STATE_EOF(S_surfxml_AS_4):
6599 case YY_STATE_EOF(S_surfxml_AS_3):
6600 case YY_STATE_EOF(S_surfxml_AS_9):
6601 case YY_STATE_EOF(S_surfxml_AS_12):
6602 case YY_STATE_EOF(S_surfxml_AS_1):
6603 case YY_STATE_EOF(E_surfxml_AS):
6604 case YY_STATE_EOF(S_surfxml_AS_6):
6605 case YY_STATE_EOF(S_surfxml_AS_11):
6606 case YY_STATE_EOF(S_surfxml_AS_7):
6607 case YY_STATE_EOF(S_surfxml_AS_14):
6608 case YY_STATE_EOF(S_surfxml_AS_16):
6609 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</AS>' expected.");
6610         YY_BREAK
6611
6612 case 135:
6613 /* rule 135 can match eol */
6614 YY_RULE_SETUP
6615 FAIL("Starting tag <storage_type> is not allowed here.");
6616         YY_BREAK
6617 case 136:
6618 /* rule 136 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 137:
6636 /* rule 137 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 138:
6641 /* rule 138 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 139:
6646 /* rule 139 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 140:
6651 /* rule 140 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 141:
6656 /* rule 141 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 142:
6661 /* rule 142 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 143:
6666 /* rule 143 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 144:
6671 /* rule 144 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 145:
6676 /* rule 145 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 146:
6681 /* rule 146 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 147:
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 148:
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: case S_surfxml_AS_13: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
6703    case S_surfxml_AS_5: case S_surfxml_AS_1: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
6704   }
6705  }
6706         YY_BREAK
6707 case 149:
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 150:
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 151:
6720 /* rule 151 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: case S_surfxml_AS_13: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
6728    case S_surfxml_AS_5: case S_surfxml_AS_1: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
6729   }
6730  }
6731         YY_BREAK
6732 case 152:
6733 /* rule 152 can match eol */
6734 YY_RULE_SETUP
6735 FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",surf_parse_text);
6736         YY_BREAK
6737 case 153:
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):
6742 case YY_STATE_EOF(E_surfxml_storage___type):
6743 case YY_STATE_EOF(S_surfxml_storage___type_2):
6744 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage_type>' expected.");
6745         YY_BREAK
6746
6747 case 154:
6748 /* rule 154 can match eol */
6749 YY_RULE_SETUP
6750 FAIL("Starting tag <mount> is not allowed here.");
6751         YY_BREAK
6752 case 155:
6753 /* rule 155 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 156:
6765 /* rule 156 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 157:
6770 /* rule 157 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 158:
6775 /* rule 158 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 159:
6780 /* rule 159 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 160:
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 161:
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: case S_surfxml_host_1: SET(S_surfxml_host_2); break;
6800   }
6801  }
6802         YY_BREAK
6803 case 162:
6804 YY_RULE_SETUP
6805 FAIL("Unexpected character `%c' in attribute list of mount element.", surf_parse_text[0]);
6806         YY_BREAK
6807 case 163:
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 164:
6816 /* rule 164 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: case S_surfxml_host_1: SET(S_surfxml_host_2); break;
6824   }
6825  }
6826         YY_BREAK
6827 case 165:
6828 /* rule 165 can match eol */
6829 YY_RULE_SETUP
6830 FAIL("Unexpected end-tag `%s': `</mount>' expected.",surf_parse_text);
6831         YY_BREAK
6832 case 166:
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 167:
6841 /* rule 167 can match eol */
6842 YY_RULE_SETUP
6843 FAIL("Starting tag <mstorage> is not allowed here.");
6844         YY_BREAK
6845 case 168:
6846 /* rule 168 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 169:
6858 /* rule 169 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 170:
6863 /* rule 170 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 171:
6868 /* rule 171 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 172:
6873 /* rule 172 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 173:
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 174:
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 175:
6897 YY_RULE_SETUP
6898 FAIL("Unexpected character `%c' in attribute list of mstorage element.", surf_parse_text[0]);
6899         YY_BREAK
6900 case 176:
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 177:
6909 /* rule 177 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 178:
6921 /* rule 178 can match eol */
6922 YY_RULE_SETUP
6923 FAIL("Unexpected end-tag `%s': `</mstorage>' expected.",surf_parse_text);
6924         YY_BREAK
6925 case 179:
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 180:
6934 /* rule 180 can match eol */
6935 YY_RULE_SETUP
6936 FAIL("Starting tag <host> is not allowed here.");
6937         YY_BREAK
6938 case 181:
6939 /* rule 181 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 182:
6965 /* rule 182 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 183:
6970 /* rule 183 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 184:
6975 /* rule 184 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 185:
6980 /* rule 185 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 186:
6985 /* rule 186 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 187:
6990 /* rule 187 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 188:
6995 /* rule 188 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 189:
7000 /* rule 189 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 190:
7005 /* rule 190 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 191:
7010 /* rule 191 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 192:
7015 /* rule 192 can match eol */
7016 case 193:
7017 /* rule 193 can match eol */
7018 YY_RULE_SETUP
7019 A_surfxml_host_state = A_surfxml_host_state_ON;
7020         YY_BREAK
7021 case 194:
7022 /* rule 194 can match eol */
7023 case 195:
7024 /* rule 195 can match eol */
7025 YY_RULE_SETUP
7026 A_surfxml_host_state = A_surfxml_host_state_OFF;
7027         YY_BREAK
7028 case 196:
7029 /* rule 196 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 197:
7034 /* rule 197 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 198:
7039 /* rule 198 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 199:
7044 /* rule 199 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 200:
7049 /* rule 200 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 201:
7054 /* rule 201 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 202:
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 203:
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_14: case S_surfxml_AS_13: case S_surfxml_AS_3: case S_surfxml_AS_1: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
7074   }
7075  }
7076         YY_BREAK
7077 case 204:
7078 YY_RULE_SETUP
7079 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
7080         YY_BREAK
7081 case 205:
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 206:
7090 /* rule 206 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_14: case S_surfxml_AS_13: case S_surfxml_AS_3: case S_surfxml_AS_1: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
7098   }
7099  }
7100         YY_BREAK
7101 case 207:
7102 /* rule 207 can match eol */
7103 YY_RULE_SETUP
7104 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
7105         YY_BREAK
7106 case 208:
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_2):
7111 case YY_STATE_EOF(S_surfxml_host):
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 209:
7117 /* rule 209 can match eol */
7118 YY_RULE_SETUP
7119 FAIL("Starting tag <storage> is not allowed here.");
7120         YY_BREAK
7121 case 210:
7122 /* rule 210 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 211:
7140 /* rule 211 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 212:
7145 /* rule 212 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 213:
7150 /* rule 213 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 214:
7155 /* rule 214 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 215:
7160 /* rule 215 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 216:
7165 /* rule 216 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 217:
7170 /* rule 217 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 218:
7175 /* rule 218 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 219:
7180 /* rule 219 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 220:
7185 /* rule 220 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 221:
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 222:
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_6: case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
7207    case S_surfxml_AS: case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
7208   }
7209  }
7210         YY_BREAK
7211 case 223:
7212 YY_RULE_SETUP
7213 FAIL("Unexpected character `%c' in attribute list of storage element.", surf_parse_text[0]);
7214         YY_BREAK
7215 case 224:
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 225:
7224 /* rule 225 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_6: case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
7232    case S_surfxml_AS: case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
7233   }
7234  }
7235         YY_BREAK
7236 case 226:
7237 /* rule 226 can match eol */
7238 YY_RULE_SETUP
7239 FAIL("Unexpected end-tag `%s': `</storage>' expected.",surf_parse_text);
7240         YY_BREAK
7241 case 227:
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):
7246 case YY_STATE_EOF(E_surfxml_storage):
7247 case YY_STATE_EOF(S_surfxml_storage_2):
7248 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage>' expected.");
7249         YY_BREAK
7250
7251 case 228:
7252 /* rule 228 can match eol */
7253 YY_RULE_SETUP
7254 FAIL("Starting tag <gpu> is not allowed here.");
7255         YY_BREAK
7256 case 229:
7257 /* rule 229 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 230:
7267 /* rule 230 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 231:
7272 /* rule 231 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 232:
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 233:
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: case S_surfxml_AS_1: case S_surfxml_AS_13: case S_surfxml_AS_3: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
7290   }
7291  }
7292         YY_BREAK
7293 case 234:
7294 YY_RULE_SETUP
7295 FAIL("Unexpected character `%c' in attribute list of gpu element.", surf_parse_text[0]);
7296         YY_BREAK
7297 case 235:
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 236:
7306 /* rule 236 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: case S_surfxml_AS_1: case S_surfxml_AS_13: case S_surfxml_AS_3: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
7314   }
7315  }
7316         YY_BREAK
7317 case 237:
7318 /* rule 237 can match eol */
7319 YY_RULE_SETUP
7320 FAIL("Unexpected end-tag `%s': `</gpu>' expected.",surf_parse_text);
7321         YY_BREAK
7322 case 238:
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 239:
7331 /* rule 239 can match eol */
7332 YY_RULE_SETUP
7333 FAIL("Starting tag <host_link> is not allowed here.");
7334         YY_BREAK
7335 case 240:
7336 /* rule 240 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 241:
7350 /* rule 241 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 242:
7355 /* rule 242 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 243:
7360 /* rule 243 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 244:
7365 /* rule 244 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 245:
7370 /* rule 245 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 246:
7375 /* rule 246 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 247:
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 248:
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: case S_surfxml_AS_1: case S_surfxml_AS_13: case S_surfxml_AS_3: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
7397   }
7398  }
7399         YY_BREAK
7400 case 249:
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 250:
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 251:
7413 /* rule 251 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: case S_surfxml_AS_1: case S_surfxml_AS_13: case S_surfxml_AS_3: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
7421   }
7422  }
7423         YY_BREAK
7424 case 252:
7425 /* rule 252 can match eol */
7426 YY_RULE_SETUP
7427 FAIL("Unexpected end-tag `%s': `</host_link>' expected.",surf_parse_text);
7428         YY_BREAK
7429 case 253:
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 254:
7438 /* rule 254 can match eol */
7439 YY_RULE_SETUP
7440 FAIL("Starting tag <cluster> is not allowed here.");
7441         YY_BREAK
7442 case 255:
7443 /* rule 255 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 256:
7491 /* rule 256 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 257:
7496 /* rule 257 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 258:
7501 /* rule 258 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 259:
7506 /* rule 259 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 260:
7511 /* rule 260 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 261:
7516 /* rule 261 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 262:
7521 /* rule 262 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 263:
7526 /* rule 263 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 264:
7531 /* rule 264 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 265:
7536 /* rule 265 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 266:
7541 /* rule 266 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 267:
7546 /* rule 267 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 268:
7551 /* rule 268 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 269:
7556 /* rule 269 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 270:
7561 /* rule 270 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 271:
7566 /* rule 271 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 272:
7571 /* rule 272 can match eol */
7572 case 273:
7573 /* rule 273 can match eol */
7574 YY_RULE_SETUP
7575 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_SHARED;
7576         YY_BREAK
7577 case 274:
7578 /* rule 274 can match eol */
7579 case 275:
7580 /* rule 275 can match eol */
7581 YY_RULE_SETUP
7582 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
7583         YY_BREAK
7584 case 276:
7585 /* rule 276 can match eol */
7586 case 277:
7587 /* rule 277 can match eol */
7588 YY_RULE_SETUP
7589 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FATPIPE;
7590         YY_BREAK
7591 case 278:
7592 /* rule 278 can match eol */
7593 case 279:
7594 /* rule 279 can match eol */
7595 YY_RULE_SETUP
7596 A_surfxml_cluster_topology = A_surfxml_cluster_topology_FLAT;
7597         YY_BREAK
7598 case 280:
7599 /* rule 280 can match eol */
7600 case 281:
7601 /* rule 281 can match eol */
7602 YY_RULE_SETUP
7603 A_surfxml_cluster_topology = A_surfxml_cluster_topology_TORUS;
7604         YY_BREAK
7605 case 282:
7606 /* rule 282 can match eol */
7607 case 283:
7608 /* rule 283 can match eol */
7609 YY_RULE_SETUP
7610 A_surfxml_cluster_topology = A_surfxml_cluster_topology_FAT___TREE;
7611         YY_BREAK
7612 case 284:
7613 /* rule 284 can match eol */
7614 YY_RULE_SETUP
7615 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);
7616         YY_BREAK
7617 case 285:
7618 /* rule 285 can match eol */
7619 YY_RULE_SETUP
7620 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);
7621         YY_BREAK
7622 case 286:
7623 /* rule 286 can match eol */
7624 YY_RULE_SETUP
7625 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);
7626         YY_BREAK
7627 case 287:
7628 /* rule 287 can match eol */
7629 YY_RULE_SETUP
7630 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);
7631         YY_BREAK
7632 case 288:
7633 /* rule 288 can match eol */
7634 YY_RULE_SETUP
7635 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);
7636         YY_BREAK
7637 case 289:
7638 /* rule 289 can match eol */
7639 YY_RULE_SETUP
7640 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);
7641         YY_BREAK
7642 case 290:
7643 /* rule 290 can match eol */
7644 case 291:
7645 /* rule 291 can match eol */
7646 YY_RULE_SETUP
7647 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
7648         YY_BREAK
7649 case 292:
7650 /* rule 292 can match eol */
7651 case 293:
7652 /* rule 293 can match eol */
7653 YY_RULE_SETUP
7654 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_FATPIPE;
7655         YY_BREAK
7656 case 294:
7657 /* rule 294 can match eol */
7658 YY_RULE_SETUP
7659 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);
7660         YY_BREAK
7661 case 295:
7662 /* rule 295 can match eol */
7663 YY_RULE_SETUP
7664 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);
7665         YY_BREAK
7666 case 296:
7667 /* rule 296 can match eol */
7668 YY_RULE_SETUP
7669 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);
7670         YY_BREAK
7671 case 297:
7672 /* rule 297 can match eol */
7673 YY_RULE_SETUP
7674 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);
7675         YY_BREAK
7676 case 298:
7677 /* rule 298 can match eol */
7678 YY_RULE_SETUP
7679 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);
7680         YY_BREAK
7681 case 299:
7682 /* rule 299 can match eol */
7683 YY_RULE_SETUP
7684 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);
7685         YY_BREAK
7686 case 300:
7687 /* rule 300 can match eol */
7688 YY_RULE_SETUP
7689 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);
7690         YY_BREAK
7691 case 301:
7692 /* rule 301 can match eol */
7693 YY_RULE_SETUP
7694 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);
7695         YY_BREAK
7696 case 302:
7697 /* rule 302 can match eol */
7698 YY_RULE_SETUP
7699 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);
7700         YY_BREAK
7701 case 303:
7702 /* rule 303 can match eol */
7703 YY_RULE_SETUP
7704 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);
7705         YY_BREAK
7706 case 304:
7707 /* rule 304 can match eol */
7708 YY_RULE_SETUP
7709 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);
7710         YY_BREAK
7711 case 305:
7712 /* rule 305 can match eol */
7713 YY_RULE_SETUP
7714 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);
7715         YY_BREAK
7716 case 306:
7717 YY_RULE_SETUP
7718 {
7719   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7720   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7721   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7722   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7723   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
7724   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7725   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7726   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(S_surfxml_cluster);
7727  }
7728         YY_BREAK
7729 case 307:
7730 YY_RULE_SETUP
7731 {
7732   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7733   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7734   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7735   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7736   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
7737   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7738   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7739   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
7740   switch (YY_START) {
7741    case S_surfxml_AS_3: case S_surfxml_AS_6: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
7742    case S_surfxml_include_1: case S_surfxml_include: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
7743    case S_surfxml_platform_1: case S_surfxml_platform_6: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform: SET(S_surfxml_platform_6); break;
7744   }
7745  }
7746         YY_BREAK
7747 case 308:
7748 YY_RULE_SETUP
7749 FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
7750         YY_BREAK
7751 case 309:
7752 YY_RULE_SETUP
7753 FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
7754         YY_BREAK
7755 case YY_STATE_EOF(AL_surfxml_cluster):
7756 FAIL("EOF in attribute list of `cluster' element.");
7757         YY_BREAK
7758
7759 case 310:
7760 /* rule 310 can match eol */
7761 YY_RULE_SETUP
7762 {
7763   LEAVE;
7764   ETag_surfxml_cluster();
7765   popbuffer(); /* attribute */
7766   switch (YY_START) {
7767    case S_surfxml_AS_3: case S_surfxml_AS_6: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
7768    case S_surfxml_include_1: case S_surfxml_include: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
7769    case S_surfxml_platform_1: case S_surfxml_platform_6: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform: SET(S_surfxml_platform_6); break;
7770   }
7771  }
7772         YY_BREAK
7773 case 311:
7774 /* rule 311 can match eol */
7775 YY_RULE_SETUP
7776 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
7777         YY_BREAK
7778 case 312:
7779 YY_RULE_SETUP
7780 FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
7781         YY_BREAK
7782 case YY_STATE_EOF(E_surfxml_cluster):
7783 case YY_STATE_EOF(S_surfxml_cluster_2):
7784 case YY_STATE_EOF(S_surfxml_cluster):
7785 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cluster>' expected.");
7786         YY_BREAK
7787
7788 case 313:
7789 /* rule 313 can match eol */
7790 YY_RULE_SETUP
7791 FAIL("Starting tag <cabinet> is not allowed here.");
7792         YY_BREAK
7793 case 314:
7794 /* rule 314 can match eol */
7795 YY_RULE_SETUP
7796 {
7797   AX_surfxml_cabinet_id = 0;
7798   surfxml_cabinet_id_isset = 0;
7799   AX_surfxml_cabinet_prefix = 0;
7800   surfxml_cabinet_prefix_isset = 0;
7801   AX_surfxml_cabinet_suffix = 0;
7802   surfxml_cabinet_suffix_isset = 0;
7803   AX_surfxml_cabinet_radical = 0;
7804   surfxml_cabinet_radical_isset = 0;
7805   AX_surfxml_cabinet_power = 0;
7806   surfxml_cabinet_power_isset = 0;
7807   AX_surfxml_cabinet_bw = 0;
7808   surfxml_cabinet_bw_isset = 0;
7809   AX_surfxml_cabinet_lat = 0;
7810   surfxml_cabinet_lat_isset = 0;
7811   ENTER(AL_surfxml_cabinet); pushbuffer(0);
7812   }
7813         YY_BREAK
7814
7815 case 315:
7816 /* rule 315 can match eol */
7817 YY_RULE_SETUP
7818 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);
7819         YY_BREAK
7820 case 316:
7821 /* rule 316 can match eol */
7822 YY_RULE_SETUP
7823 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);
7824         YY_BREAK
7825 case 317:
7826 /* rule 317 can match eol */
7827 YY_RULE_SETUP
7828 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);
7829         YY_BREAK
7830 case 318:
7831 /* rule 318 can match eol */
7832 YY_RULE_SETUP
7833 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);
7834         YY_BREAK
7835 case 319:
7836 /* rule 319 can match eol */
7837 YY_RULE_SETUP
7838 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);
7839         YY_BREAK
7840 case 320:
7841 /* rule 320 can match eol */
7842 YY_RULE_SETUP
7843 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);
7844         YY_BREAK
7845 case 321:
7846 /* rule 321 can match eol */
7847 YY_RULE_SETUP
7848 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);
7849         YY_BREAK
7850 case 322:
7851 /* rule 322 can match eol */
7852 YY_RULE_SETUP
7853 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);
7854         YY_BREAK
7855 case 323:
7856 /* rule 323 can match eol */
7857 YY_RULE_SETUP
7858 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);
7859         YY_BREAK
7860 case 324:
7861 /* rule 324 can match eol */
7862 YY_RULE_SETUP
7863 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);
7864         YY_BREAK
7865 case 325:
7866 /* rule 325 can match eol */
7867 YY_RULE_SETUP
7868 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);
7869         YY_BREAK
7870 case 326:
7871 /* rule 326 can match eol */
7872 YY_RULE_SETUP
7873 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);
7874         YY_BREAK
7875 case 327:
7876 /* rule 327 can match eol */
7877 YY_RULE_SETUP
7878 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);
7879         YY_BREAK
7880 case 328:
7881 /* rule 328 can match eol */
7882 YY_RULE_SETUP
7883 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);
7884         YY_BREAK
7885 case 329:
7886 YY_RULE_SETUP
7887 {
7888   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7889   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7890   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7891   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7892   if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
7893   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7894   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7895   LEAVE; STag_surfxml_cabinet();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cabinet);
7896  }
7897         YY_BREAK
7898 case 330:
7899 YY_RULE_SETUP
7900 {
7901   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7902   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7903   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7904   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7905   if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
7906   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7907   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7908   LEAVE; STag_surfxml_cabinet(); surfxml_pcdata_ix = 0; ETag_surfxml_cabinet(); popbuffer(); /* attribute */
7909   switch (YY_START) {
7910    case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
7911    case S_surfxml_platform_6: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_5: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7912    case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_1: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7913    case S_surfxml_include_1: case S_surfxml_include_2: case S_surfxml_include: SET(S_surfxml_include_2); break;
7914   }
7915  }
7916         YY_BREAK
7917 case 331:
7918 YY_RULE_SETUP
7919 FAIL("Unexpected character `%c' in attribute list of cabinet element.", surf_parse_text[0]);
7920         YY_BREAK
7921 case 332:
7922 YY_RULE_SETUP
7923 FAIL("Bad attribute `%s' in `cabinet' element start tag.",surf_parse_text);
7924         YY_BREAK
7925 case YY_STATE_EOF(AL_surfxml_cabinet):
7926 FAIL("EOF in attribute list of `cabinet' element.");
7927         YY_BREAK
7928
7929 case 333:
7930 /* rule 333 can match eol */
7931 YY_RULE_SETUP
7932 {
7933   LEAVE;
7934   ETag_surfxml_cabinet();
7935   popbuffer(); /* attribute */
7936   switch (YY_START) {
7937    case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
7938    case S_surfxml_platform_6: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_5: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7939    case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_1: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7940    case S_surfxml_include_1: case S_surfxml_include_2: case S_surfxml_include: SET(S_surfxml_include_2); break;
7941   }
7942  }
7943         YY_BREAK
7944 case 334:
7945 /* rule 334 can match eol */
7946 YY_RULE_SETUP
7947 FAIL("Unexpected end-tag `%s': `</cabinet>' expected.",surf_parse_text);
7948         YY_BREAK
7949 case 335:
7950 YY_RULE_SETUP
7951 FAIL("Unexpected character `%c': `</cabinet>' expected.",surf_parse_text[0]);
7952         YY_BREAK
7953 case YY_STATE_EOF(E_surfxml_cabinet):
7954 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cabinet>' expected.");
7955         YY_BREAK
7956
7957 case 336:
7958 /* rule 336 can match eol */
7959 YY_RULE_SETUP
7960 FAIL("Starting tag <peer> is not allowed here.");
7961         YY_BREAK
7962 case 337:
7963 /* rule 337 can match eol */
7964 YY_RULE_SETUP
7965 {
7966   AX_surfxml_peer_id = 0;
7967   surfxml_peer_id_isset = 0;
7968   AX_surfxml_peer_power = 0;
7969   surfxml_peer_power_isset = 0;
7970   AX_surfxml_peer_bw___in = 0;
7971   surfxml_peer_bw___in_isset = 0;
7972   AX_surfxml_peer_bw___out = 0;
7973   surfxml_peer_bw___out_isset = 0;
7974   AX_surfxml_peer_lat = 0;
7975   surfxml_peer_lat_isset = 0;
7976   AX_surfxml_peer_coordinates = 0;
7977   surfxml_peer_coordinates_isset = 0;
7978   AX_surfxml_peer_availability___file = 0;
7979   surfxml_peer_availability___file_isset = 0;
7980   AX_surfxml_peer_state___file = 0;
7981   surfxml_peer_state___file_isset = 0;
7982   ENTER(AL_surfxml_peer); pushbuffer(0);
7983   }
7984         YY_BREAK
7985
7986 case 338:
7987 /* rule 338 can match eol */
7988 YY_RULE_SETUP
7989 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);
7990         YY_BREAK
7991 case 339:
7992 /* rule 339 can match eol */
7993 YY_RULE_SETUP
7994 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);
7995         YY_BREAK
7996 case 340:
7997 /* rule 340 can match eol */
7998 YY_RULE_SETUP
7999 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);
8000         YY_BREAK
8001 case 341:
8002 /* rule 341 can match eol */
8003 YY_RULE_SETUP
8004 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);
8005         YY_BREAK
8006 case 342:
8007 /* rule 342 can match eol */
8008 YY_RULE_SETUP
8009 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);
8010         YY_BREAK
8011 case 343:
8012 /* rule 343 can match eol */
8013 YY_RULE_SETUP
8014 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);
8015         YY_BREAK
8016 case 344:
8017 /* rule 344 can match eol */
8018 YY_RULE_SETUP
8019 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);
8020         YY_BREAK
8021 case 345:
8022 /* rule 345 can match eol */
8023 YY_RULE_SETUP
8024 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);
8025         YY_BREAK
8026 case 346:
8027 /* rule 346 can match eol */
8028 YY_RULE_SETUP
8029 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);
8030         YY_BREAK
8031 case 347:
8032 /* rule 347 can match eol */
8033 YY_RULE_SETUP
8034 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);
8035         YY_BREAK
8036 case 348:
8037 /* rule 348 can match eol */
8038 YY_RULE_SETUP
8039 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);
8040         YY_BREAK
8041 case 349:
8042 /* rule 349 can match eol */
8043 YY_RULE_SETUP
8044 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);
8045         YY_BREAK
8046 case 350:
8047 /* rule 350 can match eol */
8048 YY_RULE_SETUP
8049 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);
8050         YY_BREAK
8051 case 351:
8052 /* rule 351 can match eol */
8053 YY_RULE_SETUP
8054 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);
8055         YY_BREAK
8056 case 352:
8057 /* rule 352 can match eol */
8058 YY_RULE_SETUP
8059 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);
8060         YY_BREAK
8061 case 353:
8062 /* rule 353 can match eol */
8063 YY_RULE_SETUP
8064 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);
8065         YY_BREAK
8066 case 354:
8067 YY_RULE_SETUP
8068 {
8069   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
8070   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
8071   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
8072   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
8073   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
8074   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
8075  }
8076         YY_BREAK
8077 case 355:
8078 YY_RULE_SETUP
8079 {
8080   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
8081   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
8082   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
8083   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
8084   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
8085   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
8086   switch (YY_START) {
8087    case S_surfxml_include_1: case S_surfxml_include: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
8088    case S_surfxml_AS_3: case S_surfxml_AS: case S_surfxml_AS_5: case S_surfxml_AS_1: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8089    case S_surfxml_platform_1: case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
8090   }
8091  }
8092         YY_BREAK
8093 case 356:
8094 YY_RULE_SETUP
8095 FAIL("Unexpected character `%c' in attribute list of peer element.", surf_parse_text[0]);
8096         YY_BREAK
8097 case 357:
8098 YY_RULE_SETUP
8099 FAIL("Bad attribute `%s' in `peer' element start tag.",surf_parse_text);
8100         YY_BREAK
8101 case YY_STATE_EOF(AL_surfxml_peer):
8102 FAIL("EOF in attribute list of `peer' element.");
8103         YY_BREAK
8104
8105 case 358:
8106 /* rule 358 can match eol */
8107 YY_RULE_SETUP
8108 {
8109   LEAVE;
8110   ETag_surfxml_peer();
8111   popbuffer(); /* attribute */
8112   switch (YY_START) {
8113    case S_surfxml_include_1: case S_surfxml_include: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
8114    case S_surfxml_AS_3: case S_surfxml_AS: case S_surfxml_AS_5: case S_surfxml_AS_1: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8115    case S_surfxml_platform_1: case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
8116   }
8117  }
8118         YY_BREAK
8119 case 359:
8120 /* rule 359 can match eol */
8121 YY_RULE_SETUP
8122 FAIL("Unexpected end-tag `%s': `</peer>' expected.",surf_parse_text);
8123         YY_BREAK
8124 case 360:
8125 YY_RULE_SETUP
8126 FAIL("Unexpected character `%c': `</peer>' expected.",surf_parse_text[0]);
8127         YY_BREAK
8128 case YY_STATE_EOF(E_surfxml_peer):
8129 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</peer>' expected.");
8130         YY_BREAK
8131
8132 case 361:
8133 /* rule 361 can match eol */
8134 YY_RULE_SETUP
8135 FAIL("Starting tag <router> is not allowed here.");
8136         YY_BREAK
8137 case 362:
8138 /* rule 362 can match eol */
8139 YY_RULE_SETUP
8140 {
8141   AX_surfxml_router_id = 0;
8142   surfxml_router_id_isset = 0;
8143   AX_surfxml_router_coordinates = 0;
8144   surfxml_router_coordinates_isset = 0;
8145   ENTER(AL_surfxml_router); pushbuffer(0);
8146   }
8147         YY_BREAK
8148
8149 case 363:
8150 /* rule 363 can match eol */
8151 YY_RULE_SETUP
8152 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);
8153         YY_BREAK
8154 case 364:
8155 /* rule 364 can match eol */
8156 YY_RULE_SETUP
8157 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);
8158         YY_BREAK
8159 case 365:
8160 /* rule 365 can match eol */
8161 YY_RULE_SETUP
8162 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);
8163         YY_BREAK
8164 case 366:
8165 /* rule 366 can match eol */
8166 YY_RULE_SETUP
8167 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);
8168         YY_BREAK
8169 case 367:
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; ENTER(E_surfxml_router);
8174  }
8175         YY_BREAK
8176 case 368:
8177 YY_RULE_SETUP
8178 {
8179   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
8180   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
8181   switch (YY_START) {
8182    case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS_3: case S_surfxml_AS_1: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
8183   }
8184  }
8185         YY_BREAK
8186 case 369:
8187 YY_RULE_SETUP
8188 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
8189         YY_BREAK
8190 case 370:
8191 YY_RULE_SETUP
8192 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
8193         YY_BREAK
8194 case YY_STATE_EOF(AL_surfxml_router):
8195 FAIL("EOF in attribute list of `router' element.");
8196         YY_BREAK
8197
8198 case 371:
8199 /* rule 371 can match eol */
8200 YY_RULE_SETUP
8201 {
8202   LEAVE;
8203   ETag_surfxml_router();
8204   popbuffer(); /* attribute */
8205   switch (YY_START) {
8206    case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS_3: case S_surfxml_AS_1: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
8207   }
8208  }
8209         YY_BREAK
8210 case 372:
8211 /* rule 372 can match eol */
8212 YY_RULE_SETUP
8213 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
8214         YY_BREAK
8215 case 373:
8216 YY_RULE_SETUP
8217 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
8218         YY_BREAK
8219 case YY_STATE_EOF(E_surfxml_router):
8220 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</router>' expected.");
8221         YY_BREAK
8222
8223 case 374:
8224 /* rule 374 can match eol */
8225 YY_RULE_SETUP
8226 FAIL("Starting tag <backbone> is not allowed here.");
8227         YY_BREAK
8228 case 375:
8229 /* rule 375 can match eol */
8230 YY_RULE_SETUP
8231 {
8232   AX_surfxml_backbone_id = 0;
8233   surfxml_backbone_id_isset = 0;
8234   AX_surfxml_backbone_bandwidth = 0;
8235   surfxml_backbone_bandwidth_isset = 0;
8236   AX_surfxml_backbone_latency = 0;
8237   surfxml_backbone_latency_isset = 0;
8238   ENTER(AL_surfxml_backbone); pushbuffer(0);
8239   }
8240         YY_BREAK
8241
8242 case 376:
8243 /* rule 376 can match eol */
8244 YY_RULE_SETUP
8245 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);
8246         YY_BREAK
8247 case 377:
8248 /* rule 377 can match eol */
8249 YY_RULE_SETUP
8250 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);
8251         YY_BREAK
8252 case 378:
8253 /* rule 378 can match eol */
8254 YY_RULE_SETUP
8255 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);
8256         YY_BREAK
8257 case 379:
8258 /* rule 379 can match eol */
8259 YY_RULE_SETUP
8260 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);
8261         YY_BREAK
8262 case 380:
8263 /* rule 380 can match eol */
8264 YY_RULE_SETUP
8265 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);
8266         YY_BREAK
8267 case 381:
8268 /* rule 381 can match eol */
8269 YY_RULE_SETUP
8270 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);
8271         YY_BREAK
8272 case 382:
8273 YY_RULE_SETUP
8274 {
8275   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
8276   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
8277   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
8278   LEAVE; STag_surfxml_backbone();surfxml_pcdata_ix = 0; ENTER(E_surfxml_backbone);
8279  }
8280         YY_BREAK
8281 case 383:
8282 YY_RULE_SETUP
8283 {
8284   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
8285   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
8286   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
8287   LEAVE; STag_surfxml_backbone(); surfxml_pcdata_ix = 0; ETag_surfxml_backbone(); popbuffer(); /* attribute */
8288   switch (YY_START) {
8289    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
8290    case S_surfxml_AS_5: case S_surfxml_AS_6: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
8291   }
8292  }
8293         YY_BREAK
8294 case 384:
8295 YY_RULE_SETUP
8296 FAIL("Unexpected character `%c' in attribute list of backbone element.", surf_parse_text[0]);
8297         YY_BREAK
8298 case 385:
8299 YY_RULE_SETUP
8300 FAIL("Bad attribute `%s' in `backbone' element start tag.",surf_parse_text);
8301         YY_BREAK
8302 case YY_STATE_EOF(AL_surfxml_backbone):
8303 FAIL("EOF in attribute list of `backbone' element.");
8304         YY_BREAK
8305
8306 case 386:
8307 /* rule 386 can match eol */
8308 YY_RULE_SETUP
8309 {
8310   LEAVE;
8311   ETag_surfxml_backbone();
8312   popbuffer(); /* attribute */
8313   switch (YY_START) {
8314    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
8315    case S_surfxml_AS_5: case S_surfxml_AS_6: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
8316   }
8317  }
8318         YY_BREAK
8319 case 387:
8320 /* rule 387 can match eol */
8321 YY_RULE_SETUP
8322 FAIL("Unexpected end-tag `%s': `</backbone>' expected.",surf_parse_text);
8323         YY_BREAK
8324 case 388:
8325 YY_RULE_SETUP
8326 FAIL("Unexpected character `%c': `</backbone>' expected.",surf_parse_text[0]);
8327         YY_BREAK
8328 case YY_STATE_EOF(E_surfxml_backbone):
8329 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</backbone>' expected.");
8330         YY_BREAK
8331
8332 case 389:
8333 /* rule 389 can match eol */
8334 YY_RULE_SETUP
8335 FAIL("Starting tag <link> is not allowed here.");
8336         YY_BREAK
8337 case 390:
8338 /* rule 390 can match eol */
8339 YY_RULE_SETUP
8340 {
8341   AX_surfxml_link_id = 0;
8342   surfxml_link_id_isset = 0;
8343   AX_surfxml_link_bandwidth = 0;
8344   surfxml_link_bandwidth_isset = 0;
8345   AX_surfxml_link_bandwidth___file = 0;
8346   surfxml_link_bandwidth___file_isset = 0;
8347   AX_surfxml_link_latency = 46;
8348   surfxml_link_latency_isset = 0;
8349   AX_surfxml_link_latency___file = 0;
8350   surfxml_link_latency___file_isset = 0;
8351   AX_surfxml_link_state = A_surfxml_link_state_ON;
8352   surfxml_link_state_isset = 0;
8353   AX_surfxml_link_state___file = 0;
8354   surfxml_link_state___file_isset = 0;
8355   AX_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
8356   surfxml_link_sharing___policy_isset = 0;
8357   ENTER(AL_surfxml_link); pushbuffer(0);
8358   }
8359         YY_BREAK
8360
8361 case 391:
8362 /* rule 391 can match eol */
8363 YY_RULE_SETUP
8364 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);
8365         YY_BREAK
8366 case 392:
8367 /* rule 392 can match eol */
8368 YY_RULE_SETUP
8369 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);
8370         YY_BREAK
8371 case 393:
8372 /* rule 393 can match eol */
8373 YY_RULE_SETUP
8374 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);
8375         YY_BREAK
8376 case 394:
8377 /* rule 394 can match eol */
8378 YY_RULE_SETUP
8379 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);
8380         YY_BREAK
8381 case 395:
8382 /* rule 395 can match eol */
8383 YY_RULE_SETUP
8384 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);
8385         YY_BREAK
8386 case 396:
8387 /* rule 396 can match eol */
8388 YY_RULE_SETUP
8389 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);
8390         YY_BREAK
8391 case 397:
8392 /* rule 397 can match eol */
8393 YY_RULE_SETUP
8394 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);
8395         YY_BREAK
8396 case 398:
8397 /* rule 398 can match eol */
8398 YY_RULE_SETUP
8399 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);
8400         YY_BREAK
8401 case 399:
8402 /* rule 399 can match eol */
8403 YY_RULE_SETUP
8404 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);
8405         YY_BREAK
8406 case 400:
8407 /* rule 400 can match eol */
8408 YY_RULE_SETUP
8409 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);
8410         YY_BREAK
8411 case 401:
8412 /* rule 401 can match eol */
8413 case 402:
8414 /* rule 402 can match eol */
8415 YY_RULE_SETUP
8416 A_surfxml_link_state = A_surfxml_link_state_ON;
8417         YY_BREAK
8418 case 403:
8419 /* rule 403 can match eol */
8420 case 404:
8421 /* rule 404 can match eol */
8422 YY_RULE_SETUP
8423 A_surfxml_link_state = A_surfxml_link_state_OFF;
8424         YY_BREAK
8425 case 405:
8426 /* rule 405 can match eol */
8427 YY_RULE_SETUP
8428 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);
8429         YY_BREAK
8430 case 406:
8431 /* rule 406 can match eol */
8432 YY_RULE_SETUP
8433 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);
8434         YY_BREAK
8435 case 407:
8436 /* rule 407 can match eol */
8437 case 408:
8438 /* rule 408 can match eol */
8439 YY_RULE_SETUP
8440 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
8441         YY_BREAK
8442 case 409:
8443 /* rule 409 can match eol */
8444 case 410:
8445 /* rule 410 can match eol */
8446 YY_RULE_SETUP
8447 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FATPIPE;
8448         YY_BREAK
8449 case 411:
8450 /* rule 411 can match eol */
8451 case 412:
8452 /* rule 412 can match eol */
8453 YY_RULE_SETUP
8454 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FULLDUPLEX;
8455         YY_BREAK
8456 case 413:
8457 YY_RULE_SETUP
8458 {
8459   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
8460   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
8461   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
8462  }
8463         YY_BREAK
8464 case 414:
8465 YY_RULE_SETUP
8466 {
8467   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
8468   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
8469   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
8470   switch (YY_START) {
8471    case S_surfxml_AS: case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
8472    case S_surfxml_AS_1: case S_surfxml_AS_6: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
8473   }
8474  }
8475         YY_BREAK
8476 case 415:
8477 YY_RULE_SETUP
8478 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
8479         YY_BREAK
8480 case 416:
8481 YY_RULE_SETUP
8482 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
8483         YY_BREAK
8484 case YY_STATE_EOF(AL_surfxml_link):
8485 FAIL("EOF in attribute list of `link' element.");
8486         YY_BREAK
8487
8488 case 417:
8489 /* rule 417 can match eol */
8490 YY_RULE_SETUP
8491 {
8492   LEAVE;
8493   ETag_surfxml_link();
8494   popbuffer(); /* attribute */
8495   switch (YY_START) {
8496    case S_surfxml_AS: case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
8497    case S_surfxml_AS_1: case S_surfxml_AS_6: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
8498   }
8499  }
8500         YY_BREAK
8501 case 418:
8502 /* rule 418 can match eol */
8503 YY_RULE_SETUP
8504 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
8505         YY_BREAK
8506 case 419:
8507 YY_RULE_SETUP
8508 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
8509         YY_BREAK
8510 case YY_STATE_EOF(S_surfxml_link_2):
8511 case YY_STATE_EOF(S_surfxml_link):
8512 case YY_STATE_EOF(E_surfxml_link):
8513 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link>' expected.");
8514         YY_BREAK
8515
8516 case 420:
8517 /* rule 420 can match eol */
8518 YY_RULE_SETUP
8519 FAIL("Starting tag <route> is not allowed here.");
8520         YY_BREAK
8521 case 421:
8522 /* rule 421 can match eol */
8523 YY_RULE_SETUP
8524 {
8525   AX_surfxml_route_src = 0;
8526   surfxml_route_src_isset = 0;
8527   AX_surfxml_route_dst = 0;
8528   surfxml_route_dst_isset = 0;
8529   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
8530   surfxml_route_symmetrical_isset = 0;
8531   ENTER(AL_surfxml_route); pushbuffer(0);
8532   }
8533         YY_BREAK
8534
8535 case 422:
8536 /* rule 422 can match eol */
8537 YY_RULE_SETUP
8538 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);
8539         YY_BREAK
8540 case 423:
8541 /* rule 423 can match eol */
8542 YY_RULE_SETUP
8543 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);
8544         YY_BREAK
8545 case 424:
8546 /* rule 424 can match eol */
8547 YY_RULE_SETUP
8548 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);
8549         YY_BREAK
8550 case 425:
8551 /* rule 425 can match eol */
8552 YY_RULE_SETUP
8553 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);
8554         YY_BREAK
8555 case 426:
8556 /* rule 426 can match eol */
8557 case 427:
8558 /* rule 427 can match eol */
8559 YY_RULE_SETUP
8560 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
8561         YY_BREAK
8562 case 428:
8563 /* rule 428 can match eol */
8564 case 429:
8565 /* rule 429 can match eol */
8566 YY_RULE_SETUP
8567 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
8568         YY_BREAK
8569 case 430:
8570 YY_RULE_SETUP
8571 {
8572   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8573   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8574   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
8575  }
8576         YY_BREAK
8577 case 431:
8578 YY_RULE_SETUP
8579 {
8580   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8581   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8582   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
8583   switch (YY_START) {
8584    case S_surfxml_AS_12: case S_surfxml_AS_14: case S_surfxml_AS_3: case S_surfxml_AS_15: case S_surfxml_AS_1: case S_surfxml_AS_16: case S_surfxml_AS: SET(S_surfxml_AS_16); break;
8585   }
8586  }
8587         YY_BREAK
8588 case 432:
8589 YY_RULE_SETUP
8590 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
8591         YY_BREAK
8592 case 433:
8593 YY_RULE_SETUP
8594 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
8595         YY_BREAK
8596 case YY_STATE_EOF(AL_surfxml_route):
8597 FAIL("EOF in attribute list of `route' element.");
8598         YY_BREAK
8599
8600 case 434:
8601 /* rule 434 can match eol */
8602 YY_RULE_SETUP
8603 {
8604   LEAVE;
8605   ETag_surfxml_route();
8606   popbuffer(); /* attribute */
8607   switch (YY_START) {
8608    case S_surfxml_AS_12: case S_surfxml_AS_14: case S_surfxml_AS_3: case S_surfxml_AS_15: case S_surfxml_AS_1: case S_surfxml_AS_16: case S_surfxml_AS: SET(S_surfxml_AS_16); break;
8609   }
8610  }
8611         YY_BREAK
8612 case 435:
8613 /* rule 435 can match eol */
8614 YY_RULE_SETUP
8615 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
8616         YY_BREAK
8617 case 436:
8618 YY_RULE_SETUP
8619 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
8620         YY_BREAK
8621 case YY_STATE_EOF(S_surfxml_route_2):
8622 case YY_STATE_EOF(S_surfxml_route):
8623 case YY_STATE_EOF(E_surfxml_route):
8624 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</route>' expected.");
8625         YY_BREAK
8626
8627 case 437:
8628 /* rule 437 can match eol */
8629 YY_RULE_SETUP
8630 FAIL("Starting tag <ASroute> is not allowed here.");
8631         YY_BREAK
8632 case 438:
8633 /* rule 438 can match eol */
8634 YY_RULE_SETUP
8635 {
8636   AX_surfxml_ASroute_src = 0;
8637   surfxml_ASroute_src_isset = 0;
8638   AX_surfxml_ASroute_dst = 0;
8639   surfxml_ASroute_dst_isset = 0;
8640   AX_surfxml_ASroute_gw___src = 0;
8641   surfxml_ASroute_gw___src_isset = 0;
8642   AX_surfxml_ASroute_gw___dst = 0;
8643   surfxml_ASroute_gw___dst_isset = 0;
8644   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
8645   surfxml_ASroute_symmetrical_isset = 0;
8646   ENTER(AL_surfxml_ASroute); pushbuffer(0);
8647   }
8648         YY_BREAK
8649
8650 case 439:
8651 /* rule 439 can match eol */
8652 YY_RULE_SETUP
8653 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);
8654         YY_BREAK
8655 case 440:
8656 /* rule 440 can match eol */
8657 YY_RULE_SETUP
8658 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);
8659         YY_BREAK
8660 case 441:
8661 /* rule 441 can match eol */
8662 YY_RULE_SETUP
8663 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);
8664         YY_BREAK
8665 case 442:
8666 /* rule 442 can match eol */
8667 YY_RULE_SETUP
8668 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);
8669         YY_BREAK
8670 case 443:
8671 /* rule 443 can match eol */
8672 YY_RULE_SETUP
8673 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);
8674         YY_BREAK
8675 case 444:
8676 /* rule 444 can match eol */
8677 YY_RULE_SETUP
8678 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);
8679         YY_BREAK
8680 case 445:
8681 /* rule 445 can match eol */
8682 YY_RULE_SETUP
8683 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);
8684         YY_BREAK
8685 case 446:
8686 /* rule 446 can match eol */
8687 YY_RULE_SETUP
8688 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);
8689         YY_BREAK
8690 case 447:
8691 /* rule 447 can match eol */
8692 case 448:
8693 /* rule 448 can match eol */
8694 YY_RULE_SETUP
8695 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
8696         YY_BREAK
8697 case 449:
8698 /* rule 449 can match eol */
8699 case 450:
8700 /* rule 450 can match eol */
8701 YY_RULE_SETUP
8702 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
8703         YY_BREAK
8704 case 451:
8705 YY_RULE_SETUP
8706 {
8707   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
8708   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
8709   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
8710   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
8711   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
8712  }
8713         YY_BREAK
8714 case 452:
8715 YY_RULE_SETUP
8716 {
8717   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
8718   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
8719   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
8720   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
8721   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
8722   switch (YY_START) {
8723    case S_surfxml_AS_3: case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS_6: case S_surfxml_AS_4: case S_surfxml_AS_8: case S_surfxml_AS: SET(S_surfxml_AS_9); break;
8724   }
8725  }
8726         YY_BREAK
8727 case 453:
8728 YY_RULE_SETUP
8729 FAIL("Unexpected character `%c' in attribute list of ASroute element.", surf_parse_text[0]);
8730         YY_BREAK
8731 case 454:
8732 YY_RULE_SETUP
8733 FAIL("Bad attribute `%s' in `ASroute' element start tag.",surf_parse_text);
8734         YY_BREAK
8735 case YY_STATE_EOF(AL_surfxml_ASroute):
8736 FAIL("EOF in attribute list of `ASroute' element.");
8737         YY_BREAK
8738
8739 case 455:
8740 /* rule 455 can match eol */
8741 YY_RULE_SETUP
8742 {
8743   LEAVE;
8744   ETag_surfxml_ASroute();
8745   popbuffer(); /* attribute */
8746   switch (YY_START) {
8747    case S_surfxml_AS_3: case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS_6: case S_surfxml_AS_4: case S_surfxml_AS_8: case S_surfxml_AS: SET(S_surfxml_AS_9); break;
8748   }
8749  }
8750         YY_BREAK
8751 case 456:
8752 /* rule 456 can match eol */
8753 YY_RULE_SETUP
8754 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",surf_parse_text);
8755         YY_BREAK
8756 case 457:
8757 YY_RULE_SETUP
8758 FAIL("Unexpected character `%c': `</ASroute>' expected.",surf_parse_text[0]);
8759         YY_BREAK
8760 case YY_STATE_EOF(S_surfxml_ASroute_2):
8761 case YY_STATE_EOF(S_surfxml_ASroute):
8762 case YY_STATE_EOF(E_surfxml_ASroute):
8763 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</ASroute>' expected.");
8764         YY_BREAK
8765
8766 case 458:
8767 /* rule 458 can match eol */
8768 YY_RULE_SETUP
8769 FAIL("Starting tag <link_ctn> is not allowed here.");
8770         YY_BREAK
8771 case 459:
8772 /* rule 459 can match eol */
8773 YY_RULE_SETUP
8774 {
8775   AX_surfxml_link___ctn_id = 0;
8776   surfxml_link___ctn_id_isset = 0;
8777   AX_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
8778   surfxml_link___ctn_direction_isset = 0;
8779   ENTER(AL_surfxml_link___ctn); pushbuffer(0);
8780   }
8781         YY_BREAK
8782
8783 case 460:
8784 /* rule 460 can match eol */
8785 YY_RULE_SETUP
8786 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);
8787         YY_BREAK
8788 case 461:
8789 /* rule 461 can match eol */
8790 YY_RULE_SETUP
8791 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);
8792         YY_BREAK
8793 case 462:
8794 /* rule 462 can match eol */
8795 case 463:
8796 /* rule 463 can match eol */
8797 YY_RULE_SETUP
8798 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_UP;
8799         YY_BREAK
8800 case 464:
8801 /* rule 464 can match eol */
8802 case 465:
8803 /* rule 465 can match eol */
8804 YY_RULE_SETUP
8805 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_DOWN;
8806         YY_BREAK
8807 case 466:
8808 /* rule 466 can match eol */
8809 case 467:
8810 /* rule 467 can match eol */
8811 YY_RULE_SETUP
8812 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
8813         YY_BREAK
8814 case 468:
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; ENTER(E_surfxml_link___ctn);
8819  }
8820         YY_BREAK
8821 case 469:
8822 YY_RULE_SETUP
8823 {
8824   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8825   LEAVE; STag_surfxml_link___ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link___ctn(); popbuffer(); /* attribute */
8826   switch (YY_START) {
8827    case S_surfxml_ASroute_2: case S_surfxml_ASroute_1: case S_surfxml_ASroute: SET(S_surfxml_ASroute_2); break;
8828    case S_surfxml_bypassASroute: case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: SET(S_surfxml_bypassASroute_2); break;
8829    case S_surfxml_route_2: case S_surfxml_route_1: case S_surfxml_route: SET(S_surfxml_route_2); break;
8830    case S_surfxml_bypassRoute_1: case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: SET(S_surfxml_bypassRoute_2); break;
8831   }
8832  }
8833         YY_BREAK
8834 case 470:
8835 YY_RULE_SETUP
8836 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", surf_parse_text[0]);
8837         YY_BREAK
8838 case 471:
8839 YY_RULE_SETUP
8840 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",surf_parse_text);
8841         YY_BREAK
8842 case YY_STATE_EOF(AL_surfxml_link___ctn):
8843 FAIL("EOF in attribute list of `link_ctn' element.");
8844         YY_BREAK
8845
8846 case 472:
8847 /* rule 472 can match eol */
8848 YY_RULE_SETUP
8849 {
8850   LEAVE;
8851   ETag_surfxml_link___ctn();
8852   popbuffer(); /* attribute */
8853   switch (YY_START) {
8854    case S_surfxml_ASroute_2: case S_surfxml_ASroute_1: case S_surfxml_ASroute: SET(S_surfxml_ASroute_2); break;
8855    case S_surfxml_bypassASroute: case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: SET(S_surfxml_bypassASroute_2); break;
8856    case S_surfxml_route_2: case S_surfxml_route_1: case S_surfxml_route: SET(S_surfxml_route_2); break;
8857    case S_surfxml_bypassRoute_1: case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: SET(S_surfxml_bypassRoute_2); break;
8858   }
8859  }
8860         YY_BREAK
8861 case 473:
8862 /* rule 473 can match eol */
8863 YY_RULE_SETUP
8864 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",surf_parse_text);
8865         YY_BREAK
8866 case 474:
8867 YY_RULE_SETUP
8868 FAIL("Unexpected character `%c': `</link_ctn>' expected.",surf_parse_text[0]);
8869         YY_BREAK
8870 case YY_STATE_EOF(E_surfxml_link___ctn):
8871 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link_ctn>' expected.");
8872         YY_BREAK
8873
8874 case 475:
8875 /* rule 475 can match eol */
8876 YY_RULE_SETUP
8877 FAIL("Starting tag <bypassRoute> is not allowed here.");
8878         YY_BREAK
8879 case 476:
8880 /* rule 476 can match eol */
8881 YY_RULE_SETUP
8882 {
8883   AX_surfxml_bypassRoute_src = 0;
8884   surfxml_bypassRoute_src_isset = 0;
8885   AX_surfxml_bypassRoute_dst = 0;
8886   surfxml_bypassRoute_dst_isset = 0;
8887   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
8888   }
8889         YY_BREAK
8890
8891 case 477:
8892 /* rule 477 can match eol */
8893 YY_RULE_SETUP
8894 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);
8895         YY_BREAK
8896 case 478:
8897 /* rule 478 can match eol */
8898 YY_RULE_SETUP
8899 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);
8900         YY_BREAK
8901 case 479:
8902 /* rule 479 can match eol */
8903 YY_RULE_SETUP
8904 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);
8905         YY_BREAK
8906 case 480:
8907 /* rule 480 can match eol */
8908 YY_RULE_SETUP
8909 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);
8910         YY_BREAK
8911 case 481:
8912 YY_RULE_SETUP
8913 {
8914   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
8915   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
8916   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
8917  }
8918         YY_BREAK
8919 case 482:
8920 YY_RULE_SETUP
8921 {
8922   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
8923   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
8924   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
8925   switch (YY_START) {
8926    case S_surfxml_AS_14: case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_3: case S_surfxml_AS_16: case S_surfxml_AS_1: case S_surfxml_AS: SET(S_surfxml_AS_16); break;
8927   }
8928  }
8929         YY_BREAK
8930 case 483:
8931 YY_RULE_SETUP
8932 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", surf_parse_text[0]);
8933         YY_BREAK
8934 case 484:
8935 YY_RULE_SETUP
8936 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",surf_parse_text);
8937         YY_BREAK
8938 case YY_STATE_EOF(AL_surfxml_bypassRoute):
8939 FAIL("EOF in attribute list of `bypassRoute' element.");
8940         YY_BREAK
8941
8942 case 485:
8943 /* rule 485 can match eol */
8944 YY_RULE_SETUP
8945 {
8946   LEAVE;
8947   ETag_surfxml_bypassRoute();
8948   popbuffer(); /* attribute */
8949   switch (YY_START) {
8950    case S_surfxml_AS_14: case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_3: case S_surfxml_AS_16: case S_surfxml_AS_1: case S_surfxml_AS: SET(S_surfxml_AS_16); break;
8951   }
8952  }
8953         YY_BREAK
8954 case 486:
8955 /* rule 486 can match eol */
8956 YY_RULE_SETUP
8957 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",surf_parse_text);
8958         YY_BREAK
8959 case 487:
8960 YY_RULE_SETUP
8961 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",surf_parse_text[0]);
8962         YY_BREAK
8963 case YY_STATE_EOF(E_surfxml_bypassRoute):
8964 case YY_STATE_EOF(S_surfxml_bypassRoute):
8965 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
8966 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassRoute>' expected.");
8967         YY_BREAK
8968
8969 case 488:
8970 /* rule 488 can match eol */
8971 YY_RULE_SETUP
8972 FAIL("Starting tag <bypassASroute> is not allowed here.");
8973         YY_BREAK
8974 case 489:
8975 /* rule 489 can match eol */
8976 YY_RULE_SETUP
8977 {
8978   AX_surfxml_bypassASroute_src = 0;
8979   surfxml_bypassASroute_src_isset = 0;
8980   AX_surfxml_bypassASroute_dst = 0;
8981   surfxml_bypassASroute_dst_isset = 0;
8982   AX_surfxml_bypassASroute_gw___src = 0;
8983   surfxml_bypassASroute_gw___src_isset = 0;
8984   AX_surfxml_bypassASroute_gw___dst = 0;
8985   surfxml_bypassASroute_gw___dst_isset = 0;
8986   ENTER(AL_surfxml_bypassASroute); pushbuffer(0);
8987   }
8988         YY_BREAK
8989
8990 case 490:
8991 /* rule 490 can match eol */
8992 YY_RULE_SETUP
8993 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);
8994         YY_BREAK
8995 case 491:
8996 /* rule 491 can match eol */
8997 YY_RULE_SETUP
8998 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);
8999         YY_BREAK
9000 case 492:
9001 /* rule 492 can match eol */
9002 YY_RULE_SETUP
9003 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);
9004         YY_BREAK
9005 case 493:
9006 /* rule 493 can match eol */
9007 YY_RULE_SETUP
9008 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);
9009         YY_BREAK
9010 case 494:
9011 /* rule 494 can match eol */
9012 YY_RULE_SETUP
9013 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);
9014         YY_BREAK
9015 case 495:
9016 /* rule 495 can match eol */
9017 YY_RULE_SETUP
9018 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);
9019         YY_BREAK
9020 case 496:
9021 /* rule 496 can match eol */
9022 YY_RULE_SETUP
9023 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);
9024         YY_BREAK
9025 case 497:
9026 /* rule 497 can match eol */
9027 YY_RULE_SETUP
9028 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);
9029         YY_BREAK
9030 case 498:
9031 YY_RULE_SETUP
9032 {
9033   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
9034   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
9035   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
9036   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
9037   LEAVE; STag_surfxml_bypassASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassASroute);
9038  }
9039         YY_BREAK
9040 case 499:
9041 YY_RULE_SETUP
9042 {
9043   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
9044   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
9045   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
9046   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
9047   LEAVE; STag_surfxml_bypassASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */
9048   switch (YY_START) {
9049    case S_surfxml_AS_3: case S_surfxml_AS_9: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_6: SET(S_surfxml_AS_9); break;
9050   }
9051  }
9052         YY_BREAK
9053 case 500:
9054 YY_RULE_SETUP
9055 FAIL("Unexpected character `%c' in attribute list of bypassASroute element.", surf_parse_text[0]);
9056         YY_BREAK
9057 case 501:
9058 YY_RULE_SETUP
9059 FAIL("Bad attribute `%s' in `bypassASroute' element start tag.",surf_parse_text);
9060         YY_BREAK
9061 case YY_STATE_EOF(AL_surfxml_bypassASroute):
9062 FAIL("EOF in attribute list of `bypassASroute' element.");
9063         YY_BREAK
9064
9065 case 502:
9066 /* rule 502 can match eol */
9067 YY_RULE_SETUP
9068 {
9069   LEAVE;
9070   ETag_surfxml_bypassASroute();
9071   popbuffer(); /* attribute */
9072   switch (YY_START) {
9073    case S_surfxml_AS_3: case S_surfxml_AS_9: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_6: SET(S_surfxml_AS_9); break;
9074   }
9075  }
9076         YY_BREAK
9077 case 503:
9078 /* rule 503 can match eol */
9079 YY_RULE_SETUP
9080 FAIL("Unexpected end-tag `%s': `</bypassASroute>' expected.",surf_parse_text);
9081         YY_BREAK
9082 case 504:
9083 YY_RULE_SETUP
9084 FAIL("Unexpected character `%c': `</bypassASroute>' expected.",surf_parse_text[0]);
9085         YY_BREAK
9086 case YY_STATE_EOF(S_surfxml_bypassASroute_2):
9087 case YY_STATE_EOF(S_surfxml_bypassASroute):
9088 case YY_STATE_EOF(E_surfxml_bypassASroute):
9089 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassASroute>' expected.");
9090         YY_BREAK
9091
9092 case 505:
9093 /* rule 505 can match eol */
9094 YY_RULE_SETUP
9095 FAIL("Starting tag <process> is not allowed here.");
9096         YY_BREAK
9097 case 506:
9098 /* rule 506 can match eol */
9099 YY_RULE_SETUP
9100 {
9101   AX_surfxml_process_host = 0;
9102   surfxml_process_host_isset = 0;
9103   AX_surfxml_process_function = 0;
9104   surfxml_process_function_isset = 0;
9105   AX_surfxml_process_start___time = 50;
9106   surfxml_process_start___time_isset = 0;
9107   AX_surfxml_process_kill___time = 55;
9108   surfxml_process_kill___time_isset = 0;
9109   AX_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
9110   surfxml_process_on___failure_isset = 0;
9111   ENTER(AL_surfxml_process); pushbuffer(0);
9112   }
9113         YY_BREAK
9114
9115 case 507:
9116 /* rule 507 can match eol */
9117 YY_RULE_SETUP
9118 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);
9119         YY_BREAK
9120 case 508:
9121 /* rule 508 can match eol */
9122 YY_RULE_SETUP
9123 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);
9124         YY_BREAK
9125 case 509:
9126 /* rule 509 can match eol */
9127 YY_RULE_SETUP
9128 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);
9129         YY_BREAK
9130 case 510:
9131 /* rule 510 can match eol */
9132 YY_RULE_SETUP
9133 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);
9134         YY_BREAK
9135 case 511:
9136 /* rule 511 can match eol */
9137 YY_RULE_SETUP
9138 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);
9139         YY_BREAK
9140 case 512:
9141 /* rule 512 can match eol */
9142 YY_RULE_SETUP
9143 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);
9144         YY_BREAK
9145 case 513:
9146 /* rule 513 can match eol */
9147 YY_RULE_SETUP
9148 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);
9149         YY_BREAK
9150 case 514:
9151 /* rule 514 can match eol */
9152 YY_RULE_SETUP
9153 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);
9154         YY_BREAK
9155 case 515:
9156 /* rule 515 can match eol */
9157 case 516:
9158 /* rule 516 can match eol */
9159 YY_RULE_SETUP
9160 A_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
9161         YY_BREAK
9162 case 517:
9163 /* rule 517 can match eol */
9164 case 518:
9165 /* rule 518 can match eol */
9166 YY_RULE_SETUP
9167 A_surfxml_process_on___failure = A_surfxml_process_on___failure_RESTART;
9168         YY_BREAK
9169 case 519:
9170 YY_RULE_SETUP
9171 {
9172   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
9173   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
9174   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
9175  }
9176         YY_BREAK
9177 case 520:
9178 YY_RULE_SETUP
9179 {
9180   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
9181   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
9182   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
9183   switch (YY_START) {
9184    case S_surfxml_platform_4: case S_surfxml_platform: case S_surfxml_platform_7: case S_surfxml_platform_8: case S_surfxml_platform_3: case S_surfxml_platform_6: case S_surfxml_platform_1: SET(S_surfxml_platform_8); break;
9185   }
9186  }
9187         YY_BREAK
9188 case 521:
9189 YY_RULE_SETUP
9190 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
9191         YY_BREAK
9192 case 522:
9193 YY_RULE_SETUP
9194 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
9195         YY_BREAK
9196 case YY_STATE_EOF(AL_surfxml_process):
9197 FAIL("EOF in attribute list of `process' element.");
9198         YY_BREAK
9199
9200 case 523:
9201 /* rule 523 can match eol */
9202 YY_RULE_SETUP
9203 {
9204   LEAVE;
9205   ETag_surfxml_process();
9206   popbuffer(); /* attribute */
9207   switch (YY_START) {
9208    case S_surfxml_platform_4: case S_surfxml_platform: case S_surfxml_platform_7: case S_surfxml_platform_8: case S_surfxml_platform_3: case S_surfxml_platform_6: case S_surfxml_platform_1: SET(S_surfxml_platform_8); break;
9209   }
9210  }
9211         YY_BREAK
9212 case 524:
9213 /* rule 524 can match eol */
9214 YY_RULE_SETUP
9215 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
9216         YY_BREAK
9217 case 525:
9218 YY_RULE_SETUP
9219 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
9220         YY_BREAK
9221 case YY_STATE_EOF(S_surfxml_process):
9222 case YY_STATE_EOF(E_surfxml_process):
9223 case YY_STATE_EOF(S_surfxml_process_2):
9224 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</process>' expected.");
9225         YY_BREAK
9226
9227 case 526:
9228 /* rule 526 can match eol */
9229 YY_RULE_SETUP
9230 FAIL("Starting tag <argument> is not allowed here.");
9231         YY_BREAK
9232 case 527:
9233 /* rule 527 can match eol */
9234 YY_RULE_SETUP
9235 {
9236   AX_surfxml_argument_value = 0;
9237   surfxml_argument_value_isset = 0;
9238   ENTER(AL_surfxml_argument); pushbuffer(0);
9239   }
9240         YY_BREAK
9241
9242 case 528:
9243 /* rule 528 can match eol */
9244 YY_RULE_SETUP
9245 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);
9246         YY_BREAK
9247 case 529:
9248 /* rule 529 can match eol */
9249 YY_RULE_SETUP
9250 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);
9251         YY_BREAK
9252 case 530:
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; ENTER(E_surfxml_argument);
9257  }
9258         YY_BREAK
9259 case 531:
9260 YY_RULE_SETUP
9261 {
9262   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
9263   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
9264   switch (YY_START) {
9265    case S_surfxml_process_1: case S_surfxml_process_2: case S_surfxml_process: SET(S_surfxml_process_2); break;
9266   }
9267  }
9268         YY_BREAK
9269 case 532:
9270 YY_RULE_SETUP
9271 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
9272         YY_BREAK
9273 case 533:
9274 YY_RULE_SETUP
9275 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
9276         YY_BREAK
9277 case YY_STATE_EOF(AL_surfxml_argument):
9278 FAIL("EOF in attribute list of `argument' element.");
9279         YY_BREAK
9280
9281 case 534:
9282 /* rule 534 can match eol */
9283 YY_RULE_SETUP
9284 {
9285   LEAVE;
9286   ETag_surfxml_argument();
9287   popbuffer(); /* attribute */
9288   switch (YY_START) {
9289    case S_surfxml_process_1: case S_surfxml_process_2: case S_surfxml_process: SET(S_surfxml_process_2); break;
9290   }
9291  }
9292         YY_BREAK
9293 case 535:
9294 /* rule 535 can match eol */
9295 YY_RULE_SETUP
9296 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
9297         YY_BREAK
9298 case 536:
9299 YY_RULE_SETUP
9300 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
9301         YY_BREAK
9302 case YY_STATE_EOF(E_surfxml_argument):
9303 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</argument>' expected.");
9304         YY_BREAK
9305
9306 case 537:
9307 /* rule 537 can match eol */
9308 YY_RULE_SETUP
9309 FAIL("Starting tag <config> is not allowed here.");
9310         YY_BREAK
9311 case 538:
9312 /* rule 538 can match eol */
9313 YY_RULE_SETUP
9314 {
9315   AX_surfxml_config_id = 0;
9316   surfxml_config_id_isset = 0;
9317   ENTER(AL_surfxml_config); pushbuffer(0);
9318   }
9319         YY_BREAK
9320
9321 case 539:
9322 /* rule 539 can match eol */
9323 YY_RULE_SETUP
9324 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);
9325         YY_BREAK
9326 case 540:
9327 /* rule 540 can match eol */
9328 YY_RULE_SETUP
9329 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);
9330         YY_BREAK
9331 case 541:
9332 YY_RULE_SETUP
9333 {
9334   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
9335  }
9336         YY_BREAK
9337 case 542:
9338 YY_RULE_SETUP
9339 {
9340   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
9341   switch (YY_START) {
9342    case S_surfxml_platform_3: case S_surfxml_platform_2: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
9343   }
9344  }
9345         YY_BREAK
9346 case 543:
9347 YY_RULE_SETUP
9348 FAIL("Unexpected character `%c' in attribute list of config element.", surf_parse_text[0]);
9349         YY_BREAK
9350 case 544:
9351 YY_RULE_SETUP
9352 FAIL("Bad attribute `%s' in `config' element start tag.",surf_parse_text);
9353         YY_BREAK
9354 case YY_STATE_EOF(AL_surfxml_config):
9355 FAIL("EOF in attribute list of `config' element.");
9356         YY_BREAK
9357
9358 case 545:
9359 /* rule 545 can match eol */
9360 YY_RULE_SETUP
9361 {
9362   LEAVE;
9363   ETag_surfxml_config();
9364   popbuffer(); /* attribute */
9365   switch (YY_START) {
9366    case S_surfxml_platform_3: case S_surfxml_platform_2: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
9367   }
9368  }
9369         YY_BREAK
9370 case 546:
9371 /* rule 546 can match eol */
9372 YY_RULE_SETUP
9373 FAIL("Unexpected end-tag `%s': `</config>' expected.",surf_parse_text);
9374         YY_BREAK
9375 case 547:
9376 YY_RULE_SETUP
9377 FAIL("Unexpected character `%c': `</config>' expected.",surf_parse_text[0]);
9378         YY_BREAK
9379 case YY_STATE_EOF(S_surfxml_config_2):
9380 case YY_STATE_EOF(E_surfxml_config):
9381 case YY_STATE_EOF(S_surfxml_config):
9382 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</config>' expected.");
9383         YY_BREAK
9384
9385 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
9386   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
9387 case 548:
9388 /* rule 548 can match eol */
9389 YY_RULE_SETUP
9390 FAIL("Starting tag <prop> is not allowed here.");
9391         YY_BREAK
9392 case 549:
9393 /* rule 549 can match eol */
9394 YY_RULE_SETUP
9395 {
9396   AX_surfxml_prop_id = 0;
9397   surfxml_prop_id_isset = 0;
9398   AX_surfxml_prop_value = 0;
9399   surfxml_prop_value_isset = 0;
9400   ENTER(AL_surfxml_prop); pushbuffer(0);
9401   }
9402         YY_BREAK
9403
9404 case 550:
9405 /* rule 550 can match eol */
9406 YY_RULE_SETUP
9407 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);
9408         YY_BREAK
9409 case 551:
9410 /* rule 551 can match eol */
9411 YY_RULE_SETUP
9412 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);
9413         YY_BREAK
9414 case 552:
9415 /* rule 552 can match eol */
9416 YY_RULE_SETUP
9417 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);
9418         YY_BREAK
9419 case 553:
9420 /* rule 553 can match eol */
9421 YY_RULE_SETUP
9422 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);
9423         YY_BREAK
9424 case 554:
9425 YY_RULE_SETUP
9426 {
9427   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
9428   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
9429   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
9430  }
9431         YY_BREAK
9432 case 555:
9433 YY_RULE_SETUP
9434 {
9435   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
9436   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
9437   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
9438   switch (YY_START) {
9439    case S_surfxml_process_2: case S_surfxml_process_1: case S_surfxml_process: SET(S_surfxml_process_2); break;
9440    case S_surfxml_storage___type: case S_surfxml_storage___type_2: case S_surfxml_storage___type_1: SET(S_surfxml_storage___type_2); break;
9441    case S_surfxml_config_1: case S_surfxml_config_2: case S_surfxml_config: SET(S_surfxml_config_2); break;
9442    case S_surfxml_link: case S_surfxml_link_2: case S_surfxml_link_1: SET(S_surfxml_link_2); break;
9443    case S_surfxml_AS_3: case S_surfxml_AS_2: case S_surfxml_AS: SET(S_surfxml_AS_3); break;
9444    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
9445    case S_surfxml_cluster_2: case S_surfxml_cluster: case S_surfxml_cluster_1: SET(S_surfxml_cluster_2); break;
9446    case S_surfxml_storage: case S_surfxml_storage_1: case S_surfxml_storage_2: SET(S_surfxml_storage_2); break;
9447   }
9448  }
9449         YY_BREAK
9450 case 556:
9451 YY_RULE_SETUP
9452 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
9453         YY_BREAK
9454 case 557:
9455 YY_RULE_SETUP
9456 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
9457         YY_BREAK
9458 case YY_STATE_EOF(AL_surfxml_prop):
9459 FAIL("EOF in attribute list of `prop' element.");
9460         YY_BREAK
9461
9462 case 558:
9463 /* rule 558 can match eol */
9464 YY_RULE_SETUP
9465 {
9466   LEAVE;
9467   ETag_surfxml_prop();
9468   popbuffer(); /* attribute */
9469   switch (YY_START) {
9470    case S_surfxml_process_2: case S_surfxml_process_1: case S_surfxml_process: SET(S_surfxml_process_2); break;
9471    case S_surfxml_storage___type: case S_surfxml_storage___type_2: case S_surfxml_storage___type_1: SET(S_surfxml_storage___type_2); break;
9472    case S_surfxml_config_1: case S_surfxml_config_2: case S_surfxml_config: SET(S_surfxml_config_2); break;
9473    case S_surfxml_link: case S_surfxml_link_2: case S_surfxml_link_1: SET(S_surfxml_link_2); break;
9474    case S_surfxml_AS_3: case S_surfxml_AS_2: case S_surfxml_AS: SET(S_surfxml_AS_3); break;
9475    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
9476    case S_surfxml_cluster_2: case S_surfxml_cluster: case S_surfxml_cluster_1: SET(S_surfxml_cluster_2); break;
9477    case S_surfxml_storage: case S_surfxml_storage_1: case S_surfxml_storage_2: SET(S_surfxml_storage_2); break;
9478   }
9479  }
9480         YY_BREAK
9481 case 559:
9482 /* rule 559 can match eol */
9483 YY_RULE_SETUP
9484 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
9485         YY_BREAK
9486 case 560:
9487 YY_RULE_SETUP
9488 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
9489         YY_BREAK
9490 case YY_STATE_EOF(E_surfxml_prop):
9491 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</prop>' expected.");
9492         YY_BREAK
9493
9494 /* <!-- <!ATTLIST model_prop key CDATA #REQUIRED> -->
9495   * <!-- <!ATTLIST model_prop key CDATA #REQUIRED> -->  */
9496 case 561:
9497 /* rule 561 can match eol */
9498 YY_RULE_SETUP
9499 FAIL("Starting tag <model_prop> is not allowed here.");
9500         YY_BREAK
9501 case 562:
9502 /* rule 562 can match eol */
9503 YY_RULE_SETUP
9504 {
9505   AX_surfxml_model___prop_id = 0;
9506   surfxml_model___prop_id_isset = 0;
9507   AX_surfxml_model___prop_value = 0;
9508   surfxml_model___prop_value_isset = 0;
9509   ENTER(AL_surfxml_model___prop); pushbuffer(0);
9510   }
9511         YY_BREAK
9512
9513 case 563:
9514 /* rule 563 can match eol */
9515 YY_RULE_SETUP
9516 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);
9517         YY_BREAK
9518 case 564:
9519 /* rule 564 can match eol */
9520 YY_RULE_SETUP
9521 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);
9522         YY_BREAK
9523 case 565:
9524 /* rule 565 can match eol */
9525 YY_RULE_SETUP
9526 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);
9527         YY_BREAK
9528 case 566:
9529 /* rule 566 can match eol */
9530 YY_RULE_SETUP
9531 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);
9532         YY_BREAK
9533 case 567:
9534 YY_RULE_SETUP
9535 {
9536   if (!AX_surfxml_model___prop_id) FAIL("Required attribute `id' not set for `model_prop' element.");
9537   if (!AX_surfxml_model___prop_value) FAIL("Required attribute `value' not set for `model_prop' element.");
9538   LEAVE; STag_surfxml_model___prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_model___prop);
9539  }
9540         YY_BREAK
9541 case 568:
9542 YY_RULE_SETUP
9543 {
9544   if (!AX_surfxml_model___prop_id) FAIL("Required attribute `id' not set for `model_prop' element.");
9545   if (!AX_surfxml_model___prop_value) FAIL("Required attribute `value' not set for `model_prop' element.");
9546   LEAVE; STag_surfxml_model___prop(); surfxml_pcdata_ix = 0; ETag_surfxml_model___prop(); popbuffer(); /* attribute */
9547   switch (YY_START) {
9548    case S_surfxml_storage___type_2: case S_surfxml_storage___type_1: case S_surfxml_storage___type: SET(S_surfxml_storage___type_2); break;
9549   }
9550  }
9551         YY_BREAK
9552 case 569:
9553 YY_RULE_SETUP
9554 FAIL("Unexpected character `%c' in attribute list of model_prop element.", surf_parse_text[0]);
9555         YY_BREAK
9556 case 570:
9557 YY_RULE_SETUP
9558 FAIL("Bad attribute `%s' in `model_prop' element start tag.",surf_parse_text);
9559         YY_BREAK
9560 case YY_STATE_EOF(AL_surfxml_model___prop):
9561 FAIL("EOF in attribute list of `model_prop' element.");
9562         YY_BREAK
9563
9564 case 571:
9565 /* rule 571 can match eol */
9566 YY_RULE_SETUP
9567 {
9568   LEAVE;
9569   ETag_surfxml_model___prop();
9570   popbuffer(); /* attribute */
9571   switch (YY_START) {
9572    case S_surfxml_storage___type_2: case S_surfxml_storage___type_1: case S_surfxml_storage___type: SET(S_surfxml_storage___type_2); break;
9573   }
9574  }
9575         YY_BREAK
9576 case 572:
9577 /* rule 572 can match eol */
9578 YY_RULE_SETUP
9579 FAIL("Unexpected end-tag `%s': `</model_prop>' expected.",surf_parse_text);
9580         YY_BREAK
9581 case 573:
9582 YY_RULE_SETUP
9583 FAIL("Unexpected character `%c': `</model_prop>' expected.",surf_parse_text[0]);
9584         YY_BREAK
9585 case YY_STATE_EOF(E_surfxml_model___prop):
9586 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</model_prop>' expected.");
9587         YY_BREAK
9588
9589 /* EPILOG: after the root element. */
9590
9591 case 574:
9592 YY_RULE_SETUP
9593 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
9594         YY_BREAK
9595 case YY_STATE_EOF(EPILOG):
9596 SUCCEED;
9597         YY_BREAK
9598
9599 /* CHARACTER DATA. */
9600
9601 /* Non-defined standard entities... */
9602 case 575:
9603 YY_RULE_SETUP
9604 BUFFERPUTC('&');
9605         YY_BREAK
9606 case 576:
9607 YY_RULE_SETUP
9608 BUFFERPUTC('<');
9609         YY_BREAK
9610 case 577:
9611 YY_RULE_SETUP
9612 BUFFERPUTC('>');
9613         YY_BREAK
9614 case 578:
9615 YY_RULE_SETUP
9616 BUFFERPUTC('\'');
9617         YY_BREAK
9618 case 579:
9619 YY_RULE_SETUP
9620 BUFFERPUTC('"');
9621         YY_BREAK
9622 /* Character entities. */
9623 case 580:
9624 YY_RULE_SETUP
9625 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
9626         YY_BREAK
9627 case 581:
9628 YY_RULE_SETUP
9629 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
9630         YY_BREAK
9631
9632 case 582:
9633 /* rule 582 can match eol */
9634 case 583:
9635 /* rule 583 can match eol */
9636 case 584:
9637 /* rule 584 can match eol */
9638 case 585:
9639 /* rule 585 can match eol */
9640 YY_RULE_SETUP
9641 BUFFERPUTC('\n');
9642         YY_BREAK
9643
9644 case 586:
9645 YY_RULE_SETUP
9646 ENTER(CDATA);
9647         YY_BREAK
9648 case 587:
9649 YY_RULE_SETUP
9650 FAIL("Unexpected `]""]>' in character data.");
9651         YY_BREAK
9652
9653 case 588:
9654 YY_RULE_SETUP
9655 BUFFERDONE; LEAVE;
9656         YY_BREAK
9657 case YY_STATE_EOF(VALUE1):
9658 FAIL("EOF in literal (\"'\" expected).");
9659         YY_BREAK
9660
9661 case 589:
9662 YY_RULE_SETUP
9663 BUFFERDONE; LEAVE;
9664         YY_BREAK
9665 case YY_STATE_EOF(VALUE2):
9666 FAIL("EOF in literal (`\"' expected).");
9667         YY_BREAK
9668
9669 case 590:
9670 /* rule 590 can match eol */
9671 YY_RULE_SETUP
9672 BUFFERPUTC(surf_parse_text[0]);
9673         YY_BREAK
9674 case 591:
9675 YY_RULE_SETUP
9676 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
9677         YY_BREAK
9678
9679 case 592:
9680 YY_RULE_SETUP
9681 LEAVE;
9682         YY_BREAK
9683 /* "]""]"               BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
9684 case 593:
9685 YY_RULE_SETUP
9686 BUFFERPUTC(surf_parse_text[0]);
9687         YY_BREAK
9688 case YY_STATE_EOF(CDATA):
9689 FAIL("EOF in CDATA section.");
9690         YY_BREAK
9691
9692 /* Impossible rules to avoid warnings from flex(1). */
9693 /* Ideally, this should be replaced by code in flexml.pl that
9694     generates just the states not covered by other rules. */
9695
9696 case 594:
9697 /* rule 594 can match eol */
9698 YY_RULE_SETUP
9699 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
9700         YY_BREAK
9701
9702 case 595:
9703 YY_RULE_SETUP
9704 ECHO;
9705         YY_BREAK
9706 case YY_STATE_EOF(INITIAL):
9707 case YY_STATE_EOF(ROOT_surfxml_platform):
9708 case YY_STATE_EOF(S_surfxml_platform_2):
9709 case YY_STATE_EOF(S_surfxml_platform_5):
9710 case YY_STATE_EOF(S_surfxml_platform_7):
9711 case YY_STATE_EOF(S_surfxml_include_1):
9712 case YY_STATE_EOF(S_surfxml_AS_2):
9713 case YY_STATE_EOF(S_surfxml_AS_5):
9714 case YY_STATE_EOF(S_surfxml_AS_8):
9715 case YY_STATE_EOF(S_surfxml_AS_10):
9716 case YY_STATE_EOF(S_surfxml_AS_13):
9717 case YY_STATE_EOF(S_surfxml_AS_15):
9718 case YY_STATE_EOF(S_surfxml_storage___type_1):
9719 case YY_STATE_EOF(S_surfxml_host_1):
9720 case YY_STATE_EOF(S_surfxml_storage_1):
9721 case YY_STATE_EOF(S_surfxml_cluster_1):
9722 case YY_STATE_EOF(S_surfxml_link_1):
9723 case YY_STATE_EOF(S_surfxml_route_1):
9724 case YY_STATE_EOF(S_surfxml_ASroute_1):
9725 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
9726 case YY_STATE_EOF(S_surfxml_bypassASroute_1):
9727 case YY_STATE_EOF(S_surfxml_process_1):
9728 case YY_STATE_EOF(S_surfxml_config_1):
9729 case YY_STATE_EOF(IMPOSSIBLE):
9730         yyterminate();
9731
9732         case YY_END_OF_BUFFER:
9733                 {
9734                 /* Amount of text matched not including the EOB char. */
9735                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
9736
9737                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
9738                 *yy_cp = (yy_hold_char);
9739                 YY_RESTORE_YY_MORE_OFFSET
9740
9741                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
9742                         {
9743                         /* We're scanning a new file or input source.  It's
9744                          * possible that this happened because the user
9745                          * just pointed surf_parse_in at a new source and called
9746                          * surf_parse_lex().  If so, then we have to assure
9747                          * consistency between YY_CURRENT_BUFFER and our
9748                          * globals.  Here is the right place to do so, because
9749                          * this is the first action (other than possibly a
9750                          * back-up) that will match for the new input source.
9751                          */
9752                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9753                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
9754                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
9755                         }
9756
9757                 /* Note that here we test for yy_c_buf_p "<=" to the position
9758                  * of the first EOB in the buffer, since yy_c_buf_p will
9759                  * already have been incremented past the NUL character
9760                  * (since all states make transitions on EOB to the
9761                  * end-of-buffer state).  Contrast this with the test
9762                  * in input().
9763                  */
9764                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9765                         { /* This was really a NUL. */
9766                         yy_state_type yy_next_state;
9767
9768                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
9769
9770                         yy_current_state = yy_get_previous_state(  );
9771
9772                         /* Okay, we're now positioned to make the NUL
9773                          * transition.  We couldn't have
9774                          * yy_get_previous_state() go ahead and do it
9775                          * for us because it doesn't know how to deal
9776                          * with the possibility of jamming (and we don't
9777                          * want to build jamming into it because then it
9778                          * will run more slowly).
9779                          */
9780
9781                         yy_next_state = yy_try_NUL_trans( yy_current_state );
9782
9783                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9784
9785                         if ( yy_next_state )
9786                                 {
9787                                 /* Consume the NUL. */
9788                                 yy_cp = ++(yy_c_buf_p);
9789                                 yy_current_state = yy_next_state;
9790                                 goto yy_match;
9791                                 }
9792
9793                         else
9794                                 {
9795                                 yy_cp = (yy_c_buf_p);
9796                                 goto yy_find_action;
9797                                 }
9798                         }
9799
9800                 else switch ( yy_get_next_buffer(  ) )
9801                         {
9802                         case EOB_ACT_END_OF_FILE:
9803                                 {
9804                                 (yy_did_buffer_switch_on_eof) = 0;
9805
9806                                 if ( surf_parse_wrap( ) )
9807                                         {
9808                                         /* Note: because we've taken care in
9809                                          * yy_get_next_buffer() to have set up
9810                                          * surf_parse_text, we can now set up
9811                                          * yy_c_buf_p so that if some total
9812                                          * hoser (like flex itself) wants to
9813                                          * call the scanner after we return the
9814                                          * YY_NULL, it'll still work - another
9815                                          * YY_NULL will get returned.
9816                                          */
9817                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
9818
9819                                         yy_act = YY_STATE_EOF(YY_START);
9820                                         goto do_action;
9821                                         }
9822
9823                                 else
9824                                         {
9825                                         if ( ! (yy_did_buffer_switch_on_eof) )
9826                                                 YY_NEW_FILE;
9827                                         }
9828                                 break;
9829                                 }
9830
9831                         case EOB_ACT_CONTINUE_SCAN:
9832                                 (yy_c_buf_p) =
9833                                         (yytext_ptr) + yy_amount_of_matched_text;
9834
9835                                 yy_current_state = yy_get_previous_state(  );
9836
9837                                 yy_cp = (yy_c_buf_p);
9838                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9839                                 goto yy_match;
9840
9841                         case EOB_ACT_LAST_MATCH:
9842                                 (yy_c_buf_p) =
9843                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
9844
9845                                 yy_current_state = yy_get_previous_state(  );
9846
9847                                 yy_cp = (yy_c_buf_p);
9848                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9849                                 goto yy_find_action;
9850                         }
9851                 break;
9852                 }
9853
9854         default:
9855                 YY_FATAL_ERROR(
9856                         "fatal flex scanner internal error--no action found" );
9857         } /* end of action switch */
9858                 } /* end of scanning one token */
9859 } /* end of surf_parse_lex */
9860
9861 /* yy_get_next_buffer - try to read in a new buffer
9862  *
9863  * Returns a code representing an action:
9864  *      EOB_ACT_LAST_MATCH -
9865  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
9866  *      EOB_ACT_END_OF_FILE - end of file
9867  */
9868 static int yy_get_next_buffer (void)
9869 {
9870         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
9871         register char *source = (yytext_ptr);
9872         register int number_to_move, i;
9873         int ret_val;
9874
9875         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
9876                 YY_FATAL_ERROR(
9877                 "fatal flex scanner internal error--end of buffer missed" );
9878
9879         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
9880                 { /* Don't try to fill the buffer, so this is an EOF. */
9881                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
9882                         {
9883                         /* We matched a single character, the EOB, so
9884                          * treat this as a final EOF.
9885                          */
9886                         return EOB_ACT_END_OF_FILE;
9887                         }
9888
9889                 else
9890                         {
9891                         /* We matched some text prior to the EOB, first
9892                          * process it.
9893                          */
9894                         return EOB_ACT_LAST_MATCH;
9895                         }
9896                 }
9897
9898         /* Try to read more data. */
9899
9900         /* First move last chars to start of buffer. */
9901         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
9902
9903         for ( i = 0; i < number_to_move; ++i )
9904                 *(dest++) = *(source++);
9905
9906         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
9907                 /* don't do the read, it's not guaranteed to return an EOF,
9908                  * just force an EOF
9909                  */
9910                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
9911
9912         else
9913                 {
9914                         yy_size_t num_to_read =
9915                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
9916
9917                 while ( num_to_read <= 0 )
9918                         { /* Not enough room in the buffer - grow it. */
9919
9920                         /* just a shorter name for the current buffer */
9921                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
9922
9923                         int yy_c_buf_p_offset =
9924                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
9925
9926                         if ( b->yy_is_our_buffer )
9927                                 {
9928                                 yy_size_t new_size = b->yy_buf_size * 2;
9929
9930                                 if ( new_size <= 0 )
9931                                         b->yy_buf_size += b->yy_buf_size / 8;
9932                                 else
9933                                         b->yy_buf_size *= 2;
9934
9935                                 b->yy_ch_buf = (char *)
9936                                         /* Include room in for 2 EOB chars. */
9937                                         surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
9938                                 }
9939                         else
9940                                 /* Can't grow it, we don't own it. */
9941                                 b->yy_ch_buf = 0;
9942
9943                         if ( ! b->yy_ch_buf )
9944                                 YY_FATAL_ERROR(
9945                                 "fatal error - scanner input buffer overflow" );
9946
9947                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
9948
9949                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
9950                                                 number_to_move - 1;
9951
9952                         }
9953
9954                 if ( num_to_read > YY_READ_BUF_SIZE )
9955                         num_to_read = YY_READ_BUF_SIZE;
9956
9957                 /* Read in more data. */
9958                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
9959                         (yy_n_chars), num_to_read );
9960
9961                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9962                 }
9963
9964         if ( (yy_n_chars) == 0 )
9965                 {
9966                 if ( number_to_move == YY_MORE_ADJ )
9967                         {
9968                         ret_val = EOB_ACT_END_OF_FILE;
9969                         surf_parse_restart(surf_parse_in  );
9970                         }
9971
9972                 else
9973                         {
9974                         ret_val = EOB_ACT_LAST_MATCH;
9975                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
9976                                 YY_BUFFER_EOF_PENDING;
9977                         }
9978                 }
9979
9980         else
9981                 ret_val = EOB_ACT_CONTINUE_SCAN;
9982
9983         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
9984                 /* Extend the array by 50%, plus the number we really need. */
9985                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
9986                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) surf_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
9987                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
9988                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
9989         }
9990
9991         (yy_n_chars) += number_to_move;
9992         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
9993         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
9994
9995         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
9996
9997         return ret_val;
9998 }
9999
10000 /* yy_get_previous_state - get the state just before the EOB char was reached */
10001
10002     static yy_state_type yy_get_previous_state (void)
10003 {
10004         register yy_state_type yy_current_state;
10005         register char *yy_cp;
10006     
10007         yy_current_state = (yy_start);
10008
10009         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
10010                 {
10011                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
10012                 if ( yy_accept[yy_current_state] )
10013                         {
10014                         (yy_last_accepting_state) = yy_current_state;
10015                         (yy_last_accepting_cpos) = yy_cp;
10016                         }
10017                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
10018                         {
10019                         yy_current_state = (int) yy_def[yy_current_state];
10020                         if ( yy_current_state >= 3503 )
10021                                 yy_c = yy_meta[(unsigned int) yy_c];
10022                         }
10023                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
10024                 }
10025
10026         return yy_current_state;
10027 }
10028
10029 /* yy_try_NUL_trans - try to make a transition on the NUL character
10030  *
10031  * synopsis
10032  *      next_state = yy_try_NUL_trans( current_state );
10033  */
10034     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
10035 {
10036         register int yy_is_jam;
10037         register char *yy_cp = (yy_c_buf_p);
10038
10039         register YY_CHAR yy_c = 1;
10040         if ( yy_accept[yy_current_state] )
10041                 {
10042                 (yy_last_accepting_state) = yy_current_state;
10043                 (yy_last_accepting_cpos) = yy_cp;
10044                 }
10045         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
10046                 {
10047                 yy_current_state = (int) yy_def[yy_current_state];
10048                 if ( yy_current_state >= 3503 )
10049                         yy_c = yy_meta[(unsigned int) yy_c];
10050                 }
10051         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
10052         yy_is_jam = (yy_current_state == 3502);
10053
10054                 return yy_is_jam ? 0 : yy_current_state;
10055 }
10056
10057 #ifndef YY_NO_INPUT
10058 #ifdef __cplusplus
10059     static int yyinput (void)
10060 #else
10061     static int input  (void)
10062 #endif
10063
10064 {
10065         int c;
10066     
10067         *(yy_c_buf_p) = (yy_hold_char);
10068
10069         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
10070                 {
10071                 /* yy_c_buf_p now points to the character we want to return.
10072                  * If this occurs *before* the EOB characters, then it's a
10073                  * valid NUL; if not, then we've hit the end of the buffer.
10074                  */
10075                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
10076                         /* This was really a NUL. */
10077                         *(yy_c_buf_p) = '\0';
10078
10079                 else
10080                         { /* need more input */
10081                         yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
10082                         ++(yy_c_buf_p);
10083
10084                         switch ( yy_get_next_buffer(  ) )
10085                                 {
10086                                 case EOB_ACT_LAST_MATCH:
10087                                         /* This happens because yy_g_n_b()
10088                                          * sees that we've accumulated a
10089                                          * token and flags that we need to
10090                                          * try matching the token before
10091                                          * proceeding.  But for input(),
10092                                          * there's no matching to consider.
10093                                          * So convert the EOB_ACT_LAST_MATCH
10094                                          * to EOB_ACT_END_OF_FILE.
10095                                          */
10096
10097                                         /* Reset buffer status. */
10098                                         surf_parse_restart(surf_parse_in );
10099
10100                                         /*FALLTHROUGH*/
10101
10102                                 case EOB_ACT_END_OF_FILE:
10103                                         {
10104                                         if ( surf_parse_wrap( ) )
10105                                                 return EOF;
10106
10107                                         if ( ! (yy_did_buffer_switch_on_eof) )
10108                                                 YY_NEW_FILE;
10109 #ifdef __cplusplus
10110                                         return yyinput();
10111 #else
10112                                         return input();
10113 #endif
10114                                         }
10115
10116                                 case EOB_ACT_CONTINUE_SCAN:
10117                                         (yy_c_buf_p) = (yytext_ptr) + offset;
10118                                         break;
10119                                 }
10120                         }
10121                 }
10122
10123         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
10124         *(yy_c_buf_p) = '\0';   /* preserve surf_parse_text */
10125         (yy_hold_char) = *++(yy_c_buf_p);
10126
10127         if ( c == '\n' )
10128                    
10129     surf_parse_lineno++;
10130 ;
10131
10132         return c;
10133 }
10134 #endif  /* ifndef YY_NO_INPUT */
10135
10136 /** Immediately switch to a different input stream.
10137  * @param input_file A readable stream.
10138  * 
10139  * @note This function does not reset the start condition to @c INITIAL .
10140  */
10141     void surf_parse_restart  (FILE * input_file )
10142 {
10143     
10144         if ( ! YY_CURRENT_BUFFER ){
10145         surf_parse_ensure_buffer_stack ();
10146                 YY_CURRENT_BUFFER_LVALUE =
10147             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
10148         }
10149
10150         surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
10151         surf_parse__load_buffer_state( );
10152 }
10153
10154 /** Switch to a different input buffer.
10155  * @param new_buffer The new input buffer.
10156  * 
10157  */
10158     void surf_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
10159 {
10160     
10161         /* TODO. We should be able to replace this entire function body
10162          * with
10163          *              surf_parse_pop_buffer_state();
10164          *              surf_parse_push_buffer_state(new_buffer);
10165      */
10166         surf_parse_ensure_buffer_stack ();
10167         if ( YY_CURRENT_BUFFER == new_buffer )
10168                 return;
10169
10170         if ( YY_CURRENT_BUFFER )
10171                 {
10172                 /* Flush out information for old buffer. */
10173                 *(yy_c_buf_p) = (yy_hold_char);
10174                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
10175                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
10176                 }
10177
10178         YY_CURRENT_BUFFER_LVALUE = new_buffer;
10179         surf_parse__load_buffer_state( );
10180
10181         /* We don't actually know whether we did this switch during
10182          * EOF (surf_parse_wrap()) processing, but the only time this flag
10183          * is looked at is after surf_parse_wrap() is called, so it's safe
10184          * to go ahead and always set it.
10185          */
10186         (yy_did_buffer_switch_on_eof) = 1;
10187 }
10188
10189 static void surf_parse__load_buffer_state  (void)
10190 {
10191         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
10192         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
10193         surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
10194         (yy_hold_char) = *(yy_c_buf_p);
10195 }
10196
10197 /** Allocate and initialize an input buffer state.
10198  * @param file A readable stream.
10199  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
10200  * 
10201  * @return the allocated buffer state.
10202  */
10203     YY_BUFFER_STATE surf_parse__create_buffer  (FILE * file, int  size )
10204 {
10205         YY_BUFFER_STATE b;
10206     
10207         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
10208         if ( ! b )
10209                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
10210
10211         b->yy_buf_size = size;
10212
10213         /* yy_ch_buf has to be 2 characters longer than the size given because
10214          * we need to put in 2 end-of-buffer characters.
10215          */
10216         b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2  );
10217         if ( ! b->yy_ch_buf )
10218                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
10219
10220         b->yy_is_our_buffer = 1;
10221
10222         surf_parse__init_buffer(b,file );
10223
10224         return b;
10225 }
10226
10227 /** Destroy the buffer.
10228  * @param b a buffer created with surf_parse__create_buffer()
10229  * 
10230  */
10231     void surf_parse__delete_buffer (YY_BUFFER_STATE  b )
10232 {
10233     
10234         if ( ! b )
10235                 return;
10236
10237         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
10238                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
10239
10240         if ( b->yy_is_our_buffer )
10241                 surf_parse_free((void *) b->yy_ch_buf  );
10242
10243         surf_parse_free((void *) b  );
10244 }
10245
10246 /* Initializes or reinitializes a buffer.
10247  * This function is sometimes called more than once on the same buffer,
10248  * such as during a surf_parse_restart() or at EOF.
10249  */
10250     static void surf_parse__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
10251
10252 {
10253         int oerrno = errno;
10254     
10255         surf_parse__flush_buffer(b );
10256
10257         b->yy_input_file = file;
10258         b->yy_fill_buffer = 1;
10259
10260     /* If b is the current buffer, then surf_parse__init_buffer was _probably_
10261      * called from surf_parse_restart() or through yy_get_next_buffer.
10262      * In that case, we don't want to reset the lineno or column.
10263      */
10264     if (b != YY_CURRENT_BUFFER){
10265         b->yy_bs_lineno = 1;
10266         b->yy_bs_column = 0;
10267     }
10268
10269         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
10270     
10271         errno = oerrno;
10272 }
10273
10274 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
10275  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
10276  * 
10277  */
10278     void surf_parse__flush_buffer (YY_BUFFER_STATE  b )
10279 {
10280         if ( ! b )
10281                 return;
10282
10283         b->yy_n_chars = 0;
10284
10285         /* We always need two end-of-buffer characters.  The first causes
10286          * a transition to the end-of-buffer state.  The second causes
10287          * a jam in that state.
10288          */
10289         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
10290         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
10291
10292         b->yy_buf_pos = &b->yy_ch_buf[0];
10293
10294         b->yy_at_bol = 1;
10295         b->yy_buffer_status = YY_BUFFER_NEW;
10296
10297         if ( b == YY_CURRENT_BUFFER )
10298                 surf_parse__load_buffer_state( );
10299 }
10300
10301 /** Pushes the new state onto the stack. The new state becomes
10302  *  the current state. This function will allocate the stack
10303  *  if necessary.
10304  *  @param new_buffer The new state.
10305  *  
10306  */
10307 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
10308 {
10309         if (new_buffer == NULL)
10310                 return;
10311
10312         surf_parse_ensure_buffer_stack();
10313
10314         /* This block is copied from surf_parse__switch_to_buffer. */
10315         if ( YY_CURRENT_BUFFER )
10316                 {
10317                 /* Flush out information for old buffer. */
10318                 *(yy_c_buf_p) = (yy_hold_char);
10319                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
10320                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
10321                 }
10322
10323         /* Only push if top exists. Otherwise, replace top. */
10324         if (YY_CURRENT_BUFFER)
10325                 (yy_buffer_stack_top)++;
10326         YY_CURRENT_BUFFER_LVALUE = new_buffer;
10327
10328         /* copied from surf_parse__switch_to_buffer. */
10329         surf_parse__load_buffer_state( );
10330         (yy_did_buffer_switch_on_eof) = 1;
10331 }
10332
10333 /** Removes and deletes the top of the stack, if present.
10334  *  The next element becomes the new top.
10335  *  
10336  */
10337 void surf_parse_pop_buffer_state (void)
10338 {
10339         if (!YY_CURRENT_BUFFER)
10340                 return;
10341
10342         surf_parse__delete_buffer(YY_CURRENT_BUFFER );
10343         YY_CURRENT_BUFFER_LVALUE = NULL;
10344         if ((yy_buffer_stack_top) > 0)
10345                 --(yy_buffer_stack_top);
10346
10347         if (YY_CURRENT_BUFFER) {
10348                 surf_parse__load_buffer_state( );
10349                 (yy_did_buffer_switch_on_eof) = 1;
10350         }
10351 }
10352
10353 /* Allocates the stack if it does not exist.
10354  *  Guarantees space for at least one push.
10355  */
10356 static void surf_parse_ensure_buffer_stack (void)
10357 {
10358         yy_size_t num_to_alloc;
10359     
10360         if (!(yy_buffer_stack)) {
10361
10362                 /* First allocation is just for 2 elements, since we don't know if this
10363                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
10364                  * immediate realloc on the next call.
10365          */
10366                 num_to_alloc = 1;
10367                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
10368                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
10369                                                                 );
10370                 if ( ! (yy_buffer_stack) )
10371                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
10372                                                                   
10373                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
10374                                 
10375                 (yy_buffer_stack_max) = num_to_alloc;
10376                 (yy_buffer_stack_top) = 0;
10377                 return;
10378         }
10379
10380         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
10381
10382                 /* Increase the buffer to prepare for a possible push. */
10383                 int grow_size = 8 /* arbitrary grow size */;
10384
10385                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
10386                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
10387                                                                 ((yy_buffer_stack),
10388                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
10389                                                                 );
10390                 if ( ! (yy_buffer_stack) )
10391                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
10392
10393                 /* zero only the new slots.*/
10394                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
10395                 (yy_buffer_stack_max) = num_to_alloc;
10396         }
10397 }
10398
10399 /** Setup the input buffer state to scan directly from a user-specified character buffer.
10400  * @param base the character buffer
10401  * @param size the size in bytes of the character buffer
10402  * 
10403  * @return the newly allocated buffer state object. 
10404  */
10405 YY_BUFFER_STATE surf_parse__scan_buffer  (char * base, yy_size_t  size )
10406 {
10407         YY_BUFFER_STATE b;
10408     
10409         if ( size < 2 ||
10410              base[size-2] != YY_END_OF_BUFFER_CHAR ||
10411              base[size-1] != YY_END_OF_BUFFER_CHAR )
10412                 /* They forgot to leave room for the EOB's. */
10413                 return 0;
10414
10415         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
10416         if ( ! b )
10417                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
10418
10419         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
10420         b->yy_buf_pos = b->yy_ch_buf = base;
10421         b->yy_is_our_buffer = 0;
10422         b->yy_input_file = 0;
10423         b->yy_n_chars = b->yy_buf_size;
10424         b->yy_is_interactive = 0;
10425         b->yy_at_bol = 1;
10426         b->yy_fill_buffer = 0;
10427         b->yy_buffer_status = YY_BUFFER_NEW;
10428
10429         surf_parse__switch_to_buffer(b  );
10430
10431         return b;
10432 }
10433
10434 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
10435  * scan from a @e copy of @a str.
10436  * @param yystr a NUL-terminated string to scan
10437  * 
10438  * @return the newly allocated buffer state object.
10439  * @note If you want to scan bytes that may contain NUL values, then use
10440  *       surf_parse__scan_bytes() instead.
10441  */
10442 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
10443 {
10444     
10445         return surf_parse__scan_bytes(yystr,strlen(yystr) );
10446 }
10447
10448 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
10449  * scan from a @e copy of @a bytes.
10450  * @param yybytes the byte buffer to scan
10451  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
10452  * 
10453  * @return the newly allocated buffer state object.
10454  */
10455 YY_BUFFER_STATE surf_parse__scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
10456 {
10457         YY_BUFFER_STATE b;
10458         char *buf;
10459         yy_size_t n;
10460         yy_size_t i;
10461     
10462         /* Get memory for full buffer, including space for trailing EOB's. */
10463         n = _yybytes_len + 2;
10464         buf = (char *) surf_parse_alloc(n  );
10465         if ( ! buf )
10466                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
10467
10468         for ( i = 0; i < _yybytes_len; ++i )
10469                 buf[i] = yybytes[i];
10470
10471         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
10472
10473         b = surf_parse__scan_buffer(buf,n );
10474         if ( ! b )
10475                 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
10476
10477         /* It's okay to grow etc. this buffer, and we should throw it
10478          * away when we're done.
10479          */
10480         b->yy_is_our_buffer = 1;
10481
10482         return b;
10483 }
10484
10485     static void yy_push_state (int  new_state )
10486 {
10487         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
10488                 {
10489                 yy_size_t new_size;
10490
10491                 (yy_start_stack_depth) += YY_START_STACK_INCR;
10492                 new_size = (yy_start_stack_depth) * sizeof( int );
10493
10494                 if ( ! (yy_start_stack) )
10495                         (yy_start_stack) = (int *) surf_parse_alloc(new_size  );
10496
10497                 else
10498                         (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size  );
10499
10500                 if ( ! (yy_start_stack) )
10501                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
10502                 }
10503
10504         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
10505
10506         BEGIN(new_state);
10507 }
10508
10509     static void yy_pop_state  (void)
10510 {
10511         if ( --(yy_start_stack_ptr) < 0 )
10512                 YY_FATAL_ERROR( "start-condition stack underflow" );
10513
10514         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
10515 }
10516
10517 #ifndef YY_EXIT_FAILURE
10518 #define YY_EXIT_FAILURE 2
10519 #endif
10520
10521 static void yy_fatal_error (yyconst char* msg )
10522 {
10523         (void) fprintf( stderr, "%s\n", msg );
10524         exit( YY_EXIT_FAILURE );
10525 }
10526
10527 /* Redefine yyless() so it works in section 3 code. */
10528
10529 #undef yyless
10530 #define yyless(n) \
10531         do \
10532                 { \
10533                 /* Undo effects of setting up surf_parse_text. */ \
10534         int yyless_macro_arg = (n); \
10535         YY_LESS_LINENO(yyless_macro_arg);\
10536                 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
10537                 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
10538                 (yy_hold_char) = *(yy_c_buf_p); \
10539                 *(yy_c_buf_p) = '\0'; \
10540                 surf_parse_leng = yyless_macro_arg; \
10541                 } \
10542         while ( 0 )
10543
10544 /* Accessor  methods (get/set functions) to struct members. */
10545
10546 /** Get the current line number.
10547  * 
10548  */
10549 int surf_parse_get_lineno  (void)
10550 {
10551         
10552     return surf_parse_lineno;
10553 }
10554
10555 /** Get the input stream.
10556  * 
10557  */
10558 FILE *surf_parse_get_in  (void)
10559 {
10560         return surf_parse_in;
10561 }
10562
10563 /** Get the output stream.
10564  * 
10565  */
10566 FILE *surf_parse_get_out  (void)
10567 {
10568         return surf_parse_out;
10569 }
10570
10571 /** Get the length of the current token.
10572  * 
10573  */
10574 yy_size_t surf_parse_get_leng  (void)
10575 {
10576         return surf_parse_leng;
10577 }
10578
10579 /** Get the current token.
10580  * 
10581  */
10582
10583 char *surf_parse_get_text  (void)
10584 {
10585         return surf_parse_text;
10586 }
10587
10588 /** Set the current line number.
10589  * @param line_number
10590  * 
10591  */
10592 void surf_parse_set_lineno (int  line_number )
10593 {
10594     
10595     surf_parse_lineno = line_number;
10596 }
10597
10598 /** Set the input stream. This does not discard the current
10599  * input buffer.
10600  * @param in_str A readable stream.
10601  * 
10602  * @see surf_parse__switch_to_buffer
10603  */
10604 void surf_parse_set_in (FILE *  in_str )
10605 {
10606         surf_parse_in = in_str ;
10607 }
10608
10609 void surf_parse_set_out (FILE *  out_str )
10610 {
10611         surf_parse_out = out_str ;
10612 }
10613
10614 int surf_parse_get_debug  (void)
10615 {
10616         return surf_parse__flex_debug;
10617 }
10618
10619 void surf_parse_set_debug (int  bdebug )
10620 {
10621         surf_parse__flex_debug = bdebug ;
10622 }
10623
10624 static int yy_init_globals (void)
10625 {
10626         /* Initialization is the same as for the non-reentrant scanner.
10627      * This function is called from surf_parse_lex_destroy(), so don't allocate here.
10628      */
10629
10630     /* We do not touch surf_parse_lineno unless the option is enabled. */
10631     surf_parse_lineno =  1;
10632     
10633     (yy_buffer_stack) = 0;
10634     (yy_buffer_stack_top) = 0;
10635     (yy_buffer_stack_max) = 0;
10636     (yy_c_buf_p) = (char *) 0;
10637     (yy_init) = 0;
10638     (yy_start) = 0;
10639
10640     (yy_start_stack_ptr) = 0;
10641     (yy_start_stack_depth) = 0;
10642     (yy_start_stack) =  NULL;
10643
10644 /* Defined in main.c */
10645 #ifdef YY_STDINIT
10646     surf_parse_in = stdin;
10647     surf_parse_out = stdout;
10648 #else
10649     surf_parse_in = (FILE *) 0;
10650     surf_parse_out = (FILE *) 0;
10651 #endif
10652
10653     /* For future reference: Set errno on error, since we are called by
10654      * surf_parse_lex_init()
10655      */
10656     return 0;
10657 }
10658
10659 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
10660 int surf_parse_lex_destroy  (void)
10661 {
10662     
10663     /* Pop the buffer stack, destroying each element. */
10664         while(YY_CURRENT_BUFFER){
10665                 surf_parse__delete_buffer(YY_CURRENT_BUFFER  );
10666                 YY_CURRENT_BUFFER_LVALUE = NULL;
10667                 surf_parse_pop_buffer_state();
10668         }
10669
10670         /* Destroy the stack itself. */
10671         surf_parse_free((yy_buffer_stack) );
10672         (yy_buffer_stack) = NULL;
10673
10674     /* Destroy the start condition stack. */
10675         surf_parse_free((yy_start_stack)  );
10676         (yy_start_stack) = NULL;
10677
10678     /* Reset the globals. This is important in a non-reentrant scanner so the next time
10679      * surf_parse_lex() is called, initialization will occur. */
10680     yy_init_globals( );
10681
10682     return 0;
10683 }
10684
10685 /*
10686  * Internal utility routines.
10687  */
10688
10689 #ifndef yytext_ptr
10690 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
10691 {
10692         register int i;
10693         for ( i = 0; i < n; ++i )
10694                 s1[i] = s2[i];
10695 }
10696 #endif
10697
10698 #ifdef YY_NEED_STRLEN
10699 static int yy_flex_strlen (yyconst char * s )
10700 {
10701         register int n;
10702         for ( n = 0; s[n]; ++n )
10703                 ;
10704
10705         return n;
10706 }
10707 #endif
10708
10709 void *surf_parse_alloc (yy_size_t  size )
10710 {
10711         return (void *) malloc( size );
10712 }
10713
10714 void *surf_parse_realloc  (void * ptr, yy_size_t  size )
10715 {
10716         /* The cast to (char *) in the following accommodates both
10717          * implementations that use char* generic pointers, and those
10718          * that use void* generic pointers.  It works with the latter
10719          * because both ANSI C and C++ allow castless assignment from
10720          * any pointer type to void*, and deal with argument conversions
10721          * as though doing an assignment.
10722          */
10723         return (void *) realloc( (char *) ptr, size );
10724 }
10725
10726 void surf_parse_free (void * ptr )
10727 {
10728         free( (char *) ptr );   /* see surf_parse_realloc() for (char *) cast */
10729 }
10730
10731 #define YYTABLES_NAME "yytables"
10732
10733 /* Element context stack lookup. */
10734 int surfxml_element_context(int i)
10735 {
10736   return (0<i && i<yy_start_stack_depth
10737           ? yy_start_stack[yy_start_stack_ptr - i]
10738           : 0);
10739 }
10740
10741 #ifdef FLEX_DEBUG
10742 void print_yy_stack(char* fmt, ...)
10743 {
10744   int i = 0; va_list ap; va_start(ap, fmt);
10745   vfprintf(stderr, fmt, ap);
10746   if (surfxml_statenames) {
10747       for (i=1; i<yy_start_stack_ptr; i++) {
10748           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
10749       }
10750       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
10751   }
10752   va_end(ap);
10753 }
10754
10755 void print_surfxml_bufferstack()
10756 {
10757     int i;
10758     fputs("Buffer: ", stderr);
10759     for (i = 0; i < blimit; i++) {
10760        if ( surfxml_bufferstack[i] == '\377' ) break;
10761          putc(surfxml_bufferstack[i], stderr);
10762     }
10763     putc('\n', stderr);
10764 }
10765
10766 static void debug_enter(int state, const char* statename) {
10767   yy_push_state(state);
10768   if (surf_parse__flex_debug) {
10769        print_yy_stack("--ENTER(%s) : ",statename);
10770        print_surfxml_bufferstack();
10771   }
10772 }
10773
10774 static void debug_leave(void) {
10775     if (surf_parse__flex_debug) {
10776         print_yy_stack("--LEAVE : ");
10777         print_surfxml_bufferstack();
10778     }
10779   yy_pop_state();
10780 }
10781
10782 static void debug_set(int state, const char* statename) {
10783   BEGIN(state);
10784   if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
10785 }
10786 #endif
10787
10788 static void cleanup(void)
10789 {
10790     if (surfxml_statenames) {
10791         free(surfxml_statenames);
10792         surfxml_statenames = NULL;
10793     }
10794     free(surfxml_bufferstack);
10795     surfxml_bufferstack = NULL;
10796
10797     free(indexstack);
10798     indexstack = NULL;
10799 }
10800
10801 static int fail(const char* fmt, ...)
10802 {
10803     int chars_left, used;
10804     va_list ap; va_start(ap, fmt);
10805 #ifdef FLEXML_yylineno
10806     used = sprintf(flexml_err_msg,
10807                    "Invalid XML (XML input line %d, state %d): ",
10808                    surf_parse_lineno, YY_START);
10809 #else
10810     used = sprintf(flexml_err_msg,
10811                    "Invalid XML (state %d): ",
10812                    YY_START);
10813 #endif
10814     chars_left = flexml_max_err_msg_size - used - 1;
10815     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
10816     va_end(ap);
10817
10818 #ifndef FLEXML_quiet_parser
10819     /* print directly to sdterr */
10820     fprintf(stderr, "%s\n", flexml_err_msg);
10821     flexml_err_msg[0] = '\0';
10822 #endif
10823
10824     cleanup();
10825
10826     return 1;
10827 }
10828