Fix for UBSan build
[platform/upstream/doxygen.git] / src / code.cpp
1
2 #line 3 "<stdout>"
3
4 #define  YY_INT_ALIGNED short int
5
6 /* A lexical scanner generated by flex */
7
8 #define yy_create_buffer codeYY_create_buffer
9 #define yy_delete_buffer codeYY_delete_buffer
10 #define yy_flex_debug codeYY_flex_debug
11 #define yy_init_buffer codeYY_init_buffer
12 #define yy_flush_buffer codeYY_flush_buffer
13 #define yy_load_buffer_state codeYY_load_buffer_state
14 #define yy_switch_to_buffer codeYY_switch_to_buffer
15 #define yyin codeYYin
16 #define yyleng codeYYleng
17 #define yylex codeYYlex
18 #define yylineno codeYYlineno
19 #define yyout codeYYout
20 #define yyrestart codeYYrestart
21 #define yytext codeYYtext
22 #define yywrap codeYYwrap
23 #define yyalloc codeYYalloc
24 #define yyrealloc codeYYrealloc
25 #define yyfree codeYYfree
26
27 #define FLEX_SCANNER
28 #define YY_FLEX_MAJOR_VERSION 2
29 #define YY_FLEX_MINOR_VERSION 5
30 #define YY_FLEX_SUBMINOR_VERSION 35
31 #if YY_FLEX_SUBMINOR_VERSION > 0
32 #define FLEX_BETA
33 #endif
34
35 /* First, we deal with  platform-specific or compiler-specific issues. */
36
37 /* begin standard C headers. */
38 #include <stdio.h>
39 #include <string.h>
40 #include <errno.h>
41 #include <stdlib.h>
42
43 /* end standard C headers. */
44
45 /* flex integer type definitions */
46
47 #ifndef FLEXINT_H
48 #define FLEXINT_H
49
50 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
51
52 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
53
54 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
55  * if you want the limit (max/min) macros for int types. 
56  */
57 #ifndef __STDC_LIMIT_MACROS
58 #define __STDC_LIMIT_MACROS 1
59 #endif
60
61 #include <inttypes.h>
62 typedef int8_t flex_int8_t;
63 typedef uint8_t flex_uint8_t;
64 typedef int16_t flex_int16_t;
65 typedef uint16_t flex_uint16_t;
66 typedef int32_t flex_int32_t;
67 typedef uint32_t flex_uint32_t;
68 typedef uint64_t flex_uint64_t;
69 #else
70 typedef signed char flex_int8_t;
71 typedef short int flex_int16_t;
72 typedef int flex_int32_t;
73 typedef unsigned char flex_uint8_t; 
74 typedef unsigned short int flex_uint16_t;
75 typedef unsigned int flex_uint32_t;
76 #endif /* ! C99 */
77
78 /* Limits of integral types. */
79 #ifndef INT8_MIN
80 #define INT8_MIN               (-128)
81 #endif
82 #ifndef INT16_MIN
83 #define INT16_MIN              (-32767-1)
84 #endif
85 #ifndef INT32_MIN
86 #define INT32_MIN              (-2147483647-1)
87 #endif
88 #ifndef INT8_MAX
89 #define INT8_MAX               (127)
90 #endif
91 #ifndef INT16_MAX
92 #define INT16_MAX              (32767)
93 #endif
94 #ifndef INT32_MAX
95 #define INT32_MAX              (2147483647)
96 #endif
97 #ifndef UINT8_MAX
98 #define UINT8_MAX              (255U)
99 #endif
100 #ifndef UINT16_MAX
101 #define UINT16_MAX             (65535U)
102 #endif
103 #ifndef UINT32_MAX
104 #define UINT32_MAX             (4294967295U)
105 #endif
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 codeYYrestart(codeYYin  )
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 262144
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 codeYYleng;
181
182 extern FILE *codeYYin, *codeYYout;
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     #define YY_LESS_LINENO(n)
189     
190 /* Return all but the first "n" matched characters back to the input stream. */
191 #define yyless(n) \
192         do \
193                 { \
194                 /* Undo effects of setting up codeYYtext. */ \
195         int yyless_macro_arg = (n); \
196         YY_LESS_LINENO(yyless_macro_arg);\
197                 *yy_cp = (yy_hold_char); \
198                 YY_RESTORE_YY_MORE_OFFSET \
199                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
200                 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */ \
201                 } \
202         while ( 0 )
203
204 #define unput(c) yyunput( c, (yytext_ptr)  )
205
206 #ifndef YY_STRUCT_YY_BUFFER_STATE
207 #define YY_STRUCT_YY_BUFFER_STATE
208 struct yy_buffer_state
209         {
210         FILE *yy_input_file;
211
212         char *yy_ch_buf;                /* input buffer */
213         char *yy_buf_pos;               /* current position in input buffer */
214
215         /* Size of input buffer in bytes, not including room for EOB
216          * characters.
217          */
218         yy_size_t yy_buf_size;
219
220         /* Number of characters read into yy_ch_buf, not including EOB
221          * characters.
222          */
223         yy_size_t yy_n_chars;
224
225         /* Whether we "own" the buffer - i.e., we know we created it,
226          * and can realloc() it to grow it, and should free() it to
227          * delete it.
228          */
229         int yy_is_our_buffer;
230
231         /* Whether this is an "interactive" input source; if so, and
232          * if we're using stdio for input, then we want to use getc()
233          * instead of fread(), to make sure we stop fetching input after
234          * each newline.
235          */
236         int yy_is_interactive;
237
238         /* Whether we're considered to be at the beginning of a line.
239          * If so, '^' rules will be active on the next match, otherwise
240          * not.
241          */
242         int yy_at_bol;
243
244     int yy_bs_lineno; /**< The line count. */
245     int yy_bs_column; /**< The column count. */
246     
247         /* Whether to try to fill the input buffer when we reach the
248          * end of it.
249          */
250         int yy_fill_buffer;
251
252         int yy_buffer_status;
253
254 #define YY_BUFFER_NEW 0
255 #define YY_BUFFER_NORMAL 1
256         /* When an EOF's been seen but there's still some text to process
257          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
258          * shouldn't try reading from the input source any more.  We might
259          * still have a bunch of tokens to match, though, because of
260          * possible backing-up.
261          *
262          * When we actually see the EOF, we change the status to "new"
263          * (via codeYYrestart()), so that the user can continue scanning by
264          * just pointing codeYYin at a new input file.
265          */
266 #define YY_BUFFER_EOF_PENDING 2
267
268         };
269 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
270
271 /* Stack of input buffers. */
272 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
273 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
274 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
275
276 /* We provide macros for accessing buffer states in case in the
277  * future we want to put the buffer states in a more general
278  * "scanner state".
279  *
280  * Returns the top of the stack, or NULL.
281  */
282 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
283                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
284                           : NULL)
285
286 /* Same as previous macro, but useful when we know that the buffer stack is not
287  * NULL or when we need an lvalue. For internal use only.
288  */
289 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
290
291 /* yy_hold_char holds the character lost when codeYYtext is formed. */
292 static char yy_hold_char;
293 static yy_size_t yy_n_chars;            /* number of characters read into yy_ch_buf */
294 yy_size_t codeYYleng;
295
296 /* Points to current character in buffer. */
297 static char *yy_c_buf_p = (char *) 0;
298 static int yy_init = 0;         /* whether we need to initialize */
299 static int yy_start = 0;        /* start state number */
300
301 /* Flag which is used to allow codeYYwrap()'s to do buffer switches
302  * instead of setting up a fresh codeYYin.  A bit of a hack ...
303  */
304 static int yy_did_buffer_switch_on_eof;
305
306 void codeYYrestart (FILE *input_file  );
307 void codeYY_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
308 YY_BUFFER_STATE codeYY_create_buffer (FILE *file,int size  );
309 void codeYY_delete_buffer (YY_BUFFER_STATE b  );
310 void codeYY_flush_buffer (YY_BUFFER_STATE b  );
311 void codeYYpush_buffer_state (YY_BUFFER_STATE new_buffer  );
312 void codeYYpop_buffer_state (void );
313
314 static void codeYYensure_buffer_stack (void );
315 static void codeYY_load_buffer_state (void );
316 static void codeYY_init_buffer (YY_BUFFER_STATE b,FILE *file  );
317
318 #define YY_FLUSH_BUFFER codeYY_flush_buffer(YY_CURRENT_BUFFER )
319
320 YY_BUFFER_STATE codeYY_scan_buffer (char *base,yy_size_t size  );
321 YY_BUFFER_STATE codeYY_scan_string (yyconst char *yy_str  );
322 YY_BUFFER_STATE codeYY_scan_bytes (yyconst char *bytes,yy_size_t len  );
323
324 void *codeYYalloc (yy_size_t  );
325 void *codeYYrealloc (void *,yy_size_t  );
326 void codeYYfree (void *  );
327
328 #define yy_new_buffer codeYY_create_buffer
329
330 #define yy_set_interactive(is_interactive) \
331         { \
332         if ( ! YY_CURRENT_BUFFER ){ \
333         codeYYensure_buffer_stack (); \
334                 YY_CURRENT_BUFFER_LVALUE =    \
335             codeYY_create_buffer(codeYYin,YY_BUF_SIZE ); \
336         } \
337         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
338         }
339
340 #define yy_set_bol(at_bol) \
341         { \
342         if ( ! YY_CURRENT_BUFFER ){\
343         codeYYensure_buffer_stack (); \
344                 YY_CURRENT_BUFFER_LVALUE =    \
345             codeYY_create_buffer(codeYYin,YY_BUF_SIZE ); \
346         } \
347         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
348         }
349
350 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
351
352 /* Begin user sect3 */
353
354 #define codeYYwrap(n) 1
355 #define YY_SKIP_YYWRAP
356
357 typedef unsigned char YY_CHAR;
358
359 FILE *codeYYin = (FILE *) 0, *codeYYout = (FILE *) 0;
360
361 typedef int yy_state_type;
362
363 extern int codeYYlineno;
364
365 int codeYYlineno = 1;
366
367 extern char *codeYYtext;
368 #define yytext_ptr codeYYtext
369
370 static yy_state_type yy_get_previous_state (void );
371 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
372 static int yy_get_next_buffer (void );
373 static void yy_fatal_error (yyconst char msg[]  );
374
375 /* Done after the current pattern has been matched and before the
376  * corresponding action - sets up codeYYtext.
377  */
378 #define YY_DO_BEFORE_ACTION \
379         (yytext_ptr) = yy_bp; \
380         codeYYleng = (yy_size_t) (yy_cp - yy_bp); \
381         (yy_hold_char) = *yy_cp; \
382         *yy_cp = '\0'; \
383         (yy_c_buf_p) = yy_cp;
384
385 #define YY_NUM_RULES 201
386 #define YY_END_OF_BUFFER 202
387 /* This struct is not used in this scanner,
388    but its presence is necessary. */
389 struct yy_trans_info
390         {
391         flex_int32_t yy_verify;
392         flex_int32_t yy_nxt;
393         };
394 static yyconst flex_int16_t yy_acclist[6524] =
395     {   0,
396        93,   93,   94,   94,16427,   82,   82,  145,  145,  121,
397       121,  202,  200,  201,  199,  201,    1,  200,  201,  197,
398       200,  201,  198,  200,  201,  200,  201,  200,  201,  200,
399       201,  200,  201,   93,  200,  201,   96,  200,  201,   93,
400       197,  200,  201,   93,  198,  200,  201,   93,  200,  201,
401        93,  200,  201,  200,  201,   93,  200,  201,   93,  200,
402       201,   94,  200,  201,   97,  200,  201,   94,  197,  200,
403       201,   94,  198,  200,  201,   94,  200,  201,   94,  200,
404       201,   94,  200,  201,   94,  200,  201,  103,  106,  200,
405       201,  107,  199,  201,    1,  103,  106,  200,  201,  105,
406
407       106,  200,  201,  103,  106,  197,  200,  201,  103,  106,
408       198,  200,  201,  103,  106,  200,  201,  103,  106,  200,
409       201,  103,  106,  200,  201,  103,  106,  200,  201,   23,
410        24,  200,  201,  199,  201,    1,   23,   24,  200,  201,
411        23,   24,  197,  200,  201,   23,   24,  198,  200,  201,
412        23,  200,  201,   23,   24,  200,  201,   23,  200,  201,
413        23,   24,  200,  201,   23,  200,  201,  166,  200,  201,
414       166,  200,  201,    1,  166,  200,  201,  166,  197,  200,
415       201,  166,  198,  200,  201,  200,  201,  200,  201,  166,
416       200,  201,  166,  200,  201,  200,  201,  169,  172,  200,
417
418       201,  171,  199,  201,    1,  170,  172,  200,  201,  169,
419       172,  197,  200,  201,  169,  172,  198,  200,  201,  169,
420       172,  200,  201,  169,  172,  200,  201,  169,  172,  200,
421       201,  169,  172,  200,  201,  169,  172,  200,  201,  176,
422       179,  200,  201,  178,  199,  201,    1,  176,  179,  200,
423       201,  176,  179,  197,  200,  201,  176,  179,  198,  200,
424       201,  179,  200,  201,  176,  179,  200,  201,  176,  179,
425       200,  201,  176,  179,  200,  201,  176,  179,  200,  201,
426        72,  200,  201,   91,  200,  201,  200,  201,   92,  200,
427       201,  197,  200,  201,   72,  198,  200,  201,  200,  201,
428
429         9,   72,  200,  201,  115,  200,  201,    9,   72,  200,
430       201,  112,  200,  201,   72,  200,  201,  134,  200,  201,
431       108,  200,  201,  109,  200,  201,  110,  200,  201,  200,
432       201, 8279,  200,  201,16470,16471,16473, 8279,  200,  201,
433     16470,16471,16473, 8279,  200,  201,16470,16471,16473, 8279,
434       200,  201,16470,16471,16473, 8279,  200,  201,16470,16471,
435     16473,  115,  197,  200,  201,   72,  200,  201,  133,  198,
436       200,  201, 8279,  200,  201,16470,16471,16473, 8279,  200,
437       201,16470,16471,16473, 8279,  200,  201,16470,16471,16473,
438      8279,  200,  201,16470,16471,16473, 8279,  200,  201,16470,
439
440     16471,16473, 8279,  200,  201,16470,16471,16473, 8279,  200,
441       201,16470,16471,16473, 8279,  200,  201,16470,16471,16473,
442      8279,  200,  201,16470,16471,16473, 8279,  200,  201,16470,
443     16471,16473, 8279,  200,  201,16470,16471,16473, 8279,  200,
444       201,16470,16471,16473, 8279,  200,  201,16470,16471,16473,
445      8279,  200,  201,16470,16471,16473, 8279,  200,  201,16470,
446     16471,16473, 8279,  200,  201,16470,16471,16473, 8279,  200,
447       201,16470,16471,16473, 8279,  200,  201,16470,16471,16473,
448      8279,  200,  201,16470,16471,16473, 8279,  200,  201,16470,
449     16471,16473,   27,  200,  201,   28,  200,  201,   72,  200,
450
451       201,  200,  201,   22,  200,  201,   72,  200,  201,  143,
452       200,  201,  200,  201,  143,  200,  201,  143,  200,  201,
453       142,  197,  200,  201,  144,  198,  200,  201,  143,  200,
454       201,  143,  200,  201,  141,  200,  201,  143,  200,  201,
455       143,  200,  201,  140,  200,  201,  143,  200,  201,  143,
456       200,  201,  143,  200,  201,  200,  201,  139,  200,  201,
457     16543,  139,  200,  201,16543,  139,  200,  201,16543,  139,
458       200,  201,16543,  143,  200,  201,  139,  200,  201,16543,
459       139,  200,  201,16543,  139,  200,  201,16543,  139,  200,
460       201,16543,  139,  200,  201,16543,  139,  200,  201,16543,
461
462       139,  200,  201,16543,  139,  200,  201,16543,  139,  200,
463       201,16543,  139,  200,  201,16543,  139,  200,  201,16543,
464       139,  200,  201,16543,  139,  200,  201,16543,  139,  200,
465       201,16543,  139,  200,  201,16543,  139,  200,  201,16543,
466       139,  200,  201,16543,  139,  200,  201,16543,  139,  200,
467       201,16543,  139,  200,  201,16543,  143,  200,  201,  143,
468       200,  201,  143,  200,  201,  180,  200,  201,    1,  180,
469       200,  201,   91,  180,  200,  201,  180,  200,  201,   92,
470       180,  200,  201,  144,  180,  198,  200,  201,  180,  200,
471       201,  180,  200,  201,  180,  200,  201,  180,  200,  201,
472
473      8306,  200,  201,16497,16498, 8306,  200,  201,16497,16498,
474      8306,  200,  201,16497,16498,  180,  197,  200,  201,  180,
475       200,  201,  180,  198,  200,  201, 8306,  200,  201,16497,
476     16498,   28,  180,  200,  201,  180,  200,  201, 8306,  180,
477       200,  201,16497,16498,  180,  200,  201,  180,  200,  201,
478       200,  201,  143,  200,  201,  163,  200,  201,  139,  200,
479       201,16545,16546,  139,  200,  201,16545,16546,  139,  200,
480       201,16545,16546,  139,  200,  201,16545,16546,  139,  200,
481       201,16545,16546,  139,  200,  201,16545,16546,  139,  200,
482       201,16545,16546,  139,  200,  201,16545,16546,  139,  200,
483
484       201,16545,16546,  139,  200,  201,16545,16546,  139,  200,
485       201,16545,16546,  139,  200,  201,16545,16546,  139,  200,
486       201,16545,16546,  139,  200,  201,16545,16546,  139,  200,
487       201,16545,16546,  139,  200,  201,16545,16546,  139,  200,
488       201,16545,16546,  139,  200,  201,16545,16546,  139,  200,
489       201,16545,16546,  139,  200,  201,16545,16546,  139,  200,
490       201,16545,16546,  139,  200,  201,16545,16546,  139,  200,
491       201,16545,16546,  139,  200,  201,16545,16546,  200,  201,
492        92,  200,  201,  155,  200,  201,  157,  200,  201,  157,
493       200,  201,  157,  200,  201,  157,  200,  201,  156,  200,
494
495       201,  200,  201,  200,  201,   31,  200,  201,   41,  200,
496       201,   30,  200,  201,   33,   34,  200,  201,   33,   34,
497       200,  201,   44,  200,  201,  200,  201,  200,  201,  200,
498       201,   42,  200,  201,   36,  200,  201,  200,  201,    8,
499       199,  201,  200,  201,    9,  200,  201,   37,  200,  201,
500       200,  201,   40,  200,  201,   40,  200,  201,   40,  200,
501       201,   40,  200,  201,   40,  200,  201,  200,  201,  200,
502       201,   51,  197,  200,  201,   54,  200,  201,  200,  201,
503        47,  200,  201,   48,  200,  201,  200,  201,   46,  200,
504       201,  200,  201,   46,  200,  201,   46,  200,  201,  200,
505
506       201,16427,   22,  200,  201,  200,  201,   52,  197,  200,
507       201,   53,  198,  200,  201,   49,  200,  201,   50,  200,
508       201,  200,  201,16405,    1,  200,  201,16405,  197,  200,
509       201,16405,  198,  200,  201,16405,  200,  201,16405,  200,
510       201,16405,  200,  201,16405,  200,  201,16405,   77,  200,
511       201,   78,  200,  201,  200,  201,  200,  201,  200,  201,
512       200,  201,  200,  201,  200,  201,  200,  201,  200,  201,
513       200,  201,  200,  201,  200,  201,  200,  201,  200,  201,
514       200,  201,  200,  201,  200,  201,   82,  200,  201,  200,
515       201,   79,  200,  201,   80,  200,  201,   80,  200,  201,
516
517       200,  201,   80,  200,  201,   80,  200,  201,   80,  200,
518       201,   80,  200,  201,   80,  200,  201,   80,  200,  201,
519        80,  200,  201,   80,  200,  201,   80,  200,  201,   80,
520       200,  201,   80,  200,  201,   80,  200,  201,  200,  201,
521       154,  200,  201,  145,  154,  200,  201,  145,  199,  201,
522         1,  154,  200,  201,  153,  154,  200,  201,  154,  200,
523       201,  154,  197,  200,  201,  154,  198,  200,  201,  154,
524       200,  201,  146,  154,  200,  201,  154,  200,  201,  150,
525       154,  200,  201,  150,  154,  200,  201,  150,  154,  200,
526       201,  150,  154,  200,  201,  150,  154,  200,  201,  150,
527
528       154,  200,  201,  148,  154,  200,  201,  145,  154,  200,
529       201,  154,  200,  201,   19,  200,  201,   20,  199,  201,
530         1,   19,  200,  201,   19,  200,  201,   19,  197,  200,
531       201,   19,  198,  200,  201,   19,  200,  201,   10,   19,
532       200,  201,   12,   19,  200,  201,   19,  200,  201,   18,
533        19,  200,  201,   18,   19,  200,  201,   18,   19,  200,
534       201,   18,   19,  200,  201,   18,   19,  200,  201,   18,
535        19,  200,  201,   18,   19,  200,  201,   18,   19,  200,
536       201,   18,   19,  200,  201,   18,   19,  200,  201,   18,
537        19,  200,  201,   18,   19,  200,  201,   18,   19,  200,
538
539       201,   18,   19,  200,  201,   19,  200,  201,   19,  200,
540       201,   19,  200,  201,   11,   19,  197,  200,  201,   17,
541        18,   19,  200,  201,   19,  200,  201,   16,   19,  198,
542       200,  201,   15,   18,   19,  200,  201,   15,   18,   19,
543       200,  201,   15,   18,   19,  200,  201,   15,   18,   19,
544       200,  201,   15,   18,   19,  200,  201,   15,   18,   19,
545       200,  201,   15,   18,   19,  200,  201,   15,   18,   19,
546       200,  201,   15,   18,   19,  200,  201,   15,   18,   19,
547       200,  201,   15,   18,   19,  200,  201,   15,   18,   19,
548       200,  201,   15,   18,   19,  200,  201,   15,   18,   19,
549
550       200,  201,  131,  200,  201,  132,  199,  201,    1,  131,
551       200,  201,  125,  131,  200,  201,  126,  131,  200,  201,
552       131,  200,  201,  127,  131,  197,  200,  201,  128,  131,
553       198,  200,  201,  131,  200,  201,  131,  200,  201,  118,
554       130,  131,  200,  201,  116,  131,  197,  200,  201,  117,
555       131,  198,  200,  201,  131,  200,  201,  131,  200,  201,
556       126,  131,  200,  201,  130,  131,  200,  201,16503,16504,
557       121,  131,  200,  201,    1,  121,  131,  200,  201,  123,
558       131,  200,  201,  126,  131,  200,  201,  121,  131,  197,
559       200,  201,  121,  131,  198,  200,  201,  121,  131,  200,
560
561       201,  121,  131,  200,  201,  121,  130,  131,  200,  201,
562       131,  200,  201,  121,  131,  200,  201,  121,  131,  200,
563       201,  200,  201,  199,  201,    1,  200,  201,  153,  200,
564       201,  200,  201,  152,  200,  201,  151,  200,  201,  151,
565       200,  201,  151,  200,  201,  151,  200,  201,  151,  200,
566       201,  151,  200,  201,  151,  200,  201,  151,  200,  201,
567       151,  200,  201,  151,  200,  201,  151,  200,  201,  151,
568       200,  201,  151,  200,  201,  151,  200,  201,  148,  200,
569       201,  200,  201,   62,  200,  201,   61,  199,  201,    1,
570        62,  200,  201,   62,  200,  201,   62,  197,  200,  201,
571
572        62,  198,  200,  201,   62,  200,  201,   62,  200,  201,
573        60,   62,  200,  201,   62,  200,  201,   62,  200,  201,
574       100,  101,  200,  201,  100,  102,  199,  201,    1,  100,
575       101,  200,  201,  100,  101,  197,  200,  201,  101,  198,
576       200,  201,  100,  101,  200,  201,  100,  101,  200,  201,
577       100,  101,  198,  200,  201,  100,  101,  200,  201,  100,
578       101,  200,  201,  194,  196,  195,  194,  196,   93,   93,
579        95,  194,   93,   95,  196,   96,  195,   98,   93,   93,
580        93,   95,  194,   93,   95,  196,   94,   94,   95,  194,
581        94,   95,  196,   94,  195,   94,   94,   94,   95,  194,
582
583        94,   95,  196,  103,  104,  103,  194,  103,  196,  103,
584       103,  103,  194,  103,  196,   24,  182,   26,  196,   24,
585       195,   25,   24,   26,  196,  166,  166,  167,  165,  194,
586       165,  196,  166,  195,  166,  165,  194,  165,  196,  169,
587       169,  169,  194,  169,  196,  169,  195,  168,  169,  169,
588       169,  194,  169,  196,  176,  175,  177,  194,  176,  177,
589       196,  176,  195,  176,  176,  177,  194,  176,  177,  196,
590      8279,16470,16471,16473, 8279,16470,16471,16473,   71,  112,
591       134, 8279, 8281, 8278, 8279,16470,16471,16473, 8279,16470,
592     16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473,
593
594      8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,
595     16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473,
596      8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,
597     16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473,
598      8279,16470,16471,16473, 8279,16470,16471,16473, 8262, 8279,
599     16452,16454,16470,16471,16473, 8279,16470,16471,16473, 8279,
600     16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,
601     16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,
602     16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,
603     16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,
604
605     16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,
606     16473, 8265, 8279,16457,16470,16471,16473, 8262, 8279,16452,
607     16454,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,
608     16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473,
609      8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,
610     16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473,
611      8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,
612     16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473,
613      8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,
614     16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473,
615
616      8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,
617     16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473,
618      8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,
619     16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473,
620      8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,
621     16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473,
622      8279,16470,16471,16473,   22,  143,  139,16543,  139,16543,
623       143,  144,  143,  143,  143,  158, 8351,  139,16543,  139,
624     16543,  139,16543,  139,16543,  139,16543,  139,16543,  139,
625     16543,  139,16543,  139,16543,  139,16543,  139,16543,  139,
626
627     16543,  139,16543,  139,16543,  139,16543,  139,16543,  139,
628     16543,  139,16543,  139,16543,  139,16543,  139,16543,  139,
629     16543,  139,16543,  139,16543,  139,16543,  139,16543,  139,
630     16543,  139,16543,  139,16543,  139,16543,  139,16543,   67,
631       139,16543,  139,16543,  139,16543,  139,16543,  139,16543,
632       139,16543,  139,16543,  139,16543,  139,16543,  139,16543,
633       139,16543,  139,16543,  139,16543,  139,16543,  139,16543,
634       139,16543,  139,16543,  139,16543,  139,16543,  139,16543,
635       139,16543,  139,16543,  139,16543,  139,16543,  139,16543,
636       139,16543,  139,16543,  139,16543,  139,16543,  139,16543,
637
638       139,16543, 8306,16497,16498, 8306, 8305, 8306,16497,16498,
639      8306,16497,16498, 8306,16497,16498, 8306,16497,16498,  139,
640     16545,16546,  163, 8353, 8354,  139,16545,16546,  139,16545,
641     16546,  139,16545,16546,  139,16545,16546,  139,16545,16546,
642       139,16545,16546,  139,16545,16546,  139,16545,16546,  139,
643     16545,16546,  139,16545,16546,  139,16545,16546,  139,16545,
644     16546,  139,16545,16546,  139,16545,16546,  139,16545,16546,
645       139,16545,16546,  139,16545,16546,  139,16545,16546,  139,
646     16545,16546,  139,16545,16546,  139,16545,16546,  139,16545,
647     16546,  139,16545,16546,  139,16545,16546,  139,16545,16546,
648
649       139,16545,16546,  139,16545,16546,  139,16545,16546,  139,
650     16545,16546,  139,16545,16546,  139,16545,16546,  139,16545,
651     16546,  139,16545,16546,  139,16545,16546,  139,16545,16546,
652       139,16545,16546,  139,16545,16546,  139,16545,16546,  139,
653     16545,16546,  139,16545,16546,  139,16545,16546,  139,16545,
654     16546,  139,16545,16546,  139,16545,16546,  139,16545,16546,
655       139,16545,16546,  139,16545,16546,  139,16545,16546,  139,
656     16545,16546,  139,16545,16546,  139,16545,16546,  139,16545,
657     16546,  139,16545,16546,  139,16545,16546,  139,16545,16546,
658       139,16545,16546,  139,16545,16546,  139,16545,16546,  139,
659
660     16545,16546,  139,16545,16546,  139,16545,16546,  157,  157,
661       157,  157,   41,   44,   33,   34,   31,   41,   33,   34,
662        33,   34,   44,   42,   36,   36,   40,   40,   40,   40,
663        40,   40,   46,   46,   46,   46,   46,16427,   22, 8235,
664      8235,16405, 8213,  194,16405,  196,16405, 8213,  195,16405,
665     16405,  194,16405,  196,16405, 8265,16457,   80,   82,   80,
666        80,   80,   80,   80,   80,   80,   80,   80,   80,   80,
667        80,   80,   80,   80,   80,   80,   80,  145,  148,  145,
668       150,  150,  150,  150,  150,  150,  150,  145,   18,   18,
669        18,   18,   18,   18,   18,   18, 8265,16457,   18,   18,
670
671        18,   18,   18,   18,   18,   18,   18,   18,   17,   18,
672        17,   18,   13,   15,   18,   15,   18,   15,   18,   15,
673        18,   15,   18,   15,   18,   15,   18,   14,   15,   18,
674        15,   18,   15,   18,   15,   18,   15,   18,   15,   18,
675        15,   18,   15,   18,   15,   18,   15,   18,   15,   18,
676       118,  130,  125,  195,  118,  130,  130,16503,16504,  130,
677     16503,16504, 8312, 8311,  121,  130,  121,  194,  121,  196,
678       129,  195,  121,  130,  122,  121,  121,  121,  194,  121,
679       196,  151,  151,  151,  151,  151,  151,  151,  151,  151,
680       151,  151,  151,  151,  151,  151,  151,  151,  151,  151,
681
682       151,  151,   60,   60,  100,  100,  100,   99,  100,  194,
683       100,  196,  100,  195,  100,  100,  100,  194,  100,  196,
684        93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
685        93,   94,   94,   94,   94,   94,   94,   94,   94,   94,
686        94,   94,  103,  103,  103,  103,  103,  103,  103,  103,
687       103,  103,  103,  169,  169,  169,  169,  169,  169,  169,
688       169,  169,  169,  169,  174,  176,  176,  176,  176, 8279,
689     16470,16471,16473,  111,  111, 8280,16472,  135, 8277,16469,
690      8279,16470,16471,16473, 8279,16470,16471,16473,   90, 8279,
691      8279,16470,16471,16473,16473, 8279,16470,16471,16473, 8279,
692
693     16470,16471,16473, 8279,16470,16471,16473, 8257, 8279,16449,
694     16450,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,
695     16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473,
696      8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,
697     16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473,
698      8279,16470,16471,16473,   69,   69, 8262, 8279,   69, 8260,
699        69, 8281,   69, 8278,   69,   69,   69, 8279,16470,16471,
700     16473,   69, 8279,16470,16471,16473, 8279,16470,16471,16473,
701      8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,
702     16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473,
703
704      8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,
705     16471,16473, 8262, 8279,16452,16454,16470,16471,16473, 8279,
706     16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,
707     16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,
708     16470,16471,16473, 8265, 8279, 8279,16470,16471,16473, 8279,
709     16470,16471,16473, 8265, 8279,16457,16470,16471,16473, 8279,
710     16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,
711     16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,
712     16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,
713     16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,
714
715     16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,
716     16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,
717     16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,
718     16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,
719     16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,
720     16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,
721     16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,
722     16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,
723     16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,
724     16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,
725
726     16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,
727     16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,
728     16470,16471,16473, 8279,16470,16471,16473, 8279, 8279,16470,
729     16471,16473,  139,16543,16544,  139,  139,16543,  139,16543,
730       139,16543,  139,16543,  139,16543,  139,16543,  139,16543,
731       139,16543,  139,16543,  139,16543,  139,16543,  139,16543,
732       139,16543,  139,16543,  138,  138,  138,  158,  138,  138,
733      8351,  138,  138,  139,16543,  138,  139,16543,  139,16543,
734       139,16543,  139,16543,  139,16543,  139,16543,  139,16543,
735       139,16543,  139,16543,  139,16543,  139,16543,  139,16543,
736
737       139,16543,  139,16543,  139,16543,  139,16543,  137,  137,
738       137,  158,  137,  137, 8351,  137,  137,  137,  139,16543,
739       139,16543,   67,   67,  139,16543,  139,16543,  139,16543,
740       139,16543,  139,16543,  139,16543,  139,16543,  139,16543,
741       139,16543,  139,16543,  139,16543,  139,16543,  139,16543,
742       139,16543,  139,16543,  139,16543,  139,16543,  139,16543,
743       139,16543,  139,16543,  139,16543,  139,16543,  139,16543,
744       139,16543,  139,16543,  139,16543,  139,16543,  139,16543,
745       139,16543,  139,16543,  139,16543,  139,16543,  139,16543,
746       139,16543,  139,16543,  139,16543,  139,16543,  139,16543,
747
748       139,16543,  139,16543,16497, 8306, 8306,16497,16498,  139,
749     16545,16546,  139,16545,16546,  139,16545,16546,  139,16545,
750     16546,  139,16545,16546,  139,16545,16546,  139,16545,16546,
751       139,16545,16546,  139,16545,16546,  139,16545,16546,  139,
752     16545,16546,  139,16545,16546,  139,16545,16546,  139,16545,
753     16546,  138,  138,  138, 8353,  138,  138, 8354,  139,16545,
754     16546,  138,  139,16545,16546,  139,16545,16546,  139,16545,
755     16546,  139,16545,16546,  139,16545,16546,  139,16545,16546,
756       139,16545,16546,  139,16545,16546,  139,16545,16546,  139,
757     16545,16546,  139,16545,16546,  139,16545,16546,  139,16545,
758
759     16546,  139,16545,16546,  139,16545,16546,  137,  137,  137,
760      8353,  137,  137, 8354,  137,  139,16545,16546,  139,16545,
761     16546,  139,16545,16546,  139,16545,16546,  139,16545,16546,
762       139,16545,16546,  139,16545,16546,  139,16545,16546,  139,
763     16545,16546,  139,16545,16546,  139,16545,16546,  139,16545,
764     16546,  139,16545,16546,  139,16545,16546,  139,16545,16546,
765       139,16545,16546,  139,16545,16546,  139,16545,16546,  139,
766     16545,16546,  139,16545,16546,  139,16545,16546,  139,16545,
767     16546,  139,16545,16546,  139,16545,16546,  139,16545,16546,
768       139,16545,16546,  139,16545,16546,  139,16545,16546,  139,
769
770     16545,16546,  139,16545,16546,  139,16545,16546,  139,16545,
771     16546,  139,16545,16546,  139,16545,16546,  139,16545,16546,
772       139,16545,16546,  139,16545,16546,  139,16545,16546,  139,
773     16545,16546,  139,16545,16546,  139,16545,16546,   34,   33,
774        34,   36,   40,   40,   40,   40,   46,   46,   46,   46,
775      8235, 8235, 8235,16405,16405,16405,16405,16405,16405,16405,
776     16405,16405,16405,16405, 8265, 8277,16469,   80,   80,   80,
777        80,   80,  137,  137,  137,  137,  137,   80,  137,   80,
778        80,   80,   80,   80,   80,   80,   80,   80,   80,   80,
779       150,  150,  150,  149,  150,  150,   18,   18,   18,   18,
780
781        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
782        15,   18,   15,   18,   15,   18,   15,   18,   15,   18,
783        15,   18,   15,   18,   15,   18,   15,   18,   15,   18,
784        15,   18,   15,   18,   15,   18,   15,   18,  124,  130,
785       121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
786       121,  151,  151,  151,  151,  151,  137,  151,  151,  151,
787       151,  151,  151,  151,  151,  151,  151,  151,  151,  151,
788       151,  100,  100,   99,  100,  100,  100,  100,  100,  100,
789       100,  100,  100,  100,  100,  192,  193,  188,  191,  192,
790       186,  187,  188,   93,  192,   93,   93,  193,   93,   93,
791
792        93,   93,   93,  191,  192,   93,  186,   93,   93,   94,
793       192,   94,   94,  193,   94,   94,   94,   94,   94,  191,
794       192,   94,  186,   94,   94,  103,  192,  103,  103,  193,
795       103,  103,  103,  103,  103,  191,  192,  103,  186,  103,
796       103,  164,  193,  169,  192,  169,  169,  192,  169,  193,
797       169,  169,  169,  169,  169,  169,  191,  192,  169,  191,
798       192,  169,  186,  169,  169,  169,  174,  176,  176,  176,
799       176, 8279,16470,16471,16473, 8280,   29, 8257,16449,16450,
800      8262,16452,16454, 8277, 8279,16470,16471,16473, 8279,16470,
801     16471,16473, 8277,16469,16473,16473, 8279,16470,16471,16473,
802
803      8279,16470,16471,16473, 8279,16470,16471,16473,   64,   64,
804      8257, 8279,   64,   64, 8258, 8281,   64, 8278,   64,   64,
805        64,   64, 8279,16470,16471,16473, 8265, 8279,16457,16470,
806     16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473,
807      8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,
808     16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473,
809      8262, 8279, 8260, 8281, 8279,16470,16471,16473, 8279,16470,
810     16471,16473, 8257, 8279,16449,16450,16470,16471,16473, 8279,
811     16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,
812     16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,
813
814     16470,16471,16473,   69, 8262, 8279, 8279,16470,16471,16473,
815      8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,
816     16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473,
817      8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,
818     16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473,
819      8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,
820     16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473,
821      8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,
822     16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473,
823      8279,16470,16471,16473, 8279,16470,16471,16473, 8279, 8279,
824
825     16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,
826     16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,
827     16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,
828     16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,
829     16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,
830     16473, 8257, 8279,16449,16450,16470,16471,16473, 8279,16470,
831     16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473,
832      8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,
833     16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473,
834      8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,
835
836     16471,16473,  139,16543,16544, 8352,  139,  139,16543,  139,
837     16543,  139,16543,  136,  136,  136,  158,  136,  136, 8351,
838       136,  136,  136,  139,16543,  139,16543,  139,16543,  139,
839     16543,  139,16543,  139,16543,  139,16543,  139,16543,  139,
840     16543,  139,16543,  139,16543,  139,16543,  139,16543,  139,
841     16543,  139,16543,  139,16543,  138,  139,16543,  139,16543,
842       139,16543,  139,16543,  139,16543,  139,16543,  139,16543,
843       139,16543,  139,16543,  139,16543,  139,16543,  139,16543,
844       139,16543,  139,16543,  139,16543,  139,16543,  139,16543,
845       139,16543,  139,16543,  139,16543,  139,16543,  139,16543,
846
847       139,16543,  139,16543,  139,16543,  139,16543,  139,16543,
848       139,16543,  139,16543,  139,16543,  139,16543,  139,16543,
849       139,16543,  139,16543,  139,16543,  139,16543,  139,16543,
850       139,16543,  139,16543,  139,16543,  139,16543,  139,16543,
851       139,16543,  139,16543,16497,16497,  139,16545,16546,  139,
852     16545,16546,  139,16545,16546,  136,  136,  136, 8353,  136,
853       136, 8354,  136,  139,16545,16546,  139,16545,16546,  139,
854     16545,16546,  139,16545,16546,  139,16545,16546,  139,16545,
855     16546,  139,16545,16546,  139,16545,16546,  139,16545,16546,
856       139,16545,16546,  139,16545,16546,  139,16545,16546,  139,
857
858     16545,16546,  139,16545,16546,  139,16545,16546,  138,  139,
859     16545,16546,  139,16545,16546,  139,16545,16546,  139,16545,
860     16546,  139,16545,16546,  139,16545,16546,  139,16545,16546,
861       139,16545,16546,  139,16545,16546,  139,16545,16546,  139,
862     16545,16546,  139,16545,16546,  139,16545,16546,  139,16545,
863     16546,  139,16545,16546,  139,16545,16546,  139,16545,16546,
864       139,16545,16546,  139,16545,16546,  139,16545,16546,  139,
865     16545,16546,  139,16545,16546,  139,16545,16546,  139,16545,
866     16546,  139,16545,16546,  139,16545,16546,  139,16545,16546,
867       139,16545,16546,  139,16545,16546,  139,16545,16546,  139,
868
869     16545,16546,  139,16545,16546,  139,16545,16546,  139,16545,
870     16546,  139,16545,16546,  139,16545,16546,  139,16545,16546,
871       139,16545,16546,  139,16545,16546,  139,16545,16546,  139,
872     16545,16546,  139,16545,16546,   35,   33,   34,   33,   34,
873        36,   29,   40,   40,   40,   40,   46,   46,   46,   46,
874      8235, 8235, 8235,  192,16405, 8213,  192,16405,  193,16405,
875     16405,16405, 8213,16405,16405,  191,  192,16405, 8213,  191,
876       192,  186,16405,16405, 8213,16405, 8265,16457,   80, 8277,
877        80,   80,   80,   80,   80,   80,   80,   80,   80,   80,
878        80,   80,   80,  150,  150,  150,  150,   18, 8265,16457,
879
880        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
881        14,   15,   18,   15,   18,   15,   18,   15,   18,   15,
882        18,   15,   18,   15,   18,   15,   18,   15,   18,   15,
883        18,   15,   18,  124,  121,  192,  121,  121,  193,  121,
884       121,  121,  121,  121,  191,  192,  121,  186,  121,  121,
885       151,  151,  151,  151,  151,  151,  151,  151,  151,  151,
886       151,  151,  151,  151,  151,   60,  100,  100,  100,  100,
887        99,  100,  192,  100,  100,  193,  100,  100,  100,  188,
888       100,  100,  100,  191,  192,  100,  186,  100,  100,  187,
889       188,  100,  190,  184,  181,  191,  187,  185,   93,   93,
890
891       191,   93,   93,   94,   94,  191,   94,   94,  103,  103,
892       191,  103,  103,  190,  182,  190,  184,  181,  182,  169,
893       168,  188,  169,  191,  169,  191,  169,  169,  168,  187,
894       188,  169,  169,  176,  176, 8279,16470,16471,16473,   64,
895      8257,   64,   64, 8258,   69, 8262,   69, 8260,   69,16473,
896     16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8277,
897     16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,
898     16470,16471,16473, 8257, 8279, 8258, 8281, 8279,16470,16471,
899     16473, 8257, 8279,16449,16450,16470,16471,16473, 8257, 8279,
900     16449,16450,16470,16471,16473, 8279,16470,16471,16473, 8279,
901
902     16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,
903     16473, 8279,16470,16471,16473,   64, 8257, 8279, 8197, 8279,
904     16389,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,
905     16471,16473, 8257, 8279,16449,16450,16470,16471,16473, 8279,
906     16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,
907     16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,
908     16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,
909     16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,
910     16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,
911     16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,
912
913     16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,
914     16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,
915     16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,
916     16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,
917     16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,
918     16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,
919     16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,
920     16473, 8279,16470,16471,16473,   64,   63,   64, 8262, 8279,
921     16452,16454,16470,16471,16473, 8279,16470,16471,16473, 8279,
922     16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,
923
924     16473, 8279,16470,16471,16473, 8257, 8279,16449,16450,16470,
925     16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473,
926      8279,16470,16471,16473,  139,16543,  139,  139,16543,  139,
927     16543,  139,16543,  139,16543,  139,16543,  139,16543,  139,
928     16543,  139,16543,  139,16543,  139,16543,  139,16543,  139,
929     16543,  139,16543,  139,16543,  139,16543,  139,16543,  139,
930     16543,  139,16543,  139,16543,  139,16543,  139,16543,  139,
931     16543,  139,16543,  139,16543,  139,16543,  139,16543,  139,
932     16543,  139,16543,  139,16543,  139,16543,  139,16543,  139,
933     16543,  139,16543,  139,16543,  139,16543,  139,16543,  139,
934
935     16543,  139,16543,  139,16543,  139,16543,  139,16543,  139,
936     16543,  139,16543,  139,16543,  136,   63,  136, 8351,  139,
937     16543,  139,16543,  139,16543,  139,16543,  139,16543,  139,
938     16543,  139,16543,  139,16543,  139,16543,16497,  139,16545,
939     16546,  139,16545,16546,  139,16545,16546,  139,16545,16546,
940       139,16545,16546,  139,16545,16546,  139,16545,16546,  139,
941     16545,16546,  139,16545,16546,  139,16545,16546,  139,16545,
942     16546,  139,16545,16546,  139,16545,16546,  139,16545,16546,
943       139,16545,16546,  139,16545,16546,  139,16545,16546,  139,
944     16545,16546,  139,16545,16546,  139,16545,16546,  139,16545,
945
946     16546,  139,16545,16546,  139,16545,16546,  139,16545,16546,
947       139,16545,16546,  139,16545,16546,  139,16545,16546,  139,
948     16545,16546,  139,16545,16546,  139,16545,16546,  139,16545,
949     16546,  139,16545,16546,  139,16545,16546,  139,16545,16546,
950       139,16545,16546,  139,16545,16546,  139,16545,16546,  139,
951     16545,16546,  139,16545,16546,  139,16545,16546,  139,16545,
952     16546,  139,16545,16546,  139,16545,16546,  139,16545,16546,
953       139,16545,16546,  139,16545,16546,  139,16545,16546,  139,
954     16545,16546,  139,16545,16546,  139,16545,16546,   33,   33,
955        34,   40,   40,   40,   40,   46,   46,   46,   46, 8235,
956
957      8235, 8235,16405,  191,16405, 8213,  191,16405, 8213,16405,
958      8213,   76,   80,   80,   80,   81,   80,   80,   80,   80,
959        80,   80,   80,   80,   80,  150,16531,  150,  150,  150,
960        18,   18,   18,   18,   18,   18,   18,   18,   18,   15,
961        18,   15,   18,   15,   18,   15,   18,   15,   18,   15,
962        18,   15,   18,   15,   18,   15,   18,  121,  121,  191,
963       121,  121,  151,  151,  151,  151,  151,  151,  151,  151,
964       151,  151,  151,  151,  151,   60,  100,  190,  100,  184,
965       100,  100,  181,  100,   99,  100,  100,  191,  100,  100,
966       187,  100,  100,  185,  183,   93,   94,  103,  182,  183,
967
968       169,  168,  187,  168,  185,   63, 8257,16449,16450, 8257,
969      8258, 8262, 8260, 8277,16469,16473, 8277,16469,16473,16473,
970     16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,
971     16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,
972     16473, 8279,16470,16471,16473,    6,   64, 8257, 8279, 8279,
973     16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,
974     16473, 8279,16470,16471,16473, 8257, 8279, 8197, 8279, 8197,
975      8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,
976     16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473,
977      8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,
978
979     16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473,
980      8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,
981     16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473,
982      8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,
983     16471,16473, 8257, 8279,16449,16450,16470,16471,16473, 8279,
984     16470,16471,16473, 8279,16470,16471,16473, 8257, 8279,16449,
985     16450,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,
986     16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473,
987      8279,16470,16471,16473, 8279,16470,16471,16473,   64, 8257,
988      8279,   64, 8279,16470,16471,16473, 8279,16470,16471,16473,
989
990      8279,16470,16471,16473,   63, 8351,  139,16543,  139,16543,
991       139,16543,  139,16543,  139,16543,  139,16543,  139,16543,
992       139,16543,  139,16543,  139,16543,  139,16543,  139,16543,
993       139,16543,  139,16543,  139,16543,  139,16543,  139,16543,
994       139,16543,  139,16543,  139,16543,  139,16543,  139,16543,
995       139,16543,  139,16543,  139,16543,  139,16543,  139,16543,
996       139,16543,  139,16543,  139,16543,  139,16543,  139,16543,
997       139,16543,  139,16543,  139,16545,16546,  139,16545,16546,
998       139,16545,16546,  139,16545,16546,  139,16545,16546,  139,
999     16545,16546,  139,16545,16546,  139,16545,16546,  139,16545,
1000
1001     16546,  139,16545,16546,  139,16545,16546,  139,16545,16546,
1002       139,16545,16546,  139,16545,16546,  139,16545,16546,  139,
1003     16545,16546,  139,16545,16546,  139,16545,16546,  139,16545,
1004     16546,  139,16545,16546,  139,16545,16546,  139,16545,16546,
1005       139,16545,16546,  139,16545,16546,  139,16545,16546,  139,
1006     16545,16546,  139,16545,16546,  139,16545,16546,  139,16545,
1007     16546,  139,16545,16546,   33,   34,   40,   40,   40,   40,
1008     16423,   46,   46,   45,   46,   46, 8235, 8235, 8235,16405,
1009      8277,16469,   80,   81,   80,   80,   80,   80, 8339,  150,
1010       150,  150,  150,  150,  150,  150,   18,   18,   18,   18,
1011
1012        15,   18,   15,   18,   15,   18,   15,   18,  121,  151,
1013       151,  151,  151,  151,  151,  151,  151,  151,  151,  100,
1014       100,  100,  100,  183,   99,  100,   93,   94,  103,  169,
1015       173,   63, 8277, 8277,16469,16473, 8277,16469,16473,16473,
1016      8279,16470,16471,16473, 8279,16470,16471,16473, 8277,16469,
1017     16473, 8279,16470,16471,16473, 8279,16470,16471,16473,    6,
1018      8257, 8279, 8279,16470,16471,16473, 8279,16470,16471,16473,
1019      8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,
1020     16471,16473, 8257, 8279,16449,16450,16470,16471,16473, 8279,
1021     16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,
1022
1023     16473, 8257, 8265, 8279,16449,16450,16457,16470,16471,16473,
1024      8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,
1025     16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473,
1026      8279,16470,16471,16473,   64, 8257, 8279, 8279,16470,16471,
1027     16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,
1028     16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,
1029     16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8257,
1030      8279, 8279,16470,16471,16473,  139,16543,  139,16543,  139,
1031     16543,  139,16543,  139,16543,  139,16543,  139,16543,  139,
1032     16543,  139,16543,  139,16543,  139,16543,  139,16543,  139,
1033
1034     16543,  139,16543,  139,16543,  139,16543,  139,16543,  139,
1035     16543,  139,16543,  139,16543,  139,16543,  139,16543,  139,
1036     16545,16546,  139,16545,16546,  139,16545,16546,  139,16545,
1037     16546,  139,16545,16546,  139,16545,16546,  139,16545,16546,
1038       139,16545,16546,  139,16545,16546,  139,16545,16546,  139,
1039     16545,16546,  139,16545,16546,  139,16545,16546,  139,16545,
1040     16546,  139,16545,16546,  139,16545,16546,  139,16545,16546,
1041       139,16545,16546,   33,   34,   40,   38,   40,   40, 8231,
1042        45,   46, 8235, 8235, 8235,   45,16405, 8277,16469,   80,
1043        80,  150,  150,  150,  150,  150,  150,  150,   18,   15,
1044
1045        18,  121,  151,  151,  151,  151,  100,   99,  100,   93,
1046        93,   94,   94,  103,  103,  169,  169,  169,  174,16468,
1047      8277,16469,16473,16473, 8279,16470,16471,16473, 8279,16470,
1048     16471,16473, 8277, 8277,16469,16473, 8279,16470,16471,16473,
1049      8279,16470,16471,16473,   58,   64,   58,   64, 8257, 8279,
1050        58,   64,   58,   64, 8258, 8281,   58,   64, 8278,   58,
1051        64,   58,   64,   58,   64,   58, 8279,16470,16471,16473,
1052        58,   64, 8279,16470,16471,16473, 8279,16470,16471,16473,
1053      8279,16470,16471,16473,   64, 8257, 8265, 8279, 8257, 8279,
1054     16449,16450,16470,16471,16473,    7, 8279,    7, 8279, 8279,
1055
1056     16470,16471,16473, 8257, 8279, 8279,16470,16471,16473, 8279,
1057     16470,16471,16473, 8279,16470,16471,16473, 8257, 8279,16449,
1058     16450,16470,16471,16473, 8279,16470,16471,16473,    2,  139,
1059     16543,  139,16543,  139,16543,  136,  137,  136,  137,  136,
1060       137,  158,  136,  137,  136,  137, 8351,  136,  137,  136,
1061       137,  136,  137,  139,16543,  139,16543,  139,16543,  139,
1062     16543,  139,16543,  139,16543,  139,16545,16546,  136,  137,
1063       136,  137,  136,  137, 8353,  136,  137,  136,  137, 8354,
1064       136,  137,  139,16545,16546,  139,16545,16546,  139,16545,
1065     16546,  139,16545,16546,   33,   34,   40,   46, 8235,16405,
1066
1067      8213,16405,   58,  150,  150,  150,  150,  150,  121,  121,
1068        99,  100,  100,   93,   94,  103,  169, 8276,16468,16468,
1069      8257,16449,16450, 8277,16469,16473,16473, 8279,16470,16471,
1070     16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,
1071     16470,16471,16473, 8257, 8279,   74, 8277,16469, 8279,16470,
1072     16471,16473, 8257, 8265, 8279,   64,   64, 8257, 8279,   64,
1073        56,   64, 8258, 8281,   64, 8278,   64,   64,   64,   64,
1074      8279,16470,16471,16473,    4, 8279,16470,16471,16473, 8279,
1075     16470,16471,16473, 8279,16470,16471,16473,   58,   64, 8257,
1076      8279,   58,   64,  139,16543,  139,16543,  139,16543,  139,
1077
1078     16543,  139,16543,  139,16545,16546,   33,   34,   40, 8235,
1079     16405,  150,  150,  150,  150,  150,  121,   99,  100,  189,
1080        93,  189,   94,  189,  103,  189,  169,  189,16468,    3,
1081        64, 8257,    3,   64, 8277,16469,16473,16473, 8279,16470,
1082     16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473,
1083      8279,16470,16471,16473,   74, 8277,16469,   74, 8277,    6,
1084      8279,   57, 8257, 8279,   57, 8258, 8281, 8278,   57, 8258,
1085      8281,   57, 8277,16469, 8279,16470,16471,16473, 8279,   57,
1086      8281, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,
1087     16470,16471,16473, 8279,16470,16471,16473, 8257, 8279,   75,
1088
1089      8277,16469,  139,16543,  139,16543,  139,16543,  139,16543,
1090       139,16543,  139,16545,16546,   33,   34,  189,16405,  150,
1091       150,  150,  150,  150,  121,  189,   99,  100,  189,  189,
1092        93,  189,   94,  189,  103,  189,  169,  189,    3, 8257,
1093         3, 8277,16469,16473,16473, 8279,   56, 8281, 8279,16470,
1094     16471,16473,   83, 8279,16470,16471,16473,   74, 8277, 8277,
1095     16469,   55, 8277,16473, 8279,16470,16471,16473, 8279,16470,
1096     16471,16473, 8279,16470,16471,16473,   75, 8277,16469,   75,
1097      8277,   83,  139,16543,  139,16543,  139,16543,  139,16545,
1098     16546,  189,16405,16531,  150,  150,  121,  189,   99,  100,
1099
1100       189, 8277,16469,16473,16473,   57, 8281, 8279,16470,16471,
1101     16473, 8277,16473,16473,16473, 8279, 8279,16470,16471,16473,
1102      8279,16470,16471,16473,   75, 8277,  139,16543,  150,  150,
1103        99, 8277,16469,16473,16473, 8279,16470,16471,16473, 8277,
1104     16469,16473,16473, 8279,16470,16471,16473,  139,16543,   32,
1105        35,   99, 8277, 8277,16469,16473, 8279,16470,16471,16473,
1106      8277,16469, 8277,    6, 8279,16470,16471,16473,  139,16543,
1107        32,   99, 8279,16470,16471,16473, 8277,16469, 8279,16470,
1108     16471,16473,  139,16543,   99, 8279,16470,16471,16473,   59,
1109        99, 8279,16470,16471,16473,   99, 8279,16470,16471,16473,
1110
1111        99, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,
1112     16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,
1113     16473,    6, 8279
1114     } ;
1115
1116 static yyconst flex_int16_t yy_accept[3493] =
1117     {   0,
1118         1,    1,    1,    2,    3,    4,    5,    5,    5,    5,
1119         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
1120         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
1121         5,    5,    5,    5,    5,    5,    5,    5,    6,    6,
1122         6,    6,    6,    6,    6,    7,    8,    9,   10,   10,
1123        10,   10,   10,   10,   10,   10,   10,   10,   10,   11,
1124        12,   12,   12,   12,   12,   12,   12,   13,   15,   17,
1125        20,   23,   26,   28,   30,   32,   34,   37,   40,   44,
1126        48,   51,   54,   56,   59,   62,   65,   68,   72,   76,
1127        79,   82,   85,   88,   92,   95,  100,  104,  109,  114,
1128
1129       118,  122,  126,  130,  134,  136,  141,  146,  151,  154,
1130       158,  161,  165,  168,  171,  174,  178,  182,  186,  188,
1131       190,  193,  196,  198,  202,  205,  210,  215,  220,  224,
1132       228,  232,  236,  240,  244,  247,  252,  257,  262,  265,
1133       269,  273,  277,  281,  284,  287,  289,  292,  295,  299,
1134       301,  305,  308,  312,  315,  318,  321,  324,  327,  330,
1135       332,  338,  344,  350,  356,  362,  366,  369,  373,  379,
1136       385,  391,  397,  403,  409,  415,  421,  427,  433,  439,
1137       445,  451,  457,  463,  469,  475,  481,  487,  493,  496,
1138       499,  502,  504,  507,  510,  513,  515,  518,  521,  525,
1139
1140       529,  532,  535,  538,  541,  544,  547,  550,  553,  556,
1141       558,  562,  566,  570,  574,  577,  581,  585,  589,  593,
1142       597,  601,  605,  609,  613,  617,  621,  625,  629,  633,
1143       637,  641,  645,  649,  653,  657,  660,  663,  666,  669,
1144       673,  677,  680,  684,  689,  692,  695,  698,  701,  706,
1145       711,  716,  720,  723,  727,  732,  736,  739,  745,  748,
1146       751,  753,  756,  759,  764,  769,  774,  779,  784,  789,
1147       794,  799,  804,  809,  814,  819,  824,  829,  834,  839,
1148       844,  849,  854,  859,  864,  869,  874,  879,  881,  884,
1149       887,  890,  893,  896,  899,  902,  904,  906,  909,  912,
1150
1151       915,  919,  923,  926,  928,  930,  932,  935,  938,  940,
1152       943,  945,  948,  951,  953,  956,  959,  962,  965,  968,
1153       970,  972,  976,  979,  981,  984,  987,  989,  992,  994,
1154       997, 1000, 1003, 1006, 1008, 1012, 1016, 1019, 1022, 1025,
1155      1029, 1033, 1037, 1040, 1043, 1046, 1049, 1052, 1055, 1057,
1156      1059, 1061, 1063, 1065, 1067, 1069, 1071, 1073, 1075, 1077,
1157      1079, 1081, 1083, 1085, 1087, 1090, 1092, 1095, 1098, 1101,
1158      1103, 1106, 1109, 1112, 1115, 1118, 1121, 1124, 1127, 1130,
1159      1133, 1136, 1139, 1141, 1144, 1148, 1151, 1155, 1159, 1162,
1160      1166, 1170, 1173, 1177, 1180, 1184, 1188, 1192, 1196, 1200,
1161
1162      1204, 1208, 1212, 1215, 1218, 1221, 1225, 1228, 1232, 1236,
1163      1239, 1243, 1247, 1250, 1254, 1258, 1262, 1266, 1270, 1274,
1164      1278, 1282, 1286, 1290, 1294, 1298, 1302, 1306, 1309, 1312,
1165      1315, 1320, 1325, 1328, 1333, 1338, 1343, 1348, 1353, 1358,
1166      1363, 1368, 1373, 1378, 1383, 1388, 1393, 1398, 1403, 1406,
1167      1409, 1413, 1417, 1421, 1424, 1429, 1434, 1437, 1440, 1445,
1168      1450, 1455, 1458, 1461, 1465, 1471, 1475, 1480, 1484, 1488,
1169      1493, 1498, 1502, 1506, 1511, 1514, 1518, 1522, 1524, 1526,
1170      1529, 1532, 1534, 1537, 1540, 1543, 1546, 1549, 1552, 1555,
1171      1558, 1561, 1564, 1567, 1570, 1573, 1576, 1579, 1582, 1584,
1172
1173      1587, 1590, 1594, 1597, 1601, 1605, 1608, 1611, 1615, 1618,
1174      1621, 1625, 1629, 1634, 1639, 1643, 1647, 1651, 1656, 1660,
1175      1664, 1664, 1664, 1665, 1666, 1667, 1667, 1667, 1668, 1669,
1176      1670, 1673, 1676, 1678, 1679, 1680, 1681, 1684, 1687, 1688,
1177      1691, 1694, 1696, 1697, 1698, 1701, 1704, 1705, 1706, 1708,
1178      1710, 1711, 1712, 1714, 1716, 1717, 1717, 1717, 1718, 1718,
1179      1720, 1722, 1723, 1723, 1724, 1726, 1727, 1728, 1728, 1729,
1180      1731, 1733, 1735, 1736, 1738, 1740, 1741, 1742, 1744, 1746,
1181      1748, 1749, 1749, 1750, 1751, 1753, 1755, 1756, 1757, 1759,
1182      1762, 1764, 1765, 1766, 1768, 1771, 1775, 1779, 1779, 1779,
1183
1184      1779, 1779, 1779, 1780, 1781, 1782, 1782, 1782, 1782, 1782,
1185      1782, 1782, 1782, 1782, 1782, 1782, 1782, 1783, 1783, 1784,
1186      1785, 1789, 1789, 1789, 1789, 1793, 1797, 1797, 1801, 1801,
1187      1801, 1801, 1805, 1805, 1805, 1809, 1813, 1817, 1821, 1825,
1188      1829, 1833, 1837, 1841, 1845, 1849, 1856, 1860, 1864, 1868,
1189      1872, 1876, 1880, 1884, 1888, 1892, 1896, 1900, 1904, 1908,
1190      1912, 1918, 1925, 1929, 1933, 1937, 1941, 1945, 1949, 1953,
1191      1957, 1961, 1965, 1969, 1973, 1977, 1981, 1985, 1989, 1993,
1192      1997, 2001, 2005, 2009, 2013, 2017, 2021, 2025, 2029, 2033,
1193      2037, 2041, 2045, 2049, 2053, 2057, 2061, 2061, 2061, 2065,
1194
1195      2065, 2066, 2066, 2066, 2067, 2069, 2071, 2072, 2072, 2072,
1196      2072, 2073, 2074, 2075, 2076, 2076, 2076, 2076, 2076, 2076,
1197      2076, 2076, 2076, 2076, 2076, 2077, 2077, 2078, 2080, 2080,
1198      2080, 2082, 2084, 2086, 2088, 2090, 2092, 2094, 2096, 2098,
1199      2100, 2102, 2104, 2106, 2108, 2110, 2112, 2114, 2116, 2118,
1200      2120, 2122, 2124, 2126, 2128, 2130, 2132, 2134, 2136, 2138,
1201      2140, 2143, 2145, 2147, 2149, 2151, 2153, 2155, 2157, 2159,
1202      2161, 2163, 2165, 2167, 2169, 2171, 2173, 2175, 2177, 2179,
1203      2181, 2183, 2185, 2187, 2189, 2191, 2193, 2195, 2197, 2199,
1204      2201, 2203, 2206, 2206, 2207, 2207, 2208, 2211, 2211, 2211,
1205
1206      2211, 2214, 2214, 2214, 2214, 2214, 2214, 2217, 2217, 2217,
1207      2220, 2223, 2224, 2224, 2224, 2225, 2225, 2226, 2229, 2232,
1208      2235, 2238, 2241, 2244, 2247, 2250, 2253, 2256, 2259, 2262,
1209      2265, 2268, 2271, 2274, 2277, 2280, 2283, 2286, 2289, 2292,
1210      2295, 2298, 2301, 2304, 2307, 2310, 2313, 2316, 2319, 2322,
1211      2325, 2328, 2331, 2334, 2337, 2340, 2343, 2346, 2349, 2352,
1212      2355, 2358, 2361, 2364, 2367, 2370, 2373, 2376, 2379, 2382,
1213      2385, 2388, 2391, 2394, 2397, 2400, 2403, 2406, 2409, 2410,
1214      2411, 2412, 2413, 2413, 2414, 2415, 2417, 2418, 2419, 2419,
1215      2419, 2421, 2421, 2421, 2423, 2424, 2424, 2424, 2425, 2426,
1216
1217      2426, 2427, 2427, 2428, 2428, 2429, 2430, 2431, 2432, 2433,
1218      2433, 2434, 2434, 2434, 2435, 2435, 2435, 2435, 2436, 2437,
1219      2438, 2439, 2440, 2440, 2440, 2441, 2442, 2443, 2444, 2446,
1220      2448, 2450, 2451, 2452, 2454, 2456, 2456, 2456, 2456, 2456,
1221      2456, 2456, 2456, 2458, 2458, 2458, 2458, 2458, 2458, 2458,
1222      2458, 2458, 2458, 2458, 2458, 2458, 2459, 2460, 2460, 2460,
1223      2460, 2461, 2461, 2461, 2461, 2462, 2462, 2462, 2462, 2462,
1224      2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472,
1225      2473, 2474, 2475, 2476, 2477, 2478, 2478, 2478, 2478, 2479,
1226      2479, 2479, 2479, 2479, 2479, 2480, 2481, 2482, 2483, 2484,
1227
1228      2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494,
1229      2495, 2496, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506,
1230      2507, 2508, 2509, 2511, 2511, 2513, 2514, 2516, 2518, 2520,
1231      2522, 2524, 2526, 2528, 2531, 2533, 2535, 2537, 2539, 2541,
1232      2543, 2545, 2547, 2549, 2551, 2553, 2553, 2553, 2555, 2557,
1233      2560, 2560, 2563, 2564, 2565, 2566, 2567, 2569, 2571, 2573,
1234      2575, 2576, 2577, 2578, 2580, 2582, 2582, 2583, 2584, 2585,
1235      2586, 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595,
1236      2596, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 2603, 2604,
1237      2605, 2605, 2606, 2607, 2608, 2608, 2609, 2611, 2613, 2615,
1238
1239      2616, 2617, 2619, 2621, 2621, 2621, 2621, 2621, 2621, 2621,
1240      2621, 2621, 2621, 2621, 2621, 2621, 2621, 2622, 2623, 2624,
1241      2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634,
1242      2635, 2636, 2637, 2638, 2639, 2640, 2641, 2642, 2643, 2644,
1243      2645, 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653, 2654,
1244      2654, 2654, 2654, 2654, 2654, 2654, 2655, 2656, 2657, 2658,
1245      2659, 2660, 2661, 2662, 2663, 2664, 2665, 2665, 2666, 2667,
1246      2668, 2669, 2670, 2674, 2675, 2676, 2676, 2676, 2676, 2678,
1247      2678, 2678, 2678, 2678, 2679, 2679, 2679, 2679, 2679, 2679,
1248      2679, 2679, 2679, 2679, 2679, 2679, 2679, 2679, 2679, 2679,
1249
1250      2679, 2679, 2681, 2681, 2681, 2685, 2689, 2689, 2690, 2691,
1251      2691, 2695, 2695, 2695, 2695, 2695, 2695, 2696, 2696, 2700,
1252      2704, 2708, 2715, 2719, 2723, 2727, 2731, 2735, 2739, 2743,
1253      2747, 2751, 2755, 2756, 2759, 2760, 2763, 2765, 2766, 2767,
1254      2768, 2772, 2777, 2781, 2785, 2789, 2793, 2797, 2801, 2805,
1255      2809, 2813, 2820, 2824, 2828, 2832, 2836, 2840, 2844, 2846,
1256      2850, 2854, 2860, 2864, 2868, 2872, 2876, 2880, 2884, 2888,
1257      2892, 2896, 2900, 2904, 2908, 2912, 2916, 2920, 2924, 2928,
1258      2932, 2936, 2940, 2944, 2948, 2952, 2956, 2960, 2964, 2968,
1259      2972, 2976, 2980, 2984, 2988, 2992, 2996, 3000, 3004, 3008,
1260
1261      3012, 3016, 3020, 3024, 3028, 3029, 3029, 3033, 3033, 3033,
1262      3035, 3035, 3035, 3036, 3036, 3036, 3036, 3036, 3036, 3036,
1263      3036, 3036, 3036, 3036, 3036, 3036, 3036, 3036, 3036, 3036,
1264      3036, 3037, 3039, 3041, 3043, 3045, 3047, 3049, 3051, 3053,
1265      3055, 3057, 3059, 3061, 3063, 3065, 3066, 3067, 3069, 3070,
1266      3072, 3073, 3074, 3076, 3079, 3081, 3083, 3085, 3087, 3089,
1267      3091, 3093, 3095, 3097, 3099, 3101, 3103, 3105, 3107, 3109,
1268      3110, 3111, 3113, 3114, 3116, 3117, 3118, 3121, 3123, 3124,
1269      3125, 3127, 3129, 3131, 3133, 3135, 3137, 3139, 3141, 3143,
1270      3145, 3147, 3149, 3151, 3153, 3155, 3157, 3159, 3161, 3163,
1271
1272      3165, 3167, 3169, 3171, 3173, 3175, 3177, 3179, 3181, 3183,
1273      3185, 3187, 3189, 3191, 3193, 3195, 3197, 3199, 3201, 3203,
1274      3205, 3205, 3205, 3205, 3205, 3205, 3206, 3206, 3207, 3207,
1275      3210, 3213, 3216, 3219, 3222, 3225, 3228, 3231, 3234, 3237,
1276      3240, 3243, 3246, 3249, 3252, 3253, 3254, 3256, 3257, 3259,
1277      3262, 3266, 3269, 3272, 3275, 3278, 3281, 3284, 3287, 3290,
1278      3293, 3296, 3299, 3302, 3305, 3308, 3309, 3310, 3312, 3313,
1279      3315, 3319, 3322, 3325, 3328, 3331, 3334, 3337, 3340, 3343,
1280      3346, 3349, 3352, 3355, 3358, 3361, 3364, 3367, 3370, 3373,
1281      3376, 3379, 3382, 3385, 3388, 3391, 3394, 3397, 3400, 3403,
1282
1283      3406, 3409, 3412, 3415, 3418, 3421, 3424, 3427, 3430, 3433,
1284      3436, 3439, 3439, 3439, 3439, 3439, 3440, 3442, 3442, 3443,
1285      3443, 3444, 3445, 3446, 3447, 3447, 3447, 3448, 3449, 3450,
1286      3451, 3452, 3453, 3454, 3455, 3456, 3457, 3458, 3459, 3460,
1287      3461, 3462, 3463, 3464, 3465, 3465, 3465, 3465, 3465, 3465,
1288      3465, 3466, 3466, 3466, 3466, 3466, 3466, 3466, 3466, 3466,
1289      3466, 3466, 3466, 3466, 3466, 3466, 3468, 3468, 3468, 3469,
1290      3470, 3471, 3472, 3473, 3474, 3475, 3476, 3477, 3478, 3480,
1291      3481, 3482, 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3490,
1292      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3492, 3493, 3494,
1293
1294      3496, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 3504, 3505,
1295      3506, 3507, 3508, 3509, 3510, 3511, 3513, 3515, 3517, 3519,
1296      3521, 3523, 3525, 3527, 3529, 3531, 3533, 3535, 3537, 3539,
1297      3539, 3540, 3540, 3540, 3541, 3542, 3543, 3544, 3545, 3546,
1298      3547, 3548, 3549, 3550, 3551, 3552, 3553, 3554, 3555, 3556,
1299      3557, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567,
1300      3568, 3569, 3570, 3571, 3572, 3572, 3573, 3574, 3574, 3575,
1301      3576, 3577, 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3585,
1302      3586, 3586, 3586, 3586, 3586, 3587, 3587, 3588, 3588, 3588,
1303      3589, 3589, 3589, 3591, 3592, 3592, 3594, 3594, 3596, 3597,
1304
1305      3599, 3600, 3601, 3602, 3603, 3606, 3608, 3609, 3610, 3612,
1306      3613, 3615, 3616, 3617, 3618, 3619, 3622, 3624, 3625, 3626,
1307      3628, 3629, 3631, 3632, 3633, 3634, 3635, 3638, 3640, 3641,
1308      3642, 3642, 3642, 3642, 3642, 3642, 3644, 3646, 3647, 3649,
1309      3651, 3652, 3653, 3654, 3655, 3656, 3659, 3662, 3664, 3665,
1310      3666, 3667, 3667, 3668, 3668, 3669, 3670, 3671, 3672, 3676,
1311      3676, 3677, 3677, 3677, 3677, 3677, 3677, 3677, 3677, 3677,
1312      3677, 3677, 3677, 3677, 3681, 3681, 3681, 3681, 3681, 3681,
1313      3681, 3681, 3681, 3681, 3681, 3681, 3684, 3684, 3685, 3685,
1314      3685, 3685, 3689, 3693, 3693, 3693, 3693, 3695, 3695, 3695,
1315
1316      3696, 3696, 3696, 3696, 3697, 3701, 3705, 3709, 3710, 3713,
1317      3714, 3717, 3719, 3720, 3721, 3722, 3727, 3733, 3737, 3741,
1318      3745, 3749, 3753, 3757, 3761, 3763, 3763, 3765, 3769, 3773,
1319      3780, 3784, 3788, 3792, 3796, 3800, 3804, 3807, 3811, 3815,
1320      3819, 3823, 3827, 3831, 3835, 3839, 3843, 3847, 3851, 3855,
1321      3859, 3863, 3867, 3871, 3875, 3879, 3883, 3887, 3891, 3895,
1322      3899, 3900, 3904, 3908, 3912, 3916, 3920, 3924, 3928, 3932,
1323      3936, 3940, 3944, 3948, 3952, 3959, 3963, 3967, 3971, 3975,
1324      3979, 3983, 3987, 3991, 3995, 3999, 4003, 4003, 4003, 4005,
1325      4006, 4006, 4007, 4007, 4007, 4007, 4007, 4007, 4007, 4007,
1326
1327      4007, 4007, 4007, 4007, 4007, 4007, 4007, 4007, 4007, 4007,
1328      4007, 4007, 4007, 4008, 4010, 4012, 4014, 4015, 4016, 4018,
1329      4019, 4021, 4022, 4023, 4026, 4028, 4030, 4032, 4034, 4036,
1330      4038, 4040, 4042, 4044, 4046, 4048, 4050, 4052, 4054, 4056,
1331      4057, 4059, 4061, 4063, 4065, 4067, 4069, 4071, 4073, 4075,
1332      4077, 4079, 4081, 4083, 4085, 4087, 4089, 4091, 4093, 4095,
1333      4097, 4099, 4101, 4103, 4105, 4107, 4109, 4111, 4113, 4115,
1334      4117, 4119, 4121, 4123, 4125, 4127, 4129, 4131, 4133, 4135,
1335      4137, 4139, 4141, 4143, 4145, 4145, 4145, 4146, 4146, 4146,
1336      4147, 4150, 4153, 4156, 4157, 4158, 4160, 4161, 4163, 4167,
1337
1338      4170, 4173, 4176, 4179, 4182, 4185, 4188, 4191, 4194, 4197,
1339      4200, 4203, 4206, 4209, 4210, 4213, 4216, 4219, 4222, 4225,
1340      4228, 4231, 4234, 4237, 4240, 4243, 4246, 4249, 4252, 4255,
1341      4258, 4261, 4264, 4267, 4270, 4273, 4276, 4279, 4282, 4285,
1342      4288, 4291, 4294, 4297, 4300, 4303, 4306, 4309, 4312, 4315,
1343      4318, 4321, 4324, 4327, 4330, 4333, 4336, 4337, 4337, 4337,
1344      4338, 4339, 4341, 4342, 4343, 4344, 4345, 4346, 4347, 4347,
1345      4347, 4347, 4348, 4349, 4350, 4351, 4352, 4353, 4354, 4356,
1346      4358, 4359, 4361, 4362, 4363, 4364, 4365, 4366, 4369, 4372,
1347      4374, 4375, 4376, 4377, 4379, 4379, 4379, 4379, 4379, 4379,
1348
1349      4379, 4379, 4379, 4379, 4379, 4379, 4379, 4379, 4379, 4379,
1350      4380, 4381, 4381, 4382, 4383, 4384, 4385, 4386, 4387, 4388,
1351      4389, 4390, 4391, 4392, 4393, 4394, 4394, 4394, 4394, 4394,
1352      4395, 4396, 4397, 4398, 4401, 4402, 4403, 4404, 4405, 4406,
1353      4407, 4408, 4409, 4410, 4411, 4414, 4416, 4418, 4420, 4422,
1354      4424, 4426, 4428, 4430, 4432, 4434, 4434, 4435, 4435, 4437,
1355      4438, 4440, 4441, 4442, 4443, 4444, 4447, 4449, 4450, 4451,
1356      4452, 4453, 4454, 4455, 4456, 4457, 4458, 4459, 4460, 4461,
1357      4462, 4463, 4464, 4465, 4466, 4466, 4467, 4468, 4469, 4470,
1358      4471, 4471, 4472, 4474, 4475, 4477, 4478, 4479, 4481, 4482,
1359
1360      4483, 4486, 4488, 4489, 4492, 4493, 4494, 4495, 4495, 4496,
1361      4496, 4496, 4497, 4497, 4498, 4498, 4499, 4500, 4502, 4503,
1362      4504, 4505, 4507, 4508, 4509, 4510, 4512, 4513, 4514, 4515,
1363      4517, 4518, 4518, 4520, 4520, 4521, 4523, 4523, 4525, 4527,
1364      4528, 4529, 4532, 4532, 4533, 4534, 4534, 4534, 4535, 4536,
1365      4540, 4540, 4540, 4540, 4540, 4540, 4540, 4540, 4540, 4542,
1366      4543, 4545, 4545, 4545, 4545, 4545, 4545, 4545, 4545, 4545,
1367      4545, 4545, 4545, 4545, 4547, 4548, 4550, 4550, 4550, 4550,
1368      4550, 4551, 4552, 4556, 4560, 4560, 4560, 4561, 4561, 4561,
1369      4561, 4562, 4566, 4570, 4574, 4576, 4576, 4578, 4582, 4589,
1370
1371      4596, 4600, 4604, 4608, 4612, 4616, 4619, 4625, 4629, 4633,
1372      4640, 4640, 4644, 4648, 4652, 4656, 4660, 4664, 4668, 4672,
1373      4676, 4680, 4684, 4688, 4692, 4696, 4700, 4704, 4708, 4712,
1374      4716, 4720, 4724, 4724, 4724, 4728, 4732, 4736, 4740, 4744,
1375      4748, 4752, 4756, 4760, 4764, 4768, 4772, 4776, 4777, 4779,
1376      4786, 4790, 4794, 4798, 4802, 4806, 4813, 4817, 4821, 4825,
1377      4825, 4825, 4827, 4827, 4827, 4827, 4827, 4827, 4827, 4827,
1378      4827, 4827, 4827, 4827, 4827, 4827, 4827, 4828, 4830, 4832,
1379      4834, 4836, 4838, 4840, 4842, 4844, 4846, 4848, 4850, 4852,
1380      4854, 4854, 4856, 4858, 4860, 4862, 4864, 4866, 4868, 4870,
1381
1382      4872, 4874, 4876, 4878, 4880, 4882, 4884, 4886, 4888, 4890,
1383      4892, 4894, 4896, 4898, 4900, 4902, 4904, 4906, 4908, 4910,
1384      4912, 4914, 4916, 4917, 4920, 4922, 4924, 4926, 4928, 4930,
1385      4932, 4934, 4936, 4938, 4939, 4942, 4945, 4948, 4951, 4954,
1386      4957, 4960, 4963, 4966, 4969, 4972, 4975, 4978, 4981, 4984,
1387      4987, 4990, 4993, 4996, 4999, 5002, 5005, 5008, 5011, 5014,
1388      5017, 5020, 5023, 5026, 5029, 5032, 5035, 5038, 5041, 5044,
1389      5047, 5050, 5053, 5056, 5059, 5062, 5065, 5068, 5071, 5074,
1390      5077, 5080, 5083, 5086, 5089, 5090, 5092, 5093, 5094, 5095,
1391      5096, 5096, 5096, 5096, 5097, 5098, 5099, 5100, 5101, 5102,
1392
1393      5103, 5104, 5106, 5108, 5109, 5110, 5111, 5112, 5112, 5113,
1394      5113, 5113, 5113, 5113, 5113, 5113, 5113, 5113, 5113, 5113,
1395      5113, 5114, 5114, 5115, 5117, 5118, 5119, 5120, 5121, 5122,
1396      5123, 5124, 5125, 5126, 5126, 5126, 5126, 5126, 5128, 5129,
1397      5130, 5131, 5132, 5133, 5134, 5135, 5136, 5137, 5138, 5139,
1398      5140, 5142, 5144, 5146, 5148, 5150, 5152, 5154, 5156, 5158,
1399      5158, 5158, 5159, 5161, 5162, 5163, 5164, 5165, 5166, 5167,
1400      5168, 5169, 5170, 5171, 5172, 5173, 5174, 5175, 5176, 5177,
1401      5179, 5181, 5182, 5184, 5185, 5185, 5186, 5187, 5189, 5190,
1402      5192, 5193, 5195, 5195, 5195, 5195, 5196, 5196, 5197, 5198,
1403
1404      5199, 5199, 5201, 5202, 5204, 5204, 5206, 5206, 5206, 5206,
1405      5206, 5206, 5207, 5207, 5210, 5211, 5211, 5212, 5212, 5212,
1406      5212, 5212, 5212, 5212, 5212, 5212, 5212, 5212, 5212, 5212,
1407      5213, 5213, 5214, 5214, 5217, 5220, 5220, 5221, 5221, 5222,
1408      5226, 5230, 5230, 5230, 5234, 5238, 5242, 5246, 5250, 5254,
1409      5258, 5262, 5266, 5268, 5270, 5271, 5275, 5279, 5279, 5283,
1410      5287, 5291, 5295, 5299, 5303, 5307, 5311, 5315, 5319, 5323,
1411      5327, 5331, 5335, 5339, 5343, 5350, 5350, 5350, 5354, 5358,
1412      5365, 5369, 5373, 5377, 5381, 5385, 5389, 5392, 5393, 5397,
1413      5401, 5405, 5405, 5405, 5405, 5407, 5407, 5407, 5407, 5407,
1414
1415      5407, 5407, 5407, 5407, 5407, 5407, 5407, 5407, 5409, 5411,
1416      5413, 5415, 5417, 5419, 5421, 5423, 5425, 5427, 5427, 5429,
1417      5431, 5433, 5435, 5437, 5439, 5441, 5443, 5445, 5447, 5449,
1418      5451, 5453, 5455, 5457, 5459, 5461, 5463, 5465, 5467, 5469,
1419      5471, 5473, 5475, 5478, 5481, 5484, 5487, 5490, 5493, 5496,
1420      5499, 5502, 5505, 5508, 5511, 5514, 5517, 5520, 5523, 5526,
1421      5529, 5532, 5535, 5538, 5541, 5544, 5547, 5550, 5553, 5556,
1422      5559, 5562, 5565, 5567, 5568, 5569, 5570, 5572, 5572, 5572,
1423      5572, 5573, 5574, 5576, 5577, 5578, 5579, 5580, 5581, 5581,
1424      5581, 5581, 5581, 5581, 5581, 5581, 5581, 5583, 5584, 5585,
1425
1426      5586, 5587, 5588, 5589, 5589, 5589, 5589, 5589, 5589, 5590,
1427      5591, 5592, 5593, 5594, 5595, 5596, 5597, 5598, 5599, 5600,
1428      5601, 5603, 5605, 5607, 5609, 5610, 5611, 5612, 5613, 5614,
1429      5615, 5616, 5617, 5618, 5619, 5620, 5621, 5622, 5623, 5625,
1430      5625, 5626, 5627, 5627, 5627, 5628, 5629, 5630, 5631, 5632,
1431      5632, 5632, 5633, 5633, 5633, 5633, 5633, 5633, 5633, 5633,
1432      5633, 5633, 5633, 5633, 5634, 5637, 5640, 5641, 5645, 5649,
1433      5649, 5649, 5652, 5656, 5660, 5663, 5667, 5671, 5675, 5679,
1434      5679, 5683, 5690, 5694, 5698, 5702, 5711, 5715, 5719, 5723,
1435      5727, 5731, 5735, 5738, 5738, 5738, 5742, 5746, 5750, 5754,
1436
1437      5758, 5762, 5766, 5770, 5772, 5772, 5772, 5776, 5776, 5776,
1438      5776, 5776, 5776, 5776, 5776, 5776, 5776, 5776, 5776, 5776,
1439      5776, 5778, 5780, 5782, 5784, 5786, 5788, 5788, 5790, 5792,
1440      5794, 5796, 5798, 5800, 5802, 5804, 5806, 5808, 5810, 5812,
1441      5814, 5816, 5818, 5820, 5823, 5826, 5829, 5832, 5835, 5838,
1442      5841, 5844, 5847, 5850, 5853, 5856, 5859, 5862, 5865, 5868,
1443      5871, 5874, 5876, 5877, 5879, 5880, 5880, 5881, 5881, 5881,
1444      5882, 5883, 5884, 5885, 5887, 5888, 5888, 5888, 5888, 5888,
1445      5890, 5891, 5892, 5892, 5892, 5892, 5892, 5892, 5892, 5892,
1446      5893, 5894, 5895, 5896, 5897, 5898, 5899, 5900, 5902, 5903,
1447
1448      5904, 5905, 5906, 5907, 5908, 5908, 5909, 5910, 5910, 5910,
1449      5911, 5912, 5913, 5914, 5915, 5916, 5917, 5918, 5919, 5919,
1450      5919, 5920, 5920, 5920, 5921, 5921, 5921, 5921, 5921, 5921,
1451      5921, 5921, 5921, 5921, 5921, 5921, 5924, 5925, 5929, 5933,
1452      5933, 5934, 5937, 5941, 5945, 5947, 5951, 5953, 5957, 5960,
1453      5962, 5964, 5966, 5971, 5977, 5981, 5985, 5989, 5996, 5998,
1454      5999, 6000, 6004, 6006, 6006, 6006, 6006, 6006, 6006, 6006,
1455      6010, 6014, 6018, 6025, 6029, 6029, 6029, 6030, 6030, 6030,
1456      6030, 6030, 6030, 6030, 6030, 6030, 6030, 6032, 6034, 6036,
1457      6038, 6040, 6043, 6045, 6048, 6050, 6052, 6056, 6058, 6060,
1458
1459      6062, 6064, 6066, 6069, 6071, 6073, 6076, 6078, 6081, 6086,
1460      6089, 6092, 6095, 6097, 6098, 6098, 6099, 6100, 6101, 6102,
1461      6103, 6104, 6104, 6104, 6104, 6104, 6104, 6104, 6104, 6105,
1462      6106, 6107, 6108, 6109, 6110, 6111, 6111, 6112, 6113, 6114,
1463      6114, 6115, 6116, 6117, 6117, 6118, 6118, 6118, 6118, 6119,
1464      6120, 6120, 6120, 6120, 6120, 6120, 6121, 6121, 6121, 6121,
1465      6124, 6124, 6127, 6128, 6132, 6136, 6136, 6140, 6144, 6146,
1466      6146, 6146, 6146, 6149, 6153, 6156, 6157, 6160, 6161, 6165,
1467      6167, 6168, 6169, 6170, 6175, 6175, 6175, 6175, 6175, 6175,
1468      6176, 6176, 6180, 6184, 6188, 6192, 6194, 6194, 6194, 6194,
1469
1470      6194, 6194, 6196, 6198, 6200, 6202, 6204, 6207, 6209, 6210,
1471      6210, 6211, 6212, 6212, 6212, 6212, 6212, 6212, 6213, 6214,
1472      6215, 6216, 6217, 6218, 6218, 6219, 6220, 6221, 6223, 6225,
1473      6227, 6229, 6229, 6229, 6229, 6230, 6230, 6233, 6235, 6235,
1474      6238, 6239, 6243, 6247, 6247, 6251, 6255, 6258, 6260, 6262,
1475      6262, 6263, 6265, 6265, 6268, 6269, 6269, 6269, 6269, 6272,
1476      6272, 6272, 6273, 6273, 6273, 6275, 6275, 6275, 6275, 6275,
1477      6275, 6279, 6280, 6280, 6282, 6282, 6286, 6286, 6286, 6286,
1478      6286, 6286, 6290, 6294, 6298, 6300, 6300, 6300, 6300, 6303,
1479      6303, 6303, 6303, 6305, 6307, 6309, 6311, 6313, 6316, 6318,
1480
1481      6320, 6320, 6320, 6320, 6320, 6320, 6321, 6322, 6323, 6324,
1482      6325, 6327, 6327, 6328, 6330, 6331, 6333, 6335, 6337, 6339,
1483      6339, 6341, 6342, 6345, 6346, 6347, 6349, 6353, 6353, 6354,
1484      6358, 6360, 6362, 6362, 6363, 6363, 6364, 6364, 6364, 6364,
1485      6364, 6364, 6364, 6365, 6365, 6365, 6369, 6369, 6369, 6369,
1486      6369, 6373, 6377, 6380, 6382, 6382, 6382, 6383, 6385, 6387,
1487      6389, 6392, 6392, 6392, 6394, 6395, 6395, 6395, 6395, 6395,
1488      6396, 6396, 6397, 6399, 6399, 6400, 6402, 6402, 6405, 6406,
1489      6408, 6412, 6412, 6413, 6413, 6413, 6413, 6413, 6413, 6414,
1490      6414, 6414, 6415, 6415, 6415, 6416, 6417, 6417, 6421, 6421,
1491
1492      6421, 6425, 6427, 6427, 6427, 6429, 6429, 6429, 6429, 6429,
1493      6429, 6430, 6431, 6431, 6432, 6432, 6435, 6435, 6435, 6435,
1494      6436, 6440, 6440, 6440, 6440, 6443, 6443, 6444, 6444, 6444,
1495      6444, 6444, 6448, 6448, 6448, 6450, 6450, 6450, 6450, 6452,
1496      6452, 6452, 6452, 6452, 6453, 6453, 6454, 6457, 6461, 6461,
1497      6461, 6463, 6464, 6464, 6465, 6465, 6469, 6469, 6469, 6471,
1498      6472, 6472, 6472, 6473, 6477, 6477, 6479, 6479, 6483, 6483,
1499      6485, 6485, 6486, 6490, 6490, 6491, 6491, 6492, 6496, 6496,
1500      6496, 6497, 6501, 6501, 6502, 6506, 6510, 6514, 6518, 6522,
1501      6524, 6524
1502
1503     } ;
1504
1505 static yyconst flex_int32_t yy_ec[256] =
1506     {   0,
1507         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
1508         1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
1509         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1510         1,    5,    6,    7,    8,    9,   10,   11,   12,   13,
1511        14,   15,   16,   17,   18,   19,   20,   21,   22,   22,
1512        22,   22,   22,   22,   22,   23,   24,   25,   26,   27,
1513        28,   29,    1,   30,   31,   32,   33,   34,   35,   32,
1514        36,   36,   37,   36,   38,   39,   36,   36,   40,   41,
1515        36,   42,   43,   44,   45,   36,   46,   47,   48,   36,
1516        49,   50,   51,   52,   53,    1,   54,   55,   56,   57,
1517
1518        58,   59,   60,   61,   62,   63,   64,   65,   66,   67,
1519        68,   69,   70,   71,   72,   73,   74,   75,   76,   77,
1520        78,   79,   80,   81,   82,   83,    1,   84,   84,   84,
1521        84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
1522        84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
1523        84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
1524        84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
1525        84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
1526        84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
1527        84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
1528
1529        84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
1530        84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
1531        84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
1532        84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
1533        84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
1534        84,   84,   84,   84,   84
1535     } ;
1536
1537 static yyconst flex_int32_t yy_meta[85] =
1538     {   0,
1539         1,    2,    3,    4,    5,    1,    6,    1,    7,    1,
1540         1,    8,    9,   10,   11,    1,   12,   13,   14,   15,
1541        16,   16,   16,   16,   17,   18,   19,   20,    1,    1,
1542        21,   21,   21,   21,   21,   22,   22,   22,   22,   22,
1543        22,   22,   22,   22,   22,   22,   22,   22,   23,   24,
1544        25,    1,   26,   21,   21,   21,   21,   21,   21,   22,
1545        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
1546        22,   22,   22,   22,   22,   22,   22,   22,   22,   27,
1547         1,   28,   29,   30
1548     } ;
1549
1550 static yyconst flex_int32_t yy_base[4071] =
1551     {   0,
1552         0,    3,    8,   58,   63,  113,   91,  145,  131,  165,
1553       187,  207,  215,  229,  237,  269,  287,  291,  342,   24,
1554       426,   22,  510,   35,  594,   48,  678,   77,  762,   79,
1555       846,  117,  930,  118, 1013, 1017, 1097,  304, 1021, 1180,
1556      1183, 1213, 1262,  126, 1338,  134, 1422,  151, 1506,  203,
1557      1590,  242, 1674,  308, 1758,  317, 1842,  321, 1926, 1034,
1558      2010, 1047, 2094, 1051, 1237, 2177,11817,35984, 1053,35984,
1559     35984,35984,   16,11808, 1055,   19,    0,35984,    0,    0,
1560        26,11806,    0, 1072,   28,    0,35984,    0,    0,   49,
1561     11800, 1074,   65,    0, 1076,    0,11799,    0,    0,   71,
1562
1563     11798, 1186,   72,    0, 1199,    0,    0,    0,   81,11796,
1564         6, 1203,  109,    0,  171,    0,    0,    0,11782,  140,
1565     11792, 1233,  157,11747, 1219,35984,11745,11740,  210,   40,
1566       265, 1250,  277,    0, 1254,    0,    0,    0,11769,  168,
1567     11781, 1258,  178,35984,35984,11714,11735,  182,35984, 1081,
1568     35984,35984,11755,35984,  184, 2162,11756,35984,35984, 2182,
1569      2197, 2254,   68,   38,11742,35984, 2227,35984,   21, 1010,
1570      1154, 1193, 1236, 2160, 2228,  219, 1242,  106,  189, 1249,
1571      2231, 2241,  281, 2256, 2214, 2274, 1244,  220,35984,35984,
1572      2317, 2213, 1027,  233,11744,11698,11742,    7, 1278,35984,
1573
1574      1267,  286,35984,  185, 1282,35984,  302,11741,  303, 2280,
1575      2342, 2352, 2371, 2386,11739, 2390, 2405, 2420, 2439, 2457,
1576      2467, 2543, 2443, 2462, 2366, 2484, 2489, 2510, 2512, 2533,
1577      2548, 2569, 2597, 2584, 2616, 1164,35984, 1300,35984,35984,
1578     35984,    0,11716,35984, 2191,  283,11740,11756, 2689, 2693,
1579      2706,35984, 2719,35984, 2745,35984, 2378, 2749, 2214, 1008,
1580         0, 1062,35984, 2778, 2804, 2808, 2834, 2838, 2865, 2883,
1581      2904, 2388, 2717, 2850, 2880, 2896, 2152, 2332, 2413, 2905,
1582      2914, 2535, 2929, 2935, 2969, 2441, 2673,    0,35984,35984,
1583         0,11719,11752,   47,35984, 2548,    0, 2193, 1083,35984,
1584
1585      2799, 2996, 1193, 2680, 2268,    0,35984,11734, 2338, 2241,
1586         0,35984,35984,   99,    0,11697,11674,11679,11685, 2322,
1587         0,35984,35984,11716,35984,35984,  239, 1019,11728, 2544,
1588      2263, 2869,35984, 2420,35984,35984,35984,35984,  232, 1207,
1589      1239, 2235, 2330, 2255, 2735, 2511,35984,35984,11700,11665,
1590       998,11663,11663,11664, 1259,11653,11643,11660, 2301,  148,
1591     11644,11639,11647,    0, 1281,11673,35984, 3013, 3023, 3050,
1592      3040, 3066, 3072, 3076, 3080, 3140, 3146, 3150, 3154, 3159,
1593      3208, 3219, 2671,35984, 3226, 3235, 3246,35984,    0,35984,
1594     35984, 1229,35984,11682,    0,11619,11610,11617,11603,11600,
1595
1596     35984, 3257, 1270,35984, 2463,35984,    0,35984,35984, 2172,
1597     35984,35984,11660,    0,11630,11593,11596,11587,11585, 2131,
1598     11581,11574,11590, 2571,11577,11575,11585, 2640, 2245,    0,
1599     35984, 2306,    0,35984,    0,11604,11564,11569,11561,11562,
1600      2266,11558,11551,11568, 2642,11554,11551,11558,35984, 2681,
1601     35984,35984,    0,11563,35984,35984, 2254,11605,    0,35984,
1602     35984, 2788, 2263,    0, 3084,    0,    0,35984,    0,    0,
1603         0, 2315,11604, 3337,    0, 2814, 2399, 3331, 3356, 3366,
1604     35984,    0,35984,    0,11574,11540, 1169,11539,11540, 2299,
1605     11533,11517, 2361, 2814,11523,11521,11527,35984, 3376,35984,
1606
1607      2840,35984,    0,35984,35984, 2435,11568,11549, 2853, 2522,
1608         0, 2877,    0,    0,11560, 2556,11557,    0, 2893, 2621,
1609      2923, 2633, 2730, 1267,35984, 2979, 2641, 2980, 2490,    0,
1610      2751, 2406,35984,35984, 3090, 2692, 3168, 2492,    0, 2771,
1611      2726,    0, 3109, 2710, 3176, 2808,    0,35984, 2783, 2753,
1612      3116, 2810, 3237, 2910,    0,11555, 3167,35984, 2932, 2755,
1613         0,35984,11553, 3118, 2926,    0, 2370,11533,35984, 3045,
1614      2842,    0, 3187, 3241, 3002,11501, 2877, 3230, 2844,11497,
1615     35984,11542, 3126, 3046, 3259, 3267,    0, 3110, 3251, 2894,
1616         0, 3183, 2999, 3367, 3027, 3450, 3500,11518, 2286, 2446,
1617
1618      3400, 2652,35984,35984, 3438,    0, 3469, 2534,11454,11457,
1619      1265,11449, 3123,11453, 2481, 2402, 3507, 3542,35984,35984,
1620     11444,11478, 3478, 3560, 2564, 2506,11487, 2628, 3569, 3577,
1621     11474, 3586, 3613, 3389, 2872, 2627, 3058, 1138, 2910, 3220,
1622      3181, 2970, 3071,  979, 3039, 3696, 2568, 3045, 2589, 3227,
1623      3223, 2702, 2995, 3173, 2521, 3157, 3099, 3362, 3232, 2793,
1624      3314,11424,  264, 3374, 3132, 2832, 3202,  209, 2727,   39,
1625      3262, 3266, 3329, 3134, 3381, 3209, 3250, 3420, 3457, 3316,
1626      3347, 3445, 3269, 3261, 3379, 3427, 3475, 2943, 2393, 3396,
1627      3404, 2974, 2906, 3476,11436, 3408, 3621, 3630, 3642, 3646,
1628
1629      3425, 3596, 3473,35984, 3659, 3725,35984, 3582, 3665, 3399,
1630     35984,35984,11466,11465, 3218,11424,11427, 3476,11418, 3457,
1631     11419, 3517, 3107, 3604,35984,11446,35984, 3715,11448,11442,
1632      3756, 3780, 3790, 3808, 3818, 3836, 3846, 3864, 3874, 3898,
1633      3902, 3926, 3930, 3995, 3959, 3963, 4014, 4035, 4068, 4078,
1634      4096, 4111, 4129, 4144, 4148, 4174, 4195, 4268,11395, 4221,
1635      4240, 4297, 4328, 4352, 4356, 4371, 4386, 4390, 4420, 4438,
1636      4448, 4466, 4481, 4499, 4509, 4527, 4537, 4558, 4573, 4588,
1637      4606, 4621, 4625, 4640, 4655, 4683, 4702, 4712, 4731, 4741,
1638      4760, 4673, 4181, 4115, 4767,35984, 4786,11439,11434, 4564,
1639
1640      4801, 4816, 4828,11437, 4840, 3685, 4854, 3751, 3762, 3892,
1641      4858,35984, 4889, 4053,35984,11432,35984, 4907, 4926, 4944,
1642      4962, 4983, 5001, 5019, 5038, 5056, 5075, 5102, 5106, 5132,
1643      5136, 5201, 5162, 5166, 5220, 5241, 5285, 5289, 5315, 5319,
1644      5345, 5364, 5382, 5400, 5473,11381, 5427, 5445, 5502, 5533,
1645      5559, 5563, 5589, 5608, 5638, 5642, 5670, 5674, 5700, 5704,
1646      5738, 5756, 5774, 5800, 5821, 5849, 5853, 5880, 5899, 5920,
1647      5938, 5964, 5983, 6009, 6013, 6039, 6060, 6078,    0,    0,
1648     11431,11395, 3734, 3602, 3603, 4087, 3801, 3648, 3660,11427,
1649      4130,11410,11424, 4205, 3680, 4231, 3792,35984,11408,11416,
1650
1651     11402, 3820,    0,11353,    0,11346,11343,11338,11351, 3870,
1652      3498,11395, 3621, 3571,11373,11387,11385, 3856, 3707, 3779,
1653      4422,35984,11376,11375,    0, 3713, 3547,35984, 4036, 3934,
1654     35984, 4307, 3827, 4573, 4452,11344,11314,11306,11305,11284,
1655     11285,11284, 3786,11276,11280,11280,11279,11273, 3597,11266,
1656     11269,11263,11259,11267,11264, 4200, 3087, 4772, 4335, 5045,
1657      5371,11297,11291, 4988, 5412, 5094, 5253, 5745, 4884, 5925,
1658      6045, 6104, 6108, 6112, 6182, 6201, 6211, 6217, 6243, 6250,
1659      6254, 6282, 6286, 6292, 6120, 4933, 5082, 3883, 5529, 5828,
1660     11248,11239,11253,11237,35984, 6318,    0,    0,11237,11242,
1661
1662     11244,11212,11222, 6324,    0,    0,11247,11213,11225,11204,
1663     11206, 3855,11197,11201,11198,11198,11192, 3658,11182,11178,
1664     11175,11173, 3865, 3969, 4059,35984,    0,    0,11194,11160,
1665     11173,11151,11155,    0,11148,11143,11144,11144,11137, 3689,
1666     11132,11130,11135,11134,    0,11181, 3619,35984,    0, 4870,
1667      4974, 5274,35984,35984,    0,    0, 4053, 3892,35984, 6404,
1668     35984, 3965, 3475, 4329, 3953, 6423,    0,    0,11153,11123,
1669     11134,11120,11111,11114, 6503,11108,11112,11113,11111,11114,
1670     11107,11092, 3779,11083,11079, 3868,11089, 6468,11119,11116,
1671     11114,    0, 4029, 3781,11130,11122, 4145, 3960,    0, 4105,
1672
1673      3893, 4357, 4138, 4166, 4168,11112, 3922,11051,11120, 4222,
1674      4301,11105, 3972,   50,11114, 3264, 4820, 5616,11034, 4473,
1675      4401, 4336, 5866, 6123, 3292, 4485, 3601, 5975, 6331,11033,
1676      4606, 4404, 4440, 6344, 6357, 3649, 4797, 3720, 4209, 4500,
1677     11010, 3563, 4414, 4489, 4634, 4898, 3748, 3668, 3854, 4900,
1678      4527,11067, 4037,11064, 4079, 4691, 5491, 2869, 4364, 4944,
1679      4832, 5614, 6295, 4582, 4494, 4611, 4258, 4323, 3380, 4564,
1680      3871, 3878, 6586,35984,11061, 5249, 6386, 6443, 4230,11044,
1681      6647, 6542, 5351,    0,10994,11010,11006,10992,10988,10981,
1682     10980, 3515,10992,10973,10976,10972,10959,10950, 4734,10997,
1683
1684     10996, 5545, 5885, 6556, 6729, 4021,11007,35984, 6591, 6641,
1685      6660,10994, 5771, 6679, 6691, 6703, 6722, 5730, 4185, 4037,
1686      3906, 6798, 3704, 4057, 4235, 3352, 3961, 3967, 4231, 4548,
1687      4237, 3960,35984, 6817, 6849,35984,35984,10993, 6147, 6836,
1688      4072,10947, 4254, 4005, 4263, 4313, 4152, 4101, 4325, 4372,
1689      4400, 6919, 4120, 4083, 4180, 3721, 4276, 4469, 6938, 4480,
1690      3580, 4682, 2657, 4527, 4354, 4601, 4647, 4331, 4366, 4489,
1691      4649, 3666, 3545, 4655, 4669, 4418, 4938, 3857, 4395, 4536,
1692      4738, 3682, 4600, 4715, 4728, 4688, 4886, 4725, 4657,10946,
1693      4663, 4621, 4779, 4781, 4811, 4829, 3900, 4850, 4741, 4795,
1694
1695      4456, 4582, 4887, 4889, 6970, 7002, 7009,10945,10954, 6696,
1696      5108, 5451, 4993, 6361,10935,10953,10945,10933,10926,10914,
1697     10912, 4904,10928,10912,10916,10911,10906,10897, 5181,10945,
1698      5037, 6763, 6150, 6883, 7060, 7025, 7029, 7079, 7100, 7132,
1699      7147, 7151, 7166, 7181, 7185,35984, 5171,35984,10942,35984,
1700     10942,10933, 7209, 6596, 7227, 7242, 7257, 7261, 7285, 7289,
1701      7315, 7319, 7373, 7392, 7402, 7446, 7345, 7461, 7465,35984,
1702      5363,35984,10932,35984,10931,10923, 7480, 7495, 6435, 5439,
1703      7510, 7572, 7534, 7591, 7601, 7644, 7659, 7663, 7678, 7693,
1704      7697, 7723, 7738, 7742, 7757, 7772, 7793, 7803, 7822, 7832,
1705
1706      7851, 7861, 7880, 7895, 7910, 7925, 7929, 7953, 7972, 7957,
1707      7987, 7991, 8017, 8041, 8045, 8069, 8073, 8097, 8116, 8131,
1708     10920, 6572, 6867, 8102, 8157, 8170, 5805, 6146, 6461, 6566,
1709      8174, 8200, 8226, 8299, 8230, 8257, 8318, 8339, 8371, 8389,
1710      8407, 8426, 8453, 8483, 8487, 7349,35984,10913,35984, 8513,
1711      8517, 8544, 8548, 8574, 8578, 8604, 8608, 8638, 8692, 8656,
1712      8721, 8765, 8783, 8801, 8819, 8837, 7538,35984,10912,35984,
1713      8855, 8873, 8891, 8953, 8917, 8921, 8982, 9025, 9043, 9061,
1714      9079, 9100, 9118, 9136, 9154, 9172, 9193, 9211, 9229, 9247,
1715      9265, 9283, 9302, 9320, 9338, 9356, 9377, 9396, 9417, 9435,
1716
1717      9453, 9472, 9491, 9509, 9535, 9539, 9565, 9569, 9596, 9600,
1718      9626,    0,10926,10918,    0,10876, 5979,    0,10906,10866,
1719     10849,10863,10853,10849, 4947,10857, 5004, 4980, 5051, 5093,
1720         0, 4955,10853, 5560, 5701, 5053, 5129, 5738, 5404, 5929,
1721      6220, 5298, 5171, 5312,10842,10835,10831,10838,10838,10833,
1722      4922,10828,10820,10825,10807,10810,10818,10811,10800,10805,
1723     10797,10801,10800,10826, 6909, 5512, 6957, 6734, 7246, 8989,
1724      8755, 9630, 9638, 9644, 6628,10825,10815, 6976, 9656, 9670,
1725      9674, 9700, 9706, 9711, 9738, 9742, 9749, 9768, 9778, 9804,
1726      5569, 5610,10776,10784,10785,10773,10765,10761,10764,    0,
1727
1728     10771,10754,10742,10755,10753,10745,10737,10739,10724,10726,
1729     10734,10729,10725,10728,10728,10716,10703,10714,10713,10702,
1730     10691,10692,10677,10679,10687,10682,10679,10681,10681,10722,
1731     35984,10720, 5220,    0, 7206, 7286,10657, 5185, 5393, 5122,
1732      7425, 7624, 4888, 5419, 4902,10662,10651,10648,10663,10663,
1733         0,10656,10649,10654,10638,10639,10632,10635,10641,10635,
1734     10627,10628,10630,10629,10671, 5513, 5309,10669,10661, 5249,
1735      5525,10589, 5234, 5644, 5329, 5585, 5638, 4951, 5283, 4986,
1736         0, 5064,10652, 5090,35984,10634,35984,10599,10647,35984,
1737         0,10637,35984,35984,10635,35984,10629,    0,10605,    0,
1738
1739     10570, 5509, 7315, 5678,    0,    0, 5813, 5969,    0,10603,
1740         0,10564, 6086, 6477, 6337,    0,    0, 6560, 6853,    0,
1741     10585,    0,10550, 5306, 6036, 5390,    0,    0, 5454, 5464,
1742      5695, 5691,10597, 5761,10578,35984,10544, 4692, 5841,10540,
1743      5476, 5910, 5996, 7005, 6017,10538, 6050,10533, 6175, 6321,
1744      6399, 6072, 6439, 4814, 4584, 4958, 5221, 5308, 9857, 7414,
1745      5644, 8186, 7728, 9928,10557,10010, 7112, 7522, 6473, 7126,
1746      9828,10522,10505, 7439,10522,10505,10511,10501,10487, 5510,
1747     10493,10482,10490,10471,10475, 7638, 8444, 8459, 9017,10517,
1748      9818,10092, 2154,10527, 6876,10509, 9382, 9885, 9842, 9893,
1749
1750     10506, 7562, 7784, 8024, 4137, 5293, 4942,35984, 9956, 9972,
1751     35984,35984,10507, 7531, 9991,10473, 5789, 5216, 5653, 5273,
1752      5124, 5566, 3794, 5724,10025,10041,35984, 4328, 3006,10150,
1753      5764, 5580, 5082,10468, 4363, 5777,10233, 5626, 3237, 5791,
1754      2465, 4473, 5272, 5620, 4234, 5757, 5851, 5348, 5439, 5209,
1755      5632, 5863, 5666, 5799, 5529, 5861,10467,10465, 5897,10454,
1756     10290, 5590, 5951, 4960, 5959, 6003,10450, 6088, 6024, 4969,
1757      5380, 5486, 6106, 4987, 6360, 3156, 5654, 6562, 5401, 5572,
1758      5610,10448, 4826, 6061, 6086,10444,10433,10434, 8267, 6773,
1759     10467,35984, 6278, 8623, 9900,10439,10421,    0,10433,10420,
1760
1761     10426,10421,10404, 6059,10408,10397,10409,10388,10388,    0,
1762      6267, 6303, 6746,10059,10102,10120,35984, 6758,35984,10423,
1763     35984,10424,10412,10179,10362,10238,10262,10324,10320,10397,
1764     10435,10445,10463,10473,10492,10502,10528,10532,10547, 8179,
1765     10562,10566,10590,10594,10609,10624,10639,10654,10669,10673,
1766     10688,10706,10724,10734,10752,10771,10781,10799,10809,10828,
1767     10843,10847,10862,10877,10892,10911,10926,10941,10945,10971,
1768     10986,11004,11019,11084,11043,11053,11113,11144,11171,11181,
1769     11103,11199,11217,11227, 9942,10085,10307, 7887, 8029, 8135,
1770     11246,11264,11290,11294, 9716,35984,10410,35984,11321,11361,
1771
1772     11390,11421,11325,11447,11465,11483,11504,11523,11541,11560,
1773     11579,11597,11615,11633,11651,11677,11681,11707,11711,11737,
1774     11755,11773,11791,11809,11828,11847,11865,11883,11901,11920,
1775     11938,11956,11975,11993,12014,12040,12058,12076,12094,12115,
1776     12142,12160,12187,12205,12223,12244,12262,12280,12298,12316,
1777     12343,12361,12379,12397,12415,12433,35984,10424,    0,10411,
1778     10381, 8417,10411,35984,10358,10358,10363,10359,10334,10328,
1779     10296, 6512, 5955, 6305, 6044,10283,10279,10285, 4021,35984,
1780      6210, 4467, 6573, 6631,10345, 6737, 6673, 5083,35984, 5731,
1781      6826,10333, 6829, 6952,10259,10265,10255,10247,10245,10252,
1782
1783     10233,10247,10248,10233,10225,10221,10222,10207,    0,10191,
1784      6371,10247,12491,10401,10294,10430,11426,10930,12019,11454,
1785     12121,12574,12194,12578,12582,10194,10191,10190,10194,10171,
1786     10168,10171,10150, 6988, 6993, 6791, 7027, 6445, 7134, 7175,
1787      6449, 6792, 6717, 6536,10162,10154,10142,10140,10151,10130,
1788     10124,10121,10106,10112,10075,10112,35984, 6478,    0,10088,
1789         0,10031, 7117, 7845, 7306,    0,    0, 7346, 7608,12653,
1790     10000, 9984, 9975, 9978, 9981, 9938, 9947, 9911, 9922,  113,
1791       994, 1027, 1252, 2230,    0, 2303, 7182, 5672, 5928, 5698,
1792      2361, 2394,    0, 2470,    0, 2536, 5934,    0, 7205, 6139,
1793
1794         0,    0, 6257,    0, 6336,35984,35984, 2676, 7263, 2762,
1795      2758,35984, 2841,35984, 2900,35984, 2960,    0, 7096, 7663,
1796      3120,    0, 6903, 7151, 3280,    0, 6234, 6532, 3434,35984,
1797      3481, 3505, 7467, 3532, 5311,35984, 3688, 3756, 6714, 7227,
1798      7356,35984, 3821, 7492, 7498, 6519, 3802, 5862, 6020,12736,
1799      3853, 8212, 8358, 7343,10203,12786, 3841, 3866, 8675, 8725,
1800     35984, 3926, 4024, 4106, 4198, 4401, 4493, 5535, 4566, 4601,
1801      4625, 4658, 4691, 8749, 9479,35984, 4770,12134,12328,11397,
1802     12587,12743,12868, 6017, 4841,10078,11530,12005, 4897, 9811,
1803      9923, 6696, 6245, 5018,12800,12816,35984, 5900,12939, 7407,
1804
1805      6511, 5230, 6425, 6632, 6031,13022, 7633, 6281, 6608, 7444,
1806      4898, 6390, 6569, 6775, 5715, 6822, 5765, 6802, 6974, 5741,
1807      5826, 5891, 6101, 6586, 6905, 6827, 7037, 6716, 6966, 5002,
1808      7051, 7067, 5065, 5089, 6978, 7024, 7090, 6915, 6642, 7102,
1809      6576, 7076, 7121, 7226, 7268, 5178, 7170, 5271,35984,13094,
1810      7368, 7214, 6820, 7362, 7186, 8261, 7423, 7459, 7030, 5308,
1811      5330,12454, 5448, 5501, 5557, 5688, 5691, 5728, 5805, 5939,
1812      7273, 5941, 5971, 6004, 6007, 6044, 7899,12830,12878,12907,
1813     12958,13178,12979,12897,13032,13058,13137,13062,13207, 6844,
1814      6164,13238,13262,13266,13290,13305,13320,13324,13339,13360,
1815
1816     13370,13389,13399,13417,13427,13446,13456,13474,13489,13493,
1817     13519,13523,13538,13557,13567,13585,13604,13614,13632,13650,
1818     13660,13679, 6214,35984,13733,13694,13752,13762,13793,13819,
1819     13823,13838,13853, 9952,13857,13885,13911,13915,13943,13961,
1820     13979,13998,14016,14042,14109,14046,14073,14138,14183,14201,
1821     14219,14240,14259,14277,14298,14316,14334,14352,14373,14391,
1822     14409,14427,14448,14466,14484,14503,14522,14541,14559,14578,
1823     14597,14618,14636,14657,14675,14729,14758,14693,14789,14816,
1824     14820,14846,14850,14876, 6225, 8864, 6219, 6244, 6236, 6274,
1825      6314, 6331, 6335, 7600, 7689, 7702, 7456, 6359, 6377, 6405,
1826
1827      7509, 7298,35984, 7605, 6491, 7672, 6539, 6496,35984, 6515,
1828      6566, 6616, 6647, 6688, 6677, 6709, 6741, 6829, 6849, 6938,
1829     12592, 6985,12774,12873,13219,13006,14144,14880,14888,13309,
1830     12991,14623,14548, 6944, 6947, 6966, 6984, 8761, 9107, 9200,
1831      9309, 7108, 7124, 7116, 7132, 7159, 7144, 7177, 7175, 7205,
1832      7224, 7234, 7252, 7293, 7314, 7322, 7348, 7347, 7365, 7435,
1833      7450, 7408,    0, 7822, 7958, 7422,11591, 7431, 7430, 7438,
1834      7455, 7461, 7475, 7461, 7486, 7487, 7493, 7505, 7537,    0,
1835         0, 7686, 7627, 7705, 7561, 7563, 7535,    0, 7723,    0,
1836      7765,    0, 7853, 7587, 7645,35984, 7635, 7660, 7662, 7667,
1837
1838      7690,35984, 7704,35984, 7691,35984, 7704,    0, 7641, 7684,
1839      7706,35984, 8472,10066,10266,10381,35984, 7673, 7705, 7714,
1840      7713, 7708, 7712, 7736, 7738, 7744, 7730, 7729, 7746,10896,
1841     11047,35984,    0,14906,14919,13123,14923, 7778,14949,15006,
1842     15059, 7796,14955, 7776, 7804, 7812, 7849,14989, 7828, 7837,
1843      7833, 7853,15109,15041,15102, 7781, 7868, 7757, 7783, 7883,
1844      7876, 7887, 7891, 7902, 7934, 7915, 7905, 7906, 7945, 7899,
1845      7968, 7953, 7979, 7983,15181, 7769, 7755, 8007, 7986, 8075,
1846      7987, 7989, 8035, 8014, 8017, 8050,15264,15153, 8055, 8061,
1847      8080, 7759, 7776, 7807,35984, 7829, 7928, 7936, 7934, 7934,
1848
1849      7944, 7997, 8005, 8011, 8005, 8006, 8023,14999,15023,15119,
1850     15216,15269,15293,15303,15321,15331,15355, 8034,15370,15385,
1851     15389,15416,15437,15447,15466,15481,15485,15500,15521,15539,
1852     15549,15567,15638,15591,15601,15667,15710,15725,15729,15753,
1853     15757,15781,15802,15821,15839,15857,15875,15894,15912,15933,
1854     15951,15970,15988,16014,16018,16044,16048,16075,16102,16120,
1855     16139,16158,16176,16197,16223,16227,16253,16257,16284,16288,
1856     16314,16332, 9426, 8041, 8029, 8051, 9091, 8040, 8061, 8063,
1857      8107, 8121, 8130, 8173, 8050, 8069, 8075, 8138, 8080, 8098,
1858      8093, 8095, 8103, 8120, 8113,    0, 8256,15075,15093,15222,
1859
1860     15359,15674,15528, 8285, 8146, 8152, 8148,16326,35984, 8144,
1861      8147, 8166, 8165, 8162, 8177, 8176, 8175, 8176, 8192, 8179,
1862      8187, 8185, 8209, 8195, 8246, 8206, 8209, 8203, 8221, 8215,
1863      8220, 8236, 8238, 8232, 8257, 8333, 8312, 8356,    0, 8326,
1864      8327, 8315, 8348, 8295, 8682, 8373, 8348, 8367,35984, 8332,
1865      8398, 8445, 8278, 8311, 8321, 8324, 8328, 8314, 8315, 8325,
1866      8337, 8336, 8333,15235,15586,16358,16362,16432,16504, 8393,
1867         0,16415, 8380, 8362,16449, 8383, 8399, 8358, 8430, 8352,
1868      8415,16557, 8387, 8458, 8468,16641, 8472, 8476, 8613, 8662,
1869      8474, 8501,16724, 8349, 8376, 8503, 8444, 8492, 8505, 8507,
1870
1871      8511, 8531, 8434,16798,16476, 8405, 8532, 8593, 8407, 8415,
1872      8446, 8463, 8479, 8479, 8466, 8497, 8514, 8528, 8520, 8522,
1873     16520,16442,16609,16660,16681,16599, 8543,16740,16766,16803,
1874     16865,16827,16884,16894,16837,16938,16948,16966,16976,16995,
1875     17010,17025,17040,17058,17076,17094,17112,17138,17142,17168,
1876     17224,17195,17243,17275,17307,17325,17343,17361,17380,17406,
1877     17424, 9500, 8535,    0, 8545,10109,35984, 8561, 8551,35984,
1878      8711, 8572, 8561,    0, 8631,    0, 8584, 8590, 8592, 8648,
1879     16933,17014, 8595, 8589, 8587, 8593, 8612, 8610, 8604, 8617,
1880      8627, 8633, 8619, 8626, 8655, 8658, 8668, 8674, 8802, 8670,
1881
1882      8679, 8688, 8689, 8773, 8742, 8748, 8851, 8705, 8756, 8877,
1883      8766, 8899, 8776, 8792, 8779, 8821, 8948, 8780, 8777, 8810,
1884      8843,    0, 8773,17442, 8903, 9782, 8733, 8751, 8751, 8740,
1885      8773, 8770, 8790, 8778, 8799,17470,17474,17540,17607, 8854,
1886     15423,17500, 8866, 8857,35984,17505,17534,35984,35984, 8845,
1887      9040,16087, 8846, 8850, 8955, 8957,17575,17658,17602,17677,
1888     17741, 8864,17796, 8818, 8821, 8837, 8847, 8843, 8861, 8941,
1889      8943, 8956,17871, 8984, 8859, 9024,35984, 8864, 8876, 8868,
1890      8859, 8885, 8880, 8890, 8925, 8944,17687,17751,17556,35984,
1891      9292,35984, 8979,35984, 8985, 8994,12608,17769,17823,17838,
1892
1893     17900,17931,17958,17962,11140,35984, 8995,35984,17988,17992,
1894     18018,18037,10464, 8952, 8974, 9050, 8983, 9048, 8996, 9058,
1895     35984, 8991, 9013, 9005, 9018, 9024, 9012, 9020, 9017, 9020,
1896      9043, 9046, 9061, 9133, 9102, 9117, 9119, 9186, 9113, 9109,
1897      9110, 9114, 9124, 9143, 9128, 9160, 9132,18049,35984,18056,
1898      9126,11072,11211, 9999,10351,11535, 9079, 9100, 9103,11511,
1899      9085,18084,18089,18161,18231, 9153, 9135, 9147,18118, 9139,
1900      9335, 9141,12106, 9205,18168, 9169,18196, 9365, 9172, 9179,
1901      9202,18282,18366,18450, 9152, 9147, 9149, 9164, 9160,35984,
1902      9160, 9200, 9199, 9194,18203, 9450, 9181, 9170, 9187, 9194,
1903
1904      9174,18123,18099,18469,18479,18510,18536,10753, 9187, 9204,
1905      9205, 9262, 9191, 9193, 9210, 9208, 9223, 9208, 9216, 9231,
1906      9217, 9222, 9278, 9292, 9293, 9289, 9326, 9350, 9371, 9386,
1907      9411, 9362,11253,11950,12755, 9262,12461,12762, 9260,18540,
1908     18555, 9392, 9283, 9313, 9303, 9331, 9422,13296,18622, 9319,
1909     35984,18570, 9685, 9320, 9329, 9393,18694,18778,35984, 9444,
1910     18862,18946,    0,19030,15701,    0,16388, 9475,19114,19198,
1911         0,12925,13127,35984,    0,    0, 9292, 9296, 9308, 9406,
1912      9336, 9400, 9446, 9385,18605, 9396,10802, 9405,14173, 9373,
1913      9396, 9394,18250,19281,19285,19300,18632,18965,10511, 9834,
1914
1915      9386, 9396, 9412, 9410, 9422,11982,10643,11744,13155,11352,
1916      9519, 9494, 9499, 9521, 9541, 9554, 9571, 9584, 9602, 9434,
1917     13234,13712,19318,19334,13788, 9494, 9498, 9502,19405, 9488,
1918      9606,19352, 9755,35984,14664,14765,15250, 9792,19489,19573,
1919     16707,19657,19741,19825,11031,19909, 9445, 9462,10060, 9477,
1920      9510, 9524, 9874,15254, 9476, 9474, 9526,19369,19457,19992,
1921     19996, 9864, 9615, 9910,11854, 9513, 9522,13889, 9518, 9528,
1922     13947, 9526, 9662, 9586, 9588, 9684, 9538,20023,20094, 9596,
1923      9627, 9599, 9591, 9985,10015,20178,    0,17781, 9986,    0,
1924     11567,20262,17410,20346,    0,14080, 9721,    0, 9550, 9571,
1925
1926      9666, 9691, 9582, 9575,20027, 9757,10016, 9796, 9599, 9597,
1927      9612, 9624, 9677, 9693, 9649,20430,18022,10135,20514,10208,
1928      9691, 9724,20598,20682,10209,14604,    0,    0,14247, 9833,
1929      9695, 9748, 9699, 9696,20061,10121,10240,10247,35984,10271,
1930      9717, 9721, 9783, 9793, 9745, 9870,10322, 9832, 9806, 9817,
1931     20766,10395,14510, 9898, 9778, 9899, 9782, 9781,20057,35984,
1932     10393, 9849, 9850, 9900, 9851,    0, 9807, 9840,10097,20129,
1933      9873, 9884, 9907, 9880,10183, 9897, 9909, 9922, 9906, 9955,
1934      9957, 9995, 9959,35984,10012,10142, 9938,10022,10272,20449,
1935     35984,20850,20880,20910,20940,20970,21000,21030,21060,21090,
1936
1937     21120,21150,21180,21210,21240,21270,21300,21330,21360,21390,
1938     10397,21420,21449,21478,21507,10580,21536,10609,21565,21594,
1939     10639,21623,10742,21638,10971,21667,11126,21684,11217,21699,
1940     11254,21714,21739,21769,11280,21798,21827,21856,11651,21871,
1941     11671,21886,11697,21915,11799,21930,12026,21960,21975,12230,
1942     22004,22034,12328,22064,22094,12454,22109,12608,22124,22154,
1943     22184,22214,22244,22274,22304,22334,22364,22394,22424,22453,
1944     22483,22512,10120,22541,22571,22600,22630,22659,22688,22717,
1945     22746,22775,22804,22834,22863,22892,22922,22951,22980,23009,
1946     23038,23053,23082,23106,23130,23147,23171,23186,23201,23225,
1947
1948     23249,23264,23294,23323,23352,23382,23411,23440,23469,23484,
1949     23499,23528,23543,23558,23588,23618,23647,23677,23692,23722,
1950     23737,23752,23782,23812,23842,23872,23902,23932,23962,23992,
1951     24022,24052,24082,24112,24142,24172,24202,24232,24262,24292,
1952     24322,24352,24382,24412,24442,24472,24502,24532,24562,24592,
1953     24622,24652,24681,24710,24739,24768,10128,24798,24828,24858,
1954     24887,24917,24946,24976,25005,25034,25063,25092,25121,25150,
1955     25179,25208,25237,25267,25297,25326,25355,25384,25413,25442,
1956     25471,12618,25492,25516,12832,25531,25560,12838,25577,25592,
1957     25607,25622,25652,25682,25712,25742,25772,25801,25830,25859,
1958
1959     25888,25918,25947,25962,25977,25992,26022,26037,26067,26097,
1960     26127,26157,26187,26202,26226,26256,26286,26316,26346,26376,
1961     26406,26436,26466,26496,26526,26556,26586,26616,26646,26676,
1962     26706,26736,26766,26796,26826,26856,26886,26916,26946,26976,
1963     27006,27036,27066,27096,27126,27156,27186,27216,27246,27276,
1964     27306,27336,27366,27396,27426,27456,27486,27516,27546,27575,
1965     27604,27633,27662,27691,27721,27751,27780,27810,27840,27870,
1966     27899,27928,27957,27986,28016,28045,28074,28103,28133,28163,
1967     28192,28221,28251,28280,28309,28338,28367,28388,12952,28403,
1968     28418,28447,28464,28479,28494,28509,28539,28569,28599,28629,
1969
1970     28659,28689,28719,28749,13040,28778,28807,28822,28851,28866,
1971     28896,28926,28956,28986,29016,29046,29076,29091,13189,29106,
1972     29136,29166,29196,29226,29256,29286,29316,29346,29376,29406,
1973     29436,29466,29496,29526,29556,29586,29616,29646,29676,29706,
1974     29736,29766,29796,29826,29856,29886,29916,29946,29976,30006,
1975     30036,30066,30095,30124,30153,30182,30211,30240,30269,30299,
1976     30328,30357,30386,30415,30444,30459,30488,30503,30518,30533,
1977     30563,30593,30623,30653,30683,30712,30736,30765,30794,30809,
1978     30824,30854,30884,30914,30929,30944,30974,31004,31034,31064,
1979     31094,31124,31154,31184,31214,31244,31274,31304,31334,31364,
1980
1981     31394,31423,31453,13456,31482,31511,31541,31570,31600,31629,
1982     31658,31687,31716,31731,31746,31761,31791,13483,31820,31849,
1983     31864,31879,31894,31924,31939,31969,31999,32029,32059,32089,
1984     32119,32149,32179,32203,32232,32261,32290,32320,13501,32349,
1985     32378,32407,32436,32451,32466,32481,32511,32541,32570,32599,
1986     32614,32629,32644,32674,32689,32719,32749,32779,32809,32839,
1987     32869,32899,32929,32959,32989,33019,33049,13567,33078,33107,
1988     33136,33165,33194,33224,33253,33283,33312,33341,33371,33400,
1989     33429,33444,33459,33474,33504,33534,33564,33579,33609,33639,
1990     33669,33699,33729,33759,33789,33819,33849,33878,33907,33936,
1991
1992     33965,33995,34024,34053,34082,34112,34142,34172,34202,34232,
1993     34261,34290,34319,34334,34349,34379,34394,34424,34454,34484,
1994     34514,34544,34574,34604,34633,34662,34691,34720,34750,34780,
1995     34810,34840,34869,34898,34927,34957,34986,35016,35046,35076,
1996     35106,35136,35166,35196,35225,35254,35284,35314,35343,35372,
1997     35401,35431,35446,35476,35506,35536,35566,35595,35624,35654,
1998     35684,35713,35743,35773,35803,35833,35863,35893,35923,35953
1999     } ;
2000
2001 static yyconst flex_int16_t yy_def[4071] =
2002     {   0,
2003      3492, 3492, 3493, 3493, 3494, 3494, 3495, 3495, 3496, 3496,
2004      3497, 3497, 3498, 3498, 3499, 3499, 3492, 3492, 3491,   19,
2005      3491,   21, 3491,   23, 3491,   25, 3491,   27, 3491,   29,
2006      3491,   31, 3491,   33, 3492, 3492, 3491,   37, 3492, 3492,
2007      3500, 3500, 3492,   43, 3491,   45, 3491,   47, 3491,   49,
2008      3491,   51, 3491,   53, 3491,   55, 3491,   57, 3491,   59,
2009      3491,   61, 3491,   63, 3501, 3501, 3491, 3491, 3491, 3491,
2010      3491, 3491, 3491, 3491, 3491, 3491, 3502, 3491, 3502, 3502,
2011      3502, 3502, 3503, 3502, 3502, 3504, 3491, 3504, 3504, 3504,
2012      3504, 3504, 3504, 3505, 3491, 3505, 3491, 3505, 3505, 3505,
2013
2014      3505, 3505, 3505, 3506, 3507, 3506, 3506, 3506, 3491, 3506,
2015      3491, 3506, 3491, 3508, 3508, 3508, 3508, 3508, 3491, 3491,
2016      3508, 3508, 3491, 3509, 3491, 3491, 3509, 3509, 3509, 3509,
2017      3509, 3509, 3509, 3510, 3491, 3510, 3510, 3510, 3491, 3510,
2018      3510, 3510, 3510, 3491, 3491, 3511, 3512, 3491, 3491, 3491,
2019      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2020      3513, 3513,  162,  162,  162, 3491, 3514, 3491,  162,  162,
2021       162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
2022       162,  162,  162,  162,  162,  162,  162,  162, 3491, 3491,
2023      3515, 3491, 3491, 3491, 3491, 3516, 3491, 3491, 3491, 3491,
2024
2025      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2026      3517, 3517, 3517, 3517, 3491, 3517, 3517, 3517, 3517, 3517,
2027      3517, 3517,  222,  222,  222,  222,  222,  222,  222,  222,
2028       222,  222,  222,  222,  222, 3491, 3491, 3491, 3491, 3491,
2029      3491, 3518, 3512, 3491, 3491, 3491, 3491, 3491, 3519, 3519,
2030      3519, 3491, 3518, 3491, 3519, 3491, 3520, 3519, 3491, 3491,
2031      3521, 3491, 3491, 3522, 3522, 3522, 3522, 3522, 3522, 3522,
2032      3522,  271,  271,  271,  271,  271,  271,  271,  271,  271,
2033       271,  271,  271,  271,  271,  271,  271, 3523, 3491, 3491,
2034      3524, 3524, 3524, 3524, 3491, 3491, 3525, 3491, 3491, 3491,
2035
2036      3526, 3526, 3491, 3491, 3491, 3527, 3491, 3528, 3491, 3491,
2037      3529, 3491, 3491, 3491, 3530, 3530, 3530, 3530, 3530, 3491,
2038      3531, 3491, 3491, 3491, 3491, 3491, 3491, 3532, 3531, 3532,
2039      3532, 3491, 3491, 3533, 3491, 3491, 3491, 3491, 3534, 3534,
2040      3534, 3534, 3534, 3534, 3534, 3534, 3491, 3491, 3491, 3491,
2041      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2042      3491, 3491, 3491, 3535, 3491, 3491, 3491, 3536, 3536, 3537,
2043      3536, 3536, 3536, 3536, 3536, 3536, 3536, 3536, 3536, 3536,
2044      3536, 3536, 3538, 3491, 3491, 3491, 3491, 3491, 3539, 3491,
2045      3491, 3491, 3491, 3491, 3540, 3540, 3540, 3540, 3540, 3540,
2046
2047      3491, 3491, 3491, 3491, 3491, 3491, 3541, 3491, 3491, 3491,
2048      3491, 3491, 3491, 3542, 3542, 3542, 3542, 3542, 3542, 3542,
2049      3542, 3542, 3542, 3542, 3542, 3542, 3542, 3491, 3491, 3543,
2050      3491, 3544, 3545, 3491, 3546, 3546, 3546, 3546, 3546, 3546,
2051      3546, 3546, 3546, 3546, 3546, 3546, 3546, 3546, 3491, 3491,
2052      3491, 3491, 3547, 3548, 3491, 3491, 3491, 3491, 3549, 3491,
2053      3491, 3491, 3491, 3550, 3551, 3552, 3552, 3491, 3553, 3552,
2054      3552, 3552, 3552, 3554, 3555, 3552, 3552, 3491, 3491, 3491,
2055      3491, 3556, 3491, 3557, 3557, 3557, 3557, 3557, 3557, 3557,
2056      3557, 3557, 3557, 3557, 3557, 3557, 3557, 3491, 3491, 3491,
2057
2058      3491, 3491, 3558, 3491, 3491, 3491, 3491, 3559, 3491, 3491,
2059      3560, 3560, 3560, 3560, 3561, 3560, 3560, 3560, 3560, 3560,
2060      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3562,
2061      3562, 3562, 3491, 3491, 3562, 3562, 3562, 3562, 3563, 3563,
2062      3563, 3563, 3563, 3563, 3563, 3563, 3564, 3491, 3564, 3564,
2063      3564, 3564, 3564, 3564, 3565, 3566, 3566, 3491, 3566, 3491,
2064      3565, 3491, 3491, 3565, 3491, 3567, 3567, 3491, 3491, 3491,
2065      3491, 3567, 3567, 3491, 3491, 3568, 3568, 3568, 3568, 3568,
2066      3491, 3491, 3568, 3568, 3568, 3568, 3569, 3491, 3491, 3569,
2067      3569, 3569, 3569, 3491, 3569, 3570, 3570, 3491, 3571, 3491,
2068
2069      3572, 3491, 3491, 3491, 3491, 3573, 3574, 3491, 3491, 3491,
2070      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2071       597, 3491, 3575, 3576,  597,  597, 3577,  597, 3574, 3574,
2072      3491, 3578, 3579, 3580,  597,  597,  597,  597,  597,  597,
2073       597,  597,  597,  597,  597, 3570,  597,  597,  597,  597,
2074       597,  597,  597,  597,  597,  597,  597,  597,  597,  597,
2075       597,  646,  597,  597,  597,  597,  597,  597,  597,  597,
2076       597,  597,  597,  597,  597,  597,  597,  597,  597,  597,
2077       597,  597,  597,  597,  597,  597,  597,  597,  597,  597,
2078       597,  597,  597,  597,  597,  597, 3580, 3580, 3581, 3491,
2079
2080      3491, 3491, 3491, 3491, 3582, 3582, 3491, 3491, 3583, 3491,
2081      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2082      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3582, 3491, 3584,
2083      3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582,
2084      3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582,
2085      3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582,  744, 3582,
2086      3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582,
2087      3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582,
2088      3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582,
2089      3582, 3585, 3586, 3491, 3491, 3491, 3585, 3491, 3587, 3586,
2090
2091      3585, 3586, 3586, 3491, 3588, 3589, 3585, 3589, 3589, 3590,
2092      3591, 3491, 3491, 3491, 3491, 3491, 3491, 3591, 3591, 3591,
2093      3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591,
2094      3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591,
2095      3591, 3591, 3591, 3591, 3591,  832, 3591, 3591, 3591, 3591,
2096      3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591,
2097      3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591,
2098      3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3592, 3592,
2099      3592, 3592, 3491, 3491, 3491, 3593, 3491, 3491, 3491, 3594,
2100      3593, 3491, 3595, 3593, 3491, 3491, 3491, 3491, 3596, 3597,
2101
2102      3596, 3491, 3598, 3491, 3598, 3598, 3598, 3598, 3598, 3491,
2103      3599, 3600, 3491, 3599, 3491, 3600, 3600, 3599, 3599, 3599,
2104      3491, 3491, 3601, 3601, 3602, 3602, 3603, 3491, 3603, 3603,
2105      3491, 3603, 3603, 3603, 3603, 3491, 3491, 3491, 3491, 3491,
2106      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2107      3491, 3491, 3491, 3491, 3491, 3604, 3491, 3605, 3491, 3491,
2108      3604, 3491, 3606, 3605, 3604, 3605, 3605, 3607, 3608, 3604,
2109      3604, 3604, 3604, 3604, 3604, 3604, 3604, 3604, 3604, 3604,
2110      3604, 3604, 3604, 3604, 3604, 3608, 3608, 3609, 3491, 3491,
2111      3491, 3491, 3491, 3491, 3491, 3491, 3610, 3610, 3610, 3610,
2112
2113      3610, 3610, 3610, 3491, 3611, 3611, 3611, 3611, 3611, 3611,
2114      3611, 3611, 3611, 3611, 3611, 3611, 3611, 3611, 3611, 3611,
2115      3611, 3611, 3612, 3491, 3612, 3491, 3613, 3613, 3613, 3613,
2116      3613, 3613, 3613, 3613, 3613, 3613, 3613, 3613, 3613, 3613,
2117      3613, 3613, 3613, 3613, 3614, 3615, 3616, 3491, 3614, 3617,
2118      3491, 3617, 3491, 3491, 3618, 3619, 3618, 3618, 3491, 3620,
2119      3491, 3618, 3618, 3618, 3618, 3491, 3621, 3621, 3621, 3621,
2120      3621, 3621, 3621, 3621, 3621, 3621, 3621, 3621, 3621, 3621,
2121      3621, 3621, 3621, 3621, 3621, 3621, 3621, 3491, 3622, 3622,
2122      3491, 3623, 3623, 3623, 3624, 3624, 3623, 3623, 3623, 3623,
2123
2124      3623, 3623, 3623, 3491, 3491, 3625, 3625, 3491, 3626, 3491,
2125      3491, 3627, 3627, 3491, 3628, 3491, 3629, 3629, 3630, 3631,
2126      3630, 3630, 3632, 3632, 3630, 3633, 3630, 3634, 3634, 3635,
2127      3636, 3635, 3635, 3637, 3637, 3635, 3638, 3635, 3639, 3639,
2128      3640, 3641, 3640, 3640, 3642, 3642, 3640, 3643, 3640, 3644,
2129      3644, 3625, 3625, 3627, 3627, 3645, 3645, 3646, 3647, 3646,
2130      3646, 3648, 3648, 3646, 3649, 3646, 3491, 3491, 3650, 3651,
2131      3652, 3651, 3653, 3491, 3491, 3491, 3654, 3654, 3491, 3491,
2132      3655, 3654, 3656, 3657, 3491, 3491, 3491, 3491, 3491, 3491,
2133      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3658, 3659,
2134
2135      3660, 3491, 3661, 3661, 3653, 1205, 3662, 3491, 3491, 3491,
2136      3663, 3491, 3664, 3665, 3666, 3666, 3667, 3668, 1205, 1205,
2137      1205, 3653, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205,
2138      1205, 1205, 3491, 3491, 3491, 3491, 3491, 3491, 3658, 3661,
2139      1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205,
2140      1205, 3653, 1205, 1205, 1205, 1205, 1205, 1205, 3491, 1205,
2141      1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205,
2142      1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205,
2143      1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205,
2144      1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205,
2145
2146      1205, 1205, 1205, 1205, 3491, 3491, 3669, 3491, 3491, 3670,
2147      3671, 3671, 3491, 3672, 3491, 3491, 3491, 3491, 3491, 3491,
2148      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3673, 3674,
2149      3491, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670,
2150      3670, 3670, 3670, 3670, 3670, 3491, 3491, 3491, 3491, 3491,
2151      3491, 3674, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670,
2152      3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3491,
2153      3491, 3491, 3491, 3491, 3491, 3674, 3670, 3670, 3491, 3491,
2154      3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670,
2155      3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670,
2156
2157      3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670,
2158      3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670,
2159      3675, 3491, 3676, 3677, 3677, 3678, 3679, 3491, 3491, 3680,
2160      3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681,
2161      3681, 3681, 3681, 3681, 3491, 3491, 3491, 3491, 3491, 3681,
2162      3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681,
2163      3681, 3681, 3681, 3681, 3681, 3491, 3491, 3491, 3491, 3491,
2164      3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681,
2165      3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681,
2166      3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681,
2167
2168      3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681,
2169      3681, 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, 3491,
2170      3690, 3690, 3690, 3690, 3491, 3491, 3691, 3691, 3691, 3691,
2171      3692, 3692, 3692, 3693, 3693, 3694, 3695, 3694, 3694, 3696,
2172      3696, 3694, 3697, 3694, 3491, 3491, 3491, 3491, 3491, 3491,
2173      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2174      3491, 3491, 3491, 3491, 3698, 3491, 3699, 3700, 3701, 3701,
2175      3701, 3701, 3701, 3491, 3491, 3491, 3702, 3699, 3701, 3701,
2176      3701, 3701, 3701, 3701, 3701, 3701, 3701, 3701, 3701, 3701,
2177      3491, 3703, 3491, 3491, 3491, 3491, 3704, 3704, 3704, 3704,
2178
2179      3704, 3705, 3705, 3705, 3705, 3705, 3705, 3705, 3705, 3705,
2180      3705, 3705, 3705, 3705, 3705, 3706, 3706, 3706, 3706, 3706,
2181      3706, 3706, 3706, 3706, 3706, 3706, 3706, 3706, 3706, 3707,
2182      3491, 3491, 3491, 3708, 3709, 3709, 3710, 3711, 3710, 3710,
2183      3712, 3712, 3710, 3713, 3710, 3714, 3714, 3714, 3714, 3714,
2184      3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714,
2185      3714, 3714, 3714, 3714, 3715, 3716, 3716, 3717, 3717, 3718,
2186      3718, 3716, 3719, 3716, 3716, 3720, 3720, 3716, 3721, 3716,
2187      3722, 3491, 3723, 3491, 3491, 3491, 3491, 3491, 3724, 3491,
2188      3725, 3726, 3491, 3491, 3727, 3491, 3728, 3729, 3729, 3729,
2189
2190      3729, 3730, 3731, 3732, 3729, 3729, 3733, 3734, 3735, 3735,
2191      3735, 3735, 3736, 3737, 3738, 3735, 3735, 3739, 3740, 3741,
2192      3741, 3741, 3741, 3742, 3743, 3744, 3741, 3741, 3745, 3746,
2193      3747, 3748, 3749, 3748, 3491, 3491, 3750, 3750, 3750, 3750,
2194      3750, 3751, 3751, 3752, 3753, 3750, 3750, 3750, 3754, 3754,
2195      3755, 3491, 3491, 3491, 3756, 3757, 3758, 3759, 3760, 3491,
2196      3491, 3491, 3491, 3761, 3491, 3761, 3762, 3762, 3763, 3763,
2197      3764, 3491, 3491, 3765, 3491, 3491, 3491, 3491, 3491, 3491,
2198      3491, 3491, 3491, 3491, 3491, 3766, 3491, 3491, 3491, 3491,
2199      3767, 3760, 1792, 3768, 3769, 3770, 3491, 3771, 3491, 3772,
2200
2201      3770, 3773, 3773, 3774, 1792, 1792, 1792, 3491, 3491, 3491,
2202      3491, 3491, 3491, 3775, 3776, 1792, 1792, 1792, 1792, 1792,
2203      1792, 1792, 1792, 1792, 3491, 3491, 3491, 1792, 1792, 3760,
2204      1792, 1792, 1792, 1792, 1792, 1792, 3491, 1792, 1792, 1792,
2205      1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
2206      1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
2207      3491, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
2208      1792, 1792, 1792, 1792, 1830, 1792, 1792, 1792, 1792, 1792,
2209      1792, 1792, 1792, 1792, 1792, 1792, 3491, 3491, 3777, 3491,
2210      3491, 3491, 3491, 3778, 3778, 3491, 3491, 3779, 3491, 3491,
2211
2212      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3780,
2213      3781, 3781, 3782, 3777, 3777, 3777, 3491, 3491, 3491, 3491,
2214      3491, 3491, 3783, 3777, 3777, 3777, 3777, 3777, 3777, 3777,
2215      3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3491,
2216      3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777,
2217      3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777,
2218      3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777,
2219      3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777,
2220      3777, 3777, 3777, 3777, 3491, 3491, 3784, 3785, 3785, 3786,
2221      3787, 3787, 3787, 3491, 3491, 3491, 3491, 3491, 3787, 3787,
2222
2223      3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787,
2224      3787, 3787, 3787, 3491, 3787, 3787, 3787, 3787, 3787, 3787,
2225      3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787,
2226      3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787,
2227      3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787,
2228      3787, 3787, 3787, 3787, 3787, 3787, 3491, 3788, 3789, 3790,
2229      3791, 3792, 3793, 3491, 3794, 3794, 3794, 3794, 3491, 3491,
2230      3491, 3795, 3795, 3795, 3795, 3796, 3796, 3796, 3797, 3491,
2231      3797, 3797, 3797, 3798, 3799, 3800, 3801, 3797, 3491, 3797,
2232      3802, 3803, 3804, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2233
2234      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3805, 3806,
2235      3491, 3491, 3491, 3807, 3807, 3807, 3807, 3807, 3807, 3807,
2236      3807, 3807, 3807, 3807, 3807, 3491, 3491, 3491, 3491, 3808,
2237      3808, 3808, 3808, 3809, 3809, 3809, 3809, 3809, 3809, 3809,
2238      3809, 3809, 3809, 3809, 3810, 3810, 3810, 3810, 3810, 3810,
2239      3810, 3810, 3810, 3810, 3810, 3811, 3491, 3491, 3812, 3812,
2240      3812, 3812, 3813, 3814, 3815, 3812, 3812, 3816, 3817, 3491,
2241      3818, 3818, 3818, 3818, 3818, 3818, 3818, 3818, 3818, 3818,
2242      3818, 3818, 3818, 3818, 3819, 3820, 3821, 3822, 3823, 3822,
2243      3824, 3824, 3822, 3822, 3822, 3822, 3825, 3822, 3826, 3827,
2244
2245      3822, 3822, 3828, 3822, 3829, 3491, 3491, 3830, 3491, 3831,
2246      3491, 3491, 3832, 3491, 3833, 3491, 3834, 3834, 3835, 3836,
2247      3837, 3837, 3838, 3839, 3840, 3840, 3841, 3842, 3843, 3491,
2248      3843, 3844, 3491, 3845, 3846, 3491, 3847, 3846, 3846, 3848,
2249      3848, 3491, 3849, 3850, 3850, 3491, 3491, 3851, 3852, 3853,
2250      3491, 3854, 3854, 3491, 3855, 3856, 3491, 3491, 3491, 3491,
2251      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2252      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3857, 3858, 3858,
2253      3859, 3859, 3853, 2283, 3860, 3491, 3491, 3491, 3491, 3491,
2254      3861, 2283, 2283, 2283, 3491, 3491, 3491, 2283, 3853, 2299,
2255
2256      2283, 2283, 2283, 2283, 2283, 3491, 2283, 2283, 2283, 2299,
2257      3491, 2283, 2283, 2283, 2283, 2283, 2283, 2283, 2283, 2283,
2258      2283, 2283, 2283, 2283, 2283, 2283, 2283, 2283, 2283, 2283,
2259      2283, 2283, 3491, 3491, 2283, 2283, 2283, 2283, 2283, 2283,
2260      2283, 2283, 2283, 2283, 2283, 2283, 2283, 3491, 3491, 2299,
2261      2283, 2283, 2283, 2283, 2283, 2299, 2283, 2283, 2283, 3491,
2262      3491, 3862, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2263      3491, 3491, 3491, 3491, 3491, 3491, 3863, 3862, 3862, 3862,
2264      3862, 3862, 3862, 3862, 3862, 3862, 3862, 3862, 3862, 2382,
2265      3491, 3862, 3862, 3862, 3862, 3862, 3862, 3862, 3862, 3862,
2266
2267      3862, 3862, 3862, 3862, 3862, 3862, 3862, 3862, 3862, 3862,
2268      3862, 3862, 3862, 3862, 3862, 3862, 3862, 3862, 3862, 3862,
2269      3862, 3862, 3491, 3491, 3862, 3862, 3862, 3862, 3862, 3862,
2270      3862, 3862, 3862, 3864, 3865, 3865, 3865, 3865, 3865, 3865,
2271      3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865,
2272      3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865,
2273      3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865,
2274      3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865,
2275      3865, 3865, 3865, 3865, 3866, 3867, 3868, 3868, 3868, 3868,
2276      3491, 3491, 3491, 3869, 3869, 3869, 3869, 3870, 3870, 3870,
2277
2278      3871, 3871, 3491, 3872, 3873, 3874, 3875, 3491, 3491, 3491,
2279      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2280      3876, 3877, 3878, 3878, 3878, 3878, 3878, 3878, 3878, 3878,
2281      3878, 3878, 3878, 3491, 3491, 3491, 3491, 3879, 3879, 3879,
2282      3879, 3880, 3880, 3880, 3880, 3880, 3880, 3880, 3880, 3880,
2283      3881, 3881, 3881, 3881, 3881, 3881, 3881, 3881, 3881, 3491,
2284      3491, 3882, 3882, 3883, 3884, 3885, 3885, 3885, 3885, 3885,
2285      3885, 3885, 3885, 3885, 3885, 3885, 3885, 3885, 3886, 3887,
2286      3887, 3888, 3887, 3889, 3890, 3890, 3887, 3887, 3891, 3887,
2287      3892, 3887, 3491, 3491, 3893, 3491, 3491, 3894, 3895, 3896,
2288
2289      3897, 3491, 3898, 3491, 3899, 3491, 3900, 3901, 3491, 3491,
2290      3491, 3491, 3902, 3903, 3491, 3491, 3491, 3491, 3491, 3491,
2291      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2292      3491, 3491, 3904, 3905, 3905, 3491, 3906, 3907, 3906, 3908,
2293      3908, 3909, 3910, 2641, 2641, 2641, 2641, 3491, 2641, 2641,
2294      2641, 2641, 3491, 3491, 3491, 2641, 2641, 3491, 2641, 2641,
2295      2641, 2641, 2641, 2641, 2641, 2641, 2641, 2641, 2641, 2641,
2296      2641, 2641, 2641, 2641, 3908, 3491, 3491, 2641, 2641, 2675,
2297      2641, 2641, 2641, 2641, 2641, 2641, 3491, 3491, 2641, 2641,
2298      2641, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2299
2300      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3911, 3911, 3911,
2301      3911, 3911, 3911, 3911, 3911, 3911, 3911, 3491, 3911, 3911,
2302      3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911,
2303      3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911,
2304      3911, 3911, 3912, 3912, 3912, 3912, 3912, 3912, 3912, 3912,
2305      3912, 3912, 3912, 3912, 3912, 3912, 3912, 3912, 3912, 3912,
2306      3912, 3912, 3912, 3912, 3912, 3912, 3912, 3912, 3912, 3912,
2307      3912, 3912, 3913, 3914, 3914, 3914, 3914, 3491, 3491, 3491,
2308      3915, 3915, 3915, 3915, 3916, 3916, 3916, 3917, 3491, 3491,
2309      3491, 3491, 3491, 3491, 3491, 3918, 3919, 3920, 3491, 3920,
2310
2311      3920, 3920, 3920, 3491, 3491, 3491, 3491, 3491, 3491, 3921,
2312      3921, 3921, 3921, 3921, 3921, 3921, 3922, 3922, 3922, 3922,
2313      3923, 3923, 3923, 3923, 3924, 3925, 3925, 3925, 3925, 3925,
2314      3925, 3925, 3925, 3925, 3925, 3926, 3926, 3927, 3926, 3928,
2315      3928, 3926, 3491, 3929, 3930, 3931, 3932, 3933, 3491, 3491,
2316      3491, 3934, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2317      3491, 3491, 3491, 3491, 3935, 3935, 3936, 3937, 3937, 3938,
2318      3939, 3940, 2869, 2869, 3491, 2869, 2869, 2869, 2869, 3491,
2319      2869, 2869, 2869, 2869, 2869, 3937, 2869, 2869, 2869, 2869,
2320      2869, 2869, 3491, 3491, 3491, 2869, 2869, 2869, 2869, 2869,
2321
2322      2869, 2869, 2869, 3491, 3491, 3491, 2869, 3491, 3491, 3491,
2323      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2324      3941, 3941, 3941, 3941, 3941, 3941, 3491, 3941, 3941, 3941,
2325      3941, 3941, 3941, 3941, 3941, 3941, 3941, 3941, 3941, 3941,
2326      3941, 3941, 3941, 3942, 3942, 3942, 3942, 3942, 3942, 3942,
2327      3942, 3942, 3942, 3942, 3942, 3942, 3942, 3942, 3942, 3942,
2328      3942, 3943, 3944, 3944, 3944, 3491, 3491, 3491, 3491, 3491,
2329      3945, 3946, 3946, 3946, 3947, 3948, 3491, 3491, 3491, 3949,
2330      3950, 3950, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3951,
2331      3951, 3951, 3951, 3951, 3951, 3951, 3952, 3953, 3954, 3955,
2332
2333      3955, 3955, 3955, 3956, 3957, 3957, 3958, 3959, 3491, 3960,
2334      3961, 3962, 3963, 3964, 3965, 3966, 3966, 3967, 3491, 3491,
2335      3491, 3968, 3491, 3969, 3968, 3970, 3491, 3491, 3491, 3491,
2336      3491, 3491, 3491, 3491, 3491, 3971, 3972, 3973, 3973, 3974,
2337      3491, 3975, 3039, 3039, 3491, 3491, 3491, 3491, 3491, 3491,
2338      3976, 3977, 3039, 3039, 3039, 3039, 3491, 3973, 3491, 3491,
2339      3491, 3039, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3039,
2340      3039, 3039, 3973, 3039, 3491, 3491, 3491, 3491, 3491, 3491,
2341      3491, 3491, 3491, 3491, 3491, 3491, 3978, 3978, 3978, 3491,
2342      3491, 3491, 3491, 3491, 3491, 3979, 3978, 3978, 3978, 3978,
2343
2344      3978, 3978, 3980, 3491, 3491, 3491, 3491, 3491, 3980, 3980,
2345      3980, 3980, 3981, 3982, 3491, 3983, 3984, 3985, 3986, 3987,
2346      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3988, 3988,
2347      3988, 3988, 3988, 3989, 3990, 3991, 3991, 3992, 3993, 3491,
2348      3994, 3995, 3996, 3986, 3997, 3491, 3491, 3491, 3491, 3998,
2349      3491, 3999, 3999, 4000, 4000, 4001, 3491, 3491, 3491, 4002,
2350      3491, 4003, 4004, 4005, 4005, 4006, 3165, 3165, 3491, 4007,
2351      4008, 4007, 3491, 3165, 3491, 4009, 4009, 3177, 3491, 4009,
2352      4009, 3491, 3491, 3165, 3491, 3491, 3491, 3491, 3491, 3491,
2353      3491, 3165, 3165, 3165, 3491, 4010, 3491, 3491, 3491, 3491,
2354
2355      3491, 4011, 4011, 4011, 4011, 4011, 4012, 4013, 4014, 3491,
2356      4015, 4016, 3491, 3491, 3491, 3491, 3491, 4017, 4017, 4017,
2357      4017, 4017, 4018, 4019, 4019, 4020, 3491, 4021, 4022, 4023,
2358      4024, 3491, 4025, 3491, 4026, 3491, 3491, 3491, 3491, 4027,
2359      4028, 3184, 3165, 4029, 3165, 3165, 3491, 3491, 3491, 4030,
2360      3491, 4030, 3252, 3491, 4030, 4030, 3491, 3491, 3491, 3491,
2361      3491, 3257, 3257, 3491, 4030, 3258, 3258, 4030, 3491, 3491,
2362      3184, 3252, 3252, 3491, 3261, 3184, 3491, 3491, 3491, 3491,
2363      3491, 3165, 3165, 3165, 3491, 4031, 4032, 4031, 3491, 3491,
2364      3491, 3491, 4033, 4033, 4033, 4033, 4033, 4034, 4035, 4036,
2365
2366      3491, 3491, 3491, 3491, 3491, 4037, 4037, 4037, 4037, 4037,
2367      4038, 4039, 4039, 4040, 3491, 4041, 4042, 4043, 4044, 3491,
2368      3491, 3491, 4045, 4046, 3252, 3491, 3165, 4047, 3261, 3165,
2369      3491, 3252, 3491, 3491, 3332, 3332, 3332, 3332, 3491, 3491,
2370      3340, 3491, 3491, 3491, 3344, 3491, 3491, 3491, 3491, 3491,
2371      3165, 3165, 3491, 3491, 3491, 3491, 4048, 4049, 4049, 4049,
2372      4050, 3491, 4051, 4052, 3491, 3491, 3491, 3491, 3491, 4053,
2373      3491, 4053, 4054, 4055, 4055, 4056, 3491, 4045, 4046, 3491,
2374      3165, 4057, 3332, 3332, 3332, 3491, 3339, 3339, 3379, 3342,
2375      3342, 3491, 3332, 3491, 3343, 3332, 3396, 3346, 3491, 3491,
2376
2377      3165, 3491, 3491, 3491, 4049, 4058, 4051, 4059, 3491, 3491,
2378      4053, 4053, 4060, 4060, 3491, 4045, 3332, 3417, 3491, 3379,
2379      3165, 4061, 3491, 3491, 3416, 3332, 3392, 3394, 3393, 3491,
2380      3491, 3165, 3491, 3491, 4049, 4058, 4062, 3491, 3491, 4059,
2381      3491, 3491, 4063, 4063, 3491, 3417, 3416, 3165, 4064, 3423,
2382      3491, 3417, 3393, 3491, 3491, 3165, 3491, 3491, 4049, 3491,
2383      4062, 4065, 4065, 3165, 4066, 3451, 3491, 3165, 3491, 4049,
2384      4067, 4067, 3165, 4068, 3491, 4069, 4069, 3165, 4070, 3491,
2385      3491, 3165, 3491, 3491, 3165, 3165, 3165, 3165, 3165, 3491,
2386         0, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2387
2388      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2389      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2390      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2391      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2392      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2393      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2394      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2395      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2396      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2397      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2398
2399      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2400      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2401      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2402      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2403      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2404      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2405      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2406      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2407      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2408      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2409
2410      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2411      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2412      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2413      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2414      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2415      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2416      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2417      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2418      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2419      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2420
2421      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2422      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2423      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2424      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2425      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2426      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2427      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2428      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2429      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2430      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2431
2432      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2433      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2434      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2435      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2436      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2437      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2438      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2439      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2440      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2441      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2442
2443      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2444      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2445      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2446      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2447      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2448      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
2449      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491
2450     } ;
2451
2452 static yyconst flex_int16_t yy_nxt[36069] =
2453     {   0,
2454      3491, 3491,   69,   70,   75,   69,   70,   75,  562,  563,
2455        69,   70,   71,   72,   78,   71,   72,  704, 3491,   73,
2456        79,   80,   76,   75, 3491,  192,   75,   81,  192,   74,
2457       523,  193,   74,  528,  707,  524,  259,   82,  529,  259,
2458       531,  238,  537,  194,  627,  532,  580,  538,   71,   75,
2459        72,   71,   75,   72,  260,  621,   79,   83,   80,   84,
2460        69,   70,   84,  540,   78,   69,   70,  238,  541,  882,
2461        79,   80,  621,  635,   87,   88,   89,   85,   75,  545,
2462       304,   75,   90,  304,  546,  549,  553,   82,  881,  577,
2463       550,  554,   91,   95,   96,  523,   76,   97,   76,  621,
2464
2465       560, 1267,  621,   98,   99,  525,   79,   83,   80,  626,
2466       100,   88,   83,   89,   92,   69,   70,   92,  309,  304,
2467       101,  309,  304,  528,   87,   88,   89,   75,  565, 1694,
2468        75, 1694,   93,  105,  106,   75,   76,   76,   75,   98,
2469       621,   99,   91,  107,  108,   76,  102,   95,   96,  102,
2470       109,   97,  402,   76,  570,  402,  904,   98,   99,  571,
2471       110,   88,   83,   89,  103, 2574,  112,  105,  106,  112,
2472       403,  574,  567,  665,  101,  567,  575,  107,  108,  107,
2473       111,  108,  589,  600,  113,  568,  600,  590,  115,   69,
2474       116,  115,  594,   98,  110,   99,  601,  595,  523,  117,
2475
2476       118,  119,  712,  524,  428,  951,  120,  428,  122,   69,
2477       116,  122,  707,  107,  111,  108,  121,  125,  126,  117,
2478       118,  119,  429,  621,  578,  952,  123,  127,  128,  579,
2479       132,  125,  126,  132,  129,  117,  121,  118,  928,  135,
2480       136,  127,  128,  428,  130,  525,  428,  528,  133,  137,
2481       138,  139,  529,  621,  621,  117,  140,  118,  130,  577,
2482       928,  429,  666,  127,  131,  128,  141,  581,  582,  621,
2483       142,  135,  136,  142,  658,  695,  659,  127,  131,  128,
2484       696,  137,  138,  139, 1222,  137,  660,  138,  143,   69,
2485        70,  585,   75,   69,   70,   75,  586,  523,  141,   71,
2486
2487        72,  712,  524,   71,   72,  332,   73,  913,  332,  428,
2488        76,  333,  428,  707,  577,  621,   74,  137,  462,  138,
2489        74,  462,  462,   76,  621,  462,  577,  429,  713,  704,
2490       704,  714, 1260,  334,  677,   71,  463,   72,  678,   71,
2491       463,   72,   68,   68,   69,   70,   68,  144,  145,   68,
2492       146,  144,   68,  147,  148,  149,  150,  151,  152,  153,
2493       154,  155,  156,  156,  156,  156,  157,  152,  158,  152,
2494       159,  160,  161,  161,  161,  161,  161,  161,  161,  162,
2495       163,  161,  161,  164,  165,  161,  163,  161,  161,  161,
2496       166,  167,  168,   68,  169,  170,  171,  172,  173,  174,
2497
2498       175,  176,  161,  177,  161,  161,  178,  179,  180,  181,
2499       182,  161,  183,  184,  185,  186,  187,  188,  161,  161,
2500       161,  189,  144,  190,  191,  161,   68,   68,   69,   70,
2501        68,  195,  145,   68,  196,  197,  198,  147,  199,  200,
2502       201,  202,  203,  204,   68,  205,   68,   68,   68,   68,
2503        68,  206,  207,  208,  209,  210,  211,  211,  211,  211,
2504       211,  211,  211,  211,  212,  211,  211,  213,  214,  211,
2505       212,  211,  211,  211,   71,   68,   72,  215,  216,  217,
2506       218,  219,  220,  221,  222,  223,  211,  224,  211,  211,
2507       225,  226,  227,  228,  229,  211,  230,  231,  232,  233,
2508
2509       234,  235,  211,  211,  211,  189,  236,   68,  237,  211,
2510       239,  239,   69,  240,  239,  239,  241,  239,  242,  239,
2511       239,  243,   71,  244,  245,  239,  239,  239,  239,  246,
2512        68,   68,   68,   68,  247,  239,  239,  239,  239,  248,
2513       249,  249,  249,  249,  249,  249,  249,  249,  250,  249,
2514       249,  251,  249,  249,  250,  249,  249,  249,  252,  253,
2515       254,  239,  249,  249,  249,  249,  249,  249,  249,  249,
2516       249,  249,  249,  249,  249,  249,  249,  249,  249,  249,
2517       249,  249,  249,  255,  249,  249,  249,  249,  249,  239,
2518       239,  256,  257,  258,   68,   68,   69,   70,   68,  195,
2519
2520       145,   68,  261,  197,  198,  147,  199,  200,  201,  202,
2521       203,  262,  263,  205,   68,   68,   68,   68,   68,   68,
2522       207,  208,  209,  210,  264,  264,  264,  264,  264,  264,
2523       264,  264,  265,  264,  264,  266,  267,  264,  265,  264,
2524       264,  264,   71,   68,   72,  215,  268,  269,  270,  271,
2525       272,  273,  274,  275,  264,  276,  264,  264,  277,  278,
2526       279,  280,  281,  264,  282,  283,  284,  285,  286,  287,
2527       264,  264,  264,   68,  236,  190,  237,  264,   68,   68,
2528        69,   70,   68,   68,  145,   68,  288,   68,   68,  289,
2529        71,   72,   68,   68,   68,   68,   68,   73,   68,   68,
2530
2531        68,   68,   68,  290,   68,   68,   68,   74,  291,  291,
2532       291,  291,  291,  291,  291,  291,  292,  291,  291,  293,
2533       291,  291,  292,  291,  291,  291,   71,   68,   72,   68,
2534       291,  291,  291,  291,  291,  291,  291,  291,  291,  291,
2535       291,  291,  291,  291,  291,  291,  291,  291,  291,  291,
2536       291,  294,  291,  291,  291,  291,  291,  295,   68,   68,
2537        68,  291,   68,  296,   69,   70,  296,   68,   68,   68,
2538       297,  298,  298,   68,   71,   72,  298,   68,   68,   68,
2539        68,   73,   68,   68,   68,   68,  299,  300,   68,   68,
2540        68,   74,  301,  301,  301,  301,  301,  301,  301,  301,
2541
2542       301,  301,  301,  301,  301,  301,  301,  301,  301,  301,
2543        71,   68,   72,  298,  302,  301,  301,  301,  301,  301,
2544       301,  301,  301,  301,  301,  301,  301,  301,  301,  301,
2545       301,  301,  301,  301,  301,  301,  301,  301,  301,  301,
2546       301,  303,   68,   68,   68,  301,   68,  305,   69,   70,
2547       305,   68,   68,   68,  306,   68,   68,   68,   71,   72,
2548        68,   68,   68,   68,   68,   73,   68,   68,   68,   68,
2549        68,  307,   68,   68,   68,   74,  308,  308,  308,  308,
2550       308,  308,  308,  308,  308,  308,  308,  308,  308,  308,
2551       308,  308,  308,  308,   71,   68,   72,   68,  308,  308,
2552
2553       308,  308,  308,  308,  308,  308,  308,  308,  308,  308,
2554       308,  308,  308,  308,  308,  308,  308,  308,  308,  308,
2555       308,  308,  308,  308,  308,   68,   68,   68,   68,  308,
2556        68,  296,  310,   70,  296,   68,   68,   68,  311,  298,
2557       298,   68,   71,   72,  298,  312,   68,  312,   68,   73,
2558        68,   68,   68,   68,  299,  300,   68,  313,   68,  314,
2559       315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
2560       315,  315,  315,  315,  315,  315,  315,  315,   71,   68,
2561        72,  298,  315,  316,  315,  315,  315,  317,  315,  315,
2562       315,  318,  315,  315,  315,  315,  315,  315,  315,  315,
2563
2564       315,  319,  315,  315,  315,  315,  315,  315,  315,  303,
2565        68,   68,   68,  315,  296,   69,   70,  296,  304,   69,
2566        70,  304,  528,   69,   70,   71,   72,  529,  702,   71,
2567        72,  702,   73,  335,  336,  476,   76,  299,  476,  621,
2568        73,  299,   74,  915,  621, 1230,   74,  337,  499,  338,
2569        74,  499,  509,  477,  521,  509,  526,  521,  938,  526,
2570      2575,   71,  939,   72,  636,   71,   76,   72,  916,   71,
2571       510,   72,  522,  535,  527,  543,  535,  521,  543,  712,
2572       521,  637,  602,  638,  888,  602, 2576,  888,  703,  707,
2573       812,  536,  303,  544,  603,  522,  303,   68,  320,   69,
2574
2575        70,  320,   68,   68,   68,  321,   68,   68,   68,  322,
2576        72,   68,  312,  323,  312,   68,   73,   68,   68,   68,
2577        68,  324,   68,  325,   68,  326,  327,  328,  328,  328,
2578       328,  328,  328,  328,  328,  328,  328,  328,  328,  328,
2579       328,  328,  328,  328,  328,   71,  329,   72,   68,  328,
2580       328,  328,  328,  328,  328,  328,  328,  328,  328,  328,
2581       328,  328,  328,  328,  328,  330,  328,  328,  328,  328,
2582       328,  331,  328,  328,  328,  328,  303,   68,   68,   68,
2583       328,   75,   69,   70,   75,   69,  340,  551,  621,   68,
2584       551,  707,  335,  336,  895,  341,  342,  895,  621,   76,
2585
2586       557,  558,  343,  557,  564,  552,  337,  564,  338,   74,
2587      1223,   68,  344,  928,  345,   69,  340,  345,  559,   68,
2588       521,  639,  527,  521,  640,  341,  342,  621,   71, 1071,
2589        72,  341,  346,  342,  573,  928, 1072,  573,  522,  512,
2590       513,   68,  344,  523,  704,  928,  641,  568,  524,  514,
2591       515,  583,  527,  642,  583,  521,  516,  643,  521,  592,
2592       644,  341,  592,  342,   69,   70,  517,  928,  710,  584,
2593       621,  710, 1109,  522,   71,   72,  621,  593,  621,  708,
2594       711,   73,  708,  621,  528,  514, 1109,  518,  347,  529,
2595       348,   74,  709,  645,  707,  957,  523,  692,  661,  577,
2596
2597       662,  524,  667,  646,  349,  693,  668,  663,  664,  707,
2598        71,  694,   72,  647,  528,  943,  350,  351,  352,  529,
2599       353,  354,  669,  355, 2577,  944,  356,  707,  357,  358,
2600      1189, 1190,  957,  359,  360,  361,  362,  363,   68,   68,
2601        69,   70,   68,   68,   68,   68,  364,   68,   68,   68,
2602        71,   72,  365,   68,   68,   68,   68,   73,   68,   68,
2603        68,   68,  366,   68,   68,   68,  367,   74,  368,  368,
2604       368,  368,  368,  368,  368,  368,  368,  368,  368,  368,
2605       369,  368,  368,  368,  368,  368,   71,  370,   72,  365,
2606       368,  368,  371,  372,  373,  368,  374,  368,  368,  375,
2607
2608       368,  368,  376,  368,  377,  378,  368,  368,  368,  379,
2609       368,  380,  381,  382,  368,  368,  368,   68,   68,   68,
2610       383,  368,  384,  385,  386,  387,  385,  384,  384,  388,
2611       389,  384,  384,  384,  390,  391,  384,  384,  384,  384,
2612       384,  392,  384,  384,  384,  384,  393,  393,  384,  384,
2613       384,  394,  395,  395,  395,  395,  395,  395,  395,  395,
2614       395,  395,  395,  395,  395,  395,  395,  395,  395,  395,
2615       390,  384,  391,  384,  395,  395,  395,  396,  395,  395,
2616       395,  395,  395,  395,  395,  395,  395,  395,  395,  397,
2617       395,  395,  395,  398,  399,  395,  400,  395,  395,  395,
2618
2619       395,  401,  384,  384,  384,  395,  404,  404,  405,  406,
2620       404,  404,  404,  404,  407,  404,  404,  404,  408,  409,
2621       404,  404,  404,  404,  404,  410,  404,  404,  404,  404,
2622       411,  412,  404,  404,  404,  413,  414,  414,  414,  414,
2623       414,  414,  414,  414,  414,  414,  414,  414,  415,  414,
2624       414,  414,  414,  414,  408,  404,  409,  404,  414,  414,
2625       416,  417,  418,  414,  419,  414,  414,  420,  414,  414,
2626       421,  414,  422,  423,  414,  414,  414,  424,  414,  425,
2627       426,  427,  414,  414,  414,  412,  404,  404,  404,  414,
2628       404,  404,  405,  406,  404,  404,  404,  404,  430,  404,
2629
2630       404,  404,  431,  409,  404,  404,  404,  404,  404,  410,
2631       404,  404,  404,  404,  404,  412,  404,  404,  404,  413,
2632       432,  432,  432,  432,  432,  432,  432,  432,  432,  432,
2633       432,  432,  432,  432,  432,  432,  432,  432,  408,  404,
2634       409,  404,  432,  432,  432,  432,  432,  432,  432,  432,
2635       432,  432,  432,  432,  432,  432,  432,  432,  432,  432,
2636       432,  432,  432,  432,  432,  432,  432,  432,  432,  412,
2637       404,  404,  404,  432,  404,  404,  405,  406,  404,  404,
2638       404,  404,  433,  404,  404,  404,  408,  434,  404,  404,
2639       404,  404,  404,  410,  404,  404,  404,  404,  404,  404,
2640
2641       404,  404,  404,  413,  435,  435,  435,  435,  435,  435,
2642       435,  435,  435,  435,  435,  435,  436,  435,  435,  435,
2643       435,  435,  408,  404,  409,  404,  435,  435,  437,  438,
2644       439,  435,  440,  435,  435,  441,  435,  435,  442,  435,
2645       443,  444,  435,  435,  435,  445,  435,  446,  447,  448,
2646       435,  435,  435,  404,  404,  404,  404,  435,  449,  449,
2647       450,  451,  449,  449,  452,  449,  453,  449,  449,  454,
2648       455,  456,  449,  449,  449,  449,  449,  457,  449,  449,
2649       449,  449,  449,  449,  449,  449,  449,  458,  459,  459,
2650       459,  459,  459,  459,  459,  459,  459,  459,  459,  459,
2651
2652       459,  459,  459,  459,  459,  459,  460,  449,  461,  449,
2653       459,  459,  459,  459,  459,  459,  459,  459,  459,  459,
2654       459,  459,  459,  459,  459,  459,  459,  459,  459,  459,
2655       459,  459,  459,  459,  459,  459,  459,  449,  449,  449,
2656       449,  459,  449,  449,  450,  451,  449,  449,  452,  449,
2657       464,  449,  449,  454,  455,  456,  449,  449,  449,  449,
2658       449,  457,  449,  449,  449,  449,  449,  449,  449,  449,
2659       449,  458,  465,  465,  465,  465,  465,  465,  465,  465,
2660       465,  465,  465,  465,  465,  465,  465,  465,  465,  465,
2661       460,  449,  461,  449,  465,  465,  465,  465,  465,  465,
2662
2663       465,  465,  465,  465,  465,  465,  465,  465,  465,  465,
2664       465,  465,  465,  465,  465,  465,  465,  465,  465,  465,
2665       465,  449,  449,  449,  449,  465,  466,  466,  450,  467,
2666       466,  466,  468,  466,  469,  466,  466,  466,  470,  471,
2667       466,  466,  466,  466,  466,  472,  466,  466,  466,  466,
2668       466,  466,  466,  466,  466,  473,  474,  474,  474,  474,
2669       474,  474,  474,  474,  474,  474,  474,  474,  474,  474,
2670       474,  474,  474,  474,  470,  475,  471,  466,  474,  474,
2671       474,  474,  474,  474,  474,  474,  474,  474,  474,  474,
2672       474,  474,  474,  474,  474,  474,  474,  474,  474,  474,
2673
2674       474,  474,  474,  474,  474,  466,  466,  466,  466,  474,
2675        68,  478,  479,  480,  478,   68,   68,  481,  482,   68,
2676        68,   68,   71,   72,   68,   68,  483,   68,   68,   73,
2677        68,   68,   68,   68,   68,  483,   68,   68,   68,   74,
2678       484,  484,  484,  484,  484,  484,  484,  484,  484,  484,
2679       484,  484,  485,  484,  484,  484,  484,  484,   71,   68,
2680        72,   68,  484,  484,  486,  487,  488,  484,  489,  484,
2681       484,  490,  484,  484,  491,  484,  492,  493,  484,  484,
2682       484,  494,  484,  495,  496,  497,  484,  484,  484,  498,
2683        68,   68,   68,  484,  500,  500,  501,  502,  500,  500,
2684
2685       500,  500,  503,  500,  500,  500,  504,  505,  500,  500,
2686       500,  500,  500,  506,  500,  500,  500,  500,  500,  500,
2687       500,  500,  500,  507,  508,  508,  508,  508,  508,  508,
2688       508,  508,  508,  508,  508,  508,  508,  508,  508,  508,
2689       508,  508,  504,  500,  505,  500,  508,  508,  508,  508,
2690       508,  508,  508,  508,  508,  508,  508,  508,  508,  508,
2691       508,  508,  508,  508,  508,  508,  508,  508,  508,  508,
2692       508,  508,  508,  500,  500,  500,  500,  508,  519,  512,
2693       513,  519,  605,  605,  605,  605,  523, 1012,  525,  514,
2694       515,  524,  710, 2284,  621,  710,  520, 1013,  617,  618,
2695
2696       618,  617,  887,  887,  711,  818,  517,  887,  606,  619,
2697       620,  621,  818,  620,  700,  526,  818,  700,  526,  849,
2698       701,  622,  620,  623,  648,  514,  649,  518,  629,  629,
2699       629,  629,  527,  527,  650,  630,  651,  608,  606,  609,
2700       610,  928,  521,  611,  887,  521,  624,  620,  621,  612,
2701       613,  631,  614,  615,  616,  617,  618,  618,  617,  528,
2702       522,  931,  621,  928,  529,  621,  619,  620,  523,  897,
2703       620,  685,  897,  524,  686,  621,  633,  528,  622,  620,
2704       623,  652,  529,  928,  687,  670,  525,  915,  625,  653,
2705       621,  688,  654,  898,  673,  655,  689, 1175,  656,  671,
2706
2707      2578,  657,  674,  624,  620,  672, 1176, 1024,  621,  634,
2708      1024,  675,  916,  679,  676,  626,  680,  681,  697,  697,
2709       697,  697, 1034,  910,  920,  698,  910, 1091,  682, 1057,
2710      1026,  683, 1035,  684, 1058,  715,  928,  716,  717,  902,
2711       690,  718,  902,  724,  929,  691,  724,  719,  720,  930,
2712       721,  722,  723,  724,  725, 1075,  724,  527,  928,  726,
2713       727,  948,  949,  898,  725, 1076,  729, 2586,  730,  726,
2714       727,  567,  724,  950,  567,  724,  729,  627,  730,  808,
2715       808,  808,  808,  725,  568,  818,  809,  724,  726,  727,
2716       724,  724,  818,  731,  724,  729,  818,  730,  725,  818,
2717
2718      2586,  885,  725,  726,  727,  850,  724,  726,  727,  724,
2719       729, 1120,  730, 1064,  729, 1079,  730,  725, 1065,  728,
2720       732,  724,  726,  727,  724, 1120,  525,  728,  924,  729,
2721       728,  730,  725,  762,  626, 1080,  728,  726,  727,  728,
2722       724,  818,  733,  724,  729,  831,  730,  600,  818,  523,
2723       600,  725,  818,  621,  524,  832,  726,  727,  724,  734,
2724       601,  724, 1197,  729,  521,  730,  851,  521,  724,  725,
2725       852,  724, 1198,  818,  726,  727,  735,  818,  736,  725,
2726       818,  729,  522,  730,  726,  727,  853,  737,  926, 2195,
2727       738,  729,  739,  730,  818, 1115,  728, 1126,  755,  740,
2728
2729       756,  818,  875,  741,  728,  818,  742,  728,  876, 1115,
2730       757, 1126,  627,  728,  743,  728,  728,  928,  758, 1116,
2731       759, 1127,  621,  728,  744,  934,  728,  760,  761,  728,
2732       935,  746,  728,  747,  745,  728,  528,  728, 1195,  928,
2733      1222,  529,  764,  748,  724,  728,  765,  724,  728,  883,
2734       728,  728,  883,  728,  728,  725,  728,  763, 1196,  728,
2735       726,  727,  766,  728,  767,  728,  621,  729,  915,  730,
2736      1097,  728,  884,  770,  728, 1098,  728,  728,  768,  728,
2737       728,  621,  771,  728,  769,  772,  773, 1185,  860, 2587,
2738       774, 1252,  861,  916,  728,  818,  749,  728, 1186,  818,
2739
2740       728,  728,  818,  728,  750,  775,  728,  751,  776,  777,
2741       752, 1206,  728,  753,  918,  728,  754,  919,  728,  785,
2742       778,  728,  728,  779,  621,  780,  781,  885,  621,  782,
2743       728, 1017, 1018,  728, 1243, 1102,  728,  728,  731,  783,
2744      1103,  526,  728, 1019,  526,  788,  784, 1104,  728,  621,
2745       728,  789, 1105,  602,  728, 1110,  602,  728,  728,  527,
2746      1111,  728, 1245,  786,  728,  603,  661,  728,  787,  728,
2747       728,  790,  986,  986,  986,  986,  791,  728, 2209,  987,
2748       728,  896,  521,  728,  896,  521,  728,  621,  621,  728,
2749       794,  795,  795,  794,  794,  795,  795,  794, 1221,  527,
2750
2751       522,  796, 1039, 1040,  884,  796, 1121,  794,  795,  795,
2752       794, 1122,  627,  798, 1041,  799,  661,  798,  796,  799,
2753       802,  802,  802,  802, 1132,  621,  818,  803,  877, 1133,
2754       798, 1131,  799,  878,  801, 1106,  932,  818,  800,  932,
2755       818,  928,  800,  804, 1107, 1131,  794,  795,  795,  794,
2756       794,  795,  795,  794,  933,  800, 1117,  796, 1142,  885,
2757      1109,  796,  621,  928, 2596, 1118, 1249,  807,  805,  798,
2758       818,  799, 1142,  798, 1109,  799, 1128,  818, 1108,  813,
2759       814,  833,  813,  834,  818, 1129,  801,  621, 1139,  526,
2760       815, 1266,  526,  835,  800,  816,  817, 1140,  800, 1119,
2761
2762       889,  806,  729,  889,  730,  813,  814,  527,  813,  813,
2763       814,  890,  813, 1137,  627, 1062,  815, 2597, 1062, 1130,
2764       815,  816,  817,  892, 1143,  816,  817, 1137,  729, 1144,
2765       730, 1141,  729, 1063,  730,  813,  814, 1138,  813,  813,
2766       814,  521,  813, 2214,  521,  819,  815, 1109,  893, 1159,
2767       815,  816,  817,  621,  526,  816,  817,  526,  729,  522,
2768       730, 1109,  729, 1159,  730, 1258,  813,  814,  820,  813,
2769       921, 1081,  527,  921, 1082, 1083,  922,  815, 1093,  581,
2770       582, 1093,  816,  817,  813,  814, 1084,  813,  527,  729,
2771       821,  730,  621,  577, 1100,  815, 1094, 1100,  923, 1169,
2772
2773       816,  817, 2216,  836, 1264,  813,  814,  729,  813,  730,
2774       818,  837, 1101, 1169,  838, 1148,  815,  839,  577,  822,
2775       840,  816,  817,  841,  521, 1219,  577,  521,  729, 1148,
2776       730, 1115,  621,  818,  558,  842,  823,  843,  824, 1149,
2777       818, 1741,  522, 1220,  818, 1115, 1150,  844,  885,  818,
2778       825, 1151,  845,  826,  846, 1116,  818,  827,  818,  854,
2779       818,  847,  848,  818,  828,  818,  621,  818,  829,  818,
2780       621,  830,  818,  855,  818,  857, 1300, 1224,  818,  856,
2781       526,  818,  818,  526,  858, 1112,  862,  859,  818,  863,
2782       864,  872,  868,  818, 1113,  869,  818,  889,  527,  818,
2783
2784       889,  865,  818,  621,  866,  870,  867, 1115,  890, 1114,
2785       819, 1295,  871, 1110,  959,  960,  960,  959, 1170, 2598,
2786       892, 1115,  818, 1228,  959,  960,  960,  959, 1108,  818,
2787       621, 1116, 1171,  818,  621,  873,  818,  962, 1299,  963,
2788       874,  959,  960,  960,  959,  893, 1171,  962,  894,  963,
2789      1152,  966,  966,  966,  966,  621, 1172,  965,  967, 1153,
2790      1160, 1250,  964,  621,  962, 1161,  963,  959,  960,  960,
2791       959, 2305,  964,  959,  960,  960,  959,  959,  960,  960,
2792       959,  959,  960,  960,  959, 1051, 1051, 1051, 1051,  964,
2793       962,  535,  963, 1108,  535,  577,  962, 1231,  963,  621,
2794
2795       962,  957,  963, 1232,  962,  621,  963,  970, 1053,  536,
2796       543, 1167, 1168,  543, 1167,  964, 1244,  551,  621,  564,
2797       551,  964,  564, 1222, 1229,  964,  971,  583,  544,  964,
2798       583,  621,  969,  972, 1054,  552,  975,  527,  957,  973,
2799       974,  959,  960,  960,  959,  584,  976,  959,  960,  960,
2800       959,  959,  960,  960,  959,  959,  960,  960,  959,  621,
2801       959,  960,  960,  959,  962, 1254,  963, 1327,  557,  558,
2802       962,  557,  963, 1123,  962,  577,  963, 1328,  962, 2599,
2803       963, 1134, 1124,  962,  592,  963,  559,  592,  573,  964,
2804      1135,  573,  621, 1192,  621,  964, 1193, 1125, 1263,  964,
2805
2806      1272,  568,  593,  964,  979, 1136,  527,  977,  964,  959,
2807       960,  960,  959,  621,  980,  981, 1119,  621, 1253,  978,
2808       959,  960,  960,  959, 1130,  983,  982,  989,  989,  990,
2809       989, 2350,  962,  621,  963, 1156,  996,  989,  990,  996,
2810      1251,  621, 1145,  962, 1157,  963, 1154,  990,  990,  990,
2811       990, 1146, 1226, 1227,  522, 1155, 1106,  964, 1004,  989,
2812       990, 1004,  621, 1275, 1162, 1107, 1147, 1265,  964,  621,
2813      1114, 1315, 1165, 1163,  985,  984,  527, 1225, 1158,  577,
2814       621,  991, 1316,  621, 1246, 1141, 1165,  621, 1164, 1108,
2815       991, 1247,  621,  992,  621, 1248, 1166,  993, 1257, 1108,
2816
2817       994,  991,  992, 2313, 1222,  995,  993, 1158,  577,  994,
2818       621, 1276,  991,  992,  995, 1259,  577,  993, 1259, 1268,
2819       994,  621,  621, 1269,  992,  995,  621, 1289,  993,  621,
2820      1288,  994,  990,  990,  990,  990,  995, 1055, 1055, 2600,
2821      1055, 1055, 1055, 1697, 1055, 1697, 1055, 1055, 1055, 1055,
2822      1055, 1055, 1055, 1055, 1055, 1055, 1055, 1066,  990,  990,
2823      1066, 1055, 1055, 1055, 1055, 1055, 1055,  990,  990,  990,
2824       990, 1706, 1112, 1706,  621,  522,  621, 1088,  990,  990,
2825      1088, 1113, 1690, 1283, 1270, 1055,  991, 1055, 1055,  621,
2826       697,  697,  697,  697, 1689,  527, 1114,  698,  992, 1271,
2827
2828       710, 1177,  993,  710, 1177,  994, 1284,  621, 1178,  662,
2829       995,  991,  711, 1179,  601, 1108, 1055, 1055, 1055, 1055,
2830       621,  991,  621,  992, 1180, 1285,  702,  993, 1255,  702,
2831       994,  991, 1256,  992,  621,  995,  558,  993, 1261,  621,
2832       994,  621, 1273,  992, 1290,  995, 1262,  993, 1274, 1182,
2833       994,  617,  618,  618,  617,  995,  621, 1296,  605,  605,
2834       605,  605,  619,  620,  621, 1298,  620, 1297,  621, 1304,
2835       629,  629,  629,  629,  622,  620,  623,  630, 1277, 1278,
2836       621, 1279, 1183,  558,  606, 1280,  703,  621, 1291, 1639,
2837      1200, 1200, 1281,  631, 1640, 1201, 1201, 1292, 1286,  624,
2838
2839       620,  617,  618,  618,  617,  621, 1202, 2233,  617,  618,
2840       618,  617,  619,  620,  606, 1287,  620,  621,  633,  619,
2841       620, 1282,  915,  620,  622,  620,  623, 1322, 1293, 1222,
2842      1323,  622,  620,  963, 2602,  621,  621, 1301, 1308, 1309,
2843      1302, 1319, 1320,  618,  618,  618,  618,  916, 1294,  624,
2844       620,  634,  662,  928,  619,  620,  624,  620,  620, 1200,
2845      1173, 1203, 1203, 1203, 1203, 1690,  622,  620, 1204, 1689,
2846       629,  629,  629,  629, 1325,  928, 1779,  630, 3491, 3491,
2847      3491, 3491, 1780,  708,  631, 3491,  708, 1209, 1210, 1210,
2848      1209,  624,  620,  631, 1326,  915,  709,  702,  619,  620,
2849
2850       702, 3491,  620,  888,  895,  724,  888,  895,  724,  633,
2851      1212,  620, 1213,  621, 1215, 1215, 1215, 1215,  633, 1856,
2852       916, 1216,  697,  697,  697,  697, 3491, 1205,  729,  698,
2853       730, 3491, 3491, 3491, 3491, 1214,  620,  631, 3491, 1633,
2854      1633, 1845,  634, 1305, 1306, 1306, 1305,  700,  621,  888,
2855       700,  634,  888,  701,  619,  620, 1556,  703,  620, 3491,
2856       724,  889,  633,  724,  889,  527, 1311,  620,  963, 1311,
2857      1696,  725,  890, 1312, 1695, 1557,  726,  727, 1313,  709,
2858      1708,  895, 1708,  729,  895,  730,  808,  808,  808,  808,
2859      2236, 1525,  620,  809, 1526, 1218, 1233, 1234, 1235, 1235,
2860
2861      1234, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1236, 1237,
2862      1233, 1233, 1237, 1233, 1233, 1233,  724, 1610, 1855,  724,
2863      1238, 1237, 1239, 1233, 1233, 1233,  724,  725, 1717,  724,
2864      1717,  915,  726,  727,  621,  883, 1611,  725,  883,  729,
2865      1222,  730,  726,  727, 1233, 1240, 1237, 1233, 1624,  729,
2866       621,  730,  808,  808,  808,  808,  916,  724,  884,  809,
2867       724, 1529,  627, 3491, 3491, 3491, 3491, 1625,  725, 1241,
2868      3491, 1222,  621,  726,  727, 1233, 1233, 1233, 1233, 1242,
2869       729,  724,  730, 1532,  724, 1310, 1533, 1551, 1842,  621,
2870      1551,  724,  725,  897,  724, 1666,  897,  726,  727, 1719,
2871
2872      1667, 1719,  725,  915,  729,  577,  730,  726,  727,  724,
2873       887,  887,  724,  885,  729,  887,  730,  898,  758,  724,
2874       725,  902,  724, 2242,  902,  726,  727, 1728,  916, 1728,
2875       725, 2610,  729,  928,  730,  726,  727,  724, 1658,  527,
2876       724, 1538,  729, 1332,  730,  898, 1539,  724,  725, 1530,
2877       724,  621,  887,  726,  727,  928, 1551, 1659,  725, 1551,
2878       729, 1333,  730,  726,  727,  724, 1024, 2302,  724, 1024,
2879       729,  910,  730, 1696,  910,  724,  725, 2252,  724, 1334,
2880       915,  726,  727, 1335, 1591, 1695,  725, 1591,  729, 1026,
2881       730,  726,  727, 1428, 1429, 1429, 1428, 1638,  729,  724,
2882
2883       730, 1786,  724,  724,  796,  916,  724, 1674, 1336,  963,
2884       725, 1638, 1675, 1337,  725,  726,  727, 1527, 1862,  726,
2885       727, 1338,  729, 1528,  730,  621,  729,  724,  730, 1662,
2886       724,  724, 1663, 1730,  724, 1730, 3491, 2614,  725, 1537,
2887       928, 1687,  725,  726,  727, 1339, 1340,  726,  727,  885,
2888       729, 1341,  730, 1537,  729, 1342,  730, 1758, 1644, 1758,
2889       724, 1880,  928,  724,  724, 1673, 1062,  724,  621, 1062,
2890      1024,  725, 1644, 1024,  621,  725,  726,  727, 1807, 1673,
2891       726,  727, 1645,  729, 1063,  730, 3491,  729, 1344,  730,
2892      2618, 1687, 1343, 1026, 1345, 1346, 1347, 1346, 1346, 1347,
2893
2894      1346, 1346, 1346, 1346, 1346, 1346, 1346, 1348, 1346, 1346,
2895      1346, 1346, 1349, 1350, 1346,  724, 1819, 1824,  724, 1351,
2896      1346, 1352, 1346, 1346, 1346, 1355,  725,  928,  621,  621,
2897      1093,  726,  727, 1093, 1356,  621,  724,  661,  729,  724,
2898       730, 1534,  928, 1346, 1346, 1346, 1346,  725, 1094,  928,
2899      1535, 3491,  726,  727,  814,  814, 1736,  814, 1635,  729,
2900      1024,  730,  662, 1024,  928,  815, 1793, 1636, 1353,  724,
2901       816,  817,  724,  621, 1346, 1346, 1346, 1346, 1354,  724,
2902       725, 2619,  724, 1026, 1536,  726,  727, 1357,  889,  621,
2903       725,  889,  729, 3491,  730,  726,  727,  724, 1736,  890,
2904
2905       724, 1637,  729, 1358,  730,  621, 1100, 1359,  725, 1100,
2906      1806,  892,  724,  726,  727,  724,  794,  795,  795,  794,
2907       729, 1817,  730,  725, 1101,  621, 1828,  796,  726,  727,
2908       724,  889, 1360,  724,  889,  729,  893,  730, 1840,  798,
2909       621,  725,  890, 1679, 1361,  724,  726,  727,  724,  724,
2910      1670,  621,  724,  729,  892,  730,  725, 1679, 1833, 1671,
2911       725,  726,  727, 1362,  800,  726,  727, 1680,  729,  621,
2912       730, 1681,  729, 1683,  730,  724, 2620, 1839,  724,  893,
2913      1681, 1363,  802,  802,  802,  802,  725, 1683,  621,  803,
2914      1364,  726,  727, 1672,  621, 1682,  724, 1684,  729,  724,
2915
2916       730,  959,  960,  960,  959,  804,  889,  725, 2292,  889,
2917      1365, 1685,  726,  727, 1366, 1685, 1832,  890, 1367,  729,
2918       621,  730,  724, 1721,  962,  724,  963, 1691,  547,  892,
2919       805, 1761,  896,  725, 1761,  896, 1691, 1841,  726,  727,
2920      1368, 1379, 1380, 1380, 1379,  729, 1335,  730,  621,  964,
2921       527, 1114,  725,  621,  893,  884, 1805,  726,  727, 1167,
2922      1168, 1517, 1167,  806,  729, 2621,  730, 1369, 1370, 1371,
2923      1370, 1370, 1371, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
2924      1372, 1370, 1370, 1370, 1370, 1373, 1374, 1370, 1818, 1378,
2925      1823,  621, 1375, 1370, 1376, 1370, 1370, 1370,  724,  621,
2926
2927      2318,  724, 1820,  621, 1381,  621, 1692, 1829,  932,  725,
2928       885,  932, 1382,  928,  726,  727, 1370, 1370, 1370, 1370,
2929      1692,  729,  621,  730, 1752, 1753,  933, 1752, 1830,  724,
2930      1116,  621,  724, 1843, 1641,  928,  959,  960,  960,  959,
2931       725, 1704, 1754, 1642,  621,  726,  727, 1370, 1370, 1370,
2932      1370, 1377,  729,  724,  730, 1704,  724,  724, 1643, 1564,
2933       724,  963, 1676, 1383,  725, 1127, 1690, 1689,  725,  726,
2934       727, 1677,  724,  726,  727,  724,  729, 1637,  730, 1831,
2935       729,  621,  730,  725,  964,  621, 1678,  724,  726,  727,
2936       724,  724, 2304,  621,  724,  729, 1834,  730,  725,  621,
2937
2938      1384, 1851,  725,  726,  727, 1672, 1703,  726,  727, 1714,
2939       729, 1848,  730, 1743,  729, 1703,  730, 1385, 1714, 1725,
2940       621,  724,  621,  921,  724, 1835,  921, 2310, 1725,  922,
2941      1125, 1335,  725, 1136,  621, 1386, 1852,  726,  727,  724,
2942       621,  527,  724, 1147,  729, 1715,  730, 1388, 1387,  724,
2943       725,  923,  724, 1836, 2622,  726,  727, 1543,  928, 1715,
2944       725, 1863,  729,  621,  730,  726,  727,  724,  621, 1138,
2945       724, 1543,  729,  928,  730, 1690, 1689, 1389,  725, 1689,
2946       928, 1544,  724,  726,  727,  724,  621, 1696, 1695, 1860,
2947       729, 1695,  730,  725, 1726,  928, 1696, 1695,  726,  727,
2948
2949       724,  885, 1685,  724, 1390,  729, 1685,  730, 1726, 1391,
2950       724,  725,  661,  724,  547, 1392,  726,  727, 1149, 1722,
2951      1393,  725, 1689,  729,  621,  730,  726,  727,  724,  558,
2952       621,  724, 1733,  729, 1695,  730,  662,  621,  724,  725,
2953      2315,  724, 1394, 1750,  726,  727, 1733, 1844,  621,  725,
2954      2623,  729, 1853,  730,  726,  727, 1734,  621, 1395,  724,
2955      1396,  729,  724,  730, 1397, 1423, 1423, 1423, 1423, 1756,
2956       725, 1398,  803, 1399,  724,  726,  727,  724, 1540,  928,
2957      1847, 1335,  729, 1756,  730,  725, 1690, 1541,  804,  724,
2958       726,  727,  724, 1172, 1400,  621, 1401,  729, 1689,  730,
2959
2960       725,  928, 1542, 1864,  621,  726,  727,  724, 1690, 1689,
2961       724, 1403,  729,  805,  730, 1402,  621, 1689,  725, 1821,
2962      1822, 1536,  724,  726,  727,  724,  724, 2626, 1404,  724,
2963       729,  577,  730,  725, 1405, 1884, 1693,  725,  726,  727,
2964      1693,  724,  726,  727,  724,  729,  806,  730, 1721,  729,
2965       621,  730,  725,  547, 1406, 1689,  724,  726,  727,  724,
2966       577, 1748, 2627, 1748,  729, 1849,  730,  725,  621,  621,
2967      1866, 1407,  726,  727,  794,  795,  795,  794, 1410,  729,
2968      2628,  730, 1408, 1259,  724,  796, 1259,  724, 1876,  621,
2969      1751, 1409, 1751, 1685, 1685,  725,  731,  798, 1411,  799,
2970
2971       726,  727,  759,  724, 1850, 1738,  724,  729, 1412,  730,
2972       576, 1740, 1873,  724,  725,  621,  724,  621, 2629,  726,
2973       727, 1854,  800, 1857,  725,  621,  729, 1858,  730,  726,
2974       727,  621,  724, 1859, 1875,  724,  729,  621,  730, 1846,
2975      1739,  577,  724,  725, 1413,  724, 1200, 1200,  726,  727,
2976       621, 1201, 1201,  725, 1414,  729,  621,  730,  726,  727,
2977      1869,  724, 1202, 1415,  724,  729, 2614,  730,  795,  795,
2978       795,  795,  725,  966,  966,  966,  966,  726,  727,  796,
2979       967, 1867, 1416,  621,  729, 1868,  730,  794,  795,  795,
2980       794,  798, 1417,  621, 1791, 1418,  621, 1872,  796, 1696,
2981
2982      1695, 1419,  794,  795,  795,  794,  621,  627, 1695,  621,
2983       798, 1865,  799,  796, 1882, 1200,  800,  802,  802,  802,
2984       802, 1420, 1685, 1685,  803,  798, 1685,  799, 2246, 3491,
2985      3491, 3491, 3491, 2247, 1699,  800, 3491, 1745, 1222,  530,
2986       804, 1424, 1424, 1424, 1424, 1877, 1695,  621, 1425,  621,
2987       800, 1745, 3491, 1208,  969,  794,  795,  795,  794,  813,
2988       814, 1166,  813,  621,  804,  805,  796, 1883, 1878, 1685,
2989       815, 1051, 1051, 1051, 1051,  816,  817, 3491,  798,  621,
2990       799,  577,  729,  621,  730,  986,  986,  986,  986,  805,
2991       813,  814,  987,  813, 1053,  801, 1879,  621,  806, 2357,
2992
2993      1693,  815,  558,  800, 1693, 1731,  816,  817,  813,  814,
2994      3491,  813,  547,  729, 1731,  730, 1881, 1722,  621,  815,
2995      1054, 2643, 1427, 1551,  816,  817, 1551,  813,  814, 1732,
2996       813,  729,  627,  730,  986,  986,  986,  986,  815, 1861,
2997      1885,  987, 1861,  816,  817,  813,  814, 1870,  813, 1744,
2998       729, 2658,  730, 1886,  621,  621,  815,  621, 1744, 1871,
2999      2214,  816,  817,  813,  814, 1903,  813, 2167,  729, 2167,
3000       730, 1904, 2213, 1164,  815, 1051, 1051, 1051, 1051,  816,
3001       817, 2169,  845, 2169,  813,  814,  729,  813,  730, 1567,
3002      1567, 1567, 1567,  577, 1890,  815,  967, 1890, 1053,  621,
3003
3004       816,  817,  813,  814,  915,  813,  621,  729, 2069,  730,
3005      1891, 1892, 2294,  815, 2070, 1431, 2076,  621,  816,  817,
3006       813,  814, 2077,  813, 1054,  729,  621,  730,  915,  916,
3007      2202,  815, 2202, 1432, 2337, 2343,  816,  817,  724,  813,
3008       814,  724,  813,  729,  621,  730,  960,  960,  960,  960,
3009       815, 2347, 2073,  916, 1433,  816,  817,  813,  814,  928,
3010       813,  729,  729,  730,  730, 2205, 1434, 2205,  815, 1564,
3011       969, 2646, 2673,  816,  817,  915,  813,  814, 2072,  813,
3012       729,  928,  730, 3491, 3491, 3491, 3491,  815,  621,  928,
3013      3491, 1435,  816,  817,  964,  966,  966,  966,  966,  729,
3014
3015       916,  730,  967,  813,  814, 1436,  813,  813,  814, 1311,
3016       813,  928, 1311, 1437,  815, 2074, 1312,  915,  815,  816,
3017       817, 1313,  709,  816,  817, 2083,  729, 2165,  730, 2676,
3018       729, 1690,  730,  813,  814, 2085,  813,  813,  814,  621,
3019       813, 2165,  916, 2207,  815, 2207, 1438, 1439,  815,  816,
3020       817, 1645, 2309,  816,  817, 1440,  729, 2085,  730, 1441,
3021       729, 2677,  730,  813,  814, 2075,  813,  813,  814, 2210,
3022       813, 2210,  724, 1696,  815,  724,  969, 2092,  815,  816,
3023       817,  621, 1911,  816,  817, 1911,  729, 1690,  730, 1912,
3024       729, 1689,  730, 1689, 1443,  729, 2300,  730, 1442, 2092,
3025
3026      1444, 1346, 1445, 1446, 1346, 1445, 1346, 1346, 1346, 1346,
3027      1346, 1346, 1346, 1447, 1346, 1346, 1346, 1346, 1448, 1449,
3028      1346,  813,  814, 1696,  813, 1351, 1346, 1352, 1346, 1346,
3029      1346, 2157,  815, 1452, 1689, 1695, 2198,  816,  817, 1453,
3030      2158, 2158,  813,  814,  729,  813,  730, 1689, 2681, 1346,
3031      1346, 1346, 1346,  815, 3491, 3491, 3491, 3491,  816,  817,
3032      1174, 3491, 1685, 2194, 2323,  729,  621,  730, 1092, 1760,
3033      1760, 1760, 1760,  621, 1450, 1051, 1051, 1051, 1051,  662,
3034      1346, 1346, 1346, 1346, 1451, 2204,  813,  814, 1454,  813,
3035       813,  814, 1455,  813, 2651, 1760, 1695,  815, 1053, 2612,
3036
3037       621,  815,  816,  817,  928, 1456,  816,  817, 1690,  729,
3038      2216,  730, 1689,  729, 2189,  730,  813,  814,  928,  813,
3039       813,  814, 2215,  813, 1054, 1760,  928,  815, 2189,  621,
3040       621,  815,  816,  817, 2200, 3491,  816,  817, 2190,  729,
3041       928,  730, 2316,  729, 2299,  730,  813,  814, 2200,  813,
3042       621, 1457, 1769, 1769, 1769, 1769, 1458,  815, 1680, 1770,
3043       577, 2293,  816,  817,  724,  813,  814,  724,  813,  729,
3044      2603,  730,  959,  960,  960,  959,  815, 2090, 2692, 2090,
3045      1460,  816,  817,  813,  814, 1459,  813,  729,  729,  730,
3046       730, 2093, 2214, 2093,  815,  962, 2213,  963, 2164,  816,
3047
3048       817,  813,  814, 2693,  813,  621,  729, 2164,  730, 2087,
3049       928, 1461,  815,  959,  960,  960,  959,  816,  817, 2321,
3050       964, 1696, 1643, 2087,  729, 1695,  730, 1695,  813,  814,
3051      1462,  813,  928, 1544, 1463, 2344,  962,  621,  963,  815,
3052      1380, 1380, 1380, 1380,  816,  817,  813,  814, 1464,  813,
3053       975,  729, 3491,  730, 1434, 3491, 1696,  815,  621, 3491,
3054      1695,  964,  816,  817, 3491, 3491, 2216, 2299, 1695,  729,
3055      2215,  730, 1465, 1370, 1466, 1467, 1370, 1466, 1370, 1370,
3056      1370, 1370, 1370, 1370, 1370, 1468, 1370, 1370, 1370, 1370,
3057      1469, 1470, 1370, 1685, 1685, 1472,  621, 1375, 1370, 1376,
3058
3059      1370, 1370, 1370,  813,  814,  576,  813, 2322, 1910, 1473,
3060      1740, 1690, 1689, 2111,  815, 1689, 2111, 1474, 2187,  816,
3061       817, 1370, 1370, 1370, 1370,  577,  729, 2187,  730, 2235,
3062       989,  989,  990,  989,  813,  814, 2112,  813, 1685, 1092,
3063      1739, 2345, 2188,  621, 2195,  815, 1788, 1789, 1789, 1788,
3064       816,  817, 1370, 1370, 1370, 1370, 1471,  729, 1689,  730,
3065       813,  814, 1685,  813,  813,  814, 2080,  813, 1475, 1790,
3066      1591,  815, 1898, 1591, 2081,  815,  816,  817, 2267,  927,
3067       816,  817, 2268,  729,  991,  730,  621,  729, 2080,  730,
3068       813,  814, 2624,  813, 1791,  963,  992, 2328, 1693, 2194,
3069
3070       993,  815, 2625,  994, 1092, 1476,  816,  817,  995,  813,
3071       814, 1591,  813,  729, 1591,  730, 1693, 1693, 1685, 1685,
3072       815, 2696, 1685,  621, 1477,  816,  817, 2301, 1738,  621,
3073       530, 2355,  729,  576,  730, 1700,  963,  621, 1434,  813,
3074       814, 2308,  813,  813,  814, 1761,  813,  621, 1761, 2199,
3075       815, 1693, 1092, 1478,  815,  816,  817, 2195, 2199,  816,
3076       817, 2335,  729, 1747,  730, 1685,  729,  621,  730, 2356,
3077      1479,  813,  814, 1678,  813,  813,  814,  621,  813, 2312,
3078      2214, 2213,  815,  621, 2213, 2324,  815,  816,  817,  621,
3079      2317,  816,  817,  558,  729, 1480,  730, 2230,  729, 1481,
3080
3081       730,  813,  814, 1685,  813,  813,  814, 2080,  813,  556,
3082       621,  621,  815,  662,  556,  927,  815,  816,  817, 2326,
3083      2082,  816,  817,  621,  729, 2351,  730, 2213,  729, 2080,
3084       730, 1802, 1802, 1802, 1802, 1483, 1482,  928, 1803,  813,
3085       814, 1484,  813, 2086,  928, 2697,  959,  960,  960,  959,
3086       815, 2581, 2086, 2581, 1485,  816,  817,  813,  814,  928,
3087       813, 2698,  729,  558,  730, 1486,  928, 1542,  815, 1564,
3088      2231,  963, 2231,  816,  817,  813,  814, 2584,  813, 2584,
3089       729,  621,  730, 1200, 1200,  621,  815, 1222, 1796, 1796,
3090      1259,  816,  817, 1259,  964, 2699, 2303, 1487,  729, 1797,
3091
3092       730,  813,  814, 1488,  813, 2664, 1988, 1988, 1988, 1988,
3093      1489,  621,  815, 1989,  621, 1696, 1695,  816,  817, 1695,
3094      1490,  621,  813,  814,  729,  813,  730, 2319, 1434,  990,
3095       990,  990,  990,  815,  621,  621, 2307, 1222,  816,  817,
3096      2234, 1491, 2234,  581,  582,  729, 2298,  730,  621,  661,
3097       813,  814, 1200,  813,  813,  814,  621,  813, 2700, 1492,
3098      2327,  815, 1695, 2314, 2214,  815,  816,  817, 1693, 1693,
3099       816,  817, 1693,  729, 1494,  730, 2213,  729, 1493,  730,
3100      1699,  813,  814,  991,  813,  530, 1203, 1203, 1203, 1203,
3101       577, 1495,  815, 1204, 2665,  992,  621,  816,  817,  993,
3102
3103       813,  814,  994,  813,  729, 2320,  730,  995,  621,  631,
3104      1496,  815, 1690, 1689, 2329, 1693,  816,  817,  621, 1497,
3105       621,  813,  814,  729,  813,  730,  959,  960,  960,  959,
3106      2583, 1693,  815, 2325,  633, 2089, 2198,  816,  817,  813,
3107       814, 2208,  813, 2081,  729, 1498,  730, 1689,  927,  962,
3108       815,  963, 1205, 2647,  621,  816,  817, 2089, 2332, 1743,
3109      1499,  621,  729, 2666,  730,  813,  814,  634,  813, 1500,
3110       621, 2216, 2215, 1501,  964, 2215,  815, 1685, 1685,  915,
3111       889,  816,  817,  889,  813,  814, 1685,  813,  729, 1710,
3112       730,  890, 1569, 1502,  539,  815, 2701,  846, 2236, 2237,
3113
3114       816,  817, 2704,  892,  916,  819, 1503,  729,  621,  730,
3115       813,  814, 2495,  813,  813,  814,  621,  813, 2215, 2214,
3116      2213,  815, 2216, 2336, 1685,  815,  816,  817,  893, 2338,
3117       816,  817, 2705,  729, 2215,  730, 2062,  729, 2212,  730,
3118       813,  814, 2212,  813, 1504, 1743,  959,  960,  960,  959,
3119       547,  815,  581,  582, 1505,  547,  816,  817, 2641, 2706,
3120       621,  813,  814,  729,  813,  730, 2241, 2707,  915,  962,
3121      1506,  963,  815, 1752, 1753,  661, 1752,  816,  817,  813,
3122       814,  621,  813, 1507,  729, 2342,  730,  621, 1690, 1689,
3123       815, 1754, 2652,  916,  964,  816,  817, 1689, 1570,  577,
3124
3125      1508,  621,  729, 1509,  730,  959,  960,  960,  959,  959,
3126       960,  960,  959,  959,  960,  960,  959, 2497,  621, 1898,
3127      1510,  959,  960,  960,  959, 1693, 1693, 2370,  962, 1693,
3128       963, 2371,  962, 2358,  963, 1689,  962,  530,  963, 1511,
3129      2340, 2590, 1700,  621,  962,  621,  963, 1428, 1429, 1429,
3130      1428,  724, 2213,  964,  724, 2341, 2359,  964,  796, 1200,
3131      1200,  964,  725,  621, 1201, 1201, 2346,  726,  727,  964,
3132      1571,  621, 1693,  661,  729, 1202,  730, 1696, 1695, 1573,
3133      1590, 1572, 1370, 1574, 1575, 1575, 1574, 1370, 1370, 1370,
3134      1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
3135
3136      1370, 1370,  959,  960,  960,  959, 1576, 1370, 1577, 1370,
3137      1370, 1370,  959,  960,  960,  959,  928, 2718,  959,  960,
3138       960,  959, 1693, 1915, 1750,  962, 2089,  963, 1200, 2082,
3139      1370, 1578, 1370, 1370,  927,  962, 2214,  963,  928, 2082,
3140      2213,  962, 2695,  963,  959,  960,  960,  959, 2089,  892,
3141       964,  959,  960,  960,  959,  959,  960,  960,  959, 2204,
3142       964, 1370, 1370, 1370, 1370, 1579,  964,  962, 1911,  963,
3143      1695, 1911, 2774,  975,  962, 1912,  963, 1580,  962, 1893,
3144       963, 1581, 1893,  959,  960,  960,  959,  959,  960,  960,
3145       959, 1313,  964,  959,  960,  960,  959, 1693, 1693,  964,
3146
3147      2775, 2776, 2645,  964, 3491, 1582,  962, 3491,  963,  576,
3148       962, 3491,  963, 1584, 1740,  621,  962, 1583,  963,  996,
3149       989,  990,  996, 2242, 2243, 1004,  989,  990, 1004,  915,
3150      2777,  964, 1585, 1685, 1685,  964, 2656,  522, 2592, 2214,
3151      2213,  964, 1685,  527, 1747,  539, 1693, 1693, 2213, 2215,
3152      1711,  621, 1586, 1588,  916, 1693, 1589, 1587, 1710, 1693,
3153      1693, 1809, 1893,  539, 1809, 1893, 2496, 2778, 1693, 1312,
3154      1750,  539, 2111,  991, 1313, 2111, 1711, 2348, 2349,  991,
3155      1685, 1894, 1894, 1894, 1894,  992, 2213, 1177, 2779,  993,
3156      1177,  992,  994, 1693, 1178,  993, 2780,  995,  994, 1179,
3157
3158       601, 2216, 2215,  995, 1055, 1055, 1693, 1055, 1055, 1055,
3159      1180, 1055, 2785, 1055, 1055, 1055, 1055, 1055, 1055, 1055,
3160      1055, 1055, 1055, 1055, 1066,  990,  990, 1066, 1055, 1055,
3161      1055, 1055, 1055, 1055, 2786, 1182, 1379, 1380, 1380, 1379,
3162      1752, 1753,  522, 1752, 3491, 2659, 3491, 3491, 2245, 3491,
3163      3491, 3491, 1055, 3491, 1055, 1055, 3491, 3491, 1754,  729,
3164       621,  730, 1429, 1429, 1429, 1429, 2787, 3491, 1183, 1088,
3165       990,  990, 1088,  796, 1769, 1769, 1769, 1769,  991, 2212,
3166      2212, 1770, 1222, 1055, 1055, 1055, 1055,  527, 2212, 1631,
3167       992,  539, 3491, 2214,  993,  621,  539,  994, 2561, 2561,
3168
3169      2545, 2547,  995, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
3170      1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
3171      1370, 1370, 1370,  991, 2608, 3491, 2212, 1370, 1370, 1370,
3172      1370, 1370, 1370, 2608, 2216,  992,  915, 3491, 2215,  993,
3173      3491, 2216,  994, 1768, 1768, 1768, 1768,  995, 2609, 2789,
3174      1178, 1370, 1370, 1370, 1370, 3491, 3491, 3491, 3491, 3491,
3175      3491,  916, 1696, 1695, 3491, 2494, 3491, 1428, 1429, 1429,
3176      1428, 1695,  943, 1985, 1985, 1985, 1985, 2650,  796,  928,
3177      3491,  621, 1370, 1370, 1370, 1370, 1651,  617,  618,  618,
3178       617, 3491, 1209, 1210, 1210, 1209,  804,  724,  619,  620,
3179
3180       724,  928,  620,  619,  620, 3491, 2550,  620,  725, 1695,
3181       622,  620,  623,  726,  727, 1212,  620,  963, 2352,  621,
3182       729,  805,  730, 2353, 1183, 1222, 2501, 2790, 2354,  960,
3183       960,  960,  960, 1690, 1222,  624,  620, 2085, 3491,  621,
3184      1214,  620, 1210, 1210, 1210, 1210,  621, 1759, 1762, 1763,
3185      1763, 1762, 1564,  619,  620, 1178,  621,  620, 2667, 2085,
3186      1179, 1209, 1210, 1210, 1209, 1212,  620, 1764, 1764, 1764,
3187      1764, 1765,  619,  620, 1222, 2214,  620,  964,  621, 2505,
3188      1798, 1798, 1798, 1798, 1212,  620, 1213,  630, 2791,  661,
3189      1214,  620, 1215, 1215, 1215, 1215, 1767,  724,  661, 1216,
3190
3191       724, 2505,  621,  631, 3491, 3491, 3491, 3491,  725, 1214,
3192       620, 3491,  621,  726,  727,  631,  581,  582, 3491,  943,
3193       729, 3491,  730, 1799, 1799, 1799, 1799, 3491,  633, 1183,
3194       617,  618,  618,  617,  619,  959,  960,  960,  959, 2212,
3195       633,  619,  620, 2503,  943,  620,  631,  724, 1801,  943,
3196       724,  927, 3491,  622,  620,  623,  927, 1889, 1564,  724,
3197       963,  634,  724,  577,  724, 2503,  621,  724,  943, 2644,
3198       729,  633,  730, 1218, 1890,  725, 2549, 1890,  624,  620,
3199       726,  727,  729,  964,  730, 3491,  621,  729, 2671,  730,
3200      1891, 1892, 3491, 3491, 2792, 3491, 3491, 1792, 1808, 1809,
3201
3202      1810, 1810, 1809, 1808, 1808, 1808, 1808, 1808, 1808, 1808,
3203      1811, 1812, 1808, 1808, 1812, 1808, 1808, 1808, 1825, 1826,
3204      1826, 1825, 1813, 1812, 1814, 1808, 1808, 1808, 1696, 1827,
3205       620, 2216, 2092,  620, 1914, 2507, 2660, 1203, 1203, 1203,
3206      1203,  622,  620,  963, 1204,  621, 1808, 1815, 1812, 1808,
3207      1826, 1826, 1826, 1826, 2092, 2216, 2215, 2507, 2548, 1222,
3208       631, 1827,  620, 1012, 2215,  620,  624,  620, 1423, 1423,
3209      1423, 1423,  621,  622,  620,  803, 1222, 1808, 1808, 1808,
3210      1808, 1816, 2793, 2661,  724,  633, 2669,  724, 1200, 1200,
3211       621,  804,  621, 1796, 1796,  725,  728,  621,  624,  620,
3212
3213       726,  727, 2215, 1205, 1797, 2214, 2213,  729, 2717,  730,
3214      1567, 1567, 1567, 1567, 2213, 2794,  805, 2109,  634, 1233,
3215      1234, 1235, 1235, 1837, 1233, 1233, 1233, 1233, 1233, 1233,
3216      1233, 1236, 1237, 1233, 1233, 1237, 1233, 1233, 1233, 1259,
3217       618,  618, 1259, 1238, 1237, 1239, 1233, 1233, 1233,  806,
3218       619,  620, 2213, 1551,  620, 1916, 1551, 1200, 1567, 1567,
3219      1567, 1567,  622,  620,  963,  967, 2668, 1233, 1240, 1237,
3220      1233, 1305, 1306, 1306, 1305,  621, 1838, 1567, 1567, 1567,
3221      1567,  662,  619,  620,  967,  621,  620,  624,  620, 1551,
3222      2795,  969, 1551, 2796, 3491,  620,  963, 3491, 1233, 1233,
3223
3224      1233, 1233, 1242, 1306, 1306, 1306, 1306, 2212, 2212, 2508,
3225      1305, 1306, 1306, 1305,  619,  620, 2804, 2805,  620,  576,
3226       620,  619,  620, 2806,  576,  620,  724,  620, 3491,  724,
3227       724, 3491, 2662,  724,  620,  963,  621,  725, 2672,  969,
3228      2663,  725,  726,  727,  621, 2542,  726,  727,  621,  729,
3229      2678,  730,  620,  729, 2239,  730, 2807, 2543,  969,  620,
3230      1917, 1918, 1917, 1917, 1918, 1917, 1917, 1917, 1917, 1917,
3231      1917, 1917, 1919, 1917, 1917, 1917, 1917, 1920, 1921, 1917,
3232       724, 2679, 2691,  724, 1922, 1917, 1923, 1917, 1917, 1917,
3233      2670,  725, 1335, 1925,  621, 2544,  726,  727, 2214, 2213,
3234
3235       621,  724, 2213,  729,  724,  730, 2674,  621, 1917, 1917,
3236      1917, 1917,  725, 2253, 2253, 2253, 2253,  726,  727, 1690,
3237      1178,  621, 2675, 1689,  729, 1689,  730, 3491, 3491, 3491,
3238      3491, 2680, 1926,  724, 3491, 3491,  724,  621, 3491, 1917,
3239      1917, 1917, 1917, 1924,  725, 2213,  621, 1222,  724,  726,
3240       727,  724,  724, 2216, 2215,  724,  729,  759,  730,  725,
3241       621, 2817, 2215,  725,  726,  727, 1689,  724,  726,  727,
3242       724,  729,  621,  730,  661,  729, 3491,  730,  725, 3491,
3243       661, 1012,  724,  726,  727,  724,  724, 1927, 2818,  724,
3244       729,  621,  730,  725, 1183, 2206, 1092,  725,  726,  727,
3245
3246      2215, 1092,  726,  727, 1012,  729, 1012,  730, 1685,  729,
3247       724,  730, 1685,  724, 1685, 1012, 1012,  758, 2212, 1092,
3248      2160,  725, 1928, 2682, 1092, 1055,  726,  727,  724, 2214,
3249      2213,  724, 2546,  729, 1931,  730, 1012, 1929, 1930,  725,
3250       621, 2819, 1932,  724,  726,  727,  724,  959,  960,  960,
3251       959,  729, 2686,  730,  725, 1685,  621, 2820,  724,  726,
3252       727,  724,  724, 1933, 2593,  724,  729, 2593,  730,  725,
3253       962, 2684,  963,  725,  726,  727, 2241, 2821,  726,  727,
3254      1934,  729, 2594,  730,  621,  729,  724,  730, 1685,  724,
3255       724, 1034, 1685,  724, 1685,  964,  621,  725, 2299,  759,
3256
3257      1055,  725,  726,  727,  928, 2161,  726,  727, 2214,  729,
3258      2113,  730, 2213,  729, 2213,  730,  724, 2212, 2212,  724,
3259       724, 2212, 1335,  724, 2822, 1935,  928,  725,  662,  530,
3260      2702,  725,  726,  727,  530, 1685,  726,  727,  621,  729,
3261      2703,  730, 1936,  729, 2254,  730,  724, 2254, 1696,  724,
3262       814,  814, 1695,  814, 1695, 2213, 1179,  725, 2604, 2605,
3263      1937,  815,  726,  727, 2212, 1034,  816,  817, 1938,  729,
3264      1034,  730, 1939, 1346, 1347, 1346, 1346, 1940, 1346, 1346,
3265      1346, 1346, 1346, 1346, 1346, 1348, 1346, 1346, 1346, 1346,
3266      1349, 1350, 1346,  724, 1034, 1695,  724, 1351, 1346, 1352,
3267
3268      1346, 1346, 1346,  724,  725, 2241,  724, 1034, 1809,  726,
3269       727, 1809, 1945, 2823,  725, 2685,  729, 2824,  730,  726,
3270       727, 1346, 1346, 1346, 1346, 1174,  729, 1693,  730, 2683,
3271      1941, 1693,  621, 1693, 1760, 1760, 1760, 1760,  621, 2160,
3272      2259, 2260, 2260, 2259, 1055, 1809, 1631,  724, 1809, 1942,
3273       724, 2261, 1346, 1346, 1346, 1346, 1354, 1943,  725, 2649,
3274      1760, 1631,  724,  726,  727,  724,  724, 2825, 2593,  724,
3275       729, 2593,  730,  725, 1693, 2826, 2689,  725,  726,  727,
3276       915,  724,  726,  727,  724,  729, 2594,  730, 1075,  729,
3277      1760,  730,  725,  621, 2216, 2215,  724,  726,  727,  724,
3278
3279      2606, 2607, 2831, 1944,  729,  916,  730,  725, 2657, 2784,
3280      1075,  724,  726,  727,  724,  928, 2832, 2567, 1946,  729,
3281      2690,  730,  725, 1768, 1768, 1768, 1768,  726,  727,  621,
3282      1178, 1075,  759, 1075,  729,  724,  730,  928,  724,  814,
3283       814, 2245,  814, 1200, 1200, 1075,  725, 2245, 1201, 1201,
3284       815,  726,  727, 2833, 2834,  816,  817, 2835,  729, 1202,
3285       730, 1091, 1947, 1802, 1802, 1802, 1802, 2841, 2788, 2841,
3286      1803, 1948, 1370, 1371, 1370, 1370, 1371, 1370, 1370, 1370,
3287      1370, 1370, 1370, 1370, 1372, 1370, 1370, 1370, 1370, 1373,
3288      1374, 1370,  724,  758, 2842,  724, 1375, 1370, 1376, 1370,
3289
3290      1370, 1370,  724,  725, 1183,  724, 2843, 2214,  726,  727,
3291      2216, 2505, 1200,  725, 2215,  729, 2215,  730,  726,  727,
3292      1370, 1370, 1370, 1370,  915,  729, 1693,  730, 2836, 1949,
3293      1693, 2836, 1693, 2505, 2654, 2655, 2655, 2654, 1055, 2274,
3294      2275, 2275, 2274, 2161, 1950,  724, 2837, 2596,  724,  916,
3295      2276, 1370, 1370, 1370, 1370, 1377,  725, 2215, 1951, 2844,
3296       724,  726,  727,  724,  724, 2216, 2215,  724,  729, 2215,
3297       730,  725, 2781, 1693, 2216,  725,  726,  727, 2507,  724,
3298       726,  727,  724,  729, 2845,  730, 2846,  729, 2583,  730,
3299       725, 2847, 2602, 2604,  724,  726,  727,  724,  724, 2208,
3300
3301      2507,  724,  729,  621,  730,  725, 2606, 2839, 1952,  725,
3302       726,  727, 2215,  915,  726,  727, 1953,  729, 2595,  730,
3303      2850,  729, 2850,  730,  724, 2590,  915,  724, 2848, 1763,
3304      1763, 1763, 1763, 1954, 2852,  725, 2213, 2853,  916,  724,
3305       726,  727,  724,  724, 2782, 1956,  724,  729, 1955,  730,
3306       725,  916, 2251,  577,  725,  726,  727, 2783,  724,  726,
3307       727,  724,  729, 2851,  730, 2851,  729, 2592,  730,  725,
3308      2854, 1957, 2855,  724,  726,  727,  724, 2252, 2215, 2856,
3309      2857,  729, 2858,  730,  725, 3491, 3491, 3491, 3491,  726,
3310       727, 2859, 3491, 2860,  724, 1958,  729,  724,  730, 2614,
3311
3312      2861, 2862, 1959, 2863,  724,  725, 1787,  724, 1208,  621,
3313       726,  727, 2880, 1960,  621,  725,  621,  729, 1961,  730,
3314       726,  727, 2894,  724, 2214, 2895,  724,  729, 2213,  730,
3315      2213, 2908, 2909,  724,  725, 2695,  724,  621, 1962,  726,
3316       727, 2873, 2879,  662,  725,  621,  729, 2212,  730,  726,
3317       727, 2212,  724, 2212, 2593,  724,  729, 2593,  730, 1055,
3318      1963,  621,  724,  725, 1055,  724,  621, 2874,  726,  727,
3319       621, 2213, 2594,  725, 1222,  729, 1964,  730,  726,  727,
3320      1335,  724,  621, 2876,  724,  729,  621,  730, 1988, 1988,
3321      1988, 1988,  725, 2910, 2212, 1989,  724,  726,  727,  724,
3322
3323       724,  621, 1965,  724,  729,  662,  730,  725, 2878,  621,
3324      2877,  724,  726,  727,  724,  661,  621, 1966, 1967,  729,
3325       621,  730,  725,  729,  621,  730,  724,  726,  727,  724,
3326       724, 2882,  621,  724,  729,  621,  730,  725,  621,  621,
3327      2883,  725,  726,  727, 2884,  662,  726,  727,  621,  729,
3328      2881,  730, 1968,  729,  724,  730, 1969,  724,  724, 1222,
3329      2216,  724, 2888, 2890, 2215,  725, 2215,  621, 1970,  725,
3330       726,  727, 2887,  724,  726,  727,  724,  729,  621,  730,
3331      1972,  729, 1971,  730,  725, 2886,  621, 2885,  724,  726,
3332       727,  724,  724, 2911, 2912,  724,  729, 1973,  730,  725,
3333
3334      2913,  621, 2889,  725,  726,  727, 2914, 2215,  726,  727,
3335      2675,  729,  621,  730, 2915,  729,  621,  730,  724,  621,
3336       621,  724,  621, 1976, 1974, 2290, 2290, 2290, 2290,  725,
3337      3491, 3491, 3491, 3491,  726,  727,  619, 3491, 1222, 1975,
3338       621,  729,  724,  730, 1335,  724,  724,  621, 1977,  724,
3339       621, 2891, 2916,  725, 2899, 2892, 2897,  725,  726,  727,
3340      2917, 2900,  726,  727, 2896,  729, 1898,  730,  621,  729,
3341       724,  730, 1222,  724,  724, 2918, 1809,  724, 2919, 1809,
3342      2920,  725, 2902,  621, 1978,  725,  726,  727,  621, 2927,
3343       726,  727, 2901,  729,  621,  730, 2963,  729,  724,  730,
3344
3345      2964,  724, 1979, 1424, 1424, 1424, 1424, 2903, 2965,  725,
3346      1425, 1980, 2968,  621,  726,  727, 2969,  724, 2970, 1222,
3347       724,  729, 2972,  730, 2973, 2907,  804, 2898,  725,  758,
3348      2974,  915,  724,  726,  727,  724, 1429, 1429, 1429, 1429,
3349       729, 1981,  730,  725,  928,  915,  943,  796,  726,  727,
3350      1982,  805,  661, 2976,  915,  729,  916,  730, 3491, 3491,
3351      3491, 3491, 2975,  943, 2783, 3491,  928, 2977, 2978, 1983,
3352       916, 1986, 1986, 1986, 1986,  813,  814, 2979,  813,  916,
3353       724, 3491,  796,  724, 1427,  943,  815, 1762, 1763, 1763,
3354      1762,  816,  817, 2971,  804, 1984,  799,  915,  729, 1179,
3355
3356       730,  813,  814,  729,  813,  730, 3491, 2983, 2804, 2984,
3357      2251, 2990,  815, 2613, 2613, 2613, 2613,  816,  817,  805,
3358      1178, 2991,  916, 2992,  729, 2993,  730,  813,  814, 2994,
3359       813,  813,  814, 2995,  813, 2252, 2391, 2783,  815, 3491,
3360      2996, 1012,  815,  816,  817, 1991, 1012,  816,  817, 2997,
3361       729, 1012,  730, 1034,  729, 1034,  730, 2111,  813,  814,
3362      2111,  813, 2687, 2688, 2688, 2687, 2998, 1034,  724,  815,
3363      2999,  724, 1075, 1992,  816,  817, 1072, 1080, 1081,  725,
3364      2112,  729, 3000,  730,  726,  727,  990,  990,  990,  990,
3365      1075,  729, 3001,  730, 1183, 3002, 3003, 1434, 1993, 1917,
3366
3367      1994, 1995, 1917, 1994, 1917, 1917, 1917, 1917, 1917, 1917,
3368      1917, 1996, 1917, 1917, 1917, 1917, 1997, 1998, 1917,  813,
3369       814, 2000,  813, 1922, 1917, 1923, 1917, 1917, 1917, 1075,
3370       815, 3004, 3006, 3006, 2836,  816,  817, 2836, 2362, 3007,
3371       813,  814,  729,  813,  730, 3009, 3019, 1917, 1917, 1917,
3372      1917,  815, 2837, 1683, 3008, 1786,  816,  817, 2839, 2253,
3373      2253, 2253, 2253,  729,  995,  730, 1178, 1683, 3027, 2595,
3374      3008, 2001,  813,  814, 3028,  813, 3008, 3029, 1917, 1917,
3375      1917, 1917, 1999,  815, 3008, 2614, 3030, 3031,  816,  817,
3376       813,  814, 3032,  813, 3033,  729,  846,  730, 3015, 3020,
3377
3378      3021,  815, 3020, 3034, 3035, 1208,  816,  817,  813,  814,
3379      3044,  813, 1786,  729,  621,  730, 3017, 3018,  889,  815,
3380      3068,  889, 3008, 3013,  816,  817, 2002,  813,  814,  890,
3381       813,  729,  621,  730, 1222,  621, 3043, 1222,  815,  621,
3382      1183,  892, 3055,  816,  817, 1789, 1789, 1789, 1789, 3069,
3383       729,  621,  730, 3022,  813,  814,  662,  813, 3075,  845,
3384      1788, 1789, 1789, 1788, 2908,  815,  893,  621, 2277, 3023,
3385       816,  817, 2486, 2613, 2613, 2613, 2613,  729, 2003,  730,
3386      1178, 1222,  621, 2277,  813,  814,  621,  813,  813,  814,
3387       661,  813, 1910, 1791, 3025,  815,  621, 2004, 2005,  815,
3388
3389       816,  817, 1222, 3078,  816,  817, 2006,  729, 1791,  730,
3390       621,  729, 3070,  730,  813,  814, 3079,  813,  813,  814,
3391       621,  813, 1222, 3056,  621,  815,  621, 3026,  621,  815,
3392       816,  817, 3080, 1222,  816,  817, 1898,  729, 3081,  730,
3393      2007,  729, 3058,  730,  621,  813,  814, 3071,  813,  813,
3394       814, 2307,  813,  621, 1183,  621,  815,  621, 3062,  621,
3395       815,  816,  817,  621, 3073,  816,  817, 2008,  729, 3082,
3396       730, 3072,  729, 1222,  730,  813,  814, 3074,  813,  813,
3397       814, 3083,  813,  621,  621, 3084,  815, 3085, 1222, 1222,
3398       815,  816,  817, 3086, 3076,  816,  817, 3076,  729, 3077,
3399
3400       730,  846,  729, 1910,  730,  813,  814, 2777,  813,  813,
3401       814, 3114,  813, 1434, 3059, 3060,  815, 3059, 2970, 3077,
3402       815,  816,  817, 3115, 1893,  816,  817, 1893,  729, 2974,
3403       730, 1312,  729, 3117,  730, 2010, 1313, 3119, 2009,  813,
3404       814, 2976,  813, 1894, 1894, 1894, 1894, 2509,  943, 2111,
3405       815, 3122, 2111, 3123, 3124,  816,  817,  813,  814, 3119,
3406       813, 2012,  729, 3061,  730,  621, 3061, 3125,  815, 3126,
3407      3127, 3128, 2112,  816,  817, 2011, 2615, 2616, 2616, 2615,
3408       729, 3120,  730, 3129, 3130, 3008, 3131, 2617, 3008, 3132,
3409      3133, 2013, 1346, 1445, 1446, 1346, 2014, 1346, 1346, 1346,
3410
3411      1346, 1346, 1346, 1346, 1447, 1346, 1346, 1346, 1346, 1448,
3412      1449, 1346, 2538, 2016,  621, 2538, 1351, 1346, 1352, 1346,
3413      1346, 1346,  813,  814, 1012,  813, 2616, 2616, 2616, 2616,
3414      1034, 3008, 3011,  815, 1663,  915, 2567, 2617,  816,  817,
3415      1346, 1346, 1346, 1346, 1075,  729, 2567,  730, 3137, 2015,
3416      2630, 2631, 2631, 2630, 3137, 3009,  959,  960,  960,  959,
3417       916, 2632, 2808, 2808, 2808, 2808,  813,  814, 3116,  813,
3418      3140, 1346, 1346, 1346, 1346, 1451, 2017,  815, 2189,  962,
3419      3141,  963,  816,  817,  813,  814, 2809,  813, 2809,  729,
3420      3142,  730, 2189, 3143, 3145,  815, 2851, 3025, 3008, 3157,
3421
3422       816,  817,  813,  814,  964,  813, 3158,  729, 3008,  730,
3423      3008, 3020, 3021,  815, 3020, 2614, 2810, 2614,  816,  817,
3424       813,  814, 2018,  813, 3008,  729, 2114,  730, 2811,  577,
3425      3159,  815, 2812, 2813, 3160, 2814,  816,  817,  813,  814,
3426       995,  813, 3015,  729, 3146,  730, 2614, 3146, 2614,  815,
3427      2019, 3008, 3135, 1092,  816,  817,  813,  814, 2020,  813,
3428      3161,  729, 3147,  730, 3008,  889, 1208,  815,  889,  624,
3429      3017, 3018,  816,  817,  813,  814,  890,  813,  621,  729,
3430      3008,  730,  621, 3008, 3186,  815,  846, 3187,  892,  621,
3431       816,  817,  813,  814, 3188,  813,  621,  729,  621,  730,
3432
3433      3189, 3139, 3008,  815, 3153, 3153, 3153, 3153,  816,  817,
3434      3008, 3022, 3168,  893, 3190,  729, 3191,  730,  813,  814,
3435      1222,  813,  813,  814, 3197,  813, 3008, 3011, 2773,  815,
3436      3198, 3199, 1898,  815,  816,  817, 1898, 3167,  816,  817,
3437      2021,  729, 3200,  730, 1898,  729, 1898,  730, 3008, 3013,
3438       581, 3144, 2022, 1370, 1466, 1467, 1370, 1466, 1370, 1370,
3439      1370, 1370, 1370, 1370, 1370, 1468, 1370, 1370, 1370, 1370,
3440      1469, 1470, 1370,  621, 2024,  621,  845, 1375, 1370, 1376,
3441      1370, 1370, 1370,  813,  814, 3026,  813,  621,  621,  621,
3442       959,  960,  960,  959,  815, 1898, 3193, 3017, 3018,  816,
3443
3444       817, 1370, 1370, 1370, 1370, 3201,  729,  727,  730, 1329,
3445      2023, 3192, 3174,  962, 2299,  963,  621, 3194, 1789, 1789,
3446      1789, 1789, 1331,  817, 3209, 3076,  813,  814, 3076,  813,
3447      3077, 3210, 1370, 1370, 1370, 1370, 1471,  815,  964, 2025,
3448      3211, 2277,  816,  817,  813,  814, 3009,  813, 2804,  729,
3449      3077,  730, 3172, 3172, 3119,  815, 1222, 1201, 1201,  975,
3450       816,  817,  813,  814,  928,  813, 1791,  729, 3173,  730,
3451      2804, 3213, 3212,  815,  915, 3214, 3119, 3215,  816,  817,
3452       813,  814, 3216,  813, 3217,  729,  928,  730, 3218, 2026,
3453      3219,  815, 2966, 2966, 2966, 2966,  816,  817, 3120,  916,
3454
3455      2027,  813,  814,  729,  813,  730, 2783, 3220, 3491, 3491,
3456      3491, 3491,  815, 3221, 3222, 2967, 3223,  816,  817,  813,
3457       814, 3172,  813, 3225,  729, 3225,  730, 3226, 3227, 3228,
3458       815, 2028, 3491, 3229, 3491,  816,  817,  813,  814, 3008,
3459       813, 3008,  729, 3230,  730,  581, 3232, 3231,  815, 2029,
3460      3152, 3236, 2030,  816,  817,  813,  814, 3160,  813, 2614,
3461       729, 3146,  730, 3239, 3146, 1208,  815, 3247, 2815, 3247,
3462      2967,  816,  817,  813,  814,  621,  813,  577,  729, 3147,
3463       730, 3251, 3008, 3135,  815, 3260, 3491,  621, 1092,  816,
3464       817, 3251, 2031, 3009,  813,  814,  729,  813,  730, 3008,
3465
3466      3246, 3491, 3491, 3491, 3491,  815, 3249, 3245, 2032, 3249,
3467       816,  817,  813,  814, 3251,  813, 3277,  729, 2033,  730,
3468      3278, 3279, 3280,  815, 3281, 3491, 3258, 3491,  816,  817,
3469       813,  814, 3190,  813,  621,  729, 3139,  730, 3290,  621,
3470       621,  815, 3291, 2034, 1898,  621,  816,  817,  813,  814,
3471      1898,  813, 3292,  729, 2035,  730, 2538, 3282, 2964,  815,
3472      2970, 2974, 3301, 3302,  816,  817,  813,  814,  928,  813,
3473      3283,  729, 3284,  730, 3303, 3304, 3305,  815, 2036, 3491,
3474      3306, 3300,  816,  817,  813,  814, 3307,  813, 3308,  729,
3475       928,  730, 3309,  724, 3310,  815,  724, 3311, 3313, 3313,
3476
3477       816,  817, 2037,  813,  814, 1434,  813,  729, 3314,  730,
3478      3491, 3491, 3491, 3491,  815, 3320,  729, 2614,  730,  816,
3479       817,  813,  814, 3327,  813, 1208,  729, 3315,  730, 3329,
3480      3315, 3251,  815, 3260, 3491, 2038, 3491,  816,  817,  813,
3481       814, 3251,  813,  621,  729, 3347,  730, 3172, 3172, 2039,
3482       815, 3316, 1201, 1201, 3316,  816,  817,  813,  814, 2040,
3483       813, 3280,  729, 3173,  730, 3348, 3253, 2608,  815, 3253,
3484      2816,  621, 3317,  816,  817, 3317, 2608, 3259,  813,  814,
3485       729,  813,  730, 2287, 2288, 2288, 2287, 3318, 3491,  815,
3486      3318, 3250, 2041, 3325,  816,  817, 3325,  813,  814, 2042,
3487
3488       813,  729, 3330,  730, 3326, 3251, 2289, 3349,  815, 3350,
3489      3349, 2043, 3319,  816,  817, 3319, 3172, 3258,  813,  814,
3490       729,  813,  730, 3331, 3353,  621, 3331,  889, 2044,  815,
3491       889,  633, 2045, 3353,  816,  817,  813,  814,  890,  813,
3492       621,  729, 3352,  730, 3355, 3333, 2112,  815, 3333, 3356,
3493       892, 1898,  816,  817,  813,  814, 3334,  813, 3365,  729,
3494       577,  730, 3288, 3288, 2046,  815, 3366, 1201, 1201, 3367,
3495       816,  817, 3351,  813,  814,  893,  813,  729, 3289,  730,
3496      2631, 2631, 2631, 2631,  815, 3368,  621, 3251, 1434,  816,
3497       817, 2632,  813,  814, 3369,  813,  729, 2962,  730, 3269,
3498
3499      3375,  889, 2047,  815,  889, 3375, 3377, 3260,  816,  817,
3500       813,  814,  890,  813, 1208,  729, 3399,  730, 3245, 2048,
3501      3373,  815, 3376, 3373,  892, 3376,  816,  817,  621, 1434,
3502      3381, 3288, 3400,  729, 3280,  730,  813,  814,  621,  813,
3503       813,  814, 3315,  813, 3403, 3315, 3404,  815, 2049,  893,
3504       621,  815,  816,  817, 1331, 3316,  816,  817, 3316,  729,
3505      3245,  730, 3401,  729,  621,  730,  813,  814, 3113,  813,
3506       813,  814, 3317,  813, 3409, 3317, 2050,  815, 3365, 3410,
3507      1222,  815,  816,  817, 3411, 3318,  816,  817, 3318,  729,
3508      3412,  730, 3414,  729, 3414,  730, 2051,  813,  814, 3415,
3509
3510       813,  813,  814, 3319,  813, 2052, 3319, 3331,  815, 3260,
3511      3331, 1208,  815,  816,  817, 3250, 3406,  816,  817, 3406,
3512       729, 3430,  730, 3407,  729,  845,  730,  813,  814, 3431,
3513       813,  959,  960,  960,  959, 3433, 3434, 2053,  815,  959,
3514       960,  960,  959,  816,  817,  959,  960,  960,  959, 2054,
3515       729,  577,  730, 2055,  962, 3441,  963,  959,  960,  960,
3516       959, 3442,  962, 3373,  963, 3421, 3373,  621, 1564, 3306,
3517       963,  959,  960,  960,  959,  959,  960,  960,  959,  964,
3518       962, 3306,  963, 3444, 2115, 3376, 3253,  964, 3376, 3253,
3519      2056, 2116, 3402,  964,  962, 3402,  963, 3259,  962, 3444,
3520
3521       963,  959,  960,  960,  959,  964,  621,  959,  960,  960,
3522       959, 3250,  959,  960,  960,  959, 3445,  814,  814,  964,
3523       814, 3432, 3397,  964,  962, 3397,  963, 3448,  815,  975,
3524       962,  621,  963,  816,  817,  962, 1208,  963, 2117,  959,
3525       960,  960,  959,  959,  960,  960,  959, 3250, 3455,  964,
3526       959,  960,  960,  959, 3457,  964, 3333, 2118, 3406, 3333,
3527       964, 3406,  962, 3458,  963, 3436,  962, 3334,  963,  959,
3528       960,  960,  959,  962, 3365,  963, 2119, 2120, 3365,  959,
3529       960,  960,  959, 3154, 3154, 3154, 3154,  964,  621, 3463,
3530      3155,  964,  962, 3250,  963, 2121, 3250, 3438,  964, 3463,
3531
3532      3438, 3456,  962, 2122,  963,  959,  960,  960,  959, 3439,
3533      2123, 3160, 2290, 2290, 2290, 2290, 3386,  964, 1208, 2279,
3534      2279, 2279, 2279,  619,  975, 3250, 2280,  964,  962, 2254,
3535       963, 2124, 2254, 3467, 3454, 3364, 1178, 3454, 3364, 3469,
3536       928, 1179,  631, 1799, 1799, 1799, 1799, 1898, 2255, 2255,
3537      2255, 2255, 1180,  964,  619, 3472, 3472, 2125,  617,  618,
3538       618,  617,  928, 1208, 3280, 3362,  631,  633, 3362,  619,
3539       620, 3446,  621,  620, 3446, 3402, 3363, 1182, 3402, 3477,
3540       621,  622,  620,  623, 3464, 2282, 1798, 1798, 1798, 1798,
3541      3477,  633, 1208,  630, 1799, 1799, 1799, 1799, 2112, 3454,
3542
3543      1218, 1893, 3454, 3481, 1893,  619,  624,  620, 1312,  631,
3544      1183, 3364, 3245, 1313, 3364, 3481,  928,  631, 1208, 1801,
3545      1894, 1894, 1894, 1894, 2290, 2290, 2290, 2290, 2250, 1762,
3546      1763, 1763, 1762, 3473,  633,  619, 1178, 3478,  928,  621,
3547       621, 1179,  633, 1985, 1985, 1985, 1985,  621, 1764, 1764,
3548      1764, 1764, 1765, 1429, 1429, 1429, 1429, 2295, 2296, 2296,
3549      2295, 3484,  621, 3484,  796, 3482,  804,  634, 2297,  620,
3550      3468, 1208,  620, 2296, 2296, 2296, 2296, 1767, 3488, 2573,
3551       622,  620,  963, 1075, 2297,  620, 3250, 3418,  620, 3250,
3552      3418,  805, 1203, 1203, 1203, 1203,  622,  620, 3274, 1204,
3553
3554      3154, 3154, 3154, 3154, 2572,  624,  620, 3155, 2571, 3423,
3555      1183, 1762, 1763, 1763, 1762,  631, 3250, 3491, 1178, 3250,
3556      3491,  624,  620, 1179, 3491, 3485, 1825, 1826, 1826, 1825,
3557      1764, 1764, 1764, 1764, 1765,  621, 2570, 1827,  620, 3339,
3558       633,  620, 1826, 1826, 1826, 1826, 2569, 1075, 2568,  622,
3559       620,  963,  621, 1827,  620, 3486, 3489,  620, 1205, 1767,
3560       724, 3349,  621,  724, 3349,  622,  620, 2259, 2260, 2260,
3561      2259,  725, 2567,  634,  624,  620,  726,  727, 2261, 2288,
3562      2288, 2288, 2288,  729, 2562,  730, 1986, 1986, 1986, 1986,
3563       624,  620, 1183,  617,  618,  618,  617,  796, 3475, 3475,
3564
3565      3475, 3475,  631,  724,  619,  620,  724, 2161,  620,  804,
3566      2966, 2966, 2966, 2966,  725, 2333,  622,  620,  623,  726,
3567       727,  724, 3491, 1631,  724, 3491,  729,  633,  730, 3491,
3568      2378, 2334,  725, 2967,  805, 1184, 3418,  726,  727, 3418,
3569      1184,  624,  620, 1184,  729, 2559,  730, 3274, 1184, 2283,
3570      1808, 2306, 1810, 1810, 2306, 1808, 1808, 1808, 1808, 1808,
3571      1808, 1808, 1811, 1812, 1808, 1808, 1812, 1808, 1808, 1808,
3572      2379, 2558, 2557, 2556, 1813, 1812, 1814, 1808, 1808, 1808,
3573       724, 2555,  621,  724, 3475, 3475, 3475, 3475, 2967, 3487,
3574      2380,  725,  959,  960,  960,  959,  726,  727, 1808, 1815,
3575
3576      1812, 1808, 1034,  729, 2254,  730, 2554, 2254, 2553, 3418,
3577      3452, 1178, 3418, 3452, 1034,  962, 1179,  963, 2552, 2551,
3578      3274, 3274, 2541, 2255, 2255, 2255, 2255, 1180, 2540, 1808,
3579      1808, 1808, 1808, 1816, 1825, 1826, 1826, 1825, 2539,  724,
3580       964, 3438,  724, 2538, 3438, 1827,  620, 2537, 3438,  620,
3581       725, 3438, 1182, 3460, 2536,  726,  727,  622,  620,  963,
3582      3460, 2535,  729,  724,  730, 2534,  724, 2615, 2616, 2616,
3583      2615, 2522, 3438, 3490,  725, 3438, 3490, 2520, 2617,  726,
3584       727, 2519,  624,  620, 3439, 1183,  729, 2518,  730, 2517,
3585      2311, 1861,  618,  618, 1861,  959,  960,  960,  959, 2516,
3586
3587      2515,  759,  619,  620, 2514,  943,  620, 2513, 1986, 1986,
3588      1986, 1986,  621, 2512,  622,  620,  963, 2511,  962,  796,
3589       963,  724,  759, 3452,  724,  724, 3452,  943,  724, 2510,
3590      2509,  804,  725,  799, 3274, 1696,  725,  726,  727,  624,
3591       620,  726,  727,  964,  729, 2333,  730, 1690,  729, 2500,
3592       730, 2499, 3491, 3491, 3491, 3491,  805, 2498, 2525, 3491,
3593      2493, 2334, 1370, 1371, 1370, 1370, 1371, 1370, 1370, 1370,
3594      1370, 1370, 1370, 1370, 1372, 1370, 1370, 1370, 1370, 1373,
3595      1374, 1370, 2616, 2616, 2616, 2616, 1375, 1370, 1376, 1370,
3596      1370, 1370, 2382, 2617, 3438, 1335, 3452, 3438,  724, 3452,
3597
3598      2492,  724,  959,  960,  960,  959, 3460, 3274, 2491,  725,
3599      1370, 1370, 1370, 1370,  726,  727, 2490,  596,  596, 2381,
3600      2489,  729,  596,  730, 2488,  962,  596,  963, 2487,  900,
3601       893,  959,  960,  960,  959,  892,  724, 2057,  817,  724,
3602      1331, 1370, 1370, 1370, 1370, 1377,  724,  725, 1329,  724,
3603       964,  727,  726,  727,  962, 2376,  963,  725, 2383,  729,
3604      2375,  730,  726,  727,  724,  889, 2374,  724,  889,  729,
3605      2373,  730, 2372, 2524,  724,  725,  890,  724, 2369,  964,
3606       726,  727, 2368, 2367, 2366,  725, 2365,  729,  892,  730,
3607       726,  727, 2364,  724, 2363, 1892,  724,  729, 2361,  730,
3608
3609      2360,  662,  975,  724,  725, 1277,  724, 2339, 2384,  726,
3610       727, 1222, 3362,  893,  725, 3362,  729, 2385,  730,  726,
3611       727, 3208, 2331, 3363, 2330, 1222,  729, 2386,  730,  724,
3612       621,  624,  724,  724, 2286,  892,  724, 2286, 2387, 1208,
3613       725, 2278, 2273, 2272,  725,  726,  727, 2271,  724,  726,
3614       727,  724,  729, 2388,  730, 2270,  729, 2269,  730,  725,
3615       893, 2266, 2265,  724,  726,  727,  724,  724, 2264, 2263,
3616       724,  729, 2389,  730,  725, 2262, 2258, 2257,  725,  726,
3617       727, 1767,  577,  726,  727, 1335,  729,  577,  730,  577,
3618       729,  724,  730,  577,  724,  724, 2390, 1736,  724, 2233,
3619
3620       705,  705,  725, 2225, 1722,  705,  725,  726,  727,  705,
3621       724,  726,  727,  724,  729, 2392,  730, 2221,  729,  758,
3622       730,  725, 1711, 2217, 1700,  724,  726,  727,  724,  792,
3623       792, 2216, 2393,  729,  792,  730,  725, 1696,  792, 2214,
3624       724,  726,  727,  724, 3491, 3491, 3491, 3491,  729, 1690,
3625       730,  725, 2211, 1687, 2209,  724,  726,  727,  724,  811,
3626       811, 2196, 2394,  729,  811,  730,  725, 2192,  811, 1335,
3627       724,  726,  727,  724,  724, 2192, 2395,  724,  729, 2185,
3628       730,  725, 2184, 2183, 1075,  725,  726,  727, 2182,  724,
3629       726,  727,  724,  729, 2396,  730, 2181,  729, 2180,  730,
3630
3631       725, 2179, 2178, 2177, 3370,  726,  727,  724, 2176, 2397,
3632       724, 2175,  729, 2174,  730, 1075, 2173, 2172,  725, 2171,
3633      2398, 1075, 3491,  726,  727,  724, 2170, 2400,  724, 2162,
3634       729, 1631,  730, 1631, 2155,  724,  725, 1034,  724, 2399,
3635      2154,  726,  727, 2153, 2152, 2151,  725, 2150,  729, 2149,
3636       730,  726,  727,  724,  889, 2148,  724,  889,  729, 2401,
3637       730, 1034,  879,  879,  725,  890, 2147,  879, 2146,  726,
3638       727,  879,  724, 1034, 2402,  724,  729,  892,  730, 2403,
3639      2145, 2144,  724,  725, 1012,  724, 2143, 2404,  726,  727,
3640      2142, 2141, 2140,  725, 2139,  729, 2138,  730,  726,  727,
3641
3642       724, 2137,  893,  724, 1012,  729, 2136,  730, 3299, 2135,
3643       724,  725, 1012,  724, 3288, 3288,  726,  727, 2134, 1201,
3644      1201,  725, 2405,  729, 2133,  730,  726,  727, 2132,  724,
3645      3289, 2131,  724,  729, 2407,  730, 2130, 2129, 2128, 2406,
3646       725, 2127, 2126, 1566,  724,  726,  727,  724,  724, 1565,
3647       964,  724,  729, 2108,  730,  725, 2408,  943, 2107,  725,
3648       726,  727, 2106,  724,  726,  727,  724,  729, 2105,  730,
3649      2409,  729, 2104,  730,  725, 2103, 2102, 2101,  724,  726,
3650       727,  724, 2100, 3288, 2099, 1335,  729,  943,  730,  725,
3651      2098, 2097, 2096,  724,  726,  727,  724, 2630, 2631, 2631,
3652
3653      2630,  729, 2095,  730,  725,  943, 2094, 2078, 2632,  726,
3654       727, 2071,  724, 2068, 2410,  724,  729, 2067,  730, 2411,
3655      2066, 2065, 2064,  725,  900,  893, 2059,  724,  726,  727,
3656       724,  959,  960,  960,  959,  729, 2412,  730,  725, 2057,
3657       817,  817,  724,  726,  727,  724,  724, 2413, 1422,  724,
3658       729, 1331,  730,  725,  962, 1329,  963,  725,  726,  727,
3659       727, 1331,  726,  727,  758,  729, 1329,  730, 2414,  729,
3660       727,  730,  724, 1331, 1910,  724, 1909, 1908, 2415,  964,
3661      1907, 1906, 1905,  725, 1902, 2527, 1901,  724,  726,  727,
3662       724,  886,  886, 2416, 1900,  729,  886,  730,  725, 1899,
3663
3664       886, 1898, 2417,  726,  727,  724, 1897, 1896,  724, 1888,
3665       729, 2418,  730, 1887, 1874,  621,  725,  624, 1214, 1208,
3666       724,  726,  727,  724, 1787, 1566, 2419, 1786,  729, 1785,
3667       730,  725, 3250, 3491, 3250, 3250,  726,  727, 1784, 3250,
3668      1783, 2420, 1782,  729,  724,  730, 1781,  724, 2631, 2631,
3669      2631, 2631, 1778, 1777,  724,  725, 1776,  724, 1775, 2632,
3670       726,  727, 1774, 1773, 2421,  725, 1772,  729, 1182,  730,
3671       726,  727, 1174, 3233, 3233, 3233, 3233,  729, 1735,  730,
3672      3022, 1735, 1723, 2422, 1917, 1918, 1917, 1917, 1918, 1917,
3673      1917, 1917, 1917, 1917, 1917, 1917, 1919, 1917, 1917, 1917,
3674
3675      1917, 2423, 2424, 1917,  724, 1712, 1701,  724, 1922, 1917,
3676      1923, 1917, 1917, 1917,  724,  725, 1696,  724, 2425, 1686,
3677       726,  727, 1690, 1688, 2426,  725, 1686,  729, 1669,  730,
3678       726,  727, 1917, 1917, 1917, 1917, 1669,  729, 1665,  730,
3679      1091,  814,  814, 1091,  814,  724,  899,  899,  724, 1664,
3680      1661,  899,  815, 1660, 3026,  899,  725,  816,  817, 1657,
3681      1656,  726,  727, 1917, 1917, 1917, 1917, 1924,  729, 2427,
3682       730, 1655,  724, 1654, 2428,  724, 2431, 1653, 1652, 2429,
3683      1075, 1650,  724,  725, 1649,  724, 1648, 1647,  726,  727,
3684      1646, 1075, 1631,  725, 1629,  729, 1628,  730,  726,  727,
3685
3686       724, 1627, 1626,  724, 1623,  729, 1622,  730, 1621, 1620,
3687      1335,  725, 3153, 3153, 3153, 3153,  726,  727,  724, 3022,
3688      1034,  724, 1619,  729, 1618,  730, 1617, 1616,  724,  725,
3689      2430,  724, 1034, 1615,  726,  727, 1614,  903,  903,  725,
3690      1335,  729,  903,  730,  726,  727,  903,  813,  814, 1613,
3691       813,  729, 1612,  730, 3233, 3233, 3233, 3233,  815, 1609,
3692      1608, 3022, 1607,  816,  817,  813,  814, 1606,  813, 1012,
3693       729, 2432,  730, 1605,  911,  911,  815, 1604, 1603,  911,
3694      1602,  816,  817,  911,  759, 1012, 1601, 2433,  729, 1600,
3695       730,  813,  814, 3026,  813,  813,  814, 1599,  813, 1598,
3696
3697       956,  956,  815, 1597, 1596,  956,  815,  816,  817,  956,
3698      1595,  816,  817, 1594,  729, 1593,  730, 2435,  729, 1566,
3699       730, 1565,  813,  814, 1563,  813,  813,  814, 1562,  813,
3700      1561, 1560, 2436,  815, 1559, 3026, 1558,  815,  816,  817,
3701      1555, 1554,  816,  817, 1553,  729, 1552,  730,  943,  729,
3702      1550,  730, 1549, 3491, 3491, 3491, 3491, 1548, 1547, 1546,
3703      2437, 1370, 1466, 1467, 1370, 1466, 1370, 1370, 1370, 1370,
3704      1370, 1370, 1370, 1468, 1370, 1370, 1370, 1370, 1469, 1470,
3705      1370, 1545,  943, 3491,  924, 1375, 1370, 1376, 1370, 1370,
3706      1370,  813,  814, 3491,  813,  917, 1434,  916, 3491, 3491,
3707
3708      3491, 3491,  815,  917, 1524, 3491, 1523,  816,  817, 1370,
3709      1370, 1370, 1370, 3372,  729, 1522,  730, 1521, 2438, 1520,
3710       900, 3491,  813,  814, 1518,  813,  900,  959,  960,  960,
3711       959, 3491, 1515,  815, 1514, 1512,  881,  627,  816,  817,
3712      1370, 1370, 1370, 1370, 1471,  729, 3491,  730,  813,  814,
3713       962,  813,  963,  846,  818,  959,  960,  960,  959,  815,
3714       817,  805, 1422,  800,  816,  817,  813,  814,  728,  813,
3715      1331,  729, 1329,  730,  727,  964, 1324,  815,  962, 3491,
3716       963,  846,  816,  817,  813,  814, 1321,  813, 1318,  729,
3717      1317,  730,  707,  707, 2526,  815, 1303,  621,  633, 1208,
3718
3719       816,  817,  624,  964,  621,  813,  814,  729,  813,  730,
3720      1194, 2528, 3237, 3238, 2260, 3237,  815, 1191, 1188, 1434,
3721      1187,  816,  817, 2261,  813,  814, 2439,  813,  729, 1174,
3722       730, 2287, 2288, 2288, 2287,  815, 3234, 3234, 3234, 3234,
3723       816,  817,  813,  814,  581,  813,  577,  729, 3149,  730,
3724       577, 3149,  569,  815,  631,  562, 2440,  558,  816,  817,
3725      3149,  813,  814, 1099,  813,  729, 1096,  730, 3250, 3491,
3726      3250, 3250,  815, 1091,  525, 3250, 2441,  816,  817,  633,
3727       813,  814, 1087,  813,  729, 3149,  730, 2442, 1086, 1085,
3728      1078,  815,  990,  990,  990,  990,  816,  817,  813,  814,
3729
3730      1077,  813, 2443,  729, 1074,  730, 1073, 1070, 1069,  815,
3731      1059, 1048, 1047, 1044,  816,  817,  813,  814, 1043,  813,
3732      1042,  729, 1038,  730, 1037, 1036, 1033,  815, 1032, 1031,
3733      2444, 1030,  816,  817,  813,  814, 1434,  813, 1029,  729,
3734      1022,  730, 1021, 1020, 1016,  815, 2827, 1015, 1014, 1011,
3735       816,  817,  813,  814, 1010,  813, 1009,  729, 2828,  730,
3736      1008, 2445, 2829,  815, 1007, 2830,  525, 1003,  816,  817,
3737       995,  997,  997, 1002, 1001,  729,  997,  730,  813,  814,
3738       997,  813,  813,  814, 1000,  813,  999,  845,  525,  815,
3739      2391, 1005, 1005,  815,  816,  817, 1005,  958,  816,  817,
3740
3741      1005,  729,  955,  730, 2446,  729,  954,  730,  813,  814,
3742       953,  813,  813,  814,  947,  813,  946, 1023, 1023,  815,
3743       945,  942, 1023,  815,  816,  817, 1023,  941,  816,  817,
3744       940,  729,  937,  730,  936,  729,  917,  730,  813,  814,
3745       912,  813,  909, 2447,  908, 3491, 3491, 3491, 3491,  815,
3746       907,  906,  900, 2448,  816,  817,  813,  814,  627,  813,
3747       881,  729,  525,  730,  793,  599,  707,  815,  704,  707,
3748       706,  704,  816,  817,  813,  814,  628,  813, 2449,  729,
3749       607,  730, 1434,  604,  599,  815,  597,  591,  588,  577,
3750       816,  817,  813,  814,  577,  813,  577,  729,  572,  730,
3751
3752      3306,  569,  561,  815,  525,  548,  542, 2450,  816,  817,
3753       813,  814,  533,  813,  525,  729, 3491,  730, 3491, 1027,
3754      1027,  815, 3491, 3491, 1027, 2451,  816,  817, 1027,  813,
3755       814, 3491,  813,  729, 3491,  730, 3491, 3491, 3491, 2452,
3756       815, 3491, 3491, 3491, 3491,  816,  817, 3491,  813,  814,
3757      3491,  813,  729, 3491,  730, 2808, 2808, 2808, 2808,  815,
3758      3491, 2453, 3491, 2454,  816,  817,  813,  814, 3491,  813,
3759      3491,  729, 3491,  730, 3491, 3491, 3491,  815, 3491, 2809,
3760      3491, 2809,  816,  817,  813,  814, 3491,  813, 3491,  729,
3761      3491,  730, 3491, 3491, 3491,  815, 3491, 3491, 3491, 2455,
3762
3763       816,  817,  813,  814, 3491,  813, 3491,  729, 3491,  730,
3764      3491, 3491, 3491,  815, 3491, 2456, 3491, 3491,  816,  817,
3765      2457,  813,  814, 3491,  813,  729, 2988,  730, 3491, 3491,
3766      3491, 3491,  815,  995, 3491, 3491, 2458,  816,  817,  813,
3767       814, 3491,  813, 3491,  729, 3491,  730, 3491, 3491, 3491,
3768       815, 3234, 3234, 3234, 3234,  816,  817,  813,  814, 3491,
3769       813, 3491,  729, 3149,  730, 3491, 3149, 3491,  815, 3491,
3770      3491, 2459, 3491,  816,  817, 3149,  813,  814, 3491,  813,
3771       729, 3491,  730,  990,  990,  990,  990,  815, 2460, 3491,
3772      3491, 2461,  816,  817,  813,  814, 3491,  813, 3491,  729,
3773
3774      3149,  730, 3491, 3491, 3491,  815, 2288, 2288, 2288, 2288,
3775       816,  817, 3491, 2462, 3491,  813,  814,  729,  813,  730,
3776       959,  960,  960,  959, 3491, 3491,  815, 3491, 3491,  631,
3777      3491,  816,  817, 3491, 3491, 3491, 2463, 2810,  729, 3491,
3778       730,  813,  814,  962,  813,  963, 1045, 1045, 3491, 2811,
3779      1434, 1045,  815, 2812,  633, 1045, 2814,  816,  817,  813,
3780       814,  995,  813, 3491,  729, 3491,  730, 3491,  964, 3491,
3781       815, 3491, 3491, 3491, 3491,  816,  817,  813,  814, 3491,
3782       813, 3491,  729, 3491,  730, 2464, 3491, 3491,  815, 3491,
3783      3491,  975, 3491,  816,  817,  813,  814, 3491,  813, 3491,
3784
3785       729, 3491,  730, 3491, 3491, 3491,  815, 3248, 1789, 1789,
3786      3248,  816,  817, 3491, 2465, 3491,  813,  814,  729,  813,
3787       730, 3491,  959,  960,  960,  959, 3491,  815, 2466, 3491,
3788      1790, 3491,  816,  817, 3491, 2279, 2279, 2279, 2279,  729,
3789      3491,  730, 2633,  813,  814,  962,  813,  963,  845, 3491,
3790      3491, 2467, 3491, 3491,  815, 1791, 3491, 3491,  631,  816,
3791       817,  813,  814, 3491,  813, 3491,  729, 2468,  730, 3491,
3792       964, 3491,  815, 2529, 3491, 3491, 3491,  816,  817, 3491,
3793      3491, 3491, 2469,  633,  729, 3491,  730, 3491,  813,  814,
3794      3491,  813, 3491, 3491, 3491,  959,  960,  960,  959,  815,
3795
3796      3491, 2635, 3491, 2470,  816,  817,  813,  814, 3491,  813,
3797      3491,  729, 3491,  730, 3491, 3491, 1218,  815,  962, 3491,
3798       963, 3491,  816,  817,  813,  814, 2471,  813, 3491,  729,
3799      3491,  730, 3491, 3491, 3491,  815, 3491, 3491, 3491, 3491,
3800       816,  817, 2472,  964, 3491,  813,  814,  729,  813,  730,
3801      1050, 1050, 3491, 2531, 3491, 1050,  815, 3491, 3491, 1050,
3802      2473,  816,  817,  813,  814, 3491,  813, 3491,  729, 3491,
3803       730, 3491, 3491, 3491,  815, 3491, 3491, 3491, 3491,  816,
3804       817,  813,  814, 2474,  813, 3491,  729, 3491,  730, 3491,
3805      3491, 3491,  815, 3491, 3491, 3491, 3491,  816,  817,  813,
3806
3807       814, 3491,  813, 3491,  729, 3491,  730, 3491, 2475, 3491,
3808       815, 3491, 3491, 3491, 3491,  816,  817,  813,  814, 3491,
3809       813, 3491,  729, 3491,  730, 3491, 3491, 3491,  815, 2279,
3810      2279, 2279, 2279,  816,  817, 3491, 2280, 2476, 3491, 3491,
3811       729, 3491,  730, 3491,  813,  814, 3491,  813, 1056, 1056,
3812      3491, 2477,  631, 1056, 2478,  815, 3491, 1056, 3491, 2479,
3813       816,  817,  813,  814, 2480,  813, 3491,  729, 3491,  730,
3814      3491, 3491, 3491,  815, 3491, 3491, 3491,  633,  816,  817,
3815       813,  814, 1434,  813, 3491,  729, 3491,  730, 3491, 3491,
3816      3491,  815, 3491, 3491, 3491, 2282,  816,  817,  813,  814,
3817
3818      3491,  813, 2481,  729, 3491,  730, 3491, 3491, 3491,  815,
3819      1218, 3491, 3491, 3491,  816,  817,  813,  814, 3491,  813,
3820      1434,  729, 3491,  730, 3491, 3491, 3491,  815, 3491, 3491,
3821      3491, 3491,  816,  817,  813,  814, 3491,  813, 3491,  729,
3822      3491,  730, 3491, 3491, 3491,  815, 3491, 3491, 3491, 3491,
3823       816,  817, 2482, 3491, 3491,  724, 3491,  729,  724,  730,
3824      3491, 3491, 3321, 3322, 2616, 3321,  725, 3491, 3491, 2483,
3825      3491, 2694, 2695, 2617, 1067, 1067, 3491, 3491,  729, 1067,
3826       730, 3491, 3491, 1067, 3491, 2484, 3491, 3491, 3491, 3491,
3827       846, 1370, 1574, 1575, 1575, 1574, 1370, 1370, 1370, 1370,
3828
3829      1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
3830      1370,  961,  961,  961,  961, 1576, 1370, 1577, 1370, 1370,
3831      1370,  961,  961,  961,  961,  961,  961,  961,  961,  961,
3832       961,  961,  961,  961,  961,  961,  961,  961,  961, 1370,
3833      1578, 1370, 1370,  961,  961,  961,  961,  961, 2523,  961,
3834       961,  961,  961,  961,  961,  961,  961,  961,  961,  961,
3835       961,  961,  961,  961,  961,  961,  961,  961,  961,  961,
3836      1370, 1370, 1370, 1370, 1579,  959,  960,  960,  959,  959,
3837       960,  960,  959,  959,  960,  960,  959, 3491, 2636, 2636,
3838      2636, 2636, 3491,  959,  960,  960,  959, 3491,  962,  619,
3839
3840       963, 3491,  962, 3491,  963, 3491,  962, 3491,  963,  724,
3841      3491, 2277,  724, 2638, 3491, 3491,  962, 3491,  963, 3491,
3842       725, 3491, 3491,  964, 3491,  726,  727,  964, 1089, 1089,
3843      3491,  964,  729, 1089,  730, 3491, 1791, 1089, 1513, 1513,
3844      2530,  964, 3491, 1513, 3491, 3491, 3491, 1513, 3491, 3491,
3845      2532, 3491, 2533, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
3846      1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
3847      1370, 1370, 1370, 1068, 1068, 1068, 1068, 1370, 1370, 1370,
3848      1370, 1370, 1370, 1068, 1068, 1068, 1068, 1068, 1068, 1068,
3849      1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068,
3850
3851      1068, 1370, 1370, 1370, 1370, 1068, 1068, 1068, 1068, 1068,
3852      2566, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068,
3853      1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068,
3854      1068, 1068, 1370, 1370, 1370, 1370, 1651,  617,  618,  618,
3855       617, 3491, 3491, 3491, 2636, 2636, 2636, 2636,  619,  620,
3856      3491, 3491,  620, 2611, 2612,  619, 3234, 3234, 3234, 3234,
3857       622,  620,  623, 3322, 3322, 2616, 3322, 2277, 3149, 2638,
3858      3491, 3149, 3491, 3491, 2617,  959,  960,  960,  959, 3491,
3859      3149, 3491, 3491, 3491, 3491,  624,  620, 1762, 1763, 1763,
3860      1762, 3491, 1791, 3491, 1178, 3491, 3491, 3491,  962, 1179,
3861
3862       963, 2295, 2296, 2296, 2295, 3149, 1764, 1764, 1764, 1764,
3863      1765, 2639, 2297,  620, 3491, 3491,  620, 2296, 2296, 2296,
3864      2296, 3491, 3491,  964,  622,  620,  963, 2798, 2297,  620,
3865      3491,  724,  620, 3491,  724, 1767, 3491, 3491, 3491, 3491,
3866       622,  620,  725, 3491, 3491, 3491, 3491,  726,  727,  624,
3867       620, 3491, 1516, 1516,  729, 3491,  730, 1516, 1519, 1519,
3868      3491, 1516, 3491, 1519, 3491,  624,  620, 1519, 1183,  617,
3869       618,  618,  617, 3491, 2799,  960,  960, 2799, 3491,  724,
3870       619,  620,  724, 3491,  620, 3491, 3491, 3491, 3491, 3491,
3871       725, 3491,  622,  620,  623,  726,  727,  962,  724,  963,
3872
3873      3491,  724,  729, 2708,  730, 3491, 3491, 3491,  724,  725,
3874      3491,  724, 3491, 3491,  726,  727, 3491,  624,  620,  725,
3875      3491,  729,  964,  730,  726,  727, 3272,  618, 3273, 3272,
3876      3491,  729, 3491,  730, 3491, 2709, 3491, 3274, 2640, 1808,
3877      2648, 1810, 1810, 2648, 1808, 1808, 1808, 1808, 1808, 1808,
3878      1808, 1811, 1812, 1808, 1808, 1812, 1808, 1808, 1808,  724,
3879      2710, 2714,  724, 1813, 1812, 1814, 1808, 1808, 1808, 3491,
3880       725, 3491, 2060, 2060, 3491,  726,  727, 2060, 3491, 3491,
3881       724, 2060,  729,  724,  730, 3491, 3491, 1808, 1815, 1812,
3882      1808,  725,  959,  960,  960,  959,  726,  727, 3491, 3491,
3883
3884      3491, 3491, 3491,  729, 3491,  730, 3491,  959,  960,  960,
3885       959, 2711, 3491, 3491, 3491,  962, 3491,  963, 1808, 1808,
3886      1808, 1808, 1816, 2653, 2296, 2296, 2653, 3491, 3491, 3491,
3887       962, 3491,  963,  724, 2297,  620,  724, 3491,  620, 3491,
3888       964, 3491, 3491, 3491,  725, 2713,  622,  620,  963,  726,
3889       727, 3491, 3491, 3491, 3491,  964,  729, 2801,  730,  724,
3890      2110, 2110,  724,  724, 3491, 2110,  724, 3491, 3491, 2110,
3891       725,  624,  620, 3491,  725,  726,  727, 2333, 2800,  726,
3892       727, 3491,  729, 3491,  730, 3491,  729, 3491,  730, 1335,
3893      3491, 3491, 3491, 2334, 1233, 1234, 1235, 1235, 1234, 1233,
3894
3895      1233, 1233, 1233, 1233, 1233, 1233, 1236, 1237, 1233, 1233,
3896      1237, 1233, 1233, 1233, 3491,  758, 3491, 2716, 1238, 1237,
3897      1239, 1233, 1233, 1233, 2636, 2636, 2636, 2636, 3273,  618,
3898      3273, 3273, 3491, 3491, 3491,  619, 3491, 3491,  724, 3274,
3899      3491,  724, 1233, 1240, 1237, 1233, 3491, 2277, 3491,  725,
3900      3491, 3491, 3491, 3250,  726,  727, 3371, 3371, 3371, 3371,
3901      3491,  729, 3491,  730, 3491,  662, 3491, 2809, 3491, 3491,
3902      3491, 3491, 1791, 1233, 1233, 1233, 1233, 1242, 1917, 1918,
3903      1917, 1917, 1918, 1917, 1917, 1917, 1917, 1917, 1917, 1917,
3904      1919, 1917, 1917, 1917, 1917, 1920, 1921, 1917, 2715, 3491,
3905
3906      3491, 3491, 1922, 1917, 1923, 1917, 1917, 1917,  724, 2186,
3907      2186,  724, 3491, 3491, 2186, 3491, 3491, 3491, 2186,  725,
3908       959,  960,  960,  959,  726,  727, 1917, 1917, 1917, 1917,
3909      2712,  729, 3491,  730, 3491, 3321, 3322, 2616, 3321,  724,
3910      3491, 3491,  724,  962, 3491,  963, 2617, 3491, 3491, 3491,
3911       725, 3491, 3491, 3491, 3491,  726,  727, 1917, 1917, 1917,
3912      1917, 1924,  729,  724,  730, 3491,  724,  724,  964, 3491,
3913       724, 3491, 3491, 1335,  725, 3491,  975, 3491,  725,  726,
3914       727, 3491, 3491,  726,  727, 3491,  729, 3491,  730, 3491,
3915       729,  724,  730, 2719,  724, 3491, 3491, 3248, 1789, 1789,
3916
3917      3248, 3491,  725, 3491, 3491, 3491,  724,  726,  727,  724,
3918       959,  960,  960,  959,  729, 3491,  730,  725, 1335, 3491,
3919      2277,  724,  726,  727,  724,  724, 3491, 2720,  724,  729,
3920      3491,  730,  725,  962, 3491,  963,  725,  726,  727, 3491,
3921       724,  726,  727,  724,  729, 1791,  730, 3491,  729, 3491,
3922       730,  725, 3491, 3491, 3491, 3491,  726,  727,  964, 3491,
3923      3491,  724, 1335,  729,  724,  730, 2721, 3491,  975, 3491,
3924      3491,  724,  725, 3491,  724, 3491, 3491,  726,  727, 3491,
3925      3491, 1335,  725, 3491,  729, 3491,  730,  726,  727, 3491,
3926       724, 3491, 1335,  724,  729, 3491,  730, 3491, 3491, 3491,
3927
3928       724,  725, 3491,  724, 3491, 2722,  726,  727, 3491, 3491,
3929      3491,  725, 3491,  729, 3491,  730,  726,  727,  724, 3491,
3930      3491,  724, 3491,  729, 2723,  730, 3491, 3491,  724,  725,
3931      3491,  724, 3491, 3491,  726,  727, 3491, 3491, 2724,  725,
3932      3491,  729, 3491,  730,  726,  727, 3491,  724, 3491, 3491,
3933       724,  729, 3491,  730, 3491, 3491, 3491,  724,  725, 3491,
3934       724, 2725, 3491,  726,  727, 3491, 3491, 3491,  725, 3491,
3935       729,  758,  730,  726,  727,  724, 2634, 2634,  724, 3491,
3936       729, 2634,  730, 3491, 3491, 2634,  725, 3491, 2727, 2726,
3937       724,  726,  727,  724,  724, 3491, 3491,  724,  729, 3491,
3938
3939       730,  725, 3491, 2797, 2797,  725,  726,  727, 2797, 3491,
3940       726,  727, 2797,  729, 3491,  730, 3491,  729, 2728,  730,
3941       724, 2872, 2872,  724,  724, 3491, 2872,  724, 2729, 2730,
3942      2872,  725, 3491, 3491, 3491,  725,  726,  727, 3491,  724,
3943       726,  727,  724,  729, 1335,  730, 3491,  729, 3491,  730,
3944       725, 3491, 3491, 3491, 3491,  726,  727, 3491,  724, 3491,
3945      3491,  724,  729, 3491,  730, 2731, 3491, 3491,  724,  725,
3946      3491,  724, 3491, 3491,  726,  727, 2732, 3491, 3491,  725,
3947      1335,  729, 3491,  730,  726,  727,  724, 3024, 3024,  724,
3948      3491,  729, 3024,  730, 3491, 3491, 3024,  725, 3491, 3491,
3949
3950      3491, 3491,  726,  727,  759,  724, 3491, 3491,  724,  729,
3951      3491,  730, 3491,  758, 3491,  724,  725, 3491,  724, 3491,
3952      3491,  726,  727, 3491, 3491, 3491,  725, 3491,  729, 3491,
3953       730,  726,  727,  724, 3491, 3491,  724, 3491,  729,  758,
3954       730, 3491, 3491, 1335,  725, 3491, 3491, 3491, 3491,  726,
3955       727,  724, 3491, 3491,  724, 3491,  729, 3491,  730, 2733,
3956      3491,  724,  725, 3491,  724, 3491, 3491,  726,  727, 3491,
3957      3491, 3491,  725,  758,  729, 3491,  730,  726,  727, 3491,
3958       724, 3491, 3491,  724,  729, 3491,  730, 3491, 3491, 3491,
3959      3491,  725, 3491, 3491, 3491,  724,  726,  727,  724, 3491,
3960
3961      3491, 3491, 3491,  729, 1335,  730,  725, 3491, 3491, 3491,
3962       759,  726,  727, 3322, 3322, 2616, 3322, 3491,  729, 3491,
3963       730, 3491, 3491, 3491, 2617, 3491, 3491, 3491, 3491, 3491,
3964      2734, 3491, 2735, 1346, 1347, 1346, 1346, 1347, 1346, 1346,
3965      1346, 1346, 1346, 1346, 1346, 1348, 1346, 1346, 1346, 1346,
3966      1349, 1350, 1346,  724, 3491, 2736,  724, 1351, 1346, 1352,
3967      1346, 1346, 1346,  724,  725, 3491,  724, 3491, 3491,  726,
3968       727, 3491, 3491, 3491,  725, 3491,  729, 3491,  730,  726,
3969       727, 1346, 1346, 1346, 1346, 3491,  729, 3491,  730, 3325,
3970       618, 3273, 3325, 3491,  724, 3491, 3491,  724, 3491, 3491,
3971
3972      3380, 3491, 3491, 3491,  759,  725, 3491, 3491, 3491, 2737,
3973       726,  727, 1346, 1346, 1346, 1346, 1354,  729, 1335,  730,
3974       724, 3491, 3491,  724,  724, 3491, 3491,  724, 3491, 3491,
3975      3491,  725, 3491, 3491, 3491,  725,  726,  727, 3491,  724,
3976       726,  727,  724,  729, 3491,  730, 2738,  729, 3491,  730,
3977       725, 3491, 3491, 3491,  724,  726,  727,  724,  813,  814,
3978      3491,  813,  729, 3491,  730,  725, 3491, 3491, 3491,  815,
3979       726,  727, 3491, 3491,  816,  817, 2740,  729, 3491,  730,
3980      3491,  729, 3491,  730, 3491, 2739,  813,  814, 3491,  813,
3981      3371, 3371, 3371, 3371, 3491, 3491, 3491,  815, 3491, 2741,
3982
3983      3491, 2809,  816,  817, 3491, 2742, 3491, 3491, 3491,  729,
3984      3491,  730,  813,  814, 3491,  813,  813,  814, 3491,  813,
3985      3491, 3491, 3491,  815, 3491, 3491, 3491,  815,  816,  817,
3986      2743, 3491,  816,  817, 3491,  729, 3491,  730, 3491,  729,
3987      3491,  730, 2744, 3491,  813,  814, 3491,  813, 3371, 3371,
3988      3371, 3371, 3491, 3491, 3491,  815, 3491, 3491, 3491, 2809,
3989       816,  817,  813,  814, 2745,  813, 3491,  729, 2746,  730,
3990      3491, 3491, 3491,  815, 3491, 3491, 3491, 3491,  816,  817,
3991       813,  814, 3491,  813, 3491,  729, 3491,  730, 3491, 3491,
3992      3491,  815, 3491, 3491, 3491, 3491,  816,  817, 3491,  813,
3993
3994       814, 3491,  813,  729, 3491,  730, 3491, 3491, 3491, 2747,
3995       815, 3491, 3491, 3491, 3491,  816,  817,  813,  814, 3491,
3996       813, 3491,  729, 3491,  730, 2748, 3491, 3491,  815, 3491,
3997      3491, 3491, 3491,  816,  817, 3491, 1434, 3491, 3491, 3491,
3998       729, 3491,  730,  813,  814, 3491,  813,  813,  814, 3491,
3999       813, 3491, 3491, 3491,  815,  845, 3491, 3491,  815,  816,
4000       817, 3491, 3491,  816,  817, 3491,  729, 3491,  730, 3491,
4001       729, 2749,  730, 3491,  813,  814, 3491,  813, 3491, 3491,
4002      3491, 3396, 1306, 3397, 3396,  815, 3491, 3491, 3491, 3491,
4003       816,  817, 3274, 3255, 3491, 3491, 3255,  729, 3491,  730,
4004
4005      3491, 2751, 3491, 3491, 3250, 3255, 3257, 3491, 1434, 1917,
4006      1994, 1995, 1917, 1994, 1917, 1917, 1917, 1917, 1917, 1917,
4007      1917, 1996, 1917, 1917, 1917, 1917, 1997, 1998, 1917, 1434,
4008      3255, 3491, 3491, 1922, 1917, 1923, 1917, 1917, 1917,  813,
4009       814, 3491,  813, 3491, 3491,  959,  960,  960,  959, 3491,
4010       815, 3491, 3491, 3491, 3491,  816,  817, 1917, 1917, 1917,
4011      1917, 3491,  729, 3491,  730, 3491, 3491, 3491,  962, 3491,
4012       963, 3491, 3491, 2750, 3354, 1789, 1789, 3354, 3491, 3491,
4013      3491, 3491, 3491, 3491,  813,  814, 3491,  813, 1917, 1917,
4014      1917, 1917, 1999,  964, 3491,  815, 3491, 1790, 3491, 2752,
4015
4016       816,  817,  813,  814, 3491,  813, 3491,  729, 3491,  730,
4017      3491, 3491, 3491,  815, 3491, 3491,  975, 3491,  816,  817,
4018       813,  814, 1791,  813, 3491,  729, 3491,  730, 3491, 3491,
4019      3491,  815, 3491, 3491, 3491, 3491,  816,  817, 3491, 3491,
4020      3491,  813,  814,  729,  813,  730, 3491, 3491, 3453, 2288,
4021      3453, 3453,  815, 3491, 3491, 1434, 3491,  816,  817, 3251,
4022       813,  814, 2753,  813,  729, 3491,  730, 3491, 3491, 3491,
4023      3491,  815, 3491, 3491, 3491, 3491,  816,  817,  813,  814,
4024      3491,  813, 3491,  729, 3491,  730, 3491, 3491, 3491,  815,
4025      3491, 1434, 3491, 3491,  816,  817, 3491, 1434, 3491,  813,
4026
4027       814,  729,  813,  730, 3491, 3491, 3491, 3491, 3491, 3491,
4028       815, 3491, 3491, 3491, 3491,  816,  817,  813,  814, 3491,
4029       813, 3491,  729, 3491,  730, 2754, 3491, 3491,  815, 3491,
4030      3491, 3491, 3491,  816,  817,  813,  814, 3491,  813, 3491,
4031       729, 2755,  730, 3491, 3491, 3491,  815, 3491, 3491, 3491,
4032      3491,  816,  817,  813,  814, 3491,  813, 3491,  729, 3491,
4033       730, 3491, 3491, 3491,  815, 3491, 2756, 3491, 3491,  816,
4034       817, 3491, 3491, 3491,  813,  814,  729,  813,  730, 3491,
4035      3491, 3491, 3491, 3491, 3491,  815, 3491, 3491, 2757, 3491,
4036       816,  817,  813,  814, 3491,  813, 3491,  729, 3491,  730,
4037
4038      3491, 3491, 3491,  815, 3491, 3491,  845, 3491,  816,  817,
4039       813,  814, 3491,  813, 3491,  729, 3491,  730, 3491, 3491,
4040      3491,  815, 3491, 3491, 2758, 3491,  816,  817,  813,  814,
4041      3491,  813, 3491,  729, 2759,  730, 3491, 3491, 3491,  815,
4042      3491, 3491, 3491, 3491,  816,  817, 3491, 3491, 3491,  813,
4043       814,  729,  813,  730, 3491, 3491, 3491, 3491, 3491, 3491,
4044       815, 3491, 3491, 2760, 3491,  816,  817,  813,  814, 3491,
4045       813, 3491,  729, 3491,  730, 3491, 3491, 3491,  815, 3491,
4046      3491, 2761, 2762,  816,  817,  813,  814, 3491,  813, 3491,
4047       729, 3491,  730, 3491, 3491, 3491,  815, 3491, 3491, 3491,
4048
4049      3491,  816,  817, 1434,  813,  814, 3491,  813,  729, 3491,
4050       730, 3453, 2288, 3453, 3453,  815, 3491, 3491, 3491, 3491,
4051       816,  817, 3251,  813,  814, 3491,  813,  729, 3491,  730,
4052      3491, 3491, 3491, 3491,  815, 3491, 3491, 3491, 2763,  816,
4053       817, 1434,  813,  814, 3491,  813,  729, 3491,  730,  959,
4054       960,  960,  959,  815, 3491, 3491, 3491, 3491,  816,  817,
4055       813,  814, 3491,  813, 3491,  729, 3491,  730, 3491,  846,
4056      3491,  815,  962, 3491,  963, 3491,  816,  817,  845,  813,
4057       814, 3491,  813,  729, 3491,  730, 3491, 3491, 3491, 3491,
4058       815, 3491, 3491, 3491, 3491,  816,  817,  964,  813,  814,
4059
4060      2803,  813,  729, 3491,  730, 3426, 2290, 3426, 3426,  815,
4061      3491, 3491, 3491,  845,  816,  817, 3274, 1434, 3491,  813,
4062       814,  729,  813,  730,  959,  960,  960,  959, 3250, 3491,
4063       815, 3491, 3491, 1434, 3491,  816,  817,  813,  814, 3491,
4064       813, 3491,  729, 3491,  730, 3491, 3491,  962,  815,  963,
4065      3491, 3491, 3491,  816,  817, 3491,  845, 3491,  813,  814,
4066       729,  813,  730, 3491, 3491, 3337, 1789, 3337, 3337,  815,
4067      3491, 3491,  964, 3491,  816,  817,  813,  814, 3491,  813,
4068      3491,  729, 3491,  730, 2802, 3491, 3491,  815, 3385, 3491,
4069      1434, 3491,  816,  817,  813,  814,  846,  813, 3491,  729,
4070
4071      3491,  730, 3491, 3491, 3491,  815, 3491, 3491, 3491, 3491,
4072       816,  817, 3491, 3339, 3491, 3491, 3491,  729, 3491,  730,
4073      3491, 3491, 3491, 3491, 3491, 3491, 3491, 2764, 2765, 1346,
4074      1445, 1446, 1346, 1445, 1346, 1346, 1346, 1346, 1346, 1346,
4075      1346, 1447, 1346, 1346, 1346, 1346, 1448, 1449, 1346, 3491,
4076      2767, 3491, 3491, 1351, 1346, 1352, 1346, 1346, 1346,  813,
4077       814, 3491,  813, 3491, 3491, 3491, 3336, 1789, 3337, 3336,
4078       815, 3491, 3491, 3491, 3491,  816,  817, 1346, 1346, 1346,
4079      1346, 3491,  729, 3491,  730, 3491, 3491, 3491, 3491, 3385,
4080       813,  814, 3491,  813, 3491, 3491, 3491, 3491, 3491, 3491,
4081
4082       846,  815, 3491, 3491, 3491, 3491,  816,  817, 1346, 1346,
4083      1346, 1346, 1451,  729, 3339,  730, 3491,  813,  814, 2766,
4084       813,  813,  814, 3491,  813, 3491, 3491, 3491,  815, 3491,
4085      3491, 3491,  815,  816,  817, 3491, 3491,  816,  817, 3491,
4086       729, 3491,  730, 3491,  729, 1434,  730,  813,  814, 3491,
4087       813,  813,  814, 3491,  813, 3491, 3491, 3491,  815, 3491,
4088      3491, 3491,  815,  816,  817, 3491, 3491,  816,  817, 2768,
4089       729, 3491,  730, 3491,  729, 3491,  730,  813,  814, 3491,
4090       813,  959,  960,  960,  959, 3491, 2769, 3491,  815,  959,
4091       960,  960,  959,  816,  817, 3491, 3491, 3491, 3491, 2770,
4092
4093       729, 3491,  730, 3491,  962, 3491,  963, 2864, 2636, 2636,
4094      2864, 2771,  962, 3491,  963, 3491, 3491, 3491,  619, 3491,
4095      2864, 2636, 2636, 2864, 2636, 2636, 2636, 2636, 2772,  964,
4096      1790,  619, 2638, 3491, 3491,  619,  975,  964, 3491, 3491,
4097      3491, 3491, 3491, 1790, 3491, 2638, 3491, 2277, 3491, 2638,
4098      2636, 2636, 2636, 2636, 3491, 1791, 1215, 1215, 1215, 1215,
4099       975,  619, 3491, 2871, 3491, 3491, 3491, 3491, 1791, 3491,
4100      3491, 3491, 1791, 2277, 3491, 2638, 3491, 3491, 3491,  631,
4101      3491, 3491, 3491, 3491, 3491, 3491, 3491, 2866, 3491, 3491,
4102      2875, 2296, 2296, 2875, 3491, 3491, 3491, 3491, 1791, 3491,
4103
4104       724, 2297,  620,  724,  633,  620, 2867,  617,  618,  618,
4105       617,  725, 3491,  622,  620,  963,  726,  727,  619,  620,
4106      3491, 3491,  620,  729,  724,  730, 3491,  724, 3491, 3491,
4107       622,  620,  623, 3491, 3491,  725, 3491, 1218,  624,  620,
4108       726,  727, 2654, 2655, 2655, 2654, 3491,  729, 3491,  730,
4109      3491, 3491, 3491,  619,  620,  624,  620,  620, 3491, 2868,
4110       617,  618,  618,  617, 2921,  622,  620,  963, 3491, 3491,
4111      3491,  619,  620, 3491, 3491,  620,  959,  960,  960,  959,
4112      3491, 3491, 3491,  622,  620,  623, 3491, 3491, 3491, 3491,
4113       624,  620, 2869, 1335, 2799,  960,  960, 2799, 3491,  962,
4114
4115      3491,  963, 3491, 2655, 2655, 2655, 2655, 3491,  624,  620,
4116      2653, 2296, 2296, 2653,  619,  620, 3491, 1564,  620,  963,
4117       724, 2297,  620,  724,  964,  620,  622,  620, 3491, 3491,
4118      3491,  725, 3491,  622,  620,  963,  726,  727, 3491, 3491,
4119      3491,  975,  964,  729, 3491,  730, 3491, 3491, 3491, 3491,
4120      3491,  624,  620, 3491, 2905, 2905, 2905, 2905,  624,  620,
4121      3491, 3491, 3491, 3491, 2333, 2297,  620, 3491, 3491,  620,
4122      3491, 3491, 3491, 3491, 2922, 3491, 3491,  622,  620, 3491,
4123      2334, 1808, 2893, 1810, 1810, 2893, 1808, 1808, 1808, 1808,
4124      1808, 1808, 1808, 1811, 1812, 1808, 1808, 1812, 1808, 1808,
4125
4126      1808, 3491,  624,  620, 3491, 1813, 1812, 1814, 1808, 1808,
4127      1808, 3491, 3491, 3491, 3491, 3491, 3491,  724, 3491, 2906,
4128       724, 3491, 3491,  959,  960,  960,  959, 3491,  725, 1808,
4129      1815, 1812, 1808,  726,  727, 3491, 2864, 2636, 2636, 2864,
4130       729, 3491,  730, 3491, 3491, 3491,  962,  619,  963, 3491,
4131      3491, 3337, 1789, 3337, 3337, 3354, 1789, 1789, 3354, 2277,
4132      1808, 1808, 1808, 1808, 1816, 2904, 2905, 2905, 2904, 3491,
4133       724,  964, 3491,  724, 3385, 3491, 2297,  620, 2277, 3491,
4134       620,  725,  758, 3491, 1791, 3491,  726,  727,  622,  620,
4135       963, 3491,  975,  729,  724,  730, 3491,  724, 3491, 3339,
4136
4137      3491, 3491, 3491, 1791,  724,  725, 3491,  724, 3491, 3491,
4138       726,  727, 3491,  624,  620,  725, 3491,  729, 3491,  730,
4139       726,  727,  724, 3491, 2923,  724, 3491,  729, 3491,  730,
4140      2906, 3491,  724,  725, 3491,  724, 3491, 3491,  726,  727,
4141      3491, 3491, 3491,  725, 3491,  729, 3491,  730,  726,  727,
4142      3491, 3491, 3491, 3491, 3491,  729,  724,  730, 3491,  724,
4143       959,  960,  960,  959, 3491, 3491, 2924,  725, 3491, 3491,
4144      3491,  724,  726,  727,  724,  759, 2925, 3491, 3491,  729,
4145      3491,  730,  725,  962, 3491,  963,  724,  726,  727,  724,
4146       724, 3491, 2926,  724,  729, 3491,  730,  725, 3491, 3491,
4147
4148      3491,  725,  726,  727, 3491, 3491,  726,  727,  964,  729,
4149      3491,  730, 3491,  729, 3491,  730, 2981,  724, 3491, 3491,
4150       724, 3491, 3491, 3491, 3041, 1799, 1799, 3041,  725, 3491,
4151       759, 3491,  759,  726,  727,  619, 3491, 3491,  724, 3491,
4152       729,  724,  730, 3491, 1335, 3491, 3491,  631,  724,  725,
4153      3491,  724, 2928, 3491,  726,  727, 3491, 3491, 3491,  725,
4154      3491,  729, 3491,  730,  726,  727, 3491,  724, 3491, 2929,
4155       724,  729,  633,  730, 3491, 3491, 3491, 3491,  725, 3491,
4156      3491, 3491,  724,  726,  727,  724,  724, 3491, 3491,  724,
4157       729, 3491,  730,  725, 1335, 3491, 3491,  725,  726,  727,
4158
4159      2930,  724,  726,  727,  724,  729, 3491,  730, 3491,  729,
4160      3491,  730,  725, 3491, 3491, 3491, 3491,  726,  727, 3491,
4161      3491, 3491,  724, 3491,  729,  724,  730, 3491, 3491,  959,
4162       960,  960,  959,  725, 3491, 3491, 2931, 3491,  726,  727,
4163       724, 2933, 3491,  724, 3491,  729, 3491,  730, 2932, 3491,
4164       724,  725,  962,  724,  963, 3491,  726,  727, 3491, 3491,
4165      3491,  725, 3491,  729, 3491,  730,  726,  727,  724, 3491,
4166      1335,  724, 3491,  729, 3491,  730, 3491,  964, 1335,  725,
4167      3491, 3491, 3491, 3491,  726,  727, 3491, 2864, 2636, 2636,
4168      2864,  729,  724,  730, 3491,  724, 3491, 3491,  619, 3491,
4169
4170       975, 3491,  724,  725, 3491,  724, 2935, 3491,  726,  727,
4171      1790, 2934, 2638,  725, 3491,  729, 3491,  730,  726,  727,
4172      3491, 3491, 3491, 3491, 3491,  729, 3491,  730, 3491, 3491,
4173      3491, 3491, 3491, 3491, 3491, 1791, 3491, 2936, 1917, 1918,
4174      1917, 1917, 1918, 1917, 1917, 1917, 1917, 1917, 1917, 1917,
4175      1919, 1917, 1917, 1917, 1917, 1920, 1921, 1917, 2938, 3491,
4176      3491, 3491, 1922, 1917, 1923, 1917, 1917, 1917,  724, 3491,
4177      3491,  724, 3491, 2939, 3491,  959,  960,  960,  959,  725,
4178      3491, 3491, 3491, 3491,  726,  727, 1917, 1917, 1917, 1917,
4179      2937,  729, 3491,  730, 3491, 3491, 3491, 3491,  962, 3491,
4180
4181       963, 3491, 3336, 1789, 3337, 3336, 3491, 3491, 3491, 3491,
4182      3491,  724, 3491, 3251,  724, 3491, 3491, 1917, 1917, 1917,
4183      1917, 1924,  725,  964, 2940, 3338,  724,  726,  727,  724,
4184       724, 3491, 3491,  724,  729, 3491,  730,  725, 2982, 3491,
4185      3491,  725,  726,  727, 3491, 3491,  726,  727, 3491,  729,
4186      3339,  730, 3491,  729,  724,  730, 3491,  724,  724, 3491,
4187      3491,  724, 3491, 3491, 3491,  725, 3491, 3491, 1335,  725,
4188       726,  727, 3491, 3491,  726,  727, 3491,  729, 3491,  730,
4189      3491,  729,  724,  730, 3491,  724, 2942, 3491, 3491, 3491,
4190      2941, 3491, 3491,  725, 3491, 3491, 3491, 3491,  726,  727,
4191
4192      3491, 3491, 3491,  813,  814,  729,  813,  730, 3491, 3491,
4193      3491, 3491, 3491, 3491,  815, 3491, 3491, 1335, 3491,  816,
4194       817, 2943,  813,  814, 3491,  813,  729, 3491,  730, 3491,
4195      3491, 3491, 3491,  815, 3491, 3491, 3491, 3491,  816,  817,
4196       813,  814, 3491,  813, 3491,  729, 3491,  730, 3491, 3491,
4197      3491,  815, 3491,  758, 3491, 3491,  816,  817,  813,  814,
4198      3491,  813, 3491,  729, 3491,  730, 3491, 2944, 3491,  815,
4199      3491, 3491, 3491, 3491,  816,  817,  813,  814, 3491,  813,
4200      3491,  729, 3491,  730, 3491, 3491, 3491,  815, 3491, 3491,
4201      3491, 1434,  816,  817, 2945,  813,  814, 3491,  813,  729,
4202
4203      3491,  730, 3491, 3491, 3491, 3491,  815, 3491, 3491, 3491,
4204      3491,  816,  817,  813,  814, 3491,  813, 3491,  729, 3491,
4205       730, 3491, 3491,  845,  815, 3491, 3491, 3491, 3491,  816,
4206       817, 3491, 3491, 3491,  813,  814,  729,  813,  730, 3491,
4207      3491, 3491, 3491, 3491, 3491,  815, 3491, 3491, 2946, 3491,
4208       816,  817,  813,  814, 3491,  813, 3491,  729, 3491,  730,
4209      3491, 3491, 3491,  815, 3491, 3491,  846, 3491,  816,  817,
4210      3491,  813,  814, 2947,  813,  729, 3491,  730, 3491, 3491,
4211      3491, 3491,  815, 3491, 3491, 3491, 3491,  816,  817,  813,
4212       814, 3491,  813, 3491,  729, 3491,  730, 3491, 3491, 3491,
4213
4214       815, 3491, 3491, 3491, 3491,  816,  817, 3491, 3491, 3491,
4215       846,  846,  729, 3491,  730,  813,  814, 3491,  813,  813,
4216       814, 3491,  813, 3491, 3491, 3491,  815, 3491, 3491, 3491,
4217       815,  816,  817, 3491, 3491,  816,  817, 2948,  729, 3491,
4218       730, 3491,  729, 1434,  730,  813,  814, 3491,  813,  813,
4219       814, 3491,  813, 3491, 3491, 3491,  815, 3491, 3491, 3491,
4220       815,  816,  817, 3491, 3491,  816,  817, 2949,  729, 3491,
4221       730, 3491,  729, 3491,  730, 1434,  813,  814, 3491,  813,
4222      3491, 3491, 3491, 3491, 3491, 3491, 3491,  815, 1203, 1203,
4223      1203, 1203,  816,  817, 3491, 1204, 3491, 2950, 3491,  729,
4224
4225      3491,  730, 3491,  813,  814, 3491,  813, 3491, 3491, 3491,
4226      3491,  631, 3491, 3491,  815, 3491, 3491, 3491, 2951,  816,
4227       817,  813,  814, 3491,  813, 3491,  729, 3491,  730, 3491,
4228      3491, 3491,  815, 3491, 3491, 3491,  633,  816,  817, 3491,
4229       813,  814, 2952,  813,  729, 3491,  730, 3491, 3491, 3491,
4230      3491,  815, 3491, 3491, 1205, 3491,  816,  817, 2953,  813,
4231       814, 3491,  813,  729, 3491,  730, 3491, 3491, 3491,  634,
4232       815, 3491, 3491, 3491, 3491,  816,  817,  813,  814, 3491,
4233       813, 3491,  729, 3491,  730, 3491, 3491, 3491,  815, 3491,
4234      1434, 3491, 3491,  816,  817, 3491, 1434, 3491,  813,  814,
4235
4236       729,  813,  730, 3491, 3491, 3491, 3491, 3491, 3491,  815,
4237      3491, 3491, 3491, 3491,  816,  817, 3491, 3491, 3491, 3491,
4238      3491,  729, 3491,  730,  813,  814, 3491,  813,  813,  814,
4239      2954,  813, 3491, 2955, 3491,  815, 3491, 3491, 3491,  815,
4240       816,  817, 3491, 3491,  816,  817, 3491,  729, 3491,  730,
4241      3491,  729, 3491,  730,  813,  814, 3491,  813,  813,  814,
4242      3491,  813, 3491, 3491, 2956,  815, 3491, 3491, 3491,  815,
4243       816,  817, 3491, 3491,  816,  817, 3491,  729, 3491,  730,
4244      3491,  729, 3491,  730, 2958,  813,  814, 3491,  813,  813,
4245       814, 3491,  813, 3491, 3491, 2957,  815, 3491, 3491, 3491,
4246
4247       815,  816,  817, 3491, 3491,  816,  817, 3491,  729, 3491,
4248       730, 1434,  729, 3491,  730,  813,  814, 3491,  813, 3491,
4249      3491, 3491, 2959, 3491, 3491, 3491,  815, 2808, 2808, 2808,
4250      2808,  816,  817,  813,  814, 3491,  813, 3491,  729, 3491,
4251       730, 2960, 3491, 3491,  815, 3491, 3491, 3491, 3491,  816,
4252       817, 2809, 1434, 2809, 3491, 3491,  729, 3491,  730, 2864,
4253      2636, 2636, 2864, 2636, 2636, 2636, 2636, 3491, 3491, 3491,
4254       619, 3491, 3491, 3491,  619, 3491, 3491, 3491, 2961, 3491,
4255      3491, 2985, 1790, 3491, 2638, 3491, 2277, 3491, 2638, 3250,
4256      3491, 3250, 3250, 2986, 3491, 3491, 3250, 2987, 2988, 3491,
4257
4258      2989, 3491, 3491, 3491,  845,  995, 3491, 1791, 3491, 3491,
4259      3491, 1791, 3250, 3491, 3491, 3036, 3041, 1799, 1799, 3041,
4260      3491, 3491, 3491, 3491, 3491, 3491, 3491,  619, 3491, 3491,
4261      3491, 3491, 3037,  617,  618,  618,  617, 3250, 3491, 2289,
4262      3491, 1801, 3491,  724,  619,  620,  724, 3491,  620, 3491,
4263      2875, 2296, 2296, 2875,  725,  596,  622,  620,  623,  726,
4264       727, 2297,  620, 3491,  633,  620,  729, 3491,  730, 3491,
4265      3250, 3491, 3491,  622,  620,  963, 3491, 2905, 2905, 2905,
4266      2905,  624,  620, 3491, 3491, 3491, 3491, 3491, 2297,  620,
4267      3491, 3491,  620, 3491, 3491, 3491, 3491, 3491,  624,  620,
4268
4269       622,  620, 3491, 3491, 3038,  617,  618,  618,  617, 3491,
4270      3491, 3491, 3491, 3491, 1335, 3491,  619,  620, 3491, 3491,
4271       620,  724, 3491, 3491,  724,  624,  620, 3491,  622,  620,
4272       623, 3491,  725, 3491, 3491, 3491, 3491,  726,  727, 3491,
4273      3491, 3491, 2906, 3491,  729, 3491,  730, 3491, 3491, 3491,
4274      3491, 3491, 3491,  624,  620, 3491, 3039, 3045, 3046, 3047,
4275      3047, 3046, 3045, 3045, 3045, 3045, 3045, 3045, 3045, 3048,
4276      3049, 3045, 3045, 3049, 3045, 3045, 3045, 1335, 3491, 3491,
4277      3491, 3050, 3049, 3051, 3045, 3045, 3045, 3491, 3491, 3491,
4278      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
4279
4280       724, 3491, 3491,  724, 3491, 3045, 3052, 3049, 3045, 3053,
4281       724,  725, 3491,  724, 3491, 3491,  726,  727, 3491, 3491,
4282      3491,  725, 3491,  729, 3491,  730,  726,  727, 3491, 3491,
4283      3491, 3491, 3491,  729, 3491,  730, 3045, 3045, 3045, 3045,
4284      3054, 1808, 3057, 1810, 1810, 3057, 1808, 1808, 1808, 1808,
4285      1808, 1808, 1808, 1811, 1812, 1808, 1808, 1812, 1808, 1808,
4286      1808,  724, 3087, 3491,  724, 1813, 1812, 1814, 1808, 1808,
4287      1808, 1335,  725, 3491, 3491, 3491, 3491,  726,  727, 3491,
4288      3491, 3491,  724, 3491,  729,  724,  730, 3491, 3491, 1808,
4289      1815, 1812, 1808,  725, 3491, 3491, 3491, 3491,  726,  727,
4290
4291      3491, 3491, 3491, 3491, 3491,  729, 3491,  730, 3250, 3491,
4292      3250, 3250, 3491, 3491, 3491, 3250, 3491,  759, 3491, 3491,
4293      1808, 1808, 1808, 1808, 1816, 3063, 2296, 2296, 3063, 3491,
4294      3491, 3250, 3491, 3088, 3491, 3491, 2297,  620, 3491, 3491,
4295       620,  724, 3491, 3491,  724, 3491, 3491, 3491,  622,  620,
4296       963, 3491,  725, 3491, 3491, 3491, 3250,  726,  727, 3491,
4297      3491, 3491, 3491, 3491,  729, 3491,  730,  724, 3491, 3491,
4298       724, 3491, 3491,  624,  620, 3491, 3491, 3491,  725, 3491,
4299      3491, 3064, 3491,  726,  727, 3065, 3491, 3491, 3491, 3250,
4300       729, 3491,  730, 3491, 3066, 3491, 3491, 3491, 3067, 2904,
4301
4302      2905, 2905, 2904, 3491,  724, 3491, 1335,  724, 3491, 3491,
4303      2297,  620, 3491, 3491,  620,  725, 3491, 3491, 3491, 3491,
4304       726,  727,  622,  620,  963, 3491, 3491,  729,  724,  730,
4305      1335,  724, 3491, 3491, 3491, 3491, 3491, 3491,  724,  725,
4306      3491,  724, 3491, 3491,  726,  727, 3491,  624,  620,  725,
4307      3491,  729, 3491,  730,  726,  727, 3491, 3491, 3089, 3491,
4308      3491,  729, 3491,  730, 2906, 3090, 3091, 3090, 3090, 3091,
4309      3090, 3090, 3090, 3090, 3090, 3090, 3090, 3092, 3090, 3090,
4310      3090, 3090, 3093, 3094, 3090,  724, 3491, 3491,  724, 3095,
4311      3090, 3096, 3090, 3090, 3090,  724,  725, 1335,  724, 3491,
4312
4313      3491,  726,  727, 3491, 3491, 3491,  725, 1335,  729, 3491,
4314       730,  726,  727, 3090, 3090, 3090, 3090, 3491,  729, 3491,
4315       730, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
4316      3491, 3491, 3491, 3491,  959,  960,  960,  959, 3491,  724,
4317      3491, 1335,  724, 3491, 3090, 3090, 3090, 3090, 3097,  724,
4318       725, 3098,  724, 3491, 3491,  726,  727,  962, 3491,  963,
4319       725, 3491,  729, 3491,  730,  726,  727,  724, 3491, 3491,
4320       724, 3491,  729, 3491,  730, 3491, 3491,  724,  725, 3491,
4321       724, 3491,  964,  726,  727, 3491, 3491, 3491,  725,  975,
4322       729, 3491,  730,  726,  727, 3491,  724, 3491, 3491,  724,
4323
4324       729, 3491,  730, 3100, 3491, 3491, 3099,  725, 3491, 3491,
4325      3491,  724,  726,  727,  724,  959,  960,  960,  959,  729,
4326      3491,  730,  725, 3491, 3491, 3491,  724,  726,  727,  724,
4327      3491, 3491, 3101, 1335,  729, 3491,  730,  725,  962, 3491,
4328       963,  724,  726,  727,  724, 3491, 3491, 3491, 3491,  729,
4329      3491,  730,  725, 3491, 3491, 3491, 3491,  726,  727,  813,
4330       814, 3102,  813,  964,  729, 3491,  730, 1335, 3491, 3491,
4331       815, 2524, 3491, 3491, 3491,  816,  817,  813,  814, 3491,
4332       813,  758,  729, 3491,  730, 3491, 3491, 3491,  815, 3491,
4333      3491, 3491, 3491,  816,  817,  813,  814, 1335,  813, 3491,
4334
4335       729, 3491,  730, 3491, 3491, 3491,  815, 3491, 3491, 3491,
4336      3491,  816,  817,  813,  814, 1434,  813, 3491,  729, 3491,
4337       730, 3491, 3491, 3491,  815, 3491, 3491, 3491, 3491,  816,
4338       817, 3491, 3491, 3491, 3491, 3491,  729, 3491,  730,  813,
4339       814, 3491,  813,  813,  814, 3491,  813, 3491, 1434, 3491,
4340       815,  846, 3491, 3491,  815,  816,  817, 3491, 3491,  816,
4341       817, 3491,  729, 3491,  730, 3491,  729, 3491,  730,  813,
4342       814, 3491,  813, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
4343       815, 3491, 3491, 3491, 1434,  816,  817, 3491, 3491, 3491,
4344      3491, 3491,  729, 3491,  730, 3491,  813,  814, 3491,  813,
4345
4346      3491, 3491, 3491, 3491, 1434, 3491, 1434,  815, 3491, 3491,
4347      3491, 3491,  816,  817, 3491, 3491, 3491, 3491, 3491,  729,
4348      3491,  730, 3491, 3103, 3090, 3104, 3105, 3090, 3104, 3090,
4349      3090, 3090, 3090, 3090, 3090, 3090, 3106, 3090, 3090, 3090,
4350      3090, 3107, 3108, 3090,  813,  814, 3491,  813, 3095, 3090,
4351      3096, 3090, 3090, 3090, 3491,  815, 3491, 3491, 3491, 3491,
4352       816,  817, 3491, 3491, 3491, 1434, 3491,  729, 3491,  730,
4353      3491, 3491, 3090, 3090, 3090, 3090,  813,  814, 3491,  813,
4354      3491, 3491, 3491, 3491, 3491, 3491, 3491,  815, 3491, 3491,
4355      3491, 3491,  816,  817, 3491, 3491, 3491, 3491, 3491,  729,
4356
4357      1434,  730, 3491, 3090, 3090, 3090, 3090, 3109,  813,  814,
4358      3491,  813, 3491, 3491, 3491, 3491, 3491, 3491, 3491,  815,
4359      3491, 3491, 3491, 3491,  816,  817,  813,  814, 3491,  813,
4360      3491,  729, 3110,  730, 3491, 3491, 3491,  815, 3491, 3491,
4361      3491, 3491,  816,  817,  813,  814, 3491,  813, 3491,  729,
4362      3491,  730, 3491, 3491, 3491,  815, 3491, 3491, 3491, 3491,
4363       816,  817,  813,  814, 3491,  813, 3491,  729, 3491,  730,
4364      3491, 3491, 3491,  815, 3491, 3491, 3491, 1434,  816,  817,
4365      3491,  813,  814, 3491,  813,  729, 3491,  730, 3491, 3491,
4366      3491, 3111,  815, 3491, 3491, 3491, 3491,  816,  817, 3491,
4367
4368      1434, 3491, 3491, 3491,  729, 3491,  730,  813,  814, 3491,
4369       813, 3393, 1799, 3393, 3393, 3491, 3491, 3491,  815, 3491,
4370      3491, 3491, 3274,  816,  817,  813,  814, 3112,  813, 3491,
4371       729, 3491,  730, 3491, 3268, 3491,  815, 1434, 3491, 3491,
4372      3491,  816,  817, 3148, 3148, 3148, 3148, 3491,  729, 3491,
4373       730, 3491, 3491, 3491, 3491, 3149, 3491, 3491, 3149, 3269,
4374      3491, 3491,  845, 3491, 3491, 3491, 3151, 3149, 3491, 3491,
4375      3491, 2864, 2636, 2636, 2864, 2636, 2636, 2636, 2636, 3491,
4376      3491, 1434,  619, 3491, 3491, 3491,  619, 3491, 3491, 3491,
4377      3491, 3152, 3149, 3491, 1790, 3491, 2638, 3491, 2277, 3491,
4378
4379      2638, 3041, 1799, 1799, 3041, 3491, 3169, 2296, 2296, 3169,
4380      3491, 3491,  619, 3491, 3491, 3491, 3491, 2297,  620, 1791,
4381      3491,  620, 3491, 1791, 2289, 3491, 1801, 3163, 3491,  622,
4382       620, 3170, 3491, 3491, 3491, 2296, 2296, 2296, 2296, 3491,
4383      3162,  617,  618,  618,  617, 3491, 2297,  620, 3491,  633,
4384       620, 3491,  619,  620,  624,  620,  620,  724,  622,  620,
4385       724, 3491, 3491, 3491,  622,  620,  623, 3491,  725, 3491,
4386      3491, 3491, 3491,  726,  727, 3491, 3175, 2296, 2296, 3175,
4387       729, 3491,  730,  624,  620, 3491, 3491, 2297,  620,  624,
4388       620,  620, 3491, 3491, 3491, 3491, 3491, 3491, 3491,  622,
4389
4390       620,  963, 3491, 3059, 3060,  618, 3059, 3164,  617,  618,
4391       618,  617, 3491, 1335,  619,  620, 3491, 3491,  620,  619,
4392       620, 3491, 3491,  620,  624,  620,  622,  620,  963, 3491,
4393      3491,  622,  620,  623, 3491, 3491, 3491, 3491, 3491, 3165,
4394      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
4395      3491,  624,  620, 3491, 3491, 3491,  624,  620, 3176, 3177,
4396      1810, 3178, 3177, 3176, 3176, 3176, 3176, 3176, 3176, 3176,
4397      3179, 3180, 3176, 3176, 3180, 3176, 3176, 3176, 3060, 3060,
4398       618, 3060, 3181, 3180, 3182, 3176, 3176, 3176,  724,  619,
4399       620,  724, 3491,  620, 3491, 3491, 3491, 3491, 3491,  725,
4400
4401      3491,  622,  620, 3491,  726,  727, 3176, 3183, 3180, 3176,
4402      3491,  729, 3491,  730, 3491, 3491, 3491, 3491, 3491, 3491,
4403      3491, 3491, 3491, 3491, 3491, 3491,  624,  620, 3491, 3491,
4404      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3176, 3176, 3176,
4405      3176, 3184, 3061,  618,  618, 3061, 3491, 3491, 3491, 3491,
4406      3491, 3491,  724,  619,  620,  724, 3491,  620, 3202, 3491,
4407      3491, 3491, 3491,  725, 3491,  622,  620,  963,  726,  727,
4408       724, 3491, 3491,  724, 3491,  729, 3491,  730, 3491, 3491,
4409      3491,  725, 3250, 3491, 3250, 3250,  726,  727, 3491, 3250,
4410       624,  620, 3491,  729, 3491,  730, 3185, 3063, 2296, 2296,
4411
4412      3063, 3491, 3491, 3491, 3491, 3250, 3203, 3491, 2297,  620,
4413      3491, 3491,  620, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
4414       622,  620,  963, 3491,  724, 1335, 3491,  724, 3491, 3491,
4415      3250, 3491, 3491, 3491, 3491,  725, 3491, 3491, 3491,  724,
4416       726,  727,  724, 3491, 3491,  624,  620,  729, 2281,  730,
4417       725, 3491, 3491, 3064, 3491,  726,  727, 3065, 3491, 3491,
4418      3491, 3491,  729, 3250,  730, 3491, 3066, 3491, 3491, 3491,
4419      3067, 3045, 3195, 3047, 3047, 3195, 3045, 3045, 3045, 3045,
4420      3045, 3045, 3045, 3048, 3049, 3045, 3045, 3049, 3045, 3045,
4421      3045, 3205, 3491, 3204, 3491, 3050, 3049, 3196, 3045, 3045,
4422
4423      3045,  724, 3491, 3491,  724, 3491, 3491, 3491, 3491, 3491,
4424      3491, 3491,  725, 3491, 3491, 3491, 3491,  726,  727, 3045,
4425      3052, 3049, 3045, 3053,  729, 3491,  730, 3491, 3491, 3491,
4426      3491, 3491,  724, 3491, 3491,  724, 3491, 3491, 3491, 3491,
4427      3491, 3491, 3491,  725, 3491, 3491, 3491, 3491,  726,  727,
4428      3045, 3045, 3045, 3045, 3054,  729, 3491,  730, 3491,  813,
4429       814, 3206,  813,  813,  814, 3491,  813, 3491, 3491, 3491,
4430       815, 3491, 3491, 3491,  815,  816,  817, 3491, 3491,  816,
4431       817, 3491,  729, 3491,  730, 3491,  729, 3491,  730,  813,
4432       814, 3491,  813,  813,  814, 3491,  813, 3491, 3491, 3491,
4433
4434       815, 3491, 3491, 1335,  815,  816,  817, 3491, 3491,  816,
4435       817, 3491,  729, 3491,  730, 1434,  729, 3491,  730,  813,
4436       814, 3491,  813, 3417, 2636, 3418, 3417, 3491, 3491, 3491,
4437       815, 3491, 3491, 3491, 3380,  816,  817, 3491,  813,  814,
4438      3491,  813,  729, 3491,  730, 3491, 3385, 3491, 1434,  815,
4439      3148, 3148, 3148, 3148,  816,  817, 3491, 3148, 3148, 3148,
4440      3148,  729, 3149,  730, 3491, 3149, 3491, 3491, 3491, 3149,
4441      3491, 3339, 3149, 3151, 3149, 3491, 3491, 3491, 3491, 3207,
4442      3151, 3149, 3491, 3491, 3491, 2864, 2636, 2636, 2864, 3491,
4443      2636, 2636, 2636, 2636, 3491, 3491,  619, 3491, 3152, 3149,
4444
4445       724,  619, 3491,  724, 3491, 3152, 3149, 3491, 1790, 1434,
4446      2638,  725, 3491, 2277, 3491, 2638,  726,  727, 3491, 3169,
4447      2296, 2296, 3169,  729,  724,  730, 3491,  724, 3491, 3491,
4448      2297,  620, 3491, 1791,  620,  725, 3491, 3240, 1791, 3491,
4449       726,  727,  622,  620, 3170, 3491, 3491,  729, 3491,  730,
4450      3491, 3491, 3294, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
4451      3491, 3241,  617,  618,  618,  617, 3491,  624,  620, 3175,
4452      2296, 2296, 3175,  619,  620, 3491, 3491,  620, 3491, 3491,
4453      2297,  620, 3491, 3491,  620,  622,  620,  623, 3491, 3491,
4454      3491, 3491,  622,  620,  963, 3293, 3491, 3252, 2296, 3253,
4455
4456      3252, 3491, 3491, 3491, 3285, 2296, 2296, 3285, 3254, 3255,
4457       624,  620, 3255, 3491, 3491, 2297,  620,  624,  620,  620,
4458      3256, 3255, 3257, 3491, 3491, 3491, 3491,  622,  620, 3286,
4459      3491, 3242,  617,  618,  618,  617, 3491, 3491, 3491, 3491,
4460      3491, 3491, 3491,  619,  620, 3258, 3255,  620, 3491, 3491,
4461      3491,  724,  624,  620,  724,  622,  620,  623, 3491, 3491,
4462      3491, 3491,  725, 3491, 3491, 3491, 3491,  726,  727, 3491,
4463      3491, 3243, 3491, 3491,  729, 3491, 3357, 3491, 3491, 3491,
4464       624,  620, 3261, 3261, 3491, 3261, 3261, 3261, 3250, 3261,
4465      3261, 3261, 3261, 3261, 3262, 3263, 3261, 3261, 3261, 3264,
4466
4467      3264, 3250, 1199, 1199, 1199, 1199, 3261, 3261, 3261, 3261,
4468      3265, 3261, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199,
4469      1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199,
4470      3261, 3261, 3261, 3261, 1199, 1199, 1199, 1199, 1199, 1199,
4471      1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199,
4472      1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199,
4473      1199, 3250, 3261, 3263, 3261, 3261, 3250, 3266, 1203, 3266,
4474      3266, 3250, 3250, 3250, 3267, 3250, 3250, 3250, 3251, 3250,
4475      3250, 3250, 3250, 3250, 3250, 3250, 3491, 3491, 3491, 3491,
4476      3268, 3250, 3250, 3250, 3250, 3250,  596,  596,  596,  596,
4477
4478       596,  596,  596,  596,  596,  596,  596,  596,  596,  596,
4479       596,  596,  596,  596, 3250, 3269, 3250, 3250,  596,  596,
4480       596,  596,  596,  596,  596,  596,  596,  596,  596,  596,
4481       596,  596,  596, 1205,  596,  596,  596,  596,  596,  596,
4482       596,  596,  596,  596,  596, 3250, 3250, 3250, 3270, 3271,
4483      3250, 3272, 3491, 3273, 3272, 3250, 3250, 3250, 3250, 3250,
4484      3250, 3250, 3274, 3255, 3250, 3250, 3255, 3250, 3250, 3250,
4485       724, 3491, 3491,  724, 3256, 3255, 3275, 3250, 3250, 3250,
4486       724,  725, 3491,  724, 3491, 3491,  726,  727, 3491, 3491,
4487       621,  725, 3491,  729, 3491,  730,  726,  727, 3250, 3258,
4488
4489      3255, 3250, 3491,  729, 3491,  730, 3491, 3491, 3491, 3491,
4490      3491,  724, 3491, 3491,  724, 3491, 3491, 3491, 3491, 3491,
4491      3491, 3491,  725, 3491, 3491, 3491, 3295,  726,  727, 3250,
4492      3250, 3250, 3250, 3276,  729, 3491,  730,  813,  814, 3491,
4493       813, 2864, 2636, 2636, 2864, 3491, 3491, 3491,  815, 3491,
4494      3296, 3491,  619,  816,  817, 3491, 2636, 2636, 2636, 2636,
4495       729, 3491,  730, 3491, 1790, 3491, 2638,  619, 3491, 3491,
4496      3491, 3252, 2296, 3253, 3252, 3491, 3491, 3491, 3491, 2277,
4497      3491, 2638, 3254, 3255, 3491, 3491, 3255, 3491, 3297, 1791,
4498      3491, 3491, 3491, 3491, 3256, 3255, 3257, 3491, 3491, 3491,
4499
4500      3491, 3491, 3491, 3491, 1791, 3491, 3285, 2296, 2296, 3285,
4501      3491, 3491, 3323, 3491, 3298, 3491, 3491, 2297,  620, 3258,
4502      3255,  620, 3324, 3249,  618,  618, 3249, 3491, 3491,  622,
4503       620, 3286, 3491,  724,  619,  620,  724, 3491,  620, 3491,
4504      3491, 3491, 3491, 3491,  725, 3491,  622,  620,  963,  726,
4505       727, 3491, 3491, 3491,  624,  620,  729, 3491,  730, 3491,
4506      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
4507      3491,  624,  620, 3491, 3491, 3491, 3491, 2333, 3491, 3491,
4508      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3360,
4509      3491, 3491, 3491, 2334, 3263, 3263, 3491, 3263, 3263, 3263,
4510
4511      3250, 3263, 3263, 3263, 3263, 3263, 3262, 3263, 3263, 3263,
4512      3263, 3250, 3250, 3250, 1200, 1200, 1200, 1200, 3263, 3263,
4513      3263, 3263, 3332, 3263, 1200, 1200, 1200, 1200, 1200, 1200,
4514      1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200,
4515      1200, 1200, 3263, 3263, 3263, 3263, 1200, 1200, 1200, 1200,
4516      1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200,
4517      1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200,
4518      1200, 1200, 1200, 3250, 3263, 3263, 3263, 3263, 3250, 3266,
4519      1203, 3266, 3266, 3250, 3250, 3250, 3267, 3250, 3250, 3250,
4520      3251, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3491, 3491,
4521
4522      3491, 3491, 3268, 3250, 3250, 3250, 3250, 3250,  596,  596,
4523       596,  596,  596,  596,  596,  596,  596,  596,  596,  596,
4524       596,  596,  596,  596,  596,  596, 3250, 3269, 3250, 3250,
4525       596,  596,  596,  596,  596,  596,  596,  596,  596,  596,
4526       596,  596,  596,  596,  596, 1205,  596,  596,  596,  596,
4527       596,  596,  596,  596,  596,  596,  596, 3250, 3250, 3250,
4528      3270, 3271, 3261, 3261, 3491, 3261, 3261, 3261, 3250, 3261,
4529      3261, 3261, 3261, 3261, 3262, 3263, 3261, 3261, 3261, 3264,
4530      3264, 3250, 1199, 1199, 1199, 1199, 3261, 3261, 3261, 3261,
4531      3265, 3261, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199,
4532
4533      1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199,
4534      3261, 3261, 3261, 3261, 1199, 1199, 1199, 1199, 1199, 1199,
4535      1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199,
4536      1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199,
4537      1199, 3250, 3261, 3263, 3261, 3261, 1200, 1200, 3491, 1200,
4538      1200, 1200, 3491, 1200, 1200, 1200, 1200, 1200, 1200, 1200,
4539      1200, 1200, 1200, 3491, 3491, 3491,  813,  814, 3491,  813,
4540      1200, 1200, 1200, 1200, 1566, 1200, 3491,  815, 3491, 3491,
4541      3491, 3491,  816,  817, 3491, 3491, 3491, 3491, 3491,  729,
4542      3491,  730, 3491, 3491, 1200, 1200, 1200, 1200, 3491, 3491,
4543
4544      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
4545      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
4546      3491, 3491, 3361, 3491, 3491, 3491, 1200, 1200, 1200, 1200,
4547      3264, 3264, 3491, 3264, 3264, 3264, 3250, 3264, 3264, 3264,
4548      3264, 3264, 3251, 3250, 3264, 3264, 3264, 3264, 3264, 3250,
4549      1201, 1201, 1201, 1201, 3264, 3264, 3264, 3264, 3335, 3264,
4550      1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201,
4551      1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 3264, 3264,
4552      3264, 3264, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201,
4553      1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201,
4554
4555      1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 3250,
4556      3264, 3250, 3264, 3264, 3250, 3340, 1215, 3340, 3340, 3250,
4557      3250, 3250, 3341, 3250, 3250, 3250, 3251, 3250, 3250, 3250,
4558      3250, 3250, 3250, 3250, 3491, 3491, 3491, 3491, 3268, 3250,
4559      3250, 3250, 3250, 3250, 1217, 1217, 1217, 1217, 1217, 1217,
4560      1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
4561      1217, 1217, 3250, 3269, 3250, 3250, 1217, 1217, 1217, 1217,
4562      1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
4563      1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
4564      1217, 1217, 1217, 3250, 3250, 3250, 3342, 3343, 3250, 3344,
4565
4566       697, 3344, 3344, 3250, 3250, 3250, 3345, 3250, 3250, 3250,
4567      3251, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3491, 3491,
4568      3491, 3491, 3250, 3250, 3250, 3250, 3250, 3250,  699,  699,
4569       699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
4570       699,  699,  699,  699,  699,  699, 3250, 3250, 3250, 3250,
4571       699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
4572       699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
4573       699,  699,  699,  699,  699,  699,  699, 3250, 3250, 3250,
4574      3250, 3346,  724, 3491, 3491,  724,  724, 3491, 3491,  724,
4575      3491, 3491, 3491,  725, 3491, 3491, 3491,  725,  726,  727,
4576
4577      3491,  724,  726,  727,  724,  729, 3491,  730, 3491,  729,
4578      3491,  730,  725, 3491, 3491, 3491, 3491,  726,  727, 2864,
4579      2636, 2636, 2864, 3491,  729, 3491,  730, 3491, 3491, 3491,
4580       619, 3491, 3491, 3491, 3491, 2636, 2636, 2636, 2636, 3491,
4581      3491, 3491, 1790, 3491, 2638, 3491,  619, 3491, 3491, 3491,
4582      3491, 3491, 3358, 3383, 3491, 3250, 3383, 3359, 2277, 3491,
4583      2638, 3491, 3491, 3491, 3251, 3250, 3491, 1791, 3250, 3491,
4584       724, 3491, 3293,  724, 3491, 3491, 3384, 3250, 3250, 3491,
4585      3491,  725, 3491, 1791, 3491, 3378,  726,  727, 3491, 3491,
4586      3491, 3491, 3491,  729, 3491,  730, 3491, 3491, 3491, 3491,
4587
4588      3491, 3250, 3250, 3491, 3379, 1199, 1199, 3491, 1199, 1199,
4589      1199, 3491, 1199, 1199, 1199, 1199, 1199, 1200, 1200, 1199,
4590      1199, 1199, 1201, 1201, 3491, 3491, 3491, 3491, 3491, 1199,
4591      1199, 1199, 1199, 1202, 1199, 3491, 3491, 3491, 3491, 3491,
4592      3491, 3293, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
4593      3491, 3491, 3491, 1199, 1199, 1199, 1199, 3491,  724, 3491,
4594      3491,  724, 3491, 3491, 3491, 3491, 3491, 3491, 3491,  725,
4595      3491, 3491, 3491, 3491,  726,  727, 3491, 3491, 3491, 3491,
4596      3491,  729, 3491,  730, 3491, 1199, 1200, 1199, 1199, 3250,
4597      3387, 2279, 3387, 3387, 3250, 3250, 3250, 3388, 3250, 3250,
4598
4599      3250, 3251, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3405,
4600      3491, 3491, 3491, 3268, 3250, 3250, 3250, 3250, 3250, 2281,
4601      2281, 2281, 2281, 2281, 2281, 2281, 2281, 2281, 2281, 2281,
4602      2281, 2281, 2281, 2281, 2281, 2281, 2281, 3250, 3269, 3250,
4603      3250, 2281, 2281, 2281, 2281, 2281, 2281, 2281, 2281, 2281,
4604      2281, 2281, 2281, 2281, 2281, 2281, 2282, 2281, 2281, 2281,
4605      2281, 2281, 2281, 2281, 2281, 2281, 2281, 2281, 3250, 3250,
4606      3250, 3342, 3389, 3250, 3340, 1215, 3340, 3340, 3250, 3250,
4607      3250, 3341, 3250, 3250, 3250, 3251, 3250, 3250, 3250, 3250,
4608      3250, 3250, 3250, 3491, 3491, 3491, 3491, 3268, 3250, 3250,
4609
4610      3250, 3250, 3250, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
4611      1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
4612      1217, 3250, 3269, 3250, 3250, 1217, 1217, 1217, 1217, 1217,
4613      1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
4614      1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
4615      1217, 1217, 3250, 3250, 3250, 3342, 3343, 3250, 3390, 1802,
4616      3390, 3390, 3250, 3250, 3250, 3391, 3250, 3250, 3250, 3251,
4617      3250, 3250, 3250, 3250, 3250, 3250, 3250, 3491, 3491, 3491,
4618      3491, 3250, 3250, 3250, 3250, 3250, 3250, 1804, 1804, 1804,
4619      1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804,
4620
4621      1804, 1804, 1804, 1804, 1804, 3250, 3250, 3250, 3250, 1804,
4622      1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804,
4623      1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804,
4624      1804, 1804, 1804, 1804, 1804, 1804, 3250, 3250, 3250, 3250,
4625      3392, 3250, 3393, 1799, 3393, 3393, 3250, 3250, 3250, 3250,
4626      3250, 3250, 3250, 3274, 3250, 3250, 3250, 3250, 3250, 3250,
4627      3250, 1800, 1800, 1800, 1800, 3268, 3250, 3394, 3250, 3250,
4628      3250, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800,
4629      1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 3250,
4630      3269, 3250, 3250, 1800, 1800, 1800, 1800, 1800, 1800, 1800,
4631
4632      1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800,
4633      1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800,
4634      3250, 3250, 3250, 3250, 3395, 3250, 3344,  697, 3344, 3344,
4635      3250, 3250, 3250, 3345, 3250, 3250, 3250, 3251, 3250, 3250,
4636      3250, 3250, 3250, 3250, 3250, 3491, 3491, 3491, 3491, 3250,
4637      3250, 3250, 3250, 3250, 3250,  699,  699,  699,  699,  699,
4638       699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
4639       699,  699,  699, 3250, 3250, 3250, 3250,  699,  699,  699,
4640       699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
4641       699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
4642
4643       699,  699,  699,  699, 3250, 3250, 3250, 3250, 3346, 3250,
4644      3396, 1306, 3397, 3396, 3250, 3250, 3250, 3250, 3250, 3250,
4645      3250, 3274, 3255, 3250, 3250, 3255, 3250, 3250, 3250, 1307,
4646      1307, 1307, 1307, 3250, 3255, 3257, 3250, 3250, 3250, 1307,
4647      1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307,
4648      1307, 1307, 1307, 1307, 1307, 1307, 1307, 3250, 3250, 3255,
4649      3250, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307,
4650      1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307,
4651      1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 3250, 3250,
4652      3250, 3250, 3398,  724, 3491, 3491,  724,  813,  814, 3491,
4653
4654       813, 3491, 3491, 3491,  725, 3491, 3491, 3491,  815,  726,
4655       727, 3491, 3491,  816,  817, 3491,  729, 3491,  730, 3491,
4656       729, 3491,  730, 3491, 2864, 2636, 2636, 2864,  724, 3491,
4657      3491,  724, 3491, 3491, 3491,  619, 3491, 3491, 3491,  725,
4658      3491, 3491, 3491, 3491,  726,  727, 3491, 1790, 1335, 2638,
4659      3491,  729, 1434,  730, 3491, 3491, 3491, 3491,  724, 3491,
4660      3491,  724,  724, 3491, 3491,  724, 3491, 3491, 3491,  725,
4661      3491, 3491, 1791,  725,  726,  727, 3491, 3491,  726,  727,
4662      3491,  729, 3435,  730, 3491,  729, 3491,  730, 3491, 3491,
4663      3491, 3491, 3491, 3416, 3250, 3417, 2636, 3418, 3417, 3250,
4664
4665      3250, 3250, 3250, 3250, 3250, 3250, 3326, 3250, 3250, 3250,
4666      3250, 3250, 3250, 3250, 3459, 3491, 3491, 3491, 3385, 3250,
4667      3419, 3250, 3250, 3250, 3491, 3491, 3491, 3491, 3470, 3491,
4668       724, 3491, 3491,  724, 3491, 3491, 3491, 3491, 3491, 3491,
4669      3491,  725, 3250, 3339, 3250, 3250,  726,  727, 3491, 3491,
4670      3491, 3491, 3491,  729, 3491,  730, 3491, 3491, 3491, 3491,
4671      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
4672      3491, 3491, 3491, 3250, 3250, 3250, 3250, 3420, 3250, 3387,
4673      2279, 3387, 3387, 3250, 3250, 3250, 3424, 3250, 3250, 3250,
4674      3251, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3491, 3491,
4675
4676      3491, 3293, 3268, 3250, 3250, 3250, 3250, 3250, 2634, 2634,
4677      2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634,
4678      2634, 2634, 2634, 2634, 2634, 2634, 3250, 3269, 3250, 3250,
4679      2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634,
4680      2634, 2634, 2634, 2634, 2634, 2635, 2634, 2634, 2634, 2634,
4681      2634, 2634, 2634, 2634, 2634, 2634, 2634, 3250, 3250, 3250,
4682      3342, 3425, 3250, 3426, 2290, 3426, 3426, 3250, 3250, 3250,
4683      3250, 3250, 3250, 3250, 3274, 3250, 3250, 3250, 3250, 3250,
4684      3250, 3250, 2291, 2291, 2291, 2291, 3250, 3250, 3250, 3250,
4685      3250, 3250, 2291, 2291, 2291, 2291, 2291, 2291, 2291, 2291,
4686
4687      2291, 2291, 2291, 2291, 2291, 2291, 2291, 2291, 2291, 2291,
4688      3250, 3250, 3250, 3250, 2291, 2291, 2291, 2291, 2291, 2291,
4689      2291, 2291, 2291, 2291, 2291, 2291, 2291, 2291, 2291, 2291,
4690      2291, 2291, 2291, 2291, 2291, 2291, 2291, 2291, 2291, 2291,
4691      2291, 3250, 3250, 3250, 3250, 3427, 3428, 3428, 3491, 3428,
4692      3428, 3428, 3250, 3428, 3428, 3428, 3428, 3428, 3251, 3250,
4693      3428, 3428, 3428, 3428, 3428, 3250, 1796, 1796, 1796, 1796,
4694      3428, 3428, 3428, 3428, 3429, 3428, 1796, 1796, 1796, 1796,
4695      1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796,
4696      1796, 1796, 1796, 1796, 3428, 3428, 3428, 3428, 1796, 1796,
4697
4698      1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796,
4699      1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796,
4700      1796, 1796, 1796, 1796, 1796, 3250, 3428, 3250, 3428, 3428,
4701      3250, 3446, 2636, 3418, 3446, 3250, 3250, 3250, 3250, 3250,
4702      3250, 3250, 3326, 3250, 3250, 3250, 3250, 3250, 3250, 3250,
4703      3490,  618,  618, 3490, 3338, 3250, 3419, 3250, 3250, 3250,
4704      3491,  619,  620, 3491, 3491,  620, 3491, 3491, 3491, 3491,
4705      3491, 3491, 3491,  622,  620,  963, 3491, 3491, 3250, 3339,
4706      3250, 3250, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
4707      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,  624,  620,
4708
4709      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3250,
4710      3250, 3250, 3250, 3447, 3264, 3264, 3491, 3264, 3264, 3264,
4711      3250, 3264, 3264, 3264, 3264, 3264, 3251, 3250, 3264, 3264,
4712      3264, 3264, 3264, 3250, 1201, 1201, 1201, 1201, 3264, 3264,
4713      3264, 3264, 3335, 3264, 1201, 1201, 1201, 1201, 1201, 1201,
4714      1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201,
4715      1201, 1201, 3264, 3264, 3264, 3264, 1201, 1201, 1201, 1201,
4716      1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201,
4717      1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201,
4718      1201, 1201, 1201, 3250, 3264, 3250, 3264, 3264, 3250, 3250,
4719
4720      3491, 3250, 3250, 3250, 3250, 3250, 3450, 3250, 3250, 3250,
4721      3251, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3491, 3491,
4722      3491, 3491, 3250, 3250, 3250, 3250, 3250, 3250, 2797, 2797,
4723      2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797,
4724      2797, 2797, 2797, 2797, 2797, 2797, 3250, 3250, 3250, 3250,
4725      2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797,
4726      2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797,
4727      2797, 2797, 2797, 2797, 2797, 2797, 2797, 3250, 3250, 3250,
4728      3250, 3451, 3250, 3250, 3491, 3250, 3250, 3250, 3250, 3250,
4729      3250, 3250, 3250, 3250, 3251, 3250, 3250, 3250, 3250, 3250,
4730
4731      3250, 3250, 3491, 3491, 3491, 3491, 3250, 3250, 3250, 3250,
4732      3250, 3250, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634,
4733      2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634,
4734      3250, 3250, 3250, 3250, 2634, 2634, 2634, 2634, 2634, 2634,
4735      2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634,
4736      2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634,
4737      2634, 3250, 3250, 3250, 3250, 3425, 3250, 3383, 3491, 3250,
4738      3383, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3251, 3250,
4739      3250, 3250, 3250, 3250, 3250, 3250, 2980, 2980, 2980, 2980,
4740      3384, 3250, 3250, 3250, 3250, 3250, 2980, 2980, 2980, 2980,
4741
4742      2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980,
4743      2980, 2980, 2980, 2980, 3250, 3250, 3250, 3250, 2980, 2980,
4744      2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980,
4745      2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980,
4746      2980, 2980, 2980, 2980, 2980, 3250, 3250, 3250, 3250, 3466,
4747        68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
4748        68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
4749        68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
4750        77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
4751        77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
4752
4753        77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
4754        86,   86,   86,   86,   86,   86,   86,   86,   86,   86,
4755        86,   86,   86,   86,   86,   86,   86,   86,   86,   86,
4756        86,   86,   86,   86,   86,   86,   86,   86,   86,   86,
4757        94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
4758        94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
4759        94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
4760       104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
4761       104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
4762       104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
4763
4764       114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
4765       114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
4766       114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
4767       124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
4768       124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
4769       124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
4770       134,  134,  134,  134,  134,  134,  134,  134,  134,  134,
4771       134,  134,  134,  134,  134,  134,  134,  134,  134,  134,
4772       134,  134,  134,  134,  134,  134,  134,  134,  134,  134,
4773       339,  339,  339,  339,  339,  339,  339,  339,  339,  339,
4774
4775       339,  339,  339,  339,  339,  339,  339,  339,  339,  339,
4776       339,  339,  339,  339,  339,  339,  339,  339,  339,  339,
4777       511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
4778       511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
4779       511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
4780       530,  530, 3491, 3491,  530, 3491,  530,  530,  530,  530,
4781       530,  530,  530,  530,  530,  530,  530,  530,  530,  530,
4782       530,  530,  530, 3491,  530,  530,  530,  530,  530,  530,
4783       534,  534, 3491,  534,  534,  534,  534,  534,  534,  534,
4784       534,  534,  534,  534,  534,  534,  534,  534,  534,  534,
4785
4786       534,  534,  534,  534,  534,  534,  534,  534,  534,  534,
4787       539,  539, 3491, 3491,  539,  539,  539, 3491,  539,  539,
4788       539,  539,  539,  539,  539,  539,  539,  539,  539,  539,
4789       539,  539,  539, 3491,  539,  539,  539,  539,  539,  539,
4790       547,  547, 3491,  547,  547, 3491,  547,  547,  547,  547,
4791       547,  547,  547,  547,  547,  547,  547,  547,  547,  547,
4792       547,  547,  547,  547,  547,  547,  547,  547,  547,  547,
4793       555,  555, 3491,  555,  555,  555,  555,  555,  555,  555,
4794       555,  555,  555,  555, 3491,  555,  555,  555,  555,  555,
4795       555,  555,  555, 3491,  555,  555,  555,  555,  555,  555,
4796
4797       556,  556,  556,  556,  556,  556,  556,  556,  556,  556,
4798       556,  556,  556,  556,  556,  556,  556,  556,  556,  556,
4799       556,  556,  556,  556,  556,  556,  556,  556,  556,  556,
4800       566,  566, 3491,  566,  566,  566,  566,  566,  566,  566,
4801      3491,  566,  566,  566, 3491,  566,  566,  566,  566,  566,
4802       566,  566,  566,  566,  566,  566,  566,  566,  566,  566,
4803       576,  576, 3491, 3491,  576,  576,  576,  576,  576,  576,
4804       576,  576,  576,  576,  576,  576,  576,  576,  576,  576,
4805       576,  576,  576,  576,  576,  576,  576,  576,  576,  576,
4806       587,  587, 3491,  587,  587,  587,  587,  587,  587,  587,
4807
4808      3491,  587,  587,  587,  587,  587,  587,  587,  587,  587,
4809       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
4810       598,  598, 3491,  598,  598,  598,  598,  598,  598,  598,
4811       598,  598,  598,  598,  598,  598,  598,  598,  598,  598,
4812       598,  598,  598,  598,  598,  598,  598,  598,  598,  598,
4813       621,  621,  621,  621, 3491, 3491, 3491,  621,  621, 3491,
4814       621, 3491, 3491, 3491,  621,  621,  621,  621, 3491,  621,
4815       621, 3491,  621,  621,  621, 3491, 3491, 3491,  621,  632,
4816       632,  632,  632, 3491,  632, 3491, 3491, 3491, 3491, 3491,
4817      3491, 3491, 3491, 3491,  632, 3491, 3491, 3491,  632,  632,
4818
4819      3491,  632, 3491,  632, 3491, 3491,  632,  632,  699,  699,
4820       699,  699, 3491,  699, 3491, 3491, 3491, 3491, 3491, 3491,
4821      3491, 3491, 3491, 3491, 3491, 3491, 3491,  699,  699, 3491,
4822      3491, 3491,  699, 3491, 3491, 3491,  699,  728, 3491, 3491,
4823       728, 3491, 3491, 3491,  728, 3491, 3491, 3491,  728,  728,
4824      3491,  728,  728, 3491,  728, 3491,  728,  728, 3491, 3491,
4825      3491,  728, 3491, 3491, 3491,  728,  797,  797,  797,  797,
4826      3491, 3491, 3491,  797, 3491, 3491, 3491, 3491, 3491, 3491,
4827       797,  797, 3491,  797, 3491,  797,  797, 3491,  797, 3491,
4828       797, 3491, 3491, 3491,  797,  810,  810,  810,  810, 3491,
4829
4830       810, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
4831      3491, 3491, 3491, 3491,  810,  810, 3491, 3491, 3491,  810,
4832      3491, 3491, 3491,  810,  818,  818, 3491,  818, 3491, 3491,
4833      3491,  818, 3491, 3491, 3491,  818,  818, 3491,  818,  818,
4834      3491,  818, 3491,  818,  818, 3491, 3491, 3491,  818, 3491,
4835      3491, 3491,  818,  880, 3491, 3491, 3491, 3491,  880,  880,
4836      3491, 3491, 3491,  880, 3491, 3491, 3491,  880,  891, 3491,
4837      3491,  891, 3491, 3491, 3491,  891, 3491, 3491, 3491, 3491,
4838      3491, 3491,  891,  891, 3491, 3491, 3491,  891,  891, 3491,
4839       891, 3491,  891, 3491, 3491, 3491,  891,  901, 3491,  901,
4840
4841      3491, 3491, 3491, 3491,  901,  901, 3491, 3491, 3491,  901,
4842      3491, 3491, 3491,  901,  905, 3491, 3491, 3491, 3491,  905,
4843       905, 3491, 3491, 3491,  905, 3491, 3491, 3491,  905,  914,
4844       914, 3491, 3491, 3491,  914,  914, 3491,  914, 3491,  914,
4845      3491, 3491, 3491,  914,  925,  925, 3491, 3491, 3491, 3491,
4846      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,  925,
4847       925, 3491, 3491, 3491,  925, 3491, 3491, 3491,  925,  927,
4848       927, 3491,  927,  927,  927,  927,  927,  927,  927,  927,
4849       927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
4850       927,  927,  927,  927,  927,  927,  927,  927,  927,  961,
4851
4852       961,  961,  961, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
4853      3491, 3491, 3491,  961,  961, 3491,  961, 3491,  961,  961,
4854      3491,  961, 3491,  961, 3491, 3491, 3491,  961,  968,  968,
4855       968,  968, 3491,  968, 3491, 3491, 3491, 3491, 3491, 3491,
4856      3491, 3491, 3491, 3491, 3491, 3491, 3491,  968,  968, 3491,
4857      3491, 3491,  968, 3491, 3491,  968,  968,  988,  988,  988,
4858       988, 3491,  988, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
4859      3491, 3491, 3491, 3491, 3491, 3491,  988,  988, 3491, 3491,
4860      3491,  988, 3491, 3491, 3491,  988,  998, 3491, 3491, 3491,
4861      3491,  998,  998, 3491, 3491, 3491,  998, 3491, 3491, 3491,
4862
4863       998, 1006, 3491, 3491, 3491, 3491, 1006, 1006, 3491, 3491,
4864      3491, 1006, 3491, 3491, 3491, 1006, 1025, 3491, 3491, 1025,
4865      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
4866      1025, 1025, 3491, 3491, 3491, 1025, 1025, 3491, 3491, 3491,
4867      1025, 3491, 3491, 3491, 1025, 1028, 3491, 3491, 3491, 3491,
4868      1028, 1028, 3491, 3491, 3491, 1028, 3491, 3491, 3491, 1028,
4869      1046, 1046, 3491, 1046, 3491, 1046, 1046, 3491, 1046, 1046,
4870      1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046,
4871      1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046,
4872      1049, 3491, 3491, 3491, 3491, 1049, 1049, 3491, 3491, 3491,
4873
4874      1049, 3491, 3491, 3491, 1049, 1052, 1052, 1052, 1052, 3491,
4875      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 1052,
4876      1052, 3491, 3491, 3491, 1052, 1052, 3491, 3491, 1052, 1052,
4877      3491, 3491, 3491, 1052, 1055, 1055, 3491, 1055, 1055, 3491,
4878      3491, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055,
4879      1055, 1055, 1055, 1055, 1055, 1055, 1055, 3491, 1055, 1055,
4880      1055, 1055, 1055, 1055, 1060, 1060, 3491, 1060, 1060, 3491,
4881      3491, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060,
4882      1060, 1060, 1060, 1060, 1060, 1060, 1060, 3491, 1060, 1060,
4883      1060, 1060, 1060, 1060, 1061, 1061, 3491, 1061, 1061, 1061,
4884
4885      1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
4886      1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
4887      1061, 1061, 1061, 1061, 1068, 3491, 3491, 3491, 3491, 1068,
4888      1068, 3491, 3491, 3491, 1068, 3491, 3491, 3491, 1068, 1090,
4889      1090, 3491, 3491, 3491, 1090, 1090, 3491, 3491, 3491, 1090,
4890      3491, 3491, 3491, 1090, 1092, 1092, 1092, 1092, 1092, 1092,
4891      1092, 1092, 1092, 3491, 1092, 1092, 1092, 1092, 1092, 1092,
4892      1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092,
4893      1092, 1092, 1092, 1092, 1095, 3491, 1095, 1095, 3491, 1095,
4894      1095, 1095, 3491, 3491, 1095, 1095, 1095, 1095, 1095, 1095,
4895
4896      1095, 1095, 1095, 1095, 1095, 1095, 1095, 3491, 1095, 1095,
4897      1095, 1095, 1095, 1095,  530,  530, 3491, 3491,  530, 3491,
4898       530,  530,  530,  530,  530,  530,  530,  530,  530,  530,
4899       530,  530,  530,  530,  530,  530,  530, 3491,  530,  530,
4900       530,  530,  530,  530,  539,  539, 3491, 3491,  539,  539,
4901       539, 3491,  539,  539,  539,  539,  539,  539,  539,  539,
4902       539,  539,  539,  539,  539,  539,  539, 3491,  539,  539,
4903       539,  539,  539,  539,  547,  547, 3491,  547,  547, 3491,
4904       547,  547,  547,  547,  547,  547,  547,  547,  547,  547,
4905       547,  547,  547,  547,  547,  547,  547,  547,  547,  547,
4906
4907       547,  547,  547,  547,  555,  555, 3491,  555,  555,  555,
4908       555,  555,  555,  555,  555,  555,  555,  555, 3491,  555,
4909       555,  555,  555,  555,  555,  555,  555, 3491,  555,  555,
4910       555,  555,  555,  555,  556,  556,  556,  556,  556,  556,
4911       556,  556,  556,  556,  556,  556,  556,  556,  556,  556,
4912       556,  556,  556,  556,  556,  556,  556,  556,  556,  556,
4913       556,  556,  556,  556,  566,  566, 3491,  566,  566,  566,
4914       566,  566,  566,  566, 3491,  566,  566,  566, 3491,  566,
4915       566,  566,  566,  566,  566,  566,  566,  566,  566,  566,
4916       566,  566,  566,  566,  576,  576, 3491, 3491,  576,  576,
4917
4918       576,  576,  576,  576,  576,  576,  576,  576,  576,  576,
4919       576,  576,  576,  576,  576,  576,  576,  576,  576,  576,
4920       576,  576,  576,  576,  587,  587, 3491,  587,  587,  587,
4921       587,  587,  587,  587, 3491,  587,  587,  587,  587,  587,
4922       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
4923       587,  587,  587,  587,  621,  621,  621,  621, 3491, 3491,
4924      3491,  621,  621, 3491,  621, 3491, 3491, 3491,  621,  621,
4925       621,  621, 3491,  621,  621, 3491,  621,  621,  621, 3491,
4926      3491, 3491,  621,  598,  598, 3491,  598,  598,  598,  598,
4927       598,  598,  598,  598,  598,  598,  598,  598,  598,  598,
4928
4929       598,  598,  598,  598,  598,  598,  598,  598,  598,  598,
4930       598,  598,  598, 1181, 3491, 3491, 1181, 3491, 1181, 3491,
4931      3491, 1181, 1181, 3491, 3491, 3491, 3491, 3491, 1181, 3491,
4932      3491, 3491, 1181, 1181, 3491, 1181, 3491, 1181, 3491, 3491,
4933      1181, 1181,  632,  632,  632,  632, 3491,  632, 3491, 3491,
4934      3491, 3491, 3491, 3491, 3491, 3491, 3491,  632, 3491, 3491,
4935      3491,  632,  632, 3491,  632, 3491,  632, 3491, 3491,  632,
4936       632, 1199, 1199, 3491, 1199, 1199, 3491, 1199, 1199, 1199,
4937      1199, 1199, 1199, 1199, 1199, 3491, 1199, 1199, 1199, 1199,
4938      1199, 1199, 1199, 1199, 1199, 1199, 1199, 3491, 1199, 1199,
4939
4940      1199,  596,  596,  596,  596, 3491,  596, 3491, 3491, 3491,
4941      3491, 3491, 3491, 3491, 3491, 3491,  596, 3491, 3491, 3491,
4942       596,  596, 3491,  596, 3491,  596, 3491, 3491,  596,  596,
4943      1207, 3491, 1207, 1207, 3491, 1207, 1207, 1207, 1207, 3491,
4944      1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207,
4945      1207, 1207, 1207, 3491, 1207, 1207, 1207, 1207, 1207, 1207,
4946      1211, 1211, 1211, 1211, 3491, 3491, 3491, 1211, 1211, 3491,
4947      1211, 3491, 3491, 3491, 1211, 1211, 1211, 1211, 3491, 1211,
4948      1211, 3491, 1211, 1211, 1211, 3491, 3491, 3491, 1211, 1217,
4949      1217, 1217, 1217, 3491, 1217, 3491, 3491, 3491, 3491, 3491,
4950
4951      3491, 3491, 3491, 3491, 1217, 3491, 3491, 3491, 1217, 1217,
4952      3491, 1217, 3491, 1217, 3491, 3491, 1217, 1217,  699,  699,
4953       699,  699, 3491,  699, 3491, 3491, 3491, 3491, 3491, 3491,
4954      3491, 3491, 3491, 3491, 3491, 3491, 3491,  699,  699, 3491,
4955      3491, 3491,  699, 3491, 3491, 3491,  699, 1307, 1307, 1307,
4956      1307, 3491, 3491, 3491, 1307, 1307, 3491, 1307, 3491, 3491,
4957      3491, 1307, 3491, 1307, 1307, 3491, 1307, 1307, 3491, 3491,
4958      1307, 1307, 3491, 3491, 3491, 1307,  728, 3491, 3491,  728,
4959      3491, 3491, 3491,  728, 3491, 3491, 3491,  728,  728, 3491,
4960       728,  728, 3491,  728, 3491,  728,  728, 3491, 3491, 3491,
4961
4962       728, 3491, 3491, 3491,  728, 1314, 3491, 3491, 1314, 3491,
4963      1314, 3491, 3491, 1314, 1314, 3491, 3491, 3491, 3491, 3491,
4964      3491, 3491, 3491, 3491, 1314, 1314, 3491, 3491, 3491, 1314,
4965      3491, 3491, 3491, 1314, 1330, 1330, 3491, 1330, 1330, 1330,
4966      1330, 1330, 3491, 3491, 1330, 1330, 1330, 1330, 1330, 1330,
4967      1330, 1330, 3491, 1330, 1330, 1330, 3491, 1330, 3491, 1330,
4968      3491, 3491, 1330, 1330,  797,  797,  797,  797, 3491, 3491,
4969      3491,  797, 3491, 3491, 3491, 3491, 3491, 3491,  797,  797,
4970      3491,  797, 3491,  797,  797, 3491,  797, 3491,  797, 3491,
4971      3491, 3491,  797,  792,  792,  792,  792, 3491,  792, 3491,
4972
4973      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,  792, 3491,
4974      3491, 3491,  792,  792, 3491,  792, 3491,  792, 3491, 3491,
4975       792,  792, 1421, 1421, 3491, 1421, 1421, 3491, 1421, 1421,
4976      3491, 3491, 1421, 1421, 1421, 1421, 3491, 1421, 1421, 1421,
4977      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 3491, 3491,
4978      1421, 1421, 1426, 1426, 1426, 1426, 3491, 1426, 3491, 3491,
4979      3491, 3491, 3491, 3491, 3491, 3491, 3491, 1426, 3491, 3491,
4980      3491, 1426, 1426, 3491, 1426, 3491, 1426, 3491, 3491, 1426,
4981      1426,  810,  810,  810,  810, 3491,  810, 3491, 3491, 3491,
4982      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
4983
4984       810,  810, 3491, 3491, 3491,  810, 3491, 3491, 3491,  810,
4985      1430, 1430, 1430, 1430, 3491, 3491, 3491, 1430, 3491, 3491,
4986      3491, 3491, 3491, 3491, 1430, 3491, 3491, 3491, 3491, 1430,
4987      1430, 3491, 3491, 3491, 1430, 3491, 3491, 3491, 1430,  818,
4988       818, 3491,  818, 3491, 3491, 3491,  818, 3491, 3491, 3491,
4989       818,  818, 3491,  818,  818, 3491,  818, 3491,  818,  818,
4990      3491, 3491, 3491,  818, 3491, 3491, 3491,  818,  880, 3491,
4991      3491, 3491, 3491,  880,  880, 3491, 3491, 3491,  880, 3491,
4992      3491, 3491,  880,  891, 3491, 3491,  891, 3491, 3491, 3491,
4993       891, 3491, 3491, 3491, 3491, 3491, 3491,  891,  891, 3491,
4994
4995      3491, 3491,  891,  891, 3491,  891, 3491,  891, 3491, 3491,
4996      3491,  891, 1513, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
4997      3491, 3491, 3491, 3491, 3491, 3491, 1513, 1513, 3491, 3491,
4998      3491, 1513, 3491, 3491, 3491, 1513, 1516, 3491, 3491, 3491,
4999      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
5000      1516, 1516, 3491, 3491, 3491, 1516, 3491, 3491, 3491, 1516,
5001       901, 3491,  901, 3491, 3491, 3491, 3491,  901,  901, 3491,
5002      3491, 3491,  901, 3491, 3491, 3491,  901, 1519, 3491, 3491,
5003      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
5004      3491, 1519, 1519, 3491, 3491, 3491, 1519, 3491, 3491, 3491,
5005
5006      1519,  905, 3491, 3491, 3491, 3491,  905,  905, 3491, 3491,
5007      3491,  905, 3491, 3491, 3491,  905,  914,  914, 3491, 3491,
5008      3491,  914,  914, 3491,  914, 3491,  914, 3491, 3491, 3491,
5009       914,  911, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
5010      3491, 3491, 3491, 3491, 3491,  911,  911, 3491, 3491, 3491,
5011       911, 3491, 3491, 3491,  911,  925, 3491, 3491, 3491, 3491,
5012      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,  925,
5013       925, 3491, 3491, 3491,  925, 3491, 3491, 3491,  925, 1531,
5014      3491, 3491, 3491, 3491, 1531, 1531, 3491, 3491, 3491, 1531,
5015      3491, 3491, 3491, 1531,  927,  927, 3491,  927,  927,  927,
5016
5017       927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
5018       927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
5019       927,  927,  927,  927,  961,  961,  961,  961, 3491, 3491,
5020      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,  961,  961,
5021      3491,  961, 3491,  961,  961, 3491,  961, 3491,  961, 3491,
5022      3491, 3491,  961,  968,  968,  968,  968, 3491,  968, 3491,
5023      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
5024      3491, 3491,  968,  968, 3491, 3491, 3491,  968, 3491, 3491,
5025       968,  968, 1200, 1200, 3491, 1200, 1200, 3491, 1200, 1200,
5026      1200, 1200, 1200, 1200, 3491, 3491, 3491, 1200, 1200, 1200,
5027
5028      1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 3491, 1200,
5029      1200, 1200, 1568, 1568, 1568, 1568, 3491, 3491, 3491, 3491,
5030      3491, 3491, 3491, 3491, 3491, 3491, 1568, 1568, 3491, 1568,
5031      3491, 1568, 1568, 3491, 1568, 3491, 1568, 3491, 3491, 3491,
5032      1568,  988,  988,  988,  988, 3491,  988, 3491, 3491, 3491,
5033      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
5034       988,  988, 3491, 3491, 3491,  988, 3491, 3491, 3491,  988,
5035      1592, 3491, 3491, 1592, 3491, 3491, 3491, 3491, 3491, 3491,
5036      3491, 3491, 3491, 3491, 1592, 3491, 3491, 1592, 3491, 1592,
5037      1592, 3491, 3491, 3491, 1592, 3491, 3491, 3491, 1592,  998,
5038
5039      3491, 3491, 3491, 3491,  998,  998, 3491, 3491, 3491,  998,
5040      3491, 3491, 3491,  998, 1006, 3491, 3491, 3491, 3491, 1006,
5041      1006, 3491, 3491, 3491, 1006, 3491, 3491, 3491, 1006, 1025,
5042      3491, 3491, 1025, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
5043      3491, 3491, 3491, 1025, 1025, 3491, 3491, 3491, 1025, 1025,
5044      3491, 3491, 3491, 1025, 3491, 3491, 3491, 1025, 1028, 3491,
5045      3491, 3491, 3491, 1028, 1028, 3491, 3491, 3491, 1028, 3491,
5046      3491, 3491, 1028, 1049, 3491, 3491, 3491, 3491, 1049, 1049,
5047      3491, 3491, 3491, 1049, 3491, 3491, 3491, 1049, 1630, 1630,
5048      3491, 1630, 3491, 1630, 1630, 1630, 1630, 1630, 1630, 1630,
5049
5050      1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630,
5051      1630, 3491, 1630, 1630, 1630, 1630, 1630, 1630, 1632, 1632,
5052      3491, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632,
5053      1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632,
5054      1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1052, 1052,
5055      1052, 1052, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
5056      3491, 3491, 1052, 1052, 3491, 3491, 3491, 1052, 1052, 3491,
5057      3491, 1052, 1052, 3491, 3491, 3491, 1052, 1055, 1055, 3491,
5058      1055, 1055, 3491, 3491, 1055, 1055, 1055, 1055, 1055, 1055,
5059      1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055,
5060
5061      3491, 1055, 1055, 1055, 1055, 1055, 1055, 1634, 3491, 3491,
5062      3491, 3491, 1634, 1634, 3491, 3491, 3491, 1634, 3491, 3491,
5063      3491, 1634, 1060, 1060, 3491, 1060, 1060, 3491, 3491, 1060,
5064      1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060,
5065      1060, 1060, 1060, 1060, 1060, 3491, 1060, 1060, 1060, 1060,
5066      1060, 1060, 1068, 3491, 3491, 3491, 3491, 1068, 1068, 3491,
5067      3491, 3491, 1068, 3491, 3491, 3491, 1068, 1090, 1090, 3491,
5068      3491, 3491, 1090, 1090, 3491, 3491, 3491, 1090, 3491, 3491,
5069      3491, 1090, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092,
5070      1092, 3491, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092,
5071
5072      1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092,
5073      1092, 1092, 1668, 3491, 1668, 1668, 3491, 1668, 1668, 1668,
5074      3491, 3491, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668,
5075      1668, 1668, 1668, 1668, 1668, 3491, 1668, 1668, 1668, 1668,
5076      1668, 1668, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685,
5077      1685, 1685, 1685, 1685, 1685, 1685, 3491, 1685, 1685, 1685,
5078      1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685,
5079      1685, 1685, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689,
5080      1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689,
5081      1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689,
5082
5083      1689, 1689, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693,
5084      1693, 1693, 1693, 1693, 1693, 1693, 3491, 1693, 1693, 1693,
5085      1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693,
5086      1693, 1693, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695,
5087      1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695,
5088      1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695,
5089      1695, 1695, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698,
5090      1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698,
5091      1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698,
5092      1698, 1698,  530,  530, 3491, 3491,  530, 3491,  530,  530,
5093
5094       530,  530,  530,  530,  530,  530,  530,  530,  530,  530,
5095       530,  530,  530,  530,  530, 3491,  530,  530,  530,  530,
5096       530,  530, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702,
5097      1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702,
5098      1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702,
5099      1702, 1702, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705,
5100      1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705,
5101      1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705,
5102      1705, 1705, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707,
5103      1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707,
5104
5105      1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707,
5106      1707, 1707, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709,
5107      1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709,
5108      1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709,
5109      1709, 1709,  539,  539, 3491, 3491,  539,  539,  539, 3491,
5110       539,  539,  539,  539,  539,  539,  539,  539,  539,  539,
5111       539,  539,  539,  539,  539, 3491,  539,  539,  539,  539,
5112       539,  539, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713,
5113      1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713,
5114      1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713,
5115
5116      1713, 1713, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716,
5117      1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716,
5118      1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716,
5119      1716, 1716, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718,
5120      1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718,
5121      1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718,
5122      1718, 1718, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720,
5123      1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720,
5124      1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720,
5125      1720, 1720,  547,  547, 3491,  547,  547, 3491,  547,  547,
5126
5127       547,  547,  547,  547,  547,  547,  547,  547,  547,  547,
5128       547,  547,  547,  547,  547,  547,  547,  547,  547,  547,
5129       547,  547, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724,
5130      1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724,
5131      1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724,
5132      1724, 1724, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727,
5133      1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727,
5134      1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727,
5135      1727, 1727, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729,
5136      1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729,
5137
5138      1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729,
5139      1729, 1729,  556,  556,  556,  556,  556,  556,  556,  556,
5140       556,  556,  556,  556,  556,  556,  556,  556,  556,  556,
5141       556,  556,  556,  556,  556,  556,  556,  556,  556,  556,
5142       556,  556, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737,
5143      1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737,
5144      1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737,
5145      1737, 1737,  576,  576, 3491, 3491,  576,  576,  576,  576,
5146       576,  576,  576,  576,  576,  576,  576,  576,  576,  576,
5147       576,  576,  576,  576,  576,  576,  576,  576,  576,  576,
5148
5149       576,  576, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742,
5150      1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742,
5151      1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742,
5152      1742, 1742, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746,
5153      1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746,
5154      1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746,
5155      1746, 1746, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749,
5156      1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749,
5157      1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749,
5158      1749, 1749, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755,
5159
5160      1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755,
5161      1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755,
5162      1755, 1755,  587,  587, 3491,  587,  587,  587,  587,  587,
5163       587,  587, 3491,  587,  587,  587,  587,  587,  587,  587,
5164       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
5165       587,  587, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757,
5166      1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757,
5167      1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757,
5168      1757, 1757,  621,  621,  621,  621, 3491, 3491, 3491,  621,
5169       621, 3491,  621, 3491, 3491, 3491,  621,  621,  621,  621,
5170
5171      3491,  621,  621, 3491,  621,  621,  621, 3491, 3491, 3491,
5172       621, 1181, 3491, 3491, 1181, 3491, 1181, 3491, 3491, 1181,
5173      1181, 3491, 3491, 3491, 3491, 3491, 1181, 3491, 3491, 3491,
5174      1181, 1181, 3491, 1181, 3491, 1181, 3491, 3491, 1181, 1181,
5175      1766, 1766, 1766, 1766, 3491, 1766, 3491, 3491, 1766, 3491,
5176      3491, 3491, 3491, 3491, 1766, 1766, 3491, 3491, 3491, 1766,
5177      1766, 3491, 1766, 3491, 1766, 3491, 3491, 1766, 1766, 1771,
5178      1771, 1771, 1771, 3491, 1771, 3491, 3491, 3491, 3491, 3491,
5179      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 1771, 1771,
5180      3491, 3491, 3491, 1771, 3491, 3491, 3491, 1771, 1199, 1199,
5181
5182      3491, 1199, 1199, 3491, 1199, 1199, 1199, 1199, 1199, 1199,
5183      1199, 1199, 3491, 1199, 1199, 1199, 1199, 1199, 1199, 1199,
5184      1199, 1199, 1199, 1199, 3491, 1199, 1199, 1199, 1200, 1200,
5185      3491, 1200, 1200, 3491, 1200, 1200, 1200, 1200, 1200, 1200,
5186      3491, 3491, 3491, 1200, 1200, 1200, 1200, 1200, 1200, 1200,
5187      1200, 1200, 1200, 1200, 3491, 1200, 1200, 1200, 1201, 1201,
5188      3491, 1201, 1201, 3491, 1201, 1201, 3491, 3491, 1201, 1201,
5189      1201, 1201, 3491, 1201, 1201, 1201, 1201, 1201, 1201, 1201,
5190      1201, 1201, 1201, 1201, 3491, 3491, 1201, 1201,  596,  596,
5191       596,  596, 3491,  596, 3491, 3491, 3491, 3491, 3491, 3491,
5192
5193      3491, 3491, 3491,  596, 3491, 3491, 3491,  596,  596, 3491,
5194       596, 3491,  596, 3491, 3491,  596,  596, 1794, 3491, 1794,
5195      1794, 3491, 1794, 1794, 1794, 1794, 3491, 1794, 1794, 1794,
5196      1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794,
5197      3491, 1794, 1794, 1794, 1794, 1794, 1794, 1211, 1211, 1211,
5198      1211, 3491, 3491, 3491, 1211, 1211, 3491, 1211, 3491, 3491,
5199      3491, 1211, 1211, 1211, 1211, 3491, 1211, 1211, 3491, 1211,
5200      1211, 1211, 3491, 3491, 3491, 1211, 1795, 1795, 3491, 1795,
5201      1795, 3491, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
5202      3491, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
5203
5204      1795, 1795, 3491, 1795, 1795, 1795,  632,  632,  632,  632,
5205      3491,  632, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
5206      3491,  632, 3491, 3491, 3491,  632,  632, 3491,  632, 3491,
5207       632, 3491, 3491,  632,  632, 1217, 1217, 1217, 1217, 3491,
5208      1217, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
5209      1217, 3491, 3491, 3491, 1217, 1217, 3491, 1217, 3491, 1217,
5210      3491, 3491, 1217, 1217, 1800, 1800, 1800, 1800, 3491, 3491,
5211      3491, 1800, 3491, 3491, 3491, 3491, 3491, 3491, 1800, 1800,
5212      3491, 1800, 3491, 1800, 1800, 3491, 1800, 3491, 1800, 3491,
5213      3491, 3491, 1800, 1804, 1804, 1804, 1804, 3491, 1804, 3491,
5214
5215      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
5216      3491, 3491, 1804, 1804, 3491, 3491, 3491, 1804, 3491, 3491,
5217      3491, 1804, 1307, 1307, 1307, 1307, 3491, 3491, 3491, 1307,
5218      1307, 3491, 1307, 3491, 3491, 3491, 1307, 3491, 1307, 1307,
5219      3491, 1307, 1307, 3491, 3491, 1307, 1307, 3491, 3491, 3491,
5220      1307,  728, 3491, 3491,  728, 3491, 3491, 3491,  728, 3491,
5221      3491, 3491,  728,  728, 3491,  728,  728, 3491,  728, 3491,
5222       728,  728, 3491, 3491, 3491,  728, 3491, 3491, 3491,  728,
5223      1314, 3491, 3491, 1314, 3491, 1314, 3491, 3491, 1314, 1314,
5224      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 1314,
5225
5226      1314, 3491, 3491, 3491, 1314, 3491, 3491, 3491, 1314, 1895,
5227      3491, 3491, 1895, 3491, 1895, 3491, 3491, 1895, 3491, 3491,
5228      3491, 3491, 3491, 1895, 3491, 3491, 3491, 3491, 1895, 1895,
5229      3491, 3491, 3491, 1895, 3491, 3491, 3491, 1895, 1913, 3491,
5230      3491, 1913, 3491, 1913, 3491, 3491, 3491, 3491, 3491, 3491,
5231      3491, 3491, 3491, 3491, 3491, 3491, 3491, 1913, 1913, 3491,
5232      3491, 3491, 1913, 3491, 3491, 3491, 1913, 1330, 1330, 3491,
5233      1330, 1330, 1330, 1330, 1330, 3491, 3491, 1330, 1330, 1330,
5234      1330, 1330, 1330, 1330, 1330, 3491, 1330, 1330, 1330, 3491,
5235      1330, 3491, 1330, 3491, 3491, 1330, 1330, 1421, 1421, 3491,
5236
5237      1421, 1421, 3491, 1421, 1421, 3491, 3491, 1421, 1421, 1421,
5238      1421, 3491, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
5239      1421, 1421, 1421, 3491, 3491, 1421, 1421,  792,  792,  792,
5240       792, 3491,  792, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
5241      3491, 3491,  792, 3491, 3491, 3491,  792,  792, 3491,  792,
5242      3491,  792, 3491, 3491,  792,  792, 1426, 1426, 1426, 1426,
5243      3491, 1426, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
5244      3491, 1426, 3491, 3491, 3491, 1426, 1426, 3491, 1426, 3491,
5245      1426, 3491, 3491, 1426, 1426, 1987, 1987, 1987, 1987, 3491,
5246      3491, 3491, 1987, 3491, 3491, 3491, 3491, 3491, 3491, 1987,
5247
5248      1987, 3491, 1987, 3491, 1987, 1987, 3491, 1987, 3491, 1987,
5249      3491, 3491, 3491, 1987, 1990, 1990, 1990, 1990, 3491, 1990,
5250      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
5251      3491, 3491, 3491, 1990, 1990, 3491, 3491, 3491, 1990, 3491,
5252      3491, 3491, 1990, 1430, 1430, 1430, 1430, 3491, 3491, 3491,
5253      1430, 3491, 3491, 3491, 3491, 3491, 3491, 1430, 3491, 3491,
5254      3491, 3491, 1430, 1430, 3491, 3491, 3491, 1430, 3491, 3491,
5255      3491, 1430,  818,  818, 3491,  818, 3491, 3491, 3491,  818,
5256      3491, 3491, 3491,  818,  818, 3491,  818,  818, 3491,  818,
5257      3491,  818,  818, 3491, 3491, 3491,  818, 3491, 3491, 3491,
5258
5259       818, 2058, 3491, 3491, 3491, 3491, 3491, 2058, 3491, 3491,
5260      3491, 3491, 2058, 2058, 3491, 3491, 3491, 2058, 3491, 3491,
5261      3491, 2058, 2060, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
5262      3491, 3491, 3491, 3491, 3491, 3491, 2060, 2060, 3491, 3491,
5263      3491, 2060, 3491, 3491, 3491, 2060, 2061, 3491, 3491, 3491,
5264      3491, 2061, 2061, 3491, 2061, 3491, 2061, 3491, 3491, 3491,
5265      2061,  891, 3491, 3491,  891, 3491, 3491, 3491,  891, 3491,
5266      3491, 3491, 3491, 3491, 3491,  891,  891, 3491, 3491, 3491,
5267       891,  891, 3491,  891, 3491,  891, 3491, 3491, 3491,  891,
5268      2063, 3491, 2063, 3491, 3491, 3491, 3491, 2063, 2063, 3491,
5269
5270      3491, 3491, 2063, 3491, 3491, 3491, 2063,  905, 3491, 3491,
5271      3491, 3491,  905,  905, 3491, 3491, 3491,  905, 3491, 3491,
5272      3491,  905,  914,  914, 3491, 3491, 3491,  914,  914, 3491,
5273       914, 3491,  914, 3491, 3491, 3491,  914, 1531, 3491, 3491,
5274      3491, 3491, 1531, 1531, 3491, 3491, 3491, 1531, 3491, 3491,
5275      3491, 1531, 2079, 2079, 2079, 2079, 2079, 2079, 2079, 2079,
5276      2079, 2079, 2079, 2079, 2079, 2079, 2079, 2079, 2079, 2079,
5277      2079, 2079, 2079, 2079, 2079, 2079, 2079, 2079, 2079, 2079,
5278      2079, 2079,  927,  927, 3491,  927,  927,  927,  927,  927,
5279       927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
5280
5281       927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
5282       927,  927, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084,
5283      2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084,
5284      2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084,
5285      2084, 2084, 2088, 2088, 2088, 2088, 2088, 2088, 2088, 2088,
5286      2088, 2088, 2088, 2088, 2088, 2088, 2088, 2088, 2088, 2088,
5287      2088, 2088, 2088, 2088, 2088, 2088, 2088, 2088, 2088, 2088,
5288      2088, 2088, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091,
5289      2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091,
5290      2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091,
5291
5292      2091, 2091, 2110, 2110, 2110, 2110, 3491, 2110, 3491, 3491,
5293      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
5294      3491, 2110, 2110, 3491, 3491, 3491, 2110, 3491, 3491, 2110,
5295      2110,  968,  968,  968,  968, 3491,  968, 3491, 3491, 3491,
5296      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
5297       968,  968, 3491, 3491, 3491,  968, 3491, 3491,  968,  968,
5298      1568, 1568, 1568, 1568, 3491, 3491, 3491, 3491, 3491, 3491,
5299      3491, 3491, 3491, 3491, 1568, 1568, 3491, 1568, 3491, 1568,
5300      1568, 3491, 1568, 3491, 1568, 3491, 3491, 3491, 1568,  961,
5301       961,  961,  961, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
5302
5303      3491, 3491, 3491,  961,  961, 3491,  961, 3491,  961,  961,
5304      3491,  961, 3491,  961, 3491, 3491, 3491,  961, 1200, 1200,
5305      3491, 1200, 1200, 3491, 1200, 1200, 1200, 1200, 1200, 1200,
5306      3491, 3491, 3491, 1200, 1200, 1200, 1200, 1200, 1200, 1200,
5307      1200, 1200, 1200, 1200, 3491, 1200, 1200, 1200, 1592, 3491,
5308      3491, 1592, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
5309      3491, 3491, 1592, 3491, 3491, 1592, 3491, 1592, 1592, 3491,
5310      3491, 3491, 1592, 3491, 3491, 3491, 1592,  998, 3491, 3491,
5311      3491, 3491,  998,  998, 3491, 3491, 3491,  998, 3491, 3491,
5312      3491,  998, 1006, 3491, 3491, 3491, 3491, 1006, 1006, 3491,
5313
5314      3491, 3491, 1006, 3491, 3491, 3491, 1006, 1028, 3491, 3491,
5315      3491, 3491, 1028, 1028, 3491, 3491, 3491, 1028, 3491, 3491,
5316      3491, 1028, 2156, 2156, 3491, 2156, 3491, 2156, 2156, 2156,
5317      2156, 2156, 2156, 2156, 2156, 2156, 2156, 2156, 2156, 2156,
5318      2156, 2156, 2156, 2156, 2156, 3491, 2156, 2156, 2156, 2156,
5319      2156, 2156, 1634, 3491, 3491, 3491, 3491, 1634, 1634, 3491,
5320      3491, 3491, 1634, 3491, 3491, 3491, 1634, 2159, 2159, 2159,
5321      2159, 2159, 2159, 2159, 2159, 2159, 2159, 2159, 2159, 2159,
5322      2159, 2159, 2159, 2159, 2159, 2159, 2159, 2159, 2159, 2159,
5323      2159, 2159, 2159, 2159, 2159, 2159, 2159, 1055, 1055, 3491,
5324
5325      1055, 1055, 3491, 3491, 1055, 1055, 1055, 1055, 1055, 1055,
5326      1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055,
5327      3491, 1055, 1055, 1055, 1055, 1055, 1055, 2163, 2163, 2163,
5328      2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163,
5329      2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163,
5330      2163, 2163, 2163, 2163, 2163, 2163, 2163, 2166, 2166, 2166,
5331      2166, 2166, 2166, 2166, 2166, 2166, 2166, 2166, 2166, 2166,
5332      2166, 2166, 2166, 2166, 2166, 2166, 2166, 2166, 2166, 2166,
5333      2166, 2166, 2166, 2166, 2166, 2166, 2166, 2168, 2168, 2168,
5334      2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168,
5335
5336      2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168,
5337      2168, 2168, 2168, 2168, 2168, 2168, 2168, 1068, 3491, 3491,
5338      3491, 3491, 1068, 1068, 3491, 3491, 3491, 1068, 3491, 3491,
5339      3491, 1068, 2186, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
5340      3491, 3491, 3491, 3491, 3491, 3491, 2186, 2186, 3491, 3491,
5341      3491, 2186, 3491, 3491, 3491, 2186, 1092, 1092, 1092, 1092,
5342      1092, 1092, 1092, 1092, 1092, 3491, 1092, 1092, 1092, 1092,
5343      1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092,
5344      1092, 1092, 1092, 1092, 1092, 1092, 2191, 3491, 2191, 2191,
5345      3491, 2191, 2191, 2191, 3491, 3491, 2191, 2191, 2191, 2191,
5346
5347      2191, 2191, 2191, 2191, 2191, 2191, 2191, 2191, 2191, 3491,
5348      2191, 2191, 2191, 2191, 2191, 2191, 2193, 2193, 2193, 2193,
5349      2193, 2193, 2193, 2193, 2193, 2193, 2193, 2193, 2193, 2193,
5350      2193, 2193, 2193, 2193, 2193, 2193, 2193, 2193, 2193, 2193,
5351      2193, 2193, 2193, 2193, 2193, 2193, 2197, 2197, 2197, 2197,
5352      2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197,
5353      2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197,
5354      2197, 2197, 2197, 2197, 2197, 2197, 2201, 2201, 2201, 2201,
5355      2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
5356      2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
5357
5358      2201, 2201, 2201, 2201, 2201, 2201, 2203, 2203, 2203, 2203,
5359      2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203,
5360      2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203,
5361      2203, 2203, 2203, 2203, 2203, 2203, 2206, 2206, 2206, 2206,
5362      2206, 2206, 2206, 2206, 2206, 2206, 3491, 2206, 2206, 2206,
5363      3491, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206,
5364      2206, 2206, 2206, 2206, 2206, 2206, 2208, 2208, 2208, 2208,
5365      2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208,
5366      2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208,
5367      2208, 2208, 2208, 2208, 2208, 2208, 1689, 1689, 1689, 1689,
5368
5369      1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689,
5370      1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689,
5371      1689, 1689, 1689, 1689, 1689, 1689, 2212, 2212, 2212, 2212,
5372      2212, 2212, 2212, 2212, 2212, 2212, 3491, 2212, 2212, 2212,
5373      3491, 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212,
5374      2212, 2212, 2212, 2212, 2212, 2212, 2213, 2213, 2213, 2213,
5375      2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
5376      2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
5377      2213, 2213, 2213, 2213, 2213, 2213, 1695, 1695, 1695, 1695,
5378      1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695,
5379
5380      1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695,
5381      1695, 1695, 1695, 1695, 1695, 1695, 2215, 2215, 2215, 2215,
5382      2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215,
5383      2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215,
5384      2215, 2215, 2215, 2215, 2215, 2215,  530,  530, 3491, 3491,
5385       530, 3491,  530,  530,  530,  530,  530,  530,  530,  530,
5386       530,  530,  530,  530,  530,  530,  530,  530,  530, 3491,
5387       530,  530,  530,  530,  530,  530, 1702, 1702, 1702, 1702,
5388      1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702,
5389      1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702,
5390
5391      1702, 1702, 1702, 1702, 1702, 1702, 2218, 2218, 2218, 2218,
5392      2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218,
5393      2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218,
5394      2218, 2218, 2218, 2218, 2218, 2218, 2219, 2219, 2219, 2219,
5395      2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219,
5396      2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219,
5397      2219, 2219, 2219, 2219, 2219, 2219, 1707, 1707, 1707, 1707,
5398      1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707,
5399      1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707,
5400      1707, 1707, 1707, 1707, 1707, 1707, 2220, 2220, 2220, 2220,
5401
5402      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
5403      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
5404      2220, 2220, 2220, 2220, 2220, 2220,  539,  539, 3491, 3491,
5405       539,  539,  539, 3491,  539,  539,  539,  539,  539,  539,
5406       539,  539,  539,  539,  539,  539,  539,  539,  539, 3491,
5407       539,  539,  539,  539,  539,  539, 1713, 1713, 1713, 1713,
5408      1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713,
5409      1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713,
5410      1713, 1713, 1713, 1713, 1713, 1713, 2222, 2222, 2222, 2222,
5411      2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222,
5412
5413      2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222,
5414      2222, 2222, 2222, 2222, 2222, 2222, 2223, 2223, 2223, 2223,
5415      2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223,
5416      2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223,
5417      2223, 2223, 2223, 2223, 2223, 2223, 1718, 1718, 1718, 1718,
5418      1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718,
5419      1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718,
5420      1718, 1718, 1718, 1718, 1718, 1718, 2224, 2224, 2224, 2224,
5421      2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224,
5422      2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224,
5423
5424      2224, 2224, 2224, 2224, 2224, 2224,  547,  547, 3491,  547,
5425       547, 3491,  547,  547,  547,  547,  547,  547,  547,  547,
5426       547,  547,  547,  547,  547,  547,  547,  547,  547,  547,
5427       547,  547,  547,  547,  547,  547, 1724, 1724, 1724, 1724,
5428      1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724,
5429      1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724,
5430      1724, 1724, 1724, 1724, 1724, 1724, 2226, 2226, 2226, 2226,
5431      2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226,
5432      2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226,
5433      2226, 2226, 2226, 2226, 2226, 2226, 2227, 2227, 2227, 2227,
5434
5435      2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227,
5436      2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227,
5437      2227, 2227, 2227, 2227, 2227, 2227, 1729, 1729, 1729, 1729,
5438      1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729,
5439      1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729,
5440      1729, 1729, 1729, 1729, 1729, 1729, 2228, 2228, 2228, 2228,
5441      2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228,
5442      2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228,
5443      2228, 2228, 2228, 2228, 2228, 2228, 2229, 2229, 2229, 2229,
5444      2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229,
5445
5446      2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229,
5447      2229, 2229, 2229, 2229, 2229, 2229,  556,  556,  556,  556,
5448       556,  556,  556,  556,  556,  556,  556,  556,  556,  556,
5449       556,  556,  556,  556,  556,  556,  556,  556,  556,  556,
5450       556,  556,  556,  556,  556,  556, 2232, 2232, 2232, 2232,
5451      2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232,
5452      2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232,
5453      2232, 2232, 2232, 2232, 2232, 2232,  576,  576, 3491, 3491,
5454       576,  576,  576,  576,  576,  576,  576,  576,  576,  576,
5455       576,  576,  576,  576,  576,  576,  576,  576,  576,  576,
5456
5457       576,  576,  576,  576,  576,  576, 1742, 1742, 1742, 1742,
5458      1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742,
5459      1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742,
5460      1742, 1742, 1742, 1742, 1742, 1742, 2238, 2238, 2238, 2238,
5461      2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238,
5462      2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238,
5463      2238, 2238, 2238, 2238, 2238, 2238, 2240, 2240, 2240, 2240,
5464      2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240,
5465      2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240,
5466      2240, 2240, 2240, 2240, 2240, 2240, 1749, 1749, 1749, 1749,
5467
5468      1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749,
5469      1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749,
5470      1749, 1749, 1749, 1749, 1749, 1749, 2244, 2244, 2244, 2244,
5471      2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244,
5472      2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244,
5473      2244, 2244, 2244, 2244, 2244, 2244, 1755, 1755, 1755, 1755,
5474      1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755,
5475      1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755,
5476      1755, 1755, 1755, 1755, 1755, 1755, 2248, 2248, 2248, 2248,
5477      2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248,
5478
5479      2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248,
5480      2248, 2248, 2248, 2248, 2248, 2248, 1757, 1757, 1757, 1757,
5481      1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757,
5482      1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757,
5483      1757, 1757, 1757, 1757, 1757, 1757, 2249, 2249, 2249, 2249,
5484      2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249,
5485      2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249,
5486      2249, 2249, 2249, 2249, 2249, 2249,  621,  621,  621,  621,
5487      3491, 3491, 3491,  621,  621, 3491,  621, 3491, 3491, 3491,
5488       621,  621,  621,  621, 3491,  621,  621, 3491,  621,  621,
5489
5490       621, 3491, 3491, 3491,  621, 1766, 1766, 1766, 1766, 3491,
5491      1766, 3491, 3491, 1766, 3491, 3491, 3491, 3491, 3491, 1766,
5492      1766, 3491, 3491, 3491, 1766, 1766, 3491, 1766, 3491, 1766,
5493      3491, 3491, 1766, 1766, 1181, 1181, 1181, 1181, 3491, 1181,
5494      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
5495      3491, 3491, 3491, 1181, 1181, 3491, 3491, 3491, 1181, 3491,
5496      3491, 1181, 1181, 1771, 1771, 1771, 1771, 3491, 1771, 3491,
5497      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
5498      3491, 3491, 1771, 1771, 3491, 3491, 3491, 1771, 3491, 3491,
5499      3491, 1771, 2256, 3491, 3491, 2256, 3491, 2256, 3491, 3491,
5500
5501      2256, 3491, 3491, 3491, 3491, 3491, 2256, 2256, 3491, 3491,
5502      3491, 2256, 2256, 3491, 2256, 3491, 2256, 3491, 3491, 2256,
5503      2256, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808,
5504      1808, 1808, 1808, 1808, 1808, 1808, 3491, 1808, 1808, 1808,
5505      1808, 3491, 3491, 1808, 1808, 1808, 3491, 1808, 1808, 1808,
5506      1808, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233,
5507      1233, 1233, 1233, 1233, 1233, 1233, 3491, 1233, 1233, 1233,
5508      1233, 3491, 3491, 1233, 1233, 1233, 3491, 1233, 1233, 1233,
5509      1233, 2281, 2281, 2281, 2281, 3491, 2281, 3491, 3491, 3491,
5510      3491, 3491, 3491, 3491, 3491, 3491, 2281, 3491, 3491, 3491,
5511
5512      2281, 2281, 3491, 2281, 3491, 2281, 3491, 3491, 2281, 2281,
5513      2285, 3491, 2285, 2285, 3491, 2285, 2285, 2285, 2285, 3491,
5514      2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285,
5515      2285, 2285, 2285, 3491, 2285, 2285, 2285, 2285, 2285, 2285,
5516      1795, 1795, 3491, 1795, 1795, 3491, 1795, 1795, 1795, 1795,
5517      1795, 1795, 1795, 1795, 3491, 1795, 1795, 1795, 1795, 1795,
5518      1795, 1795, 1795, 1795, 1795, 1795, 3491, 1795, 1795, 1795,
5519      1796, 1796, 3491, 1796, 1796, 3491, 1796, 1796, 3491, 3491,
5520      1796, 1796, 1796, 1796, 3491, 1796, 1796, 1796, 1796, 1796,
5521      1796, 1796, 1796, 1796, 1796, 1796, 3491, 3491, 1796, 1796,
5522
5523       632,  632,  632,  632, 3491,  632, 3491, 3491, 3491, 3491,
5524      3491, 3491, 3491, 3491, 3491,  632, 3491, 3491, 3491,  632,
5525       632, 3491,  632, 3491,  632, 3491, 3491,  632,  632, 1800,
5526      1800, 1800, 1800, 3491, 3491, 3491, 1800, 3491, 3491, 3491,
5527      3491, 3491, 3491, 1800, 1800, 3491, 1800, 3491, 1800, 1800,
5528      3491, 1800, 3491, 1800, 3491, 3491, 3491, 1800, 1804, 1804,
5529      1804, 1804, 3491, 1804, 3491, 3491, 3491, 3491, 3491, 3491,
5530      3491, 3491, 3491, 3491, 3491, 3491, 3491, 1804, 1804, 3491,
5531      3491, 3491, 1804, 3491, 3491, 3491, 1804, 2291, 2291, 2291,
5532      2291, 3491, 3491, 3491, 2291, 3491, 3491, 3491, 3491, 3491,
5533
5534      3491, 2291, 3491, 3491, 3491, 3491, 2291, 2291, 3491, 3491,
5535      3491, 2291, 3491, 3491, 3491, 2291, 1199, 1199, 3491, 1199,
5536      1199, 3491, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199,
5537      3491, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199,
5538      1199, 1199, 3491, 1199, 1199, 1199,  596,  596,  596,  596,
5539      3491,  596, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
5540      3491,  596, 3491, 3491, 3491,  596,  596, 3491,  596, 3491,
5541       596, 3491, 3491,  596,  596,  728, 3491, 3491,  728, 3491,
5542      3491, 3491,  728, 3491, 3491, 3491,  728,  728, 3491,  728,
5543       728, 3491,  728, 3491,  728,  728, 3491, 3491, 3491,  728,
5544
5545      3491, 3491, 3491,  728, 1895, 3491, 3491, 1895, 3491, 1895,
5546      3491, 3491, 1895, 3491, 3491, 3491, 3491, 3491, 1895, 3491,
5547      3491, 3491, 3491, 1895, 1895, 3491, 3491, 3491, 1895, 3491,
5548      3491, 3491, 1895, 1917, 1917, 1917, 1917, 1917, 1917, 1917,
5549      1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 3491, 1917,
5550      1917, 1917, 1917, 3491, 3491, 1917, 1917, 1917, 3491, 1917,
5551      1917, 1917, 1917, 1346, 1346, 1346, 1346, 1346, 1346, 1346,
5552      1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 3491, 1346,
5553      1346, 1346, 1346, 3491, 3491, 1346, 1346, 1346, 3491, 1346,
5554      1346, 1346, 1346, 1913, 3491, 3491, 1913, 3491, 1913, 3491,
5555
5556      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
5557      3491, 3491, 1913, 1913, 3491, 3491, 3491, 1913, 3491, 3491,
5558      3491, 1913, 2377, 3491, 3491, 2377, 3491, 3491, 3491, 3491,
5559      3491, 3491, 3491, 3491, 3491, 3491, 2377, 2377, 3491, 2377,
5560      3491, 2377, 2377, 3491, 3491, 3491, 2377, 3491, 3491, 3491,
5561      2377, 1330, 1330, 3491, 1330, 1330, 1330, 1330, 1330, 3491,
5562      3491, 1330, 1330, 1330, 1330, 1330, 1330, 1330, 1330, 3491,
5563      1330, 1330, 1330, 3491, 1330, 3491, 1330, 3491, 3491, 1330,
5564      1330, 1987, 1987, 1987, 1987, 3491, 3491, 3491, 1987, 3491,
5565      3491, 3491, 3491, 3491, 3491, 1987, 1987, 3491, 1987, 3491,
5566
5567      1987, 1987, 3491, 1987, 3491, 1987, 3491, 3491, 3491, 1987,
5568      1990, 1990, 1990, 1990, 3491, 1990, 3491, 3491, 3491, 3491,
5569      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 1990,
5570      1990, 3491, 3491, 3491, 1990, 3491, 3491, 3491, 1990, 2434,
5571      2434, 2434, 2434, 3491, 3491, 3491, 2434, 3491, 3491, 3491,
5572      3491, 3491, 3491, 2434, 3491, 3491, 3491, 3491, 2434, 2434,
5573      3491, 3491, 3491, 2434, 3491, 3491, 3491, 2434,  818,  818,
5574      3491,  818, 3491, 3491, 3491,  818, 3491, 3491, 3491,  818,
5575       818, 3491,  818,  818, 3491,  818, 3491,  818,  818, 3491,
5576      3491, 3491,  818, 3491, 3491, 3491,  818, 2058, 3491, 3491,
5577
5578      3491, 3491, 3491, 2058, 3491, 3491, 3491, 3491, 2058, 2058,
5579      3491, 3491, 3491, 2058, 3491, 3491, 3491, 2058, 2485, 2485,
5580      3491, 3491, 3491, 2485, 2485, 3491, 3491, 3491, 2485, 3491,
5581      3491, 3491, 2485, 2061, 3491, 3491, 3491, 3491, 2061, 2061,
5582      3491, 2061, 3491, 2061, 3491, 3491, 3491, 2061,  891, 3491,
5583      3491,  891, 3491, 3491, 3491,  891, 3491, 3491, 3491, 3491,
5584      3491, 3491,  891,  891, 3491, 3491, 3491,  891,  891, 3491,
5585       891, 3491,  891, 3491, 3491, 3491,  891, 2063, 3491, 2063,
5586      3491, 3491, 3491, 3491, 2063, 2063, 3491, 3491, 3491, 2063,
5587      3491, 3491, 3491, 2063,  905, 3491, 3491, 3491, 3491,  905,
5588
5589       905, 3491, 3491, 3491,  905, 3491, 3491, 3491,  905,  914,
5590       914, 3491, 3491, 3491,  914,  914, 3491,  914, 3491,  914,
5591      3491, 3491, 3491,  914, 1531, 3491, 3491, 3491, 3491, 1531,
5592      1531, 3491, 3491, 3491, 1531, 3491, 3491, 3491, 1531,  927,
5593       927, 3491,  927,  927,  927,  927,  927,  927,  927,  927,
5594       927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
5595       927,  927,  927,  927,  927,  927,  927,  927,  927, 2084,
5596      2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084,
5597      2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084,
5598      2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 1689,
5599
5600      1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689,
5601      1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689,
5602      1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 2502,
5603      2502, 2502, 2502, 2502, 2502, 2502, 2502, 2502, 2502, 2502,
5604      2502, 2502, 2502, 2502, 2502, 2502, 2502, 2502, 2502, 2502,
5605      2502, 2502, 2502, 2502, 2502, 2502, 2502, 2502, 2502, 2504,
5606      2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504,
5607      2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504,
5608      2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2091,
5609      2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091,
5610
5611      2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091,
5612      2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 1695,
5613      1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695,
5614      1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695,
5615      1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 2506,
5616      2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506,
5617      2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506,
5618      2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2521,
5619      2521, 2521, 2521, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
5620      3491, 3491, 3491, 2521, 2521, 3491, 2521, 3491, 2521, 2521,
5621
5622      3491, 2521, 3491, 2521, 3491, 3491, 3491, 2521,  961,  961,
5623       961,  961, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
5624      3491, 3491,  961,  961, 3491,  961, 3491,  961,  961, 3491,
5625       961, 3491,  961, 3491, 3491, 3491,  961,  998, 3491, 3491,
5626      3491, 3491,  998,  998, 3491, 3491, 3491,  998, 3491, 3491,
5627      3491,  998, 1006, 3491, 3491, 1006, 3491, 3491, 3491, 3491,
5628      3491, 3491, 3491, 3491, 3491, 3491, 1006, 3491, 3491, 3491,
5629      3491, 1006, 1006, 3491, 3491, 3491, 1006, 3491, 3491, 3491,
5630      1006, 1028, 3491, 3491, 3491, 3491, 1028, 1028, 3491, 3491,
5631      3491, 1028, 3491, 3491, 3491, 1028, 2560, 2560, 3491, 2560,
5632
5633      3491, 2560, 2560, 2560, 2560, 2560, 2560, 2560, 2560, 2560,
5634      2560, 2560, 2560, 2560, 2560, 2560, 2560, 2560, 2560, 3491,
5635      2560, 2560, 2560, 2560, 2560, 2560, 1055, 1055, 3491, 1055,
5636      1055, 3491, 3491, 1055, 1055, 1055, 1055, 1055, 1055, 1055,
5637      1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 3491,
5638      1055, 1055, 1055, 1055, 1055, 1055, 2163, 2163, 2163, 2163,
5639      2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163,
5640      2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163,
5641      2163, 2163, 2163, 2163, 2163, 2163, 2563, 2563, 2563, 2563,
5642      2563, 2563, 2563, 2563, 2563, 2563, 2563, 2563, 2563, 2563,
5643
5644      2563, 2563, 2563, 2563, 2563, 2563, 2563, 2563, 2563, 2563,
5645      2563, 2563, 2563, 2563, 2563, 2563, 2564, 2564, 2564, 2564,
5646      2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564,
5647      2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564,
5648      2564, 2564, 2564, 2564, 2564, 2564, 2168, 2168, 2168, 2168,
5649      2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168,
5650      2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168,
5651      2168, 2168, 2168, 2168, 2168, 2168, 2565, 2565, 2565, 2565,
5652      2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565,
5653      2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565,
5654
5655      2565, 2565, 2565, 2565, 2565, 2565, 1068, 3491, 3491, 3491,
5656      3491, 1068, 1068, 3491, 3491, 3491, 1068, 3491, 3491, 3491,
5657      1068, 2579, 2579, 3491, 3491, 3491, 2579, 2579, 3491, 3491,
5658      3491, 2579, 3491, 3491, 3491, 2579, 2580, 2580, 2580, 2580,
5659      2580, 2580, 2580, 2580, 2580, 2580, 2580, 2580, 2580, 2580,
5660      2580, 2580, 2580, 2580, 2580, 2580, 2580, 2580, 2580, 2580,
5661      2580, 2580, 2580, 2580, 2580, 2580, 1092, 1092, 1092, 1092,
5662      1092, 1092, 1092, 1092, 1092, 3491, 1092, 1092, 1092, 1092,
5663      1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092,
5664      1092, 1092, 1092, 1092, 1092, 1092, 2582, 2582, 2582, 2582,
5665
5666      2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582,
5667      2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582,
5668      2582, 2582, 2582, 2582, 2582, 2582, 2585, 3491, 2585, 2585,
5669      3491, 2585, 2585, 2585, 3491, 3491, 2585, 2585, 2585, 2585,
5670      2585, 2585, 2585, 2585, 2585, 2585, 2585, 2585, 2585, 3491,
5671      2585, 2585, 2585, 2585, 2585, 2585, 2197, 2197, 2197, 2197,
5672      2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197,
5673      2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197,
5674      2197, 2197, 2197, 2197, 2197, 2197, 2588, 2588, 2588, 2588,
5675      2588, 2588, 2588, 2588, 2588, 2588, 2588, 2588, 2588, 2588,
5676
5677      2588, 2588, 2588, 2588, 2588, 2588, 2588, 2588, 2588, 2588,
5678      2588, 2588, 2588, 2588, 2588, 2588, 2589, 2589, 2589, 2589,
5679      2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589,
5680      2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589,
5681      2589, 2589, 2589, 2589, 2589, 2589, 2203, 2203, 2203, 2203,
5682      2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203,
5683      2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203,
5684      2203, 2203, 2203, 2203, 2203, 2203, 2591, 2591, 2591, 2591,
5685      2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591,
5686      2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591,
5687
5688      2591, 2591, 2591, 2591, 2591, 2591, 2208, 2208, 2208, 2208,
5689      2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208,
5690      2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208,
5691      2208, 2208, 2208, 2208, 2208, 2208, 2595, 2595, 2595, 2595,
5692      2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595,
5693      2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595,
5694      2595, 2595, 2595, 2595, 2595, 2595, 2213, 2213, 2213, 2213,
5695      2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
5696      2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
5697      2213, 2213, 2213, 2213, 2213, 2213, 2215, 2215, 2215, 2215,
5698
5699      2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215,
5700      2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215,
5701      2215, 2215, 2215, 2215, 2215, 2215,  530,  530, 3491, 3491,
5702       530, 3491,  530,  530,  530,  530,  530,  530,  530,  530,
5703       530,  530,  530,  530,  530,  530,  530,  530,  530, 3491,
5704       530,  530,  530,  530,  530,  530, 2219, 2219, 2219, 2219,
5705      2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219,
5706      2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219,
5707      2219, 2219, 2219, 2219, 2219, 2219, 2220, 2220, 2220, 2220,
5708      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
5709
5710      2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220,
5711      2220, 2220, 2220, 2220, 2220, 2220,  539,  539, 3491, 3491,
5712       539,  539,  539, 3491,  539,  539,  539,  539,  539,  539,
5713       539,  539,  539,  539,  539,  539,  539,  539,  539, 3491,
5714       539,  539,  539,  539,  539,  539, 2223, 2223, 2223, 2223,
5715      2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223,
5716      2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223,
5717      2223, 2223, 2223, 2223, 2223, 2223, 2224, 2224, 2224, 2224,
5718      2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224,
5719      2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224,
5720
5721      2224, 2224, 2224, 2224, 2224, 2224,  547,  547, 3491,  547,
5722       547, 3491,  547,  547,  547,  547,  547,  547,  547,  547,
5723       547,  547,  547,  547,  547,  547,  547,  547,  547,  547,
5724       547,  547,  547,  547,  547,  547, 2227, 2227, 2227, 2227,
5725      2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227,
5726      2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227,
5727      2227, 2227, 2227, 2227, 2227, 2227, 2228, 2228, 2228, 2228,
5728      2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228,
5729      2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228,
5730      2228, 2228, 2228, 2228, 2228, 2228,  556,  556,  556,  556,
5731
5732       556,  556,  556,  556,  556,  556,  556,  556,  556,  556,
5733       556,  556,  556,  556,  556,  556,  556,  556,  556,  556,
5734       556,  556,  556,  556,  556,  556, 2232, 2232, 2232, 2232,
5735      2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232,
5736      2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232,
5737      2232, 2232, 2232, 2232, 2232, 2232, 2601, 2601, 2601, 2601,
5738      2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601,
5739      2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601,
5740      2601, 2601, 2601, 2601, 2601, 2601,  576,  576, 3491, 3491,
5741       576,  576,  576,  576,  576,  576,  576,  576,  576,  576,
5742
5743       576,  576,  576,  576,  576,  576,  576,  576,  576,  576,
5744       576,  576,  576,  576,  576,  576, 1689, 1689, 1689, 1689,
5745      1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689,
5746      1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689,
5747      1689, 1689, 1689, 1689, 1689, 1689, 2240, 2240, 2240, 2240,
5748      2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240,
5749      2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240,
5750      2240, 2240, 2240, 2240, 2240, 2240, 1695, 1695, 1695, 1695,
5751      1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695,
5752      1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695,
5753
5754      1695, 1695, 1695, 1695, 1695, 1695, 2244, 2244, 2244, 2244,
5755      2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244,
5756      2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244,
5757      2244, 2244, 2244, 2244, 2244, 2244, 2248, 2248, 2248, 2248,
5758      2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248,
5759      2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248,
5760      2248, 2248, 2248, 2248, 2248, 2248, 2249, 2249, 2249, 2249,
5761      2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249,
5762      2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249,
5763      2249, 2249, 2249, 2249, 2249, 2249,  621,  621,  621,  621,
5764
5765      3491, 3491, 3491,  621,  621, 3491,  621,  621,  621, 3491,
5766       621,  621,  621,  621, 3491,  621,  621, 3491,  621,  621,
5767       621, 3491, 3491, 3491,  621, 1181, 1181, 1181, 1181, 3491,
5768      1181, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
5769      3491, 3491, 3491, 3491, 1181, 1181, 3491, 3491, 3491, 1181,
5770      3491, 3491, 1181, 1181, 2256, 3491, 3491, 2256, 3491, 2256,
5771      3491, 3491, 2256, 3491, 3491, 3491, 3491, 3491, 2256, 2256,
5772      3491, 3491, 3491, 2256, 2256, 3491, 2256, 3491, 2256, 3491,
5773      3491, 2256, 2256, 1766, 1766, 1766, 1766, 3491, 1766, 3491,
5774      3491, 1766, 3491, 3491, 3491, 3491, 3491, 1766, 1766, 3491,
5775
5776      3491, 3491, 1766, 1766, 3491, 1766, 3491, 1766, 3491, 3491,
5777      1766, 1766, 2634, 2634, 2634, 2634, 3491, 2634, 3491, 3491,
5778      3491, 3491, 3491, 3491, 3491, 3491, 3491, 2634, 3491, 3491,
5779      3491, 2634, 2634, 3491, 2634, 3491, 2634, 3491, 3491, 2634,
5780      2634, 2281, 2281, 2281, 2281, 3491, 2281, 3491, 3491, 3491,
5781      3491, 3491, 3491, 3491, 3491, 3491, 2281, 3491, 3491, 3491,
5782      2281, 2281, 3491, 2281, 3491, 2281, 3491, 3491, 2281, 2281,
5783      2637, 2637, 2637, 2637, 3491, 3491, 3491, 2637, 3491, 3491,
5784      3491, 3491, 3491, 3491, 2637, 2637, 3491, 2637, 3491, 2637,
5785      2637, 3491, 2637, 3491, 2637, 3491, 3491, 3491, 2637, 2642,
5786
5787      3491, 2642, 2642, 3491, 2642, 2642, 2642, 2642, 3491, 2642,
5788      2642, 2642, 2642, 2642, 2642, 2642, 2642, 2642, 2642, 2642,
5789      2642, 2642, 3491, 2642, 2642, 2642, 2642, 2642, 2642, 2291,
5790      2291, 2291, 2291, 3491, 3491, 3491, 2291, 3491, 3491, 3491,
5791      3491, 3491, 3491, 2291, 3491, 3491, 3491, 3491, 2291, 2291,
5792      3491, 3491, 3491, 2291, 3491, 3491, 3491, 2291,  728, 3491,
5793      3491,  728, 3491, 3491, 3491,  728, 3491, 3491, 3491,  728,
5794       728, 3491,  728,  728, 3491,  728, 3491,  728,  728, 3491,
5795      3491, 3491,  728, 3491, 3491, 3491,  728, 2377, 3491, 3491,
5796      2377, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
5797
5798      3491, 2377, 2377, 3491, 2377, 3491, 2377, 2377, 3491, 3491,
5799      3491, 2377, 3491, 3491, 3491, 2377, 2434, 2434, 2434, 2434,
5800      3491, 3491, 3491, 2434, 3491, 3491, 3491, 3491, 3491, 3491,
5801      2434, 3491, 3491, 3491, 3491, 2434, 2434, 3491, 3491, 3491,
5802      2434, 3491, 3491, 3491, 2434,  818,  818, 3491,  818, 3491,
5803      3491, 3491,  818, 3491, 3491, 3491,  818,  818, 3491,  818,
5804       818, 3491,  818, 3491,  818,  818, 3491, 3491, 3491,  818,
5805      3491, 3491, 3491,  818, 2485, 2485, 3491, 3491, 3491, 2485,
5806      2485, 3491, 3491, 3491, 2485, 3491, 3491, 3491, 2485,  891,
5807      3491, 3491,  891, 3491, 3491, 3491,  891, 3491, 3491, 3491,
5808
5809      3491, 3491, 3491,  891,  891, 3491, 3491, 3491,  891,  891,
5810      3491,  891, 3491,  891, 3491, 3491, 3491,  891,  905, 3491,
5811      3491, 3491, 3491,  905,  905, 3491, 3491, 3491,  905, 3491,
5812      3491, 3491,  905,  914,  914, 3491, 3491, 3491,  914,  914,
5813      3491,  914, 3491,  914, 3491, 3491, 3491,  914, 1531, 3491,
5814      3491, 3491, 3491, 1531, 1531, 3491, 3491, 3491, 1531, 3491,
5815      3491, 3491, 1531,  927,  927, 3491,  927,  927,  927,  927,
5816       927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
5817       927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
5818       927,  927,  927, 2504, 2504, 2504, 2504, 2504, 2504, 2504,
5819
5820      2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504,
5821      2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504,
5822      2504, 2504, 2504, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
5823      2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
5824      2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
5825      2213, 2213, 2213, 2506, 2506, 2506, 2506, 2506, 2506, 2506,
5826      2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506,
5827      2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506,
5828      2506, 2506, 2506, 2215, 2215, 2215, 2215, 2215, 2215, 2215,
5829      2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215,
5830
5831      2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215,
5832      2215, 2215, 2215, 2521, 2521, 2521, 2521, 3491, 3491, 3491,
5833      3491, 3491, 3491, 3491, 3491, 3491, 3491, 2521, 2521, 3491,
5834      2521, 3491, 2521, 2521, 3491, 2521, 3491, 2521, 3491, 3491,
5835      3491, 2521, 2797, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
5836      3491, 3491, 3491, 3491, 3491, 3491, 2797, 2797, 3491, 3491,
5837      3491, 2797, 3491, 3491, 3491, 2797,  961,  961,  961,  961,
5838      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
5839       961,  961, 3491,  961, 3491,  961,  961, 3491,  961, 3491,
5840       961, 3491, 3491, 3491,  961,  998,  998,  998,  998, 3491,
5841
5842      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,  998,
5843      3491,  998, 3491,  998,  998,  998, 3491, 3491, 3491,  998,
5844       998, 3491, 3491,  998, 1006, 3491, 3491, 3491, 3491, 1006,
5845      1006, 3491, 3491, 3491, 1006, 3491, 3491, 3491, 1006, 1028,
5846      3491, 3491, 3491, 3491, 1028, 1028, 3491, 3491, 3491, 1028,
5847      3491, 3491, 3491, 1028, 1055, 1055, 3491, 1055, 1055, 3491,
5848      3491, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055,
5849      1055, 1055, 1055, 1055, 1055, 1055, 1055, 3491, 1055, 1055,
5850      1055, 1055, 1055, 1055, 2564, 2564, 2564, 2564, 2564, 2564,
5851      2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564,
5852
5853      2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564,
5854      2564, 2564, 2564, 2564, 2565, 2565, 2565, 2565, 2565, 2565,
5855      2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565,
5856      2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565,
5857      2565, 2565, 2565, 2565, 1068, 3491, 3491, 3491, 3491, 1068,
5858      1068, 3491, 3491, 3491, 1068, 3491, 3491, 3491, 1068, 2579,
5859      2579, 3491, 3491, 3491, 2579, 2579, 3491, 3491, 3491, 2579,
5860      3491, 3491, 3491, 2579, 1092, 1092, 1092, 1092, 1092, 1092,
5861      1092, 1092, 1092, 3491, 1092, 1092, 1092, 1092, 1092, 1092,
5862      1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092,
5863
5864      1092, 1092, 1092, 1092, 2582, 2582, 2582, 2582, 2582, 2582,
5865      2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582,
5866      2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582,
5867      2582, 2582, 2582, 2582, 2838, 2838, 2838, 2838, 2838, 2838,
5868      2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838,
5869      2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838,
5870      2838, 2838, 2838, 2838, 2840, 3491, 2840, 2840, 3491, 2840,
5871      2840, 2840, 3491, 3491, 2840, 2840, 2840, 2840, 2840, 2840,
5872      2840, 2840, 2840, 2840, 2840, 2840, 2840, 3491, 2840, 2840,
5873      2840, 2840, 2840, 2840, 2589, 2589, 2589, 2589, 2589, 2589,
5874
5875      2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589,
5876      2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589,
5877      2589, 2589, 2589, 2589, 2591, 2591, 2591, 2591, 2591, 2591,
5878      2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591,
5879      2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591,
5880      2591, 2591, 2591, 2591, 2595, 2595, 2595, 2595, 2595, 2595,
5881      2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595,
5882      2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595,
5883      2595, 2595, 2595, 2595,  530,  530, 3491, 3491,  530, 3491,
5884       530,  530,  530,  530,  530,  530,  530,  530,  530,  530,
5885
5886       530,  530,  530,  530,  530,  530,  530, 3491,  530,  530,
5887       530,  530,  530,  530,  539,  539, 3491, 3491,  539,  539,
5888       539, 3491,  539,  539,  539,  539,  539,  539,  539,  539,
5889       539,  539,  539,  539,  539,  539,  539, 3491,  539,  539,
5890       539,  539,  539,  539,  547,  547, 3491,  547,  547, 3491,
5891       547,  547,  547,  547,  547,  547,  547,  547,  547,  547,
5892       547,  547,  547,  547,  547,  547,  547,  547,  547,  547,
5893       547,  547,  547,  547, 2601, 2601, 2601, 2601, 2601, 2601,
5894      2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601,
5895      2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601,
5896
5897      2601, 2601, 2601, 2601,  576,  576, 3491, 3491,  576,  576,
5898       576,  576,  576,  576,  576,  576,  576,  576,  576,  576,
5899       576,  576,  576,  576,  576,  576,  576,  576,  576,  576,
5900       576,  576,  576,  576, 2213, 2213, 2213, 2213, 2213, 2213,
5901      2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
5902      2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213,
5903      2213, 2213, 2213, 2213, 2215, 2215, 2215, 2215, 2215, 2215,
5904      2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215,
5905      2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215,
5906      2215, 2215, 2215, 2215, 2849, 2849, 2849, 2849, 2849, 2849,
5907
5908      2849, 2849, 2849, 2849, 3491, 2849, 2849, 2849, 3491, 2849,
5909      2849, 2849, 2849, 2849, 2849, 2849, 2849, 2849, 2849, 2849,
5910      2849, 2849, 2849, 2849, 1181, 1181, 1181, 1181, 3491, 1181,
5911      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
5912      3491, 3491, 3491, 1181, 1181, 3491, 3491, 3491, 1181, 3491,
5913      3491, 1181, 1181, 1808, 1808, 1808, 1808, 1808, 1808, 1808,
5914      1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 3491, 1808,
5915      1808, 1808, 1808, 3491, 3491, 1808, 1808, 1808, 3491, 1808,
5916      1808, 1808, 1808, 2865, 2865, 2865, 2865, 3491, 3491, 3491,
5917      2865, 3491, 3491, 3491, 3491, 3491, 3491, 2865, 2865, 3491,
5918
5919      2865, 3491, 2865, 2865, 3491, 2865, 3491, 2865, 3491, 3491,
5920      3491, 2865, 2637, 2637, 2637, 2637, 3491, 3491, 3491, 2637,
5921      3491, 3491, 3491, 3491, 3491, 3491, 2637, 2637, 3491, 2637,
5922      3491, 2637, 2637, 3491, 2637, 3491, 2637, 3491, 3491, 3491,
5923      2637, 1201, 1201, 3491, 1201, 1201, 3491, 1201, 1201, 3491,
5924      3491, 1201, 1201, 1201, 1201, 3491, 1201, 1201, 1201, 1201,
5925      1201, 1201, 1201, 1201, 1201, 1201, 1201, 3491, 3491, 1201,
5926      1201,  621,  621,  621,  621, 3491, 3491, 3491,  621,  621,
5927      3491,  621, 3491, 3491, 3491,  621,  621,  621,  621, 3491,
5928       621,  621, 3491,  621,  621,  621, 3491, 3491, 3491,  621,
5929
5930      2870, 3491, 2870, 2870, 3491, 2870, 2870, 2870, 2870, 3491,
5931      2870, 2870, 2870, 2870, 2870, 2870, 2870, 2870, 2870, 2870,
5932      2870, 2870, 2870, 3491, 2870, 2870, 2870, 2870, 2870, 2870,
5933      2872, 2872, 2872, 2872, 3491, 2872, 3491, 3491, 3491, 3491,
5934      3491, 3491, 3491, 3491, 3491, 2872, 3491, 3491, 3491, 2872,
5935      2872, 3491, 2872, 3491, 2872, 3491, 3491, 2872, 2872,  728,
5936      3491, 3491,  728, 3491, 3491, 3491,  728, 3491, 3491, 3491,
5937       728,  728, 3491,  728,  728, 3491,  728, 3491,  728,  728,
5938      3491, 3491, 3491,  728, 3491, 3491, 3491,  728,  818,  818,
5939      3491,  818, 3491, 3491, 3491,  818, 3491, 3491, 3491,  818,
5940
5941       818, 3491,  818,  818, 3491,  818, 3491,  818,  818, 3491,
5942      3491, 3491,  818, 3491, 3491, 3491,  818,  891, 3491, 3491,
5943       891, 3491, 3491, 3491,  891, 3491, 3491, 3491, 3491, 3491,
5944      3491,  891,  891, 3491, 3491, 3491,  891,  891, 3491,  891,
5945      3491,  891, 3491, 3491, 3491,  891,  905, 3491, 3491, 3491,
5946      3491,  905,  905, 3491, 3491, 3491,  905, 3491, 3491, 3491,
5947       905,  914,  914, 3491, 3491, 3491,  914,  914, 3491,  914,
5948      3491,  914, 3491, 3491, 3491,  914, 1531, 3491, 3491, 3491,
5949      3491, 1531, 1531, 3491, 3491, 3491, 1531, 3491, 3491, 3491,
5950      1531,  927,  927, 3491,  927,  927,  927,  927,  927,  927,
5951
5952       927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
5953       927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
5954       927, 2980, 3491, 3491, 2980, 3491, 3491, 3491, 3491, 3491,
5955      3491, 3491, 3491, 3491, 3491, 2980, 2980, 3491, 3491, 3491,
5956      2980, 2980, 3491, 3491, 3491, 2980, 3491, 3491, 3491, 2980,
5957       961,  961,  961,  961, 3491, 3491, 3491, 3491, 3491, 3491,
5958      3491, 3491, 3491, 3491,  961,  961, 3491,  961, 3491,  961,
5959       961, 3491,  961, 3491,  961, 3491, 3491, 3491,  961,  998,
5960      3491, 3491, 3491, 3491,  998,  998, 3491, 3491, 3491,  998,
5961      3491, 3491, 3491,  998, 1006, 3491, 3491, 3491, 3491, 1006,
5962
5963      1006, 3491, 3491, 3491, 1006, 3491, 3491, 3491, 1006, 1028,
5964      3491, 3491, 3491, 3491, 1028, 1028, 3491, 3491, 3491, 1028,
5965      3491, 3491, 3491, 1028, 1055, 1055, 3491, 1055, 1055, 3491,
5966      3491, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055,
5967      1055, 1055, 1055, 1055, 1055, 1055, 1055, 3491, 1055, 1055,
5968      1055, 1055, 1055, 1055, 1068, 3491, 3491, 3491, 3491, 1068,
5969      1068, 3491, 3491, 3491, 1068, 3491, 3491, 3491, 1068, 1092,
5970      1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 3491, 1092,
5971      1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092,
5972      1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 2838,
5973
5974      2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838,
5975      2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838,
5976      2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 3005,
5977      3491, 3005, 3005, 3491, 3005, 3005, 3005, 3491, 3491, 3005,
5978      3005, 3005, 3005, 3005, 3005, 3005, 3005, 3005, 3005, 3005,
5979      3005, 3005, 3491, 3005, 3005, 3005, 3005, 3005, 3005, 3008,
5980      3008, 3491, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008,
5981      3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008,
5982      3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3010,
5983      3010, 3491, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010,
5984
5985      3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010,
5986      3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3012,
5987      3012, 3491, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012,
5988      3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012,
5989      3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3014,
5990      3014, 3491, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014,
5991      3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014,
5992      3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3016,
5993      3016, 3491, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016,
5994      3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016,
5995
5996      3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3024,
5997      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3024,
5998      3491, 3491, 3491, 3024, 3024, 3491, 3024, 3491, 3024, 3491,
5999      3491, 3024, 3024, 2865, 2865, 2865, 2865, 3491, 3491, 3491,
6000      2865, 3491, 3491, 3491, 3491, 3491, 3491, 2865, 2865, 3491,
6001      2865, 3491, 2865, 2865, 3491, 2865, 3491, 2865, 3491, 3491,
6002      3491, 2865, 2637, 2637, 2637, 2637, 3491, 3491, 3491, 2637,
6003      3491, 3491, 3491, 3491, 3491, 3491, 2637, 2637, 3491, 2637,
6004      3491, 2637, 2637, 3491, 2637, 3491, 2637, 3491, 3491, 3491,
6005      2637,  621,  621,  621,  621, 3491, 3491, 3491,  621,  621,
6006
6007      3491,  621, 3491, 3491, 3491,  621,  621,  621,  621, 3491,
6008       621,  621, 3491,  621,  621,  621, 3491, 3491, 3491,  621,
6009      3040, 3491, 3040, 3040, 3491, 3040, 3040, 3040, 3040, 3491,
6010      3040, 3040, 3040, 3040, 3040, 3040, 3040, 3040, 3040, 3040,
6011      3040, 3040, 3040, 3491, 3040, 3040, 3040, 3040, 3040, 3040,
6012      3042, 3042, 3042, 3042, 3491, 3491, 3491, 3042, 3491, 3491,
6013      3491, 3491, 3491, 3491, 3042, 3042, 3491, 3042, 3491, 3042,
6014      3042, 3491, 3042, 3491, 3042, 3491, 3491, 3491, 3042,  728,
6015      3491, 3491,  728, 3491, 3491, 3491,  728, 3491, 3491, 3491,
6016       728,  728, 3491,  728,  728, 3491,  728, 3491,  728,  728,
6017
6018      3491, 3491, 3491,  728, 3491, 3491, 3491,  728,  818,  818,
6019      3491,  818, 3491, 3491, 3491,  818, 3491, 3491, 3491,  818,
6020       818, 3491,  818,  818, 3491,  818, 3491,  818,  818, 3491,
6021      3491, 3491,  818, 3491, 3491, 3491,  818,  891, 3491, 3491,
6022       891, 3491, 3491, 3491,  891, 3491, 3491, 3491, 3491, 3491,
6023      3491,  891,  891, 3491, 3491, 3491,  891,  891, 3491,  891,
6024      3491,  891, 3491, 3491, 3491,  891,  905, 3491, 3491, 3491,
6025      3491,  905,  905, 3491, 3491, 3491,  905, 3491, 3491, 3491,
6026       905,  914,  914, 3491, 3491, 3491,  914,  914, 3491,  914,
6027      3491,  914, 3491, 3491, 3491,  914, 1531, 3491, 3491, 3491,
6028
6029      3491, 1531, 1531, 3491, 3491, 3491, 1531, 3491, 3491, 3491,
6030      1531, 3118, 3118, 3491, 3118, 3118, 3118, 3118, 3118, 3118,
6031      3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118,
6032      3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118,
6033      3118, 3121, 3121, 3121, 3121, 3121, 3121, 3121, 3121, 3121,
6034      3121, 3121, 3121, 3121, 3121, 3121, 3491, 3121, 3121, 3121,
6035      3121, 3491, 3491, 3121, 3121, 3121, 3121, 3121, 3121, 3121,
6036      3121, 2980, 3491, 3491, 2980, 3491, 3491, 3491, 3491, 3491,
6037      3491, 3491, 3491, 3491, 3491, 2980, 2980, 3491, 3491, 3491,
6038      2980, 2980, 3491, 3491, 3491, 2980, 3491, 3491, 3491, 2980,
6039
6040       961,  961,  961,  961, 3491, 3491, 3491, 3491, 3491, 3491,
6041      3491, 3491, 3491, 3491,  961,  961, 3491,  961, 3491,  961,
6042       961, 3491,  961, 3491,  961, 3491, 3491, 3491,  961,  998,
6043      3491, 3491, 3491, 3491,  998,  998, 3491, 3491, 3491,  998,
6044      3491, 3491, 3491,  998, 1006, 3491, 3491, 3491, 3491, 1006,
6045      1006, 3491, 3491, 3491, 1006, 3491, 3491, 3491, 1006, 1028,
6046      3491, 3491, 3491, 3491, 1028, 1028, 3491, 3491, 3491, 1028,
6047      3491, 3491, 3491, 1028, 3134, 3134, 3491, 3134, 3134, 3134,
6048      3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134,
6049      3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134,
6050
6051      3134, 3134, 3134, 3134, 1068, 3491, 3491, 3491, 3491, 1068,
6052      1068, 3491, 3491, 3491, 1068, 3491, 3491, 3491, 1068, 1092,
6053      1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 3491, 1092,
6054      1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092,
6055      1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 3136,
6056      3491, 3136, 3136, 3491, 3136, 3136, 3136, 3491, 3491, 3136,
6057      3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136,
6058      3136, 3136, 3491, 3136, 3136, 3136, 3136, 3136, 3136, 3138,
6059      3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138,
6060      3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138,
6061
6062      3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3008,
6063      3008, 3491, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008,
6064      3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008,
6065      3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3010,
6066      3010, 3491, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010,
6067      3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010,
6068      3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010,  530,
6069       530, 3491, 3491,  530, 3491,  530,  530,  530,  530,  530,
6070       530,  530,  530,  530,  530,  530,  530,  530,  530,  530,
6071       530,  530, 3491,  530,  530,  530,  530,  530,  530, 3012,
6072
6073      3012, 3491, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012,
6074      3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012,
6075      3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012,  539,
6076       539, 3491, 3491,  539,  539,  539, 3491,  539,  539,  539,
6077       539,  539,  539,  539,  539,  539,  539,  539,  539,  539,
6078       539,  539, 3491,  539,  539,  539,  539,  539,  539, 3014,
6079      3014, 3491, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014,
6080      3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014,
6081      3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014,  547,
6082       547, 3491,  547,  547, 3491,  547,  547,  547,  547,  547,
6083
6084       547,  547,  547,  547,  547,  547,  547,  547,  547,  547,
6085       547,  547,  547,  547,  547,  547,  547,  547,  547, 3016,
6086      3016, 3491, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016,
6087      3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016,
6088      3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016,  576,
6089       576, 3491, 3491,  576,  576,  576,  576,  576,  576,  576,
6090       576,  576,  576,  576,  576,  576,  576,  576,  576,  576,
6091       576,  576,  576,  576,  576,  576,  576,  576,  576, 3150,
6092      3150, 3150, 3150, 3491, 3491, 3491, 3491, 3150, 3491, 3150,
6093      3491, 3491, 3491, 3150, 3150, 3150, 3491, 3491, 3150, 3150,
6094
6095      3491, 3150, 3150, 3150, 3491, 3491, 3491, 3150, 3156, 3156,
6096      3156, 3156, 3491, 3156, 3491, 3491, 3491, 3491, 3491, 3491,
6097      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3156, 3156, 3491,
6098      3491, 3491, 3156, 3491, 3491, 3491, 3156, 2865, 2865, 2865,
6099      2865, 3491, 3491, 3491, 2865, 3491, 3491, 3491, 3491, 3491,
6100      3491, 2865, 2865, 3491, 2865, 3491, 2865, 2865, 3491, 2865,
6101      3491, 2865, 3491, 3491, 3491, 2865, 2637, 2637, 2637, 2637,
6102      3491, 3491, 3491, 2637, 3491, 3491, 3491, 3491, 3491, 3491,
6103      2637, 2637, 3491, 2637, 3491, 2637, 2637, 3491, 2637, 3491,
6104      2637, 3491, 3491, 3491, 2637,  621,  621,  621,  621, 3491,
6105
6106      3491, 3491,  621,  621, 3491,  621, 3491, 3491, 3491,  621,
6107       621,  621,  621, 3491,  621,  621, 3491,  621,  621,  621,
6108      3491, 3491, 3491,  621, 3166, 3491, 3166, 3166, 3491, 3166,
6109      3166, 3166, 3166, 3491, 3166, 3166, 3166, 3166, 3166, 3166,
6110      3166, 3166, 3166, 3166, 3166, 3166, 3166, 3491, 3166, 3166,
6111      3166, 3166, 3166, 3166, 3042, 3042, 3042, 3042, 3491, 3491,
6112      3491, 3042, 3491, 3491, 3491, 3491, 3491, 3491, 3042, 3042,
6113      3491, 3042, 3491, 3042, 3042, 3491, 3042, 3491, 3042, 3491,
6114      3491, 3491, 3042, 3171, 3171, 3491, 3171, 3171, 3491, 3171,
6115      3171, 3171, 3171, 3171, 3171, 3171, 3171, 3491, 3171, 3171,
6116
6117      3171, 3171, 3171, 3171, 3171, 3171, 3171, 3171, 3171, 3491,
6118      3171, 3171, 3171,  596,  596,  596,  596, 3491,  596, 3491,
6119      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,  596, 3491,
6120      3491, 3491,  596,  596, 3491,  596, 3491,  596, 3491, 3491,
6121       596,  596,  728, 3491, 3491,  728, 3491, 3491, 3491,  728,
6122      3491, 3491, 3491,  728,  728, 3491,  728,  728, 3491,  728,
6123      3491,  728,  728, 3491, 3491, 3491,  728, 3491, 3491, 3491,
6124       728, 1330, 1330, 3491, 1330, 1330, 1330, 1330, 1330, 3491,
6125      3491, 1330, 1330, 1330, 1330, 1330, 1330, 1330, 1330, 3491,
6126      1330, 1330, 1330, 3491, 1330, 3491, 1330, 3491, 3491, 1330,
6127
6128      1330,  818,  818, 3491,  818, 3491, 3491, 3491,  818, 3491,
6129      3491, 3491,  818,  818, 3491,  818,  818, 3491,  818, 3491,
6130       818,  818, 3491, 3491, 3491,  818, 3491, 3491, 3491,  818,
6131       891, 3491, 3491,  891, 3491, 3491, 3491,  891, 3491, 3491,
6132      3491, 3491, 3491, 3491,  891,  891, 3491, 3491, 3491,  891,
6133       891, 3491,  891, 3491,  891, 3491, 3491, 3491,  891,  905,
6134      3491, 3491, 3491, 3491,  905,  905, 3491, 3491, 3491,  905,
6135      3491, 3491, 3491,  905,  914,  914, 3491, 3491, 3491,  914,
6136       914, 3491,  914, 3491,  914, 3491, 3491, 3491,  914, 1531,
6137      3491, 3491, 3491, 3491, 1531, 1531, 3491, 3491, 3491, 1531,
6138
6139      3491, 3491, 3491, 1531, 3118, 3118, 3491, 3118, 3118, 3118,
6140      3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118,
6141      3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118,
6142      3118, 3118, 3118, 3118, 3008, 3008, 3491, 3008, 3008, 3008,
6143      3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008,
6144      3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008,
6145      3008, 3008, 3008, 3008,  927,  927, 3491,  927,  927,  927,
6146       927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
6147       927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
6148       927,  927,  927,  927,  998, 3491, 3491, 3491, 3491,  998,
6149
6150       998, 3491, 3491, 3491,  998, 3491, 3491, 3491,  998, 3134,
6151      3134, 3491, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134,
6152      3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134,
6153      3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 1055,
6154      1055, 3491, 1055, 1055, 3491, 3491, 1055, 1055, 1055, 1055,
6155      1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055,
6156      1055, 1055, 3491, 1055, 1055, 1055, 1055, 1055, 1055, 3224,
6157      3491, 3224, 3224, 3491, 3224, 3224, 3224, 3491, 3491, 3224,
6158      3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224,
6159      3224, 3224, 3491, 3224, 3224, 3224, 3224, 3224, 3224, 3138,
6160
6161      3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138,
6162      3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138,
6163      3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 1092,
6164      1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 3491, 1092,
6165      1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092,
6166      1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092,  530,
6167       530, 3491, 3491,  530, 3491,  530,  530,  530,  530,  530,
6168       530,  530,  530,  530,  530,  530,  530,  530,  530,  530,
6169       530,  530, 3491,  530,  530,  530,  530,  530,  530,  539,
6170       539, 3491, 3491,  539,  539,  539, 3491,  539,  539,  539,
6171
6172       539,  539,  539,  539,  539,  539,  539,  539,  539,  539,
6173       539,  539, 3491,  539,  539,  539,  539,  539,  539,  547,
6174       547, 3491,  547,  547, 3491,  547,  547,  547,  547,  547,
6175       547,  547,  547,  547,  547,  547,  547,  547,  547,  547,
6176       547,  547,  547,  547,  547,  547,  547,  547,  547,  576,
6177       576, 3491, 3491,  576,  576,  576,  576,  576,  576,  576,
6178       576,  576,  576,  576,  576,  576,  576,  576,  576,  576,
6179       576,  576,  576,  576,  576,  576,  576,  576,  576, 3150,
6180      3150, 3150, 3150, 3491, 3491, 3491, 3491, 3150, 3491, 3150,
6181      3491, 3491, 3491, 3150, 3150, 3150, 3491, 3491, 3150, 3150,
6182
6183      3491, 3150, 3150, 3150, 3491, 3491, 3491, 3150, 3024, 3024,
6184      3024, 3024, 3491, 3024, 3491, 3491, 3491, 3491, 3491, 3491,
6185      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3024, 3024, 3491,
6186      3491, 3491, 3024, 3491, 3491, 3024, 3024, 3156, 3156, 3156,
6187      3156, 3491, 3156, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
6188      3491, 3491, 3491, 3491, 3491, 3491, 3156, 3156, 3491, 3491,
6189      3491, 3156, 3491, 3491, 3491, 3156, 3235, 3235, 3235, 3235,
6190      3491, 3491, 3491, 3491, 3235, 3491, 3235, 3491, 3491, 3491,
6191      3235, 3491, 3235, 3491, 3491, 3235, 3235, 3491, 3491, 3235,
6192      3235, 3491, 3491, 3491, 3235, 1808, 1808, 1808, 1808, 1808,
6193
6194      1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808,
6195      3491, 1808, 1808, 1808, 1808, 3491, 3491, 1808, 1808, 1808,
6196      3491, 1808, 1808, 1808, 1808, 2865, 2865, 2865, 2865, 3491,
6197      3491, 3491, 2865, 3491, 3491, 3491, 3491, 3491, 3491, 2865,
6198      2865, 3491, 2865, 3491, 2865, 2865, 3491, 2865, 3491, 2865,
6199      3491, 3491, 3491, 2865, 2637, 2637, 2637, 2637, 3491, 3491,
6200      3491, 2637, 3491, 3491, 3491, 3491, 3491, 3491, 2637, 2637,
6201      3491, 2637, 3491, 2637, 2637, 3491, 2637, 3491, 2637, 3491,
6202      3491, 3491, 2637,  621,  621,  621,  621, 3491, 3491, 3491,
6203       621,  621, 3491,  621, 3491, 3491, 3491,  621,  621,  621,
6204
6205       621, 3491,  621,  621, 3491,  621,  621,  621, 3491, 3491,
6206      3491,  621, 3244, 3491, 3244, 3244, 3491, 3244, 3244, 3244,
6207      3244, 3491, 3244, 3244, 3244, 3244, 3244, 3244, 3244, 3244,
6208      3244, 3244, 3244, 3244, 3244, 3491, 3244, 3244, 3244, 3244,
6209      3244, 3244, 3172, 3172, 3491, 3172, 3172, 3491, 3172, 3172,
6210      3172, 3172, 3172, 3172, 3491, 3491, 3491, 3172, 3172, 3172,
6211      3172, 3172, 3172, 3172, 3172, 3172, 3172, 3172, 3491, 3172,
6212      3172, 3172, 3171, 3171, 3491, 3171, 3171, 3491, 3171, 3171,
6213      3171, 3171, 3171, 3171, 3171, 3171, 3491, 3171, 3171, 3171,
6214      3171, 3171, 3171, 3171, 3171, 3171, 3171, 3171, 3491, 3171,
6215
6216      3171, 3171, 3250, 3250, 3491, 3250, 3250, 3250, 3250, 3250,
6217      3250, 3250, 3250, 3250, 3250, 3250, 3250, 3491, 3250, 3250,
6218      3250, 3250, 3491, 3491, 3250, 3250, 3250, 3491, 3250, 3250,
6219      3250, 3250, 3287, 3287, 3491, 3287, 3287, 3491, 3287, 3287,
6220      3287, 3287, 3287, 3287, 3287, 3287, 3491, 3287, 3287, 3287,
6221      3287, 3287, 3287, 3287, 3287, 3287, 3287, 3287, 3491, 3287,
6222      3287, 3287,  728, 3491, 3491,  728, 3491, 3491, 3491,  728,
6223      3491, 3491, 3491,  728,  728, 3491,  728,  728, 3491,  728,
6224      3491,  728,  728, 3491, 3491, 3491,  728, 3491, 3491, 3491,
6225       728,  818,  818, 3491,  818, 3491, 3491, 3491,  818, 3491,
6226
6227      3491, 3491,  818,  818, 3491,  818,  818, 3491,  818, 3491,
6228       818,  818, 3491, 3491, 3491,  818, 3491, 3491, 3491,  818,
6229       891, 3491, 3491,  891, 3491, 3491, 3491,  891, 3491, 3491,
6230      3491, 3491, 3491, 3491,  891,  891, 3491, 3491, 3491,  891,
6231       891, 3491,  891, 3491,  891, 3491, 3491, 3491,  891,  905,
6232      3491, 3491, 3491, 3491,  905,  905, 3491, 3491, 3491,  905,
6233      3491, 3491, 3491,  905, 1531, 3491, 3491, 3491, 3491, 1531,
6234      1531, 3491, 3491, 3491, 1531, 3491, 3491, 3491, 1531,  927,
6235       927, 3491,  927,  927,  927,  927,  927,  927,  927,  927,
6236       927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
6237
6238       927,  927,  927,  927,  927,  927,  927,  927,  927,  998,
6239      3491, 3491, 3491, 3491,  998,  998, 3491, 3491, 3491,  998,
6240      3491, 3491, 3491,  998, 1055, 1055, 3491, 1055, 1055, 3491,
6241      3491, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055,
6242      1055, 1055, 1055, 1055, 1055, 1055, 1055, 3491, 1055, 1055,
6243      1055, 1055, 1055, 1055, 3312, 3491, 3312, 3312, 3491, 3312,
6244      3312, 3312, 3491, 3491, 3312, 3312, 3312, 3312, 3312, 3312,
6245      3312, 3312, 3312, 3312, 3312, 3312, 3312, 3491, 3312, 3312,
6246      3312, 3312, 3312, 3312, 1092, 1092, 1092, 1092, 1092, 1092,
6247      1092, 1092, 1092, 3491, 1092, 1092, 1092, 1092, 1092, 1092,
6248
6249      1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092,
6250      1092, 1092, 1092, 1092,  530,  530, 3491, 3491,  530, 3491,
6251       530,  530,  530,  530,  530,  530,  530,  530,  530,  530,
6252       530,  530,  530,  530,  530,  530,  530, 3491,  530,  530,
6253       530,  530,  530,  530,  539,  539, 3491, 3491,  539,  539,
6254       539, 3491,  539,  539,  539,  539,  539,  539,  539,  539,
6255       539,  539,  539,  539,  539,  539,  539, 3491,  539,  539,
6256       539,  539,  539,  539,  547,  547, 3491,  547,  547, 3491,
6257       547,  547,  547,  547,  547,  547,  547,  547,  547,  547,
6258       547,  547,  547,  547,  547,  547,  547,  547,  547,  547,
6259
6260       547,  547,  547,  547,  576,  576, 3491, 3491,  576,  576,
6261       576,  576,  576,  576,  576,  576,  576,  576,  576,  576,
6262       576,  576,  576,  576,  576,  576,  576,  576,  576,  576,
6263       576,  576,  576,  576, 3024, 3024, 3024, 3024, 3491, 3024,
6264      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
6265      3491, 3491, 3491, 3024, 3024, 3491, 3491, 3491, 3024, 3491,
6266      3491, 3024, 3024, 3235, 3235, 3235, 3235, 3491, 3491, 3491,
6267      3491, 3235, 3491, 3235, 3491, 3491, 3491, 3235, 3491, 3235,
6268      3491, 3491, 3235, 3235, 3491, 3491, 3235, 3235, 3491, 3491,
6269      3491, 3235, 2865, 2865, 2865, 2865, 3491, 3491, 3491, 2865,
6270
6271      3491, 3491, 3491, 3491, 3491, 3491, 2865, 2865, 3491, 2865,
6272      3491, 2865, 2865, 3491, 2865, 3491, 2865, 3491, 3491, 3491,
6273      2865, 2637, 2637, 2637, 2637, 3491, 3491, 3491, 2637, 3491,
6274      3491, 3491, 3491, 3491, 3491, 2637, 2637, 3491, 2637, 3491,
6275      2637, 2637, 3491, 2637, 3491, 2637, 3491, 3491, 3491, 2637,
6276      3328, 3491, 3328, 3328, 3491, 3328, 3328, 3328, 3328, 3491,
6277      3328, 3328, 3328, 3328, 3328, 3328, 3328, 3328, 3328, 3328,
6278      3328, 3328, 3328, 3491, 3328, 3328, 3328, 3328, 3328, 3328,
6279      3250, 3250, 3491, 3250, 3250, 3250, 3250, 3250, 3250, 3250,
6280      3250, 3250, 3250, 3250, 3250, 3491, 3250, 3250, 3250, 3250,
6281
6282      3491, 3491, 3250, 3250, 3250, 3491, 3250, 3250, 3250, 3250,
6283      3288, 3288, 3491, 3288, 3288, 3491, 3288, 3288, 3288, 3288,
6284      3288, 3288, 3491, 3491, 3491, 3288, 3288, 3288, 3288, 3288,
6285      3288, 3288, 3288, 3288, 3288, 3288, 3491, 3288, 3288, 3288,
6286      3287, 3287, 3491, 3287, 3287, 3491, 3287, 3287, 3287, 3287,
6287      3287, 3287, 3287, 3287, 3491, 3287, 3287, 3287, 3287, 3287,
6288      3287, 3287, 3287, 3287, 3287, 3287, 3491, 3287, 3287, 3287,
6289       728, 3491, 3491,  728, 3491, 3491, 3491,  728, 3491, 3491,
6290      3491,  728,  728, 3491,  728,  728, 3491,  728, 3491,  728,
6291       728, 3491, 3491, 3491,  728, 3491, 3491, 3491,  728,  818,
6292
6293       818, 3491,  818, 3491, 3491, 3491,  818, 3491, 3491, 3491,
6294       818,  818, 3491,  818,  818, 3491,  818, 3491,  818,  818,
6295      3491, 3491, 3491,  818, 3491, 3491, 3491,  818,  891, 3491,
6296      3491,  891, 3491, 3491, 3491,  891, 3491, 3491, 3491, 3491,
6297      3491, 3491,  891,  891, 3491, 3491, 3491,  891,  891, 3491,
6298       891, 3491,  891, 3491, 3491, 3491,  891,  927,  927, 3491,
6299       927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
6300       927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
6301       927,  927,  927,  927,  927,  927,  927,  998,  998,  998,
6302       998, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
6303
6304      3491,  998, 3491, 3491, 3491, 3491,  998,  998, 3491, 3491,
6305      3491,  998,  998, 3491, 3491,  998, 1055, 1055, 3491, 1055,
6306      1055, 3491, 3491, 1055, 1055, 1055, 1055, 1055, 1055, 1055,
6307      1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 3491,
6308      1055, 1055, 1055, 1055, 1055, 1055, 3374, 3491, 3374, 3374,
6309      3491, 3374, 3374, 3374, 3491, 3491, 3374, 3374, 3374, 3374,
6310      3374, 3374, 3374, 3374, 3374, 3374, 3374, 3374, 3374, 3491,
6311      3374, 3374, 3374, 3374, 3374, 3374, 1092, 1092, 1092, 1092,
6312      1092, 1092, 1092, 1092, 1092, 3491, 1092, 1092, 1092, 1092,
6313      1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092,
6314
6315      1092, 1092, 1092, 1092, 1092, 1092,  530,  530, 3491, 3491,
6316       530, 3491,  530,  530,  530,  530,  530,  530,  530,  530,
6317       530,  530,  530,  530,  530,  530,  530,  530,  530, 3491,
6318       530,  530,  530,  530,  530,  530,  539,  539, 3491, 3491,
6319       539,  539,  539, 3491,  539,  539,  539,  539,  539,  539,
6320       539,  539,  539,  539,  539,  539,  539,  539,  539, 3491,
6321       539,  539,  539,  539,  539,  539,  547,  547, 3491,  547,
6322       547, 3491,  547,  547,  547,  547,  547,  547,  547,  547,
6323       547,  547,  547,  547,  547,  547,  547,  547,  547,  547,
6324       547,  547,  547,  547,  547,  547,  576,  576, 3491, 3491,
6325
6326       576,  576,  576,  576,  576,  576,  576,  576,  576,  576,
6327       576,  576,  576,  576,  576,  576,  576,  576,  576,  576,
6328       576,  576,  576,  576,  576,  576, 2865, 2865, 2865, 2865,
6329      3491, 3491, 3491, 2865, 3491, 3491, 3491, 3491, 3491, 3491,
6330      2865, 2865, 3491, 2865, 3491, 2865, 2865, 3491, 2865, 3491,
6331      2865, 3491, 3491, 3491, 2865, 2637, 2637, 2637, 2637, 3491,
6332      3491, 3491, 2637, 3491, 3491, 3491, 3491, 3491, 3491, 2637,
6333      2637, 3491, 2637, 3491, 2637, 2637, 3491, 2637, 3491, 2637,
6334      3491, 3491, 3491, 2637, 3382, 3491, 3382, 3382, 3491, 3382,
6335      3382, 3382, 3382, 3491, 3382, 3382, 3382, 3382, 3382, 3382,
6336
6337      3382, 3382, 3382, 3382, 3382, 3382, 3382, 3491, 3382, 3382,
6338      3382, 3382, 3382, 3382, 1330, 1330, 3491, 1330, 1330, 1330,
6339      1330, 1330, 3491, 3491, 1330, 1330, 1330, 1330, 1330, 1330,
6340      1330, 1330, 3491, 1330, 1330, 1330, 3491, 1330, 3491, 1330,
6341      3491, 3491, 1330, 1330,  728, 3491, 3491,  728, 3491, 3491,
6342      3491,  728, 3491, 3491, 3491,  728,  728, 3491,  728,  728,
6343      3491,  728, 3491,  728,  728, 3491, 3491, 3491,  728, 3491,
6344      3491, 3491,  728,  818,  818, 3491,  818, 3491, 3491, 3491,
6345       818, 3491, 3491, 3491,  818,  818, 3491,  818,  818, 3491,
6346       818, 3491,  818,  818, 3491, 3491, 3491,  818, 3491, 3491,
6347
6348      3491,  818, 3408, 3491, 3491, 3408, 3491, 3408, 3491, 3491,
6349      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
6350      3491, 3408, 3408, 3491, 3491, 3491, 3408, 3491, 3491, 3491,
6351      3408,  927,  927, 3491,  927,  927,  927,  927,  927,  927,
6352       927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
6353       927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
6354       927,  998, 3491, 3491, 3491, 3491,  998,  998, 3491, 3491,
6355      3491,  998, 3491, 3491, 3491,  998, 1055, 1055, 3491, 1055,
6356      1055, 3491, 3491, 1055, 1055, 1055, 1055, 1055, 1055, 1055,
6357      1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 3491,
6358
6359      1055, 1055, 1055, 1055, 1055, 1055, 3413, 3491, 3413, 3413,
6360      3491, 3413, 3413, 3413, 3491, 3491, 3413, 3413, 3413, 3413,
6361      3413, 3413, 3413, 3413, 3413, 3413, 3413, 3413, 3413, 3491,
6362      3413, 3413, 3413, 3413, 3413, 3413, 1092, 1092, 1092, 1092,
6363      1092, 1092, 1092, 1092, 1092, 3491, 1092, 1092, 1092, 1092,
6364      1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092,
6365      1092, 1092, 1092, 1092, 1092, 1092, 3422, 3491, 3422, 3422,
6366      3491, 3422, 3422, 3422, 3422, 3491, 3422, 3422, 3422, 3422,
6367      3422, 3422, 3422, 3422, 3422, 3422, 3422, 3422, 3422, 3491,
6368      3422, 3422, 3422, 3422, 3422, 3422, 3437, 3491, 3491, 3437,
6369
6370      3491, 3437, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
6371      3491, 3491, 3491, 3491, 3491, 3437, 3437, 3491, 3491, 3491,
6372      3437, 3491, 3491, 3491, 3437, 3440, 3491, 3491, 3440, 3491,
6373      3491, 3491, 3491, 3440, 3491, 3491, 3491, 3491, 3491, 3440,
6374      3491, 3491, 3491, 3491, 3440, 3440, 3491, 3491, 3491, 3440,
6375      3491, 3491, 3491, 3440, 3443, 3491, 3443, 3443, 3491, 3443,
6376      3443, 3443, 3491, 3491, 3443, 3443, 3443, 3443, 3443, 3443,
6377      3443, 3443, 3443, 3443, 3443, 3443, 3443, 3491, 3443, 3443,
6378      3443, 3443, 3443, 3443, 3449, 3491, 3449, 3449, 3491, 3449,
6379      3449, 3449, 3449, 3491, 3449, 3449, 3449, 3449, 3449, 3449,
6380
6381      3449, 3449, 3449, 3449, 3449, 3449, 3449, 3491, 3449, 3449,
6382      3449, 3449, 3449, 3449, 3461, 3491, 3491, 3461, 3491, 3491,
6383      3491, 3491, 3461, 3491, 3491, 3491, 3491, 3491, 3461, 3491,
6384      3491, 3491, 3491, 3461, 3461, 3491, 3491, 3491, 3461, 3491,
6385      3491, 3491, 3461, 3462, 3491, 3462, 3462, 3491, 3462, 3462,
6386      3462, 3491, 3491, 3462, 3462, 3462, 3462, 3462, 3462, 3462,
6387      3462, 3462, 3462, 3462, 3462, 3462, 3491, 3462, 3462, 3462,
6388      3462, 3462, 3462, 3465, 3491, 3465, 3465, 3491, 3465, 3465,
6389      3465, 3465, 3491, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
6390      3465, 3465, 3465, 3465, 3465, 3465, 3491, 3465, 3465, 3465,
6391
6392      3465, 3465, 3465, 3471, 3491, 3471, 3471, 3491, 3471, 3471,
6393      3471, 3491, 3491, 3471, 3471, 3471, 3471, 3471, 3471, 3471,
6394      3471, 3471, 3471, 3471, 3471, 3471, 3491, 3471, 3471, 3471,
6395      3471, 3471, 3471, 3474, 3491, 3474, 3474, 3491, 3474, 3474,
6396      3474, 3474, 3491, 3474, 3474, 3474, 3474, 3474, 3474, 3474,
6397      3474, 3474, 3474, 3474, 3474, 3474, 3491, 3474, 3474, 3474,
6398      3474, 3474, 3474, 3476, 3491, 3476, 3476, 3491, 3476, 3476,
6399      3476, 3491, 3491, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
6400      3476, 3476, 3476, 3476, 3476, 3476, 3491, 3476, 3476, 3476,
6401      3476, 3476, 3476, 3479, 3491, 3479, 3479, 3491, 3479, 3479,
6402
6403      3479, 3479, 3491, 3479, 3479, 3479, 3479, 3479, 3479, 3479,
6404      3479, 3479, 3479, 3479, 3479, 3479, 3491, 3479, 3479, 3479,
6405      3479, 3479, 3479, 3480, 3491, 3480, 3480, 3491, 3480, 3480,
6406      3480, 3491, 3491, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
6407      3480, 3480, 3480, 3480, 3480, 3480, 3491, 3480, 3480, 3480,
6408      3480, 3480, 3480, 3483, 3491, 3483, 3483, 3491, 3483, 3483,
6409      3483, 3483, 3491, 3483, 3483, 3483, 3483, 3483, 3483, 3483,
6410      3483, 3483, 3483, 3483, 3483, 3483, 3491, 3483, 3483, 3483,
6411      3483, 3483, 3483,   67, 3491, 3491, 3491, 3491, 3491, 3491,
6412      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
6413
6414      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
6415      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
6416      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
6417      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
6418      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
6419      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
6420      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491
6421     } ;
6422
6423 static yyconst flex_int16_t yy_chk[36069] =
6424     {   0,
6425         0,    0,    1,    1,    2,    2,    2,    2,  111,  111,
6426         3,    3,    1,    1,    3,    2,    2,  198,    0,    1,
6427         3,    3,    2,   22,    0,   20,   22,    3,   20,    1,
6428        73,   20,    2,   76,  198,   73,   24,    3,   76,   24,
6429        81,   22,   85,   20,  164,   81,  130,   85,    1,   26,
6430         1,    2,   26,    2,   24,  169,    3,    3,    3,    4,
6431         4,    4,    4,   90,    4,    5,    5,   26,   90,  294,
6432         4,    4,  164,  169,    5,    5,    5,    4,   28,   93,
6433        30,   28,    5,   30,   93,  100,  103,    4,  294,  130,
6434       100,  103,    5,    7,    7,  109,   28,    7,   30,  670,
6435
6436       109,  670,  163,    7,    7,  314,    4,    4,    4,  163,
6437         7,    5,    5,    5,    6,    6,    6,    6,   32,   34,
6438         7,   32,   34,  113,    6,    6,    6,   44,  113, 1114,
6439        44, 1114,    6,    9,    9,   46,   32,   34,   46,    7,
6440       178,    7,    6,    9,    9,   44,    8,    8,    8,    8,
6441         9,    8,   48,   46,  120,   48,  314,    8,    8,  120,
6442         9,    6,    6,    6,    8, 2180,   10,   10,   10,   10,
6443        48,  123,  115,  178,    8,  115,  123,   10,   10,    9,
6444         9,    9,  140,  148,   10,  115,  148,  140,   11,   11,
6445        11,   11,  143,    8,   10,    8,  148,  143,  155,   11,
6446
6447        11,   11,  204,  155,   50,  360,   11,   50,   12,   12,
6448        12,   12,  204,   10,   10,   10,   11,   13,   13,   12,
6449        12,   12,   50,  179,  129,  360,   12,   13,   13,  129,
6450        14,   14,   14,   14,   13,   11,   12,   11,  339,   15,
6451        15,   14,   14,   52,   13,  327,   52,  194,   14,   15,
6452        15,   15,  194,  176,  188,   12,   15,   12,   14,  129,
6453       339,   52,  179,   13,   13,   13,   15,  131,  131,  668,
6454        16,   16,   16,   16,  176,  188,  176,   14,   14,   14,
6455       188,   16,   16,   16,  668,   15,  176,   15,   16,   17,
6456        17,  133,   18,   18,   18,   18,  133,  246,   16,   17,
6457
6458        17,  202,  246,   18,   18,   38,   17,  327,   38,   54,
6459        18,   38,   54,  202,  131,  183,   17,   16,   56,   16,
6460        18,   56,   58,   38,  663,   58,  133,   54,  207,  207,
6461       209,  209,  663,   38,  183,   17,   56,   17,  183,   18,
6462        58,   18,   19,   19,   19,   19,   19,   19,   19,   19,
6463        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
6464        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
6465        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
6466        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
6467        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
6468
6469        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
6470        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
6471        19,   19,   19,   19,   19,   19,   21,   21,   21,   21,
6472        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
6473        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
6474        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
6475        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
6476        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
6477        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
6478        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
6479
6480        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
6481        23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
6482        23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
6483        23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
6484        23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
6485        23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
6486        23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
6487        23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
6488        23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
6489        23,   23,   23,   23,   25,   25,   25,   25,   25,   25,
6490
6491        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
6492        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
6493        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
6494        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
6495        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
6496        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
6497        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
6498        25,   25,   25,   25,   25,   25,   25,   25,   27,   27,
6499        27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
6500        27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
6501
6502        27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
6503        27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
6504        27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
6505        27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
6506        27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
6507        27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
6508        27,   27,   29,   29,   29,   29,   29,   29,   29,   29,
6509        29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
6510        29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
6511        29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
6512
6513        29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
6514        29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
6515        29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
6516        29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
6517        29,   29,   29,   29,   29,   29,   31,   31,   31,   31,
6518        31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
6519        31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
6520        31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
6521        31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
6522        31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
6523
6524        31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
6525        31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
6526        31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
6527        33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
6528        33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
6529        33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
6530        33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
6531        33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
6532        33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
6533        33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
6534
6535        33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
6536        33,   33,   33,   33,   35,   35,   35,   35,   36,   36,
6537        36,   36,  260,   39,   39,   35,   35,  260,  193,   36,
6538        36,  193,   35,   39,   39,   60,   36,   35,   60,  644,
6539        39,   36,   35,  328,  170,  644,   36,   39,   62,   39,
6540        39,   62,   64,   60,   69,   64,   75,   69,  351,   75,
6541      2181,   35,  351,   35,  170,   36,   62,   36,  328,   39,
6542        64,   39,   69,   84,   75,   92,   84,   95,   92,  262,
6543        95,  170,  150,  170,  299,  150, 2182,  299,  193,  262,
6544       262,   84,   35,   92,  150,   95,   36,   37,   37,   37,
6545
6546        37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
6547        37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
6548        37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
6549        37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
6550        37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
6551        37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
6552        37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
6553        37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
6554        37,   40,   40,   40,   40,   41,   41,  102,  171,   41,
6555       102,  236,   40,   40,  303,   41,   41,  303,  638,   40,
6556
6557       105,  105,   41,  105,  112,  102,   40,  112,   40,   40,
6558       638,   41,   41,  340,   42,   42,   42,   42,  105,   42,
6559       125,  171,  112,  125,  171,   42,   42,  172,   40,  487,
6560        40,   41,   42,   41,  122,  340,  487,  122,  125,   65,
6561        65,   42,   42,  392,  236,  341,  172,  122,  392,   65,
6562        65,  132,  122,  172,  132,  135,   65,  172,  135,  142,
6563       172,   42,  142,   42,   43,   43,   65,  341,  201,  132,
6564       173,  201,  524,  135,   43,   43,  177,  142,  187,  199,
6565       201,   43,  199,  180,  403,   65,  524,   65,   43,  403,
6566        43,   43,  199,  173,  201,  365,  205,  187,  177,  132,
6567
6568       177,  205,  180,  173,   43,  187,  180,  177,  177,  205,
6569        43,  187,   43,  173,  238,  355,   43,   43,   43,  238,
6570        43,   43,  180,   43, 2183,  355,   43,  238,   43,   43,
6571       611,  611,  365,   43,   43,   43,   43,   43,   45,   45,
6572        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
6573        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
6574        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
6575        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
6576        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
6577        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
6578
6579        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
6580        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
6581        45,   45,   47,   47,   47,   47,   47,   47,   47,   47,
6582        47,   47,   47,   47,   47,   47,   47,   47,   47,   47,
6583        47,   47,   47,   47,   47,   47,   47,   47,   47,   47,
6584        47,   47,   47,   47,   47,   47,   47,   47,   47,   47,
6585        47,   47,   47,   47,   47,   47,   47,   47,   47,   47,
6586        47,   47,   47,   47,   47,   47,   47,   47,   47,   47,
6587        47,   47,   47,   47,   47,   47,   47,   47,   47,   47,
6588        47,   47,   47,   47,   47,   47,   47,   47,   47,   47,
6589
6590        47,   47,   47,   47,   47,   47,   49,   49,   49,   49,
6591        49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
6592        49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
6593        49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
6594        49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
6595        49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
6596        49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
6597        49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
6598        49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
6599        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
6600
6601        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
6602        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
6603        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
6604        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
6605        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
6606        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
6607        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
6608        51,   51,   51,   51,   53,   53,   53,   53,   53,   53,
6609        53,   53,   53,   53,   53,   53,   53,   53,   53,   53,
6610        53,   53,   53,   53,   53,   53,   53,   53,   53,   53,
6611
6612        53,   53,   53,   53,   53,   53,   53,   53,   53,   53,
6613        53,   53,   53,   53,   53,   53,   53,   53,   53,   53,
6614        53,   53,   53,   53,   53,   53,   53,   53,   53,   53,
6615        53,   53,   53,   53,   53,   53,   53,   53,   53,   53,
6616        53,   53,   53,   53,   53,   53,   53,   53,   53,   53,
6617        53,   53,   53,   53,   53,   53,   53,   53,   55,   55,
6618        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
6619        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
6620        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
6621        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
6622
6623        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
6624        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
6625        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
6626        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
6627        55,   55,   57,   57,   57,   57,   57,   57,   57,   57,
6628        57,   57,   57,   57,   57,   57,   57,   57,   57,   57,
6629        57,   57,   57,   57,   57,   57,   57,   57,   57,   57,
6630        57,   57,   57,   57,   57,   57,   57,   57,   57,   57,
6631        57,   57,   57,   57,   57,   57,   57,   57,   57,   57,
6632        57,   57,   57,   57,   57,   57,   57,   57,   57,   57,
6633
6634        57,   57,   57,   57,   57,   57,   57,   57,   57,   57,
6635        57,   57,   57,   57,   57,   57,   57,   57,   57,   57,
6636        57,   57,   57,   57,   57,   57,   59,   59,   59,   59,
6637        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
6638        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
6639        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
6640        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
6641        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
6642        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
6643        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
6644
6645        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
6646        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
6647        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
6648        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
6649        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
6650        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
6651        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
6652        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
6653        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
6654        61,   61,   61,   61,   63,   63,   63,   63,   63,   63,
6655
6656        63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
6657        63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
6658        63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
6659        63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
6660        63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
6661        63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
6662        63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
6663        63,   63,   63,   63,   63,   63,   63,   63,   66,   66,
6664        66,   66,  156,  156,  156,  156,  410,  420,  160,   66,
6665        66,  410,  245, 1793,  174,  245,   66,  420,  161,  161,
6666
6667       161,  161,  298,  298,  245,  277,   66,  298,  156,  161,
6668       161, 1793,  277,  161,  192,  259,  277,  192,  259,  277,
6669       192,  161,  161,  161,  174,   66,  174,   66,  167,  167,
6670       167,  167,  192,  259,  174,  167,  174,  160,  156,  160,
6671       160,  342,  310,  160,  298,  310,  161,  161,  185,  160,
6672       160,  167,  160,  160,  160,  162,  162,  162,  162,  429,
6673       310,  344,  175,  342,  429,  181,  162,  162,  457,  305,
6674       162,  185,  305,  457,  185,  182,  167,  463,  162,  162,
6675       162,  175,  463,  344,  185,  181,  210,  331,  162,  175,
6676       184,  185,  175,  305,  182,  175,  186,  599,  175,  181,
6677
6678      2184,  175,  182,  162,  162,  181,  599,  432,  186,  167,
6679       432,  182,  331,  184,  182,  186,  184,  184,  191,  191,
6680       191,  191,  441,  320,  331,  191,  320, 2186,  184,  472,
6681       432,  184,  441,  184,  472,  210,  343,  210,  210,  309,
6682       186,  210,  309,  211,  343,  186,  211,  210,  210,  343,
6683       210,  210,  210,  212,  211,  490,  212,  309,  343,  211,
6684       211,  359,  359,  309,  212,  490,  211, 2191,  211,  212,
6685       212,  567,  213,  359,  567,  213,  212,  213,  212,  257,
6686       257,  257,  257,  213,  567,  278,  257,  214,  213,  213,
6687       214,  216,  278,  212,  216,  213,  278,  213,  214,  278,
6688
6689      2192,  320,  216,  214,  214,  278,  217,  216,  216,  217,
6690       214,  532,  214,  477,  216,  493,  216,  217,  477,  225,
6691       214,  218,  217,  217,  218,  532,  334,  225,  334,  217,
6692       225,  217,  218,  225,  689,  493,  225,  218,  218,  225,
6693       219,  272,  216,  219,  218,  272,  218,  600,  272,  506,
6694       600,  219,  272,  689,  506,  272,  219,  219,  220,  217,
6695       600,  220,  616,  219,  405,  219,  279,  405,  221,  220,
6696       279,  221,  616,  279,  220,  220,  217,  279,  217,  221,
6697       279,  220,  405,  220,  221,  221,  279,  218,  334, 2194,
6698       218,  221,  219,  221,  286,  529,  223,  538,  223,  219,
6699
6700       223,  286,  286,  219,  223,  286,  219,  223,  286,  529,
6701       223,  538,  626,  223,  220,  224,  223,  346,  224,  529,
6702       224,  538, 1841,  224,  220,  346,  224,  224,  224,  224,
6703       346,  221,  224,  221,  220,  224,  510,  226,  615,  346,
6704      1841,  510,  227,  221,  222,  226,  227,  222,  226,  296,
6705       227,  226,  296,  227,  226,  222,  227,  226,  615,  227,
6706       222,  222,  227,  228,  228,  229,  626,  222,  330,  222,
6707       516,  228,  296,  229,  228,  516,  229,  228,  228,  229,
6708       228,  655,  229,  228,  228,  229,  230,  608,  282, 2196,
6709       230,  655,  282,  330,  230,  282,  222,  230,  608,  282,
6710
6711       230,  231,  282,  230,  222,  231,  230,  222,  231,  231,
6712       222,  625,  231,  222,  330,  231,  222,  330,  231,  233,
6713       231,  231,  232,  231,  625,  231,  232,  296,  647,  232,
6714       232,  424,  424,  232,  647,  520,  232,  234,  233,  232,
6715       520,  428,  232,  424,  428,  234,  232,  522,  234,  649,
6716       233,  234,  522,  602,  234,  527,  602,  234,  233,  428,
6717       527,  233,  649,  233,  233,  602,  628,  233,  233,  235,
6718       233,  235,  383,  383,  383,  383,  235,  235, 2208,  383,
6719       235,  304,  450,  235,  304,  450,  235,  636,  628,  235,
6720       249,  249,  249,  249,  250,  250,  250,  250,  636,  304,
6721
6722       450,  249,  445,  445,  304,  250,  536,  251,  251,  251,
6723       251,  536,  251,  249,  445,  249, 1263,  250,  251,  250,
6724       253,  253,  253,  253,  544, 1263,  287,  253,  287,  544,
6725       251,  541,  251,  287,  250,  523,  345,  287,  249,  345,
6726       287,  345,  250,  253,  523,  541,  255,  255,  255,  255,
6727       258,  258,  258,  258,  345,  251,  531,  255,  550,  304,
6728       560,  258,  652,  345, 2210,  531,  652,  255,  253,  255,
6729       273,  255,  550,  258,  560,  258,  540,  273,  523,  264,
6730       264,  273,  264,  273,  273,  540,  255,  669,  549,  462,
6731       264,  669,  462,  273,  255,  264,  264,  549,  258,  531,
6732
6733       301,  253,  264,  301,  264,  265,  265,  462,  265,  266,
6734       266,  301,  266,  546,  266,  476,  265, 2211,  476,  540,
6735       266,  265,  265,  301,  552,  266,  266,  546,  265,  552,
6736       265,  549,  266,  476,  266,  267,  267,  546,  267,  268,
6737       268,  501,  268, 2213,  501,  265,  267,  571,  301,  579,
6738       268,  267,  267,  660,  509,  268,  268,  509,  267,  501,
6739       267,  571,  268,  579,  268,  660,  269,  269,  267,  269,
6740       332,  494,  509,  332,  494,  494,  332,  269,  512,  577,
6741       577,  512,  269,  269,  270,  270,  494,  270,  332,  269,
6742       268,  269,  666,  579,  519,  270,  512,  519,  332,  590,
6743
6744       270,  270, 2215,  274,  666,  271,  271,  270,  271,  270,
6745       274,  274,  519,  590,  274,  554,  271,  274, 1158,  269,
6746       274,  271,  271,  274,  521,  635,  577,  521,  271,  554,
6747       271,  565,  635,  275,  559,  275,  269,  275,  269,  554,
6748       275, 1158,  521,  635,  275,  565,  559,  275,  332,  276,
6749       270,  559,  276,  270,  276,  565,  276,  271,  280,  280,
6750       276,  276,  276,  276,  271,  280,  693,  281,  271,  280,
6751       639,  271,  280,  280,  281,  281,  693,  639,  281,  280,
6752       526,  281,  283,  526,  281,  528,  283,  281,  284,  283,
6753       283,  285,  284,  283,  528,  284,  283,  302,  526,  284,
6754
6755       302,  283,  284,  688,  283,  284,  283,  575,  302,  528,
6756       285,  688,  284,  593,  368,  368,  368,  368,  593, 2217,
6757       302,  575,  285,  642,  369,  369,  369,  369,  528,  285,
6758       642,  575,  595,  285,  692,  285,  285,  368,  692,  368,
6759       285,  371,  371,  371,  371,  302,  595,  369,  302,  369,
6760       570,  370,  370,  370,  370,  653,  595,  369,  370,  570,
6761       584,  653,  368, 1829,  371,  584,  371,  372,  372,  372,
6762       372, 1829,  369,  373,  373,  373,  373,  374,  374,  374,
6763       374,  375,  375,  375,  375,  465,  465,  465,  465,  371,
6764       372,  535,  372,  570,  535,  584,  373,  645,  373,  645,
6765
6766       374,  957,  374,  645,  375,  648,  375,  371,  465,  535,
6767       543,  588,  588,  543,  588,  372,  648,  551,  637,  564,
6768       551,  373,  564,  637,  643,  374,  372,  583,  543,  375,
6769       583,  643,  370,  372,  465,  551,  375,  564,  957,  373,
6770       374,  376,  376,  376,  376,  583,  375,  377,  377,  377,
6771       377,  378,  378,  378,  378,  379,  379,  379,  379,  657,
6772       380,  380,  380,  380,  376,  657,  376,  723,  557,  557,
6773       377,  557,  377,  537,  378,  583,  378,  723,  379, 2221,
6774       379,  545,  537,  380,  592,  380,  557,  592,  573,  376,
6775       545,  573,  665,  613,  674,  377,  613,  537,  665,  378,
6776
6777       674,  573,  592,  379,  378,  545,  573,  376,  380,  381,
6778       381,  381,  381, 1876,  379,  379,  537,  656,  656,  377,
6779       382,  382,  382,  382,  545,  380,  379,  385,  385,  385,
6780       385, 1876,  381,  654,  381,  578,  386,  386,  386,  386,
6781       654,  641,  553,  382,  578,  382,  574,  387,  387,  387,
6782       387,  553,  641,  641,  386,  574,  589,  381,  402,  402,
6783       402,  402,  667,  676,  585,  589,  553,  667,  382,  676,
6784       574,  715,  586,  585,  382,  381,  402,  640,  578,  578,
6785       640,  385,  715,  651,  650,  553,  586,  650,  585,  574,
6786       386,  651,  659,  385, 1839,  651,  586,  385,  659,  589,
6787
6788       385,  387,  386, 1839,  659,  385,  386,  585,  585,  386,
6789       677,  677,  402,  387,  386,  661,  586,  387,  661,  671,
6790       387,  684,  671,  672,  402,  387,  672,  684,  402,  683,
6791       683,  402,  478,  478,  478,  478,  402,  474,  474, 2225,
6792       474,  474,  474, 1116,  474, 1116,  474,  474,  474,  474,
6793       474,  474,  474,  474,  474,  474,  474,  479,  479,  479,
6794       479,  474,  474,  474,  474,  474,  474,  480,  480,  480,
6795       480, 1125,  594, 1125,  661,  479,  680,  499,  499,  499,
6796       499,  594, 1169,  680,  673,  474,  478,  474,  474,  673,
6797       634,  634,  634,  634, 1169,  499,  594,  634,  478,  673,
6798
6799       710,  601,  478,  710,  601,  478,  681,  681,  601, 1226,
6800       478,  479,  710,  601,  601,  594,  474,  474,  474,  474,
6801      1226,  480,  658,  479,  601,  681,  701,  479,  658,  701,
6802       479,  499,  658,  480,  664,  479, 2229,  480,  664,  685,
6803       480,  675,  675,  499,  685,  480,  664,  499,  675,  601,
6804       499,  596,  596,  596,  596,  499,  690,  690,  605,  605,
6805       605,  605,  596,  596,  691,  691,  596,  690,  696,  696,
6806       607,  607,  607,  607,  596,  596,  596,  607,  678,  678,
6807       678,  678,  601, 2231,  605,  678,  701,  686,  686, 1063,
6808       623,  623,  678,  607, 1063,  623,  623,  686,  682,  596,
6809
6810       596,  597,  597,  597,  597,  682,  623, 2232,  617,  617,
6811       617,  617,  597,  597,  605,  682,  597,  679,  607,  617,
6812       617,  679,  911,  617,  597,  597,  597,  720,  687,  679,
6813       720,  617,  617,  617, 2234,  687,  694,  694,  703,  703,
6814       694,  718,  718,  618,  618,  618,  618,  911,  687,  597,
6815       597,  607,  687,  927,  618,  618,  617,  617,  618,  623,
6816       597,  624,  624,  624,  624, 1142,  618,  618,  624, 1142,
6817       629,  629,  629,  629,  722,  927, 1192,  629,  630,  630,
6818       630,  630, 1192,  708,  624,  630,  708,  632,  632,  632,
6819       632,  618,  618,  629,  722,  914,  708,  702,  632,  632,
6820
6821       702,  630,  632,  884,  885,  724,  884,  885,  724,  624,
6822       632,  632,  632, 1273,  633,  633,  633,  633,  629, 1273,
6823       914,  633,  697,  697,  697,  697,  630,  624,  724,  697,
6824       724,  698,  698,  698,  698,  632,  632,  633,  698, 1047,
6825      1047, 1261,  624,  699,  699,  699,  699,  700, 1261,  888,
6826       700,  629,  888,  700,  699,  699,  949,  702,  699,  630,
6827       705,  889,  633,  705,  889,  700,  709,  699,  699,  709,
6828      1148,  705,  889,  709, 1148,  949,  705,  705,  709,  709,
6829      1127,  895, 1127,  705,  895,  705,  806,  806,  806,  806,
6830      2237,  913,  699,  806,  913,  633,  646,  646,  646,  646,
6831
6832       646,  646,  646,  646,  646,  646,  646,  646,  646,  646,
6833       646,  646,  646,  646,  646,  646,  728, 1018, 1272,  728,
6834       646,  646,  646,  646,  646,  646,  706,  728, 1136,  706,
6835      1136,  919,  728,  728, 1272,  883, 1018,  706,  883,  728,
6836      1282,  728,  706,  706,  646,  646,  646,  646, 1040,  706,
6837      1282,  706,  808,  808,  808,  808,  919,  731,  883,  808,
6838       731,  919,  731,  809,  809,  809,  809, 1040,  731,  646,
6839       809, 1223, 1223,  731,  731,  646,  646,  646,  646,  646,
6840       731,  732,  731,  926,  732,  706,  926,  943, 1256, 1256,
6841       943,  733,  732,  897,  733, 1094,  897,  732,  732, 1138,
6842
6843      1094, 1138,  733,  920,  732, 2238,  732,  733,  733,  734,
6844       887,  887,  734,  883,  733,  887,  733,  897,  732,  735,
6845       734,  902,  735, 2243,  902,  734,  734, 1147,  920, 1147,
6846       735, 2247,  734,  933,  734,  735,  735,  736, 1083,  902,
6847       736,  933,  735,  733,  735,  902,  933,  737,  736,  920,
6848       737, 1823,  887,  736,  736,  933, 1012, 1083,  737, 1012,
6849       736,  733,  736,  737,  737,  738, 1023, 1823,  738, 1023,
6850       737,  910,  737, 1171,  910,  739,  738, 2251,  739,  734,
6851       918,  738,  738,  735,  988, 1171,  739,  988,  738, 1023,
6852       738,  739,  739,  810,  810,  810,  810, 1058,  739,  740,
6853
6854       739, 2257,  740,  741,  810,  918,  741, 1101,  736,  988,
6855       740, 1058, 1101,  737,  741,  740,  740,  918, 1278,  741,
6856       741,  738,  740,  918,  740, 1278,  741,  742,  741, 1086,
6857       742,  743, 1086, 1149,  743, 1149, 1107, 2258,  742,  930,
6858       930, 1107,  743,  742,  742,  739,  739,  743,  743,  910,
6859       742,  740,  742,  930,  743,  741,  743, 1172, 1065, 1172,
6860       745, 1297,  930,  745,  746, 1098, 1062,  746, 1297, 1062,
6861      1024,  745, 1065, 1024, 1221,  746,  745,  745, 1221, 1098,
6862       746,  746, 1065,  745, 1062,  745, 1113,  746,  743,  746,
6863      2262, 1113,  742, 1024,  743,  744,  744,  744,  744,  744,
6864
6865       744,  744,  744,  744,  744,  744,  744,  744,  744,  744,
6866       744,  744,  744,  744,  744,  747, 1227, 1232,  747,  744,
6867       744,  744,  744,  744,  744,  745,  747, 2079, 1232, 1227,
6868      1093,  747,  747, 1093,  746, 1228,  748, 1228,  747,  748,
6869       747,  929,  929,  744,  744,  744,  744,  748, 1093, 2079,
6870       929, 1153,  748,  748,  814,  814, 1153,  814, 1057,  748,
6871      1025,  748, 1244, 1025,  929,  814, 1206, 1057,  744,  749,
6872       814,  814,  749, 1244,  744,  744,  744,  744,  744,  750,
6873       749, 2263,  750, 1025,  929,  749,  749,  747,  886, 1206,
6874       750,  886,  749, 1155,  749,  750,  750,  751, 1155,  886,
6875
6876       751, 1057,  750,  748,  750, 1220, 1100,  748,  751, 1100,
6877      1220,  886,  752,  751,  751,  752,  794,  794,  794,  794,
6878       751, 1224,  751,  752, 1100, 1224, 1241,  794,  752,  752,
6879       753,  891,  749,  753,  891,  752,  886,  752, 1254,  794,
6880      1241,  753,  891, 1103,  750,  754,  753,  753,  754,  755,
6881      1097, 1254,  755,  753,  891,  753,  754, 1103, 1248, 1097,
6882       755,  754,  754,  751,  794,  755,  755, 1103,  754, 1248,
6883       754, 1104,  755, 1105,  755,  756, 2264, 1253,  756,  891,
6884      1104,  752,  793,  793,  793,  793,  756, 1105, 1253,  793,
6885       753,  756,  756, 1097, 1805, 1104,  757, 1105,  756,  757,
6886
6887       756,  956,  956,  956,  956,  793,  894,  757, 1805,  894,
6888       754, 1139,  757,  757,  755, 1139, 1247,  894,  755,  757,
6889      1247,  757,  760, 1139,  956,  760,  956, 1110, 1139,  894,
6890       793, 1179,  896,  760, 1179,  896, 1110, 1255,  760,  760,
6891       756,  761,  761,  761,  761,  760,  756,  760, 1255,  956,
6892       896, 1110,  761, 1219,  894,  896, 1219,  761,  761, 1167,
6893      1167,  894, 1167,  793,  761, 2265,  761,  757,  758,  758,
6894       758,  758,  758,  758,  758,  758,  758,  758,  758,  758,
6895       758,  758,  758,  758,  758,  758,  758,  758, 1225,  760,
6896      1231, 1845,  758,  758,  758,  758,  758,  758,  762, 1229,
6897
6898      1845,  762, 1229, 1225,  761, 1231, 1111, 1243,  932,  762,
6899       896,  932,  761,  932,  762,  762,  758,  758,  758,  758,
6900      1111,  762, 1243,  762, 1168, 1168,  932, 1168, 1245,  763,
6901      1111, 1245,  763, 1257, 1064,  932,  959,  959,  959,  959,
6902       763, 1122, 1168, 1064, 1257,  763,  763,  758,  758,  758,
6903       758,  758,  763,  764,  763, 1122,  764,  765, 1064,  959,
6904       765,  959, 1102,  762,  764, 1122, 1159, 1159,  765,  764,
6905       764, 1102,  766,  765,  765,  766,  764, 1064,  764, 1246,
6906       765, 1246,  765,  766,  959, 1828, 1102,  767,  766,  766,
6907       767,  768, 1828, 1249,  768,  766, 1249,  766,  767, 1268,
6908
6909       763, 1268,  768,  767,  767, 1102, 1121,  768,  768, 1132,
6910       767, 1265,  767, 1159,  768, 1121,  768,  764, 1132, 1143,
6911      1835,  769, 1265,  921,  769, 1250,  921, 1835, 1143,  921,
6912      1121,  765,  769, 1132, 1269,  766, 1269,  769,  769,  770,
6913      1250,  921,  770, 1143,  769, 1133,  769,  768,  767,  771,
6914       770,  921,  771, 1251, 2266,  770,  770,  935,  935, 1133,
6915       771, 1279,  770, 1279,  770,  771,  771,  772, 1251, 1133,
6916       772,  935,  771, 2082,  771, 1120, 1120,  769,  772, 1120,
6917       935,  935,  773,  772,  772,  773, 1276, 1126, 1126, 1276,
6918       772, 1126,  772,  773, 1144, 2082, 1165, 1165,  773,  773,
6919
6920       774,  921, 1140,  774,  770,  773, 1140,  773, 1144,  771,
6921       775,  774, 1301,  775, 1140,  771,  774,  774, 1144, 1140,
6922       772,  775, 1120,  774, 1301,  774,  775,  775,  776, 1151,
6923      1842,  776, 1151,  775, 1126,  775, 1258, 1258,  777,  776,
6924      1842,  777,  773, 1165,  776,  776, 1151, 1260, 1260,  777,
6925      2267,  776, 1270,  776,  777,  777, 1151, 1270,  774,  778,
6926       774,  777,  778,  777,  774,  800,  800,  800,  800, 1170,
6927       778,  774,  800,  775,  779,  778,  778,  779,  934,  934,
6928      1264,  775,  778, 1170,  778,  779, 1755,  934,  800,  780,
6929       779,  779,  780, 1170,  776, 1264,  777,  779, 1755,  779,
6930
6931       780,  934,  934, 1280, 1280,  780,  780,  781, 1131, 1131,
6932       781,  778,  780,  800,  780,  777, 1230, 1131,  781, 1230,
6933      1230,  934,  782,  781,  781,  782,  783, 2269,  778,  783,
6934       781, 1164,  781,  782,  779, 1302, 1145,  783,  782,  782,
6935      1145,  784,  783,  783,  784,  782,  800,  782, 1145,  783,
6936      1302,  783,  784, 1145,  780, 1131,  785,  784,  784,  785,
6937      1166, 1164, 2270, 1164,  784, 1266,  784,  785, 1283, 1266,
6938      1283,  781,  785,  785,  792,  792,  792,  792,  783,  785,
6939      2271,  785,  782, 1262,  786,  792, 1262,  786, 1292, 1292,
6940      1166,  782, 1166, 1156, 1156,  786,  785,  792,  783,  792,
6941
6942       786,  786,  783,  787, 1267, 1156,  787,  786,  784,  786,
6943      1156, 1738, 1289,  788,  787, 1267,  788, 1271, 2272,  787,
6944       787, 1271,  792, 1274,  788, 1289,  787, 1274,  787,  788,
6945       788, 1291,  789, 1275, 1291,  789,  788, 1275,  788, 1262,
6946      1156, 1738,  790,  789,  786,  790, 1199, 1199,  789,  789,
6947      1262, 1199, 1199,  790,  786,  789, 1286,  789,  790,  790,
6948      1286,  791, 1199,  787,  791,  790, 2273,  790,  795,  795,
6949       795,  795,  791,  958,  958,  958,  958,  791,  791,  795,
6950       958, 1284,  788, 1284,  791, 1285,  791,  797,  797,  797,
6951       797,  795,  789, 1288, 2277,  789, 1285, 1288,  797, 1137,
6952
6953      1137,  790,  801,  801,  801,  801, 1281,  801, 1137, 1299,
6954       797, 1281,  797,  801, 1299, 1199,  795,  802,  802,  802,
6955       802,  791, 1117, 1117,  802,  801, 1117,  801, 1754,  803,
6956       803,  803,  803, 1754, 1117,  797,  803, 1161, 1294, 1117,
6957       802,  805,  805,  805,  805, 1293, 1137, 1293,  805, 1294,
6958       801, 1161,  803, 2285,  958,  807,  807,  807,  807,  811,
6959       811, 1161,  811, 1300,  805,  802,  807, 1300, 1295, 1117,
6960       811, 1050, 1050, 1050, 1050,  811,  811,  803,  807, 1295,
6961       807, 1161,  811, 1883,  811,  969,  969,  969,  969,  805,
6962       813,  813,  969,  813, 1050,  807, 1296, 1296,  802, 1883,
6963
6964      1146,  813, 1150,  807, 1146, 1150,  813,  813,  818,  818,
6965       803,  818, 1146,  813, 1150,  813, 1298, 1146, 1298,  818,
6966      1050, 2289,  805, 1551,  818,  818, 1551,  819,  819, 1150,
6967       819,  818,  819,  818,  986,  986,  986,  986,  819, 1277,
6968      1303,  986, 1277,  819,  819,  820,  820, 1287,  820, 1160,
6969       819, 2311,  819, 1304, 1287, 1303,  820, 1304, 1160, 1287,
6970      1756,  820,  820,  821,  821, 1322,  821, 1643,  820, 1643,
6971       820, 1322, 1756, 1160,  821, 1051, 1051, 1051, 1051,  821,
6972       821, 1645,  820, 1645,  822,  822,  821,  822,  821,  964,
6973       964,  964,  964, 1160, 1313,  822,  964, 1313, 1051, 1807,
6974
6975       822,  822,  823,  823, 1528,  823, 1277,  822, 1525,  822,
6976      1313, 1313, 1807,  823, 1525,  821, 1532, 1864,  823,  823,
6977       824,  824, 1532,  824, 1051,  823, 1870,  823, 1527, 1528,
6978      1678,  824, 1678,  821, 1864, 1870,  824,  824, 1331,  825,
6979       825, 1331,  825,  824, 1874,  824,  960,  960,  960,  960,
6980       825, 1874, 1528, 1527,  822,  825,  825,  826,  826, 1536,
6981       826, 1331,  825, 1331,  825, 1680,  823, 1680,  826,  960,
6982       964, 2294, 2330,  826,  826, 1529,  827,  827, 1527,  827,
6983       826, 1536,  826,  987,  987,  987,  987,  827, 2294, 2088,
6984       987,  824,  827,  827,  960,  966,  966,  966,  966,  827,
6985
6986      1529,  827,  966,  828,  828,  825,  828,  829,  829, 1311,
6987       829, 2088, 1311,  826,  828, 1529, 1311, 1530,  829,  828,
6988       828, 1311, 1311,  829,  829, 1536,  828, 1640,  828, 2333,
6989       829, 1537,  829,  830,  830, 1537,  830,  831,  831, 1833,
6990       831, 1640, 1530, 1682,  830, 1682,  827,  827,  831,  830,
6991       830, 1640, 1833,  831,  831,  828,  830, 1537,  830,  829,
6992       831, 2334,  831,  833,  833, 1530,  833,  834,  834, 1684,
6993       834, 1684, 1347, 1543,  833, 1347,  966, 1543,  834,  833,
6994       833, 1821, 1329,  834,  834, 1329,  833, 1638,  833, 1329,
6995       834, 1638,  834, 1638,  831, 1347, 1821, 1347,  830, 1543,
6996
6997       831,  832,  832,  832,  832,  832,  832,  832,  832,  832,
6998       832,  832,  832,  832,  832,  832,  832,  832,  832,  832,
6999       832,  835,  835, 1757,  835,  832,  832,  832,  832,  832,
7000       832, 1633,  835,  833, 1638, 1757, 1673,  835,  835,  834,
7001      1633, 1633,  836,  836,  835,  836,  835, 1673, 2346,  832,
7002       832,  832,  832,  836,  967,  967,  967,  967,  836,  836,
7003      1176,  967, 1670, 1670, 1850,  836, 1850,  836, 1670, 1176,
7004      1176, 1176, 1176, 1818,  832, 1052, 1052, 1052, 1052, 1818,
7005       832,  832,  832,  832,  832, 1679,  837,  837,  835,  837,
7006       838,  838,  835,  838, 2302, 1176, 1679,  837, 1052, 2348,
7007
7008      2302,  838,  837,  837, 1542,  836,  838,  838, 1724,  837,
7009      1758,  837, 1724,  838, 1667,  838,  839,  839, 1544,  839,
7010       840,  840, 1758,  840, 1052, 1176, 1542,  839, 1667, 1843,
7011      1820,  840,  839,  839, 1675,  967,  840,  840, 1667,  839,
7012      1544,  839, 1843,  840, 1820,  840,  841,  841, 1675,  841,
7013      1806,  837, 1183, 1183, 1183, 1183,  838,  841, 1675, 1183,
7014      2235, 1806,  841,  841, 1371,  842,  842, 1371,  842,  841,
7015      2235,  841,  961,  961,  961,  961,  842, 1542, 2360, 1542,
7016       840,  842,  842,  843,  843,  839,  843, 1371,  842, 1371,
7017       842, 1544, 1726, 1544,  843,  961, 1726,  961, 1639,  843,
7018
7019       843,  844,  844, 2361,  844, 1848,  843, 1639,  843, 1539,
7020      1539,  841,  844,  965,  965,  965,  965,  844,  844, 1848,
7021       961, 1644, 1639, 1539,  844, 1644,  844, 1644,  847,  847,
7022       842,  847, 1539, 1539,  842, 1871,  965, 1871,  965,  847,
7023      1380, 1380, 1380, 1380,  847,  847,  848,  848,  843,  848,
7024       965,  847, 1312,  847,  843, 1312, 1729,  848, 1879, 1312,
7025      1729,  965,  848,  848, 1312, 1312, 1730, 1879, 1644,  848,
7026      1730,  848,  844,  845,  845,  845,  845,  845,  845,  845,
7027       845,  845,  845,  845,  845,  845,  845,  845,  845,  845,
7028       845,  845,  845, 1157, 1157,  847, 1849,  845,  845,  845,
7029
7030       845,  845,  845,  849,  849, 1157,  849, 1849, 2363,  848,
7031      1157, 1702, 1702, 1566,  849, 1702, 1566,  848, 1666,  849,
7032       849,  845,  845,  845,  845, 1741,  849, 1666,  849, 1741,
7033       989,  989,  989,  989,  850,  850, 1566,  850, 1671, 1671,
7034      1157, 1872, 1666, 1872, 1671,  850, 1202, 1202, 1202, 1202,
7035       850,  850,  845,  845,  845,  845,  845,  850, 1702,  850,
7036       851,  851, 1534,  851,  852,  852, 1534,  852,  849, 1202,
7037      1591,  851, 2364, 1591, 1534,  852,  851,  851, 1780, 1534,
7038       852,  852, 1780,  851,  989,  851, 1855,  852, 1534,  852,
7039       853,  853, 2268,  853, 1202, 1591,  989, 1855, 1676, 1676,
7040
7041       989,  853, 2268,  989, 1676,  850,  853,  853,  989,  854,
7042       854, 1592,  854,  853, 1592,  853, 1162, 1162, 1118, 1118,
7043       854, 2365, 1118, 1822,  851,  854,  854, 1822, 1162, 1880,
7044      1118, 1880,  854, 1162,  854, 1118, 1592, 1832,  852,  855,
7045       855, 1832,  855,  856,  856, 1761,  856, 1862, 1761, 1674,
7046       855, 1677, 1677,  853,  856,  855,  855, 1677, 1674,  856,
7047       856, 1862,  855, 1162,  855, 1118,  856, 1881,  856, 1881,
7048       854,  857,  857, 1674,  857,  858,  858, 1844,  858, 1838,
7049      1704, 1704,  857, 1838, 1704, 1851,  858,  857,  857, 1851,
7050      1844,  858,  858, 1732,  857,  855,  857, 1731,  858,  856,
7051
7052       858,  859,  859, 1535,  859,  860,  860, 1535,  860, 1731,
7053      1819, 1877,  859, 1819, 1731, 1535,  860,  859,  859, 1853,
7054      1535,  860,  860, 1853,  859, 1877,  859, 1704,  860, 1535,
7055       860, 1218, 1218, 1218, 1218,  858,  857, 2090, 1218,  861,
7056       861,  858,  861, 1538, 1538, 2366,  968,  968,  968,  968,
7057       861, 2188, 1538, 2188,  859,  861,  861,  862,  862, 2090,
7058       862, 2367,  861, 1734,  861,  860, 1538, 1538,  862,  968,
7059      1732,  968, 1732,  862,  862,  863,  863, 2190,  863, 2190,
7060       862, 1824,  862, 1213, 1213, 2315,  863, 2315, 1213, 1213,
7061      1817,  863,  863, 1817,  968, 2368, 1824,  861,  863, 1213,
7062
7063       863,  864,  864,  861,  864, 2320, 1427, 1427, 1427, 1427,
7064       861, 2320,  864, 1427, 1846, 1707, 1707,  864,  864, 1707,
7065       862, 1831,  865,  865,  864,  865,  864, 1846,  862,  990,
7066       990,  990,  990,  865, 1836, 2317, 1831, 2317,  865,  865,
7067      1734,  863, 1734, 1739, 1739,  865, 1817,  865, 1840, 1836,
7068       866,  866, 1213,  866,  867,  867, 1854,  867, 2369,  864,
7069      1854,  866, 1707, 1840, 2248,  867,  866,  866, 1123, 1123,
7070       867,  867, 1123,  866,  865,  866, 2248,  867,  864,  867,
7071      1123,  868,  868,  990,  868, 1123, 1203, 1203, 1203, 1203,
7072      1739,  865,  868, 1203, 2321,  990, 2321,  868,  868,  990,
7073
7074       869,  869,  990,  869,  868, 1847,  868,  990, 1847, 1203,
7075       866,  869, 1742, 1742, 1856, 1123,  869,  869, 1856,  867,
7076      1852,  870,  870,  869,  870,  869,  970,  970,  970,  970,
7077      2189, 1540,  870, 1852, 1203, 1540, 2197,  870,  870,  871,
7078       871, 2189,  871, 1540,  870,  868,  870, 2197, 1540,  970,
7079       871,  970, 1203, 2298, 1859,  871,  871, 1540, 1859, 1742,
7080       869, 2322,  871, 2322,  871,  872,  872, 1203,  872,  869,
7081      2298, 1708, 1708,  870,  970, 1708,  872, 1128, 1128, 2073,
7082      1517,  872,  872, 1517,  873,  873, 1128,  873,  872, 1128,
7083       872, 1517,  970,  870, 1128,  873, 2370,  870, 1743, 1743,
7084
7085       873,  873, 2372, 1517, 2073,  872,  871,  873, 1863,  873,
7086       874,  874, 2073,  874,  875,  875, 1865,  875, 1708, 1745,
7087      1745,  874, 2249, 1863, 1128,  875,  874,  874, 1517, 1865,
7088       875,  875, 2373,  874, 2249,  874, 1517,  875, 1725,  875,
7089       876,  876, 1725,  876,  873, 1743,  971,  971,  971,  971,
7090      1725,  876, 1747, 1747,  873, 1725,  876,  876, 2284, 2374,
7091      1866,  877,  877,  876,  877,  876, 1745, 2375, 2075,  971,
7092       874,  971,  877, 1752, 1752, 1866, 1752,  877,  877,  878,
7093       878, 1869,  878,  875,  877, 1869,  877, 2284, 1713, 1713,
7094       878, 1752, 2305, 2075,  971,  878,  878, 1713,  971, 1747,
7095
7096       876, 2305,  878,  876,  878,  972,  972,  972,  972,  973,
7097       973,  973,  973,  974,  974,  974,  974, 2075, 1884, 2376,
7098       877,  985,  985,  985,  985, 1124, 1124, 1904,  972, 1124,
7099       972, 1904,  973, 1884,  973, 1713,  974, 1124,  974,  878,
7100      1868, 2200, 1124, 1885,  985, 1868,  985, 1428, 1428, 1428,
7101      1428, 1333, 2200,  972, 1333, 1868, 1885,  973, 1428, 1239,
7102      1239,  974, 1333, 1873, 1239, 1239, 1873, 1333, 1333,  985,
7103       972, 2323, 1124, 2323, 1333, 1239, 1333, 1749, 1749,  974,
7104       985,  973,  975,  975,  975,  975,  975,  975,  975,  975,
7105       975,  975,  975,  975,  975,  975,  975,  975,  975,  975,
7106
7107       975,  975,  976,  976,  976,  976,  975,  975,  975,  975,
7108       975,  975,  977,  977,  977,  977, 2081, 2391,  978,  978,
7109       978,  978, 1541, 1333, 1749,  976, 1541,  976, 1239, 2081,
7110       975,  975,  975,  975, 1541,  977, 2227,  977, 2081, 1541,
7111      2227,  978, 2423,  978,  979,  979,  979,  979, 1541, 2485,
7112       976,  980,  980,  980,  980,  981,  981,  981,  981, 2203,
7113       977,  975,  975,  975,  975,  975,  978,  979, 1911,  979,
7114      2203, 1911, 2487,  976,  980, 1911,  980,  977,  981, 1893,
7115       981,  978, 1893,  982,  982,  982,  982,  983,  983,  983,
7116       983, 1893,  979,  984,  984,  984,  984, 1163, 1163,  980,
7117
7118      2488, 2489, 2293,  981, 1912,  979,  982, 1912,  982, 1163,
7119       983, 1912,  983,  981, 1163, 2293,  984,  980,  984,  996,
7120       996,  996,  996, 1750, 1750, 1004, 1004, 1004, 1004, 2074,
7121      2490,  982,  981, 1129, 1129,  983, 2308,  996, 2205, 1715,
7122      1715,  984, 1129, 1004, 1163, 1129, 1134, 1134, 1715, 2205,
7123      1129, 2308,  982,  984, 2074, 1134,  984,  983, 1134, 1135,
7124      1135, 1875, 1314, 1134, 1875, 1314, 2074, 2491, 1135, 1314,
7125      1750, 1135, 2111,  996, 1314, 2111, 1135, 1875, 1875, 1004,
7126      1129, 1314, 1314, 1314, 1314,  996, 1715, 1177, 2492,  996,
7127      1177, 1004,  996, 1134, 1177, 1004, 2493,  996, 1004, 1177,
7128
7129      1177, 1751, 1751, 1004, 1060, 1060, 1135, 1060, 1060, 1060,
7130      1177, 1060, 2498, 1060, 1060, 1060, 1060, 1060, 1060, 1060,
7131      1060, 1060, 1060, 1060, 1066, 1066, 1066, 1066, 1060, 1060,
7132      1060, 1060, 1060, 1060, 2499, 1177, 1379, 1379, 1379, 1379,
7133      1753, 1753, 1066, 1753, 1178, 2312, 2138, 1178, 1751, 2138,
7134      2141, 1178, 1060, 2141, 1060, 1060, 1178, 1178, 1753, 1379,
7135      2312, 1379, 1429, 1429, 1429, 1429, 2500, 1178, 1177, 1088,
7136      1088, 1088, 1088, 1429, 1769, 1769, 1769, 1769, 1066, 1714,
7137      1714, 1769, 2303, 1060, 1060, 1060, 1060, 1088, 1714, 2158,
7138      1066, 1714, 1178, 2505, 1066, 2303, 1714, 1066, 2158, 2158,
7139
7140      2138, 2141, 1066, 1075, 1075, 1075, 1075, 1075, 1075, 1075,
7141      1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075,
7142      1075, 1075, 1075, 1088, 2246, 1178, 1714, 1075, 1075, 1075,
7143      1075, 1075, 1075, 2246, 2228, 1088, 2072, 2144, 2228, 1088,
7144      2144, 2507, 1088, 1182, 1182, 1182, 1182, 1088, 2246, 2508,
7145      1182, 1075, 1075, 1075, 1075, 1182, 1182, 1204, 1204, 1204,
7146      1204, 2072, 1718, 1718, 1204, 2072, 1182, 1430, 1430, 1430,
7147      1430, 1718, 2510, 1422, 1422, 1422, 1422, 2301, 1430, 2083,
7148      1204, 2301, 1075, 1075, 1075, 1075, 1075, 1173, 1173, 1173,
7149      1173, 1182, 1209, 1209, 1209, 1209, 1422, 1354, 1173, 1173,
7150
7151      1354, 2083, 1173, 1209, 1209, 1204, 2144, 1209, 1354, 1718,
7152      1173, 1173, 1173, 1354, 1354, 1209, 1209, 1209, 1878, 1878,
7153      1354, 1422, 1354, 1878, 1182, 2313, 2083, 2511, 1878, 1575,
7154      1575, 1575, 1575, 2084, 2341, 1173, 1173, 2084, 1204, 2313,
7155      1209, 1209, 1210, 1210, 1210, 1210, 2341, 1173, 1181, 1181,
7156      1181, 1181, 1575, 1210, 1210, 1181, 2324, 1210, 2324, 2084,
7157      1181, 1211, 1211, 1211, 1211, 1210, 1210, 1181, 1181, 1181,
7158      1181, 1181, 1211, 1211, 2309, 2087, 1211, 1575, 2309, 2087,
7159      1214, 1214, 1214, 1214, 1211, 1211, 1211, 1214, 2512, 2304,
7160      1210, 1210, 1215, 1215, 1215, 1215, 1181, 1310, 2339, 1215,
7161
7162      1310, 2087, 2304, 1214, 1216, 1216, 1216, 1216, 1310, 1211,
7163      1211, 1216, 2339, 1310, 1310, 1215, 2239, 2239, 2143, 2513,
7164      1310, 2143, 1310, 1217, 1217, 1217, 1217, 1216, 1214, 1181,
7165      1205, 1205, 1205, 1205, 1217, 1568, 1568, 1568, 1568, 2086,
7166      1215, 1205, 1205, 2086, 2514, 1205, 1217, 1913, 1217, 2515,
7167      1913, 2086, 1216, 1205, 1205, 1205, 2086, 1310, 1568, 1918,
7168      1568, 1214, 1918, 2239, 1332, 2086, 2292, 1332, 2516, 2292,
7169      1913, 1217, 1913, 1215, 1890, 1332, 2143, 1890, 1205, 1205,
7170      1332, 1332, 1918, 1568, 1918, 1216, 2328, 1332, 2328, 1332,
7171      1890, 1890, 2136, 2142, 2517, 2136, 2142, 1205, 1222, 1222,
7172
7173      1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222,
7174      1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1234, 1234,
7175      1234, 1234, 1222, 1222, 1222, 1222, 1222, 1222, 2091, 1234,
7176      1234, 2093, 2091, 1234, 1332, 2093, 2314, 1240, 1240, 1240,
7177      1240, 1234, 1234, 1234, 1240, 2314, 1222, 1222, 1222, 1222,
7178      1235, 1235, 1235, 1235, 2091, 1719, 1719, 2093, 2142, 2318,
7179      1240, 1235, 1235, 2136, 1719, 1235, 1234, 1234, 1423, 1423,
7180      1423, 1423, 2318, 1235, 1235, 1423, 2353, 1222, 1222, 1222,
7181      1222, 1222, 2518, 2316, 1334, 1240, 2326, 1334, 1795, 1795,
7182      2353, 1423, 2316, 1795, 1795, 1334, 2390, 2326, 1235, 1235,
7183
7184      1334, 1334, 1719, 1240, 1795, 2223, 2223, 1334, 2390, 1334,
7185      1565, 1565, 1565, 1565, 2223, 2519, 1423, 1565, 1240, 1252,
7186      1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252,
7187      1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1259,
7188      1259, 1259, 1259, 1252, 1252, 1252, 1252, 1252, 1252, 1423,
7189      1259, 1259, 2223, 2094, 1259, 1334, 2094, 1795, 1567, 1567,
7190      1567, 1567, 1259, 1259, 1259, 1567, 2325, 1252, 1252, 1252,
7191      1252, 1305, 1305, 1305, 1305, 2325, 1252, 1578, 1578, 1578,
7192      1578, 2338, 1305, 1305, 1578, 2338, 1305, 1259, 1259, 2134,
7193      2520, 1565, 2134, 2522, 2135, 1305, 1305, 2135, 1252, 1252,
7194
7195      1252, 1252, 1252, 1306, 1306, 1306, 1306, 1744, 1744, 2094,
7196      1307, 1307, 1307, 1307, 1306, 1306, 2534, 2535, 1306, 1744,
7197      1305, 1307, 1307, 2536, 1744, 1307, 1336, 1306, 2137, 1336,
7198      1337, 2137, 2319, 1337, 1307, 1307, 2329, 1336, 2329, 1567,
7199      2319, 1337, 1336, 1336, 2319, 2134, 1337, 1337, 2335, 1336,
7200      2335, 1336, 1306, 1337, 1744, 1337, 2537, 2135, 1578, 1307,
7201      1335, 1335, 1335, 1335, 1335, 1335, 1335, 1335, 1335, 1335,
7202      1335, 1335, 1335, 1335, 1335, 1335, 1335, 1335, 1335, 1335,
7203      1338, 2336, 2359, 1338, 1335, 1335, 1335, 1335, 1335, 1335,
7204      2327, 1338, 1336, 1337, 2336, 2137, 1338, 1338, 2219, 2219,
7205
7206      2359, 1339, 2219, 1338, 1339, 1338, 2331, 2327, 1335, 1335,
7207      1335, 1335, 1339, 1767, 1767, 1767, 1767, 1339, 1339, 2163,
7208      1767, 2331, 2332, 2163, 1339, 2163, 1339, 1770, 1770, 1770,
7209      1770, 2342, 1338, 1340, 1770, 2139, 1340, 2332, 2139, 1335,
7210      1335, 1335, 1335, 1335, 1340, 2219, 2342, 2337, 1341, 1340,
7211      1340, 1341, 1342, 2224, 2224, 1342, 1340, 1339, 1340, 1341,
7212      2337, 2542, 2224, 1342, 1341, 1341, 2163, 1343, 1342, 1342,
7213      1343, 1341, 2340, 1341, 2340, 1342, 2140, 1342, 1343, 2140,
7214      2343, 2543, 1344, 1343, 1343, 1344, 1345, 1340, 2544, 1345,
7215      1343, 2343, 1343, 1344, 1767, 2187, 2187, 1345, 1344, 1344,
7216
7217      2224, 2187, 1345, 1345, 2545, 1344, 2139, 1344, 1635, 1345,
7218      1353, 1345, 1635, 1353, 1635, 2546, 2547, 1341, 2199, 2199,
7219      1635, 1353, 1342, 2347, 2199, 1635, 1353, 1353, 1355, 2240,
7220      2240, 1355, 2140, 1353, 1344, 1353, 2548, 1343, 1343, 1355,
7221      2347, 2549, 1345, 1356, 1355, 1355, 1356, 1569, 1569, 1569,
7222      1569, 1355, 2355, 1355, 1356, 1635, 2355, 2550, 1357, 1356,
7223      1356, 1357, 1358, 1353, 2209, 1358, 1356, 2209, 1356, 1357,
7224      1569, 2352, 1569, 1358, 1357, 1357, 2240, 2551, 1358, 1358,
7225      1355, 1357, 2209, 1357, 2352, 1358, 1359, 1358, 1636, 1359,
7226      1360, 2552, 1636, 1360, 1636, 1569, 2344, 1359, 2344, 1356,
7227
7228      1636, 1360, 1359, 1359, 2502, 1636, 1360, 1360, 2165, 1359,
7229      1569, 1359, 2165, 1360, 2165, 1360, 1361, 1703, 1703, 1361,
7230      1362, 1703, 1357, 1362, 2553, 1358, 2502, 1361, 2345, 1703,
7231      2371, 1362, 1361, 1361, 1703, 1636, 1362, 1362, 2345, 1361,
7232      2371, 1361, 1359, 1362, 2254, 1362, 1367, 2254, 2168, 1367,
7233      1446, 1446, 2168, 1446, 2168, 2165, 2254, 1367, 2241, 2241,
7234      1360, 1446, 1367, 1367, 1703, 2554, 1446, 1446, 1361, 1367,
7235      2555, 1367, 1362, 1363, 1363, 1363, 1363, 1363, 1363, 1363,
7236      1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363,
7237      1363, 1363, 1363, 1364, 2556, 2168, 1364, 1363, 1363, 1363,
7238
7239      1363, 1363, 1363, 1365, 1364, 2241, 1365, 2557, 2300, 1364,
7240      1364, 2300, 1367, 2558, 1365, 2354, 1364, 2559, 1364, 1365,
7241      1365, 1363, 1363, 1363, 1363, 1760, 1365, 1641, 1365, 2351,
7242      1363, 1641, 2354, 1641, 1760, 1760, 1760, 1760, 2351, 1641,
7243      1774, 1774, 1774, 1774, 1641, 2310, 2560, 1366, 2310, 1364,
7244      1366, 1774, 1363, 1363, 1363, 1363, 1363, 1365, 1366, 2300,
7245      1760, 2561, 1368, 1366, 1366, 1368, 1369, 2562, 2233, 1369,
7246      1366, 2233, 1366, 1368, 1641, 2566, 2357, 1369, 1368, 1368,
7247      2497, 1377, 1369, 1369, 1377, 1368, 2233, 1368, 2568, 1369,
7248      1760, 1369, 1377, 2357, 2244, 2244, 1378, 1377, 1377, 1378,
7249
7250      2245, 2245, 2569, 1366, 1377, 2497, 1377, 1378, 2310, 2497,
7251      2570, 1381, 1378, 1378, 1381, 2501, 2571, 2572, 1368, 1378,
7252      2358, 1378, 1381, 1768, 1768, 1768, 1768, 1381, 1381, 2358,
7253      1768, 2573, 1369, 2574, 1381, 1383, 1381, 2501, 1383, 1467,
7254      1467, 2244, 1467, 1814, 1814, 2575, 1383, 2245, 1814, 1814,
7255      1467, 1383, 1383, 2576, 2577, 1467, 1467, 2578, 1383, 1814,
7256      1383, 2579, 1378, 1802, 1802, 1802, 1802, 2585, 2501, 2586,
7257      1802, 1381, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
7258      1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
7259      1382, 1382, 1384, 1383, 2587, 1384, 1382, 1382, 1382, 1382,
7260
7261      1382, 1382, 1385, 1384, 1768, 1385, 2594, 2504, 1384, 1384,
7262      2169, 2504, 1814, 1385, 2169, 1384, 2169, 1384, 1385, 1385,
7263      1382, 1382, 1382, 1382, 2494, 1385, 1642, 1385, 2583, 1382,
7264      1642, 2583, 1642, 2504, 2307, 2307, 2307, 2307, 1642, 1786,
7265      1786, 1786, 1786, 1642, 1384, 1386, 2583, 2595, 1386, 2494,
7266      1786, 1382, 1382, 1382, 1382, 1382, 1386, 2169, 1385, 2597,
7267      1387, 1386, 1386, 1387, 1388, 2220, 2220, 1388, 1386, 2220,
7268      1386, 1387, 2494, 1642, 2506, 1388, 1387, 1387, 2506, 1389,
7269      1388, 1388, 1389, 1387, 2598, 1387, 2599, 1388, 2582, 1388,
7270      1389, 2600, 2601, 2605, 1390, 1389, 1389, 1390, 1391, 2582,
7271
7272      2506, 1391, 1389, 2307, 1389, 1390, 2607, 2584, 1386, 1391,
7273      1390, 1390, 2220, 2495, 1391, 1391, 1387, 1390, 2584, 1390,
7274      2609, 1391, 2609, 1391, 1392, 2589, 2496, 1392, 2603, 1763,
7275      1763, 1763, 1763, 1388, 2611, 1392, 2589, 2618, 2495, 1393,
7276      1392, 1392, 1393, 1394, 2495, 1390, 1394, 1392, 1389, 1392,
7277      1393, 2496, 1763, 2603, 1394, 1393, 1393, 2496, 1395, 1394,
7278      1394, 1395, 1393, 2610, 1393, 2610, 1394, 2591, 1394, 1395,
7279      2619, 1391, 2620, 1396, 1395, 1395, 1396, 1763, 2591, 2621,
7280      2622, 1395, 2623, 1395, 1396, 1803, 1803, 1803, 1803, 1396,
7281      1396, 2624, 1803, 2625, 1397, 1392, 1396, 1397, 1396, 2626,
7282
7283      2627, 2628, 1393, 2629, 1398, 1397, 2638, 1398, 2642, 2644,
7284      1397, 1397, 2658, 1394, 2656, 1398, 2659, 1397, 1395, 1397,
7285      1398, 1398, 2676, 1399, 2564, 2677, 1399, 1398, 2564, 1398,
7286      2564, 2692, 2693, 1400, 1399, 2694, 1400, 2645, 1396, 1399,
7287      1399, 2644, 2656, 2659, 1400, 2646, 1399, 2164, 1399, 1400,
7288      1400, 2164, 1401, 2164, 2593, 1401, 1400, 2593, 1400, 2164,
7289      1397, 2649, 1402, 1401, 2164, 1402, 2651, 2646, 1401, 1401,
7290      2650, 2564, 2593, 1402, 2645, 1401, 1398, 1401, 1402, 1402,
7291      1399, 1403, 2647, 2649, 1403, 1402, 2652, 1402, 1988, 1988,
7292      1988, 1988, 1403, 2696, 2164, 1988, 1404, 1403, 1403, 1404,
7293
7294      2377, 2657, 1400, 2377, 1403, 2651, 1403, 1404, 2652, 2661,
7295      2650, 1405, 1404, 1404, 1405, 2647, 2660, 1401, 1402, 1404,
7296      2662, 1404, 1405, 2377, 2663, 2377, 1406, 1405, 1405, 1406,
7297      1407, 2661, 2670, 1407, 1405, 2664, 1405, 1406, 2667, 2668,
7298      2662, 1407, 1406, 1406, 2663, 2657, 1407, 1407, 2666, 1406,
7299      2660, 1406, 1403, 1407, 1408, 1407, 1404, 1408, 1410, 2664,
7300      2565, 1410, 2668, 2670, 2565, 1408, 2565, 2665, 1404, 1410,
7301      1408, 1408, 2667, 1409, 1410, 1410, 1409, 1408, 2669, 1408,
7302      1406, 1410, 1405, 1410, 1409, 2666, 2672, 2665, 1411, 1409,
7303      1409, 1411, 1412, 2697, 2698, 1412, 1409, 1407, 1409, 1411,
7304
7305      2699, 2671, 2669, 1412, 1411, 1411, 2700, 2565, 1412, 1412,
7306      2672, 1411, 2673, 1411, 2701, 1412, 2674, 1412, 1413, 2679,
7307      2681, 1413, 2682, 1410, 1408, 1804, 1804, 1804, 1804, 1413,
7308      1989, 1989, 1989, 1989, 1413, 1413, 1804, 1989, 2671, 1409,
7309      2678, 1413, 1414, 1413, 1411, 1414, 1415, 2684, 1412, 1415,
7310      2685, 2673, 2702, 1414, 2681, 2674, 2679, 1415, 1414, 1414,
7311      2703, 2682, 1415, 1415, 2678, 1414, 2704, 1414, 2683, 1415,
7312      1416, 1415, 2684, 1416, 1417, 2705, 2680, 1417, 2706, 2680,
7313      2707, 1416, 2685, 2686, 1413, 1417, 1416, 1416, 2689, 2718,
7314      1417, 1417, 2683, 1416, 2690, 1416, 2774, 1417, 1418, 1417,
7315
7316      2775, 1418, 1414, 1424, 1424, 1424, 1424, 2686, 2776, 1418,
7317      1424, 1415, 2778, 2691, 1418, 1418, 2779, 1419, 2780, 2689,
7318      1419, 1418, 2785, 1418, 2786, 2690, 1424, 2680, 1419, 1417,
7319      2787, 2781, 1420, 1419, 1419, 1420, 1990, 1990, 1990, 1990,
7320      1419, 1416, 1419, 1420, 2788, 2782, 2789, 1990, 1420, 1420,
7321      1418, 1424, 2691, 2790, 2783, 1420, 2781, 1420, 1425, 1425,
7322      1425, 1425, 2788, 2791, 2781, 1425, 2788, 2792, 2793, 1419,
7323      2782, 1426, 1426, 1426, 1426, 1431, 1431, 2794, 1431, 2783,
7324      1940, 1425, 1426, 1940, 1424, 2795, 1431, 1762, 1762, 1762,
7325      1762, 1431, 1431, 2782, 1426, 1420, 1426, 2784, 1431, 1762,
7326
7327      1431, 1432, 1432, 1940, 1432, 1940, 1425, 2805, 2806, 2807,
7328      1762, 2810, 1432, 2252, 2252, 2252, 2252, 1432, 1432, 1426,
7329      2252, 2811, 2784, 2812, 1432, 2813, 1432, 1433, 1433, 2814,
7330      1433, 1435, 1435, 2815, 1435, 1762, 1940, 2784, 1433, 1425,
7331      2816, 2817, 1435, 1433, 1433, 1431, 2818, 1435, 1435, 2819,
7332      1433, 2820, 1433, 2821, 1435, 2822, 1435, 2797, 1436, 1436,
7333      2797, 1436, 2356, 2356, 2356, 2356, 2823, 2824, 1889, 1436,
7334      2825, 1889, 2826, 1432, 1436, 1436, 2827, 2828, 2829, 1889,
7335      2797, 1436, 2830, 1436, 1889, 1889, 2804, 2804, 2804, 2804,
7336      2831, 1889, 2832, 1889, 2252, 2833, 2834, 1435, 1433, 1434,
7337
7338      1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434,
7339      1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1437,
7340      1437, 1436, 1437, 1434, 1434, 1434, 1434, 1434, 1434, 2835,
7341      1437, 2837, 2840, 2841, 2836, 1437, 1437, 2836, 1889, 2842,
7342      1438, 1438, 1437, 1438, 1437, 2844, 2850, 1434, 1434, 1434,
7343      1434, 1438, 2836, 2843, 2847, 2853, 1438, 1438, 2838, 2253,
7344      2253, 2253, 2253, 1438, 2804, 1438, 2253, 2843, 2854, 2838,
7345      2848, 1437, 1439, 1439, 2855, 1439, 2846, 2856, 1434, 1434,
7346      1434, 1434, 1434, 1439, 2846, 2857, 2858, 2859, 1439, 1439,
7347      1440, 1440, 2860, 1440, 2861, 1439, 1438, 1439, 2847, 2851,
7348
7349      2851, 1440, 2851, 2862, 2863, 2870, 1440, 1440, 1441, 1441,
7350      2878, 1441, 2880, 1440, 2874, 1440, 2848, 2848, 2062, 1441,
7351      2894, 2062, 2846, 2846, 1441, 1441, 1439, 1442, 1442, 2062,
7352      1442, 1441, 2873, 1441, 2874, 2876, 2876, 2873, 1442, 2883,
7353      2253, 2062, 2883, 1442, 1442, 1787, 1787, 1787, 1787, 2895,
7354      1442, 2877, 1442, 2852, 1443, 1443, 2877, 1443, 2906, 1440,
7355      1788, 1788, 1788, 1788, 2909, 1443, 2062, 2881, 1787, 2852,
7356      1443, 1443, 2062, 2613, 2613, 2613, 2613, 1443, 1441, 1443,
7357      2613, 2881, 2879, 1788, 1444, 1444, 2903, 1444, 1445, 1445,
7358      2903, 1445, 2910, 1787, 2852, 1444, 2897, 1442, 1442, 1445,
7359
7360      1444, 1444, 2879, 2911, 1445, 1445, 1443, 1444, 1788, 1444,
7361      2884, 1445, 2897, 1445, 1450, 1450, 2912, 1450, 1451, 1451,
7362      2885, 1451, 2884, 2885, 2887, 1450, 2891, 2852, 2888, 1451,
7363      1450, 1450, 2913, 2888, 1451, 1451, 2914, 1450, 2915, 1450,
7364      1444, 1451, 2887, 1451, 2898, 1452, 1452, 2898, 1452, 1453,
7365      1453, 2891, 1453, 2892, 2613, 2896, 1452, 2899, 2892, 2900,
7366      1453, 1452, 1452, 2901, 2900, 1453, 1453, 1450, 1452, 2916,
7367      1452, 2899, 1453, 2896, 1453, 1454, 1454, 2901, 1454, 1455,
7368      1455, 2917, 1455, 2902, 2907, 2918, 1454, 2919, 2902, 2907,
7369      1455, 1454, 1454, 2920, 2908, 1455, 1455, 2908, 1454, 2908,
7370
7371      1454, 1452, 1455, 2927, 1455, 1456, 1456, 2963, 1456, 1457,
7372      1457, 2965, 1457, 1453, 2889, 2889, 1456, 2889, 2968, 2908,
7373      1457, 1456, 1456, 2969, 1894, 1457, 1457, 1894, 1456, 2972,
7374      1456, 1894, 1457, 2973, 1457, 1455, 1894, 2975, 1454, 1458,
7375      1458, 2977, 1458, 1894, 1894, 1894, 1894, 2978, 2979, 2980,
7376      1458, 2983, 2980, 2984, 2985, 1458, 1458, 1460, 1460, 2975,
7377      1460, 1457, 1458, 2890, 1458, 2889, 2890, 2986, 1460, 2987,
7378      2988, 2989, 2980, 1460, 1460, 1456, 2259, 2259, 2259, 2259,
7379      1460, 2975, 1460, 2990, 2991, 2845, 2992, 2259, 2845, 2993,
7380      2994, 1458, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459,
7381
7382      1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459,
7383      1459, 1459, 2995, 1460, 2890, 2996, 1459, 1459, 1459, 1459,
7384      1459, 1459, 1461, 1461, 2997, 1461, 2260, 2260, 2260, 2260,
7385      2998, 2845, 2845, 1461, 3000, 2971, 3001, 2260, 1461, 1461,
7386      1459, 1459, 1459, 1459, 3002, 1461, 3003, 1461, 3005, 1459,
7387      2274, 2274, 2274, 2274, 3006, 3008, 1571, 1571, 1571, 1571,
7388      2971, 2274, 2538, 2538, 2538, 2538, 1462, 1462, 2971, 1462,
7389      3009, 1459, 1459, 1459, 1459, 1459, 1461, 1462, 3004, 1571,
7390      3011, 1571, 1462, 1462, 1463, 1463, 2538, 1463, 2538, 1462,
7391      3013, 1462, 3004, 3015, 3018, 1463, 3019, 3023, 3014, 3027,
7392
7393      1463, 1463, 1464, 1464, 1571, 1464, 3028, 1463, 2999, 1463,
7394      2999, 3020, 3020, 1464, 3020, 3029, 2538, 3030, 1464, 1464,
7395      1465, 1465, 1462, 1465, 3016, 1464, 1571, 1464, 2538, 3018,
7396      3031, 1465, 2538, 2538, 3032, 2538, 1465, 1465, 1466, 1466,
7397      2538, 1466, 3014, 1465, 3021, 1465, 3033, 3021, 3034, 1466,
7398      1463, 2999, 2999, 3007, 1466, 1466, 1471, 1471, 1464, 1471,
7399      3035, 1466, 3021, 1466, 3007, 2486, 3040, 1471, 2486, 3050,
7400      3016, 3016, 1471, 1471, 1472, 1472, 2486, 1472, 3053, 1471,
7401      3010, 1471, 3054, 3010, 3064, 1472, 1465, 3065, 2486, 3044,
7402      1472, 1472, 1473, 1473, 3066, 1473, 3062, 1472, 3043, 1472,
7403
7404      3067, 3007, 3012, 1473, 3025, 3025, 3025, 3025, 1473, 1473,
7405      3012, 3025, 3044, 2486, 3068, 1473, 3069, 1473, 1475, 1475,
7406      3062, 1475, 1476, 1476, 3075, 1476, 3010, 3010, 2486, 1475,
7407      3078, 3079, 3080, 1476, 1475, 1475, 3081, 3043, 1476, 1476,
7408      1472, 1475, 3082, 1475, 3083, 1476, 3084, 1476, 3012, 3012,
7409      3017, 3017, 1473, 1474, 1474, 1474, 1474, 1474, 1474, 1474,
7410      1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474,
7411      1474, 1474, 1474, 3070, 1476, 3071, 1475, 1474, 1474, 1474,
7412      1474, 1474, 1474, 1477, 1477, 3025, 1477, 3055, 3072, 3056,
7413      1570, 1570, 1570, 1570, 1477, 3085, 3071, 3017, 3017, 1477,
7414
7415      1477, 1474, 1474, 1474, 1474, 3086, 1477, 3093, 1477, 3095,
7416      1474, 3070, 3055, 1570, 3056, 1570, 3074, 3072, 1789, 1789,
7417      1789, 1789, 3096, 3107, 3114, 3076, 1478, 1478, 3076, 1478,
7418      3076, 3115, 1474, 1474, 1474, 1474, 1474, 1478, 1570, 1477,
7419      3117, 1789, 1478, 1478, 1479, 1479, 3119, 1479, 3122, 1478,
7420      3076, 1478, 3051, 3051, 3118, 1479, 3074, 3051, 3051, 1570,
7421      1479, 1479, 1480, 1480, 3120, 1480, 1789, 1479, 3051, 1479,
7422      3123, 3124, 3120, 1480, 3116, 3125, 3118, 3126, 1480, 1480,
7423      1481, 1481, 3127, 1481, 3128, 1480, 3120, 1480, 3129, 1478,
7424      3130, 1481, 2777, 2777, 2777, 2777, 1481, 1481, 3118, 3116,
7425
7426      1479, 1482, 1482, 1481, 1482, 1481, 3116, 3131, 2539, 2539,
7427      2539, 2539, 1482, 3132, 3133, 2777, 3135, 1482, 1482, 1483,
7428      1483, 3051, 1483, 3136, 1482, 3137, 1482, 3139, 3140, 3141,
7429      1483, 1480, 2539, 3142, 2539, 1483, 1483, 1484, 1484, 3134,
7430      1484, 3134, 1483, 3143, 1483, 3144, 3147, 3145, 1484, 1481,
7431      3151, 3157, 1482, 1484, 1484, 1485, 1485, 3158, 1485, 3159,
7432      1484, 3146, 1484, 3161, 3146, 3166, 1485, 3170, 2539, 3172,
7433      2777, 1485, 1485, 1486, 1486, 3167, 1486, 3145, 1485, 3146,
7434      1485, 3176, 3134, 3134, 1486, 3179, 2539, 3168, 3138, 1486,
7435      1486, 3180, 1483, 3144, 1487, 1487, 1486, 1487, 1486, 3138,
7436
7437      3168, 2540, 2540, 2540, 2540, 1487, 3174, 3167, 1484, 3174,
7438      1487, 1487, 1488, 1488, 3181, 1488, 3185, 1487, 1485, 1487,
7439      3186, 3187, 3188, 1488, 3189, 2540, 3181, 2540, 1488, 1488,
7440      1489, 1489, 3191, 1489, 3194, 1488, 3138, 1488, 3197, 3193,
7441      3192, 1489, 3198, 1486, 3199, 3174, 1489, 1489, 1490, 1490,
7442      3200, 1490, 3201, 1489, 1487, 1489, 2540, 3192, 3209, 1490,
7443      3210, 3211, 3213, 3214, 1490, 1490, 1491, 1491, 3212, 1491,
7444      3193, 1490, 3194, 1490, 3215, 3216, 3217, 1491, 1488, 2540,
7445      3218, 3212, 1491, 1491, 1492, 1492, 3219, 1492, 3220, 1491,
7446      3212, 1491, 3221, 3091, 3222, 1492, 3091, 3223, 3224, 3225,
7447
7448      1492, 1492, 1489, 1493, 1493, 1490, 1493, 1492, 3226, 1492,
7449      2541, 2541, 2541, 2541, 1493, 3236, 3091, 3239, 3091, 1493,
7450      1493, 1494, 1494, 3243, 1494, 3244, 1493, 3227, 1493, 3245,
7451      3227, 3250, 1494, 3254, 2541, 1491, 2541, 1494, 1494, 1495,
7452      1495, 3255, 1495, 3245, 1494, 3277, 1494, 3171, 3171, 1492,
7453      1495, 3228, 3171, 3171, 3228, 1495, 1495, 1496, 1496, 1493,
7454      1496, 3278, 1495, 3171, 1495, 3279, 3178, 3232, 1496, 3178,
7455      2541, 3246, 3229, 1496, 1496, 3229, 3232, 3178, 1497, 1497,
7456      1496, 1497, 1496, 1797, 1797, 1797, 1797, 3230, 2541, 1497,
7457      3230, 3178, 1494, 3242, 1497, 1497, 3242, 1498, 1498, 1495,
7458
7459      1498, 1497, 3246, 1497, 3242, 3256, 1797, 3280, 1498, 3281,
7460      3280, 1495, 3231, 1498, 1498, 3231, 3171, 3256, 1499, 1499,
7461      1498, 1499, 1498, 3247, 3286, 3284, 3247, 2773, 1496, 1499,
7462      2773, 1797, 1497, 3288, 1499, 1499, 1500, 1500, 2773, 1500,
7463      3282, 1499, 3284, 1499, 3290, 3260, 3247, 1500, 3260, 3291,
7464      2773, 3292, 1500, 1500, 1501, 1501, 3260, 1501, 3301, 1500,
7465      3231, 1500, 3196, 3196, 1498, 1501, 3302, 3196, 3196, 3303,
7466      1501, 1501, 3282, 1502, 1502, 2773, 1502, 1501, 3196, 1501,
7467      2275, 2275, 2275, 2275, 1502, 3304, 3283, 3268, 1499, 1502,
7468      1502, 2275, 1503, 1503, 3305, 1503, 1502, 2773, 1502, 3268,
7469
7470      3312, 2962, 1500, 1503, 2962, 3313, 3320, 3326, 1503, 1503,
7471      1504, 1504, 2962, 1504, 3328, 1503, 3347, 1503, 3283, 1501,
7472      3311, 1504, 3314, 3311, 2962, 3314, 1504, 1504, 3330, 1502,
7473      3327, 3196, 3348, 1504, 3350, 1504, 1505, 1505, 3327, 1505,
7474      1506, 1506, 3315, 1506, 3355, 3315, 3356, 1505, 1503, 2962,
7475      3351, 1506, 1505, 1505, 3357, 3316, 1506, 1506, 3316, 1505,
7476      3330, 1505, 3351, 1506, 3352, 1506, 1507, 1507, 2962, 1507,
7477      1508, 1508, 3317, 1508, 3366, 3317, 1504, 1507, 3367, 3369,
7478      3352, 1508, 1507, 1507, 3370, 3318, 1508, 1508, 3318, 1507,
7479      3372, 1507, 3374, 1508, 3375, 1508, 1505, 1509, 1509, 3377,
7480
7481      1509, 1510, 1510, 3319, 1510, 1506, 3319, 3331, 1509, 3380,
7482      3331, 3382, 1510, 1509, 1509, 3383, 3363, 1510, 1510, 3363,
7483      1509, 3399, 1509, 3363, 1510, 1508, 1510, 1511, 1511, 3400,
7484      1511, 1572, 1572, 1572, 1572, 3403, 3404, 1507, 1511, 1573,
7485      1573, 1573, 1573, 1511, 1511, 1574, 1574, 1574, 1574, 1509,
7486      1511, 3319, 1511, 1510, 1572, 3409, 1572, 1579, 1579, 1579,
7487      1579, 3410, 1573, 3373, 1573, 3381, 3373, 3381, 1574, 3411,
7488      1574, 1580, 1580, 1580, 1580, 1581, 1581, 1581, 1581, 1572,
7489      1579, 3412, 1579, 3413, 1572, 3376, 3253, 1573, 3376, 3253,
7490      1511, 1573, 3402, 1574, 1580, 3402, 1580, 3253, 1581, 3414,
7491
7492      1581, 1582, 1582, 1582, 1582, 1579, 3401, 1583, 1583, 1583,
7493      1583, 3253, 1584, 1584, 1584, 1584, 3415, 1995, 1995, 1580,
7494      1995, 3401, 3397, 1581, 1582, 3397, 1582, 3421, 1995, 1580,
7495      1583, 3421, 1583, 1995, 1995, 1584, 3422, 1584, 1581, 1585,
7496      1585, 1585, 1585, 1586, 1586, 1586, 1586, 3397, 3431, 1582,
7497      1587, 1587, 1587, 1587, 3433, 1583, 3333, 1582, 3406, 3333,
7498      1584, 3406, 1585, 3434, 1585, 3406, 1586, 3333, 1586, 1588,
7499      1588, 1588, 1588, 1587, 3441, 1587, 1583, 1584, 3442, 1589,
7500      1589, 1589, 1589, 3026, 3026, 3026, 3026, 1585, 3432, 3443,
7501      3026, 1586, 1588, 3338, 1588, 1585, 3338, 3408, 1587, 3444,
7502
7503      3408, 3432, 1589, 1586, 1589, 1590, 1590, 1590, 1590, 3408,
7504      1587, 3445, 2290, 2290, 2290, 2290, 3338, 1588, 3449, 1791,
7505      1791, 1791, 1791, 2290, 1588, 3450, 1791, 1589, 1590, 1771,
7506      1590, 1589, 1771, 3455, 3430, 3300, 1771, 3430, 3300, 3457,
7507      3300, 1771, 1791, 1799, 1799, 1799, 1799, 3458, 1771, 1771,
7508      1771, 1771, 1771, 1590, 1799, 3462, 3463, 1590, 1759, 1759,
7509      1759, 1759, 3300, 3465, 3467, 3362, 1799, 1791, 3362, 1759,
7510      1759, 3446, 3448, 1759, 3446, 3353, 3362, 1771, 3353, 3471,
7511      3468, 1759, 1759, 1759, 3448, 1791, 1798, 1798, 1798, 1798,
7512      3472, 1799, 3474, 1798, 1800, 1800, 1800, 1800, 3353, 3454,
7513
7514      1791, 1895, 3454, 3476, 1895, 1800, 1759, 1759, 1895, 1798,
7515      1771, 3364, 3468, 1895, 3364, 3477, 3364, 1800, 3479, 1800,
7516      1895, 1895, 1895, 1895, 2291, 2291, 2291, 2291, 1759, 1764,
7517      1764, 1764, 1764, 3464, 1798, 2291, 1764, 3473, 3364, 3456,
7518      3464, 1764, 1800, 1985, 1985, 1985, 1985, 3473, 1764, 1764,
7519      1764, 1764, 1764, 2434, 2434, 2434, 2434, 1809, 1809, 1809,
7520      1809, 3480, 3478, 3481, 2434, 3478, 1985, 1798, 1809, 1809,
7521      3456, 3483, 1809, 1810, 1810, 1810, 1810, 1764, 3487, 2179,
7522      1809, 1809, 1809, 2178, 1810, 1810, 3384, 3389, 1810, 3384,
7523      3389, 1985, 1815, 1815, 1815, 1815, 1810, 1810, 3389, 1815,
7524
7525      3154, 3154, 3154, 3154, 2177, 1809, 1809, 3154, 2176, 3384,
7526      1764, 1766, 1766, 1766, 1766, 1815, 3385, 3407, 1766, 3385,
7527      3407, 1810, 1810, 1766, 3407, 3482, 1825, 1825, 1825, 1825,
7528      1766, 1766, 1766, 1766, 1766, 3482, 2175, 1825, 1825, 3385,
7529      1815, 1825, 1826, 1826, 1826, 1826, 2174, 2173, 2172, 1825,
7530      1825, 1825, 3485, 1826, 1826, 3485, 3488, 1826, 1815, 1766,
7531      1914, 3349, 3488, 1914, 3349, 1826, 1826, 2614, 2614, 2614,
7532      2614, 1914, 2171, 1815, 1825, 1825, 1914, 1914, 2614, 2286,
7533      2286, 2286, 2286, 1914, 2162, 1914, 1986, 1986, 1986, 1986,
7534      1826, 1826, 1766, 1792, 1792, 1792, 1792, 1986, 3469, 3469,
7535
7536      3469, 3469, 2286, 1915, 1792, 1792, 1915, 2160, 1792, 1986,
7537      2966, 2966, 2966, 2966, 1915, 3349, 1792, 1792, 1792, 1915,
7538      1915, 1916, 3436, 2156, 1916, 3436, 1915, 2286, 1915, 3436,
7539      1914, 3349, 1916, 2966, 1986, 3573, 3418, 1916, 1916, 3418,
7540      3573, 1792, 1792, 3657, 1916, 2155, 1916, 3418, 3657, 1792,
7541      1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830,
7542      1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830,
7543      1915, 2154, 2153, 2152, 1830, 1830, 1830, 1830, 1830, 1830,
7544      1924, 2151, 3486, 1924, 3475, 3475, 3475, 3475, 2966, 3486,
7545      1916, 1924, 2110, 2110, 2110, 2110, 1924, 1924, 1830, 1830,
7546
7547      1830, 1830, 2150, 1924, 2255, 1924, 2149, 2255, 2148, 3420,
7548      3425, 2255, 3420, 3425, 2147, 2110, 2255, 2110, 2146, 2145,
7549      3420, 3425, 2133, 2255, 2255, 2255, 2255, 2255, 2132, 1830,
7550      1830, 1830, 1830, 1830, 1837, 1837, 1837, 1837, 2131, 1926,
7551      2110, 3437, 1926, 2130, 3437, 1837, 1837, 2129, 3438, 1837,
7552      1926, 3438, 2255, 3437, 2128, 1926, 1926, 1837, 1837, 1837,
7553      3438, 2127, 1926, 1927, 1926, 2126, 1927, 2615, 2615, 2615,
7554      2615, 2112, 3440, 3489, 1927, 3440, 3489, 2108, 2615, 1927,
7555      1927, 2107, 1837, 1837, 3440, 2255, 1927, 2106, 1927, 2105,
7556      1837, 1861, 1861, 1861, 1861, 2115, 2115, 2115, 2115, 2104,
7557
7558      2103, 1926, 1861, 1861, 2102, 2101, 1861, 2100, 1987, 1987,
7559      1987, 1987, 3489, 2099, 1861, 1861, 1861, 2098, 2115, 1987,
7560      2115, 1929, 1927, 3447, 1929, 1928, 3447, 2097, 1928, 2096,
7561      2095, 1987, 1929, 1987, 3447, 2092, 1928, 1929, 1929, 1861,
7562      1861, 1928, 1928, 2115, 1929, 1861, 1929, 2085, 1928, 2078,
7563      1928, 2077, 3155, 3155, 3155, 3155, 1987, 2076, 2115, 3155,
7564      2071, 1861, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925,
7565      1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925,
7566      1925, 1925, 2616, 2616, 2616, 2616, 1925, 1925, 1925, 1925,
7567      1925, 1925, 1929, 2616, 3461, 1928, 3452, 3461, 1930, 3452,
7568
7569      2070, 1930, 2114, 2114, 2114, 2114, 3461, 3452, 2069, 1930,
7570      1925, 1925, 1925, 1925, 1930, 1930, 2068, 3511, 3511, 1925,
7571      2067, 1930, 3511, 1930, 2066, 2114, 3511, 2114, 2065, 2063,
7572      2061, 2116, 2116, 2116, 2116, 2060, 1931, 2058, 1997, 1931,
7573      1923, 1925, 1925, 1925, 1925, 1925, 1932, 1931, 1922, 1932,
7574      2114, 1920, 1931, 1931, 2116, 1909, 2116, 1932, 1930, 1931,
7575      1908, 1931, 1932, 1932, 1933, 3113, 1907, 1933, 3113, 1932,
7576      1906, 1932, 1905, 2114, 1934, 1933, 3113, 1934, 1903, 2116,
7577      1933, 1933, 1902, 1901, 1900, 1934, 1899, 1933, 3113, 1933,
7578      1934, 1934, 1897, 1935, 1896, 1891, 1935, 1934, 1888, 1934,
7579
7580      1887, 1886, 2116, 1936, 1935, 1882, 1936, 1867, 1931, 1935,
7581      1935, 1860, 3299, 3113, 1936, 3299, 1935, 1932, 1935, 1936,
7582      1936, 3113, 1858, 3299, 1857, 1834, 1936, 1933, 1936, 1937,
7583      1816, 1813, 1937, 1938, 1801, 3299, 1938, 1796, 1934, 1794,
7584      1937, 1790, 1785, 1784, 1938, 1937, 1937, 1783, 1939, 1938,
7585      1938, 1939, 1937, 1935, 1937, 1782, 1938, 1781, 1938, 1939,
7586      3299, 1779, 1778, 1941, 1939, 1939, 1941, 1942, 1777, 1776,
7587      1942, 1939, 1936, 1939, 1941, 1775, 1773, 1772, 1942, 1941,
7588      1941, 1765, 1748, 1942, 1942, 1937, 1941, 1746, 1941, 1740,
7589      1942, 1943, 1942, 1737, 1943, 1944, 1938, 1735, 1944, 1733,
7590
7591      3516, 3516, 1943, 1723, 1721, 3516, 1944, 1943, 1943, 3516,
7592      1945, 1944, 1944, 1945, 1943, 1941, 1943, 1712, 1944, 1939,
7593      1944, 1945, 1710, 1701, 1699, 1946, 1945, 1945, 1946, 3518,
7594      3518, 1697, 1942, 1945, 3518, 1945, 1946, 1695, 3518, 1692,
7595      1947, 1946, 1946, 1947, 3307, 3307, 3307, 3307, 1946, 1689,
7596      1946, 1947, 1688, 1686, 1683, 1948, 1947, 1947, 1948, 3521,
7597      3521, 1672, 1943, 1947, 3521, 1947, 1948, 1669, 3521, 1944,
7598      1949, 1948, 1948, 1949, 1950, 1668, 1945, 1950, 1948, 1665,
7599      1948, 1949, 1664, 1663, 1662, 1950, 1949, 1949, 1661, 1951,
7600      1950, 1950, 1951, 1949, 1946, 1949, 1660, 1950, 1659, 1950,
7601
7602      1951, 1658, 1657, 1656, 3307, 1951, 1951, 1952, 1655, 1947,
7603      1952, 1654, 1951, 1653, 1951, 1652, 1650, 1649, 1952, 1648,
7604      1948, 1647, 3307, 1952, 1952, 1953, 1646, 1950, 1953, 1637,
7605      1952, 1632, 1952, 1630, 1629, 1954, 1953, 1628, 1954, 1949,
7606      1627, 1953, 1953, 1626, 1625, 1624, 1954, 1623, 1953, 1622,
7607      1953, 1954, 1954, 1955, 3208, 1621, 1955, 3208, 1954, 1951,
7608      1954, 1620, 3523, 3523, 1955, 3208, 1619, 3523, 1618, 1955,
7609      1955, 3523, 1956, 1617, 1952, 1956, 1955, 3208, 1955, 1953,
7610      1616, 1615, 1957, 1956, 1614, 1957, 1613, 1954, 1956, 1956,
7611      1612, 1611, 1610, 1957, 1609, 1956, 1608, 1956, 1957, 1957,
7612
7613      1958, 1607, 3208, 1958, 1606, 1957, 1605, 1957, 3208, 1604,
7614      1959, 1958, 1603, 1959, 3287, 3287, 1958, 1958, 1602, 3287,
7615      3287, 1959, 1955, 1958, 1601, 1958, 1959, 1959, 1599, 1960,
7616      3287, 1598, 1960, 1959, 1957, 1959, 1597, 1596, 1595, 1956,
7617      1960, 1594, 1593, 1577, 1961, 1960, 1960, 1961, 1962, 1576,
7618      1564, 1962, 1960, 1563, 1960, 1961, 1958, 1562, 1561, 1962,
7619      1961, 1961, 1560, 1963, 1962, 1962, 1963, 1961, 1559, 1961,
7620      1959, 1962, 1558, 1962, 1963, 1557, 1556, 1555, 1964, 1963,
7621      1963, 1964, 1554, 3287, 1553, 1960, 1963, 1552, 1963, 1964,
7622      1550, 1549, 1548, 1965, 1964, 1964, 1965, 2630, 2630, 2630,
7623
7624      2630, 1964, 1547, 1964, 1965, 1546, 1545, 1533, 2630, 1965,
7625      1965, 1526, 1966, 1524, 1961, 1966, 1965, 1523, 1965, 1962,
7626      1522, 1521, 1520, 1966, 1519, 1516, 1514, 1967, 1966, 1966,
7627      1967, 2118, 2118, 2118, 2118, 1966, 1963, 1966, 1967, 1513,
7628      1469, 1448, 1968, 1967, 1967, 1968, 1969, 1964, 1421, 1969,
7629      1967, 1376, 1967, 1968, 2118, 1375, 2118, 1969, 1968, 1968,
7630      1373, 1352, 1969, 1969, 1965, 1968, 1351, 1968, 1966, 1969,
7631      1349, 1969, 1970, 1330, 1328, 1970, 1327, 1326, 1967, 2118,
7632      1325, 1324, 1323, 1970, 1321, 2118, 1320, 1971, 1970, 1970,
7633      1971, 3525, 3525, 1967, 1319, 1970, 3525, 1970, 1971, 1318,
7634
7635      3525, 1317, 1968, 1971, 1971, 1972, 1316, 1315, 1972, 1309,
7636      1971, 1969, 1971, 1308, 1290, 1242, 1972, 1238, 1212, 1207,
7637      1973, 1972, 1972, 1973, 1201, 1200, 1970, 1198, 1972, 1197,
7638      1972, 1973, 3345, 3345, 3345, 3345, 1973, 1973, 1196, 3345,
7639      1195, 1971, 1194, 1973, 1975, 1973, 1193, 1975, 2631, 2631,
7640      2631, 2631, 1191, 1190, 1976, 1975, 1189, 1976, 1188, 2631,
7641      1975, 1975, 1187, 1186, 1972, 1976, 1185, 1975, 1180, 1975,
7642      1976, 1976, 1175, 3152, 3152, 3152, 3152, 1976, 1154, 1976,
7643      3152, 1152, 1141, 1973, 1974, 1974, 1974, 1974, 1974, 1974,
7644      1974, 1974, 1974, 1974, 1974, 1974, 1974, 1974, 1974, 1974,
7645
7646      1974, 1974, 1974, 1974, 1981, 1130, 1119, 1981, 1974, 1974,
7647      1974, 1974, 1974, 1974, 1977, 1981, 1115, 1977, 1975, 1112,
7648      1981, 1981, 1109, 1108, 1976, 1977, 1106, 1981, 1096, 1981,
7649      1977, 1977, 1974, 1974, 1974, 1974, 1095, 1977, 1091, 1977,
7650      1090, 3105, 3105, 1089, 3105, 1978, 3527, 3527, 1978, 1087,
7651      1085, 3527, 3105, 1084, 3152, 3527, 1978, 3105, 3105, 1082,
7652      1081, 1978, 1978, 1974, 1974, 1974, 1974, 1974, 1978, 1977,
7653      1978, 1080, 1979, 1079, 1977, 1979, 1981, 1078, 1077, 1977,
7654      1076, 1074, 1980, 1979, 1073, 1980, 1072, 1071, 1979, 1979,
7655      1070, 1069, 1046, 1980, 1044, 1979, 1043, 1979, 1980, 1980,
7656
7657      1982, 1042, 1041, 1982, 1039, 1980, 1038, 1980, 1037, 1036,
7658      1978, 1982, 3153, 3153, 3153, 3153, 1982, 1982, 1983, 3153,
7659      1035, 1983, 1033, 1982, 1032, 1982, 1031, 1030, 1984, 1983,
7660      1979, 1984, 1029, 1022, 1983, 1983, 1021, 3529, 3529, 1984,
7661      1980, 1983, 3529, 1983, 1984, 1984, 3529, 1991, 1991, 1020,
7662      1991, 1984, 1019, 1984, 3233, 3233, 3233, 3233, 1991, 1017,
7663      1016, 3233, 1015, 1991, 1991, 1992, 1992, 1014, 1992, 1013,
7664      1991, 1982, 1991, 1011, 3531, 3531, 1992, 1010, 1009, 3531,
7665      1008, 1992, 1992, 3531, 1984, 1007, 1003, 1983, 1992, 1002,
7666      1992, 1993, 1993, 3153, 1993, 1994, 1994, 1001, 1994, 1000,
7667
7668      3535, 3535, 1993,  999,  994, 3535, 1994, 1993, 1993, 3535,
7669       993, 1994, 1994,  992, 1993,  991, 1993, 1991, 1994,  963,
7670      1994,  962, 1999, 1999,  955, 1999, 2003, 2003,  954, 2003,
7671       953,  952, 1992, 1999,  951, 3233,  950, 2003, 1999, 1999,
7672       948,  947, 2003, 2003,  946, 1999,  945, 1999,  944, 2003,
7673       942, 2003,  941, 3310, 3310, 3310, 3310,  940,  939,  938,
7674      1993, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000,
7675      2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000,
7676      2000,  937,  936,  924,  923, 2000, 2000, 2000, 2000, 2000,
7677      2000, 2001, 2001,  917, 2001,  916, 2003,  915, 2280, 2280,
7678
7679      2280, 2280, 2001,  912,  909, 2280,  908, 2001, 2001, 2000,
7680      2000, 2000, 2000, 3310, 2001,  907, 2001,  906, 2000,  904,
7681       901, 2280, 2002, 2002,  900, 2002,  899, 2117, 2117, 2117,
7682      2117, 3310,  893, 2002,  892,  890,  882,  881, 2002, 2002,
7683      2000, 2000, 2000, 2000, 2000, 2002, 2280, 2002, 2004, 2004,
7684      2117, 2004, 2117, 2001,  846, 2120, 2120, 2120, 2120, 2004,
7685       816,  804,  799,  798, 2004, 2004, 2005, 2005,  759, 2005,
7686       730, 2004,  729, 2004,  726, 2117,  721, 2005, 2120, 2280,
7687      2120, 2002, 2005, 2005, 2006, 2006,  719, 2006,  717, 2005,
7688       716, 2005,  714,  713, 2117, 2006,  695,  662,  631,  627,
7689
7690      2006, 2006,  622, 2120,  621, 2007, 2007, 2006, 2007, 2006,
7691       614, 2120, 3160, 3160, 3160, 3160, 2007,  612,  610, 2004,
7692       609, 2007, 2007, 3160, 2008, 2008, 2005, 2008, 2007,  598,
7693      2007, 2287, 2287, 2287, 2287, 2008, 3156, 3156, 3156, 3156,
7694      2008, 2008, 2009, 2009,  582, 2009,  580, 2008, 3156, 2008,
7695       576, 3156,  568, 2009, 2287,  563, 2006,  556, 2009, 2009,
7696      3156, 2010, 2010,  517, 2010, 2009,  515, 2009, 3391, 3391,
7697      3391, 3391, 2010,  508,  507, 3391, 2007, 2010, 2010, 2287,
7698      2011, 2011,  497, 2011, 2010, 3156, 2010, 2008,  496,  495,
7699       492, 2011, 2567, 2567, 2567, 2567, 2011, 2011, 2012, 2012,
7700
7701       491, 2012, 2009, 2011,  489, 2011,  488,  486,  485, 2012,
7702       473,  458,  454,  448, 2012, 2012, 2013, 2013,  447, 2013,
7703       446, 2012,  444, 2012,  443,  442,  440, 2013,  439,  438,
7704      2010,  437, 2013, 2013, 2014, 2014, 2011, 2014,  436, 2013,
7705       427, 2013,  426,  425,  423, 2014, 2567,  422,  421,  419,
7706      2014, 2014, 2015, 2015,  418, 2015,  417, 2014, 2567, 2014,
7707       416, 2012, 2567, 2015,  415, 2567,  413,  400, 2015, 2015,
7708      2567, 3539, 3539,  399,  398, 2015, 3539, 2015, 2016, 2016,
7709      3539, 2016, 2017, 2017,  397, 2017,  396, 2013,  394, 2016,
7710      2014, 3541, 3541, 2017, 2016, 2016, 3541,  366, 2017, 2017,
7711
7712      3541, 2016,  363, 2016, 2015, 2017,  362, 2017, 2018, 2018,
7713       361, 2018, 2019, 2019,  358, 2019,  357, 3543, 3543, 2018,
7714       356,  354, 3543, 2019, 2018, 2018, 3543,  353, 2019, 2019,
7715       352, 2018,  350, 2018,  349, 2019,  329, 2019, 2020, 2020,
7716       324, 2020,  319, 2016,  318, 3308, 3308, 3308, 3308, 2020,
7717       317,  316,  308, 2017, 2020, 2020, 2021, 2021,  293, 2021,
7718       292, 2020,  248, 2020,  247,  243,  215, 2021,  208,  197,
7719       196,  195, 2021, 2021, 2022, 2022,  165, 2022, 2019, 2021,
7720       157, 2021, 2018,  153,  147, 2022,  146,  141,  139,  128,
7721      2022, 2022, 2023, 2023,  127, 2023,  124, 2022,  121, 2022,
7722
7723      3308,  119,  110, 2023,  101,   97,   91, 2020, 2023, 2023,
7724      2024, 2024,   82, 2024,   74, 2023,   67, 2023,    0, 3545,
7725      3545, 2024,    0, 3308, 3545, 2021, 2024, 2024, 3545, 2025,
7726      2025,    0, 2025, 2024,    0, 2024,    0,    0,    0, 2022,
7727      2025,    0,    0,    0,    0, 2025, 2025,    0, 2026, 2026,
7728         0, 2026, 2025,    0, 2025, 3365, 3365, 3365, 3365, 2026,
7729         0, 2023,    0, 2024, 2026, 2026, 2027, 2027,    0, 2027,
7730         0, 2026,    0, 2026,    0,    0,    0, 2027,    0, 3365,
7731         0, 3365, 2027, 2027, 2028, 2028,    0, 2028,    0, 2027,
7732         0, 2027,    0,    0,    0, 2028,    0,    0,    0, 2025,
7733
7734      2028, 2028, 2029, 2029,    0, 2029,    0, 2028,    0, 2028,
7735         0,    0,    0, 2029,    0, 2026,    0,    0, 2029, 2029,
7736      2027, 2030, 2030,    0, 2030, 2029, 3365, 2029,    0,    0,
7737         0,    0, 2030, 3365,    0,    0, 2028, 2030, 2030, 2031,
7738      2031,    0, 2031,    0, 2030,    0, 2030,    0,    0,    0,
7739      2031, 3234, 3234, 3234, 3234, 2031, 2031, 2032, 2032,    0,
7740      2032,    0, 2031, 3234, 2031,    0, 3234,    0, 2032,    0,
7741         0, 2029,    0, 2032, 2032, 3234, 2033, 2033,    0, 2033,
7742      2032,    0, 2032, 3306, 3306, 3306, 3306, 2033, 2030,    0,
7743         0, 2031, 2033, 2033, 2034, 2034,    0, 2034,    0, 2033,
7744
7745      3234, 2033,    0,    0,    0, 2034, 2288, 2288, 2288, 2288,
7746      2034, 2034,    0, 2032,    0, 2035, 2035, 2034, 2035, 2034,
7747      2119, 2119, 2119, 2119,    0,    0, 2035,    0,    0, 2288,
7748         0, 2035, 2035,    0,    0,    0, 2033, 3306, 2035,    0,
7749      2035, 2036, 2036, 2119, 2036, 2119, 3547, 3547,    0, 3306,
7750      2034, 3547, 2036, 3306, 2288, 3547, 3306, 2036, 2036, 2037,
7751      2037, 3306, 2037,    0, 2036,    0, 2036,    0, 2119,    0,
7752      2037,    0,    0,    0,    0, 2037, 2037, 2038, 2038,    0,
7753      2038,    0, 2037,    0, 2037, 2035,    0,    0, 2038,    0,
7754         0, 2119,    0, 2038, 2038, 2039, 2039,    0, 2039,    0,
7755
7756      2038,    0, 2038,    0,    0,    0, 2039, 3173, 3173, 3173,
7757      3173, 2039, 2039,    0, 2036,    0, 2040, 2040, 2039, 2040,
7758      2039,    0, 2121, 2121, 2121, 2121,    0, 2040, 2037,    0,
7759      3173,    0, 2040, 2040,    0, 2278, 2278, 2278, 2278, 2040,
7760         0, 2040, 2278, 2041, 2041, 2121, 2041, 2121, 2038,    0,
7761         0, 2039,    0,    0, 2041, 3173,    0,    0, 2278, 2041,
7762      2041, 2042, 2042,    0, 2042,    0, 2041, 2040, 2041,    0,
7763      2121,    0, 2042, 2121,    0,    0,    0, 2042, 2042,    0,
7764         0,    0, 2040, 2278, 2042,    0, 2042,    0, 2043, 2043,
7765         0, 2043,    0,    0,    0, 2123, 2123, 2123, 2123, 2043,
7766
7767         0, 2278,    0, 2041, 2043, 2043, 2044, 2044,    0, 2044,
7768         0, 2043,    0, 2043,    0,    0, 2278, 2044, 2123,    0,
7769      2123,    0, 2044, 2044, 2045, 2045, 2042, 2045,    0, 2044,
7770         0, 2044,    0,    0,    0, 2045,    0,    0,    0,    0,
7771      2045, 2045, 2043, 2123,    0, 2046, 2046, 2045, 2046, 2045,
7772      3550, 3550,    0, 2123,    0, 3550, 2046,    0,    0, 3550,
7773      2044, 2046, 2046, 2047, 2047,    0, 2047,    0, 2046,    0,
7774      2046,    0,    0,    0, 2047,    0,    0,    0,    0, 2047,
7775      2047, 2048, 2048, 2045, 2048,    0, 2047,    0, 2047,    0,
7776         0,    0, 2048,    0,    0,    0,    0, 2048, 2048, 2049,
7777
7778      2049,    0, 2049,    0, 2048,    0, 2048,    0, 2046,    0,
7779      2049,    0,    0,    0,    0, 2049, 2049, 2050, 2050,    0,
7780      2050,    0, 2049,    0, 2049,    0,    0,    0, 2050, 2279,
7781      2279, 2279, 2279, 2050, 2050,    0, 2279, 2047,    0,    0,
7782      2050,    0, 2050,    0, 2051, 2051,    0, 2051, 3553, 3553,
7783         0, 2048, 2279, 3553, 2049, 2051,    0, 3553,    0, 2049,
7784      2051, 2051, 2052, 2052, 2049, 2052,    0, 2051,    0, 2051,
7785         0,    0,    0, 2052,    0,    0,    0, 2279, 2052, 2052,
7786      2053, 2053, 2050, 2053,    0, 2052,    0, 2052,    0,    0,
7787         0, 2053,    0,    0,    0, 2279, 2053, 2053, 2054, 2054,
7788
7789         0, 2054, 2051, 2053,    0, 2053,    0,    0,    0, 2054,
7790      2279,    0,    0,    0, 2054, 2054, 2055, 2055,    0, 2055,
7791      2052, 2054,    0, 2054,    0,    0,    0, 2055,    0,    0,
7792         0,    0, 2055, 2055, 2056, 2056,    0, 2056,    0, 2055,
7793         0, 2055,    0,    0,    0, 2056,    0,    0,    0,    0,
7794      2056, 2056, 2053,    0,    0, 2362,    0, 2056, 2362, 2056,
7795         0,    0, 3237, 3237, 3237, 3237, 2362,    0,    0, 2054,
7796         0, 2362, 2362, 3237, 3556, 3556,    0,    0, 2362, 3556,
7797      2362,    0,    0, 3556,    0, 2055,    0,    0,    0,    0,
7798      2056, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113,
7799
7800      2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113,
7801      2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113,
7802      2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113,
7803      2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113,
7804      2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113,
7805      2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113,
7806      2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113,
7807      2113, 2113, 2113, 2113, 2113, 2122, 2122, 2122, 2122, 2124,
7808      2124, 2124, 2124, 2125, 2125, 2125, 2125,    0, 2281, 2281,
7809      2281, 2281,    0, 2521, 2521, 2521, 2521,    0, 2122, 2281,
7810
7811      2122,    0, 2124,    0, 2124,    0, 2125,    0, 2125, 3097,
7812         0, 2281, 3097, 2281,    0,    0, 2521,    0, 2521,    0,
7813      3097,    0,    0, 2122,    0, 3097, 3097, 2124, 3558, 3558,
7814         0, 2125, 3097, 3558, 3097,    0, 2281, 3558, 3682, 3682,
7815      2122, 2521,    0, 3682,    0,    0,    0, 3682,    0,    0,
7816      2124,    0, 2125, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
7817      2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
7818      2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
7819      2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
7820      2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
7821
7822      2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
7823      2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
7824      2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
7825      2170, 2170, 2170, 2170, 2170, 2170, 2170, 2250, 2250, 2250,
7826      2250,    0,    0,    0, 2282, 2282, 2282, 2282, 2250, 2250,
7827         0,    0, 2250, 2250, 2250, 2282, 3235, 3235, 3235, 3235,
7828      2250, 2250, 2250, 3238, 3238, 3238, 3238, 2282, 3235, 2282,
7829         0, 3235,    0,    0, 3238, 2523, 2523, 2523, 2523,    0,
7830      3235,    0,    0,    0,    0, 2250, 2250, 2256, 2256, 2256,
7831      2256,    0, 2282,    0, 2256,    0,    0,    0, 2523, 2256,
7832
7833      2523, 2295, 2295, 2295, 2295, 3235, 2256, 2256, 2256, 2256,
7834      2256, 2282, 2295, 2295,    0,    0, 2295, 2296, 2296, 2296,
7835      2296,    0,    0, 2523, 2295, 2295, 2295, 2523, 2296, 2296,
7836         0, 2378, 2296,    0, 2378, 2256,    0,    0,    0,    0,
7837      2296, 2296, 2378,    0,    0,    0,    0, 2378, 2378, 2295,
7838      2295,    0, 3685, 3685, 2378,    0, 2378, 3685, 3688, 3688,
7839         0, 3685,    0, 3688,    0, 2296, 2296, 3688, 2256, 2283,
7840      2283, 2283, 2283,    0, 2524, 2524, 2524, 2524,    0, 2379,
7841      2283, 2283, 2379,    0, 2283, 2283, 2283,    0,    0,    0,
7842      2379,    0, 2283, 2283, 2283, 2379, 2379, 2524, 2384, 2524,
7843
7844         0, 2384, 2379, 2378, 2379,    0,    0,    0, 2380, 2384,
7845         0, 2380,    0,    0, 2384, 2384,    0, 2283, 2283, 2380,
7846         0, 2384, 2524, 2384, 2380, 2380, 3272, 3272, 3272, 3272,
7847         0, 2380,    0, 2380,    0, 2379,    0, 3272, 2283, 2299,
7848      2299, 2299, 2299, 2299, 2299, 2299, 2299, 2299, 2299, 2299,
7849      2299, 2299, 2299, 2299, 2299, 2299, 2299, 2299, 2299, 2381,
7850      2380, 2384, 2381, 2299, 2299, 2299, 2299, 2299, 2299,    0,
7851      2381,    0, 3789, 3789,    0, 2381, 2381, 3789,    0,    0,
7852      2383, 3789, 2381, 2383, 2381,    0,    0, 2299, 2299, 2299,
7853      2299, 2383, 2531, 2531, 2531, 2531, 2383, 2383,    0,    0,
7854
7855         0,    0,    0, 2383,    0, 2383,    0, 2526, 2526, 2526,
7856      2526, 2381,    0,    0,    0, 2531,    0, 2531, 2299, 2299,
7857      2299, 2299, 2299, 2306, 2306, 2306, 2306,    0,    0,    0,
7858      2526,    0, 2526, 2385, 2306, 2306, 2385,    0, 2306,    0,
7859      2531,    0,    0,    0, 2385, 2383, 2306, 2306, 2306, 2385,
7860      2385,    0,    0,    0,    0, 2526, 2385, 2531, 2385, 2386,
7861      3805, 3805, 2386, 2388,    0, 3805, 2388,    0,    0, 3805,
7862      2386, 2306, 2306,    0, 2388, 2386, 2386, 2306, 2526, 2388,
7863      2388,    0, 2386,    0, 2386,    0, 2388,    0, 2388, 2385,
7864         0,    0,    0, 2306, 2350, 2350, 2350, 2350, 2350, 2350,
7865
7866      2350, 2350, 2350, 2350, 2350, 2350, 2350, 2350, 2350, 2350,
7867      2350, 2350, 2350, 2350,    0, 2386,    0, 2388, 2350, 2350,
7868      2350, 2350, 2350, 2350, 2636, 2636, 2636, 2636, 3273, 3273,
7869      3273, 3273,    0,    0,    0, 2636,    0,    0, 2387, 3273,
7870         0, 2387, 2350, 2350, 2350, 2350,    0, 2636,    0, 2387,
7871         0,    0,    0, 3273, 2387, 2387, 3309, 3309, 3309, 3309,
7872         0, 2387,    0, 2387,    0, 2350,    0, 3309,    0,    0,
7873         0,    0, 2636, 2350, 2350, 2350, 2350, 2350, 2382, 2382,
7874      2382, 2382, 2382, 2382, 2382, 2382, 2382, 2382, 2382, 2382,
7875      2382, 2382, 2382, 2382, 2382, 2382, 2382, 2382, 2387,    0,
7876
7877         0,    0, 2382, 2382, 2382, 2382, 2382, 2382, 2389, 3819,
7878      3819, 2389,    0,    0, 3819,    0,    0,    0, 3819, 2389,
7879      2525, 2525, 2525, 2525, 2389, 2389, 2382, 2382, 2382, 2382,
7880      2382, 2389,    0, 2389, 3309, 3321, 3321, 3321, 3321, 2392,
7881         0,    0, 2392, 2525,    0, 2525, 3321,    0,    0,    0,
7882      2392,    0,    0,    0,    0, 2392, 2392, 2382, 2382, 2382,
7883      2382, 2382, 2392, 2393, 2392,    0, 2393, 2394, 2525,    0,
7884      2394,    0,    0, 2389, 2393,    0, 2525,    0, 2394, 2393,
7885      2393,    0,    0, 2394, 2394,    0, 2393,    0, 2393,    0,
7886      2394, 2395, 2394, 2392, 2395,    0,    0, 3248, 3248, 3248,
7887
7888      3248,    0, 2395,    0,    0,    0, 2396, 2395, 2395, 2396,
7889      2530, 2530, 2530, 2530, 2395,    0, 2395, 2396, 2393,    0,
7890      3248, 2397, 2396, 2396, 2397, 2398,    0, 2394, 2398, 2396,
7891         0, 2396, 2397, 2530,    0, 2530, 2398, 2397, 2397,    0,
7892      2399, 2398, 2398, 2399, 2397, 3248, 2397,    0, 2398,    0,
7893      2398, 2399,    0,    0,    0,    0, 2399, 2399, 2530,    0,
7894         0, 2400, 2395, 2399, 2400, 2399, 2396,    0, 2530,    0,
7895         0, 2401, 2400,    0, 2401,    0,    0, 2400, 2400,    0,
7896         0, 2398, 2401,    0, 2400,    0, 2400, 2401, 2401,    0,
7897      2402,    0, 2397, 2402, 2401,    0, 2401,    0,    0,    0,
7898
7899      2403, 2402,    0, 2403,    0, 2399, 2402, 2402,    0,    0,
7900         0, 2403,    0, 2402,    0, 2402, 2403, 2403, 2404,    0,
7901         0, 2404,    0, 2403, 2400, 2403,    0,    0, 2405, 2404,
7902         0, 2405,    0,    0, 2404, 2404,    0,    0, 2401, 2405,
7903         0, 2404,    0, 2404, 2405, 2405,    0, 2406,    0,    0,
7904      2406, 2405,    0, 2405,    0,    0,    0, 2407, 2406,    0,
7905      2407, 2402,    0, 2406, 2406,    0,    0,    0, 2407,    0,
7906      2406, 2403, 2406, 2407, 2407, 2408, 3904, 3904, 2408,    0,
7907      2407, 3904, 2407,    0,    0, 3904, 2408,    0, 2405, 2404,
7908      2409, 2408, 2408, 2409, 2410,    0,    0, 2410, 2408,    0,
7909
7910      2408, 2409,    0, 3918, 3918, 2410, 2409, 2409, 3918,    0,
7911      2410, 2410, 3918, 2409,    0, 2409,    0, 2410, 2406, 2410,
7912      2411, 3939, 3939, 2411, 2412,    0, 3939, 2412, 2407, 2408,
7913      3939, 2411,    0,    0,    0, 2412, 2411, 2411,    0, 2413,
7914      2412, 2412, 2413, 2411, 2409, 2411,    0, 2412,    0, 2412,
7915      2413,    0,    0,    0,    0, 2413, 2413,    0, 2414,    0,
7916         0, 2414, 2413,    0, 2413, 2410,    0,    0, 2415, 2414,
7917         0, 2415,    0,    0, 2414, 2414, 2411,    0,    0, 2415,
7918      2412, 2414,    0, 2414, 2415, 2415, 2416, 3968, 3968, 2416,
7919         0, 2415, 3968, 2415,    0,    0, 3968, 2416,    0,    0,
7920
7921         0,    0, 2416, 2416, 2413, 2417,    0,    0, 2417, 2416,
7922         0, 2416,    0, 2414,    0, 2418, 2417,    0, 2418,    0,
7923         0, 2417, 2417,    0,    0,    0, 2418,    0, 2417,    0,
7924      2417, 2418, 2418, 2419,    0,    0, 2419,    0, 2418, 2415,
7925      2418,    0,    0, 2416, 2419,    0,    0,    0,    0, 2419,
7926      2419, 2420,    0,    0, 2420,    0, 2419,    0, 2419, 2417,
7927         0, 2421, 2420,    0, 2421,    0,    0, 2420, 2420,    0,
7928         0,    0, 2421, 2418, 2420,    0, 2420, 2421, 2421,    0,
7929      2422,    0,    0, 2422, 2421,    0, 2421,    0,    0,    0,
7930         0, 2422,    0,    0,    0, 2426, 2422, 2422, 2426,    0,
7931
7932         0,    0,    0, 2422, 2419, 2422, 2426,    0,    0,    0,
7933      2420, 2426, 2426, 3322, 3322, 3322, 3322,    0, 2426,    0,
7934      2426,    0,    0,    0, 3322,    0,    0,    0,    0,    0,
7935      2421,    0, 2422, 2425, 2425, 2425, 2425, 2425, 2425, 2425,
7936      2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425,
7937      2425, 2425, 2425, 2427,    0, 2426, 2427, 2425, 2425, 2425,
7938      2425, 2425, 2425, 2428, 2427,    0, 2428,    0,    0, 2427,
7939      2427,    0,    0,    0, 2428,    0, 2427,    0, 2427, 2428,
7940      2428, 2425, 2425, 2425, 2425,    0, 2428,    0, 2428, 3325,
7941      3325, 3325, 3325,    0, 2429,    0,    0, 2429,    0,    0,
7942
7943      3325,    0,    0,    0, 2425, 2429,    0,    0,    0, 2427,
7944      2429, 2429, 2425, 2425, 2425, 2425, 2425, 2429, 2428, 2429,
7945      2430,    0,    0, 2430, 2431,    0,    0, 2431,    0,    0,
7946         0, 2430,    0,    0,    0, 2431, 2430, 2430,    0, 2432,
7947      2431, 2431, 2432, 2430,    0, 2430, 2429, 2431,    0, 2431,
7948      2432,    0,    0,    0, 2433, 2432, 2432, 2433, 2435, 2435,
7949         0, 2435, 2432,    0, 2432, 2433,    0,    0,    0, 2435,
7950      2433, 2433,    0,    0, 2435, 2435, 2431, 2433,    0, 2433,
7951         0, 2435,    0, 2435,    0, 2430, 2436, 2436,    0, 2436,
7952      3368, 3368, 3368, 3368,    0,    0,    0, 2436,    0, 2432,
7953
7954         0, 3368, 2436, 2436,    0, 2433,    0,    0,    0, 2436,
7955         0, 2436, 2437, 2437,    0, 2437, 2438, 2438,    0, 2438,
7956         0,    0,    0, 2437,    0,    0,    0, 2438, 2437, 2437,
7957      2435,    0, 2438, 2438,    0, 2437,    0, 2437,    0, 2438,
7958         0, 2438, 2436,    0, 2439, 2439,    0, 2439, 3371, 3371,
7959      3371, 3371,    0,    0,    0, 2439,    0,    0,    0, 3371,
7960      2439, 2439, 2440, 2440, 2437, 2440,    0, 2439, 2438, 2439,
7961         0,    0,    0, 2440,    0,    0,    0,    0, 2440, 2440,
7962      2441, 2441,    0, 2441,    0, 2440,    0, 2440,    0,    0,
7963         0, 2441,    0,    0,    0,    0, 2441, 2441,    0, 2442,
7964
7965      2442,    0, 2442, 2441,    0, 2441,    0,    0,    0, 2439,
7966      2442,    0,    0,    0,    0, 2442, 2442, 2443, 2443,    0,
7967      2443,    0, 2442,    0, 2442, 2440,    0,    0, 2443,    0,
7968         0,    0,    0, 2443, 2443,    0, 2441,    0,    0,    0,
7969      2443,    0, 2443, 2444, 2444,    0, 2444, 2446, 2446,    0,
7970      2446,    0,    0,    0, 2444, 2442,    0,    0, 2446, 2444,
7971      2444,    0,    0, 2446, 2446,    0, 2444,    0, 2444,    0,
7972      2446, 2443, 2446,    0, 2447, 2447,    0, 2447,    0,    0,
7973         0, 3396, 3396, 3396, 3396, 2447,    0,    0,    0,    0,
7974      2447, 2447, 3396, 3396,    0,    0, 3396, 2447,    0, 2447,
7975
7976         0, 2446,    0,    0, 3396, 3396, 3396,    0, 2444, 2445,
7977      2445, 2445, 2445, 2445, 2445, 2445, 2445, 2445, 2445, 2445,
7978      2445, 2445, 2445, 2445, 2445, 2445, 2445, 2445, 2445, 2447,
7979      3396,    0,    0, 2445, 2445, 2445, 2445, 2445, 2445, 2448,
7980      2448,    0, 2448,    0,    0, 2527, 2527, 2527, 2527,    0,
7981      2448,    0,    0,    0,    0, 2448, 2448, 2445, 2445, 2445,
7982      2445,    0, 2448,    0, 2448,    0,    0,    0, 2527,    0,
7983      2527,    0,    0, 2445, 3289, 3289, 3289, 3289,    0,    0,
7984         0,    0,    0,    0, 2449, 2449,    0, 2449, 2445, 2445,
7985      2445, 2445, 2445, 2527,    0, 2449,    0, 3289,    0, 2448,
7986
7987      2449, 2449, 2450, 2450,    0, 2450,    0, 2449,    0, 2449,
7988         0,    0,    0, 2450,    0,    0, 2527,    0, 2450, 2450,
7989      2451, 2451, 3289, 2451,    0, 2450,    0, 2450,    0,    0,
7990         0, 2451,    0,    0,    0,    0, 2451, 2451,    0,    0,
7991         0, 2452, 2452, 2451, 2452, 2451,    0,    0, 3429, 3429,
7992      3429, 3429, 2452,    0,    0, 2449,    0, 2452, 2452, 3429,
7993      2453, 2453, 2450, 2453, 2452,    0, 2452,    0,    0,    0,
7994         0, 2453,    0,    0,    0,    0, 2453, 2453, 2454, 2454,
7995         0, 2454,    0, 2453,    0, 2453,    0,    0,    0, 2454,
7996         0, 2451,    0,    0, 2454, 2454,    0, 2452,    0, 2455,
7997
7998      2455, 2454, 2455, 2454,    0,    0,    0,    0,    0,    0,
7999      2455,    0,    0,    0,    0, 2455, 2455, 2456, 2456,    0,
8000      2456,    0, 2455,    0, 2455, 2453,    0,    0, 2456,    0,
8001         0,    0,    0, 2456, 2456, 2457, 2457,    0, 2457,    0,
8002      2456, 2454, 2456,    0,    0,    0, 2457,    0,    0,    0,
8003         0, 2457, 2457, 2458, 2458,    0, 2458,    0, 2457,    0,
8004      2457,    0,    0,    0, 2458,    0, 2455,    0,    0, 2458,
8005      2458,    0,    0,    0, 2459, 2459, 2458, 2459, 2458,    0,
8006         0,    0,    0,    0,    0, 2459,    0,    0, 2456,    0,
8007      2459, 2459, 2460, 2460,    0, 2460,    0, 2459,    0, 2459,
8008
8009         0,    0,    0, 2460,    0,    0, 2457,    0, 2460, 2460,
8010      2461, 2461,    0, 2461,    0, 2460,    0, 2460,    0,    0,
8011         0, 2461,    0,    0, 2458,    0, 2461, 2461, 2462, 2462,
8012         0, 2462,    0, 2461, 2459, 2461,    0,    0,    0, 2462,
8013         0,    0,    0,    0, 2462, 2462,    0,    0,    0, 2463,
8014      2463, 2462, 2463, 2462,    0,    0,    0,    0,    0,    0,
8015      2463,    0,    0, 2460,    0, 2463, 2463, 2464, 2464,    0,
8016      2464,    0, 2463,    0, 2463,    0,    0,    0, 2464,    0,
8017         0, 2461, 2462, 2464, 2464, 2465, 2465,    0, 2465,    0,
8018      2464,    0, 2464,    0,    0,    0, 2465,    0,    0,    0,
8019
8020         0, 2465, 2465, 2463, 2466, 2466,    0, 2466, 2465,    0,
8021      2465, 3453, 3453, 3453, 3453, 2466,    0,    0,    0,    0,
8022      2466, 2466, 3453, 2467, 2467,    0, 2467, 2466,    0, 2466,
8023         0,    0,    0,    0, 2467,    0,    0,    0, 2464, 2467,
8024      2467, 2465, 2468, 2468,    0, 2468, 2467,    0, 2467, 2533,
8025      2533, 2533, 2533, 2468,    0,    0,    0,    0, 2468, 2468,
8026      2469, 2469,    0, 2469,    0, 2468,    0, 2468,    0, 2466,
8027         0, 2469, 2533,    0, 2533,    0, 2469, 2469, 2467, 2470,
8028      2470,    0, 2470, 2469,    0, 2469,    0,    0,    0,    0,
8029      2470,    0,    0,    0,    0, 2470, 2470, 2533, 2471, 2471,
8030
8031      2533, 2471, 2470,    0, 2470, 3426, 3426, 3426, 3426, 2471,
8032         0,    0,    0, 2468, 2471, 2471, 3426, 2469,    0, 2472,
8033      2472, 2471, 2472, 2471, 2532, 2532, 2532, 2532, 3426,    0,
8034      2472,    0,    0, 2470,    0, 2472, 2472, 2473, 2473,    0,
8035      2473,    0, 2472,    0, 2472,    0,    0, 2532, 2473, 2532,
8036         0,    0,    0, 2473, 2473,    0, 2471,    0, 2474, 2474,
8037      2473, 2474, 2473,    0,    0, 3335, 3335, 3335, 3335, 2474,
8038         0,    0, 2532,    0, 2474, 2474, 2475, 2475,    0, 2475,
8039         0, 2474,    0, 2474, 2532,    0,    0, 2475, 3335,    0,
8040      2472,    0, 2475, 2475, 2478, 2478, 2473, 2478,    0, 2475,
8041
8042         0, 2475,    0,    0,    0, 2478,    0,    0,    0,    0,
8043      2478, 2478,    0, 3335,    0,    0,    0, 2478,    0, 2478,
8044         0,    0,    0,    0,    0,    0,    0, 2474, 2475, 2476,
8045      2476, 2476, 2476, 2476, 2476, 2476, 2476, 2476, 2476, 2476,
8046      2476, 2476, 2476, 2476, 2476, 2476, 2476, 2476, 2476,    0,
8047      2478,    0,    0, 2476, 2476, 2476, 2476, 2476, 2476, 2477,
8048      2477,    0, 2477,    0,    0,    0, 3336, 3336, 3336, 3336,
8049      2477,    0,    0,    0,    0, 2477, 2477, 2476, 2476, 2476,
8050      2476,    0, 2477,    0, 2477,    0,    0,    0,    0, 3336,
8051      2479, 2479,    0, 2479,    0,    0,    0,    0,    0,    0,
8052
8053      2476, 2479,    0,    0,    0,    0, 2479, 2479, 2476, 2476,
8054      2476, 2476, 2476, 2479, 3336, 2479,    0, 2480, 2480, 2477,
8055      2480, 2481, 2481,    0, 2481,    0,    0,    0, 2480,    0,
8056         0,    0, 2481, 2480, 2480,    0,    0, 2481, 2481,    0,
8057      2480,    0, 2480,    0, 2481, 2479, 2481, 2482, 2482,    0,
8058      2482, 2483, 2483,    0, 2483,    0,    0,    0, 2482,    0,
8059         0,    0, 2483, 2482, 2482,    0,    0, 2483, 2483, 2480,
8060      2482,    0, 2482,    0, 2483,    0, 2483, 2484, 2484,    0,
8061      2484, 2528, 2528, 2528, 2528,    0, 2481,    0, 2484, 2529,
8062      2529, 2529, 2529, 2484, 2484,    0,    0,    0,    0, 2482,
8063
8064      2484,    0, 2484,    0, 2528,    0, 2528, 2634, 2634, 2634,
8065      2634, 2483, 2529,    0, 2529,    0,    0,    0, 2634,    0,
8066      2635, 2635, 2635, 2635, 2637, 2637, 2637, 2637, 2484, 2528,
8067      2634, 2635, 2634,    0,    0, 2637, 2528, 2529,    0,    0,
8068         0,    0,    0, 2635,    0, 2635,    0, 2637,    0, 2637,
8069      2639, 2639, 2639, 2639,    0, 2634, 2643, 2643, 2643, 2643,
8070      2529, 2639,    0, 2643,    0,    0,    0,    0, 2635,    0,
8071         0,    0, 2637, 2639,    0, 2639,    0,    0,    0, 2643,
8072         0,    0,    0,    0,    0,    0,    0, 2635,    0,    0,
8073      2648, 2648, 2648, 2648,    0,    0,    0,    0, 2639,    0,
8074
8075      2708, 2648, 2648, 2708, 2643, 2648, 2639, 2640, 2640, 2640,
8076      2640, 2708,    0, 2648, 2648, 2648, 2708, 2708, 2640, 2640,
8077         0,    0, 2640, 2708, 2709, 2708,    0, 2709,    0,    0,
8078      2640, 2640, 2640,    0,    0, 2709,    0, 2643, 2648, 2648,
8079      2709, 2709, 2654, 2654, 2654, 2654,    0, 2709,    0, 2709,
8080         0,    0,    0, 2654, 2654, 2640, 2640, 2654,    0, 2640,
8081      2641, 2641, 2641, 2641, 2708, 2654, 2654, 2654,    0,    0,
8082         0, 2641, 2641,    0,    0, 2641, 2798, 2798, 2798, 2798,
8083         0,    0,    0, 2641, 2641, 2641,    0,    0,    0,    0,
8084      2654, 2654, 2641, 2709, 2799, 2799, 2799, 2799,    0, 2798,
8085
8086         0, 2798,    0, 2655, 2655, 2655, 2655,    0, 2641, 2641,
8087      2653, 2653, 2653, 2653, 2655, 2655,    0, 2799, 2655, 2799,
8088      2710, 2653, 2653, 2710, 2798, 2653, 2655, 2655,    0,    0,
8089         0, 2710,    0, 2653, 2653, 2653, 2710, 2710,    0,    0,
8090         0, 2798, 2799, 2710,    0, 2710,    0,    0,    0,    0,
8091         0, 2655, 2655,    0, 2688, 2688, 2688, 2688, 2653, 2653,
8092         0,    0,    0,    0, 2653, 2688, 2688,    0,    0, 2688,
8093         0,    0,    0,    0, 2710,    0,    0, 2688, 2688,    0,
8094      2653, 2675, 2675, 2675, 2675, 2675, 2675, 2675, 2675, 2675,
8095      2675, 2675, 2675, 2675, 2675, 2675, 2675, 2675, 2675, 2675,
8096
8097      2675,    0, 2688, 2688,    0, 2675, 2675, 2675, 2675, 2675,
8098      2675,    0,    0,    0,    0,    0,    0, 2711,    0, 2688,
8099      2711,    0,    0, 2800, 2800, 2800, 2800,    0, 2711, 2675,
8100      2675, 2675, 2675, 2711, 2711,    0, 2864, 2864, 2864, 2864,
8101      2711,    0, 2711,    0,    0,    0, 2800, 2864, 2800,    0,
8102         0, 3337, 3337, 3337, 3337, 3354, 3354, 3354, 3354, 2864,
8103      2675, 2675, 2675, 2675, 2675, 2687, 2687, 2687, 2687,    0,
8104      2712, 2800,    0, 2712, 3337,    0, 2687, 2687, 3354,    0,
8105      2687, 2712, 2711,    0, 2864,    0, 2712, 2712, 2687, 2687,
8106      2687,    0, 2800, 2712, 2713, 2712,    0, 2713,    0, 3337,
8107
8108         0,    0,    0, 3354, 2714, 2713,    0, 2714,    0,    0,
8109      2713, 2713,    0, 2687, 2687, 2714,    0, 2713,    0, 2713,
8110      2714, 2714, 2715,    0, 2712, 2715,    0, 2714,    0, 2714,
8111      2687,    0, 2716, 2715,    0, 2716,    0,    0, 2715, 2715,
8112         0,    0,    0, 2716,    0, 2715,    0, 2715, 2716, 2716,
8113         0,    0,    0,    0,    0, 2716, 2717, 2716,    0, 2717,
8114      2801, 2801, 2801, 2801,    0,    0, 2713, 2717,    0,    0,
8115         0, 2719, 2717, 2717, 2719, 2714, 2715,    0,    0, 2717,
8116         0, 2717, 2719, 2801,    0, 2801, 2720, 2719, 2719, 2720,
8117      2721,    0, 2716, 2721, 2719,    0, 2719, 2720,    0,    0,
8118
8119         0, 2721, 2720, 2720,    0,    0, 2721, 2721, 2801, 2720,
8120         0, 2720,    0, 2721,    0, 2721, 2801, 2722,    0,    0,
8121      2722,    0,    0,    0, 3041, 3041, 3041, 3041, 2722,    0,
8122      2719,    0, 2717, 2722, 2722, 3041,    0,    0, 2723,    0,
8123      2722, 2723, 2722,    0, 2721,    0,    0, 3041, 2724, 2723,
8124         0, 2724, 2720,    0, 2723, 2723,    0,    0,    0, 2724,
8125         0, 2723,    0, 2723, 2724, 2724,    0, 2725,    0, 2722,
8126      2725, 2724, 3041, 2724,    0,    0,    0,    0, 2725,    0,
8127         0,    0, 2726, 2725, 2725, 2726, 2727,    0,    0, 2727,
8128      2725,    0, 2725, 2726, 2723,    0,    0, 2727, 2726, 2726,
8129
8130      2724, 2728, 2727, 2727, 2728, 2726,    0, 2726,    0, 2727,
8131         0, 2727, 2728,    0,    0,    0,    0, 2728, 2728,    0,
8132         0,    0, 2729,    0, 2728, 2729, 2728,    0,    0, 2803,
8133      2803, 2803, 2803, 2729,    0,    0, 2725,    0, 2729, 2729,
8134      2730, 2727,    0, 2730,    0, 2729,    0, 2729, 2726,    0,
8135      2731, 2730, 2803, 2731, 2803,    0, 2730, 2730,    0,    0,
8136         0, 2731,    0, 2730,    0, 2730, 2731, 2731, 2732,    0,
8137      2728, 2732,    0, 2731,    0, 2731,    0, 2803, 2729, 2732,
8138         0,    0,    0,    0, 2732, 2732,    0, 2865, 2865, 2865,
8139      2865, 2732, 2734, 2732,    0, 2734,    0,    0, 2865,    0,
8140
8141      2803,    0, 2735, 2734,    0, 2735, 2731,    0, 2734, 2734,
8142      2865, 2730, 2865, 2735,    0, 2734,    0, 2734, 2735, 2735,
8143         0,    0,    0,    0,    0, 2735,    0, 2735,    0,    0,
8144         0,    0,    0,    0,    0, 2865,    0, 2732, 2733, 2733,
8145      2733, 2733, 2733, 2733, 2733, 2733, 2733, 2733, 2733, 2733,
8146      2733, 2733, 2733, 2733, 2733, 2733, 2733, 2733, 2734,    0,
8147         0,    0, 2733, 2733, 2733, 2733, 2733, 2733, 2736,    0,
8148         0, 2736,    0, 2735,    0, 2802, 2802, 2802, 2802, 2736,
8149         0,    0,    0,    0, 2736, 2736, 2733, 2733, 2733, 2733,
8150      2733, 2736,    0, 2736,    0,    0,    0,    0, 2802,    0,
8151
8152      2802,    0, 3265, 3265, 3265, 3265,    0,    0,    0,    0,
8153         0, 2737,    0, 3265, 2737,    0,    0, 2733, 2733, 2733,
8154      2733, 2733, 2737, 2802, 2736, 3265, 2738, 2737, 2737, 2738,
8155      2739,    0,    0, 2739, 2737,    0, 2737, 2738, 2802,    0,
8156         0, 2739, 2738, 2738,    0,    0, 2739, 2739,    0, 2738,
8157      3265, 2738,    0, 2739, 2740, 2739,    0, 2740, 2741,    0,
8158         0, 2741,    0,    0,    0, 2740,    0,    0, 2737, 2741,
8159      2740, 2740,    0,    0, 2741, 2741,    0, 2740,    0, 2740,
8160         0, 2741, 2742, 2741,    0, 2742, 2739,    0,    0,    0,
8161      2738,    0,    0, 2742,    0,    0,    0,    0, 2742, 2742,
8162
8163         0,    0,    0, 2743, 2743, 2742, 2743, 2742,    0,    0,
8164         0,    0,    0,    0, 2743,    0,    0, 2740,    0, 2743,
8165      2743, 2741, 2744, 2744,    0, 2744, 2743,    0, 2743,    0,
8166         0,    0,    0, 2744,    0,    0,    0,    0, 2744, 2744,
8167      2745, 2745,    0, 2745,    0, 2744,    0, 2744,    0,    0,
8168         0, 2745,    0, 2742,    0,    0, 2745, 2745, 2746, 2746,
8169         0, 2746,    0, 2745,    0, 2745,    0, 2743,    0, 2746,
8170         0,    0,    0,    0, 2746, 2746, 2747, 2747,    0, 2747,
8171         0, 2746,    0, 2746,    0,    0,    0, 2747,    0,    0,
8172         0, 2744, 2747, 2747, 2745, 2748, 2748,    0, 2748, 2747,
8173
8174         0, 2747,    0,    0,    0,    0, 2748,    0,    0,    0,
8175         0, 2748, 2748, 2749, 2749,    0, 2749,    0, 2748,    0,
8176      2748,    0,    0, 2746, 2749,    0,    0,    0,    0, 2749,
8177      2749,    0,    0,    0, 2750, 2750, 2749, 2750, 2749,    0,
8178         0,    0,    0,    0,    0, 2750,    0,    0, 2747,    0,
8179      2750, 2750, 2751, 2751,    0, 2751,    0, 2750,    0, 2750,
8180         0,    0,    0, 2751,    0,    0, 2748,    0, 2751, 2751,
8181         0, 2752, 2752, 2749, 2752, 2751,    0, 2751,    0,    0,
8182         0,    0, 2752,    0,    0,    0,    0, 2752, 2752, 2753,
8183      2753,    0, 2753,    0, 2752,    0, 2752,    0,    0,    0,
8184
8185      2753,    0,    0,    0,    0, 2753, 2753,    0,    0,    0,
8186      2750, 2751, 2753,    0, 2753, 2754, 2754,    0, 2754, 2755,
8187      2755,    0, 2755,    0,    0,    0, 2754,    0,    0,    0,
8188      2755, 2754, 2754,    0,    0, 2755, 2755, 2752, 2754,    0,
8189      2754,    0, 2755, 2753, 2755, 2756, 2756,    0, 2756, 2757,
8190      2757,    0, 2757,    0,    0,    0, 2756,    0,    0,    0,
8191      2757, 2756, 2756,    0,    0, 2757, 2757, 2754, 2756,    0,
8192      2756,    0, 2757,    0, 2757, 2755, 2758, 2758,    0, 2758,
8193         0,    0,    0,    0,    0,    0,    0, 2758, 3052, 3052,
8194      3052, 3052, 2758, 2758,    0, 3052,    0, 2756,    0, 2758,
8195
8196         0, 2758,    0, 2759, 2759,    0, 2759,    0,    0,    0,
8197         0, 3052,    0,    0, 2759,    0,    0,    0, 2757, 2759,
8198      2759, 2760, 2760,    0, 2760,    0, 2759,    0, 2759,    0,
8199         0,    0, 2760,    0,    0,    0, 3052, 2760, 2760,    0,
8200      2761, 2761, 2758, 2761, 2760,    0, 2760,    0,    0,    0,
8201         0, 2761,    0,    0, 3052,    0, 2761, 2761, 2759, 2762,
8202      2762,    0, 2762, 2761,    0, 2761,    0,    0,    0, 3052,
8203      2762,    0,    0,    0,    0, 2762, 2762, 2763, 2763,    0,
8204      2763,    0, 2762,    0, 2762,    0,    0,    0, 2763,    0,
8205      2760,    0,    0, 2763, 2763,    0, 2761,    0, 2764, 2764,
8206
8207      2763, 2764, 2763,    0,    0,    0,    0,    0,    0, 2764,
8208         0,    0,    0,    0, 2764, 2764,    0,    0,    0,    0,
8209         0, 2764,    0, 2764, 2765, 2765,    0, 2765, 2766, 2766,
8210      2762, 2766,    0, 2763,    0, 2765,    0,    0,    0, 2766,
8211      2765, 2765,    0,    0, 2766, 2766,    0, 2765,    0, 2765,
8212         0, 2766,    0, 2766, 2767, 2767,    0, 2767, 2768, 2768,
8213         0, 2768,    0,    0, 2764, 2767,    0,    0,    0, 2768,
8214      2767, 2767,    0,    0, 2768, 2768,    0, 2767,    0, 2767,
8215         0, 2768,    0, 2768, 2766, 2769, 2769,    0, 2769, 2770,
8216      2770,    0, 2770,    0,    0, 2765, 2769,    0,    0,    0,
8217
8218      2770, 2769, 2769,    0,    0, 2770, 2770,    0, 2769,    0,
8219      2769, 2767, 2770,    0, 2770, 2771, 2771,    0, 2771,    0,
8220         0,    0, 2768,    0,    0,    0, 2771, 2808, 2808, 2808,
8221      2808, 2771, 2771, 2772, 2772,    0, 2772,    0, 2771,    0,
8222      2771, 2769,    0,    0, 2772,    0,    0,    0,    0, 2772,
8223      2772, 2808, 2770, 2808,    0,    0, 2772,    0, 2772, 2866,
8224      2866, 2866, 2866, 2867, 2867, 2867, 2867,    0,    0,    0,
8225      2866,    0,    0,    0, 2867,    0,    0,    0, 2771,    0,
8226         0, 2808, 2866,    0, 2866,    0, 2867,    0, 2867, 3267,
8227      3267, 3267, 3267, 2808,    0,    0, 3267, 2808, 2808,    0,
8228
8229      2808,    0,    0,    0, 2772, 2808,    0, 2866,    0,    0,
8230         0, 2867, 3267,    0,    0, 2866, 2872, 2872, 2872, 2872,
8231         0,    0,    0,    0,    0,    0,    0, 2872,    0,    0,
8232         0,    0, 2867, 2868, 2868, 2868, 2868, 3267,    0, 2872,
8233         0, 2872,    0, 2922, 2868, 2868, 2922,    0, 2868,    0,
8234      2875, 2875, 2875, 2875, 2922, 3267, 2868, 2868, 2868, 2922,
8235      2922, 2875, 2875,    0, 2872, 2875, 2922,    0, 2922,    0,
8236      3267,    0,    0, 2875, 2875, 2875,    0, 2905, 2905, 2905,
8237      2905, 2868, 2868,    0,    0,    0,    0,    0, 2905, 2905,
8238         0,    0, 2905,    0,    0,    0,    0,    0, 2875, 2875,
8239
8240      2905, 2905,    0,    0, 2868, 2869, 2869, 2869, 2869,    0,
8241         0,    0,    0,    0, 2922,    0, 2869, 2869,    0,    0,
8242      2869, 2921,    0,    0, 2921, 2905, 2905,    0, 2869, 2869,
8243      2869,    0, 2921,    0,    0,    0,    0, 2921, 2921,    0,
8244         0,    0, 2905,    0, 2921,    0, 2921,    0,    0,    0,
8245         0,    0,    0, 2869, 2869,    0, 2869, 2882, 2882, 2882,
8246      2882, 2882, 2882, 2882, 2882, 2882, 2882, 2882, 2882, 2882,
8247      2882, 2882, 2882, 2882, 2882, 2882, 2882, 2921,    0,    0,
8248         0, 2882, 2882, 2882, 2882, 2882, 2882,    0,    0,    0,
8249         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
8250
8251      2926,    0,    0, 2926,    0, 2882, 2882, 2882, 2882, 2882,
8252      2923, 2926,    0, 2923,    0,    0, 2926, 2926,    0,    0,
8253         0, 2923,    0, 2926,    0, 2926, 2923, 2923,    0,    0,
8254         0,    0,    0, 2923,    0, 2923, 2882, 2882, 2882, 2882,
8255      2882, 2886, 2886, 2886, 2886, 2886, 2886, 2886, 2886, 2886,
8256      2886, 2886, 2886, 2886, 2886, 2886, 2886, 2886, 2886, 2886,
8257      2886, 2924, 2923,    0, 2924, 2886, 2886, 2886, 2886, 2886,
8258      2886, 2926, 2924,    0,    0,    0,    0, 2924, 2924,    0,
8259         0,    0, 2925,    0, 2924, 2925, 2924,    0,    0, 2886,
8260      2886, 2886, 2886, 2925,    0,    0,    0,    0, 2925, 2925,
8261
8262         0,    0,    0,    0,    0, 2925,    0, 2925, 3341, 3341,
8263      3341, 3341,    0,    0,    0, 3341,    0, 2924,    0,    0,
8264      2886, 2886, 2886, 2886, 2886, 2893, 2893, 2893, 2893,    0,
8265         0, 3341,    0, 2925,    0,    0, 2893, 2893,    0,    0,
8266      2893, 2928,    0,    0, 2928,    0,    0,    0, 2893, 2893,
8267      2893,    0, 2928,    0,    0,    0, 3341, 2928, 2928,    0,
8268         0,    0,    0,    0, 2928,    0, 2928, 2929,    0,    0,
8269      2929,    0,    0, 2893, 2893,    0,    0,    0, 2929,    0,
8270         0, 2893,    0, 2929, 2929, 2893,    0,    0,    0, 3341,
8271      2929,    0, 2929,    0, 2893,    0,    0,    0, 2893, 2904,
8272
8273      2904, 2904, 2904,    0, 2930,    0, 2928, 2930,    0,    0,
8274      2904, 2904,    0,    0, 2904, 2930,    0,    0,    0,    0,
8275      2930, 2930, 2904, 2904, 2904,    0,    0, 2930, 2932, 2930,
8276      2929, 2932,    0,    0,    0,    0,    0,    0, 2935, 2932,
8277         0, 2935,    0,    0, 2932, 2932,    0, 2904, 2904, 2935,
8278         0, 2932,    0, 2932, 2935, 2935,    0,    0, 2930,    0,
8279         0, 2935,    0, 2935, 2904, 2931, 2931, 2931, 2931, 2931,
8280      2931, 2931, 2931, 2931, 2931, 2931, 2931, 2931, 2931, 2931,
8281      2931, 2931, 2931, 2931, 2931, 2933,    0,    0, 2933, 2931,
8282      2931, 2931, 2931, 2931, 2931, 2934, 2933, 2932, 2934,    0,
8283
8284         0, 2933, 2933,    0,    0,    0, 2934, 2935, 2933,    0,
8285      2933, 2934, 2934, 2931, 2931, 2931, 2931,    0, 2934,    0,
8286      2934,    0,    0,    0,    0,    0,    0,    0,    0,    0,
8287         0,    0,    0,    0, 2981, 2981, 2981, 2981,    0, 2936,
8288         0, 2933, 2936,    0, 2931, 2931, 2931, 2931, 2931, 2937,
8289      2936, 2934, 2937,    0,    0, 2936, 2936, 2981,    0, 2981,
8290      2937,    0, 2936,    0, 2936, 2937, 2937, 2938,    0,    0,
8291      2938,    0, 2937,    0, 2937,    0,    0, 2939, 2938,    0,
8292      2939,    0, 2981, 2938, 2938,    0,    0,    0, 2939, 2981,
8293      2938,    0, 2938, 2939, 2939,    0, 2940,    0,    0, 2940,
8294
8295      2939,    0, 2939, 2937,    0,    0, 2936, 2940,    0,    0,
8296         0, 2941, 2940, 2940, 2941, 2982, 2982, 2982, 2982, 2940,
8297         0, 2940, 2941,    0,    0,    0, 2942, 2941, 2941, 2942,
8298         0,    0, 2938, 2939, 2941,    0, 2941, 2942, 2982,    0,
8299      2982, 2943, 2942, 2942, 2943,    0,    0,    0,    0, 2942,
8300         0, 2942, 2943,    0,    0,    0,    0, 2943, 2943, 2944,
8301      2944, 2940, 2944, 2982, 2943,    0, 2943, 2941,    0,    0,
8302      2944, 2982,    0,    0,    0, 2944, 2944, 2945, 2945,    0,
8303      2945, 2942, 2944,    0, 2944,    0,    0,    0, 2945,    0,
8304         0,    0,    0, 2945, 2945, 2946, 2946, 2943, 2946,    0,
8305
8306      2945,    0, 2945,    0,    0,    0, 2946,    0,    0,    0,
8307         0, 2946, 2946, 2947, 2947, 2944, 2947,    0, 2946,    0,
8308      2946,    0,    0,    0, 2947,    0,    0,    0,    0, 2947,
8309      2947,    0,    0,    0,    0,    0, 2947,    0, 2947, 2948,
8310      2948,    0, 2948, 2949, 2949,    0, 2949,    0, 2945,    0,
8311      2948, 2946,    0,    0, 2949, 2948, 2948,    0,    0, 2949,
8312      2949,    0, 2948,    0, 2948,    0, 2949,    0, 2949, 2950,
8313      2950,    0, 2950,    0,    0,    0,    0,    0,    0,    0,
8314      2950,    0,    0,    0, 2947, 2950, 2950,    0,    0,    0,
8315         0,    0, 2950,    0, 2950,    0, 2952, 2952,    0, 2952,
8316
8317         0,    0,    0,    0, 2948,    0, 2949, 2952,    0,    0,
8318         0,    0, 2952, 2952,    0,    0,    0,    0,    0, 2952,
8319         0, 2952,    0, 2950, 2951, 2951, 2951, 2951, 2951, 2951,
8320      2951, 2951, 2951, 2951, 2951, 2951, 2951, 2951, 2951, 2951,
8321      2951, 2951, 2951, 2951, 2953, 2953,    0, 2953, 2951, 2951,
8322      2951, 2951, 2951, 2951,    0, 2953,    0,    0,    0,    0,
8323      2953, 2953,    0,    0,    0, 2952,    0, 2953,    0, 2953,
8324         0,    0, 2951, 2951, 2951, 2951, 2954, 2954,    0, 2954,
8325         0,    0,    0,    0,    0,    0,    0, 2954,    0,    0,
8326         0,    0, 2954, 2954,    0,    0,    0,    0,    0, 2954,
8327
8328      2953, 2954,    0, 2951, 2951, 2951, 2951, 2951, 2955, 2955,
8329         0, 2955,    0,    0,    0,    0,    0,    0,    0, 2955,
8330         0,    0,    0,    0, 2955, 2955, 2956, 2956,    0, 2956,
8331         0, 2955, 2954, 2955,    0,    0,    0, 2956,    0,    0,
8332         0,    0, 2956, 2956, 2957, 2957,    0, 2957,    0, 2956,
8333         0, 2956,    0,    0,    0, 2957,    0,    0,    0,    0,
8334      2957, 2957, 2958, 2958,    0, 2958,    0, 2957,    0, 2957,
8335         0,    0,    0, 2958,    0,    0,    0, 2955, 2958, 2958,
8336         0, 2959, 2959,    0, 2959, 2958,    0, 2958,    0,    0,
8337         0, 2956, 2959,    0,    0,    0,    0, 2959, 2959,    0,
8338
8339      2957,    0,    0,    0, 2959,    0, 2959, 2960, 2960,    0,
8340      2960, 3393, 3393, 3393, 3393,    0,    0,    0, 2960,    0,
8341         0,    0, 3393, 2960, 2960, 2961, 2961, 2958, 2961,    0,
8342      2960,    0, 2960,    0, 3393,    0, 2961, 2959,    0,    0,
8343         0, 2961, 2961, 3024, 3024, 3024, 3024,    0, 2961,    0,
8344      2961,    0,    0,    0,    0, 3024,    0,    0, 3024, 3393,
8345         0,    0, 2960,    0,    0,    0, 3024, 3024,    0,    0,
8346         0, 3036, 3036, 3036, 3036, 3037, 3037, 3037, 3037,    0,
8347         0, 2961, 3036,    0,    0,    0, 3037,    0,    0,    0,
8348         0, 3024, 3024,    0, 3036,    0, 3036,    0, 3037,    0,
8349
8350      3037, 3042, 3042, 3042, 3042,    0, 3046, 3046, 3046, 3046,
8351         0,    0, 3042,    0,    0,    0,    0, 3046, 3046, 3036,
8352         0, 3046,    0, 3037, 3042,    0, 3042, 3037,    0, 3046,
8353      3046, 3046,    0,    0,    0, 3047, 3047, 3047, 3047,    0,
8354      3036, 3038, 3038, 3038, 3038,    0, 3047, 3047,    0, 3042,
8355      3047,    0, 3038, 3038, 3046, 3046, 3038, 3089, 3047, 3047,
8356      3089,    0,    0,    0, 3038, 3038, 3038,    0, 3089,    0,
8357         0,    0,    0, 3089, 3089,    0, 3057, 3057, 3057, 3057,
8358      3089,    0, 3089, 3047, 3047,    0,    0, 3057, 3057, 3038,
8359      3038, 3057,    0,    0,    0,    0,    0,    0,    0, 3057,
8360
8361      3057, 3057,    0, 3059, 3059, 3059, 3059, 3038, 3039, 3039,
8362      3039, 3039,    0, 3089, 3059, 3059,    0,    0, 3059, 3039,
8363      3039,    0,    0, 3039, 3057, 3057, 3059, 3059, 3059,    0,
8364         0, 3039, 3039, 3039,    0,    0,    0,    0,    0, 3039,
8365         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
8366         0, 3059, 3059,    0,    0,    0, 3039, 3039, 3058, 3058,
8367      3058, 3058, 3058, 3058, 3058, 3058, 3058, 3058, 3058, 3058,
8368      3058, 3058, 3058, 3058, 3058, 3058, 3058, 3058, 3060, 3060,
8369      3060, 3060, 3058, 3058, 3058, 3058, 3058, 3058, 3087, 3060,
8370      3060, 3087,    0, 3060,    0,    0,    0,    0,    0, 3087,
8371
8372         0, 3060, 3060,    0, 3087, 3087, 3058, 3058, 3058, 3058,
8373         0, 3087,    0, 3087,    0,    0,    0,    0,    0,    0,
8374         0,    0,    0,    0,    0,    0, 3060, 3060,    0,    0,
8375         0,    0,    0,    0,    0,    0,    0, 3058, 3058, 3058,
8376      3058, 3058, 3061, 3061, 3061, 3061,    0,    0,    0,    0,
8377         0,    0, 3088, 3061, 3061, 3088,    0, 3061, 3087,    0,
8378         0,    0,    0, 3088,    0, 3061, 3061, 3061, 3088, 3088,
8379      3098,    0,    0, 3098,    0, 3088,    0, 3088,    0,    0,
8380         0, 3098, 3388, 3388, 3388, 3388, 3098, 3098,    0, 3388,
8381      3061, 3061,    0, 3098,    0, 3098, 3061, 3063, 3063, 3063,
8382
8383      3063,    0,    0,    0,    0, 3388, 3088,    0, 3063, 3063,
8384         0,    0, 3063,    0,    0,    0,    0,    0,    0,    0,
8385      3063, 3063, 3063,    0, 3099, 3098,    0, 3099,    0,    0,
8386      3388,    0,    0,    0,    0, 3099,    0,    0,    0, 3100,
8387      3099, 3099, 3100,    0,    0, 3063, 3063, 3099, 3388, 3099,
8388      3100,    0,    0, 3063,    0, 3100, 3100, 3063,    0,    0,
8389         0,    0, 3100, 3388, 3100,    0, 3063,    0,    0,    0,
8390      3063, 3073, 3073, 3073, 3073, 3073, 3073, 3073, 3073, 3073,
8391      3073, 3073, 3073, 3073, 3073, 3073, 3073, 3073, 3073, 3073,
8392      3073, 3100,    0, 3099,    0, 3073, 3073, 3073, 3073, 3073,
8393
8394      3073, 3101,    0,    0, 3101,    0,    0,    0,    0,    0,
8395         0,    0, 3101,    0,    0,    0,    0, 3101, 3101, 3073,
8396      3073, 3073, 3073, 3073, 3101,    0, 3101,    0,    0,    0,
8397         0,    0, 3102,    0,    0, 3102,    0,    0,    0,    0,
8398         0,    0,    0, 3102,    0,    0,    0,    0, 3102, 3102,
8399      3073, 3073, 3073, 3073, 3073, 3102,    0, 3102,    0, 3103,
8400      3103, 3101, 3103, 3104, 3104,    0, 3104,    0,    0,    0,
8401      3103,    0,    0,    0, 3104, 3103, 3103,    0,    0, 3104,
8402      3104,    0, 3103,    0, 3103,    0, 3104,    0, 3104, 3109,
8403      3109,    0, 3109, 3110, 3110,    0, 3110,    0,    0,    0,
8404
8405      3109,    0,    0, 3102, 3110, 3109, 3109,    0,    0, 3110,
8406      3110,    0, 3109,    0, 3109, 3103, 3110,    0, 3110, 3111,
8407      3111,    0, 3111, 3417, 3417, 3417, 3417,    0,    0,    0,
8408      3111,    0,    0,    0, 3417, 3111, 3111,    0, 3112, 3112,
8409         0, 3112, 3111,    0, 3111,    0, 3417,    0, 3110, 3112,
8410      3148, 3148, 3148, 3148, 3112, 3112,    0, 3150, 3150, 3150,
8411      3150, 3112, 3148, 3112,    0, 3148,    0,    0,    0, 3150,
8412         0, 3417, 3150, 3148, 3148,    0,    0,    0,    0, 3111,
8413      3150, 3150,    0,    0,    0, 3162, 3162, 3162, 3162,    0,
8414      3163, 3163, 3163, 3163,    0,    0, 3162,    0, 3148, 3148,
8415
8416      3203, 3163,    0, 3203,    0, 3150, 3150,    0, 3162, 3112,
8417      3162, 3203,    0, 3163,    0, 3163, 3203, 3203,    0, 3169,
8418      3169, 3169, 3169, 3203, 3202, 3203,    0, 3202,    0,    0,
8419      3169, 3169,    0, 3162, 3169, 3202,    0, 3162, 3163,    0,
8420      3202, 3202, 3169, 3169, 3169,    0,    0, 3202,    0, 3202,
8421         0,    0, 3203,    0,    0,    0,    0,    0,    0,    0,
8422         0, 3163, 3164, 3164, 3164, 3164,    0, 3169, 3169, 3175,
8423      3175, 3175, 3175, 3164, 3164,    0,    0, 3164,    0,    0,
8424      3175, 3175,    0,    0, 3175, 3164, 3164, 3164,    0,    0,
8425         0,    0, 3175, 3175, 3175, 3202,    0, 3177, 3177, 3177,
8426
8427      3177,    0,    0,    0, 3195, 3195, 3195, 3195, 3177, 3177,
8428      3164, 3164, 3177,    0,    0, 3195, 3195, 3175, 3175, 3195,
8429      3177, 3177, 3177,    0,    0,    0,    0, 3195, 3195, 3195,
8430         0, 3164, 3165, 3165, 3165, 3165,    0,    0,    0,    0,
8431         0,    0,    0, 3165, 3165, 3177, 3177, 3165,    0,    0,
8432         0, 3293, 3195, 3195, 3293, 3165, 3165, 3165,    0,    0,
8433         0,    0, 3293,    0,    0,    0,    0, 3293, 3293,    0,
8434         0, 3165,    0,    0, 3293,    0, 3293,    0,    0,    0,
8435      3165, 3165, 3182, 3182,    0, 3182, 3182, 3182, 3182, 3182,
8436      3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182,
8437
8438      3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182,
8439      3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182,
8440      3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182,
8441      3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182,
8442      3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182,
8443      3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182,
8444      3182, 3182, 3182, 3182, 3182, 3182, 3183, 3183, 3183, 3183,
8445      3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183,
8446      3183, 3183, 3183, 3183, 3183, 3183,    0,    0,    0,    0,
8447      3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183,
8448
8449      3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183,
8450      3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183,
8451      3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183,
8452      3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183,
8453      3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183,
8454      3184, 3184,    0, 3184, 3184, 3184, 3184, 3184, 3184, 3184,
8455      3184, 3184, 3184, 3184, 3184, 3184, 3184, 3184, 3184, 3184,
8456      3204,    0,    0, 3204, 3184, 3184, 3184, 3184, 3184, 3184,
8457      3205, 3204,    0, 3205,    0,    0, 3204, 3204,    0,    0,
8458      3184, 3205,    0, 3204,    0, 3204, 3205, 3205, 3184, 3184,
8459
8460      3184, 3184,    0, 3205,    0, 3205,    0,    0,    0,    0,
8461         0, 3206,    0,    0, 3206,    0,    0,    0,    0,    0,
8462         0,    0, 3206,    0,    0,    0, 3204, 3206, 3206, 3184,
8463      3184, 3184, 3184, 3184, 3206,    0, 3206, 3207, 3207,    0,
8464      3207, 3240, 3240, 3240, 3240,    0,    0,    0, 3207,    0,
8465      3205,    0, 3240, 3207, 3207,    0, 3241, 3241, 3241, 3241,
8466      3207,    0, 3207,    0, 3240,    0, 3240, 3241,    0,    0,
8467         0, 3252, 3252, 3252, 3252,    0,    0,    0,    0, 3241,
8468         0, 3241, 3252, 3252,    0,    0, 3252,    0, 3206, 3240,
8469         0,    0,    0,    0, 3252, 3252, 3252,    0,    0,    0,
8470
8471         0,    0,    0,    0, 3241,    0, 3285, 3285, 3285, 3285,
8472         0,    0, 3240,    0, 3207,    0,    0, 3285, 3285, 3252,
8473      3252, 3285, 3241, 3249, 3249, 3249, 3249,    0,    0, 3285,
8474      3285, 3285,    0, 3297, 3249, 3249, 3297,    0, 3249,    0,
8475         0,    0,    0,    0, 3297,    0, 3249, 3249, 3249, 3297,
8476      3297,    0,    0,    0, 3285, 3285, 3297,    0, 3297,    0,
8477         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
8478         0, 3249, 3249,    0,    0,    0,    0, 3249,    0,    0,
8479         0,    0,    0,    0,    0,    0,    0,    0,    0, 3297,
8480         0,    0,    0, 3249, 3257, 3257,    0, 3257, 3257, 3257,
8481
8482      3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257,
8483      3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257,
8484      3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257,
8485      3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257,
8486      3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257,
8487      3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257,
8488      3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257,
8489      3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3258, 3258,
8490      3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258,
8491      3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258,    0,    0,
8492
8493         0,    0, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258,
8494      3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258,
8495      3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258,
8496      3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258,
8497      3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258,
8498      3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258,
8499      3258, 3258, 3261, 3261,    0, 3261, 3261, 3261, 3261, 3261,
8500      3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261,
8501      3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261,
8502      3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261,
8503
8504      3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261,
8505      3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261,
8506      3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261,
8507      3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261,
8508      3261, 3261, 3261, 3261, 3261, 3261, 3262, 3262,    0, 3262,
8509      3262, 3262, 3262, 3262, 3262, 3262, 3262, 3262, 3262, 3262,
8510      3262, 3262, 3262, 3262, 3262, 3262, 3298, 3298,    0, 3298,
8511      3262, 3262, 3262, 3262, 3262, 3262,    0, 3298,    0,    0,
8512         0,    0, 3298, 3298,    0,    0,    0,    0,    0, 3298,
8513         0, 3298,    0,    0, 3262, 3262, 3262, 3262,    0,    0,
8514
8515         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
8516         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
8517         0,    0, 3298,    0,    0, 3262, 3262, 3262, 3262, 3262,
8518      3264, 3264,    0, 3264, 3264, 3264, 3264, 3264, 3264, 3264,
8519      3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264,
8520      3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264,
8521      3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264,
8522      3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264,
8523      3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264,
8524      3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264,
8525
8526      3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264,
8527      3264, 3264, 3264, 3264, 3269, 3269, 3269, 3269, 3269, 3269,
8528      3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269,
8529      3269, 3269, 3269, 3269,    0,    0,    0,    0, 3269, 3269,
8530      3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269,
8531      3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269,
8532      3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269,
8533      3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269,
8534      3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269,
8535      3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3270, 3270,
8536
8537      3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270,
8538      3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270,    0,    0,
8539         0,    0, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270,
8540      3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270,
8541      3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270,
8542      3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270,
8543      3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270,
8544      3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270,
8545      3270, 3270, 3294,    0,    0, 3294, 3295,    0,    0, 3295,
8546         0,    0,    0, 3294,    0,    0,    0, 3295, 3294, 3294,
8547
8548         0, 3296, 3295, 3295, 3296, 3294,    0, 3294,    0, 3295,
8549         0, 3295, 3296,    0,    0,    0,    0, 3296, 3296, 3323,
8550      3323, 3323, 3323,    0, 3296,    0, 3296,    0,    0,    0,
8551      3323,    0,    0,    0,    0, 3324, 3324, 3324, 3324,    0,
8552         0,    0, 3323,    0, 3323,    0, 3324,    0,    0,    0,
8553         0,    0, 3294, 3332, 3332, 3332, 3332, 3295, 3324,    0,
8554      3324,    0,    0,    0, 3332, 3332,    0, 3323, 3332,    0,
8555      3358,    0, 3296, 3358,    0,    0, 3332, 3332, 3332,    0,
8556         0, 3358,    0, 3324,    0, 3323, 3358, 3358,    0,    0,
8557         0,    0,    0, 3358,    0, 3358,    0,    0,    0,    0,
8558
8559         0, 3332, 3332,    0, 3324, 3329, 3329,    0, 3329, 3329,
8560      3329, 3329, 3329, 3329, 3329, 3329, 3329, 3329, 3329, 3329,
8561      3329, 3329, 3329, 3329, 3329,    0,    0,    0,    0, 3329,
8562      3329, 3329, 3329, 3329, 3329,    0,    0,    0,    0,    0,
8563         0, 3358,    0,    0,    0,    0,    0,    0,    0,    0,
8564         0,    0,    0, 3329, 3329, 3329, 3329,    0, 3359,    0,
8565         0, 3359,    0,    0,    0,    0,    0,    0,    0, 3359,
8566         0,    0,    0,    0, 3359, 3359,    0,    0,    0,    0,
8567         0, 3359,    0, 3359, 3329, 3329, 3329, 3329, 3329, 3339,
8568      3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339,
8569
8570      3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3359,
8571         0,    0,    0, 3339, 3339, 3339, 3339, 3339, 3339, 3339,
8572      3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339,
8573      3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339,
8574      3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339,
8575      3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339,
8576      3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339,
8577      3339, 3339, 3339, 3340, 3340, 3340, 3340, 3340, 3340, 3340,
8578      3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340,
8579      3340, 3340, 3340,    0,    0,    0,    0, 3340, 3340, 3340,
8580
8581      3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340,
8582      3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340,
8583      3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340,
8584      3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340,
8585      3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340,
8586      3340, 3340, 3340, 3340, 3340, 3340, 3340, 3342, 3342, 3342,
8587      3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342,
8588      3342, 3342, 3342, 3342, 3342, 3342, 3342,    0,    0,    0,
8589         0, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342,
8590      3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342,
8591
8592      3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342,
8593      3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342,
8594      3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342,
8595      3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342,
8596      3342, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
8597      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
8598      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
8599      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
8600      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
8601      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
8602
8603      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
8604      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
8605      3343, 3343, 3343, 3343, 3343, 3344, 3344, 3344, 3344, 3344,
8606      3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344,
8607      3344, 3344, 3344, 3344, 3344,    0,    0,    0,    0, 3344,
8608      3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344,
8609      3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344,
8610      3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344,
8611      3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344,
8612      3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344,
8613
8614      3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3346,
8615      3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346,
8616      3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346,
8617      3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346,
8618      3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346,
8619      3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346,
8620      3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346,
8621      3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346,
8622      3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346,
8623      3346, 3346, 3346, 3360,    0,    0, 3360, 3361, 3361,    0,
8624
8625      3361,    0,    0,    0, 3360,    0,    0,    0, 3361, 3360,
8626      3360,    0,    0, 3361, 3361,    0, 3360,    0, 3360,    0,
8627      3361,    0, 3361,    0, 3378, 3378, 3378, 3378, 3405,    0,
8628         0, 3405,    0,    0,    0, 3378,    0,    0,    0, 3405,
8629         0,    0,    0,    0, 3405, 3405,    0, 3378, 3360, 3378,
8630         0, 3405, 3361, 3405,    0,    0,    0,    0, 3459,    0,
8631         0, 3459, 3435,    0,    0, 3435,    0,    0,    0, 3459,
8632         0,    0, 3378, 3435, 3459, 3459,    0,    0, 3435, 3435,
8633         0, 3459, 3405, 3459,    0, 3435,    0, 3435,    0,    0,
8634         0,    0,    0, 3378, 3379, 3379, 3379, 3379, 3379, 3379,
8635
8636      3379, 3379, 3379, 3379, 3379, 3379, 3379, 3379, 3379, 3379,
8637      3379, 3379, 3379, 3379, 3435,    0,    0,    0, 3379, 3379,
8638      3379, 3379, 3379, 3379,    0,    0,    0,    0, 3459,    0,
8639      3470,    0,    0, 3470,    0,    0,    0,    0,    0,    0,
8640         0, 3470, 3379, 3379, 3379, 3379, 3470, 3470,    0,    0,
8641         0,    0,    0, 3470,    0, 3470,    0,    0,    0,    0,
8642         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
8643         0,    0,    0, 3379, 3379, 3379, 3379, 3379, 3386, 3386,
8644      3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386,
8645      3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386,    0,    0,
8646
8647         0, 3470, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386,
8648      3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386,
8649      3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386,
8650      3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386,
8651      3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386,
8652      3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386,
8653      3386, 3386, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392,
8654      3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392,
8655      3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392,
8656      3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392,
8657
8658      3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392,
8659      3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392,
8660      3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392,
8661      3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392,
8662      3392, 3392, 3392, 3392, 3392, 3392, 3394, 3394,    0, 3394,
8663      3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394,
8664      3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394,
8665      3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394,
8666      3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394,
8667      3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394,
8668
8669      3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394,
8670      3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394,
8671      3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394,
8672      3416, 3416, 3416, 3416, 3416, 3416, 3416, 3416, 3416, 3416,
8673      3416, 3416, 3416, 3416, 3416, 3416, 3416, 3416, 3416, 3416,
8674      3490, 3490, 3490, 3490, 3416, 3416, 3416, 3416, 3416, 3416,
8675         0, 3490, 3490,    0,    0, 3490,    0,    0,    0,    0,
8676         0,    0,    0, 3490, 3490, 3490,    0,    0, 3416, 3416,
8677      3416, 3416,    0,    0,    0,    0,    0,    0,    0,    0,
8678         0,    0,    0,    0,    0,    0,    0,    0, 3490, 3490,
8679
8680         0,    0,    0,    0,    0,    0,    0,    0,    0, 3416,
8681      3416, 3416, 3416, 3416, 3419, 3419,    0, 3419, 3419, 3419,
8682      3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
8683      3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
8684      3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
8685      3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
8686      3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
8687      3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
8688      3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
8689      3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3423, 3423,
8690
8691         0, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423,
8692      3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423,    0,    0,
8693         0,    0, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423,
8694      3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423,
8695      3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423,
8696      3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423,
8697      3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423,
8698      3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423,
8699      3423, 3423, 3424, 3424,    0, 3424, 3424, 3424, 3424, 3424,
8700      3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424,
8701
8702      3424, 3424,    0,    0,    0,    0, 3424, 3424, 3424, 3424,
8703      3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424,
8704      3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424,
8705      3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424,
8706      3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424,
8707      3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424,
8708      3424, 3424, 3424, 3424, 3424, 3424, 3451, 3451,    0, 3451,
8709      3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451,
8710      3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451,
8711      3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451,
8712
8713      3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451,
8714      3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451,
8715      3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451,
8716      3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451,
8717      3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451,
8718      3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492,
8719      3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492,
8720      3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492,
8721      3493, 3493, 3493, 3493, 3493, 3493, 3493, 3493, 3493, 3493,
8722      3493, 3493, 3493, 3493, 3493, 3493, 3493, 3493, 3493, 3493,
8723
8724      3493, 3493, 3493, 3493, 3493, 3493, 3493, 3493, 3493, 3493,
8725      3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494,
8726      3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494,
8727      3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494,
8728      3495, 3495, 3495, 3495, 3495, 3495, 3495, 3495, 3495, 3495,
8729      3495, 3495, 3495, 3495, 3495, 3495, 3495, 3495, 3495, 3495,
8730      3495, 3495, 3495, 3495, 3495, 3495, 3495, 3495, 3495, 3495,
8731      3496, 3496, 3496, 3496, 3496, 3496, 3496, 3496, 3496, 3496,
8732      3496, 3496, 3496, 3496, 3496, 3496, 3496, 3496, 3496, 3496,
8733      3496, 3496, 3496, 3496, 3496, 3496, 3496, 3496, 3496, 3496,
8734
8735      3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497,
8736      3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497,
8737      3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497,
8738      3498, 3498, 3498, 3498, 3498, 3498, 3498, 3498, 3498, 3498,
8739      3498, 3498, 3498, 3498, 3498, 3498, 3498, 3498, 3498, 3498,
8740      3498, 3498, 3498, 3498, 3498, 3498, 3498, 3498, 3498, 3498,
8741      3499, 3499, 3499, 3499, 3499, 3499, 3499, 3499, 3499, 3499,
8742      3499, 3499, 3499, 3499, 3499, 3499, 3499, 3499, 3499, 3499,
8743      3499, 3499, 3499, 3499, 3499, 3499, 3499, 3499, 3499, 3499,
8744      3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500,
8745
8746      3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500,
8747      3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500,
8748      3501, 3501, 3501, 3501, 3501, 3501, 3501, 3501, 3501, 3501,
8749      3501, 3501, 3501, 3501, 3501, 3501, 3501, 3501, 3501, 3501,
8750      3501, 3501, 3501, 3501, 3501, 3501, 3501, 3501, 3501, 3501,
8751      3502, 3502,    0,    0, 3502,    0, 3502, 3502, 3502, 3502,
8752      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
8753      3502, 3502, 3502,    0, 3502, 3502, 3502, 3502, 3502, 3502,
8754      3503, 3503,    0, 3503, 3503, 3503, 3503, 3503, 3503, 3503,
8755      3503, 3503, 3503, 3503, 3503, 3503, 3503, 3503, 3503, 3503,
8756
8757      3503, 3503, 3503, 3503, 3503, 3503, 3503, 3503, 3503, 3503,
8758      3504, 3504,    0,    0, 3504, 3504, 3504,    0, 3504, 3504,
8759      3504, 3504, 3504, 3504, 3504, 3504, 3504, 3504, 3504, 3504,
8760      3504, 3504, 3504,    0, 3504, 3504, 3504, 3504, 3504, 3504,
8761      3505, 3505,    0, 3505, 3505,    0, 3505, 3505, 3505, 3505,
8762      3505, 3505, 3505, 3505, 3505, 3505, 3505, 3505, 3505, 3505,
8763      3505, 3505, 3505, 3505, 3505, 3505, 3505, 3505, 3505, 3505,
8764      3506, 3506,    0, 3506, 3506, 3506, 3506, 3506, 3506, 3506,
8765      3506, 3506, 3506, 3506,    0, 3506, 3506, 3506, 3506, 3506,
8766      3506, 3506, 3506,    0, 3506, 3506, 3506, 3506, 3506, 3506,
8767
8768      3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507,
8769      3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507,
8770      3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507,
8771      3508, 3508,    0, 3508, 3508, 3508, 3508, 3508, 3508, 3508,
8772         0, 3508, 3508, 3508,    0, 3508, 3508, 3508, 3508, 3508,
8773      3508, 3508, 3508, 3508, 3508, 3508, 3508, 3508, 3508, 3508,
8774      3509, 3509,    0,    0, 3509, 3509, 3509, 3509, 3509, 3509,
8775      3509, 3509, 3509, 3509, 3509, 3509, 3509, 3509, 3509, 3509,
8776      3509, 3509, 3509, 3509, 3509, 3509, 3509, 3509, 3509, 3509,
8777      3510, 3510,    0, 3510, 3510, 3510, 3510, 3510, 3510, 3510,
8778
8779         0, 3510, 3510, 3510, 3510, 3510, 3510, 3510, 3510, 3510,
8780      3510, 3510, 3510, 3510, 3510, 3510, 3510, 3510, 3510, 3510,
8781      3512, 3512,    0, 3512, 3512, 3512, 3512, 3512, 3512, 3512,
8782      3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512,
8783      3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512,
8784      3513, 3513, 3513, 3513,    0,    0,    0, 3513, 3513,    0,
8785      3513,    0,    0,    0, 3513, 3513, 3513, 3513,    0, 3513,
8786      3513,    0, 3513, 3513, 3513,    0,    0,    0, 3513, 3514,
8787      3514, 3514, 3514,    0, 3514,    0,    0,    0,    0,    0,
8788         0,    0,    0,    0, 3514,    0,    0,    0, 3514, 3514,
8789
8790         0, 3514,    0, 3514,    0,    0, 3514, 3514, 3515, 3515,
8791      3515, 3515,    0, 3515,    0,    0,    0,    0,    0,    0,
8792         0,    0,    0,    0,    0,    0,    0, 3515, 3515,    0,
8793         0,    0, 3515,    0,    0,    0, 3515, 3517,    0,    0,
8794      3517,    0,    0,    0, 3517,    0,    0,    0, 3517, 3517,
8795         0, 3517, 3517,    0, 3517,    0, 3517, 3517,    0,    0,
8796         0, 3517,    0,    0,    0, 3517, 3519, 3519, 3519, 3519,
8797         0,    0,    0, 3519,    0,    0,    0,    0,    0,    0,
8798      3519, 3519,    0, 3519,    0, 3519, 3519,    0, 3519,    0,
8799      3519,    0,    0,    0, 3519, 3520, 3520, 3520, 3520,    0,
8800
8801      3520,    0,    0,    0,    0,    0,    0,    0,    0,    0,
8802         0,    0,    0,    0, 3520, 3520,    0,    0,    0, 3520,
8803         0,    0,    0, 3520, 3522, 3522,    0, 3522,    0,    0,
8804         0, 3522,    0,    0,    0, 3522, 3522,    0, 3522, 3522,
8805         0, 3522,    0, 3522, 3522,    0,    0,    0, 3522,    0,
8806         0,    0, 3522, 3524,    0,    0,    0,    0, 3524, 3524,
8807         0,    0,    0, 3524,    0,    0,    0, 3524, 3526,    0,
8808         0, 3526,    0,    0,    0, 3526,    0,    0,    0,    0,
8809         0,    0, 3526, 3526,    0,    0,    0, 3526, 3526,    0,
8810      3526,    0, 3526,    0,    0,    0, 3526, 3528,    0, 3528,
8811
8812         0,    0,    0,    0, 3528, 3528,    0,    0,    0, 3528,
8813         0,    0,    0, 3528, 3530,    0,    0,    0,    0, 3530,
8814      3530,    0,    0,    0, 3530,    0,    0,    0, 3530, 3532,
8815      3532,    0,    0,    0, 3532, 3532,    0, 3532,    0, 3532,
8816         0,    0,    0, 3532, 3533, 3533,    0,    0,    0,    0,
8817         0,    0,    0,    0,    0,    0,    0,    0,    0, 3533,
8818      3533,    0,    0,    0, 3533,    0,    0,    0, 3533, 3534,
8819      3534,    0, 3534, 3534, 3534, 3534, 3534, 3534, 3534, 3534,
8820      3534, 3534, 3534, 3534, 3534, 3534, 3534, 3534, 3534, 3534,
8821      3534, 3534, 3534, 3534, 3534, 3534, 3534, 3534, 3534, 3536,
8822
8823      3536, 3536, 3536,    0,    0,    0,    0,    0,    0,    0,
8824         0,    0,    0, 3536, 3536,    0, 3536,    0, 3536, 3536,
8825         0, 3536,    0, 3536,    0,    0,    0, 3536, 3537, 3537,
8826      3537, 3537,    0, 3537,    0,    0,    0,    0,    0,    0,
8827         0,    0,    0,    0,    0,    0,    0, 3537, 3537,    0,
8828         0,    0, 3537,    0,    0, 3537, 3537, 3538, 3538, 3538,
8829      3538,    0, 3538,    0,    0,    0,    0,    0,    0,    0,
8830         0,    0,    0,    0,    0,    0, 3538, 3538,    0,    0,
8831         0, 3538,    0,    0,    0, 3538, 3540,    0,    0,    0,
8832         0, 3540, 3540,    0,    0,    0, 3540,    0,    0,    0,
8833
8834      3540, 3542,    0,    0,    0,    0, 3542, 3542,    0,    0,
8835         0, 3542,    0,    0,    0, 3542, 3544,    0,    0, 3544,
8836         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
8837      3544, 3544,    0,    0,    0, 3544, 3544,    0,    0,    0,
8838      3544,    0,    0,    0, 3544, 3546,    0,    0,    0,    0,
8839      3546, 3546,    0,    0,    0, 3546,    0,    0,    0, 3546,
8840      3548, 3548,    0, 3548,    0, 3548, 3548,    0, 3548, 3548,
8841      3548, 3548, 3548, 3548, 3548, 3548, 3548, 3548, 3548, 3548,
8842      3548, 3548, 3548, 3548, 3548, 3548, 3548, 3548, 3548, 3548,
8843      3549,    0,    0,    0,    0, 3549, 3549,    0,    0,    0,
8844
8845      3549,    0,    0,    0, 3549, 3551, 3551, 3551, 3551,    0,
8846         0,    0,    0,    0,    0,    0,    0,    0,    0, 3551,
8847      3551,    0,    0,    0, 3551, 3551,    0,    0, 3551, 3551,
8848         0,    0,    0, 3551, 3552, 3552,    0, 3552, 3552,    0,
8849         0, 3552, 3552, 3552, 3552, 3552, 3552, 3552, 3552, 3552,
8850      3552, 3552, 3552, 3552, 3552, 3552, 3552,    0, 3552, 3552,
8851      3552, 3552, 3552, 3552, 3554, 3554,    0, 3554, 3554,    0,
8852         0, 3554, 3554, 3554, 3554, 3554, 3554, 3554, 3554, 3554,
8853      3554, 3554, 3554, 3554, 3554, 3554, 3554,    0, 3554, 3554,
8854      3554, 3554, 3554, 3554, 3555, 3555,    0, 3555, 3555, 3555,
8855
8856      3555, 3555, 3555, 3555, 3555, 3555, 3555, 3555, 3555, 3555,
8857      3555, 3555, 3555, 3555, 3555, 3555, 3555, 3555, 3555, 3555,
8858      3555, 3555, 3555, 3555, 3557,    0,    0,    0,    0, 3557,
8859      3557,    0,    0,    0, 3557,    0,    0,    0, 3557, 3559,
8860      3559,    0,    0,    0, 3559, 3559,    0,    0,    0, 3559,
8861         0,    0,    0, 3559, 3560, 3560, 3560, 3560, 3560, 3560,
8862      3560, 3560, 3560,    0, 3560, 3560, 3560, 3560, 3560, 3560,
8863      3560, 3560, 3560, 3560, 3560, 3560, 3560, 3560, 3560, 3560,
8864      3560, 3560, 3560, 3560, 3561,    0, 3561, 3561,    0, 3561,
8865      3561, 3561,    0,    0, 3561, 3561, 3561, 3561, 3561, 3561,
8866
8867      3561, 3561, 3561, 3561, 3561, 3561, 3561,    0, 3561, 3561,
8868      3561, 3561, 3561, 3561, 3562, 3562,    0,    0, 3562,    0,
8869      3562, 3562, 3562, 3562, 3562, 3562, 3562, 3562, 3562, 3562,
8870      3562, 3562, 3562, 3562, 3562, 3562, 3562,    0, 3562, 3562,
8871      3562, 3562, 3562, 3562, 3563, 3563,    0,    0, 3563, 3563,
8872      3563,    0, 3563, 3563, 3563, 3563, 3563, 3563, 3563, 3563,
8873      3563, 3563, 3563, 3563, 3563, 3563, 3563,    0, 3563, 3563,
8874      3563, 3563, 3563, 3563, 3564, 3564,    0, 3564, 3564,    0,
8875      3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564,
8876      3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564,
8877
8878      3564, 3564, 3564, 3564, 3565, 3565,    0, 3565, 3565, 3565,
8879      3565, 3565, 3565, 3565, 3565, 3565, 3565, 3565,    0, 3565,
8880      3565, 3565, 3565, 3565, 3565, 3565, 3565,    0, 3565, 3565,
8881      3565, 3565, 3565, 3565, 3566, 3566, 3566, 3566, 3566, 3566,
8882      3566, 3566, 3566, 3566, 3566, 3566, 3566, 3566, 3566, 3566,
8883      3566, 3566, 3566, 3566, 3566, 3566, 3566, 3566, 3566, 3566,
8884      3566, 3566, 3566, 3566, 3567, 3567,    0, 3567, 3567, 3567,
8885      3567, 3567, 3567, 3567,    0, 3567, 3567, 3567,    0, 3567,
8886      3567, 3567, 3567, 3567, 3567, 3567, 3567, 3567, 3567, 3567,
8887      3567, 3567, 3567, 3567, 3568, 3568,    0,    0, 3568, 3568,
8888
8889      3568, 3568, 3568, 3568, 3568, 3568, 3568, 3568, 3568, 3568,
8890      3568, 3568, 3568, 3568, 3568, 3568, 3568, 3568, 3568, 3568,
8891      3568, 3568, 3568, 3568, 3569, 3569,    0, 3569, 3569, 3569,
8892      3569, 3569, 3569, 3569,    0, 3569, 3569, 3569, 3569, 3569,
8893      3569, 3569, 3569, 3569, 3569, 3569, 3569, 3569, 3569, 3569,
8894      3569, 3569, 3569, 3569, 3570, 3570, 3570, 3570,    0,    0,
8895         0, 3570, 3570,    0, 3570,    0,    0,    0, 3570, 3570,
8896      3570, 3570,    0, 3570, 3570,    0, 3570, 3570, 3570,    0,
8897         0,    0, 3570, 3571, 3571,    0, 3571, 3571, 3571, 3571,
8898      3571, 3571, 3571, 3571, 3571, 3571, 3571, 3571, 3571, 3571,
8899
8900      3571, 3571, 3571, 3571, 3571, 3571, 3571, 3571, 3571, 3571,
8901      3571, 3571, 3571, 3572,    0,    0, 3572,    0, 3572,    0,
8902         0, 3572, 3572,    0,    0,    0,    0,    0, 3572,    0,
8903         0,    0, 3572, 3572,    0, 3572,    0, 3572,    0,    0,
8904      3572, 3572, 3574, 3574, 3574, 3574,    0, 3574,    0,    0,
8905         0,    0,    0,    0,    0,    0,    0, 3574,    0,    0,
8906         0, 3574, 3574,    0, 3574,    0, 3574,    0,    0, 3574,
8907      3574, 3575, 3575,    0, 3575, 3575,    0, 3575, 3575, 3575,
8908      3575, 3575, 3575, 3575, 3575,    0, 3575, 3575, 3575, 3575,
8909      3575, 3575, 3575, 3575, 3575, 3575, 3575,    0, 3575, 3575,
8910
8911      3575, 3576, 3576, 3576, 3576,    0, 3576,    0,    0,    0,
8912         0,    0,    0,    0,    0,    0, 3576,    0,    0,    0,
8913      3576, 3576,    0, 3576,    0, 3576,    0,    0, 3576, 3576,
8914      3577,    0, 3577, 3577,    0, 3577, 3577, 3577, 3577,    0,
8915      3577, 3577, 3577, 3577, 3577, 3577, 3577, 3577, 3577, 3577,
8916      3577, 3577, 3577,    0, 3577, 3577, 3577, 3577, 3577, 3577,
8917      3578, 3578, 3578, 3578,    0,    0,    0, 3578, 3578,    0,
8918      3578,    0,    0,    0, 3578, 3578, 3578, 3578,    0, 3578,
8919      3578,    0, 3578, 3578, 3578,    0,    0,    0, 3578, 3579,
8920      3579, 3579, 3579,    0, 3579,    0,    0,    0,    0,    0,
8921
8922         0,    0,    0,    0, 3579,    0,    0,    0, 3579, 3579,
8923         0, 3579,    0, 3579,    0,    0, 3579, 3579, 3580, 3580,
8924      3580, 3580,    0, 3580,    0,    0,    0,    0,    0,    0,
8925         0,    0,    0,    0,    0,    0,    0, 3580, 3580,    0,
8926         0,    0, 3580,    0,    0,    0, 3580, 3581, 3581, 3581,
8927      3581,    0,    0,    0, 3581, 3581,    0, 3581,    0,    0,
8928         0, 3581,    0, 3581, 3581,    0, 3581, 3581,    0,    0,
8929      3581, 3581,    0,    0,    0, 3581, 3582,    0,    0, 3582,
8930         0,    0,    0, 3582,    0,    0,    0, 3582, 3582,    0,
8931      3582, 3582,    0, 3582,    0, 3582, 3582,    0,    0,    0,
8932
8933      3582,    0,    0,    0, 3582, 3583,    0,    0, 3583,    0,
8934      3583,    0,    0, 3583, 3583,    0,    0,    0,    0,    0,
8935         0,    0,    0,    0, 3583, 3583,    0,    0,    0, 3583,
8936         0,    0,    0, 3583, 3584, 3584,    0, 3584, 3584, 3584,
8937      3584, 3584,    0,    0, 3584, 3584, 3584, 3584, 3584, 3584,
8938      3584, 3584,    0, 3584, 3584, 3584,    0, 3584,    0, 3584,
8939         0,    0, 3584, 3584, 3585, 3585, 3585, 3585,    0,    0,
8940         0, 3585,    0,    0,    0,    0,    0,    0, 3585, 3585,
8941         0, 3585,    0, 3585, 3585,    0, 3585,    0, 3585,    0,
8942         0,    0, 3585, 3586, 3586, 3586, 3586,    0, 3586,    0,
8943
8944         0,    0,    0,    0,    0,    0,    0,    0, 3586,    0,
8945         0,    0, 3586, 3586,    0, 3586,    0, 3586,    0,    0,
8946      3586, 3586, 3587, 3587,    0, 3587, 3587,    0, 3587, 3587,
8947         0,    0, 3587, 3587, 3587, 3587,    0, 3587, 3587, 3587,
8948      3587, 3587, 3587, 3587, 3587, 3587, 3587, 3587,    0,    0,
8949      3587, 3587, 3588, 3588, 3588, 3588,    0, 3588,    0,    0,
8950         0,    0,    0,    0,    0,    0,    0, 3588,    0,    0,
8951         0, 3588, 3588,    0, 3588,    0, 3588,    0,    0, 3588,
8952      3588, 3589, 3589, 3589, 3589,    0, 3589,    0,    0,    0,
8953         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
8954
8955      3589, 3589,    0,    0,    0, 3589,    0,    0,    0, 3589,
8956      3590, 3590, 3590, 3590,    0,    0,    0, 3590,    0,    0,
8957         0,    0,    0,    0, 3590,    0,    0,    0,    0, 3590,
8958      3590,    0,    0,    0, 3590,    0,    0,    0, 3590, 3591,
8959      3591,    0, 3591,    0,    0,    0, 3591,    0,    0,    0,
8960      3591, 3591,    0, 3591, 3591,    0, 3591,    0, 3591, 3591,
8961         0,    0,    0, 3591,    0,    0,    0, 3591, 3592,    0,
8962         0,    0,    0, 3592, 3592,    0,    0,    0, 3592,    0,
8963         0,    0, 3592, 3593,    0,    0, 3593,    0,    0,    0,
8964      3593,    0,    0,    0,    0,    0,    0, 3593, 3593,    0,
8965
8966         0,    0, 3593, 3593,    0, 3593,    0, 3593,    0,    0,
8967         0, 3593, 3594,    0,    0,    0,    0,    0,    0,    0,
8968         0,    0,    0,    0,    0,    0, 3594, 3594,    0,    0,
8969         0, 3594,    0,    0,    0, 3594, 3595,    0,    0,    0,
8970         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
8971      3595, 3595,    0,    0,    0, 3595,    0,    0,    0, 3595,
8972      3596,    0, 3596,    0,    0,    0,    0, 3596, 3596,    0,
8973         0,    0, 3596,    0,    0,    0, 3596, 3597,    0,    0,
8974         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
8975         0, 3597, 3597,    0,    0,    0, 3597,    0,    0,    0,
8976
8977      3597, 3598,    0,    0,    0,    0, 3598, 3598,    0,    0,
8978         0, 3598,    0,    0,    0, 3598, 3599, 3599,    0,    0,
8979         0, 3599, 3599,    0, 3599,    0, 3599,    0,    0,    0,
8980      3599, 3600,    0,    0,    0,    0,    0,    0,    0,    0,
8981         0,    0,    0,    0,    0, 3600, 3600,    0,    0,    0,
8982      3600,    0,    0,    0, 3600, 3601,    0,    0,    0,    0,
8983         0,    0,    0,    0,    0,    0,    0,    0,    0, 3601,
8984      3601,    0,    0,    0, 3601,    0,    0,    0, 3601, 3602,
8985         0,    0,    0,    0, 3602, 3602,    0,    0,    0, 3602,
8986         0,    0,    0, 3602, 3603, 3603,    0, 3603, 3603, 3603,
8987
8988      3603, 3603, 3603, 3603, 3603, 3603, 3603, 3603, 3603, 3603,
8989      3603, 3603, 3603, 3603, 3603, 3603, 3603, 3603, 3603, 3603,
8990      3603, 3603, 3603, 3603, 3604, 3604, 3604, 3604,    0,    0,
8991         0,    0,    0,    0,    0,    0,    0,    0, 3604, 3604,
8992         0, 3604,    0, 3604, 3604,    0, 3604,    0, 3604,    0,
8993         0,    0, 3604, 3605, 3605, 3605, 3605,    0, 3605,    0,
8994         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
8995         0,    0, 3605, 3605,    0,    0,    0, 3605,    0,    0,
8996      3605, 3605, 3606, 3606,    0, 3606, 3606,    0, 3606, 3606,
8997      3606, 3606, 3606, 3606,    0,    0,    0, 3606, 3606, 3606,
8998
8999      3606, 3606, 3606, 3606, 3606, 3606, 3606, 3606,    0, 3606,
9000      3606, 3606, 3607, 3607, 3607, 3607,    0,    0,    0,    0,
9001         0,    0,    0,    0,    0,    0, 3607, 3607,    0, 3607,
9002         0, 3607, 3607,    0, 3607,    0, 3607,    0,    0,    0,
9003      3607, 3608, 3608, 3608, 3608,    0, 3608,    0,    0,    0,
9004         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
9005      3608, 3608,    0,    0,    0, 3608,    0,    0,    0, 3608,
9006      3609,    0,    0, 3609,    0,    0,    0,    0,    0,    0,
9007         0,    0,    0,    0, 3609,    0,    0, 3609,    0, 3609,
9008      3609,    0,    0,    0, 3609,    0,    0,    0, 3609, 3610,
9009
9010         0,    0,    0,    0, 3610, 3610,    0,    0,    0, 3610,
9011         0,    0,    0, 3610, 3611,    0,    0,    0,    0, 3611,
9012      3611,    0,    0,    0, 3611,    0,    0,    0, 3611, 3612,
9013         0,    0, 3612,    0,    0,    0,    0,    0,    0,    0,
9014         0,    0,    0, 3612, 3612,    0,    0,    0, 3612, 3612,
9015         0,    0,    0, 3612,    0,    0,    0, 3612, 3613,    0,
9016         0,    0,    0, 3613, 3613,    0,    0,    0, 3613,    0,
9017         0,    0, 3613, 3614,    0,    0,    0,    0, 3614, 3614,
9018         0,    0,    0, 3614,    0,    0,    0, 3614, 3615, 3615,
9019         0, 3615,    0, 3615, 3615, 3615, 3615, 3615, 3615, 3615,
9020
9021      3615, 3615, 3615, 3615, 3615, 3615, 3615, 3615, 3615, 3615,
9022      3615,    0, 3615, 3615, 3615, 3615, 3615, 3615, 3616, 3616,
9023         0, 3616, 3616, 3616, 3616, 3616, 3616, 3616, 3616, 3616,
9024      3616, 3616, 3616, 3616, 3616, 3616, 3616, 3616, 3616, 3616,
9025      3616, 3616, 3616, 3616, 3616, 3616, 3616, 3616, 3617, 3617,
9026      3617, 3617,    0,    0,    0,    0,    0,    0,    0,    0,
9027         0,    0, 3617, 3617,    0,    0,    0, 3617, 3617,    0,
9028         0, 3617, 3617,    0,    0,    0, 3617, 3618, 3618,    0,
9029      3618, 3618,    0,    0, 3618, 3618, 3618, 3618, 3618, 3618,
9030      3618, 3618, 3618, 3618, 3618, 3618, 3618, 3618, 3618, 3618,
9031
9032         0, 3618, 3618, 3618, 3618, 3618, 3618, 3619,    0,    0,
9033         0,    0, 3619, 3619,    0,    0,    0, 3619,    0,    0,
9034         0, 3619, 3620, 3620,    0, 3620, 3620,    0,    0, 3620,
9035      3620, 3620, 3620, 3620, 3620, 3620, 3620, 3620, 3620, 3620,
9036      3620, 3620, 3620, 3620, 3620,    0, 3620, 3620, 3620, 3620,
9037      3620, 3620, 3621,    0,    0,    0,    0, 3621, 3621,    0,
9038         0,    0, 3621,    0,    0,    0, 3621, 3622, 3622,    0,
9039         0,    0, 3622, 3622,    0,    0,    0, 3622,    0,    0,
9040         0, 3622, 3623, 3623, 3623, 3623, 3623, 3623, 3623, 3623,
9041      3623,    0, 3623, 3623, 3623, 3623, 3623, 3623, 3623, 3623,
9042
9043      3623, 3623, 3623, 3623, 3623, 3623, 3623, 3623, 3623, 3623,
9044      3623, 3623, 3624,    0, 3624, 3624,    0, 3624, 3624, 3624,
9045         0,    0, 3624, 3624, 3624, 3624, 3624, 3624, 3624, 3624,
9046      3624, 3624, 3624, 3624, 3624,    0, 3624, 3624, 3624, 3624,
9047      3624, 3624, 3625, 3625, 3625, 3625, 3625, 3625, 3625, 3625,
9048      3625, 3625, 3625, 3625, 3625, 3625,    0, 3625, 3625, 3625,
9049      3625, 3625, 3625, 3625, 3625, 3625, 3625, 3625, 3625, 3625,
9050      3625, 3625, 3626, 3626, 3626, 3626, 3626, 3626, 3626, 3626,
9051      3626, 3626, 3626, 3626, 3626, 3626, 3626, 3626, 3626, 3626,
9052      3626, 3626, 3626, 3626, 3626, 3626, 3626, 3626, 3626, 3626,
9053
9054      3626, 3626, 3627, 3627, 3627, 3627, 3627, 3627, 3627, 3627,
9055      3627, 3627, 3627, 3627, 3627, 3627,    0, 3627, 3627, 3627,
9056      3627, 3627, 3627, 3627, 3627, 3627, 3627, 3627, 3627, 3627,
9057      3627, 3627, 3628, 3628, 3628, 3628, 3628, 3628, 3628, 3628,
9058      3628, 3628, 3628, 3628, 3628, 3628, 3628, 3628, 3628, 3628,
9059      3628, 3628, 3628, 3628, 3628, 3628, 3628, 3628, 3628, 3628,
9060      3628, 3628, 3629, 3629, 3629, 3629, 3629, 3629, 3629, 3629,
9061      3629, 3629, 3629, 3629, 3629, 3629, 3629, 3629, 3629, 3629,
9062      3629, 3629, 3629, 3629, 3629, 3629, 3629, 3629, 3629, 3629,
9063      3629, 3629, 3630, 3630,    0,    0, 3630,    0, 3630, 3630,
9064
9065      3630, 3630, 3630, 3630, 3630, 3630, 3630, 3630, 3630, 3630,
9066      3630, 3630, 3630, 3630, 3630,    0, 3630, 3630, 3630, 3630,
9067      3630, 3630, 3631, 3631, 3631, 3631, 3631, 3631, 3631, 3631,
9068      3631, 3631, 3631, 3631, 3631, 3631, 3631, 3631, 3631, 3631,
9069      3631, 3631, 3631, 3631, 3631, 3631, 3631, 3631, 3631, 3631,
9070      3631, 3631, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632,
9071      3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632,
9072      3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632,
9073      3632, 3632, 3633, 3633, 3633, 3633, 3633, 3633, 3633, 3633,
9074      3633, 3633, 3633, 3633, 3633, 3633, 3633, 3633, 3633, 3633,
9075
9076      3633, 3633, 3633, 3633, 3633, 3633, 3633, 3633, 3633, 3633,
9077      3633, 3633, 3634, 3634, 3634, 3634, 3634, 3634, 3634, 3634,
9078      3634, 3634, 3634, 3634, 3634, 3634, 3634, 3634, 3634, 3634,
9079      3634, 3634, 3634, 3634, 3634, 3634, 3634, 3634, 3634, 3634,
9080      3634, 3634, 3635, 3635,    0,    0, 3635, 3635, 3635,    0,
9081      3635, 3635, 3635, 3635, 3635, 3635, 3635, 3635, 3635, 3635,
9082      3635, 3635, 3635, 3635, 3635,    0, 3635, 3635, 3635, 3635,
9083      3635, 3635, 3636, 3636, 3636, 3636, 3636, 3636, 3636, 3636,
9084      3636, 3636, 3636, 3636, 3636, 3636, 3636, 3636, 3636, 3636,
9085      3636, 3636, 3636, 3636, 3636, 3636, 3636, 3636, 3636, 3636,
9086
9087      3636, 3636, 3637, 3637, 3637, 3637, 3637, 3637, 3637, 3637,
9088      3637, 3637, 3637, 3637, 3637, 3637, 3637, 3637, 3637, 3637,
9089      3637, 3637, 3637, 3637, 3637, 3637, 3637, 3637, 3637, 3637,
9090      3637, 3637, 3638, 3638, 3638, 3638, 3638, 3638, 3638, 3638,
9091      3638, 3638, 3638, 3638, 3638, 3638, 3638, 3638, 3638, 3638,
9092      3638, 3638, 3638, 3638, 3638, 3638, 3638, 3638, 3638, 3638,
9093      3638, 3638, 3639, 3639, 3639, 3639, 3639, 3639, 3639, 3639,
9094      3639, 3639, 3639, 3639, 3639, 3639, 3639, 3639, 3639, 3639,
9095      3639, 3639, 3639, 3639, 3639, 3639, 3639, 3639, 3639, 3639,
9096      3639, 3639, 3640, 3640,    0, 3640, 3640,    0, 3640, 3640,
9097
9098      3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640,
9099      3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640,
9100      3640, 3640, 3641, 3641, 3641, 3641, 3641, 3641, 3641, 3641,
9101      3641, 3641, 3641, 3641, 3641, 3641, 3641, 3641, 3641, 3641,
9102      3641, 3641, 3641, 3641, 3641, 3641, 3641, 3641, 3641, 3641,
9103      3641, 3641, 3642, 3642, 3642, 3642, 3642, 3642, 3642, 3642,
9104      3642, 3642, 3642, 3642, 3642, 3642, 3642, 3642, 3642, 3642,
9105      3642, 3642, 3642, 3642, 3642, 3642, 3642, 3642, 3642, 3642,
9106      3642, 3642, 3643, 3643, 3643, 3643, 3643, 3643, 3643, 3643,
9107      3643, 3643, 3643, 3643, 3643, 3643, 3643, 3643, 3643, 3643,
9108
9109      3643, 3643, 3643, 3643, 3643, 3643, 3643, 3643, 3643, 3643,
9110      3643, 3643, 3644, 3644, 3644, 3644, 3644, 3644, 3644, 3644,
9111      3644, 3644, 3644, 3644, 3644, 3644, 3644, 3644, 3644, 3644,
9112      3644, 3644, 3644, 3644, 3644, 3644, 3644, 3644, 3644, 3644,
9113      3644, 3644, 3645, 3645, 3645, 3645, 3645, 3645, 3645, 3645,
9114      3645, 3645, 3645, 3645, 3645, 3645, 3645, 3645, 3645, 3645,
9115      3645, 3645, 3645, 3645, 3645, 3645, 3645, 3645, 3645, 3645,
9116      3645, 3645, 3646, 3646,    0,    0, 3646, 3646, 3646, 3646,
9117      3646, 3646, 3646, 3646, 3646, 3646, 3646, 3646, 3646, 3646,
9118      3646, 3646, 3646, 3646, 3646, 3646, 3646, 3646, 3646, 3646,
9119
9120      3646, 3646, 3647, 3647, 3647, 3647, 3647, 3647, 3647, 3647,
9121      3647, 3647, 3647, 3647, 3647, 3647, 3647, 3647, 3647, 3647,
9122      3647, 3647, 3647, 3647, 3647, 3647, 3647, 3647, 3647, 3647,
9123      3647, 3647, 3648, 3648, 3648, 3648, 3648, 3648, 3648, 3648,
9124      3648, 3648, 3648, 3648, 3648, 3648, 3648, 3648, 3648, 3648,
9125      3648, 3648, 3648, 3648, 3648, 3648, 3648, 3648, 3648, 3648,
9126      3648, 3648, 3649, 3649, 3649, 3649, 3649, 3649, 3649, 3649,
9127      3649, 3649, 3649, 3649, 3649, 3649, 3649, 3649, 3649, 3649,
9128      3649, 3649, 3649, 3649, 3649, 3649, 3649, 3649, 3649, 3649,
9129      3649, 3649, 3650, 3650, 3650, 3650, 3650, 3650, 3650, 3650,
9130
9131      3650, 3650, 3650, 3650, 3650, 3650, 3650, 3650, 3650, 3650,
9132      3650, 3650, 3650, 3650, 3650, 3650, 3650, 3650, 3650, 3650,
9133      3650, 3650, 3651, 3651,    0, 3651, 3651, 3651, 3651, 3651,
9134      3651, 3651,    0, 3651, 3651, 3651, 3651, 3651, 3651, 3651,
9135      3651, 3651, 3651, 3651, 3651, 3651, 3651, 3651, 3651, 3651,
9136      3651, 3651, 3652, 3652, 3652, 3652, 3652, 3652, 3652, 3652,
9137      3652, 3652, 3652, 3652, 3652, 3652, 3652, 3652, 3652, 3652,
9138      3652, 3652, 3652, 3652, 3652, 3652, 3652, 3652, 3652, 3652,
9139      3652, 3652, 3653, 3653, 3653, 3653,    0,    0,    0, 3653,
9140      3653,    0, 3653,    0,    0,    0, 3653, 3653, 3653, 3653,
9141
9142         0, 3653, 3653,    0, 3653, 3653, 3653,    0,    0,    0,
9143      3653, 3654,    0,    0, 3654,    0, 3654,    0,    0, 3654,
9144      3654,    0,    0,    0,    0,    0, 3654,    0,    0,    0,
9145      3654, 3654,    0, 3654,    0, 3654,    0,    0, 3654, 3654,
9146      3655, 3655, 3655, 3655,    0, 3655,    0,    0, 3655,    0,
9147         0,    0,    0,    0, 3655, 3655,    0,    0,    0, 3655,
9148      3655,    0, 3655,    0, 3655,    0,    0, 3655, 3655, 3656,
9149      3656, 3656, 3656,    0, 3656,    0,    0,    0,    0,    0,
9150         0,    0,    0,    0,    0,    0,    0,    0, 3656, 3656,
9151         0,    0,    0, 3656,    0,    0,    0, 3656, 3658, 3658,
9152
9153         0, 3658, 3658,    0, 3658, 3658, 3658, 3658, 3658, 3658,
9154      3658, 3658,    0, 3658, 3658, 3658, 3658, 3658, 3658, 3658,
9155      3658, 3658, 3658, 3658,    0, 3658, 3658, 3658, 3659, 3659,
9156         0, 3659, 3659,    0, 3659, 3659, 3659, 3659, 3659, 3659,
9157         0,    0,    0, 3659, 3659, 3659, 3659, 3659, 3659, 3659,
9158      3659, 3659, 3659, 3659,    0, 3659, 3659, 3659, 3660, 3660,
9159         0, 3660, 3660,    0, 3660, 3660,    0,    0, 3660, 3660,
9160      3660, 3660,    0, 3660, 3660, 3660, 3660, 3660, 3660, 3660,
9161      3660, 3660, 3660, 3660,    0,    0, 3660, 3660, 3661, 3661,
9162      3661, 3661,    0, 3661,    0,    0,    0,    0,    0,    0,
9163
9164         0,    0,    0, 3661,    0,    0,    0, 3661, 3661,    0,
9165      3661,    0, 3661,    0,    0, 3661, 3661, 3662,    0, 3662,
9166      3662,    0, 3662, 3662, 3662, 3662,    0, 3662, 3662, 3662,
9167      3662, 3662, 3662, 3662, 3662, 3662, 3662, 3662, 3662, 3662,
9168         0, 3662, 3662, 3662, 3662, 3662, 3662, 3663, 3663, 3663,
9169      3663,    0,    0,    0, 3663, 3663,    0, 3663,    0,    0,
9170         0, 3663, 3663, 3663, 3663,    0, 3663, 3663,    0, 3663,
9171      3663, 3663,    0,    0,    0, 3663, 3664, 3664,    0, 3664,
9172      3664,    0, 3664, 3664, 3664, 3664, 3664, 3664, 3664, 3664,
9173         0, 3664, 3664, 3664, 3664, 3664, 3664, 3664, 3664, 3664,
9174
9175      3664, 3664,    0, 3664, 3664, 3664, 3665, 3665, 3665, 3665,
9176         0, 3665,    0,    0,    0,    0,    0,    0,    0,    0,
9177         0, 3665,    0,    0,    0, 3665, 3665,    0, 3665,    0,
9178      3665,    0,    0, 3665, 3665, 3666, 3666, 3666, 3666,    0,
9179      3666,    0,    0,    0,    0,    0,    0,    0,    0,    0,
9180      3666,    0,    0,    0, 3666, 3666,    0, 3666,    0, 3666,
9181         0,    0, 3666, 3666, 3667, 3667, 3667, 3667,    0,    0,
9182         0, 3667,    0,    0,    0,    0,    0,    0, 3667, 3667,
9183         0, 3667,    0, 3667, 3667,    0, 3667,    0, 3667,    0,
9184         0,    0, 3667, 3668, 3668, 3668, 3668,    0, 3668,    0,
9185
9186         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
9187         0,    0, 3668, 3668,    0,    0,    0, 3668,    0,    0,
9188         0, 3668, 3669, 3669, 3669, 3669,    0,    0,    0, 3669,
9189      3669,    0, 3669,    0,    0,    0, 3669,    0, 3669, 3669,
9190         0, 3669, 3669,    0,    0, 3669, 3669,    0,    0,    0,
9191      3669, 3670,    0,    0, 3670,    0,    0,    0, 3670,    0,
9192         0,    0, 3670, 3670,    0, 3670, 3670,    0, 3670,    0,
9193      3670, 3670,    0,    0,    0, 3670,    0,    0,    0, 3670,
9194      3671,    0,    0, 3671,    0, 3671,    0,    0, 3671, 3671,
9195         0,    0,    0,    0,    0,    0,    0,    0,    0, 3671,
9196
9197      3671,    0,    0,    0, 3671,    0,    0,    0, 3671, 3672,
9198         0,    0, 3672,    0, 3672,    0,    0, 3672,    0,    0,
9199         0,    0,    0, 3672,    0,    0,    0,    0, 3672, 3672,
9200         0,    0,    0, 3672,    0,    0,    0, 3672, 3673,    0,
9201         0, 3673,    0, 3673,    0,    0,    0,    0,    0,    0,
9202         0,    0,    0,    0,    0,    0,    0, 3673, 3673,    0,
9203         0,    0, 3673,    0,    0,    0, 3673, 3674, 3674,    0,
9204      3674, 3674, 3674, 3674, 3674,    0,    0, 3674, 3674, 3674,
9205      3674, 3674, 3674, 3674, 3674,    0, 3674, 3674, 3674,    0,
9206      3674,    0, 3674,    0,    0, 3674, 3674, 3675, 3675,    0,
9207
9208      3675, 3675,    0, 3675, 3675,    0,    0, 3675, 3675, 3675,
9209      3675,    0, 3675, 3675, 3675, 3675, 3675, 3675, 3675, 3675,
9210      3675, 3675, 3675,    0,    0, 3675, 3675, 3676, 3676, 3676,
9211      3676,    0, 3676,    0,    0,    0,    0,    0,    0,    0,
9212         0,    0, 3676,    0,    0,    0, 3676, 3676,    0, 3676,
9213         0, 3676,    0,    0, 3676, 3676, 3677, 3677, 3677, 3677,
9214         0, 3677,    0,    0,    0,    0,    0,    0,    0,    0,
9215         0, 3677,    0,    0,    0, 3677, 3677,    0, 3677,    0,
9216      3677,    0,    0, 3677, 3677, 3678, 3678, 3678, 3678,    0,
9217         0,    0, 3678,    0,    0,    0,    0,    0,    0, 3678,
9218
9219      3678,    0, 3678,    0, 3678, 3678,    0, 3678,    0, 3678,
9220         0,    0,    0, 3678, 3679, 3679, 3679, 3679,    0, 3679,
9221         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
9222         0,    0,    0, 3679, 3679,    0,    0,    0, 3679,    0,
9223         0,    0, 3679, 3680, 3680, 3680, 3680,    0,    0,    0,
9224      3680,    0,    0,    0,    0,    0,    0, 3680,    0,    0,
9225         0,    0, 3680, 3680,    0,    0,    0, 3680,    0,    0,
9226         0, 3680, 3681, 3681,    0, 3681,    0,    0,    0, 3681,
9227         0,    0,    0, 3681, 3681,    0, 3681, 3681,    0, 3681,
9228         0, 3681, 3681,    0,    0,    0, 3681,    0,    0,    0,
9229
9230      3681, 3683,    0,    0,    0,    0,    0, 3683,    0,    0,
9231         0,    0, 3683, 3683,    0,    0,    0, 3683,    0,    0,
9232         0, 3683, 3684,    0,    0,    0,    0,    0,    0,    0,
9233         0,    0,    0,    0,    0,    0, 3684, 3684,    0,    0,
9234         0, 3684,    0,    0,    0, 3684, 3686,    0,    0,    0,
9235         0, 3686, 3686,    0, 3686,    0, 3686,    0,    0,    0,
9236      3686, 3687,    0,    0, 3687,    0,    0,    0, 3687,    0,
9237         0,    0,    0,    0,    0, 3687, 3687,    0,    0,    0,
9238      3687, 3687,    0, 3687,    0, 3687,    0,    0,    0, 3687,
9239      3689,    0, 3689,    0,    0,    0,    0, 3689, 3689,    0,
9240
9241         0,    0, 3689,    0,    0,    0, 3689, 3690,    0,    0,
9242         0,    0, 3690, 3690,    0,    0,    0, 3690,    0,    0,
9243         0, 3690, 3691, 3691,    0,    0,    0, 3691, 3691,    0,
9244      3691,    0, 3691,    0,    0,    0, 3691, 3692,    0,    0,
9245         0,    0, 3692, 3692,    0,    0,    0, 3692,    0,    0,
9246         0, 3692, 3693, 3693, 3693, 3693, 3693, 3693, 3693, 3693,
9247      3693, 3693, 3693, 3693, 3693, 3693, 3693, 3693, 3693, 3693,
9248      3693, 3693, 3693, 3693, 3693, 3693, 3693, 3693, 3693, 3693,
9249      3693, 3693, 3694, 3694,    0, 3694, 3694, 3694, 3694, 3694,
9250      3694, 3694, 3694, 3694, 3694, 3694, 3694, 3694, 3694, 3694,
9251
9252      3694, 3694, 3694, 3694, 3694, 3694, 3694, 3694, 3694, 3694,
9253      3694, 3694, 3695, 3695, 3695, 3695, 3695, 3695, 3695, 3695,
9254      3695, 3695, 3695, 3695, 3695, 3695, 3695, 3695, 3695, 3695,
9255      3695, 3695, 3695, 3695, 3695, 3695, 3695, 3695, 3695, 3695,
9256      3695, 3695, 3696, 3696, 3696, 3696, 3696, 3696, 3696, 3696,
9257      3696, 3696, 3696, 3696, 3696, 3696, 3696, 3696, 3696, 3696,
9258      3696, 3696, 3696, 3696, 3696, 3696, 3696, 3696, 3696, 3696,
9259      3696, 3696, 3697, 3697, 3697, 3697, 3697, 3697, 3697, 3697,
9260      3697, 3697, 3697, 3697, 3697, 3697, 3697, 3697, 3697, 3697,
9261      3697, 3697, 3697, 3697, 3697, 3697, 3697, 3697, 3697, 3697,
9262
9263      3697, 3697, 3698, 3698, 3698, 3698,    0, 3698,    0,    0,
9264         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
9265         0, 3698, 3698,    0,    0,    0, 3698,    0,    0, 3698,
9266      3698, 3699, 3699, 3699, 3699,    0, 3699,    0,    0,    0,
9267         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
9268      3699, 3699,    0,    0,    0, 3699,    0,    0, 3699, 3699,
9269      3700, 3700, 3700, 3700,    0,    0,    0,    0,    0,    0,
9270         0,    0,    0,    0, 3700, 3700,    0, 3700,    0, 3700,
9271      3700,    0, 3700,    0, 3700,    0,    0,    0, 3700, 3701,
9272      3701, 3701, 3701,    0,    0,    0,    0,    0,    0,    0,
9273
9274         0,    0,    0, 3701, 3701,    0, 3701,    0, 3701, 3701,
9275         0, 3701,    0, 3701,    0,    0,    0, 3701, 3702, 3702,
9276         0, 3702, 3702,    0, 3702, 3702, 3702, 3702, 3702, 3702,
9277         0,    0,    0, 3702, 3702, 3702, 3702, 3702, 3702, 3702,
9278      3702, 3702, 3702, 3702,    0, 3702, 3702, 3702, 3703,    0,
9279         0, 3703,    0,    0,    0,    0,    0,    0,    0,    0,
9280         0,    0, 3703,    0,    0, 3703,    0, 3703, 3703,    0,
9281         0,    0, 3703,    0,    0,    0, 3703, 3704,    0,    0,
9282         0,    0, 3704, 3704,    0,    0,    0, 3704,    0,    0,
9283         0, 3704, 3705,    0,    0,    0,    0, 3705, 3705,    0,
9284
9285         0,    0, 3705,    0,    0,    0, 3705, 3706,    0,    0,
9286         0,    0, 3706, 3706,    0,    0,    0, 3706,    0,    0,
9287         0, 3706, 3707, 3707,    0, 3707,    0, 3707, 3707, 3707,
9288      3707, 3707, 3707, 3707, 3707, 3707, 3707, 3707, 3707, 3707,
9289      3707, 3707, 3707, 3707, 3707,    0, 3707, 3707, 3707, 3707,
9290      3707, 3707, 3708,    0,    0,    0,    0, 3708, 3708,    0,
9291         0,    0, 3708,    0,    0,    0, 3708, 3709, 3709, 3709,
9292      3709, 3709, 3709, 3709, 3709, 3709, 3709, 3709, 3709, 3709,
9293      3709, 3709, 3709, 3709, 3709, 3709, 3709, 3709, 3709, 3709,
9294      3709, 3709, 3709, 3709, 3709, 3709, 3709, 3710, 3710,    0,
9295
9296      3710, 3710,    0,    0, 3710, 3710, 3710, 3710, 3710, 3710,
9297      3710, 3710, 3710, 3710, 3710, 3710, 3710, 3710, 3710, 3710,
9298         0, 3710, 3710, 3710, 3710, 3710, 3710, 3711, 3711, 3711,
9299      3711, 3711, 3711, 3711, 3711, 3711, 3711, 3711, 3711, 3711,
9300      3711, 3711, 3711, 3711, 3711, 3711, 3711, 3711, 3711, 3711,
9301      3711, 3711, 3711, 3711, 3711, 3711, 3711, 3712, 3712, 3712,
9302      3712, 3712, 3712, 3712, 3712, 3712, 3712, 3712, 3712, 3712,
9303      3712, 3712, 3712, 3712, 3712, 3712, 3712, 3712, 3712, 3712,
9304      3712, 3712, 3712, 3712, 3712, 3712, 3712, 3713, 3713, 3713,
9305      3713, 3713, 3713, 3713, 3713, 3713, 3713, 3713, 3713, 3713,
9306
9307      3713, 3713, 3713, 3713, 3713, 3713, 3713, 3713, 3713, 3713,
9308      3713, 3713, 3713, 3713, 3713, 3713, 3713, 3714,    0,    0,
9309         0,    0, 3714, 3714,    0,    0,    0, 3714,    0,    0,
9310         0, 3714, 3715,    0,    0,    0,    0,    0,    0,    0,
9311         0,    0,    0,    0,    0,    0, 3715, 3715,    0,    0,
9312         0, 3715,    0,    0,    0, 3715, 3716, 3716, 3716, 3716,
9313      3716, 3716, 3716, 3716, 3716,    0, 3716, 3716, 3716, 3716,
9314      3716, 3716, 3716, 3716, 3716, 3716, 3716, 3716, 3716, 3716,
9315      3716, 3716, 3716, 3716, 3716, 3716, 3717,    0, 3717, 3717,
9316         0, 3717, 3717, 3717,    0,    0, 3717, 3717, 3717, 3717,
9317
9318      3717, 3717, 3717, 3717, 3717, 3717, 3717, 3717, 3717,    0,
9319      3717, 3717, 3717, 3717, 3717, 3717, 3718, 3718, 3718, 3718,
9320      3718, 3718, 3718, 3718, 3718, 3718, 3718, 3718, 3718, 3718,
9321      3718, 3718, 3718, 3718, 3718, 3718, 3718, 3718, 3718, 3718,
9322      3718, 3718, 3718, 3718, 3718, 3718, 3719, 3719, 3719, 3719,
9323      3719, 3719, 3719, 3719, 3719, 3719, 3719, 3719, 3719, 3719,
9324      3719, 3719, 3719, 3719, 3719, 3719, 3719, 3719, 3719, 3719,
9325      3719, 3719, 3719, 3719, 3719, 3719, 3720, 3720, 3720, 3720,
9326      3720, 3720, 3720, 3720, 3720, 3720, 3720, 3720, 3720, 3720,
9327      3720, 3720, 3720, 3720, 3720, 3720, 3720, 3720, 3720, 3720,
9328
9329      3720, 3720, 3720, 3720, 3720, 3720, 3721, 3721, 3721, 3721,
9330      3721, 3721, 3721, 3721, 3721, 3721, 3721, 3721, 3721, 3721,
9331      3721, 3721, 3721, 3721, 3721, 3721, 3721, 3721, 3721, 3721,
9332      3721, 3721, 3721, 3721, 3721, 3721, 3722, 3722, 3722, 3722,
9333      3722, 3722, 3722, 3722, 3722, 3722,    0, 3722, 3722, 3722,
9334         0, 3722, 3722, 3722, 3722, 3722, 3722, 3722, 3722, 3722,
9335      3722, 3722, 3722, 3722, 3722, 3722, 3723, 3723, 3723, 3723,
9336      3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723,
9337      3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723,
9338      3723, 3723, 3723, 3723, 3723, 3723, 3724, 3724, 3724, 3724,
9339
9340      3724, 3724, 3724, 3724, 3724, 3724, 3724, 3724, 3724, 3724,
9341      3724, 3724, 3724, 3724, 3724, 3724, 3724, 3724, 3724, 3724,
9342      3724, 3724, 3724, 3724, 3724, 3724, 3725, 3725, 3725, 3725,
9343      3725, 3725, 3725, 3725, 3725, 3725,    0, 3725, 3725, 3725,
9344         0, 3725, 3725, 3725, 3725, 3725, 3725, 3725, 3725, 3725,
9345      3725, 3725, 3725, 3725, 3725, 3725, 3726, 3726, 3726, 3726,
9346      3726, 3726, 3726, 3726, 3726, 3726, 3726, 3726, 3726, 3726,
9347      3726, 3726, 3726, 3726, 3726, 3726, 3726, 3726, 3726, 3726,
9348      3726, 3726, 3726, 3726, 3726, 3726, 3727, 3727, 3727, 3727,
9349      3727, 3727, 3727, 3727, 3727, 3727, 3727, 3727, 3727, 3727,
9350
9351      3727, 3727, 3727, 3727, 3727, 3727, 3727, 3727, 3727, 3727,
9352      3727, 3727, 3727, 3727, 3727, 3727, 3728, 3728, 3728, 3728,
9353      3728, 3728, 3728, 3728, 3728, 3728, 3728, 3728, 3728, 3728,
9354      3728, 3728, 3728, 3728, 3728, 3728, 3728, 3728, 3728, 3728,
9355      3728, 3728, 3728, 3728, 3728, 3728, 3729, 3729,    0,    0,
9356      3729,    0, 3729, 3729, 3729, 3729, 3729, 3729, 3729, 3729,
9357      3729, 3729, 3729, 3729, 3729, 3729, 3729, 3729, 3729,    0,
9358      3729, 3729, 3729, 3729, 3729, 3729, 3730, 3730, 3730, 3730,
9359      3730, 3730, 3730, 3730, 3730, 3730, 3730, 3730, 3730, 3730,
9360      3730, 3730, 3730, 3730, 3730, 3730, 3730, 3730, 3730, 3730,
9361
9362      3730, 3730, 3730, 3730, 3730, 3730, 3731, 3731, 3731, 3731,
9363      3731, 3731, 3731, 3731, 3731, 3731, 3731, 3731, 3731, 3731,
9364      3731, 3731, 3731, 3731, 3731, 3731, 3731, 3731, 3731, 3731,
9365      3731, 3731, 3731, 3731, 3731, 3731, 3732, 3732, 3732, 3732,
9366      3732, 3732, 3732, 3732, 3732, 3732, 3732, 3732, 3732, 3732,
9367      3732, 3732, 3732, 3732, 3732, 3732, 3732, 3732, 3732, 3732,
9368      3732, 3732, 3732, 3732, 3732, 3732, 3733, 3733, 3733, 3733,
9369      3733, 3733, 3733, 3733, 3733, 3733, 3733, 3733, 3733, 3733,
9370      3733, 3733, 3733, 3733, 3733, 3733, 3733, 3733, 3733, 3733,
9371      3733, 3733, 3733, 3733, 3733, 3733, 3734, 3734, 3734, 3734,
9372
9373      3734, 3734, 3734, 3734, 3734, 3734, 3734, 3734, 3734, 3734,
9374      3734, 3734, 3734, 3734, 3734, 3734, 3734, 3734, 3734, 3734,
9375      3734, 3734, 3734, 3734, 3734, 3734, 3735, 3735,    0,    0,
9376      3735, 3735, 3735,    0, 3735, 3735, 3735, 3735, 3735, 3735,
9377      3735, 3735, 3735, 3735, 3735, 3735, 3735, 3735, 3735,    0,
9378      3735, 3735, 3735, 3735, 3735, 3735, 3736, 3736, 3736, 3736,
9379      3736, 3736, 3736, 3736, 3736, 3736, 3736, 3736, 3736, 3736,
9380      3736, 3736, 3736, 3736, 3736, 3736, 3736, 3736, 3736, 3736,
9381      3736, 3736, 3736, 3736, 3736, 3736, 3737, 3737, 3737, 3737,
9382      3737, 3737, 3737, 3737, 3737, 3737, 3737, 3737, 3737, 3737,
9383
9384      3737, 3737, 3737, 3737, 3737, 3737, 3737, 3737, 3737, 3737,
9385      3737, 3737, 3737, 3737, 3737, 3737, 3738, 3738, 3738, 3738,
9386      3738, 3738, 3738, 3738, 3738, 3738, 3738, 3738, 3738, 3738,
9387      3738, 3738, 3738, 3738, 3738, 3738, 3738, 3738, 3738, 3738,
9388      3738, 3738, 3738, 3738, 3738, 3738, 3739, 3739, 3739, 3739,
9389      3739, 3739, 3739, 3739, 3739, 3739, 3739, 3739, 3739, 3739,
9390      3739, 3739, 3739, 3739, 3739, 3739, 3739, 3739, 3739, 3739,
9391      3739, 3739, 3739, 3739, 3739, 3739, 3740, 3740, 3740, 3740,
9392      3740, 3740, 3740, 3740, 3740, 3740, 3740, 3740, 3740, 3740,
9393      3740, 3740, 3740, 3740, 3740, 3740, 3740, 3740, 3740, 3740,
9394
9395      3740, 3740, 3740, 3740, 3740, 3740, 3741, 3741,    0, 3741,
9396      3741,    0, 3741, 3741, 3741, 3741, 3741, 3741, 3741, 3741,
9397      3741, 3741, 3741, 3741, 3741, 3741, 3741, 3741, 3741, 3741,
9398      3741, 3741, 3741, 3741, 3741, 3741, 3742, 3742, 3742, 3742,
9399      3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742,
9400      3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742,
9401      3742, 3742, 3742, 3742, 3742, 3742, 3743, 3743, 3743, 3743,
9402      3743, 3743, 3743, 3743, 3743, 3743, 3743, 3743, 3743, 3743,
9403      3743, 3743, 3743, 3743, 3743, 3743, 3743, 3743, 3743, 3743,
9404      3743, 3743, 3743, 3743, 3743, 3743, 3744, 3744, 3744, 3744,
9405
9406      3744, 3744, 3744, 3744, 3744, 3744, 3744, 3744, 3744, 3744,
9407      3744, 3744, 3744, 3744, 3744, 3744, 3744, 3744, 3744, 3744,
9408      3744, 3744, 3744, 3744, 3744, 3744, 3745, 3745, 3745, 3745,
9409      3745, 3745, 3745, 3745, 3745, 3745, 3745, 3745, 3745, 3745,
9410      3745, 3745, 3745, 3745, 3745, 3745, 3745, 3745, 3745, 3745,
9411      3745, 3745, 3745, 3745, 3745, 3745, 3746, 3746, 3746, 3746,
9412      3746, 3746, 3746, 3746, 3746, 3746, 3746, 3746, 3746, 3746,
9413      3746, 3746, 3746, 3746, 3746, 3746, 3746, 3746, 3746, 3746,
9414      3746, 3746, 3746, 3746, 3746, 3746, 3747, 3747, 3747, 3747,
9415      3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747,
9416
9417      3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747,
9418      3747, 3747, 3747, 3747, 3747, 3747, 3748, 3748, 3748, 3748,
9419      3748, 3748, 3748, 3748, 3748, 3748, 3748, 3748, 3748, 3748,
9420      3748, 3748, 3748, 3748, 3748, 3748, 3748, 3748, 3748, 3748,
9421      3748, 3748, 3748, 3748, 3748, 3748, 3749, 3749, 3749, 3749,
9422      3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749,
9423      3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749,
9424      3749, 3749, 3749, 3749, 3749, 3749, 3750, 3750,    0,    0,
9425      3750, 3750, 3750, 3750, 3750, 3750, 3750, 3750, 3750, 3750,
9426      3750, 3750, 3750, 3750, 3750, 3750, 3750, 3750, 3750, 3750,
9427
9428      3750, 3750, 3750, 3750, 3750, 3750, 3751, 3751, 3751, 3751,
9429      3751, 3751, 3751, 3751, 3751, 3751, 3751, 3751, 3751, 3751,
9430      3751, 3751, 3751, 3751, 3751, 3751, 3751, 3751, 3751, 3751,
9431      3751, 3751, 3751, 3751, 3751, 3751, 3752, 3752, 3752, 3752,
9432      3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752,
9433      3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752,
9434      3752, 3752, 3752, 3752, 3752, 3752, 3753, 3753, 3753, 3753,
9435      3753, 3753, 3753, 3753, 3753, 3753, 3753, 3753, 3753, 3753,
9436      3753, 3753, 3753, 3753, 3753, 3753, 3753, 3753, 3753, 3753,
9437      3753, 3753, 3753, 3753, 3753, 3753, 3754, 3754, 3754, 3754,
9438
9439      3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754,
9440      3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754,
9441      3754, 3754, 3754, 3754, 3754, 3754, 3755, 3755, 3755, 3755,
9442      3755, 3755, 3755, 3755, 3755, 3755, 3755, 3755, 3755, 3755,
9443      3755, 3755, 3755, 3755, 3755, 3755, 3755, 3755, 3755, 3755,
9444      3755, 3755, 3755, 3755, 3755, 3755, 3756, 3756, 3756, 3756,
9445      3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756,
9446      3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756,
9447      3756, 3756, 3756, 3756, 3756, 3756, 3757, 3757, 3757, 3757,
9448      3757, 3757, 3757, 3757, 3757, 3757, 3757, 3757, 3757, 3757,
9449
9450      3757, 3757, 3757, 3757, 3757, 3757, 3757, 3757, 3757, 3757,
9451      3757, 3757, 3757, 3757, 3757, 3757, 3758, 3758, 3758, 3758,
9452      3758, 3758, 3758, 3758, 3758, 3758, 3758, 3758, 3758, 3758,
9453      3758, 3758, 3758, 3758, 3758, 3758, 3758, 3758, 3758, 3758,
9454      3758, 3758, 3758, 3758, 3758, 3758, 3759, 3759, 3759, 3759,
9455      3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759,
9456      3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759,
9457      3759, 3759, 3759, 3759, 3759, 3759, 3760, 3760, 3760, 3760,
9458         0,    0,    0, 3760, 3760,    0, 3760,    0,    0,    0,
9459      3760, 3760, 3760, 3760,    0, 3760, 3760,    0, 3760, 3760,
9460
9461      3760,    0,    0,    0, 3760, 3761, 3761, 3761, 3761,    0,
9462      3761,    0,    0, 3761,    0,    0,    0,    0,    0, 3761,
9463      3761,    0,    0,    0, 3761, 3761,    0, 3761,    0, 3761,
9464         0,    0, 3761, 3761, 3762, 3762, 3762, 3762,    0, 3762,
9465         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
9466         0,    0,    0, 3762, 3762,    0,    0,    0, 3762,    0,
9467         0, 3762, 3762, 3763, 3763, 3763, 3763,    0, 3763,    0,
9468         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
9469         0,    0, 3763, 3763,    0,    0,    0, 3763,    0,    0,
9470         0, 3763, 3764,    0,    0, 3764,    0, 3764,    0,    0,
9471
9472      3764,    0,    0,    0,    0,    0, 3764, 3764,    0,    0,
9473         0, 3764, 3764,    0, 3764,    0, 3764,    0,    0, 3764,
9474      3764, 3765, 3765, 3765, 3765, 3765, 3765, 3765, 3765, 3765,
9475      3765, 3765, 3765, 3765, 3765, 3765,    0, 3765, 3765, 3765,
9476      3765,    0,    0, 3765, 3765, 3765,    0, 3765, 3765, 3765,
9477      3765, 3766, 3766, 3766, 3766, 3766, 3766, 3766, 3766, 3766,
9478      3766, 3766, 3766, 3766, 3766, 3766,    0, 3766, 3766, 3766,
9479      3766,    0,    0, 3766, 3766, 3766,    0, 3766, 3766, 3766,
9480      3766, 3767, 3767, 3767, 3767,    0, 3767,    0,    0,    0,
9481         0,    0,    0,    0,    0,    0, 3767,    0,    0,    0,
9482
9483      3767, 3767,    0, 3767,    0, 3767,    0,    0, 3767, 3767,
9484      3768,    0, 3768, 3768,    0, 3768, 3768, 3768, 3768,    0,
9485      3768, 3768, 3768, 3768, 3768, 3768, 3768, 3768, 3768, 3768,
9486      3768, 3768, 3768,    0, 3768, 3768, 3768, 3768, 3768, 3768,
9487      3769, 3769,    0, 3769, 3769,    0, 3769, 3769, 3769, 3769,
9488      3769, 3769, 3769, 3769,    0, 3769, 3769, 3769, 3769, 3769,
9489      3769, 3769, 3769, 3769, 3769, 3769,    0, 3769, 3769, 3769,
9490      3770, 3770,    0, 3770, 3770,    0, 3770, 3770,    0,    0,
9491      3770, 3770, 3770, 3770,    0, 3770, 3770, 3770, 3770, 3770,
9492      3770, 3770, 3770, 3770, 3770, 3770,    0,    0, 3770, 3770,
9493
9494      3771, 3771, 3771, 3771,    0, 3771,    0,    0,    0,    0,
9495         0,    0,    0,    0,    0, 3771,    0,    0,    0, 3771,
9496      3771,    0, 3771,    0, 3771,    0,    0, 3771, 3771, 3772,
9497      3772, 3772, 3772,    0,    0,    0, 3772,    0,    0,    0,
9498         0,    0,    0, 3772, 3772,    0, 3772,    0, 3772, 3772,
9499         0, 3772,    0, 3772,    0,    0,    0, 3772, 3773, 3773,
9500      3773, 3773,    0, 3773,    0,    0,    0,    0,    0,    0,
9501         0,    0,    0,    0,    0,    0,    0, 3773, 3773,    0,
9502         0,    0, 3773,    0,    0,    0, 3773, 3774, 3774, 3774,
9503      3774,    0,    0,    0, 3774,    0,    0,    0,    0,    0,
9504
9505         0, 3774,    0,    0,    0,    0, 3774, 3774,    0,    0,
9506         0, 3774,    0,    0,    0, 3774, 3775, 3775,    0, 3775,
9507      3775,    0, 3775, 3775, 3775, 3775, 3775, 3775, 3775, 3775,
9508         0, 3775, 3775, 3775, 3775, 3775, 3775, 3775, 3775, 3775,
9509      3775, 3775,    0, 3775, 3775, 3775, 3776, 3776, 3776, 3776,
9510         0, 3776,    0,    0,    0,    0,    0,    0,    0,    0,
9511         0, 3776,    0,    0,    0, 3776, 3776,    0, 3776,    0,
9512      3776,    0,    0, 3776, 3776, 3777,    0,    0, 3777,    0,
9513         0,    0, 3777,    0,    0,    0, 3777, 3777,    0, 3777,
9514      3777,    0, 3777,    0, 3777, 3777,    0,    0,    0, 3777,
9515
9516         0,    0,    0, 3777, 3778,    0,    0, 3778,    0, 3778,
9517         0,    0, 3778,    0,    0,    0,    0,    0, 3778,    0,
9518         0,    0,    0, 3778, 3778,    0,    0,    0, 3778,    0,
9519         0,    0, 3778, 3779, 3779, 3779, 3779, 3779, 3779, 3779,
9520      3779, 3779, 3779, 3779, 3779, 3779, 3779, 3779,    0, 3779,
9521      3779, 3779, 3779,    0,    0, 3779, 3779, 3779,    0, 3779,
9522      3779, 3779, 3779, 3780, 3780, 3780, 3780, 3780, 3780, 3780,
9523      3780, 3780, 3780, 3780, 3780, 3780, 3780, 3780,    0, 3780,
9524      3780, 3780, 3780,    0,    0, 3780, 3780, 3780,    0, 3780,
9525      3780, 3780, 3780, 3781,    0,    0, 3781,    0, 3781,    0,
9526
9527         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
9528         0,    0, 3781, 3781,    0,    0,    0, 3781,    0,    0,
9529         0, 3781, 3782,    0,    0, 3782,    0,    0,    0,    0,
9530         0,    0,    0,    0,    0,    0, 3782, 3782,    0, 3782,
9531         0, 3782, 3782,    0,    0,    0, 3782,    0,    0,    0,
9532      3782, 3783, 3783,    0, 3783, 3783, 3783, 3783, 3783,    0,
9533         0, 3783, 3783, 3783, 3783, 3783, 3783, 3783, 3783,    0,
9534      3783, 3783, 3783,    0, 3783,    0, 3783,    0,    0, 3783,
9535      3783, 3784, 3784, 3784, 3784,    0,    0,    0, 3784,    0,
9536         0,    0,    0,    0,    0, 3784, 3784,    0, 3784,    0,
9537
9538      3784, 3784,    0, 3784,    0, 3784,    0,    0,    0, 3784,
9539      3785, 3785, 3785, 3785,    0, 3785,    0,    0,    0,    0,
9540         0,    0,    0,    0,    0,    0,    0,    0,    0, 3785,
9541      3785,    0,    0,    0, 3785,    0,    0,    0, 3785, 3786,
9542      3786, 3786, 3786,    0,    0,    0, 3786,    0,    0,    0,
9543         0,    0,    0, 3786,    0,    0,    0,    0, 3786, 3786,
9544         0,    0,    0, 3786,    0,    0,    0, 3786, 3787, 3787,
9545         0, 3787,    0,    0,    0, 3787,    0,    0,    0, 3787,
9546      3787,    0, 3787, 3787,    0, 3787,    0, 3787, 3787,    0,
9547         0,    0, 3787,    0,    0,    0, 3787, 3788,    0,    0,
9548
9549         0,    0,    0, 3788,    0,    0,    0,    0, 3788, 3788,
9550         0,    0,    0, 3788,    0,    0,    0, 3788, 3790, 3790,
9551         0,    0,    0, 3790, 3790,    0,    0,    0, 3790,    0,
9552         0,    0, 3790, 3791,    0,    0,    0,    0, 3791, 3791,
9553         0, 3791,    0, 3791,    0,    0,    0, 3791, 3792,    0,
9554         0, 3792,    0,    0,    0, 3792,    0,    0,    0,    0,
9555         0,    0, 3792, 3792,    0,    0,    0, 3792, 3792,    0,
9556      3792,    0, 3792,    0,    0,    0, 3792, 3793,    0, 3793,
9557         0,    0,    0,    0, 3793, 3793,    0,    0,    0, 3793,
9558         0,    0,    0, 3793, 3794,    0,    0,    0,    0, 3794,
9559
9560      3794,    0,    0,    0, 3794,    0,    0,    0, 3794, 3795,
9561      3795,    0,    0,    0, 3795, 3795,    0, 3795,    0, 3795,
9562         0,    0,    0, 3795, 3796,    0,    0,    0,    0, 3796,
9563      3796,    0,    0,    0, 3796,    0,    0,    0, 3796, 3797,
9564      3797,    0, 3797, 3797, 3797, 3797, 3797, 3797, 3797, 3797,
9565      3797, 3797, 3797, 3797, 3797, 3797, 3797, 3797, 3797, 3797,
9566      3797, 3797, 3797, 3797, 3797, 3797, 3797, 3797, 3797, 3798,
9567      3798, 3798, 3798, 3798, 3798, 3798, 3798, 3798, 3798, 3798,
9568      3798, 3798, 3798, 3798, 3798, 3798, 3798, 3798, 3798, 3798,
9569      3798, 3798, 3798, 3798, 3798, 3798, 3798, 3798, 3798, 3799,
9570
9571      3799, 3799, 3799, 3799, 3799, 3799, 3799, 3799, 3799, 3799,
9572      3799, 3799, 3799, 3799, 3799, 3799, 3799, 3799, 3799, 3799,
9573      3799, 3799, 3799, 3799, 3799, 3799, 3799, 3799, 3799, 3800,
9574      3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800,
9575      3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800,
9576      3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3801,
9577      3801, 3801, 3801, 3801, 3801, 3801, 3801, 3801, 3801, 3801,
9578      3801, 3801, 3801, 3801, 3801, 3801, 3801, 3801, 3801, 3801,
9579      3801, 3801, 3801, 3801, 3801, 3801, 3801, 3801, 3801, 3802,
9580      3802, 3802, 3802, 3802, 3802, 3802, 3802, 3802, 3802, 3802,
9581
9582      3802, 3802, 3802, 3802, 3802, 3802, 3802, 3802, 3802, 3802,
9583      3802, 3802, 3802, 3802, 3802, 3802, 3802, 3802, 3802, 3803,
9584      3803, 3803, 3803, 3803, 3803, 3803, 3803, 3803, 3803, 3803,
9585      3803, 3803, 3803, 3803, 3803, 3803, 3803, 3803, 3803, 3803,
9586      3803, 3803, 3803, 3803, 3803, 3803, 3803, 3803, 3803, 3804,
9587      3804, 3804, 3804, 3804, 3804, 3804, 3804, 3804, 3804, 3804,
9588      3804, 3804, 3804, 3804, 3804, 3804, 3804, 3804, 3804, 3804,
9589      3804, 3804, 3804, 3804, 3804, 3804, 3804, 3804, 3804, 3806,
9590      3806, 3806, 3806,    0,    0,    0,    0,    0,    0,    0,
9591         0,    0,    0, 3806, 3806,    0, 3806,    0, 3806, 3806,
9592
9593         0, 3806,    0, 3806,    0,    0,    0, 3806, 3807, 3807,
9594      3807, 3807,    0,    0,    0,    0,    0,    0,    0,    0,
9595         0,    0, 3807, 3807,    0, 3807,    0, 3807, 3807,    0,
9596      3807,    0, 3807,    0,    0,    0, 3807, 3808,    0,    0,
9597         0,    0, 3808, 3808,    0,    0,    0, 3808,    0,    0,
9598         0, 3808, 3809,    0,    0, 3809,    0,    0,    0,    0,
9599         0,    0,    0,    0,    0,    0, 3809,    0,    0,    0,
9600         0, 3809, 3809,    0,    0,    0, 3809,    0,    0,    0,
9601      3809, 3810,    0,    0,    0,    0, 3810, 3810,    0,    0,
9602         0, 3810,    0,    0,    0, 3810, 3811, 3811,    0, 3811,
9603
9604         0, 3811, 3811, 3811, 3811, 3811, 3811, 3811, 3811, 3811,
9605      3811, 3811, 3811, 3811, 3811, 3811, 3811, 3811, 3811,    0,
9606      3811, 3811, 3811, 3811, 3811, 3811, 3812, 3812,    0, 3812,
9607      3812,    0,    0, 3812, 3812, 3812, 3812, 3812, 3812, 3812,
9608      3812, 3812, 3812, 3812, 3812, 3812, 3812, 3812, 3812,    0,
9609      3812, 3812, 3812, 3812, 3812, 3812, 3813, 3813, 3813, 3813,
9610      3813, 3813, 3813, 3813, 3813, 3813, 3813, 3813, 3813, 3813,
9611      3813, 3813, 3813, 3813, 3813, 3813, 3813, 3813, 3813, 3813,
9612      3813, 3813, 3813, 3813, 3813, 3813, 3814, 3814, 3814, 3814,
9613      3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
9614
9615      3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
9616      3814, 3814, 3814, 3814, 3814, 3814, 3815, 3815, 3815, 3815,
9617      3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815,
9618      3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815,
9619      3815, 3815, 3815, 3815, 3815, 3815, 3816, 3816, 3816, 3816,
9620      3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816,
9621      3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816,
9622      3816, 3816, 3816, 3816, 3816, 3816, 3817, 3817, 3817, 3817,
9623      3817, 3817, 3817, 3817, 3817, 3817, 3817, 3817, 3817, 3817,
9624      3817, 3817, 3817, 3817, 3817, 3817, 3817, 3817, 3817, 3817,
9625
9626      3817, 3817, 3817, 3817, 3817, 3817, 3818,    0,    0,    0,
9627         0, 3818, 3818,    0,    0,    0, 3818,    0,    0,    0,
9628      3818, 3820, 3820,    0,    0,    0, 3820, 3820,    0,    0,
9629         0, 3820,    0,    0,    0, 3820, 3821, 3821, 3821, 3821,
9630      3821, 3821, 3821, 3821, 3821, 3821, 3821, 3821, 3821, 3821,
9631      3821, 3821, 3821, 3821, 3821, 3821, 3821, 3821, 3821, 3821,
9632      3821, 3821, 3821, 3821, 3821, 3821, 3822, 3822, 3822, 3822,
9633      3822, 3822, 3822, 3822, 3822,    0, 3822, 3822, 3822, 3822,
9634      3822, 3822, 3822, 3822, 3822, 3822, 3822, 3822, 3822, 3822,
9635      3822, 3822, 3822, 3822, 3822, 3822, 3823, 3823, 3823, 3823,
9636
9637      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
9638      3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
9639      3823, 3823, 3823, 3823, 3823, 3823, 3824,    0, 3824, 3824,
9640         0, 3824, 3824, 3824,    0,    0, 3824, 3824, 3824, 3824,
9641      3824, 3824, 3824, 3824, 3824, 3824, 3824, 3824, 3824,    0,
9642      3824, 3824, 3824, 3824, 3824, 3824, 3825, 3825, 3825, 3825,
9643      3825, 3825, 3825, 3825, 3825, 3825, 3825, 3825, 3825, 3825,
9644      3825, 3825, 3825, 3825, 3825, 3825, 3825, 3825, 3825, 3825,
9645      3825, 3825, 3825, 3825, 3825, 3825, 3826, 3826, 3826, 3826,
9646      3826, 3826, 3826, 3826, 3826, 3826, 3826, 3826, 3826, 3826,
9647
9648      3826, 3826, 3826, 3826, 3826, 3826, 3826, 3826, 3826, 3826,
9649      3826, 3826, 3826, 3826, 3826, 3826, 3827, 3827, 3827, 3827,
9650      3827, 3827, 3827, 3827, 3827, 3827, 3827, 3827, 3827, 3827,
9651      3827, 3827, 3827, 3827, 3827, 3827, 3827, 3827, 3827, 3827,
9652      3827, 3827, 3827, 3827, 3827, 3827, 3828, 3828, 3828, 3828,
9653      3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828,
9654      3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828,
9655      3828, 3828, 3828, 3828, 3828, 3828, 3829, 3829, 3829, 3829,
9656      3829, 3829, 3829, 3829, 3829, 3829, 3829, 3829, 3829, 3829,
9657      3829, 3829, 3829, 3829, 3829, 3829, 3829, 3829, 3829, 3829,
9658
9659      3829, 3829, 3829, 3829, 3829, 3829, 3830, 3830, 3830, 3830,
9660      3830, 3830, 3830, 3830, 3830, 3830, 3830, 3830, 3830, 3830,
9661      3830, 3830, 3830, 3830, 3830, 3830, 3830, 3830, 3830, 3830,
9662      3830, 3830, 3830, 3830, 3830, 3830, 3831, 3831, 3831, 3831,
9663      3831, 3831, 3831, 3831, 3831, 3831, 3831, 3831, 3831, 3831,
9664      3831, 3831, 3831, 3831, 3831, 3831, 3831, 3831, 3831, 3831,
9665      3831, 3831, 3831, 3831, 3831, 3831, 3832, 3832, 3832, 3832,
9666      3832, 3832, 3832, 3832, 3832, 3832, 3832, 3832, 3832, 3832,
9667      3832, 3832, 3832, 3832, 3832, 3832, 3832, 3832, 3832, 3832,
9668      3832, 3832, 3832, 3832, 3832, 3832, 3833, 3833, 3833, 3833,
9669
9670      3833, 3833, 3833, 3833, 3833, 3833, 3833, 3833, 3833, 3833,
9671      3833, 3833, 3833, 3833, 3833, 3833, 3833, 3833, 3833, 3833,
9672      3833, 3833, 3833, 3833, 3833, 3833, 3834, 3834,    0,    0,
9673      3834,    0, 3834, 3834, 3834, 3834, 3834, 3834, 3834, 3834,
9674      3834, 3834, 3834, 3834, 3834, 3834, 3834, 3834, 3834,    0,
9675      3834, 3834, 3834, 3834, 3834, 3834, 3835, 3835, 3835, 3835,
9676      3835, 3835, 3835, 3835, 3835, 3835, 3835, 3835, 3835, 3835,
9677      3835, 3835, 3835, 3835, 3835, 3835, 3835, 3835, 3835, 3835,
9678      3835, 3835, 3835, 3835, 3835, 3835, 3836, 3836, 3836, 3836,
9679      3836, 3836, 3836, 3836, 3836, 3836, 3836, 3836, 3836, 3836,
9680
9681      3836, 3836, 3836, 3836, 3836, 3836, 3836, 3836, 3836, 3836,
9682      3836, 3836, 3836, 3836, 3836, 3836, 3837, 3837,    0,    0,
9683      3837, 3837, 3837,    0, 3837, 3837, 3837, 3837, 3837, 3837,
9684      3837, 3837, 3837, 3837, 3837, 3837, 3837, 3837, 3837,    0,
9685      3837, 3837, 3837, 3837, 3837, 3837, 3838, 3838, 3838, 3838,
9686      3838, 3838, 3838, 3838, 3838, 3838, 3838, 3838, 3838, 3838,
9687      3838, 3838, 3838, 3838, 3838, 3838, 3838, 3838, 3838, 3838,
9688      3838, 3838, 3838, 3838, 3838, 3838, 3839, 3839, 3839, 3839,
9689      3839, 3839, 3839, 3839, 3839, 3839, 3839, 3839, 3839, 3839,
9690      3839, 3839, 3839, 3839, 3839, 3839, 3839, 3839, 3839, 3839,
9691
9692      3839, 3839, 3839, 3839, 3839, 3839, 3840, 3840,    0, 3840,
9693      3840,    0, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840,
9694      3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840,
9695      3840, 3840, 3840, 3840, 3840, 3840, 3841, 3841, 3841, 3841,
9696      3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841,
9697      3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841,
9698      3841, 3841, 3841, 3841, 3841, 3841, 3842, 3842, 3842, 3842,
9699      3842, 3842, 3842, 3842, 3842, 3842, 3842, 3842, 3842, 3842,
9700      3842, 3842, 3842, 3842, 3842, 3842, 3842, 3842, 3842, 3842,
9701      3842, 3842, 3842, 3842, 3842, 3842, 3843, 3843, 3843, 3843,
9702
9703      3843, 3843, 3843, 3843, 3843, 3843, 3843, 3843, 3843, 3843,
9704      3843, 3843, 3843, 3843, 3843, 3843, 3843, 3843, 3843, 3843,
9705      3843, 3843, 3843, 3843, 3843, 3843, 3844, 3844, 3844, 3844,
9706      3844, 3844, 3844, 3844, 3844, 3844, 3844, 3844, 3844, 3844,
9707      3844, 3844, 3844, 3844, 3844, 3844, 3844, 3844, 3844, 3844,
9708      3844, 3844, 3844, 3844, 3844, 3844, 3845, 3845, 3845, 3845,
9709      3845, 3845, 3845, 3845, 3845, 3845, 3845, 3845, 3845, 3845,
9710      3845, 3845, 3845, 3845, 3845, 3845, 3845, 3845, 3845, 3845,
9711      3845, 3845, 3845, 3845, 3845, 3845, 3846, 3846,    0,    0,
9712      3846, 3846, 3846, 3846, 3846, 3846, 3846, 3846, 3846, 3846,
9713
9714      3846, 3846, 3846, 3846, 3846, 3846, 3846, 3846, 3846, 3846,
9715      3846, 3846, 3846, 3846, 3846, 3846, 3847, 3847, 3847, 3847,
9716      3847, 3847, 3847, 3847, 3847, 3847, 3847, 3847, 3847, 3847,
9717      3847, 3847, 3847, 3847, 3847, 3847, 3847, 3847, 3847, 3847,
9718      3847, 3847, 3847, 3847, 3847, 3847, 3848, 3848, 3848, 3848,
9719      3848, 3848, 3848, 3848, 3848, 3848, 3848, 3848, 3848, 3848,
9720      3848, 3848, 3848, 3848, 3848, 3848, 3848, 3848, 3848, 3848,
9721      3848, 3848, 3848, 3848, 3848, 3848, 3849, 3849, 3849, 3849,
9722      3849, 3849, 3849, 3849, 3849, 3849, 3849, 3849, 3849, 3849,
9723      3849, 3849, 3849, 3849, 3849, 3849, 3849, 3849, 3849, 3849,
9724
9725      3849, 3849, 3849, 3849, 3849, 3849, 3850, 3850, 3850, 3850,
9726      3850, 3850, 3850, 3850, 3850, 3850, 3850, 3850, 3850, 3850,
9727      3850, 3850, 3850, 3850, 3850, 3850, 3850, 3850, 3850, 3850,
9728      3850, 3850, 3850, 3850, 3850, 3850, 3851, 3851, 3851, 3851,
9729      3851, 3851, 3851, 3851, 3851, 3851, 3851, 3851, 3851, 3851,
9730      3851, 3851, 3851, 3851, 3851, 3851, 3851, 3851, 3851, 3851,
9731      3851, 3851, 3851, 3851, 3851, 3851, 3852, 3852, 3852, 3852,
9732      3852, 3852, 3852, 3852, 3852, 3852, 3852, 3852, 3852, 3852,
9733      3852, 3852, 3852, 3852, 3852, 3852, 3852, 3852, 3852, 3852,
9734      3852, 3852, 3852, 3852, 3852, 3852, 3853, 3853, 3853, 3853,
9735
9736         0,    0,    0, 3853, 3853,    0, 3853, 3853, 3853,    0,
9737      3853, 3853, 3853, 3853,    0, 3853, 3853,    0, 3853, 3853,
9738      3853,    0,    0,    0, 3853, 3854, 3854, 3854, 3854,    0,
9739      3854,    0,    0,    0,    0,    0,    0,    0,    0,    0,
9740         0,    0,    0,    0, 3854, 3854,    0,    0,    0, 3854,
9741         0,    0, 3854, 3854, 3855,    0,    0, 3855,    0, 3855,
9742         0,    0, 3855,    0,    0,    0,    0,    0, 3855, 3855,
9743         0,    0,    0, 3855, 3855,    0, 3855,    0, 3855,    0,
9744         0, 3855, 3855, 3856, 3856, 3856, 3856,    0, 3856,    0,
9745         0, 3856,    0,    0,    0,    0,    0, 3856, 3856,    0,
9746
9747         0,    0, 3856, 3856,    0, 3856,    0, 3856,    0,    0,
9748      3856, 3856, 3857, 3857, 3857, 3857,    0, 3857,    0,    0,
9749         0,    0,    0,    0,    0,    0,    0, 3857,    0,    0,
9750         0, 3857, 3857,    0, 3857,    0, 3857,    0,    0, 3857,
9751      3857, 3858, 3858, 3858, 3858,    0, 3858,    0,    0,    0,
9752         0,    0,    0,    0,    0,    0, 3858,    0,    0,    0,
9753      3858, 3858,    0, 3858,    0, 3858,    0,    0, 3858, 3858,
9754      3859, 3859, 3859, 3859,    0,    0,    0, 3859,    0,    0,
9755         0,    0,    0,    0, 3859, 3859,    0, 3859,    0, 3859,
9756      3859,    0, 3859,    0, 3859,    0,    0,    0, 3859, 3860,
9757
9758         0, 3860, 3860,    0, 3860, 3860, 3860, 3860,    0, 3860,
9759      3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860,
9760      3860, 3860,    0, 3860, 3860, 3860, 3860, 3860, 3860, 3861,
9761      3861, 3861, 3861,    0,    0,    0, 3861,    0,    0,    0,
9762         0,    0,    0, 3861,    0,    0,    0,    0, 3861, 3861,
9763         0,    0,    0, 3861,    0,    0,    0, 3861, 3862,    0,
9764         0, 3862,    0,    0,    0, 3862,    0,    0,    0, 3862,
9765      3862,    0, 3862, 3862,    0, 3862,    0, 3862, 3862,    0,
9766         0,    0, 3862,    0,    0,    0, 3862, 3863,    0,    0,
9767      3863,    0,    0,    0,    0,    0,    0,    0,    0,    0,
9768
9769         0, 3863, 3863,    0, 3863,    0, 3863, 3863,    0,    0,
9770         0, 3863,    0,    0,    0, 3863, 3864, 3864, 3864, 3864,
9771         0,    0,    0, 3864,    0,    0,    0,    0,    0,    0,
9772      3864,    0,    0,    0,    0, 3864, 3864,    0,    0,    0,
9773      3864,    0,    0,    0, 3864, 3865, 3865,    0, 3865,    0,
9774         0,    0, 3865,    0,    0,    0, 3865, 3865,    0, 3865,
9775      3865,    0, 3865,    0, 3865, 3865,    0,    0,    0, 3865,
9776         0,    0,    0, 3865, 3866, 3866,    0,    0,    0, 3866,
9777      3866,    0,    0,    0, 3866,    0,    0,    0, 3866, 3867,
9778         0,    0, 3867,    0,    0,    0, 3867,    0,    0,    0,
9779
9780         0,    0,    0, 3867, 3867,    0,    0,    0, 3867, 3867,
9781         0, 3867,    0, 3867,    0,    0,    0, 3867, 3868,    0,
9782         0,    0,    0, 3868, 3868,    0,    0,    0, 3868,    0,
9783         0,    0, 3868, 3869, 3869,    0,    0,    0, 3869, 3869,
9784         0, 3869,    0, 3869,    0,    0,    0, 3869, 3870,    0,
9785         0,    0,    0, 3870, 3870,    0,    0,    0, 3870,    0,
9786         0,    0, 3870, 3871, 3871,    0, 3871, 3871, 3871, 3871,
9787      3871, 3871, 3871, 3871, 3871, 3871, 3871, 3871, 3871, 3871,
9788      3871, 3871, 3871, 3871, 3871, 3871, 3871, 3871, 3871, 3871,
9789      3871, 3871, 3871, 3872, 3872, 3872, 3872, 3872, 3872, 3872,
9790
9791      3872, 3872, 3872, 3872, 3872, 3872, 3872, 3872, 3872, 3872,
9792      3872, 3872, 3872, 3872, 3872, 3872, 3872, 3872, 3872, 3872,
9793      3872, 3872, 3872, 3873, 3873, 3873, 3873, 3873, 3873, 3873,
9794      3873, 3873, 3873, 3873, 3873, 3873, 3873, 3873, 3873, 3873,
9795      3873, 3873, 3873, 3873, 3873, 3873, 3873, 3873, 3873, 3873,
9796      3873, 3873, 3873, 3874, 3874, 3874, 3874, 3874, 3874, 3874,
9797      3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874,
9798      3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874,
9799      3874, 3874, 3874, 3875, 3875, 3875, 3875, 3875, 3875, 3875,
9800      3875, 3875, 3875, 3875, 3875, 3875, 3875, 3875, 3875, 3875,
9801
9802      3875, 3875, 3875, 3875, 3875, 3875, 3875, 3875, 3875, 3875,
9803      3875, 3875, 3875, 3876, 3876, 3876, 3876,    0,    0,    0,
9804         0,    0,    0,    0,    0,    0,    0, 3876, 3876,    0,
9805      3876,    0, 3876, 3876,    0, 3876,    0, 3876,    0,    0,
9806         0, 3876, 3877,    0,    0,    0,    0,    0,    0,    0,
9807         0,    0,    0,    0,    0,    0, 3877, 3877,    0,    0,
9808         0, 3877,    0,    0,    0, 3877, 3878, 3878, 3878, 3878,
9809         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
9810      3878, 3878,    0, 3878,    0, 3878, 3878,    0, 3878,    0,
9811      3878,    0,    0,    0, 3878, 3879, 3879, 3879, 3879,    0,
9812
9813         0,    0,    0,    0,    0,    0,    0,    0,    0, 3879,
9814         0, 3879,    0, 3879, 3879, 3879,    0,    0,    0, 3879,
9815      3879,    0,    0, 3879, 3880,    0,    0,    0,    0, 3880,
9816      3880,    0,    0,    0, 3880,    0,    0,    0, 3880, 3881,
9817         0,    0,    0,    0, 3881, 3881,    0,    0,    0, 3881,
9818         0,    0,    0, 3881, 3882, 3882,    0, 3882, 3882,    0,
9819         0, 3882, 3882, 3882, 3882, 3882, 3882, 3882, 3882, 3882,
9820      3882, 3882, 3882, 3882, 3882, 3882, 3882,    0, 3882, 3882,
9821      3882, 3882, 3882, 3882, 3883, 3883, 3883, 3883, 3883, 3883,
9822      3883, 3883, 3883, 3883, 3883, 3883, 3883, 3883, 3883, 3883,
9823
9824      3883, 3883, 3883, 3883, 3883, 3883, 3883, 3883, 3883, 3883,
9825      3883, 3883, 3883, 3883, 3884, 3884, 3884, 3884, 3884, 3884,
9826      3884, 3884, 3884, 3884, 3884, 3884, 3884, 3884, 3884, 3884,
9827      3884, 3884, 3884, 3884, 3884, 3884, 3884, 3884, 3884, 3884,
9828      3884, 3884, 3884, 3884, 3885,    0,    0,    0,    0, 3885,
9829      3885,    0,    0,    0, 3885,    0,    0,    0, 3885, 3886,
9830      3886,    0,    0,    0, 3886, 3886,    0,    0,    0, 3886,
9831         0,    0,    0, 3886, 3887, 3887, 3887, 3887, 3887, 3887,
9832      3887, 3887, 3887,    0, 3887, 3887, 3887, 3887, 3887, 3887,
9833      3887, 3887, 3887, 3887, 3887, 3887, 3887, 3887, 3887, 3887,
9834
9835      3887, 3887, 3887, 3887, 3888, 3888, 3888, 3888, 3888, 3888,
9836      3888, 3888, 3888, 3888, 3888, 3888, 3888, 3888, 3888, 3888,
9837      3888, 3888, 3888, 3888, 3888, 3888, 3888, 3888, 3888, 3888,
9838      3888, 3888, 3888, 3888, 3889, 3889, 3889, 3889, 3889, 3889,
9839      3889, 3889, 3889, 3889, 3889, 3889, 3889, 3889, 3889, 3889,
9840      3889, 3889, 3889, 3889, 3889, 3889, 3889, 3889, 3889, 3889,
9841      3889, 3889, 3889, 3889, 3890,    0, 3890, 3890,    0, 3890,
9842      3890, 3890,    0,    0, 3890, 3890, 3890, 3890, 3890, 3890,
9843      3890, 3890, 3890, 3890, 3890, 3890, 3890,    0, 3890, 3890,
9844      3890, 3890, 3890, 3890, 3891, 3891, 3891, 3891, 3891, 3891,
9845
9846      3891, 3891, 3891, 3891, 3891, 3891, 3891, 3891, 3891, 3891,
9847      3891, 3891, 3891, 3891, 3891, 3891, 3891, 3891, 3891, 3891,
9848      3891, 3891, 3891, 3891, 3892, 3892, 3892, 3892, 3892, 3892,
9849      3892, 3892, 3892, 3892, 3892, 3892, 3892, 3892, 3892, 3892,
9850      3892, 3892, 3892, 3892, 3892, 3892, 3892, 3892, 3892, 3892,
9851      3892, 3892, 3892, 3892, 3893, 3893, 3893, 3893, 3893, 3893,
9852      3893, 3893, 3893, 3893, 3893, 3893, 3893, 3893, 3893, 3893,
9853      3893, 3893, 3893, 3893, 3893, 3893, 3893, 3893, 3893, 3893,
9854      3893, 3893, 3893, 3893, 3894, 3894,    0,    0, 3894,    0,
9855      3894, 3894, 3894, 3894, 3894, 3894, 3894, 3894, 3894, 3894,
9856
9857      3894, 3894, 3894, 3894, 3894, 3894, 3894,    0, 3894, 3894,
9858      3894, 3894, 3894, 3894, 3895, 3895,    0,    0, 3895, 3895,
9859      3895,    0, 3895, 3895, 3895, 3895, 3895, 3895, 3895, 3895,
9860      3895, 3895, 3895, 3895, 3895, 3895, 3895,    0, 3895, 3895,
9861      3895, 3895, 3895, 3895, 3896, 3896,    0, 3896, 3896,    0,
9862      3896, 3896, 3896, 3896, 3896, 3896, 3896, 3896, 3896, 3896,
9863      3896, 3896, 3896, 3896, 3896, 3896, 3896, 3896, 3896, 3896,
9864      3896, 3896, 3896, 3896, 3897, 3897, 3897, 3897, 3897, 3897,
9865      3897, 3897, 3897, 3897, 3897, 3897, 3897, 3897, 3897, 3897,
9866      3897, 3897, 3897, 3897, 3897, 3897, 3897, 3897, 3897, 3897,
9867
9868      3897, 3897, 3897, 3897, 3898, 3898,    0,    0, 3898, 3898,
9869      3898, 3898, 3898, 3898, 3898, 3898, 3898, 3898, 3898, 3898,
9870      3898, 3898, 3898, 3898, 3898, 3898, 3898, 3898, 3898, 3898,
9871      3898, 3898, 3898, 3898, 3899, 3899, 3899, 3899, 3899, 3899,
9872      3899, 3899, 3899, 3899, 3899, 3899, 3899, 3899, 3899, 3899,
9873      3899, 3899, 3899, 3899, 3899, 3899, 3899, 3899, 3899, 3899,
9874      3899, 3899, 3899, 3899, 3900, 3900, 3900, 3900, 3900, 3900,
9875      3900, 3900, 3900, 3900, 3900, 3900, 3900, 3900, 3900, 3900,
9876      3900, 3900, 3900, 3900, 3900, 3900, 3900, 3900, 3900, 3900,
9877      3900, 3900, 3900, 3900, 3901, 3901, 3901, 3901, 3901, 3901,
9878
9879      3901, 3901, 3901, 3901,    0, 3901, 3901, 3901,    0, 3901,
9880      3901, 3901, 3901, 3901, 3901, 3901, 3901, 3901, 3901, 3901,
9881      3901, 3901, 3901, 3901, 3902, 3902, 3902, 3902,    0, 3902,
9882         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
9883         0,    0,    0, 3902, 3902,    0,    0,    0, 3902,    0,
9884         0, 3902, 3902, 3903, 3903, 3903, 3903, 3903, 3903, 3903,
9885      3903, 3903, 3903, 3903, 3903, 3903, 3903, 3903,    0, 3903,
9886      3903, 3903, 3903,    0,    0, 3903, 3903, 3903,    0, 3903,
9887      3903, 3903, 3903, 3905, 3905, 3905, 3905,    0,    0,    0,
9888      3905,    0,    0,    0,    0,    0,    0, 3905, 3905,    0,
9889
9890      3905,    0, 3905, 3905,    0, 3905,    0, 3905,    0,    0,
9891         0, 3905, 3906, 3906, 3906, 3906,    0,    0,    0, 3906,
9892         0,    0,    0,    0,    0,    0, 3906, 3906,    0, 3906,
9893         0, 3906, 3906,    0, 3906,    0, 3906,    0,    0,    0,
9894      3906, 3907, 3907,    0, 3907, 3907,    0, 3907, 3907,    0,
9895         0, 3907, 3907, 3907, 3907,    0, 3907, 3907, 3907, 3907,
9896      3907, 3907, 3907, 3907, 3907, 3907, 3907,    0,    0, 3907,
9897      3907, 3908, 3908, 3908, 3908,    0,    0,    0, 3908, 3908,
9898         0, 3908,    0,    0,    0, 3908, 3908, 3908, 3908,    0,
9899      3908, 3908,    0, 3908, 3908, 3908,    0,    0,    0, 3908,
9900
9901      3909,    0, 3909, 3909,    0, 3909, 3909, 3909, 3909,    0,
9902      3909, 3909, 3909, 3909, 3909, 3909, 3909, 3909, 3909, 3909,
9903      3909, 3909, 3909,    0, 3909, 3909, 3909, 3909, 3909, 3909,
9904      3910, 3910, 3910, 3910,    0, 3910,    0,    0,    0,    0,
9905         0,    0,    0,    0,    0, 3910,    0,    0,    0, 3910,
9906      3910,    0, 3910,    0, 3910,    0,    0, 3910, 3910, 3911,
9907         0,    0, 3911,    0,    0,    0, 3911,    0,    0,    0,
9908      3911, 3911,    0, 3911, 3911,    0, 3911,    0, 3911, 3911,
9909         0,    0,    0, 3911,    0,    0,    0, 3911, 3912, 3912,
9910         0, 3912,    0,    0,    0, 3912,    0,    0,    0, 3912,
9911
9912      3912,    0, 3912, 3912,    0, 3912,    0, 3912, 3912,    0,
9913         0,    0, 3912,    0,    0,    0, 3912, 3913,    0,    0,
9914      3913,    0,    0,    0, 3913,    0,    0,    0,    0,    0,
9915         0, 3913, 3913,    0,    0,    0, 3913, 3913,    0, 3913,
9916         0, 3913,    0,    0,    0, 3913, 3914,    0,    0,    0,
9917         0, 3914, 3914,    0,    0,    0, 3914,    0,    0,    0,
9918      3914, 3915, 3915,    0,    0,    0, 3915, 3915,    0, 3915,
9919         0, 3915,    0,    0,    0, 3915, 3916,    0,    0,    0,
9920         0, 3916, 3916,    0,    0,    0, 3916,    0,    0,    0,
9921      3916, 3917, 3917,    0, 3917, 3917, 3917, 3917, 3917, 3917,
9922
9923      3917, 3917, 3917, 3917, 3917, 3917, 3917, 3917, 3917, 3917,
9924      3917, 3917, 3917, 3917, 3917, 3917, 3917, 3917, 3917, 3917,
9925      3917, 3919,    0,    0, 3919,    0,    0,    0,    0,    0,
9926         0,    0,    0,    0,    0, 3919, 3919,    0,    0,    0,
9927      3919, 3919,    0,    0,    0, 3919,    0,    0,    0, 3919,
9928      3920, 3920, 3920, 3920,    0,    0,    0,    0,    0,    0,
9929         0,    0,    0,    0, 3920, 3920,    0, 3920,    0, 3920,
9930      3920,    0, 3920,    0, 3920,    0,    0,    0, 3920, 3921,
9931         0,    0,    0,    0, 3921, 3921,    0,    0,    0, 3921,
9932         0,    0,    0, 3921, 3922,    0,    0,    0,    0, 3922,
9933
9934      3922,    0,    0,    0, 3922,    0,    0,    0, 3922, 3923,
9935         0,    0,    0,    0, 3923, 3923,    0,    0,    0, 3923,
9936         0,    0,    0, 3923, 3924, 3924,    0, 3924, 3924,    0,
9937         0, 3924, 3924, 3924, 3924, 3924, 3924, 3924, 3924, 3924,
9938      3924, 3924, 3924, 3924, 3924, 3924, 3924,    0, 3924, 3924,
9939      3924, 3924, 3924, 3924, 3925,    0,    0,    0,    0, 3925,
9940      3925,    0,    0,    0, 3925,    0,    0,    0, 3925, 3926,
9941      3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926,    0, 3926,
9942      3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926,
9943      3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926, 3927,
9944
9945      3927, 3927, 3927, 3927, 3927, 3927, 3927, 3927, 3927, 3927,
9946      3927, 3927, 3927, 3927, 3927, 3927, 3927, 3927, 3927, 3927,
9947      3927, 3927, 3927, 3927, 3927, 3927, 3927, 3927, 3927, 3928,
9948         0, 3928, 3928,    0, 3928, 3928, 3928,    0,    0, 3928,
9949      3928, 3928, 3928, 3928, 3928, 3928, 3928, 3928, 3928, 3928,
9950      3928, 3928,    0, 3928, 3928, 3928, 3928, 3928, 3928, 3929,
9951      3929,    0, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
9952      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
9953      3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3930,
9954      3930,    0, 3930, 3930, 3930, 3930, 3930, 3930, 3930, 3930,
9955
9956      3930, 3930, 3930, 3930, 3930, 3930, 3930, 3930, 3930, 3930,
9957      3930, 3930, 3930, 3930, 3930, 3930, 3930, 3930, 3930, 3931,
9958      3931,    0, 3931, 3931, 3931, 3931, 3931, 3931, 3931, 3931,
9959      3931, 3931, 3931, 3931, 3931, 3931, 3931, 3931, 3931, 3931,
9960      3931, 3931, 3931, 3931, 3931, 3931, 3931, 3931, 3931, 3932,
9961      3932,    0, 3932, 3932, 3932, 3932, 3932, 3932, 3932, 3932,
9962      3932, 3932, 3932, 3932, 3932, 3932, 3932, 3932, 3932, 3932,
9963      3932, 3932, 3932, 3932, 3932, 3932, 3932, 3932, 3932, 3933,
9964      3933,    0, 3933, 3933, 3933, 3933, 3933, 3933, 3933, 3933,
9965      3933, 3933, 3933, 3933, 3933, 3933, 3933, 3933, 3933, 3933,
9966
9967      3933, 3933, 3933, 3933, 3933, 3933, 3933, 3933, 3933, 3934,
9968         0,    0,    0,    0,    0,    0,    0,    0,    0, 3934,
9969         0,    0,    0, 3934, 3934,    0, 3934,    0, 3934,    0,
9970         0, 3934, 3934, 3935, 3935, 3935, 3935,    0,    0,    0,
9971      3935,    0,    0,    0,    0,    0,    0, 3935, 3935,    0,
9972      3935,    0, 3935, 3935,    0, 3935,    0, 3935,    0,    0,
9973         0, 3935, 3936, 3936, 3936, 3936,    0,    0,    0, 3936,
9974         0,    0,    0,    0,    0,    0, 3936, 3936,    0, 3936,
9975         0, 3936, 3936,    0, 3936,    0, 3936,    0,    0,    0,
9976      3936, 3937, 3937, 3937, 3937,    0,    0,    0, 3937, 3937,
9977
9978         0, 3937,    0,    0,    0, 3937, 3937, 3937, 3937,    0,
9979      3937, 3937,    0, 3937, 3937, 3937,    0,    0,    0, 3937,
9980      3938,    0, 3938, 3938,    0, 3938, 3938, 3938, 3938,    0,
9981      3938, 3938, 3938, 3938, 3938, 3938, 3938, 3938, 3938, 3938,
9982      3938, 3938, 3938,    0, 3938, 3938, 3938, 3938, 3938, 3938,
9983      3940, 3940, 3940, 3940,    0,    0,    0, 3940,    0,    0,
9984         0,    0,    0,    0, 3940, 3940,    0, 3940,    0, 3940,
9985      3940,    0, 3940,    0, 3940,    0,    0,    0, 3940, 3941,
9986         0,    0, 3941,    0,    0,    0, 3941,    0,    0,    0,
9987      3941, 3941,    0, 3941, 3941,    0, 3941,    0, 3941, 3941,
9988
9989         0,    0,    0, 3941,    0,    0,    0, 3941, 3942, 3942,
9990         0, 3942,    0,    0,    0, 3942,    0,    0,    0, 3942,
9991      3942,    0, 3942, 3942,    0, 3942,    0, 3942, 3942,    0,
9992         0,    0, 3942,    0,    0,    0, 3942, 3943,    0,    0,
9993      3943,    0,    0,    0, 3943,    0,    0,    0,    0,    0,
9994         0, 3943, 3943,    0,    0,    0, 3943, 3943,    0, 3943,
9995         0, 3943,    0,    0,    0, 3943, 3944,    0,    0,    0,
9996         0, 3944, 3944,    0,    0,    0, 3944,    0,    0,    0,
9997      3944, 3945, 3945,    0,    0,    0, 3945, 3945,    0, 3945,
9998         0, 3945,    0,    0,    0, 3945, 3946,    0,    0,    0,
9999
10000         0, 3946, 3946,    0,    0,    0, 3946,    0,    0,    0,
10001      3946, 3947, 3947,    0, 3947, 3947, 3947, 3947, 3947, 3947,
10002      3947, 3947, 3947, 3947, 3947, 3947, 3947, 3947, 3947, 3947,
10003      3947, 3947, 3947, 3947, 3947, 3947, 3947, 3947, 3947, 3947,
10004      3947, 3948, 3948, 3948, 3948, 3948, 3948, 3948, 3948, 3948,
10005      3948, 3948, 3948, 3948, 3948, 3948,    0, 3948, 3948, 3948,
10006      3948,    0,    0, 3948, 3948, 3948, 3948, 3948, 3948, 3948,
10007      3948, 3949,    0,    0, 3949,    0,    0,    0,    0,    0,
10008         0,    0,    0,    0,    0, 3949, 3949,    0,    0,    0,
10009      3949, 3949,    0,    0,    0, 3949,    0,    0,    0, 3949,
10010
10011      3950, 3950, 3950, 3950,    0,    0,    0,    0,    0,    0,
10012         0,    0,    0,    0, 3950, 3950,    0, 3950,    0, 3950,
10013      3950,    0, 3950,    0, 3950,    0,    0,    0, 3950, 3951,
10014         0,    0,    0,    0, 3951, 3951,    0,    0,    0, 3951,
10015         0,    0,    0, 3951, 3952,    0,    0,    0,    0, 3952,
10016      3952,    0,    0,    0, 3952,    0,    0,    0, 3952, 3953,
10017         0,    0,    0,    0, 3953, 3953,    0,    0,    0, 3953,
10018         0,    0,    0, 3953, 3954, 3954,    0, 3954, 3954, 3954,
10019      3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954,
10020      3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954,
10021
10022      3954, 3954, 3954, 3954, 3955,    0,    0,    0,    0, 3955,
10023      3955,    0,    0,    0, 3955,    0,    0,    0, 3955, 3956,
10024      3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956,    0, 3956,
10025      3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956,
10026      3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3957,
10027         0, 3957, 3957,    0, 3957, 3957, 3957,    0,    0, 3957,
10028      3957, 3957, 3957, 3957, 3957, 3957, 3957, 3957, 3957, 3957,
10029      3957, 3957,    0, 3957, 3957, 3957, 3957, 3957, 3957, 3958,
10030      3958, 3958, 3958, 3958, 3958, 3958, 3958, 3958, 3958, 3958,
10031      3958, 3958, 3958, 3958, 3958, 3958, 3958, 3958, 3958, 3958,
10032
10033      3958, 3958, 3958, 3958, 3958, 3958, 3958, 3958, 3958, 3959,
10034      3959,    0, 3959, 3959, 3959, 3959, 3959, 3959, 3959, 3959,
10035      3959, 3959, 3959, 3959, 3959, 3959, 3959, 3959, 3959, 3959,
10036      3959, 3959, 3959, 3959, 3959, 3959, 3959, 3959, 3959, 3960,
10037      3960,    0, 3960, 3960, 3960, 3960, 3960, 3960, 3960, 3960,
10038      3960, 3960, 3960, 3960, 3960, 3960, 3960, 3960, 3960, 3960,
10039      3960, 3960, 3960, 3960, 3960, 3960, 3960, 3960, 3960, 3961,
10040      3961,    0,    0, 3961,    0, 3961, 3961, 3961, 3961, 3961,
10041      3961, 3961, 3961, 3961, 3961, 3961, 3961, 3961, 3961, 3961,
10042      3961, 3961,    0, 3961, 3961, 3961, 3961, 3961, 3961, 3962,
10043
10044      3962,    0, 3962, 3962, 3962, 3962, 3962, 3962, 3962, 3962,
10045      3962, 3962, 3962, 3962, 3962, 3962, 3962, 3962, 3962, 3962,
10046      3962, 3962, 3962, 3962, 3962, 3962, 3962, 3962, 3962, 3963,
10047      3963,    0,    0, 3963, 3963, 3963,    0, 3963, 3963, 3963,
10048      3963, 3963, 3963, 3963, 3963, 3963, 3963, 3963, 3963, 3963,
10049      3963, 3963,    0, 3963, 3963, 3963, 3963, 3963, 3963, 3964,
10050      3964,    0, 3964, 3964, 3964, 3964, 3964, 3964, 3964, 3964,
10051      3964, 3964, 3964, 3964, 3964, 3964, 3964, 3964, 3964, 3964,
10052      3964, 3964, 3964, 3964, 3964, 3964, 3964, 3964, 3964, 3965,
10053      3965,    0, 3965, 3965,    0, 3965, 3965, 3965, 3965, 3965,
10054
10055      3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965,
10056      3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3966,
10057      3966,    0, 3966, 3966, 3966, 3966, 3966, 3966, 3966, 3966,
10058      3966, 3966, 3966, 3966, 3966, 3966, 3966, 3966, 3966, 3966,
10059      3966, 3966, 3966, 3966, 3966, 3966, 3966, 3966, 3966, 3967,
10060      3967,    0,    0, 3967, 3967, 3967, 3967, 3967, 3967, 3967,
10061      3967, 3967, 3967, 3967, 3967, 3967, 3967, 3967, 3967, 3967,
10062      3967, 3967, 3967, 3967, 3967, 3967, 3967, 3967, 3967, 3969,
10063      3969, 3969, 3969,    0,    0,    0,    0, 3969,    0, 3969,
10064         0,    0,    0, 3969, 3969, 3969,    0,    0, 3969, 3969,
10065
10066         0, 3969, 3969, 3969,    0,    0,    0, 3969, 3970, 3970,
10067      3970, 3970,    0, 3970,    0,    0,    0,    0,    0,    0,
10068         0,    0,    0,    0,    0,    0,    0, 3970, 3970,    0,
10069         0,    0, 3970,    0,    0,    0, 3970, 3971, 3971, 3971,
10070      3971,    0,    0,    0, 3971,    0,    0,    0,    0,    0,
10071         0, 3971, 3971,    0, 3971,    0, 3971, 3971,    0, 3971,
10072         0, 3971,    0,    0,    0, 3971, 3972, 3972, 3972, 3972,
10073         0,    0,    0, 3972,    0,    0,    0,    0,    0,    0,
10074      3972, 3972,    0, 3972,    0, 3972, 3972,    0, 3972,    0,
10075      3972,    0,    0,    0, 3972, 3973, 3973, 3973, 3973,    0,
10076
10077         0,    0, 3973, 3973,    0, 3973,    0,    0,    0, 3973,
10078      3973, 3973, 3973,    0, 3973, 3973,    0, 3973, 3973, 3973,
10079         0,    0,    0, 3973, 3974,    0, 3974, 3974,    0, 3974,
10080      3974, 3974, 3974,    0, 3974, 3974, 3974, 3974, 3974, 3974,
10081      3974, 3974, 3974, 3974, 3974, 3974, 3974,    0, 3974, 3974,
10082      3974, 3974, 3974, 3974, 3975, 3975, 3975, 3975,    0,    0,
10083         0, 3975,    0,    0,    0,    0,    0,    0, 3975, 3975,
10084         0, 3975,    0, 3975, 3975,    0, 3975,    0, 3975,    0,
10085         0,    0, 3975, 3976, 3976,    0, 3976, 3976,    0, 3976,
10086      3976, 3976, 3976, 3976, 3976, 3976, 3976,    0, 3976, 3976,
10087
10088      3976, 3976, 3976, 3976, 3976, 3976, 3976, 3976, 3976,    0,
10089      3976, 3976, 3976, 3977, 3977, 3977, 3977,    0, 3977,    0,
10090         0,    0,    0,    0,    0,    0,    0,    0, 3977,    0,
10091         0,    0, 3977, 3977,    0, 3977,    0, 3977,    0,    0,
10092      3977, 3977, 3978,    0,    0, 3978,    0,    0,    0, 3978,
10093         0,    0,    0, 3978, 3978,    0, 3978, 3978,    0, 3978,
10094         0, 3978, 3978,    0,    0,    0, 3978,    0,    0,    0,
10095      3978, 3979, 3979,    0, 3979, 3979, 3979, 3979, 3979,    0,
10096         0, 3979, 3979, 3979, 3979, 3979, 3979, 3979, 3979,    0,
10097      3979, 3979, 3979,    0, 3979,    0, 3979,    0,    0, 3979,
10098
10099      3979, 3980, 3980,    0, 3980,    0,    0,    0, 3980,    0,
10100         0,    0, 3980, 3980,    0, 3980, 3980,    0, 3980,    0,
10101      3980, 3980,    0,    0,    0, 3980,    0,    0,    0, 3980,
10102      3981,    0,    0, 3981,    0,    0,    0, 3981,    0,    0,
10103         0,    0,    0,    0, 3981, 3981,    0,    0,    0, 3981,
10104      3981,    0, 3981,    0, 3981,    0,    0,    0, 3981, 3982,
10105         0,    0,    0,    0, 3982, 3982,    0,    0,    0, 3982,
10106         0,    0,    0, 3982, 3983, 3983,    0,    0,    0, 3983,
10107      3983,    0, 3983,    0, 3983,    0,    0,    0, 3983, 3984,
10108         0,    0,    0,    0, 3984, 3984,    0,    0,    0, 3984,
10109
10110         0,    0,    0, 3984, 3985, 3985,    0, 3985, 3985, 3985,
10111      3985, 3985, 3985, 3985, 3985, 3985, 3985, 3985, 3985, 3985,
10112      3985, 3985, 3985, 3985, 3985, 3985, 3985, 3985, 3985, 3985,
10113      3985, 3985, 3985, 3985, 3986, 3986,    0, 3986, 3986, 3986,
10114      3986, 3986, 3986, 3986, 3986, 3986, 3986, 3986, 3986, 3986,
10115      3986, 3986, 3986, 3986, 3986, 3986, 3986, 3986, 3986, 3986,
10116      3986, 3986, 3986, 3986, 3987, 3987,    0, 3987, 3987, 3987,
10117      3987, 3987, 3987, 3987, 3987, 3987, 3987, 3987, 3987, 3987,
10118      3987, 3987, 3987, 3987, 3987, 3987, 3987, 3987, 3987, 3987,
10119      3987, 3987, 3987, 3987, 3988,    0,    0,    0,    0, 3988,
10120
10121      3988,    0,    0,    0, 3988,    0,    0,    0, 3988, 3989,
10122      3989,    0, 3989, 3989, 3989, 3989, 3989, 3989, 3989, 3989,
10123      3989, 3989, 3989, 3989, 3989, 3989, 3989, 3989, 3989, 3989,
10124      3989, 3989, 3989, 3989, 3989, 3989, 3989, 3989, 3989, 3990,
10125      3990,    0, 3990, 3990,    0,    0, 3990, 3990, 3990, 3990,
10126      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
10127      3990, 3990,    0, 3990, 3990, 3990, 3990, 3990, 3990, 3991,
10128         0, 3991, 3991,    0, 3991, 3991, 3991,    0,    0, 3991,
10129      3991, 3991, 3991, 3991, 3991, 3991, 3991, 3991, 3991, 3991,
10130      3991, 3991,    0, 3991, 3991, 3991, 3991, 3991, 3991, 3992,
10131
10132      3992, 3992, 3992, 3992, 3992, 3992, 3992, 3992, 3992, 3992,
10133      3992, 3992, 3992, 3992, 3992, 3992, 3992, 3992, 3992, 3992,
10134      3992, 3992, 3992, 3992, 3992, 3992, 3992, 3992, 3992, 3993,
10135      3993, 3993, 3993, 3993, 3993, 3993, 3993, 3993,    0, 3993,
10136      3993, 3993, 3993, 3993, 3993, 3993, 3993, 3993, 3993, 3993,
10137      3993, 3993, 3993, 3993, 3993, 3993, 3993, 3993, 3993, 3994,
10138      3994,    0,    0, 3994,    0, 3994, 3994, 3994, 3994, 3994,
10139      3994, 3994, 3994, 3994, 3994, 3994, 3994, 3994, 3994, 3994,
10140      3994, 3994,    0, 3994, 3994, 3994, 3994, 3994, 3994, 3995,
10141      3995,    0,    0, 3995, 3995, 3995,    0, 3995, 3995, 3995,
10142
10143      3995, 3995, 3995, 3995, 3995, 3995, 3995, 3995, 3995, 3995,
10144      3995, 3995,    0, 3995, 3995, 3995, 3995, 3995, 3995, 3996,
10145      3996,    0, 3996, 3996,    0, 3996, 3996, 3996, 3996, 3996,
10146      3996, 3996, 3996, 3996, 3996, 3996, 3996, 3996, 3996, 3996,
10147      3996, 3996, 3996, 3996, 3996, 3996, 3996, 3996, 3996, 3997,
10148      3997,    0,    0, 3997, 3997, 3997, 3997, 3997, 3997, 3997,
10149      3997, 3997, 3997, 3997, 3997, 3997, 3997, 3997, 3997, 3997,
10150      3997, 3997, 3997, 3997, 3997, 3997, 3997, 3997, 3997, 3998,
10151      3998, 3998, 3998,    0,    0,    0,    0, 3998,    0, 3998,
10152         0,    0,    0, 3998, 3998, 3998,    0,    0, 3998, 3998,
10153
10154         0, 3998, 3998, 3998,    0,    0,    0, 3998, 3999, 3999,
10155      3999, 3999,    0, 3999,    0,    0,    0,    0,    0,    0,
10156         0,    0,    0,    0,    0,    0,    0, 3999, 3999,    0,
10157         0,    0, 3999,    0,    0, 3999, 3999, 4000, 4000, 4000,
10158      4000,    0, 4000,    0,    0,    0,    0,    0,    0,    0,
10159         0,    0,    0,    0,    0,    0, 4000, 4000,    0,    0,
10160         0, 4000,    0,    0,    0, 4000, 4001, 4001, 4001, 4001,
10161         0,    0,    0,    0, 4001,    0, 4001,    0,    0,    0,
10162      4001,    0, 4001,    0,    0, 4001, 4001,    0,    0, 4001,
10163      4001,    0,    0,    0, 4001, 4002, 4002, 4002, 4002, 4002,
10164
10165      4002, 4002, 4002, 4002, 4002, 4002, 4002, 4002, 4002, 4002,
10166         0, 4002, 4002, 4002, 4002,    0,    0, 4002, 4002, 4002,
10167         0, 4002, 4002, 4002, 4002, 4003, 4003, 4003, 4003,    0,
10168         0,    0, 4003,    0,    0,    0,    0,    0,    0, 4003,
10169      4003,    0, 4003,    0, 4003, 4003,    0, 4003,    0, 4003,
10170         0,    0,    0, 4003, 4004, 4004, 4004, 4004,    0,    0,
10171         0, 4004,    0,    0,    0,    0,    0,    0, 4004, 4004,
10172         0, 4004,    0, 4004, 4004,    0, 4004,    0, 4004,    0,
10173         0,    0, 4004, 4005, 4005, 4005, 4005,    0,    0,    0,
10174      4005, 4005,    0, 4005,    0,    0,    0, 4005, 4005, 4005,
10175
10176      4005,    0, 4005, 4005,    0, 4005, 4005, 4005,    0,    0,
10177         0, 4005, 4006,    0, 4006, 4006,    0, 4006, 4006, 4006,
10178      4006,    0, 4006, 4006, 4006, 4006, 4006, 4006, 4006, 4006,
10179      4006, 4006, 4006, 4006, 4006,    0, 4006, 4006, 4006, 4006,
10180      4006, 4006, 4007, 4007,    0, 4007, 4007,    0, 4007, 4007,
10181      4007, 4007, 4007, 4007,    0,    0,    0, 4007, 4007, 4007,
10182      4007, 4007, 4007, 4007, 4007, 4007, 4007, 4007,    0, 4007,
10183      4007, 4007, 4008, 4008,    0, 4008, 4008,    0, 4008, 4008,
10184      4008, 4008, 4008, 4008, 4008, 4008,    0, 4008, 4008, 4008,
10185      4008, 4008, 4008, 4008, 4008, 4008, 4008, 4008,    0, 4008,
10186
10187      4008, 4008, 4009, 4009,    0, 4009, 4009, 4009, 4009, 4009,
10188      4009, 4009, 4009, 4009, 4009, 4009, 4009,    0, 4009, 4009,
10189      4009, 4009,    0,    0, 4009, 4009, 4009,    0, 4009, 4009,
10190      4009, 4009, 4010, 4010,    0, 4010, 4010,    0, 4010, 4010,
10191      4010, 4010, 4010, 4010, 4010, 4010,    0, 4010, 4010, 4010,
10192      4010, 4010, 4010, 4010, 4010, 4010, 4010, 4010,    0, 4010,
10193      4010, 4010, 4011,    0,    0, 4011,    0,    0,    0, 4011,
10194         0,    0,    0, 4011, 4011,    0, 4011, 4011,    0, 4011,
10195         0, 4011, 4011,    0,    0,    0, 4011,    0,    0,    0,
10196      4011, 4012, 4012,    0, 4012,    0,    0,    0, 4012,    0,
10197
10198         0,    0, 4012, 4012,    0, 4012, 4012,    0, 4012,    0,
10199      4012, 4012,    0,    0,    0, 4012,    0,    0,    0, 4012,
10200      4013,    0,    0, 4013,    0,    0,    0, 4013,    0,    0,
10201         0,    0,    0,    0, 4013, 4013,    0,    0,    0, 4013,
10202      4013,    0, 4013,    0, 4013,    0,    0,    0, 4013, 4014,
10203         0,    0,    0,    0, 4014, 4014,    0,    0,    0, 4014,
10204         0,    0,    0, 4014, 4015,    0,    0,    0,    0, 4015,
10205      4015,    0,    0,    0, 4015,    0,    0,    0, 4015, 4016,
10206      4016,    0, 4016, 4016, 4016, 4016, 4016, 4016, 4016, 4016,
10207      4016, 4016, 4016, 4016, 4016, 4016, 4016, 4016, 4016, 4016,
10208
10209      4016, 4016, 4016, 4016, 4016, 4016, 4016, 4016, 4016, 4017,
10210         0,    0,    0,    0, 4017, 4017,    0,    0,    0, 4017,
10211         0,    0,    0, 4017, 4018, 4018,    0, 4018, 4018,    0,
10212         0, 4018, 4018, 4018, 4018, 4018, 4018, 4018, 4018, 4018,
10213      4018, 4018, 4018, 4018, 4018, 4018, 4018,    0, 4018, 4018,
10214      4018, 4018, 4018, 4018, 4019,    0, 4019, 4019,    0, 4019,
10215      4019, 4019,    0,    0, 4019, 4019, 4019, 4019, 4019, 4019,
10216      4019, 4019, 4019, 4019, 4019, 4019, 4019,    0, 4019, 4019,
10217      4019, 4019, 4019, 4019, 4020, 4020, 4020, 4020, 4020, 4020,
10218      4020, 4020, 4020,    0, 4020, 4020, 4020, 4020, 4020, 4020,
10219
10220      4020, 4020, 4020, 4020, 4020, 4020, 4020, 4020, 4020, 4020,
10221      4020, 4020, 4020, 4020, 4021, 4021,    0,    0, 4021,    0,
10222      4021, 4021, 4021, 4021, 4021, 4021, 4021, 4021, 4021, 4021,
10223      4021, 4021, 4021, 4021, 4021, 4021, 4021,    0, 4021, 4021,
10224      4021, 4021, 4021, 4021, 4022, 4022,    0,    0, 4022, 4022,
10225      4022,    0, 4022, 4022, 4022, 4022, 4022, 4022, 4022, 4022,
10226      4022, 4022, 4022, 4022, 4022, 4022, 4022,    0, 4022, 4022,
10227      4022, 4022, 4022, 4022, 4023, 4023,    0, 4023, 4023,    0,
10228      4023, 4023, 4023, 4023, 4023, 4023, 4023, 4023, 4023, 4023,
10229      4023, 4023, 4023, 4023, 4023, 4023, 4023, 4023, 4023, 4023,
10230
10231      4023, 4023, 4023, 4023, 4024, 4024,    0,    0, 4024, 4024,
10232      4024, 4024, 4024, 4024, 4024, 4024, 4024, 4024, 4024, 4024,
10233      4024, 4024, 4024, 4024, 4024, 4024, 4024, 4024, 4024, 4024,
10234      4024, 4024, 4024, 4024, 4025, 4025, 4025, 4025,    0, 4025,
10235         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
10236         0,    0,    0, 4025, 4025,    0,    0,    0, 4025,    0,
10237         0, 4025, 4025, 4026, 4026, 4026, 4026,    0,    0,    0,
10238         0, 4026,    0, 4026,    0,    0,    0, 4026,    0, 4026,
10239         0,    0, 4026, 4026,    0,    0, 4026, 4026,    0,    0,
10240         0, 4026, 4027, 4027, 4027, 4027,    0,    0,    0, 4027,
10241
10242         0,    0,    0,    0,    0,    0, 4027, 4027,    0, 4027,
10243         0, 4027, 4027,    0, 4027,    0, 4027,    0,    0,    0,
10244      4027, 4028, 4028, 4028, 4028,    0,    0,    0, 4028,    0,
10245         0,    0,    0,    0,    0, 4028, 4028,    0, 4028,    0,
10246      4028, 4028,    0, 4028,    0, 4028,    0,    0,    0, 4028,
10247      4029,    0, 4029, 4029,    0, 4029, 4029, 4029, 4029,    0,
10248      4029, 4029, 4029, 4029, 4029, 4029, 4029, 4029, 4029, 4029,
10249      4029, 4029, 4029,    0, 4029, 4029, 4029, 4029, 4029, 4029,
10250      4030, 4030,    0, 4030, 4030, 4030, 4030, 4030, 4030, 4030,
10251      4030, 4030, 4030, 4030, 4030,    0, 4030, 4030, 4030, 4030,
10252
10253         0,    0, 4030, 4030, 4030,    0, 4030, 4030, 4030, 4030,
10254      4031, 4031,    0, 4031, 4031,    0, 4031, 4031, 4031, 4031,
10255      4031, 4031,    0,    0,    0, 4031, 4031, 4031, 4031, 4031,
10256      4031, 4031, 4031, 4031, 4031, 4031,    0, 4031, 4031, 4031,
10257      4032, 4032,    0, 4032, 4032,    0, 4032, 4032, 4032, 4032,
10258      4032, 4032, 4032, 4032,    0, 4032, 4032, 4032, 4032, 4032,
10259      4032, 4032, 4032, 4032, 4032, 4032,    0, 4032, 4032, 4032,
10260      4033,    0,    0, 4033,    0,    0,    0, 4033,    0,    0,
10261         0, 4033, 4033,    0, 4033, 4033,    0, 4033,    0, 4033,
10262      4033,    0,    0,    0, 4033,    0,    0,    0, 4033, 4034,
10263
10264      4034,    0, 4034,    0,    0,    0, 4034,    0,    0,    0,
10265      4034, 4034,    0, 4034, 4034,    0, 4034,    0, 4034, 4034,
10266         0,    0,    0, 4034,    0,    0,    0, 4034, 4035,    0,
10267         0, 4035,    0,    0,    0, 4035,    0,    0,    0,    0,
10268         0,    0, 4035, 4035,    0,    0,    0, 4035, 4035,    0,
10269      4035,    0, 4035,    0,    0,    0, 4035, 4036, 4036,    0,
10270      4036, 4036, 4036, 4036, 4036, 4036, 4036, 4036, 4036, 4036,
10271      4036, 4036, 4036, 4036, 4036, 4036, 4036, 4036, 4036, 4036,
10272      4036, 4036, 4036, 4036, 4036, 4036, 4036, 4037, 4037, 4037,
10273      4037,    0,    0,    0,    0,    0,    0,    0,    0,    0,
10274
10275         0, 4037,    0,    0,    0,    0, 4037, 4037,    0,    0,
10276         0, 4037, 4037,    0,    0, 4037, 4038, 4038,    0, 4038,
10277      4038,    0,    0, 4038, 4038, 4038, 4038, 4038, 4038, 4038,
10278      4038, 4038, 4038, 4038, 4038, 4038, 4038, 4038, 4038,    0,
10279      4038, 4038, 4038, 4038, 4038, 4038, 4039,    0, 4039, 4039,
10280         0, 4039, 4039, 4039,    0,    0, 4039, 4039, 4039, 4039,
10281      4039, 4039, 4039, 4039, 4039, 4039, 4039, 4039, 4039,    0,
10282      4039, 4039, 4039, 4039, 4039, 4039, 4040, 4040, 4040, 4040,
10283      4040, 4040, 4040, 4040, 4040,    0, 4040, 4040, 4040, 4040,
10284      4040, 4040, 4040, 4040, 4040, 4040, 4040, 4040, 4040, 4040,
10285
10286      4040, 4040, 4040, 4040, 4040, 4040, 4041, 4041,    0,    0,
10287      4041,    0, 4041, 4041, 4041, 4041, 4041, 4041, 4041, 4041,
10288      4041, 4041, 4041, 4041, 4041, 4041, 4041, 4041, 4041,    0,
10289      4041, 4041, 4041, 4041, 4041, 4041, 4042, 4042,    0,    0,
10290      4042, 4042, 4042,    0, 4042, 4042, 4042, 4042, 4042, 4042,
10291      4042, 4042, 4042, 4042, 4042, 4042, 4042, 4042, 4042,    0,
10292      4042, 4042, 4042, 4042, 4042, 4042, 4043, 4043,    0, 4043,
10293      4043,    0, 4043, 4043, 4043, 4043, 4043, 4043, 4043, 4043,
10294      4043, 4043, 4043, 4043, 4043, 4043, 4043, 4043, 4043, 4043,
10295      4043, 4043, 4043, 4043, 4043, 4043, 4044, 4044,    0,    0,
10296
10297      4044, 4044, 4044, 4044, 4044, 4044, 4044, 4044, 4044, 4044,
10298      4044, 4044, 4044, 4044, 4044, 4044, 4044, 4044, 4044, 4044,
10299      4044, 4044, 4044, 4044, 4044, 4044, 4045, 4045, 4045, 4045,
10300         0,    0,    0, 4045,    0,    0,    0,    0,    0,    0,
10301      4045, 4045,    0, 4045,    0, 4045, 4045,    0, 4045,    0,
10302      4045,    0,    0,    0, 4045, 4046, 4046, 4046, 4046,    0,
10303         0,    0, 4046,    0,    0,    0,    0,    0,    0, 4046,
10304      4046,    0, 4046,    0, 4046, 4046,    0, 4046,    0, 4046,
10305         0,    0,    0, 4046, 4047,    0, 4047, 4047,    0, 4047,
10306      4047, 4047, 4047,    0, 4047, 4047, 4047, 4047, 4047, 4047,
10307
10308      4047, 4047, 4047, 4047, 4047, 4047, 4047,    0, 4047, 4047,
10309      4047, 4047, 4047, 4047, 4048, 4048,    0, 4048, 4048, 4048,
10310      4048, 4048,    0,    0, 4048, 4048, 4048, 4048, 4048, 4048,
10311      4048, 4048,    0, 4048, 4048, 4048,    0, 4048,    0, 4048,
10312         0,    0, 4048, 4048, 4049,    0,    0, 4049,    0,    0,
10313         0, 4049,    0,    0,    0, 4049, 4049,    0, 4049, 4049,
10314         0, 4049,    0, 4049, 4049,    0,    0,    0, 4049,    0,
10315         0,    0, 4049, 4050, 4050,    0, 4050,    0,    0,    0,
10316      4050,    0,    0,    0, 4050, 4050,    0, 4050, 4050,    0,
10317      4050,    0, 4050, 4050,    0,    0,    0, 4050,    0,    0,
10318
10319         0, 4050, 4051,    0,    0, 4051,    0, 4051,    0,    0,
10320         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
10321         0, 4051, 4051,    0,    0,    0, 4051,    0,    0,    0,
10322      4051, 4052, 4052,    0, 4052, 4052, 4052, 4052, 4052, 4052,
10323      4052, 4052, 4052, 4052, 4052, 4052, 4052, 4052, 4052, 4052,
10324      4052, 4052, 4052, 4052, 4052, 4052, 4052, 4052, 4052, 4052,
10325      4052, 4053,    0,    0,    0,    0, 4053, 4053,    0,    0,
10326         0, 4053,    0,    0,    0, 4053, 4054, 4054,    0, 4054,
10327      4054,    0,    0, 4054, 4054, 4054, 4054, 4054, 4054, 4054,
10328      4054, 4054, 4054, 4054, 4054, 4054, 4054, 4054, 4054,    0,
10329
10330      4054, 4054, 4054, 4054, 4054, 4054, 4055,    0, 4055, 4055,
10331         0, 4055, 4055, 4055,    0,    0, 4055, 4055, 4055, 4055,
10332      4055, 4055, 4055, 4055, 4055, 4055, 4055, 4055, 4055,    0,
10333      4055, 4055, 4055, 4055, 4055, 4055, 4056, 4056, 4056, 4056,
10334      4056, 4056, 4056, 4056, 4056,    0, 4056, 4056, 4056, 4056,
10335      4056, 4056, 4056, 4056, 4056, 4056, 4056, 4056, 4056, 4056,
10336      4056, 4056, 4056, 4056, 4056, 4056, 4057,    0, 4057, 4057,
10337         0, 4057, 4057, 4057, 4057,    0, 4057, 4057, 4057, 4057,
10338      4057, 4057, 4057, 4057, 4057, 4057, 4057, 4057, 4057,    0,
10339      4057, 4057, 4057, 4057, 4057, 4057, 4058,    0,    0, 4058,
10340
10341         0, 4058,    0,    0,    0,    0,    0,    0,    0,    0,
10342         0,    0,    0,    0,    0, 4058, 4058,    0,    0,    0,
10343      4058,    0,    0,    0, 4058, 4059,    0,    0, 4059,    0,
10344         0,    0,    0, 4059,    0,    0,    0,    0,    0, 4059,
10345         0,    0,    0,    0, 4059, 4059,    0,    0,    0, 4059,
10346         0,    0,    0, 4059, 4060,    0, 4060, 4060,    0, 4060,
10347      4060, 4060,    0,    0, 4060, 4060, 4060, 4060, 4060, 4060,
10348      4060, 4060, 4060, 4060, 4060, 4060, 4060,    0, 4060, 4060,
10349      4060, 4060, 4060, 4060, 4061,    0, 4061, 4061,    0, 4061,
10350      4061, 4061, 4061,    0, 4061, 4061, 4061, 4061, 4061, 4061,
10351
10352      4061, 4061, 4061, 4061, 4061, 4061, 4061,    0, 4061, 4061,
10353      4061, 4061, 4061, 4061, 4062,    0,    0, 4062,    0,    0,
10354         0,    0, 4062,    0,    0,    0,    0,    0, 4062,    0,
10355         0,    0,    0, 4062, 4062,    0,    0,    0, 4062,    0,
10356         0,    0, 4062, 4063,    0, 4063, 4063,    0, 4063, 4063,
10357      4063,    0,    0, 4063, 4063, 4063, 4063, 4063, 4063, 4063,
10358      4063, 4063, 4063, 4063, 4063, 4063,    0, 4063, 4063, 4063,
10359      4063, 4063, 4063, 4064,    0, 4064, 4064,    0, 4064, 4064,
10360      4064, 4064,    0, 4064, 4064, 4064, 4064, 4064, 4064, 4064,
10361      4064, 4064, 4064, 4064, 4064, 4064,    0, 4064, 4064, 4064,
10362
10363      4064, 4064, 4064, 4065,    0, 4065, 4065,    0, 4065, 4065,
10364      4065,    0,    0, 4065, 4065, 4065, 4065, 4065, 4065, 4065,
10365      4065, 4065, 4065, 4065, 4065, 4065,    0, 4065, 4065, 4065,
10366      4065, 4065, 4065, 4066,    0, 4066, 4066,    0, 4066, 4066,
10367      4066, 4066,    0, 4066, 4066, 4066, 4066, 4066, 4066, 4066,
10368      4066, 4066, 4066, 4066, 4066, 4066,    0, 4066, 4066, 4066,
10369      4066, 4066, 4066, 4067,    0, 4067, 4067,    0, 4067, 4067,
10370      4067,    0,    0, 4067, 4067, 4067, 4067, 4067, 4067, 4067,
10371      4067, 4067, 4067, 4067, 4067, 4067,    0, 4067, 4067, 4067,
10372      4067, 4067, 4067, 4068,    0, 4068, 4068,    0, 4068, 4068,
10373
10374      4068, 4068,    0, 4068, 4068, 4068, 4068, 4068, 4068, 4068,
10375      4068, 4068, 4068, 4068, 4068, 4068,    0, 4068, 4068, 4068,
10376      4068, 4068, 4068, 4069,    0, 4069, 4069,    0, 4069, 4069,
10377      4069,    0,    0, 4069, 4069, 4069, 4069, 4069, 4069, 4069,
10378      4069, 4069, 4069, 4069, 4069, 4069,    0, 4069, 4069, 4069,
10379      4069, 4069, 4069, 4070,    0, 4070, 4070,    0, 4070, 4070,
10380      4070, 4070,    0, 4070, 4070, 4070, 4070, 4070, 4070, 4070,
10381      4070, 4070, 4070, 4070, 4070, 4070,    0, 4070, 4070, 4070,
10382      4070, 4070, 4070, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
10383      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
10384
10385      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
10386      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
10387      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
10388      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
10389      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
10390      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
10391      3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491
10392     } ;
10393
10394 extern int codeYY_flex_debug;
10395 int codeYY_flex_debug = 0;
10396
10397 static yy_state_type *yy_state_buf=0, *yy_state_ptr=0;
10398 static char *yy_full_match;
10399 static int yy_lp;
10400 static int yy_looking_for_trail_begin = 0;
10401 static int yy_full_lp;
10402 static int *yy_full_state;
10403 #define YY_TRAILING_MASK 0x2000
10404 #define YY_TRAILING_HEAD_MASK 0x4000
10405 #define REJECT \
10406 { \
10407 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */ \
10408 yy_cp = (yy_full_match); /* restore poss. backed-over text */ \
10409 (yy_lp) = (yy_full_lp); /* restore orig. accepting pos. */ \
10410 (yy_state_ptr) = (yy_full_state); /* restore orig. state */ \
10411 yy_current_state = *(yy_state_ptr); /* restore curr. state */ \
10412 ++(yy_lp); \
10413 goto find_rule; \
10414 }
10415
10416 #define yymore() yymore_used_but_not_detected
10417 #define YY_MORE_ADJ 0
10418 #define YY_RESTORE_YY_MORE_OFFSET
10419 char *codeYYtext;
10420 #line 1 "code.l"
10421 /******************************************************************************
10422  *
10423  * 
10424  *
10425  * Copyright (C) 1997-2012 by Dimitri van Heesch.
10426  *
10427  * Permission to use, copy, modify, and distribute this software and its
10428  * documentation under the terms of the GNU General Public License is hereby 
10429  * granted. No representations are made about the suitability of this software 
10430  * for any purpose. It is provided "as is" without express or implied warranty.
10431  * See the GNU General Public License for more details.
10432  *
10433  * Documents produced by Doxygen are derivative works derived from the
10434  * input used in their production; they are not affected by this license.
10435  *
10436  */
10437 #line 19 "code.l"
10438
10439 /*
10440  *      includes
10441  */
10442 #include <stdio.h>
10443 #include <assert.h>
10444 #include <ctype.h>
10445 #include <qregexp.h>
10446 #include <qdir.h>
10447
10448 #include "qtbc.h"
10449 #include "entry.h"
10450 #include "doxygen.h"
10451 #include "message.h"
10452 #include "outputlist.h"
10453 #include "util.h"
10454 #include "membername.h"
10455 #include "searchindex.h"
10456 #include "arguments.h"
10457
10458 #define YY_NEVER_INTERACTIVE 1
10459   
10460 // Toggle for some debugging info
10461 //#define DBG_CTX(x) fprintf x
10462 #define DBG_CTX(x) do { } while(0)
10463   
10464 #define CLASSBLOCK (int *)4
10465 #define SCOPEBLOCK (int *)8
10466 #define INNERBLOCK (int *)12
10467
10468 /* -----------------------------------------------------------------
10469  *      statics
10470  */
10471   
10472 static CodeOutputInterface * g_code;
10473
10474 static ClassSDict    *g_codeClassSDict = 0;
10475 static QCString      g_curClassName;
10476 static QStrList      g_curClassBases;
10477
10478 static QCString      g_parmType;
10479 static QCString      g_parmName;
10480
10481 static const char *  g_inputString;     //!< the code fragment as text
10482 static int           g_inputPosition;   //!< read offset during parsing 
10483 static int           g_inputLines;      //!< number of line in the code fragment
10484 static int           g_yyLineNr;        //!< current line number
10485 static bool          g_needsTermination;
10486
10487 static bool          g_exampleBlock;
10488 static QCString      g_exampleName;
10489 static QCString      g_exampleFile;
10490
10491 static bool          g_insideTemplate = FALSE;
10492 static QCString      g_type;
10493 static QCString      g_name;
10494 static QCString      g_args;
10495 static QCString      g_classScope;
10496 static QCString      g_realScope;
10497 static QStack<int>   g_scopeStack;      //!< 1 if bracket starts a scope, 
10498                                         //   2 for internal blocks 
10499 static int           g_anchorCount;
10500 static FileDef *     g_sourceFileDef;
10501 static bool          g_lineNumbers;
10502 static Definition *  g_currentDefinition;
10503 static MemberDef *   g_currentMemberDef;
10504 static bool          g_includeCodeFragment;
10505 static const char *  g_currentFontClass;
10506 static bool          g_searchingForBody;
10507 static bool          g_insideBody;
10508 static int           g_bodyCurlyCount;
10509 static QCString      g_saveName;
10510 static QCString      g_saveType;
10511 static QCString      g_delimiter;
10512
10513 static int           g_bracketCount = 0;
10514 static int           g_curlyCount   = 0;
10515 static int           g_sharpCount   = 0;
10516 static bool          g_inFunctionTryBlock = FALSE;
10517 static bool          g_inForEachExpression = FALSE;
10518
10519 static int           g_lastTemplCastContext;
10520 static int           g_lastSpecialCContext;
10521 static int           g_lastStringContext;
10522 static int           g_lastSkipCppContext;
10523 static int           g_lastVerbStringContext;
10524 static int           g_memCallContext;
10525 static int           g_lastCContext;
10526
10527 static bool          g_insideObjC;
10528 static bool          g_insideProtocolList;
10529
10530 static bool          g_lexInit = FALSE;
10531
10532 static QStack<int>   g_classScopeLengthStack;
10533
10534 static Definition   *g_searchCtx;
10535
10536 // context for an Objective-C method call
10537 struct ObjCCallCtx
10538 {
10539   int id;
10540   QCString methodName;
10541   QCString objectTypeOrName;
10542   ClassDef *objectType;
10543   MemberDef *objectVar;
10544   MemberDef *method;
10545   QCString format;
10546   int lexState;
10547   int braceCount;
10548 };
10549
10550 // globals for objective-C method calls 
10551 static ObjCCallCtx *g_currentCtx=0;
10552 static int g_currentCtxId=0;
10553 static int g_currentNameId=0;
10554 static int g_currentObjId=0;
10555 static int g_currentWordId=0;
10556 static QStack<ObjCCallCtx> g_contextStack;
10557 static QIntDict<ObjCCallCtx> g_contextDict;
10558 static QIntDict<QCString> g_nameDict;
10559 static QIntDict<QCString> g_objectDict;
10560 static QIntDict<QCString> g_wordDict;
10561 static int g_braceCount=0;
10562   
10563 static void saveObjCContext();
10564 static void restoreObjCContext();
10565
10566 static QCString g_forceTagReference;
10567
10568
10569 //-------------------------------------------------------------------
10570
10571 /*! Represents a stack of variable to class mappings as found in the
10572  *  code. Each scope is enclosed in pushScope() and popScope() calls.
10573  *  Variables are added by calling addVariables() and one can search
10574  *  for variable using findVariable().
10575  */
10576 class VariableContext
10577 {
10578   public:
10579     static const ClassDef *dummyContext;
10580     
10581     class Scope : public SDict<ClassDef>
10582     {
10583       public:
10584         Scope() : SDict<ClassDef>(17) {}
10585     };
10586     
10587     VariableContext() 
10588     {
10589       m_scopes.setAutoDelete(TRUE);
10590     }
10591     virtual ~VariableContext()
10592     {
10593     }
10594     
10595     void pushScope()
10596     {
10597       m_scopes.append(new Scope);
10598       DBG_CTX((stderr,"** Push var context %d\n",m_scopes.count()));
10599     }
10600
10601     void popScope()
10602     {
10603       if (m_scopes.count()>0)
10604       {
10605         DBG_CTX((stderr,"** Pop var context %d\n",m_scopes.count()));
10606         m_scopes.remove(m_scopes.count()-1);
10607       }
10608       else
10609       {
10610         DBG_CTX((stderr,"** ILLEGAL: Pop var context\n"));
10611       }
10612     }
10613
10614     void clear()
10615     {
10616       m_scopes.clear();
10617       m_globalScope.clear();
10618     }
10619
10620     void clearExceptGlobal()
10621     {
10622       DBG_CTX((stderr,"** Clear var context\n"));
10623       m_scopes.clear();
10624     }
10625
10626     void addVariable(const QCString &type,const QCString &name);
10627     ClassDef *findVariable(const QCString &name);
10628
10629     int count() const { return m_scopes.count(); }
10630     
10631   private:
10632     Scope        m_globalScope;
10633     QList<Scope> m_scopes;
10634 };
10635
10636 void VariableContext::addVariable(const QCString &type,const QCString &name)
10637 {
10638   //printf("VariableContext::addVariable(%s,%s)\n",type.data(),name.data());
10639   QCString ltype = type.simplifyWhiteSpace();
10640   QCString lname = name.simplifyWhiteSpace();
10641   if (ltype.left(7)=="struct ") 
10642   {
10643     ltype = ltype.right(ltype.length()-7);
10644   }
10645   else if (ltype.left(6)=="union ")
10646   {
10647     ltype = ltype.right(ltype.length()-6);
10648   }
10649   if (ltype.isEmpty() || lname.isEmpty()) return;
10650   DBG_CTX((stderr,"** addVariable trying: type='%s' name='%s' g_currentDefinition=%s\n",
10651         ltype.data(),lname.data(),g_currentDefinition?g_currentDefinition->name().data():"<none>"));
10652   Scope *scope = m_scopes.count()==0 ? &m_globalScope : m_scopes.getLast();
10653   ClassDef *varType;
10654   int i=0;
10655   if (
10656       (varType=g_codeClassSDict->find(ltype)) ||  // look for class definitions inside the code block
10657       (varType=getResolvedClass(g_currentDefinition,g_sourceFileDef,ltype)) // look for global class definitions
10658      ) 
10659   {
10660     DBG_CTX((stderr,"** addVariable type='%s' name='%s'\n",ltype.data(),lname.data()));
10661     scope->append(lname,varType); // add it to a list
10662   }
10663   else if ((i=ltype.find('<'))!=-1)
10664   {
10665     // probably a template class
10666     QCString typeName(ltype.left(i));
10667     ClassDef* newDef = 0;
10668     QCString templateArgs(ltype.right(ltype.length() - i));
10669     if (  
10670          ( // look for class definitions inside the code block
10671            (varType=g_codeClassSDict->find(typeName)) ||
10672            // otherwise look for global class definitions
10673            (varType=getResolvedClass(g_currentDefinition,g_sourceFileDef,typeName,0,0,TRUE,TRUE))
10674          ) && // and it must be a template
10675          varType->templateArguments())
10676     {
10677       newDef = varType->getVariableInstance( templateArgs );
10678     }
10679     if (newDef)
10680     {
10681       DBG_CTX((stderr,"** addVariable type='%s' templ='%s' name='%s'\n",typeName.data(),templateArgs.data(),lname.data()));
10682       scope->append(lname, newDef);
10683     }
10684     else
10685     {
10686       // Doesn't seem to be a template. Try just the base name.
10687       addVariable(typeName,name);
10688     }
10689   }
10690   else 
10691   {
10692     if (m_scopes.count()>0) // for local variables add a dummy entry so the name 
10693                             // is hidden to avoid false links to global variables with the same name
10694                             // TODO: make this work for namespaces as well!
10695     {
10696       DBG_CTX((stderr,"** addVariable: dummy context for '%s'\n",lname.data()));
10697       scope->append(lname,dummyContext);
10698     }
10699     else
10700     {
10701       DBG_CTX((stderr,"** addVariable: not adding variable!\n"));
10702     }
10703   }
10704 }
10705
10706 ClassDef *VariableContext::findVariable(const QCString &name)
10707 {
10708   if (name.isEmpty()) return 0;
10709   ClassDef *result = 0;
10710   //QListIterator<Scope> sli(m_scopes);
10711   Scope *scope;
10712   QCString key = name;
10713   // search from inner to outer scope
10714   scope = m_scopes.last();
10715   //for (sli.toLast();(scope=sli.current());--sli)
10716   while (scope)
10717   {
10718     result = scope->find(key);
10719     if (result) 
10720     {
10721       DBG_CTX((stderr,"** findVariable(%s)=%p\n",name.data(),result));
10722       return result;
10723     }
10724     scope = m_scopes.prev();
10725   }
10726   // nothing found -> also try the global scope
10727   result=m_globalScope.find(name);
10728   DBG_CTX((stderr,"** findVariable(%s)=%p\n",name.data(),result));
10729   return result;
10730 }
10731
10732 static VariableContext g_theVarContext;
10733 const ClassDef *VariableContext::dummyContext = (ClassDef*)0x8;
10734
10735 //-------------------------------------------------------------------
10736
10737 class CallContext
10738 {
10739   public:
10740     struct Ctx
10741     {
10742       Ctx() : name(g_name), type(g_type), cd(0) {}
10743       QCString name;
10744       QCString type;
10745       ClassDef *cd;
10746     };
10747
10748     CallContext() 
10749     {
10750       m_classList.append(new Ctx);
10751       m_classList.setAutoDelete(TRUE);
10752     }
10753     virtual ~CallContext() {}
10754     void setClass(ClassDef *cd)
10755     {
10756       Ctx *ctx = m_classList.getLast();
10757       if (ctx)
10758       {
10759         DBG_CTX((stderr,"** Set call context %s (%p)\n",cd==0 ? "<null>" : cd->name().data(),cd));
10760         ctx->cd=cd;
10761       }
10762     }
10763     void pushScope()
10764     {
10765       m_classList.append(new Ctx);
10766       DBG_CTX((stderr,"** Push call context %d\n",m_classList.count()));
10767     }
10768     void popScope()
10769     {
10770       if (m_classList.count()>1)
10771       {
10772         DBG_CTX((stderr,"** Pop call context %d\n",m_classList.count()));
10773         Ctx *ctx = m_classList.getLast();
10774         if (ctx)
10775         {
10776           g_name = ctx->name;
10777           g_type = ctx->type;
10778         }
10779         m_classList.removeLast();
10780       }
10781       else
10782       {
10783         DBG_CTX((stderr,"** ILLEGAL: Pop call context\n"));
10784       }
10785     }
10786     void clear()
10787     {
10788       DBG_CTX((stderr,"** Clear call context\n"));
10789       m_classList.clear();
10790       m_classList.append(new Ctx);
10791     }
10792     ClassDef *getClass() const
10793     {
10794       Ctx *ctx = m_classList.getLast();
10795       if (ctx) return ctx->cd; else return 0;
10796     }
10797
10798   private:
10799     QList<Ctx> m_classList;    
10800 };
10801
10802 static CallContext g_theCallContext;
10803
10804 //-------------------------------------------------------------------
10805
10806 /*! add class/namespace name s to the scope */
10807 static void pushScope(const char *s)
10808 {
10809   g_classScopeLengthStack.push(new int(g_classScope.length()));
10810   if (g_classScope.isEmpty())
10811   {
10812     g_classScope = s;
10813   }
10814   else
10815   {
10816     g_classScope += "::";
10817     g_classScope += s;
10818   }
10819   //printf("pushScope(%s) result: `%s'\n",s,g_classScope.data());
10820 }
10821
10822 /*! remove the top class/namespace name from the scope */
10823 static void popScope()
10824 {
10825   if (!g_classScopeLengthStack.isEmpty())
10826   {
10827     int *pLength = g_classScopeLengthStack.pop();
10828     g_classScope.truncate(*pLength);
10829     delete pLength;
10830   }
10831   else
10832   {
10833     //err("Error: Too many end of scopes found!\n");
10834   }
10835   //printf("popScope() result: `%s'\n",g_classScope.data());
10836 }
10837
10838 static void setCurrentDoc(const QCString &anchor)
10839 {
10840   if (Doxygen::searchIndex)
10841   {
10842     if (g_searchCtx)
10843     {
10844       Doxygen::searchIndex->setCurrentDoc(g_searchCtx,g_searchCtx->anchor(),FALSE);
10845     }
10846     else
10847     {
10848       Doxygen::searchIndex->setCurrentDoc(g_sourceFileDef,anchor,TRUE);
10849     }
10850   }
10851 }
10852
10853 static void addToSearchIndex(const char *text)
10854 {
10855   if (Doxygen::searchIndex)
10856   {
10857     Doxygen::searchIndex->addWord(text,FALSE);
10858   }
10859 }
10860
10861 static void setClassScope(const QCString &name)
10862 {
10863   //printf("setClassScope(%s)\n",name.data());
10864   QCString n=name;
10865   n=n.simplifyWhiteSpace();
10866   int ts=n.find('<'); // start of template
10867   int te=n.findRev('>'); // end of template
10868   //printf("ts=%d te=%d\n",ts,te);
10869   if (ts!=-1 && te!=-1 && te>ts)
10870   {
10871     // remove template from scope
10872     n=n.left(ts)+n.right(n.length()-te-1);
10873   }
10874   while (!g_classScopeLengthStack.isEmpty())
10875   {
10876     popScope();
10877   }
10878   g_classScope.resize(0);
10879   int i;
10880   while ((i=n.find("::"))!=-1)
10881   {
10882     pushScope(n.left(i));
10883     n = n.mid(i+2);
10884   }
10885   pushScope(n);
10886   //printf("--->New class scope `%s'\n",g_classScope.data());
10887 }
10888
10889 /*! start a new line of code, inserting a line number if g_sourceFileDef
10890  * is TRUE. If a definition starts at the current line, then the line
10891  * number is linked to the documentation of that definition.
10892  */
10893 static void startCodeLine()
10894 {
10895   //if (g_currentFontClass) { g_code->endFontClass(); }
10896   if (g_sourceFileDef && g_lineNumbers)
10897   {
10898     //QCString lineNumber,lineAnchor;
10899     //lineNumber.sprintf("%05d",g_yyLineNr);
10900     //lineAnchor.sprintf("l%05d",g_yyLineNr);
10901    
10902     Definition *d   = g_sourceFileDef->getSourceDefinition(g_yyLineNr);
10903     //printf("%s:startCodeLine(%d)=%p\n",g_sourceFileDef->name().data(),g_yyLineNr,d);
10904     if (!g_includeCodeFragment && d)
10905     {
10906       g_currentDefinition = d;
10907       g_currentMemberDef = g_sourceFileDef->getSourceMember(g_yyLineNr);
10908       //printf("->startCodeLine(%s)=%p\n",d->name().data(),g_currentMemberDef);
10909       g_insideBody = FALSE;
10910       g_searchingForBody = TRUE;
10911       g_realScope = d->name();
10912       //g_classScope = "";
10913       g_type.resize(0);
10914       g_name.resize(0);
10915       g_args.resize(0);
10916       g_parmType.resize(0);
10917       g_parmName.resize(0);
10918       //printf("Real scope: `%s'\n",g_realScope.data());
10919       g_bodyCurlyCount = 0;
10920       QCString lineAnchor;
10921       lineAnchor.sprintf("l%05d",g_yyLineNr);
10922       if (g_currentMemberDef)
10923       {
10924         g_code->writeLineNumber(g_currentMemberDef->getReference(),
10925                                 g_currentMemberDef->getOutputFileBase(),
10926                                 g_currentMemberDef->anchor(),g_yyLineNr);
10927         setCurrentDoc(lineAnchor);
10928       }
10929       else if (d->isLinkableInProject())
10930       {
10931         g_code->writeLineNumber(d->getReference(),
10932                                 d->getOutputFileBase(),
10933                                 0,g_yyLineNr);
10934         setCurrentDoc(lineAnchor);
10935       }
10936     }
10937     else
10938     {
10939       g_code->writeLineNumber(0,0,0,g_yyLineNr);
10940     }
10941   }
10942   g_code->startCodeLine(g_sourceFileDef && g_lineNumbers); 
10943   if (g_currentFontClass)
10944   {
10945     g_code->startFontClass(g_currentFontClass);
10946   }
10947 }
10948
10949
10950 static void endFontClass();
10951 static void startFontClass(const char *s);
10952
10953 static void endCodeLine()
10954 {
10955   endFontClass();
10956   g_code->endCodeLine();
10957 }
10958
10959 static void nextCodeLine()
10960 {
10961   const char * fc = g_currentFontClass;
10962   endCodeLine();
10963   if (g_yyLineNr<g_inputLines) 
10964   {
10965     g_currentFontClass = fc;
10966     startCodeLine();
10967   }
10968 }
10969
10970 /*! write a code fragment `text' that may span multiple lines, inserting
10971  * line numbers for each line.
10972  */
10973 static void codifyLines(const char *text)
10974 {
10975   //printf("codifyLines(%d,\"%s\")\n",g_yyLineNr,text);
10976   const char *p=text,*sp=p;
10977   char c;
10978   bool done=FALSE;
10979   while (!done)
10980   {
10981     sp=p;
10982     while ((c=*p++) && c!='\n') { }
10983     if (c=='\n')
10984     {
10985       g_yyLineNr++;
10986       //*(p-1)='\0';
10987       int l = p-sp-1;
10988       char *tmp = (char*)malloc(l+1);
10989       memcpy(tmp,sp,l);
10990       tmp[l]='\0';
10991       g_code->codify(tmp);
10992       free(tmp);
10993       nextCodeLine();
10994     }
10995     else
10996     {
10997       g_code->codify(sp);
10998       done=TRUE;
10999     }
11000   }
11001 }
11002
11003 /*! writes a link to a fragment \a text that may span multiple lines, inserting
11004  * line numbers for each line. If \a text contains newlines, the link will be 
11005  * split into multiple links with the same destination, one for each line.
11006  */
11007 static void writeMultiLineCodeLink(CodeOutputInterface &ol,
11008                   const char *ref,const char *file,
11009                   const char *anchor,const char *text,
11010                   const char *tooltip)
11011 {
11012   bool done=FALSE;
11013   char *p=(char *)text;
11014   while (!done)
11015   {
11016     char *sp=p;
11017     char c;
11018     while ((c=*p++) && c!='\n') { }
11019     if (c=='\n')
11020     {
11021       g_yyLineNr++;
11022       *(p-1)='\0';
11023       //printf("writeCodeLink(%s,%s,%s,%s)\n",ref,file,anchor,sp);
11024       ol.writeCodeLink(ref,file,anchor,sp,tooltip);
11025       nextCodeLine();
11026     }
11027     else
11028     {
11029       //printf("writeCodeLink(%s,%s,%s,%s)\n",ref,file,anchor,sp);
11030       ol.writeCodeLink(ref,file,anchor,sp,tooltip);
11031       done=TRUE;
11032     }
11033   }
11034 }
11035
11036 static void addType()
11037 {
11038   if (g_name=="const") { g_name.resize(0); return; }
11039   if (!g_type.isEmpty()) g_type += ' ' ;
11040   g_type += g_name ;
11041   g_name.resize(0) ;
11042   if (!g_type.isEmpty()) g_type += ' ' ;
11043   g_type += g_args ;
11044   g_args.resize(0) ;
11045 }
11046
11047 static void addParmType()
11048 {
11049   if (g_parmName=="const") { g_parmName.resize(0); return; }
11050   if (!g_parmType.isEmpty()) g_parmType += ' ' ;
11051   g_parmType += g_parmName ;
11052   g_parmName.resize(0) ;
11053 }
11054
11055 static void addUsingDirective(const char *name)
11056 {
11057   if (g_sourceFileDef && name)
11058   {
11059     NamespaceDef *nd = Doxygen::namespaceSDict->find(name);
11060     if (nd)
11061     {
11062       g_sourceFileDef->addUsingDirective(nd);
11063     }
11064   }
11065 }
11066
11067 static void setParameterList(MemberDef *md)
11068 {
11069   g_classScope = md->getClassDef() ? md->getClassDef()->name().data() : "";
11070   LockingPtr<ArgumentList> al = md->argumentList();
11071   if (al==0) return; 
11072   Argument *a = al->first();
11073   while (a)
11074   {
11075     g_parmName = a->name.copy();
11076     g_parmType = a->type.copy();
11077     int i = g_parmType.find('*');
11078     if (i!=-1) g_parmType = g_parmType.left(i);
11079     i = g_parmType.find('&');
11080     if (i!=-1) g_parmType = g_parmType.left(i);
11081     g_parmType.stripPrefix("const ");
11082     g_parmType=g_parmType.stripWhiteSpace();
11083     g_theVarContext.addVariable(g_parmType,g_parmName);
11084     a = al->next();
11085   }
11086 }
11087
11088 static ClassDef *stripClassName(const char *s,Definition *d=g_currentDefinition)
11089 {
11090   int pos=0;
11091   QCString type = s;
11092   QCString className;
11093   QCString templSpec;
11094   while (extractClassNameFromType(type,pos,className,templSpec)!=-1)
11095   {
11096     QCString clName=className+templSpec;
11097     ClassDef *cd=0;
11098     if (!g_classScope.isEmpty())
11099     {
11100       cd=getResolvedClass(d,g_sourceFileDef,g_classScope+"::"+clName);
11101     }
11102     if (cd==0)
11103     {
11104       cd=getResolvedClass(d,g_sourceFileDef,clName);
11105     }
11106     //printf("stripClass trying `%s' = %p\n",clName.data(),cd);
11107     if (cd)
11108     {
11109       return cd;
11110     }
11111   }
11112
11113   return 0;
11114 }
11115
11116 static MemberDef *setCallContextForVar(const QCString &name)
11117 {
11118   if (name.isEmpty()) return 0;
11119   //fprintf(stderr,"setCallContextForVar(%s) g_classScope=%s\n",name.data(),g_classScope.data());
11120
11121   int scopeEnd = name.findRev("::");
11122   if (scopeEnd!=-1) // name with explicit scope
11123   {
11124     QCString scope   = name.left(scopeEnd);
11125     QCString locName = name.right(name.length()-scopeEnd-2);
11126     //printf("explicit scope: name=%s scope=%s\n",locName.data(),scope.data());
11127     ClassDef *mcd = getClass(scope); 
11128     if (mcd && !locName.isEmpty())
11129     {
11130       MemberDef *md=mcd->getMemberByName(locName);
11131       if (md)
11132       {
11133         //printf("name=%s scope=%s\n",locName.data(),scope.data());
11134         g_theCallContext.setClass(stripClassName(md->typeString(),md->getOuterScope()));
11135         return md;
11136       }
11137     }
11138     else // check namespace as well
11139     {
11140       NamespaceDef *mnd = getResolvedNamespace(scope);
11141       if (mnd && !locName.isEmpty())
11142       {
11143         MemberDef *md=mnd->getMemberByName(locName);
11144         if (md)
11145         {
11146           //printf("name=%s scope=%s\n",locName.data(),scope.data());
11147           g_theCallContext.setClass(stripClassName(md->typeString(),md->getOuterScope()));
11148           return md;
11149         }
11150       }
11151     }
11152   }
11153   
11154   MemberName *mn;
11155   ClassDef *mcd = g_theVarContext.findVariable(name);
11156   if (mcd) // local variable
11157   {
11158     //fprintf(stderr,"local variable?\n");
11159     if (mcd!=VariableContext::dummyContext)
11160     {
11161       //fprintf(stderr,"local var `%s' mcd=%s\n",name.data(),mcd->name().data());
11162       g_theCallContext.setClass(mcd);
11163     }
11164   }
11165   else
11166   {
11167     //fprintf(stderr,"class member? scope=%s\n",g_classScope.data());
11168     // look for a class member 
11169     mcd = getClass(g_classScope);
11170     if (mcd)
11171     {
11172       //fprintf(stderr,"Inside class %s\n",mcd->name().data());
11173       MemberDef *md=mcd->getMemberByName(name);
11174       if (md) 
11175       {
11176         //fprintf(stderr,"Found member %s\n",md->name().data());
11177         if (g_scopeStack.top()!=CLASSBLOCK)
11178         {
11179           //fprintf(stderr,"class member `%s' mcd=%s\n",name.data(),mcd->name().data());
11180           g_theCallContext.setClass(stripClassName(md->typeString(),md->getOuterScope()));
11181         }
11182         return md;
11183       }
11184     }
11185   }
11186
11187   // look for a global member
11188   if ((mn=Doxygen::functionNameSDict->find(name)))
11189   {
11190     //printf("global var `%s'\n",name.data());
11191     if (mn->count()==1) // global defined only once
11192     {
11193       MemberDef *md=mn->getFirst();
11194       if (!md->isStatic() || md->getBodyDef()==g_sourceFileDef)
11195       {
11196         g_theCallContext.setClass(stripClassName(md->typeString(),md->getOuterScope()));
11197         return md;
11198       }
11199       return 0;
11200     }
11201     else if (mn->count()>1) // global defined more than once
11202     {
11203       MemberDef *md=mn->first();
11204       while (md)
11205       {
11206         //printf("mn=%p md=%p md->getBodyDef()=%p g_sourceFileDef=%p\n",
11207         //    mn,md,
11208         //    md->getBodyDef(),g_sourceFileDef);
11209         
11210         // in case there are multiple members we could link to, we 
11211         // only link to members if defined in the same file or 
11212         // defined as external.
11213         if ((!md->isStatic() || md->getBodyDef()==g_sourceFileDef) &&
11214             (g_forceTagReference.isEmpty() || g_forceTagReference==md->getReference())
11215            )
11216         {
11217           g_theCallContext.setClass(stripClassName(md->typeString(),md->getOuterScope()));
11218           //printf("returning member %s in source file %s\n",md->name().data(),g_sourceFileDef->name().data());
11219           return md;
11220         }
11221         md=mn->next();
11222       }
11223       return 0;
11224     }
11225   }
11226   return 0;
11227 }
11228
11229 static void updateCallContextForSmartPointer()
11230 {
11231   ClassDef *cd = g_theCallContext.getClass();
11232   //printf("updateCallContextForSmartPointer() cd=%s\n",cd ? cd->name().data() : "<none>");
11233   MemberDef *md;
11234   if (cd && (md=cd->isSmartPointer()))
11235   {
11236     ClassDef *ncd = stripClassName(md->typeString(),md->getOuterScope());
11237     if (ncd)
11238     {
11239       g_theCallContext.setClass(ncd);
11240       //printf("Found smart pointer call %s->%s!\n",cd->name().data(),ncd->name().data());
11241     }
11242   }
11243 }
11244
11245 static void addDocCrossReference(MemberDef *src,MemberDef *dst)
11246 {
11247   static bool referencedByRelation = Config_getBool("REFERENCED_BY_RELATION");
11248   static bool referencesRelation   = Config_getBool("REFERENCES_RELATION");
11249   static bool callerGraph          = Config_getBool("CALLER_GRAPH");
11250   static bool callGraph            = Config_getBool("CALL_GRAPH");
11251
11252   //printf("--> addDocCrossReference src=%s,dst=%s\n",src->name().data(),dst->name().data());
11253   if (dst->isTypedef() || dst->isEnumerate()) return; // don't add types
11254   if ((referencedByRelation || callerGraph || dst->hasCallerGraph()) && 
11255       (src->isFunction() || src->isSlot()) 
11256      )
11257   {
11258     dst->addSourceReferencedBy(src);
11259     MemberDef *mdDef = dst->memberDefinition();
11260     if (mdDef)
11261     {
11262       mdDef->addSourceReferencedBy(src);
11263     }
11264     MemberDef *mdDecl = dst->memberDeclaration();
11265     if (mdDecl)
11266     {
11267       mdDecl->addSourceReferencedBy(src);
11268     }
11269   }
11270   if ((referencesRelation || callGraph || src->hasCallGraph()) && 
11271       (src->isFunction() || src->isSlot())
11272      )
11273   {
11274     src->addSourceReferences(dst);
11275     MemberDef *mdDef = src->memberDefinition();
11276     if (mdDef)
11277     {
11278       mdDef->addSourceReferences(dst);
11279     }
11280     MemberDef *mdDecl = src->memberDeclaration();
11281     if (mdDecl)
11282     {
11283       mdDecl->addSourceReferences(dst);
11284     }
11285   }
11286
11287 }
11288
11289 static bool getLinkInScope(const QCString &c,  // scope
11290                            const QCString &m,  // member
11291                            const char *memberText, // exact text
11292                            CodeOutputInterface &ol,
11293                            const char *text,
11294                            bool varOnly=FALSE
11295                           )
11296 {
11297   MemberDef    *md;
11298   ClassDef     *cd;
11299   FileDef      *fd;
11300   NamespaceDef *nd;
11301   GroupDef     *gd;
11302   //fprintf(stderr,"getLinkInScope: trying `%s'::`%s' varOnly=%d\n",c.data(),m.data(),varOnly);
11303   if (getDefs(c,m,"()",md,cd,fd,nd,gd,FALSE,g_sourceFileDef,FALSE,g_forceTagReference) && 
11304       md->isLinkable() && (!varOnly || md->isVariable()))
11305   {
11306     //printf("found it %s!\n",md->qualifiedName().data());
11307     if (g_exampleBlock)
11308     {
11309       QCString anchor;
11310       anchor.sprintf("a%d",g_anchorCount);
11311       //printf("addExampleFile(%s,%s,%s)\n",anchor.data(),g_exampleName.data(),
11312       //                                  g_exampleFile.data());
11313       if (md->addExample(anchor,g_exampleName,g_exampleFile))
11314       {
11315         ol.writeCodeAnchor(anchor);
11316         g_anchorCount++;
11317       }
11318     }
11319
11320     Definition *d = md->getOuterScope()==Doxygen::globalScope ?
11321                     md->getBodyDef() : md->getOuterScope();
11322     if (md->getGroupDef()) d = md->getGroupDef();
11323     if (d && d->isLinkable())
11324     {
11325       g_theCallContext.setClass(stripClassName(md->typeString(),md->getOuterScope()));
11326       //printf("g_currentDefinition=%p g_currentMemberDef=%p g_insideBody=%d\n",
11327       //        g_currentDefinition,g_currentMemberDef,g_insideBody);
11328
11329       if (g_currentDefinition && g_currentMemberDef &&
11330           md!=g_currentMemberDef && g_insideBody)
11331       {
11332         addDocCrossReference(g_currentMemberDef,md);
11333       }
11334       //printf("d->getReference()=`%s' d->getOutputBase()=`%s' name=`%s' member name=`%s'\n",d->getReference().data(),d->getOutputFileBase().data(),d->name().data(),md->name().data());
11335      
11336       ol.linkableSymbol(g_yyLineNr,md->name(),md,
11337                         g_currentMemberDef ? g_currentMemberDef : g_currentDefinition);
11338       writeMultiLineCodeLink(ol,md->getReference(),
11339                                 md->getOutputFileBase(),
11340                                 md->anchor(),
11341                                 text ? text : memberText,
11342                                 md->briefDescriptionAsTooltip());
11343       addToSearchIndex(text ? text : memberText);
11344       return TRUE;
11345     } 
11346   }
11347   return FALSE;
11348 }
11349
11350 static bool getLink(const char *className,
11351                     const char *memberName,
11352                     CodeOutputInterface &ol,
11353                     const char *text=0,
11354                     bool varOnly=FALSE)
11355 {
11356   //printf("getLink(%s,%s) g_curClassName=%s\n",className,memberName,g_curClassName.data());
11357   QCString m=removeRedundantWhiteSpace(memberName);
11358   QCString c=className;
11359   if (!getLinkInScope(c,m,memberName,ol,text,varOnly))
11360   {
11361     if (!g_curClassName.isEmpty())
11362     {
11363       if (!c.isEmpty()) c.prepend("::");
11364       c.prepend(g_curClassName);
11365       return getLinkInScope(c,m,memberName,ol,text,varOnly);
11366     }
11367     return FALSE;
11368   }
11369   return TRUE;
11370 }
11371
11372 static void generateClassOrGlobalLink(CodeOutputInterface &ol,const char *clName,
11373                                       bool typeOnly=FALSE,bool varOnly=FALSE)
11374 {
11375   int i=0;
11376   if (*clName=='~') // correct for matching negated values i.s.o. destructors.
11377   {
11378     g_code->codify("~");
11379     clName++;
11380   }
11381   QCString className=clName;
11382   if (className.isEmpty()) return;
11383   if (g_insideProtocolList) // for Obj-C
11384   {
11385     className+="-p";
11386   }
11387   className = substitute(className,"\\","::"); // for PHP namespaces
11388   ClassDef *cd=0,*lcd=0;
11389   MemberDef *md=0;
11390   bool isLocal=FALSE;
11391
11392   //printf("generateClassOrGlobalLink(className=%s)\n",className.data());
11393   if ((lcd=g_theVarContext.findVariable(className))==0) // not a local variable
11394   {
11395     Definition *d = g_currentDefinition;
11396     //printf("d=%s g_sourceFileDef=%s\n",d?d->name().data():"<none>",g_sourceFileDef?g_sourceFileDef->name().data():"<none>");
11397     cd = getResolvedClass(d,g_sourceFileDef,className,&md);
11398     //fprintf(stderr,"non-local variable name=%s context=%d cd=%s md=%s!\n",
11399     //  className.data(),g_theVarContext.count(),cd?cd->name().data():"<none>",
11400     //    md?md->name().data():"<none>");
11401     if (cd==0 && md==0 && (i=className.find('<'))!=-1)
11402     {
11403       QCString bareName = className.left(i); //stripTemplateSpecifiersFromScope(className);
11404       //fprintf(stderr,"bareName=%s\n",bareName.data());
11405       if (bareName!=className)
11406       {
11407         cd=getResolvedClass(d,g_sourceFileDef,bareName,&md); // try unspecialized version
11408       }
11409     }
11410     //printf("md=%s\n",md?md->name().data():"<none>");
11411     //fprintf(stderr,"is found as a type %s\n",cd?cd->name().data():"<null>");
11412     if (cd==0 && md==0) // also see if it is variable or enum or enum value
11413     {
11414       if (getLink(g_classScope,clName,ol,clName,varOnly))
11415       {
11416         return;
11417       }
11418     }
11419   }
11420   else
11421   {
11422     //printf("local variable!\n");
11423     if (lcd!=VariableContext::dummyContext) 
11424     {
11425       //printf("non-dummy context lcd=%s!\n",lcd->name().data());
11426       g_theCallContext.setClass(lcd);
11427
11428       // to following is needed for links to a global variable, but is
11429       // no good for a link to a local variable that is also a global symbol.
11430        
11431       //if (getLink(g_classScope,clName,ol,clName))
11432       //{
11433         //return;
11434       //}
11435     }
11436     isLocal=TRUE;
11437     //fprintf(stderr,"is a local variable cd=%p!\n",cd);
11438   }
11439   if (cd && cd->isLinkable()) // is it a linkable class
11440   {
11441     //fprintf(stderr,"is linkable class %s\n",clName);
11442     if (g_exampleBlock)
11443     {
11444       QCString anchor;
11445       anchor.sprintf("_a%d",g_anchorCount);
11446       //printf("addExampleClass(%s,%s,%s)\n",anchor.data(),g_exampleName.data(),
11447       //                                   g_exampleFile.data());
11448       if (cd->addExample(anchor,g_exampleName,g_exampleFile))
11449       {
11450         ol.writeCodeAnchor(anchor);
11451         g_anchorCount++;
11452       }
11453     }
11454     ol.linkableSymbol(g_yyLineNr,cd->name(),cd,
11455                       g_currentMemberDef ? g_currentMemberDef : g_currentDefinition);
11456     writeMultiLineCodeLink(ol,cd->getReference(),cd->getOutputFileBase(),cd->anchor(),clName,cd->briefDescriptionAsTooltip());
11457     addToSearchIndex(className);
11458     g_theCallContext.setClass(cd);
11459     if (md)
11460     {
11461       Definition *d = md->getOuterScope()==Doxygen::globalScope ?
11462                       md->getBodyDef() : md->getOuterScope();
11463       if (md->getGroupDef()) d = md->getGroupDef();
11464       if (d && d->isLinkable() && md->isLinkable() && g_currentMemberDef)
11465       {
11466         addDocCrossReference(g_currentMemberDef,md);
11467       }
11468     }
11469   }
11470   else // not a class, maybe a global member
11471   {
11472     //fprintf(stderr,"class %s not linkable! cd=%p md=%p typeOnly=%d\n",clName,cd,md,typeOnly);
11473     if (!isLocal && (md!=0 || (cd==0 && !typeOnly))) // not a class, see if it is a global enum/variable/typedef.
11474     {
11475       if (md==0) // not found as a typedef
11476       {
11477         md = setCallContextForVar(clName);
11478         //printf("setCallContextForVar(%s) md=%p g_currentDefinition=%p\n",clName,md,g_currentDefinition);
11479         if (md && g_currentDefinition)
11480         {
11481           //fprintf(stderr,"%s accessible from %s? %d md->getOuterScope=%s\n",
11482           //    md->name().data(),g_currentDefinition->name().data(),
11483           //    isAccessibleFrom(g_currentDefinition,g_sourceFileDef,md),
11484           //    md->getOuterScope()->name().data());
11485         }
11486              
11487         if (md && g_currentDefinition && 
11488             isAccessibleFrom(g_currentDefinition,g_sourceFileDef,md)==-1)
11489         {
11490           md=0; // variable not accessible
11491         }
11492       }
11493       if (md && (!varOnly || md->isVariable()))
11494       {
11495         //fprintf(stderr,"is a global md=%p g_currentDefinition=%s linkable=%d\n",md,g_currentDefinition?g_currentDefinition->name().data():"<none>",md->isLinkable());
11496         if (md->isLinkable())
11497         {
11498           QCString text;
11499           if (!g_forceTagReference.isEmpty()) // explicit reference to symbol in tag file
11500           {
11501             text=g_forceTagReference;
11502             if (text.right(4)==".tag") // strip .tag if present
11503             {
11504               text=text.left(text.length()-4);
11505             }
11506             text+=getLanguageSpecificSeparator(md->getLanguage());
11507             text+=clName;
11508             md->setName(text);
11509             md->setLocalName(text);
11510           }
11511           else // normal reference
11512           {
11513             text=clName;
11514           }
11515           ol.linkableSymbol(g_yyLineNr,md->name(),md,
11516                             g_currentMemberDef ? g_currentMemberDef : g_currentDefinition);
11517           writeMultiLineCodeLink(ol,md->getReference(),md->getOutputFileBase(),md->anchor(),text,md->briefDescriptionAsTooltip());
11518           addToSearchIndex(clName);
11519           if (g_currentMemberDef)
11520           {
11521             addDocCrossReference(g_currentMemberDef,md);
11522           }
11523           return;
11524         }
11525       }
11526     }
11527     
11528     // nothing found, just write out the word
11529     //fprintf(stderr,"not found!\n");
11530     ol.linkableSymbol(g_yyLineNr,clName,0,
11531                       g_currentMemberDef?g_currentMemberDef:g_currentDefinition);
11532     codifyLines(clName);
11533     addToSearchIndex(clName);
11534   }
11535 }
11536
11537 static bool generateClassMemberLink(CodeOutputInterface &ol,MemberDef *xmd,const char *memName)
11538 {
11539   // extract class definition of the return type in order to resolve
11540   // a->b()->c() like call chains
11541
11542   //printf("type=`%s' args=`%s' class=%s\n",
11543   //  xmd->typeString(),xmd->argsString(),
11544   //  xmd->getClassDef()->name().data());
11545
11546   if (g_exampleBlock)
11547   {
11548     QCString anchor;
11549     anchor.sprintf("a%d",g_anchorCount);
11550     //printf("addExampleFile(%s,%s,%s)\n",anchor.data(),g_exampleName.data(),
11551     //                                  g_exampleFile.data());
11552     if (xmd->addExample(anchor,g_exampleName,g_exampleFile))
11553     {
11554       ol.writeCodeAnchor(anchor);
11555       g_anchorCount++;
11556     }
11557   }
11558
11559   ClassDef *typeClass = stripClassName(removeAnonymousScopes(xmd->typeString()),xmd->getOuterScope());
11560   //fprintf(stderr,"%s -> typeName=%p\n",xmd->typeString(),typeClass);
11561   g_theCallContext.setClass(typeClass);
11562
11563   Definition *xd = xmd->getOuterScope()==Doxygen::globalScope ?
11564     xmd->getBodyDef() : xmd->getOuterScope();
11565   if (xmd->getGroupDef()) xd = xmd->getGroupDef();
11566   if (xd && xd->isLinkable())
11567   {
11568
11569     //printf("g_currentDefiniton=%p g_currentMemberDef=%p xmd=%p g_insideBody=%d\n",g_currentDefinition,g_currentMemberDef,xmd,g_insideBody);
11570
11571     if (xmd->templateMaster()) xmd = xmd->templateMaster();
11572
11573     if (xmd->isLinkable())
11574     {
11575       // add usage reference
11576       if (g_currentDefinition && g_currentMemberDef &&
11577           /*xmd!=g_currentMemberDef &&*/ g_insideBody)
11578       {
11579         addDocCrossReference(g_currentMemberDef,xmd);
11580       }
11581
11582       // write the actual link
11583       ol.linkableSymbol(g_yyLineNr,xmd->name(),xmd,
11584           g_currentMemberDef ? g_currentMemberDef : g_currentDefinition);
11585       writeMultiLineCodeLink(ol,xmd->getReference(),
11586           xmd->getOutputFileBase(),xmd->anchor(),memName,xmd->briefDescriptionAsTooltip());
11587       addToSearchIndex(memName);
11588       return TRUE;
11589     }
11590   }
11591
11592   return FALSE;
11593 }
11594
11595 static bool generateClassMemberLink(CodeOutputInterface &ol,ClassDef *mcd,const char *memName)
11596 {
11597   if (mcd)
11598   {
11599     MemberDef *xmd = mcd->getMemberByName(memName);
11600     //printf("generateClassMemberLink(class=%s,member=%s)=%p\n",mcd->name().data(),memName,xmd);
11601     if (xmd)
11602     {
11603       return generateClassMemberLink(ol,xmd,memName);
11604     }
11605   }
11606   
11607   return FALSE;
11608 }
11609
11610 static void generateMemberLink(CodeOutputInterface &ol,const QCString &varName,
11611             char *memName)
11612 {
11613   //printf("generateMemberLink(object=%s,mem=%s) classScope=%s\n",
11614   //    varName.data(),memName,g_classScope.data());
11615
11616   if (varName.isEmpty()) return;
11617
11618   // look for the variable in the current context
11619   ClassDef *vcd = g_theVarContext.findVariable(varName);
11620   if (vcd) 
11621   {
11622     if (vcd!=VariableContext::dummyContext)
11623     {
11624       //printf("Class found!\n");
11625       if (getLink(vcd->name(),memName,ol)) 
11626       {
11627         //printf("Found result!\n");
11628         return;
11629       }
11630       if (vcd->baseClasses())
11631       {
11632         BaseClassListIterator bcli(*vcd->baseClasses());
11633         for ( ; bcli.current() ; ++bcli)
11634         {
11635           if (getLink(bcli.current()->classDef->name(),memName,ol)) 
11636           {
11637             //printf("Found result!\n");
11638             return;
11639           }
11640         }
11641       }
11642     }
11643   }
11644   else // variable not in current context, maybe it is in a parent context
11645   {
11646     vcd = getResolvedClass(g_currentDefinition,g_sourceFileDef,g_classScope);
11647     if (vcd && vcd->isLinkable())
11648     {
11649       //printf("Found class %s for variable `%s'\n",g_classScope.data(),varName.data());
11650       MemberName *vmn=Doxygen::memberNameSDict->find(varName);
11651       if (vmn==0)
11652       {
11653         int vi;
11654         QCString vn=varName;
11655         QCString scope;
11656         if ((vi=vn.findRev("::"))!=-1 || (vi=vn.findRev('.'))!=-1)  // explicit scope A::b(), probably static member
11657         {
11658           ClassDef *jcd = getClass(vn.left(vi));
11659           vn=vn.right(vn.length()-vi-2);
11660           vmn=Doxygen::memberNameSDict->find(vn);
11661           //printf("Trying name `%s' scope=%s\n",vn.data(),scope.data());
11662           if (vmn)
11663           {
11664             MemberNameIterator vmni(*vmn);
11665             MemberDef *vmd;
11666             for (;(vmd=vmni.current());++vmni)
11667             {
11668               if (/*(vmd->isVariable() || vmd->isFunction()) && */
11669                   vmd->getClassDef()==jcd)
11670               {
11671                 //printf("Found variable type=%s\n",vmd->typeString());
11672                 ClassDef *mcd=stripClassName(vmd->typeString(),vmd->getOuterScope());
11673                 if (mcd && mcd->isLinkable())
11674                 {
11675                   if (generateClassMemberLink(ol,mcd,memName)) return;
11676                 }
11677               }
11678             }
11679           }
11680         }
11681       }
11682       if (vmn)
11683       {
11684         //printf("There is a variable with name `%s'\n",varName);
11685         MemberNameIterator vmni(*vmn);
11686         MemberDef *vmd;
11687         for (;(vmd=vmni.current());++vmni)
11688         {
11689           if (/*(vmd->isVariable() || vmd->isFunction()) && */
11690               vmd->getClassDef()==vcd)
11691           {
11692             //printf("Found variable type=%s\n",vmd->typeString());
11693             ClassDef *mcd=stripClassName(vmd->typeString(),vmd->getOuterScope());
11694             if (mcd && mcd->isLinkable())
11695             {
11696               if (generateClassMemberLink(ol,mcd,memName)) return;
11697             }
11698           }
11699         }
11700       }
11701     }
11702   }
11703   // nothing found -> write result as is
11704   ol.linkableSymbol(g_yyLineNr,memName,0,
11705                     g_currentMemberDef?g_currentMemberDef:g_currentDefinition);
11706   codifyLines(memName);
11707   addToSearchIndex(memName);
11708   return;
11709 }
11710
11711 static void generatePHPVariableLink(CodeOutputInterface &ol,const char *varName)
11712 {
11713   QCString name = varName+7; // strip $this->
11714   name.prepend("$");
11715   //printf("generatePHPVariableLink(%s) name=%s scope=%s\n",varName,name.data(),g_classScope.data());
11716   if (!getLink(g_classScope,name,ol,varName))
11717   {
11718     codifyLines(varName);
11719   }
11720 }
11721
11722 static void generateFunctionLink(CodeOutputInterface &ol,const char *funcName)
11723 {
11724   //CodeClassDef *ccd=0;
11725   ClassDef *ccd=0;
11726   QCString locScope=g_classScope;
11727   QCString locFunc=removeRedundantWhiteSpace(funcName);
11728   QCString funcScope;
11729   QCString funcWithScope=locFunc;
11730   QCString funcWithFullScope=locFunc;
11731   QCString fullScope=locScope;
11732   //fprintf(stdout,"*** locScope=%s locFunc=%s\n",locScope.data(),locFunc.data());
11733   int len=2;
11734   int i=locFunc.findRev("::");
11735   if (g_currentMemberDef && g_currentMemberDef->getClassDef() &&
11736       funcName==g_currentMemberDef->localName() && 
11737       g_currentMemberDef->getDefLine()==g_yyLineNr &&
11738       generateClassMemberLink(ol,g_currentMemberDef,funcName)
11739      )
11740   {
11741     // special case where funcName is the name of a method that is also
11742     // defined on this line. In this case we can directly link to 
11743     // g_currentMemberDef, which is not only faster, but
11744     // in case of overloaded methods, this will make sure that we link to
11745     // the correct method, and thereby get the correct reimplemented relations.
11746     // See also bug 549022.
11747     goto exit;
11748   }
11749   if (i==-1) i=locFunc.findRev("."),len=1;
11750   if (i==-1) i=locFunc.findRev("\\"),len=1; // for PHP
11751   if (i>0)
11752   {
11753     funcScope=locFunc.left(i);
11754     locFunc=locFunc.right(locFunc.length()-i-len).stripWhiteSpace();
11755     int ts=locScope.find('<'); // start of template
11756     int te=locScope.findRev('>'); // end of template
11757     //printf("ts=%d te=%d\n",ts,te);
11758     if (ts!=-1 && te!=-1 && te>ts)
11759     {
11760       // remove template from scope
11761       locScope=locScope.left(ts)+locScope.right(locScope.length()-te-1);
11762     }
11763     ts=funcScope.find('<'); // start of template
11764     te=funcScope.findRev('>'); // end of template
11765     //printf("ts=%d te=%d\n",ts,te);
11766     if (ts!=-1 && te!=-1 && te>ts)
11767     {
11768       // remove template from scope
11769       funcScope=funcScope.left(ts)+funcScope.right(funcScope.length()-te-1);
11770     }
11771     if (!funcScope.isEmpty())
11772     {
11773       funcWithScope = funcScope+"::"+locFunc;
11774       if (!locScope.isEmpty())
11775       {
11776         fullScope=locScope+"::"+funcScope;
11777       }
11778     }
11779     if (!locScope.isEmpty())
11780     {
11781       funcWithFullScope = locScope+"::"+funcWithScope;
11782     }
11783   }
11784   if (!fullScope.isEmpty() && (ccd=g_codeClassSDict->find(fullScope)))
11785   {
11786     //printf("using classScope %s\n",g_classScope.data());
11787     if (ccd->baseClasses())
11788     {
11789       BaseClassListIterator bcli(*ccd->baseClasses());
11790       for ( ; bcli.current() ; ++bcli)
11791       {
11792         if (getLink(bcli.current()->classDef->name(),locFunc,ol,funcName)) 
11793         {
11794           goto exit;
11795         }
11796       }
11797     }
11798   }
11799   if (!locScope.isEmpty() && fullScope!=locScope && (ccd=g_codeClassSDict->find(locScope)))
11800   {
11801     //printf("using classScope %s\n",g_classScope.data());
11802     if (ccd->baseClasses())
11803     {
11804       BaseClassListIterator bcli(*ccd->baseClasses());
11805       for ( ; bcli.current() ; ++bcli)
11806       {
11807         if (getLink(bcli.current()->classDef->name(),funcWithScope,ol,funcName)) 
11808         {
11809           goto exit;
11810         }
11811       }
11812     }
11813   }
11814   if (!getLink(locScope,funcWithScope,ol,funcName))
11815   {
11816     generateClassOrGlobalLink(ol,funcName);
11817   }
11818 exit:  
11819   g_forceTagReference.resize(0);
11820   return;
11821 }
11822
11823 /*! counts the number of lines in the input */
11824 static int countLines()
11825 {
11826   const char *p=g_inputString;
11827   char c;
11828   int count=1;
11829   while ((c=*p)) 
11830   { 
11831     p++ ; 
11832     if (c=='\n') count++;  
11833   }
11834   if (p>g_inputString && *(p-1)!='\n') 
11835   { // last line does not end with a \n, so we add an extra
11836     // line and explicitly terminate the line after parsing.
11837     count++, 
11838     g_needsTermination=TRUE; 
11839   } 
11840   return count;
11841 }
11842
11843 static void endFontClass()
11844 {
11845   if (g_currentFontClass)
11846   {
11847     g_code->endFontClass();
11848     g_currentFontClass=0;
11849   }
11850 }
11851
11852 static void startFontClass(const char *s)
11853 {
11854   endFontClass();
11855   g_code->startFontClass(s);
11856   g_currentFontClass=s;
11857 }
11858
11859 //----------------------------------------------------------------------------
11860
11861 // recursively writes a linkified Objective-C method call
11862 static void writeObjCMethodCall(ObjCCallCtx *ctx)
11863 {
11864   if (ctx==0) return;
11865   char c;
11866   const char *p = ctx->format.data();
11867   if (!ctx->methodName.isEmpty())
11868   {
11869     //printf("writeObjCMethodCall(%s) obj=%s method=%s\n",
11870     //    ctx->format.data(),ctx->objectTypeOrName.data(),ctx->methodName.data());
11871     if (!ctx->objectTypeOrName.isEmpty() && ctx->objectTypeOrName.at(0)!='$')
11872     {
11873       //printf("Looking for object=%s method=%s\n",ctx->objectTypeOrName.data(),
11874       //        ctx->methodName.data());
11875       ClassDef *cd = g_theVarContext.findVariable(ctx->objectTypeOrName);
11876       if (cd==0) // not a local variable
11877       {
11878         if (ctx->objectTypeOrName=="self")
11879         {
11880           if (g_currentDefinition && 
11881               g_currentDefinition->definitionType()==Definition::TypeClass)
11882           {
11883             ctx->objectType = (ClassDef *)g_currentDefinition;
11884           }
11885         }
11886         else
11887         {
11888           ctx->objectType = getResolvedClass(
11889               g_currentDefinition,
11890               g_sourceFileDef,
11891               ctx->objectTypeOrName,
11892               &ctx->method);
11893         }
11894         //printf("  object is class? %p\n",ctx->objectType);
11895         if (ctx->objectType) // found class
11896         {
11897           ctx->method = ctx->objectType->getMemberByName(ctx->methodName);
11898           //printf("    yes->method=%s\n",ctx->method?ctx->method->name().data():"<none>");
11899         }
11900         else if (ctx->method==0) // search for class variable with the same name
11901         {
11902           //printf("    no\n");
11903           //printf("g_currentDefinition=%p\n",g_currentDefinition);
11904           if (g_currentDefinition && 
11905               g_currentDefinition->definitionType()==Definition::TypeClass)
11906           {
11907             ctx->objectVar = ((ClassDef *)g_currentDefinition)->getMemberByName(ctx->objectTypeOrName);
11908             //printf("      ctx->objectVar=%p\n",ctx->objectVar);
11909             if (ctx->objectVar)
11910             {
11911               ctx->objectType = stripClassName(ctx->objectVar->typeString());
11912               //printf("        ctx->objectType=%p\n",ctx->objectType);
11913               if (ctx->objectType)
11914               {
11915                 ctx->method = ctx->objectType->getMemberByName(ctx->methodName);
11916                 //printf("          ctx->method=%p\n",ctx->method);
11917               }
11918             }
11919           }
11920         }
11921       }
11922       else // local variable
11923       {
11924         //printf("  object is local variable\n");
11925         if (cd!=VariableContext::dummyContext)
11926         {
11927           ctx->method = cd->getMemberByName(ctx->methodName);
11928           //printf("   class=%p method=%p\n",cd,ctx->method);
11929         }
11930       }
11931     }
11932   }
11933
11934   //printf("[");
11935   while ((c=*p++)) // for each character in ctx->format
11936   {
11937     if (c=='$')
11938     {
11939       char nc=*p++;
11940       if (nc=='$') // escaped $
11941       {
11942         g_code->codify("$");
11943       }
11944       else // name fragment or reference to a nested call 
11945       {
11946         if (nc=='n') // name fragment
11947         {
11948           nc=*p++;
11949           QCString refIdStr;
11950           while (nc!=0 && isdigit(nc)) { refIdStr+=nc; nc=*p++; }
11951           p--;
11952           int refId=refIdStr.toInt();
11953           QCString *pName = g_nameDict.find(refId);
11954           if (pName)
11955           {
11956             if (ctx->method && ctx->method->isLinkable())
11957             {
11958               g_code->linkableSymbol(g_yyLineNr,ctx->method->name(),ctx->method,
11959                             g_currentMemberDef ? g_currentMemberDef : g_currentDefinition);
11960               writeMultiLineCodeLink(*g_code,
11961                                      ctx->method->getReference(),
11962                                      ctx->method->getOutputFileBase(),
11963                                      ctx->method->anchor(),
11964                                      pName->data(),
11965                                      ctx->method->briefDescriptionAsTooltip());
11966               if (g_currentMemberDef)
11967               {
11968                 addDocCrossReference(g_currentMemberDef,ctx->method);
11969               }
11970             }
11971             else
11972             {
11973               g_code->linkableSymbol(g_yyLineNr,pName->data(),0,
11974                             g_currentMemberDef ? g_currentMemberDef : g_currentDefinition);
11975               codifyLines(pName->data());
11976             }
11977           }
11978           else
11979           {
11980             //printf("Invalid name: id=%d\n",refId);
11981           }
11982         }
11983         else if (nc=='o') // reference to potential object name
11984         {
11985           nc=*p++;
11986           QCString refIdStr;
11987           while (nc!=0 && isdigit(nc)) { refIdStr+=nc; nc=*p++; }
11988           p--;
11989           int refId=refIdStr.toInt();
11990           QCString *pObject = g_objectDict.find(refId);
11991           if (pObject)
11992           {
11993             if (*pObject=="self")
11994             {
11995               if (g_currentDefinition && 
11996                   g_currentDefinition->definitionType()==Definition::TypeClass)
11997               {
11998                 ctx->objectType = (ClassDef *)g_currentDefinition;
11999                 if (ctx->objectType->categoryOf()) 
12000                 {
12001                   ctx->objectType = ctx->objectType->categoryOf();
12002                 }
12003                 if (ctx->objectType)
12004                 {
12005                   ctx->method = ctx->objectType->getMemberByName(ctx->methodName);
12006                 }
12007               }
12008               startFontClass("keyword");
12009               codifyLines(pObject->data());
12010               endFontClass();
12011             }
12012             else if (*pObject=="super")
12013             {
12014               if (g_currentDefinition &&
12015                   g_currentDefinition->definitionType()==Definition::TypeClass)
12016               {
12017                 ClassDef *cd = (ClassDef *)g_currentDefinition;
12018                 if (cd->categoryOf()) 
12019                 {
12020                   cd = cd->categoryOf();
12021                 }
12022                 BaseClassList *bcd = cd->baseClasses();
12023                 if (bcd) // get direct base class (there should be only one)
12024                 {
12025                   BaseClassListIterator bli(*bcd);
12026                   BaseClassDef *bclass;
12027                   for (bli.toFirst();(bclass=bli.current());++bli)
12028                   {
12029                     if (bclass->classDef->compoundType()!=ClassDef::Protocol)
12030                     {
12031                       ctx->objectType = bclass->classDef;
12032                       if (ctx->objectType)
12033                       {
12034                         ctx->method = ctx->objectType->getMemberByName(ctx->methodName);
12035                       }
12036                     }
12037                   }
12038                 }
12039               }
12040               startFontClass("keyword");
12041               codifyLines(pObject->data());
12042               endFontClass();
12043             }
12044             else if (ctx->objectVar && ctx->objectVar->isLinkable()) // object is class variable
12045             {
12046               g_code->linkableSymbol(g_yyLineNr,ctx->objectVar->name(),ctx->objectVar,
12047                             g_currentMemberDef ? g_currentMemberDef : g_currentDefinition);
12048               writeMultiLineCodeLink(*g_code,
12049                     ctx->objectVar->getReference(),
12050                     ctx->objectVar->getOutputFileBase(),
12051                     ctx->objectVar->anchor(),
12052                     pObject->data(),
12053                     ctx->objectVar->briefDescriptionAsTooltip());
12054               if (g_currentMemberDef)
12055               {
12056                 addDocCrossReference(g_currentMemberDef,ctx->objectVar);
12057               }
12058             }
12059             else if (ctx->objectType && 
12060                      ctx->objectType!=VariableContext::dummyContext && 
12061                      ctx->objectType->isLinkable()
12062                     ) // object is class name
12063             {
12064               ClassDef *cd = ctx->objectType;
12065               g_code->linkableSymbol(g_yyLineNr,cd->name(),cd,
12066                             g_currentMemberDef ? g_currentMemberDef : g_currentDefinition);
12067               writeMultiLineCodeLink(*g_code,
12068                     cd->getReference(),
12069                     cd->getOutputFileBase(),
12070                     cd->anchor(),
12071                     pObject->data(),
12072                     cd->briefDescriptionAsTooltip());
12073             }
12074             else // object still needs to be resolved
12075             {
12076               ClassDef *cd = getResolvedClass(g_currentDefinition, 
12077                   g_sourceFileDef, *pObject);
12078               if (cd && cd->isLinkable())
12079               {
12080                 if (ctx->objectType==0) ctx->objectType=cd;
12081                 g_code->linkableSymbol(g_yyLineNr,cd->name(),cd,
12082                             g_currentMemberDef ? g_currentMemberDef : g_currentDefinition);
12083                 writeMultiLineCodeLink(*g_code,
12084                     cd->getReference(),
12085                     cd->getOutputFileBase(),
12086                     cd->anchor(),
12087                     pObject->data(),
12088                     cd->briefDescriptionAsTooltip());
12089               }
12090               else
12091               {
12092                 g_code->linkableSymbol(g_yyLineNr,pObject->data(),0,
12093                             g_currentMemberDef ? g_currentMemberDef : g_currentDefinition);
12094                 codifyLines(pObject->data());
12095               }
12096             }
12097           }
12098           else
12099           {
12100             //printf("Invalid object: id=%d\n",refId);
12101           }
12102         }
12103         else if (nc=='c') // reference to nested call
12104         {
12105           nc=*p++;
12106           QCString refIdStr;
12107           while (nc!=0 && isdigit(nc)) { refIdStr+=nc; nc=*p++; }
12108           p--;
12109           int refId=refIdStr.toInt();
12110           ObjCCallCtx *ictx = g_contextDict.find(refId);
12111           if (ictx) // recurse into nested call
12112           {
12113             writeObjCMethodCall(ictx);
12114             if (ictx->method) // link to nested call successfully
12115             {
12116               // get the ClassDef representing the method's return type
12117               if (QCString(ictx->method->typeString())=="id")
12118               {
12119                 // see if the method name is unique, if so we link to it
12120                 MemberName *mn=Doxygen::memberNameSDict->find(ctx->methodName);
12121                 //printf("mn->count=%d ictx->method=%s ctx->methodName=%s\n",
12122                 //    mn==0?-1:(int)mn->count(),
12123                 //    ictx->method->name().data(),
12124                 //    ctx->methodName.data());
12125                 if (mn && mn->count()==1) // member name unique
12126                 {
12127                   ctx->method = mn->getFirst();
12128                 }
12129               } 
12130               else
12131               {
12132                 ctx->objectType = stripClassName(ictx->method->typeString());
12133                 if (ctx->objectType)
12134                 {
12135                   ctx->method = ctx->objectType->getMemberByName(ctx->methodName);
12136                 }
12137               }
12138               //printf("  ***** method=%s -> object=%p\n",ictx->method->name().data(),ctx->objectType);
12139             }
12140           }
12141           else
12142           {
12143             //printf("Invalid context: id=%d\n",refId);
12144           }
12145         }
12146         else if (nc=='w') // some word
12147         {
12148           nc=*p++;
12149           QCString refIdStr;
12150           while (nc!=0 && isdigit(nc)) { refIdStr+=nc; nc=*p++; }
12151           p--;
12152           int refId=refIdStr.toInt();
12153           QCString *pWord = g_wordDict.find(refId);
12154           if (pWord)
12155           {
12156             g_code->linkableSymbol(g_yyLineNr,pWord->data(),0,
12157                          g_currentMemberDef ? g_currentMemberDef : g_currentDefinition);
12158             codifyLines(pWord->data());
12159           }
12160         }
12161         else // illegal marker
12162         {
12163           ASSERT(!"invalid escape sequence");
12164         }
12165       }
12166     }
12167     else // normal non-marker character
12168     {
12169       char s[2];
12170       s[0]=c;s[1]=0;
12171       codifyLines(s);
12172     }
12173   }  
12174   //printf("%s %s]\n",ctx->objectTypeOrName.data(),ctx->methodName.data());
12175   //printf("}=(type='%s',name='%s')",
12176   //    ctx->objectTypeOrName.data(),
12177   //    ctx->methodName.data());
12178 }
12179
12180 // Replaces an Objective-C method name fragment s by a marker of the form
12181 // $n12, the number (12) can later be used as a key for obtaining the name 
12182 // fragment, from g_nameDict
12183 static QCString escapeName(const char *s)
12184 {
12185   QCString result;
12186   result.sprintf("$n%d",g_currentNameId);
12187   g_nameDict.insert(g_currentNameId,new QCString(s));
12188   g_currentNameId++;
12189   return result;
12190 }
12191
12192 static QCString escapeObject(const char *s)
12193 {
12194   QCString result;
12195   result.sprintf("$o%d",g_currentObjId);
12196   g_objectDict.insert(g_currentObjId,new QCString(s));
12197   g_currentObjId++;
12198   return result;
12199 }
12200
12201 static QCString escapeWord(const char *s)
12202 {
12203   QCString result;
12204   result.sprintf("$w%d",g_currentWordId);
12205   g_wordDict.insert(g_currentWordId,new QCString(s));
12206   g_currentWordId++;
12207   return result;
12208 }
12209
12210 /* -----------------------------------------------------------------
12211  */
12212 #undef  YY_INPUT
12213 #define YY_INPUT(buf,result,max_size) result=yyread(buf,max_size);
12214
12215 static int yyread(char *buf,int max_size)
12216 {
12217     int c=0;
12218     while( c < max_size && g_inputString[g_inputPosition] )
12219     {
12220         *buf = g_inputString[g_inputPosition++] ;
12221         c++; buf++;
12222     }
12223     return c;
12224 }
12225
12226
12227
12228
12229
12230
12231
12232
12233
12234
12235
12236
12237
12238
12239
12240
12241
12242
12243
12244
12245
12246
12247
12248
12249
12250
12251
12252
12253
12254
12255
12256
12257
12258 #line 12259 "<stdout>"
12259
12260 #define INITIAL 0
12261 #define SkipString 1
12262 #define SkipStringS 2
12263 #define SkipVerbString 3
12264 #define SkipCPP 4
12265 #define SkipComment 5
12266 #define SkipCxxComment 6
12267 #define RemoveSpecialCComment 7
12268 #define StripSpecialCComment 8
12269 #define Body 9
12270 #define FuncCall 10
12271 #define MemberCall 11
12272 #define MemberCall2 12
12273 #define SkipInits 13
12274 #define ClassName 14
12275 #define PackageName 15
12276 #define ClassVar 16
12277 #define CppCliTypeModifierFollowup 17
12278 #define Bases 18
12279 #define SkipSharp 19
12280 #define ReadInclude 20
12281 #define TemplDecl 21
12282 #define TemplCast 22
12283 #define CallEnd 23
12284 #define ObjCMethod 24
12285 #define ObjCParams 25
12286 #define ObjCParamType 26
12287 #define ObjCCall 27
12288 #define ObjCMName 28
12289 #define ObjCSkipStr 29
12290 #define OldStyleArgs 30
12291 #define UsingName 31
12292 #define RawString 32
12293
12294 #ifndef YY_NO_UNISTD_H
12295 /* Special case for "unistd.h", since it is non-ANSI. We include it way
12296  * down here because we want the user's section 1 to have been scanned first.
12297  * The user has a chance to override it with an option.
12298  */
12299 #include <unistd.h>
12300 #endif
12301
12302 #ifndef YY_EXTRA_TYPE
12303 #define YY_EXTRA_TYPE void *
12304 #endif
12305
12306 static int yy_init_globals (void );
12307
12308 /* Accessor methods to globals.
12309    These are made visible to non-reentrant scanners for convenience. */
12310
12311 int codeYYlex_destroy (void );
12312
12313 int codeYYget_debug (void );
12314
12315 void codeYYset_debug (int debug_flag  );
12316
12317 YY_EXTRA_TYPE codeYYget_extra (void );
12318
12319 void codeYYset_extra (YY_EXTRA_TYPE user_defined  );
12320
12321 FILE *codeYYget_in (void );
12322
12323 void codeYYset_in  (FILE * in_str  );
12324
12325 FILE *codeYYget_out (void );
12326
12327 void codeYYset_out  (FILE * out_str  );
12328
12329 yy_size_t codeYYget_leng (void );
12330
12331 char *codeYYget_text (void );
12332
12333 int codeYYget_lineno (void );
12334
12335 void codeYYset_lineno (int line_number  );
12336
12337 /* Macros after this point can all be overridden by user definitions in
12338  * section 1.
12339  */
12340
12341 #ifndef YY_SKIP_YYWRAP
12342 #ifdef __cplusplus
12343 extern "C" int codeYYwrap (void );
12344 #else
12345 extern int codeYYwrap (void );
12346 #endif
12347 #endif
12348
12349     static void yyunput (int c,char *buf_ptr  );
12350     
12351 #ifndef yytext_ptr
12352 static void yy_flex_strncpy (char *,yyconst char *,int );
12353 #endif
12354
12355 #ifdef YY_NEED_STRLEN
12356 static int yy_flex_strlen (yyconst char * );
12357 #endif
12358
12359 #ifndef YY_NO_INPUT
12360
12361 #ifdef __cplusplus
12362 static int yyinput (void );
12363 #else
12364 static int input (void );
12365 #endif
12366
12367 #endif
12368
12369 /* Amount of stuff to slurp up with each read. */
12370 #ifndef YY_READ_BUF_SIZE
12371 #define YY_READ_BUF_SIZE 262144
12372 #endif
12373
12374 /* Copy whatever the last rule matched to the standard output. */
12375 #ifndef ECHO
12376 /* This used to be an fputs(), but since the string might contain NUL's,
12377  * we now use fwrite().
12378  */
12379 #define ECHO fwrite( codeYYtext, codeYYleng, 1, codeYYout )
12380 #endif
12381
12382 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
12383  * is returned in "result".
12384  */
12385 #ifndef YY_INPUT
12386 #define YY_INPUT(buf,result,max_size) \
12387         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
12388                 { \
12389                 int c = '*'; \
12390                 yy_size_t n; \
12391                 for ( n = 0; n < max_size && \
12392                              (c = getc( codeYYin )) != EOF && c != '\n'; ++n ) \
12393                         buf[n] = (char) c; \
12394                 if ( c == '\n' ) \
12395                         buf[n++] = (char) c; \
12396                 if ( c == EOF && ferror( codeYYin ) ) \
12397                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
12398                 result = n; \
12399                 } \
12400         else \
12401                 { \
12402                 errno=0; \
12403                 while ( (result = fread(buf, 1, max_size, codeYYin))==0 && ferror(codeYYin)) \
12404                         { \
12405                         if( errno != EINTR) \
12406                                 { \
12407                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
12408                                 break; \
12409                                 } \
12410                         errno=0; \
12411                         clearerr(codeYYin); \
12412                         } \
12413                 }\
12414 \
12415
12416 #endif
12417
12418 /* No semi-colon after return; correct usage is to write "yyterminate();" -
12419  * we don't want an extra ';' after the "return" because that will cause
12420  * some compilers to complain about unreachable statements.
12421  */
12422 #ifndef yyterminate
12423 #define yyterminate() return YY_NULL
12424 #endif
12425
12426 /* Number of entries by which start-condition stack grows. */
12427 #ifndef YY_START_STACK_INCR
12428 #define YY_START_STACK_INCR 25
12429 #endif
12430
12431 /* Report a fatal error. */
12432 #ifndef YY_FATAL_ERROR
12433 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
12434 #endif
12435
12436 /* end tables serialization structures and prototypes */
12437
12438 /* Default declaration of generated scanner - a define so the user can
12439  * easily add parameters.
12440  */
12441 #ifndef YY_DECL
12442 #define YY_DECL_IS_OURS 1
12443
12444 extern int codeYYlex (void);
12445
12446 #define YY_DECL int codeYYlex (void)
12447 #endif /* !YY_DECL */
12448
12449 /* Code executed at the beginning of each rule, after codeYYtext and codeYYleng
12450  * have been set up.
12451  */
12452 #ifndef YY_USER_ACTION
12453 #define YY_USER_ACTION
12454 #endif
12455
12456 /* Code executed at the end of each rule. */
12457 #ifndef YY_BREAK
12458 #define YY_BREAK break;
12459 #endif
12460
12461 #define YY_RULE_SETUP \
12462         if ( codeYYleng > 0 ) \
12463                 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
12464                                 (codeYYtext[codeYYleng - 1] == '\n'); \
12465         YY_USER_ACTION
12466
12467 /** The main scanner function which does all the work.
12468  */
12469 YY_DECL
12470 {
12471         register yy_state_type yy_current_state;
12472         register char *yy_cp, *yy_bp;
12473         register int yy_act;
12474     
12475 #line 1866 "code.l"
12476
12477
12478 #line 12479 "<stdout>"
12479
12480         if ( !(yy_init) )
12481                 {
12482                 (yy_init) = 1;
12483
12484 #ifdef YY_USER_INIT
12485                 YY_USER_INIT;
12486 #endif
12487
12488         /* Create the reject buffer large enough to save one state per allowed character. */
12489         if ( ! (yy_state_buf) )
12490             (yy_state_buf) = (yy_state_type *)codeYYalloc(YY_STATE_BUF_SIZE  );
12491             if ( ! (yy_state_buf) )
12492                 YY_FATAL_ERROR( "out of dynamic memory in codeYYlex()" );
12493
12494                 if ( ! (yy_start) )
12495                         (yy_start) = 1; /* first start state */
12496
12497                 if ( ! codeYYin )
12498                         codeYYin = stdin;
12499
12500                 if ( ! codeYYout )
12501                         codeYYout = stdout;
12502
12503                 if ( ! YY_CURRENT_BUFFER ) {
12504                         codeYYensure_buffer_stack ();
12505                         YY_CURRENT_BUFFER_LVALUE =
12506                                 codeYY_create_buffer(codeYYin,YY_BUF_SIZE );
12507                 }
12508
12509                 codeYY_load_buffer_state( );
12510                 }
12511
12512         while ( 1 )             /* loops until end-of-file is reached */
12513                 {
12514                 yy_cp = (yy_c_buf_p);
12515
12516                 /* Support of codeYYtext. */
12517                 *yy_cp = (yy_hold_char);
12518
12519                 /* yy_bp points to the position in yy_ch_buf of the start of
12520                  * the current run.
12521                  */
12522                 yy_bp = yy_cp;
12523
12524                 yy_current_state = (yy_start);
12525                 yy_current_state += YY_AT_BOL();
12526
12527                 (yy_state_ptr) = (yy_state_buf);
12528                 *(yy_state_ptr)++ = yy_current_state;
12529
12530 yy_match:
12531                 do
12532                         {
12533                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
12534                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
12535                                 {
12536                                 yy_current_state = (int) yy_def[yy_current_state];
12537                                 if ( yy_current_state >= 3492 )
12538                                         yy_c = yy_meta[(unsigned int) yy_c];
12539                                 }
12540                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
12541                         *(yy_state_ptr)++ = yy_current_state;
12542                         ++yy_cp;
12543                         }
12544                 while ( yy_base[yy_current_state] != 35984 );
12545
12546 yy_find_action:
12547                 yy_current_state = *--(yy_state_ptr);
12548                 (yy_lp) = yy_accept[yy_current_state];
12549 goto find_rule; /* Shut up GCC warning -Wall */
12550 find_rule: /* we branch to this label when backing up */
12551                 for ( ; ; ) /* until we find what rule we matched */
12552                         {
12553                         if ( (yy_lp) && (yy_lp) < yy_accept[yy_current_state + 1] )
12554                                 {
12555                                 yy_act = yy_acclist[(yy_lp)];
12556                                 if ( yy_act & YY_TRAILING_HEAD_MASK ||
12557                                      (yy_looking_for_trail_begin) )
12558                                         {
12559                                         if ( yy_act == (yy_looking_for_trail_begin) )
12560                                                 {
12561                                                 (yy_looking_for_trail_begin) = 0;
12562                                                 yy_act &= ~YY_TRAILING_HEAD_MASK;
12563                                                 break;
12564                                                 }
12565                                         }
12566                                 else if ( yy_act & YY_TRAILING_MASK )
12567                                         {
12568                                         (yy_looking_for_trail_begin) = yy_act & ~YY_TRAILING_MASK;
12569                                         (yy_looking_for_trail_begin) |= YY_TRAILING_HEAD_MASK;
12570                                         (yy_full_match) = yy_cp;
12571                                         (yy_full_state) = (yy_state_ptr);
12572                                         (yy_full_lp) = (yy_lp);
12573                                         }
12574                                 else
12575                                         {
12576                                         (yy_full_match) = yy_cp;
12577                                         (yy_full_state) = (yy_state_ptr);
12578                                         (yy_full_lp) = (yy_lp);
12579                                         break;
12580                                         }
12581                                 ++(yy_lp);
12582                                 goto find_rule;
12583                                 }
12584                         --yy_cp;
12585                         yy_current_state = *--(yy_state_ptr);
12586                         (yy_lp) = yy_accept[yy_current_state];
12587                         }
12588
12589                 YY_DO_BEFORE_ACTION;
12590
12591 do_action:      /* This label is used only to access EOF actions. */
12592
12593                 switch ( yy_act )
12594         { /* beginning of action switch */
12595 case 1:
12596 YY_RULE_SETUP
12597 #line 1868 "code.l"
12598
12599         YY_BREAK
12600 case 2:
12601 YY_RULE_SETUP
12602 #line 1869 "code.l"
12603 {
12604                                           startFontClass("preprocessor");
12605                                           g_code->codify(codeYYtext);
12606                                           BEGIN( ReadInclude ); 
12607                                         }
12608         YY_BREAK
12609 case 3:
12610 /* rule 3 can match eol */
12611 YY_RULE_SETUP
12612 #line 1874 "code.l"
12613
12614                                           g_insideObjC=TRUE;
12615                                           startFontClass("keyword");
12616                                           codifyLines(codeYYtext);
12617                                           endFontClass();
12618                                           if (!g_insideTemplate) 
12619                                             BEGIN( ClassName ); 
12620                                         }
12621         YY_BREAK
12622 case 4:
12623 YY_RULE_SETUP
12624 #line 1882 "code.l"
12625 {
12626                                           if (g_insideTemplate) REJECT;
12627                                           startFontClass("keyword");
12628                                           codifyLines(codeYYtext);
12629                                           endFontClass();
12630                                           BEGIN( ClassName ); 
12631                                         }
12632         YY_BREAK
12633 case 5:
12634 /* rule 5 can match eol */
12635 YY_RULE_SETUP
12636 #line 1889 "code.l"
12637
12638                                           if (g_insideTemplate) REJECT;
12639                                           startFontClass("keyword");
12640                                           codifyLines(codeYYtext);
12641                                           endFontClass();
12642                                         }
12643         YY_BREAK
12644 case 6:
12645 YY_RULE_SETUP
12646 #line 1895 "code.l"
12647
12648                                           startFontClass("keyword");
12649                                           codifyLines(codeYYtext);
12650                                           endFontClass();
12651                                           if (!g_insideTemplate) 
12652                                             BEGIN( ClassName ); 
12653                                         }
12654         YY_BREAK
12655 case 7:
12656 /* rule 7 can match eol */
12657 YY_RULE_SETUP
12658 #line 1902 "code.l"
12659
12660                                           startFontClass("keyword");
12661                                           codifyLines(codeYYtext);
12662                                           endFontClass();
12663                                           BEGIN( PackageName ); 
12664                                         }
12665         YY_BREAK
12666 case 8:
12667 /* rule 8 can match eol */
12668 YY_RULE_SETUP
12669 #line 1908 "code.l"
12670 {
12671                                           if (!g_insideObjC) REJECT;
12672                                           codifyLines(codeYYtext);
12673                                           BEGIN(Body);
12674                                         }
12675         YY_BREAK
12676 case 9:
12677 YY_RULE_SETUP
12678 #line 1913 "code.l"
12679 {
12680                                           if (!g_insideObjC || g_insideBody)
12681                                           { 
12682                                             g_code->codify(codeYYtext);
12683                                           }
12684                                           else // Start of Objective-C method
12685                                           {
12686                                             //printf("Method!\n");
12687                                             g_code->codify(codeYYtext);
12688                                             BEGIN(ObjCMethod);
12689                                           }
12690                                         }
12691         YY_BREAK
12692 case 10:
12693 YY_RULE_SETUP
12694 #line 1925 "code.l"
12695 {
12696                                           g_code->codify(codeYYtext);
12697                                           BEGIN(ObjCParams);
12698                                         }
12699         YY_BREAK
12700 case 11:
12701 YY_RULE_SETUP
12702 #line 1929 "code.l"
12703 {
12704                                           g_code->codify(codeYYtext);
12705                                           BEGIN(ObjCParamType);
12706                                         }
12707         YY_BREAK
12708 case 12:
12709 YY_RULE_SETUP
12710 #line 1933 "code.l"
12711 {
12712                                           g_code->codify(codeYYtext);
12713                                           if (*codeYYtext=='{')
12714                                           {
12715                                             g_curlyCount++;
12716                                             if (g_searchingForBody)
12717                                             {
12718                                               g_searchingForBody=FALSE;
12719                                               g_insideBody=TRUE;
12720                                             }
12721                                             if (g_insideBody) g_bodyCurlyCount++;
12722                                             if (!g_curClassName.isEmpty()) // valid class name
12723                                             {
12724                                               pushScope(g_curClassName);
12725                                               DBG_CTX((stderr,"** scope stack push SCOPEBLOCK\n"));
12726                                               g_scopeStack.push(SCOPEBLOCK);
12727                                             }
12728                                           }
12729                                           g_type.resize(0);
12730                                           g_name.resize(0);
12731                                           BEGIN(Body);
12732                                         }
12733         YY_BREAK
12734 case 13:
12735 YY_RULE_SETUP
12736 #line 1955 "code.l"
12737 {
12738                                           g_code->codify(codeYYtext);
12739                                         }
12740         YY_BREAK
12741 case 14:
12742 YY_RULE_SETUP
12743 #line 1958 "code.l"
12744 {
12745                                           startFontClass("keywordtype");
12746                                           g_code->codify(codeYYtext);
12747                                           endFontClass();
12748                                           g_parmType=codeYYtext;
12749                                         }
12750         YY_BREAK
12751 case 15:
12752 YY_RULE_SETUP
12753 #line 1964 "code.l"
12754 {
12755                                           generateClassOrGlobalLink(*g_code,codeYYtext);
12756                                           g_parmType=codeYYtext;
12757                                         }
12758         YY_BREAK
12759 case 16:
12760 YY_RULE_SETUP
12761 #line 1968 "code.l"
12762 {
12763                                           g_code->codify(codeYYtext);
12764                                           BEGIN(ObjCParams);
12765                                         }
12766         YY_BREAK
12767 case 17:
12768 YY_RULE_SETUP
12769 #line 1972 "code.l"
12770 {
12771                                           g_code->linkableSymbol(g_yyLineNr,codeYYtext,0,
12772                                              g_currentMemberDef?g_currentMemberDef:g_currentDefinition);
12773                                           g_code->codify(codeYYtext);
12774                                           g_parmName=codeYYtext;
12775                                           g_theVarContext.addVariable(g_parmType,g_parmName);
12776                                           g_parmType.resize(0);g_parmName.resize(0);
12777                                         }
12778         YY_BREAK
12779 case 18:
12780 YY_RULE_SETUP
12781 #line 1980 "code.l"
12782 {
12783                                           generateClassOrGlobalLink(*g_code,codeYYtext);
12784                                         }
12785         YY_BREAK
12786 case 19:
12787 YY_RULE_SETUP
12788 #line 1983 "code.l"
12789 {
12790                                           g_code->codify(codeYYtext);
12791                                         }
12792         YY_BREAK
12793 case 20:
12794 /* rule 20 can match eol */
12795 YY_RULE_SETUP
12796 #line 1986 "code.l"
12797 {
12798                                           codifyLines(codeYYtext);
12799                                         }
12800         YY_BREAK
12801 case 21:
12802 YY_RULE_SETUP
12803 #line 1989 "code.l"
12804 {
12805                                           //FileInfo *f;
12806                                           bool ambig;
12807                                           bool found=FALSE;
12808                                           //QCString absPath = codeYYtext;
12809                                           //if (g_sourceFileDef && QDir::isRelativePath(absPath))
12810                                           //{
12811                                           //  absPath = QDir::cleanDirPath(g_sourceFileDef->getPath()+"/"+absPath);
12812                                           //}
12813
12814                                           FileDef *fd=findFileDef(Doxygen::inputNameDict,codeYYtext,ambig);
12815                                           //printf("looking for include %s -> %s fd=%p\n",codeYYtext,absPath.data(),fd);
12816                                           if (fd && fd->isLinkable())
12817                                           {
12818                                             if (ambig) // multiple input files match the name
12819                                             {
12820                                               //printf("===== yes %s is ambiguous\n",codeYYtext);
12821                                               QCString name = convertToQCString(QDir::cleanDirPath(codeYYtext));
12822                                               if (!name.isEmpty() && g_sourceFileDef)
12823                                               {
12824                                                 FileName *fn = Doxygen::inputNameDict->find(name);
12825                                                 if (fn)
12826                                                 {
12827                                                   FileNameIterator fni(*fn);
12828                                                   // for each include name
12829                                                   for (fni.toFirst();!found && (fd=fni.current());++fni)
12830                                                   {
12831                                                     // see if this source file actually includes the file
12832                                                     found = g_sourceFileDef->isIncluded(fd->absFilePath());
12833                                                     //printf("      include file %s found=%d\n",fd->absFilePath().data(),found);
12834                                                   }
12835                                                 }
12836                                               }
12837                                             }
12838                                             else // not ambiguous
12839                                             {
12840                                               found = TRUE;
12841                                             }
12842                                           }
12843                                           //printf("      include file %s found=%d\n",fd ? fd->absFilePath().data() : "<none>",found);
12844                                           if (found)
12845                                           {
12846                                             g_code->writeCodeLink(fd->getReference(),fd->getOutputFileBase(),0,codeYYtext,fd->briefDescriptionAsTooltip());
12847                                           }
12848                                           else
12849                                           {
12850                                             g_code->codify(codeYYtext);
12851                                           }
12852                                           char c=yyinput();
12853                                           QCString text;
12854                                           text+=c;
12855                                           g_code->codify(text);
12856                                           endFontClass();
12857                                           BEGIN( Body );
12858                                         }
12859         YY_BREAK
12860 case 22:
12861 YY_RULE_SETUP
12862 #line 2044 "code.l"
12863
12864                                           startFontClass("preprocessor");
12865                                           g_lastSkipCppContext = YY_START;
12866                                           g_code->codify(codeYYtext);
12867                                           BEGIN( SkipCPP ) ; 
12868                                         }
12869         YY_BREAK
12870 case 23:
12871 YY_RULE_SETUP
12872 #line 2050 "code.l"
12873
12874                                           g_code->codify(codeYYtext);
12875                                         }
12876         YY_BREAK
12877 case 24:
12878 YY_RULE_SETUP
12879 #line 2053 "code.l"
12880 {
12881                                           g_code->codify(codeYYtext);
12882                                         }
12883         YY_BREAK
12884 case 25:
12885 /* rule 25 can match eol */
12886 YY_RULE_SETUP
12887 #line 2056 "code.l"
12888
12889                                           codifyLines(codeYYtext);
12890                                         }
12891         YY_BREAK
12892 case 26:
12893 YY_RULE_SETUP
12894 #line 2059 "code.l"
12895
12896                                           g_code->codify(codeYYtext);
12897                                         }
12898         YY_BREAK
12899 case 27:
12900 YY_RULE_SETUP
12901 #line 2062 "code.l"
12902
12903                                           g_theVarContext.pushScope();
12904
12905                                           DBG_CTX((stderr,"** scope stack push INNERBLOCK\n"));
12906                                           g_scopeStack.push(INNERBLOCK);
12907
12908                                           if (g_searchingForBody)
12909                                           {
12910                                             g_searchingForBody=FALSE;
12911                                             g_insideBody=TRUE;
12912                                           }
12913                                           g_code->codify(codeYYtext);
12914                                           g_curlyCount++;
12915                                           if (g_insideBody) 
12916                                           {
12917                                             g_bodyCurlyCount++;
12918                                           }
12919                                           g_type.resize(0); 
12920                                           g_name.resize(0);
12921                                           BEGIN( Body );
12922                                         }
12923         YY_BREAK
12924 case 28:
12925 YY_RULE_SETUP
12926 #line 2083 "code.l"
12927
12928                                           g_theVarContext.popScope();
12929                                           g_type.resize(0); 
12930                                           g_name.resize(0);
12931
12932                                           int *scope = g_scopeStack.pop();
12933                                           DBG_CTX((stderr,"** scope stack pop SCOPEBLOCK=%d\n",scope==SCOPEBLOCK));
12934                                           if (scope==SCOPEBLOCK || scope==CLASSBLOCK) 
12935                                           {
12936                                             popScope();
12937                                           }
12938
12939                                           g_code->codify(codeYYtext);
12940
12941                                           //fprintf(stderr,"g_bodyCurlyCount=%d\n",g_bodyCurlyCount);
12942                                           if (--g_bodyCurlyCount<=0)
12943                                           {
12944                                             g_insideBody=FALSE;
12945                                             g_currentMemberDef=0;
12946                                             if (g_currentDefinition) 
12947                                               g_currentDefinition=g_currentDefinition->getOuterScope();
12948                                           }
12949                                           BEGIN(Body);
12950                                         }
12951         YY_BREAK
12952 case 29:
12953 YY_RULE_SETUP
12954 #line 2107 "code.l"
12955
12956                                           //printf("End of objc scope fd=%s\n",g_sourceFileDef->name().data());
12957                                           if (g_sourceFileDef)
12958                                           {
12959                                             FileDef *fd=g_sourceFileDef;
12960                                             g_insideObjC = fd->name().lower().right(2)==".m" || 
12961                                                            fd->name().lower().right(3)==".mm"; 
12962                                             //printf("insideObjC=%d\n",g_insideObjC);
12963                                           }
12964                                           else
12965                                           {
12966                                             g_insideObjC = FALSE;
12967                                           }
12968                                           if (g_insideBody)
12969                                           {
12970                                             g_theVarContext.popScope();
12971
12972                                             int *scope = g_scopeStack.pop();
12973                                             DBG_CTX((stderr,"** scope stack pop SCOPEBLOCK=%d\n",scope==SCOPEBLOCK));
12974                                             if (scope==SCOPEBLOCK || scope==CLASSBLOCK) 
12975                                             {
12976                                               popScope();
12977                                             }
12978                                             g_insideBody=FALSE;
12979                                           }
12980
12981                                           startFontClass("keyword");
12982                                           g_code->codify(codeYYtext);
12983                                           endFontClass();
12984
12985                                           g_currentMemberDef=0;
12986                                           if (g_currentDefinition) 
12987                                             g_currentDefinition=g_currentDefinition->getOuterScope();
12988                                           BEGIN(Body);
12989                                         }
12990         YY_BREAK
12991 case 30:
12992 YY_RULE_SETUP
12993 #line 2142 "code.l"
12994
12995                                           g_code->codify(codeYYtext);
12996                                           g_searchingForBody=FALSE; 
12997                                           BEGIN( Body ); 
12998                                         }
12999         YY_BREAK
13000 case 31:
13001 YY_RULE_SETUP
13002 #line 2147 "code.l"
13003 {
13004                                           g_type=g_curClassName.copy();
13005                                           g_name.resize(0);
13006                                           g_code->codify(codeYYtext);
13007                                           BEGIN( Body ); // variable of type struct *
13008                                         }
13009         YY_BREAK
13010 case 32:
13011 YY_RULE_SETUP
13012 #line 2153 "code.l"
13013 {
13014                                           startFontClass("keyword");
13015                                           g_code->codify(codeYYtext);
13016                                           endFontClass();
13017                                         }
13018         YY_BREAK
13019 case 33:
13020 YY_RULE_SETUP
13021 #line 2158 "code.l"
13022 {
13023                                           g_curClassName=codeYYtext;
13024                                           addType();
13025                                           generateClassOrGlobalLink(*g_code,codeYYtext);
13026                                           BEGIN( ClassVar );
13027                                         }
13028         YY_BREAK
13029 case 34:
13030 YY_RULE_SETUP
13031 #line 2164 "code.l"
13032 { // PHP namespace
13033                                           g_curClassName=substitute(codeYYtext,"\\","::");
13034                                           g_scopeStack.push(CLASSBLOCK);
13035                                           pushScope(g_curClassName);
13036                                           addType();
13037                                           generateClassOrGlobalLink(*g_code,codeYYtext);
13038                                           BEGIN( ClassVar );
13039                                         }
13040         YY_BREAK
13041 case 35:
13042 YY_RULE_SETUP
13043 #line 2172 "code.l"
13044 { // Obj-C category
13045                                           g_curClassName=removeRedundantWhiteSpace(codeYYtext);
13046                                           g_scopeStack.push(CLASSBLOCK);
13047                                           pushScope(g_curClassName);
13048                                           addType();
13049                                           generateClassOrGlobalLink(*g_code,codeYYtext);
13050                                           BEGIN( ClassVar );
13051                                         }
13052         YY_BREAK
13053 case 36:
13054 YY_RULE_SETUP
13055 #line 2180 "code.l"
13056 {
13057                                           g_curClassName=substitute(codeYYtext,".","::");
13058                                           //printf("found package: %s\n",g_curClassName.data());
13059                                           addType();
13060                                           codifyLines(codeYYtext);
13061                                         }
13062         YY_BREAK
13063 case 37:
13064 YY_RULE_SETUP
13065 #line 2186 "code.l"
13066 {
13067                                           unput(*codeYYtext);
13068                                           BEGIN( Body );
13069                                         }
13070         YY_BREAK
13071 case 38:
13072 YY_RULE_SETUP
13073 #line 2190 "code.l"
13074 { // Java
13075                                           startFontClass("keyword");
13076                                           codifyLines(codeYYtext);
13077                                           endFontClass();
13078                                           g_curClassBases.clear();
13079                                           BEGIN( Bases ); 
13080                                         }
13081         YY_BREAK
13082 case 39:
13083 /* rule 39 can match eol */
13084 YY_RULE_SETUP
13085 #line 2197 "code.l"
13086 {
13087                                           //fprintf(stderr,"***** C++/CLI modifier %s on g_curClassName=%s\n",codeYYtext,g_curClassName.data());
13088                                           startFontClass("keyword");
13089                                           codifyLines(codeYYtext);
13090                                           endFontClass();
13091                                           BEGIN( CppCliTypeModifierFollowup ); 
13092                                         }
13093         YY_BREAK
13094 case 40:
13095 YY_RULE_SETUP
13096 #line 2204 "code.l"
13097 {
13098                                           g_type = g_curClassName.copy();
13099                                           g_name = codeYYtext;
13100                                           if (g_insideBody)
13101                                           {
13102                                             g_theVarContext.addVariable(g_type,g_name);
13103                                           }
13104                                           generateClassOrGlobalLink(*g_code,codeYYtext);
13105                                         }
13106         YY_BREAK
13107 case 41:
13108 YY_RULE_SETUP
13109 #line 2213 "code.l"
13110 {
13111                                           codifyLines(codeYYtext);
13112                                           g_curClassBases.clear();
13113                                           BEGIN( Bases ); 
13114                                         }
13115         YY_BREAK
13116 case 42:
13117 #line 2219 "code.l"
13118 case 43:
13119 #line 2220 "code.l"
13120 case 44:
13121 YY_RULE_SETUP
13122 #line 2220 "code.l"
13123 {
13124                                           g_theVarContext.pushScope();
13125                                           g_code->codify(codeYYtext);
13126                                           g_curlyCount++;
13127                                           if (YY_START==ClassVar && g_curClassName.isEmpty())
13128                                           {
13129                                             g_curClassName = g_name.copy();
13130                                           }
13131                                           if (g_searchingForBody)
13132                                           {
13133                                             g_searchingForBody=FALSE;
13134                                             g_insideBody=TRUE;
13135                                           }
13136                                           if (g_insideBody) g_bodyCurlyCount++;
13137                                           if (!g_curClassName.isEmpty()) // valid class name
13138                                           {
13139                                             DBG_CTX((stderr,"** scope stack push CLASSBLOCK\n"));
13140                                             g_scopeStack.push(CLASSBLOCK);
13141                                             pushScope(g_curClassName);
13142                                             //fprintf(stderr,"***** g_curClassName=%s\n",g_curClassName.data());
13143                                             if (getResolvedClass(g_currentDefinition,g_sourceFileDef,g_curClassName)==0)
13144                                             {
13145                                               //fprintf(stderr,"Adding new class %s\n",g_curClassName.data());
13146                                               ClassDef *ncd=new ClassDef("<code>",1,
13147                                                   g_curClassName,ClassDef::Class,0,0,FALSE);
13148                                               g_codeClassSDict->append(g_curClassName,ncd);
13149                                               // insert base classes.
13150                                               char *s=g_curClassBases.first();
13151                                               while (s)
13152                                               {
13153                                                 ClassDef *bcd;
13154                                                 bcd=g_codeClassSDict->find(s);
13155                                                 if (bcd==0) bcd=getResolvedClass(g_currentDefinition,g_sourceFileDef,s);
13156                                                 if (bcd && bcd!=ncd)
13157                                                 {
13158                                                   ncd->insertBaseClass(bcd,s,Public,Normal);
13159                                                 }
13160                                                 s=g_curClassBases.next();
13161                                               }
13162                                             }
13163                                             //printf("g_codeClassList.count()=%d\n",g_codeClassList.count());
13164                                           }
13165                                           else // not a class name -> assume inner block
13166                                           {
13167                                             DBG_CTX((stderr,"** scope stack push INNERBLOCK\n"));
13168                                             g_scopeStack.push(INNERBLOCK);
13169                                           }
13170                                           g_curClassName.resize(0);
13171                                           g_curClassBases.clear();
13172                                           BEGIN( Body );
13173                                         }
13174         YY_BREAK
13175 case 45:
13176 YY_RULE_SETUP
13177 #line 2271 "code.l"
13178
13179                                           startFontClass("keyword");
13180                                           g_code->codify(codeYYtext);
13181                                           endFontClass();
13182                                         }
13183         YY_BREAK
13184 case 46:
13185 YY_RULE_SETUP
13186 #line 2276 "code.l"
13187
13188                                           //fprintf(stderr,"%s:addBase(%s)\n",g_curClassName.data(),codeYYtext);
13189                                           g_curClassBases.inSort(codeYYtext); 
13190                                           generateClassOrGlobalLink(*g_code,codeYYtext);
13191                                         }
13192         YY_BREAK
13193 case 47:
13194 YY_RULE_SETUP
13195 #line 2281 "code.l"
13196
13197                                           g_code->codify(codeYYtext);
13198                                           if (!g_insideObjC)
13199                                           {
13200                                             g_sharpCount=1;
13201                                             BEGIN ( SkipSharp );
13202                                           }
13203                                           else
13204                                           {
13205                                             g_insideProtocolList=TRUE;
13206                                           }
13207                                         }
13208         YY_BREAK
13209 case 48:
13210 YY_RULE_SETUP
13211 #line 2293 "code.l"
13212 {
13213                                           g_code->codify(codeYYtext);
13214                                           g_insideProtocolList=FALSE;
13215                                         }
13216         YY_BREAK
13217 case 49:
13218 YY_RULE_SETUP
13219 #line 2297 "code.l"
13220 {
13221                                           g_code->codify(codeYYtext);
13222                                           ++g_sharpCount; 
13223                                         }
13224         YY_BREAK
13225 case 50:
13226 YY_RULE_SETUP
13227 #line 2301 "code.l"
13228
13229                                           g_code->codify(codeYYtext);
13230                                           if (--g_sharpCount<=0)
13231                                           BEGIN ( Bases );
13232                                         }
13233         YY_BREAK
13234 case 51:
13235 YY_RULE_SETUP
13236 #line 2306 "code.l"
13237 {
13238                                           g_code->codify(codeYYtext);
13239                                           g_sharpCount=1;
13240                                           BEGIN ( SkipSharp );
13241                                         }
13242         YY_BREAK
13243 case 52:
13244 YY_RULE_SETUP
13245 #line 2311 "code.l"
13246 {
13247                                           g_code->codify(codeYYtext);
13248                                           ++g_sharpCount;
13249                                         }
13250         YY_BREAK
13251 case 53:
13252 YY_RULE_SETUP
13253 #line 2315 "code.l"
13254 {
13255                                           g_code->codify(codeYYtext);
13256                                           if (--g_sharpCount<=0)
13257                                             BEGIN ( Bases );
13258                                         }
13259         YY_BREAK
13260 case 54:
13261 YY_RULE_SETUP
13262 #line 2322 "code.l"
13263
13264                                           g_code->codify(codeYYtext);
13265                                         }
13266         YY_BREAK
13267 case 55:
13268 /* rule 55 can match eol */
13269 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */
13270 (yy_c_buf_p) = yy_cp -= 1;
13271 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */
13272 YY_RULE_SETUP
13273 #line 2327 "code.l"
13274 {
13275                                           addType();
13276                                           generateFunctionLink(*g_code,codeYYtext);
13277                                           g_bracketCount=0;
13278                                           g_args.resize(0);
13279                                           g_name+=codeYYtext; 
13280                                           BEGIN( FuncCall );
13281                                         }
13282         YY_BREAK
13283 case 56:
13284 /* rule 56 can match eol */
13285 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */
13286 (yy_c_buf_p) = yy_cp -= 1;
13287 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */
13288 YY_RULE_SETUP
13289 #line 2335 "code.l"
13290 {
13291                                           addType();
13292                                           generateFunctionLink(*g_code,codeYYtext);
13293                                           g_bracketCount=0;
13294                                           g_args.resize(0);
13295                                           g_name+=codeYYtext; 
13296                                           BEGIN( FuncCall );
13297                                         }
13298         YY_BREAK
13299 case 57:
13300 /* rule 57 can match eol */
13301 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */
13302 (yy_c_buf_p) = yy_cp -= 1;
13303 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */
13304 YY_RULE_SETUP
13305 #line 2343 "code.l"
13306 {
13307                                           addType();
13308                                           generateFunctionLink(*g_code,codeYYtext);
13309                                           g_bracketCount=0;
13310                                           g_args.resize(0);
13311                                           g_name+=codeYYtext; 
13312                                           BEGIN( FuncCall );
13313                                         }
13314         YY_BREAK
13315 case 58:
13316 /* rule 58 can match eol */
13317 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */
13318 (yy_c_buf_p) = yy_cp -= 1;
13319 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */
13320 YY_RULE_SETUP
13321 #line 2351 "code.l"
13322 {
13323                                           startFontClass("keyword");
13324                                           codifyLines(codeYYtext);
13325                                           endFontClass();
13326                                           g_insideTemplate=TRUE;
13327                                           g_sharpCount=0;
13328                                         }
13329         YY_BREAK
13330 case 59:
13331 /* rule 59 can match eol */
13332 YY_RULE_SETUP
13333 #line 2358 "code.l"
13334 {
13335                                           startFontClass("keyword");
13336                                           codifyLines(codeYYtext);
13337                                           endFontClass();
13338                                           BEGIN(UsingName);
13339                                         }
13340         YY_BREAK
13341 case 60:
13342 YY_RULE_SETUP
13343 #line 2364 "code.l"
13344 { addUsingDirective(codeYYtext);
13345                                           generateClassOrGlobalLink(*g_code,codeYYtext);
13346                                           DBG_CTX((stderr,"** scope stack push CLASSBLOCK\n"));
13347                                           g_scopeStack.push(CLASSBLOCK);
13348                                           pushScope(codeYYtext);
13349                                           BEGIN(Body);
13350                                         }
13351         YY_BREAK
13352 case 61:
13353 /* rule 61 can match eol */
13354 YY_RULE_SETUP
13355 #line 2371 "code.l"
13356 { codifyLines(codeYYtext); BEGIN(Body); }
13357         YY_BREAK
13358 case 62:
13359 YY_RULE_SETUP
13360 #line 2372 "code.l"
13361 { codifyLines(codeYYtext); BEGIN(Body); }
13362         YY_BREAK
13363 case 63:
13364 YY_RULE_SETUP
13365 #line 2373 "code.l"
13366 { g_code->codify(codeYYtext); // this-> for C++, this. for C#
13367                                         }
13368         YY_BREAK
13369 case 64:
13370 /* rule 64 can match eol */
13371 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */
13372 (yy_c_buf_p) = yy_cp -= 1;
13373 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */
13374 YY_RULE_SETUP
13375 #line 2375 "code.l"
13376 {
13377                                           startFontClass("keyword");
13378                                           codifyLines(codeYYtext);
13379                                           if (QCString(codeYYtext)=="typedef")
13380                                           {
13381                                             addType();
13382                                             g_name+=codeYYtext; 
13383                                           }
13384                                           endFontClass();
13385                                         }
13386         YY_BREAK
13387 case 65:
13388 YY_RULE_SETUP
13389 #line 2385 "code.l"
13390 {
13391                                           startFontClass("keyword");
13392                                           codifyLines(codeYYtext);
13393                                           endFontClass();
13394                                         }
13395         YY_BREAK
13396 case 66:
13397 /* rule 66 can match eol */
13398 YY_RULE_SETUP
13399 #line 2390 "code.l"
13400 {
13401                                           startFontClass("keyword");
13402                                           codifyLines(codeYYtext);
13403                                           endFontClass();
13404                                           g_name.resize(0);g_type.resize(0);
13405                                         }
13406         YY_BREAK
13407 case 67:
13408 /* rule 67 can match eol */
13409 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */
13410 (yy_c_buf_p) = yy_cp = yy_bp + 2;
13411 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */
13412 YY_RULE_SETUP
13413 #line 2396 "code.l"
13414 {
13415                                           if (!g_inForEachExpression) REJECT;
13416                                           startFontClass("keywordflow");
13417                                           codifyLines(codeYYtext);
13418                                           endFontClass();
13419                                           // insert the variable in the parent scope, see bug 546158
13420                                           g_theVarContext.popScope();
13421                                           g_theVarContext.addVariable(g_parmType,g_parmName);
13422                                           g_theVarContext.pushScope();
13423                                           g_name.resize(0);g_type.resize(0);
13424                                         }
13425         YY_BREAK
13426 case 68:
13427 /* rule 68 can match eol */
13428 YY_RULE_SETUP
13429 #line 2407 "code.l"
13430 {
13431                                           startFontClass("keywordflow");
13432                                           codifyLines(codeYYtext);
13433                                           endFontClass();
13434                                           g_name.resize(0);g_type.resize(0);
13435                                           g_inForEachExpression = (strcmp(codeYYtext,"for each")==0 || strcmp(codeYYtext, "foreach")==0);
13436                                           BEGIN(FuncCall);
13437                                         }
13438         YY_BREAK
13439 case 69:
13440 /* rule 69 can match eol */
13441 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */
13442 (yy_c_buf_p) = yy_cp -= 1;
13443 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */
13444 YY_RULE_SETUP
13445 #line 2415 "code.l"
13446 {
13447                                           startFontClass("keywordflow");
13448                                           codifyLines(codeYYtext);
13449                                           endFontClass();
13450                                           if (g_inFunctionTryBlock && (strcmp(codeYYtext,"catch")==0 || strcmp(codeYYtext,"finally")==0))
13451                                           {
13452                                             g_inFunctionTryBlock=FALSE;
13453                                           }
13454                                         }
13455         YY_BREAK
13456 case 70:
13457 YY_RULE_SETUP
13458 #line 2424 "code.l"
13459 {
13460                                           startFontClass("keywordflow");
13461                                           codifyLines(codeYYtext);
13462                                           endFontClass();
13463                                         }
13464         YY_BREAK
13465 case 71:
13466 YY_RULE_SETUP
13467 #line 2429 "code.l"
13468 { // end of cast?
13469                                           g_code->codify(codeYYtext);
13470                                           g_theCallContext.popScope();
13471                                           g_bracketCount--;
13472                                           g_parmType = g_name;
13473                                           BEGIN(FuncCall);
13474                                         }
13475         YY_BREAK
13476 case 72:
13477 YY_RULE_SETUP
13478 #line 2436 "code.l"
13479 {
13480                                           g_code->codify(codeYYtext);
13481                                           g_name.resize(0);g_type.resize(0);
13482                                           if (*codeYYtext==')')
13483                                           {
13484                                             g_theCallContext.popScope();
13485                                             g_bracketCount--;
13486                                             BEGIN(FuncCall);
13487                                           }
13488                                         }
13489         YY_BREAK
13490 case 73:
13491 YY_RULE_SETUP
13492 #line 2446 "code.l"
13493 {
13494                                           startFontClass("keywordtype");
13495                                           g_code->codify(codeYYtext);
13496                                           endFontClass();
13497                                           addType();
13498                                           g_name+=codeYYtext; 
13499                                         }
13500         YY_BREAK
13501 case 74:
13502 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */
13503 (yy_c_buf_p) = yy_cp = yy_bp + 7;
13504 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */
13505 YY_RULE_SETUP
13506 #line 2453 "code.l"
13507 {
13508                                           startFontClass("keyword");
13509                                           g_code->codify(codeYYtext);
13510                                           endFontClass();
13511                                           g_sharpCount=0;
13512                                           BEGIN(TemplDecl);
13513                                         }
13514         YY_BREAK
13515 case 75:
13516 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */
13517 (yy_c_buf_p) = yy_cp = yy_bp + 8;
13518 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */
13519 YY_RULE_SETUP
13520 #line 2460 "code.l"
13521 { // template<...>
13522                                           startFontClass("keyword");
13523                                           g_code->codify(codeYYtext);
13524                                           endFontClass();
13525                                           g_sharpCount=0;
13526                                           BEGIN(TemplDecl);
13527                                         }
13528         YY_BREAK
13529 case 76:
13530 YY_RULE_SETUP
13531 #line 2467 "code.l"
13532 {
13533                                           startFontClass("keyword");
13534                                           codifyLines(codeYYtext);
13535                                           endFontClass();
13536                                         }
13537         YY_BREAK
13538 case 77:
13539 YY_RULE_SETUP
13540 #line 2472 "code.l"
13541 {
13542                                           g_code->codify(codeYYtext);
13543                                           g_sharpCount++;
13544                                         }
13545         YY_BREAK
13546 case 78:
13547 YY_RULE_SETUP
13548 #line 2476 "code.l"
13549 {
13550                                           g_code->codify(codeYYtext);
13551                                           g_sharpCount--;
13552                                           if (g_sharpCount<=0)
13553                                           {
13554                                             BEGIN(Body);
13555                                           }
13556                                         }
13557         YY_BREAK
13558 case 79:
13559 YY_RULE_SETUP
13560 #line 2484 "code.l"
13561 {
13562                                           startFontClass("keyword");
13563                                           codifyLines(codeYYtext);
13564                                           endFontClass();
13565                                           BEGIN( g_lastTemplCastContext );
13566                                         }
13567         YY_BREAK
13568 case 80:
13569 YY_RULE_SETUP
13570 #line 2490 "code.l"
13571 {
13572                                           generateClassOrGlobalLink(*g_code,codeYYtext);
13573                                         }
13574         YY_BREAK
13575 case 81:
13576 YY_RULE_SETUP
13577 #line 2493 "code.l"
13578 {
13579                                           startFontClass("keyword");
13580                                           codifyLines(codeYYtext);
13581                                           endFontClass();
13582                                         }
13583         YY_BREAK
13584 case 82:
13585 YY_RULE_SETUP
13586 #line 2498 "code.l"
13587 {
13588                                           codifyLines(codeYYtext);
13589                                         }
13590         YY_BREAK
13591 case 83:
13592 YY_RULE_SETUP
13593 #line 2501 "code.l"
13594 { // static_cast<T>(
13595                                           startFontClass("keyword");
13596                                           codifyLines(codeYYtext);
13597                                           endFontClass();
13598                                           g_lastTemplCastContext = YY_START;
13599                                           BEGIN(TemplCast);
13600                                         }
13601         YY_BREAK
13602 case 84:
13603 /* rule 84 can match eol */
13604 YY_RULE_SETUP
13605 #line 2508 "code.l"
13606 { // PHP member variable
13607                                           addType();
13608                                           generatePHPVariableLink(*g_code,codeYYtext);
13609                                           g_name+=codeYYtext+7; 
13610                                         }
13611         YY_BREAK
13612 case 85:
13613 /* rule 85 can match eol */
13614 YY_RULE_SETUP
13615 #line 2513 "code.l"
13616 { // A<T> *pt;
13617                                           int i=QCString(codeYYtext).find('<');
13618                                           QCString kw = QCString(codeYYtext).left(i).stripWhiteSpace();
13619                                           if (kw.right(5)=="_cast" && YY_START==Body)
13620                                           {
13621                                             REJECT;
13622                                           }
13623                                           addType();
13624                                           generateClassOrGlobalLink(*g_code,codeYYtext);
13625                                           g_name+=codeYYtext; 
13626                                         }
13627         YY_BREAK
13628 case 86:
13629 /* rule 86 can match eol */
13630 YY_RULE_SETUP
13631 #line 2524 "code.l"
13632 { // "int var;" or "var, var2" or "debug(f) macro" 
13633                                           addType();
13634                                           // changed this to generateFunctionLink, see bug 624514
13635                                           //generateClassOrGlobalLink(*g_code,codeYYtext,FALSE,TRUE);
13636                                           generateFunctionLink(*g_code,codeYYtext);
13637                                           g_name+=codeYYtext; 
13638                                         }
13639         YY_BREAK
13640 case 87:
13641 /* rule 87 can match eol */
13642 YY_RULE_SETUP
13643 #line 2531 "code.l"
13644 { // p->func()
13645                                           addType();
13646                                           generateClassOrGlobalLink(*g_code,codeYYtext);
13647                                           g_name+=codeYYtext; 
13648                                         }
13649         YY_BREAK
13650 case 88:
13651 /* rule 88 can match eol */
13652 YY_RULE_SETUP
13653 #line 2536 "code.l"
13654 {  // (*p)->func() but not "if (p) ..."
13655                                           g_code->codify(codeYYtext);
13656                                           int s=0;while (s<(int)codeYYleng && !isId(codeYYtext[s])) s++;
13657                                           int e=(int)codeYYleng-1;while (e>=0 && !isId(codeYYtext[e])) e--;
13658                                           QCString varname = ((QCString)codeYYtext).mid(s,e-s+1); 
13659                                           addType();
13660                                           g_name=varname; 
13661                                         }
13662         YY_BREAK
13663 case 89:
13664 /* rule 89 can match eol */
13665 YY_RULE_SETUP
13666 #line 2544 "code.l"
13667 { // a() or c::a() or t<A,B>::a() or A\B\foo()
13668                                           addType();
13669                                           generateFunctionLink(*g_code,codeYYtext);
13670                                           g_bracketCount=0;
13671                                           g_args.resize(0);
13672                                           g_name+=codeYYtext; 
13673                                           BEGIN( FuncCall );
13674                                         }
13675         YY_BREAK
13676 case 90:
13677 /* rule 90 can match eol */
13678 YY_RULE_SETUP
13679 #line 2552 "code.l"
13680 {
13681                                           QCString text=codeYYtext;
13682                                           int i=text.find('R');
13683                                           g_code->codify(text.left(i+1));
13684                                           startFontClass("stringliteral");
13685                                           g_code->codify(codeYYtext+i+1);
13686                                           g_lastStringContext=YY_START;
13687                                           g_inForEachExpression = FALSE;
13688                                           g_delimiter = codeYYtext+i+2;
13689                                           g_delimiter=g_delimiter.left(g_delimiter.length()-1);
13690                                           BEGIN( RawString );
13691                                         }
13692         YY_BREAK
13693 case 91:
13694 YY_RULE_SETUP
13695 #line 2564 "code.l"
13696 {
13697                                           startFontClass("stringliteral");
13698                                           g_code->codify(codeYYtext);
13699                                           g_lastStringContext=YY_START;
13700                                           g_inForEachExpression = FALSE;
13701                                           BEGIN( SkipString );
13702                                         }
13703         YY_BREAK
13704 case 92:
13705 YY_RULE_SETUP
13706 #line 2571 "code.l"
13707 {
13708                                           startFontClass("stringliteral");
13709                                           g_code->codify(codeYYtext);
13710                                           g_lastStringContext=YY_START;
13711                                           g_inForEachExpression = FALSE;
13712                                           BEGIN( SkipStringS );
13713                                         }
13714         YY_BREAK
13715 case 93:
13716 YY_RULE_SETUP
13717 #line 2578 "code.l"
13718
13719                                           g_code->codify(codeYYtext);
13720                                         }
13721         YY_BREAK
13722 case 94:
13723 YY_RULE_SETUP
13724 #line 2581 "code.l"
13725 {
13726                                           g_code->codify(codeYYtext);
13727                                         }
13728         YY_BREAK
13729 case 95:
13730 YY_RULE_SETUP
13731 #line 2584 "code.l"
13732 {
13733                                           g_code->codify(codeYYtext);
13734                                         }
13735         YY_BREAK
13736 case 96:
13737 YY_RULE_SETUP
13738 #line 2587 "code.l"
13739 {
13740                                           g_code->codify(codeYYtext);
13741                                           endFontClass();
13742                                           BEGIN( g_lastStringContext );
13743                                         }
13744         YY_BREAK
13745 case 97:
13746 YY_RULE_SETUP
13747 #line 2592 "code.l"
13748 {
13749                                           g_code->codify(codeYYtext);
13750                                           endFontClass();
13751                                           BEGIN( g_lastStringContext );
13752                                         }
13753         YY_BREAK
13754 case 98:
13755 YY_RULE_SETUP
13756 #line 2597 "code.l"
13757 {
13758                                           g_code->codify(codeYYtext);
13759                                         }
13760         YY_BREAK
13761 case 99:
13762 /* rule 99 can match eol */
13763 YY_RULE_SETUP
13764 #line 2600 "code.l"
13765
13766                                           g_code->codify(codeYYtext);
13767                                           QCString delimiter = codeYYtext+1;
13768                                           delimiter=delimiter.left(delimiter.length()-1);
13769                                           if (delimiter==g_delimiter)
13770                                           {
13771                                             BEGIN( g_lastStringContext );
13772                                           }
13773                                         }
13774         YY_BREAK
13775 case 100:
13776 /* rule 100 can match eol */
13777 YY_RULE_SETUP
13778 #line 2609 "code.l"
13779 { g_code->codify(codeYYtext); }
13780         YY_BREAK
13781 case 101:
13782 YY_RULE_SETUP
13783 #line 2610 "code.l"
13784 { g_code->codify(codeYYtext); }
13785         YY_BREAK
13786 case 102:
13787 /* rule 102 can match eol */
13788 YY_RULE_SETUP
13789 #line 2611 "code.l"
13790 { codifyLines(codeYYtext); }
13791         YY_BREAK
13792 case 103:
13793 YY_RULE_SETUP
13794 #line 2612 "code.l"
13795 {
13796                                           g_code->codify(codeYYtext);
13797                                         }
13798         YY_BREAK
13799 case 104:
13800 YY_RULE_SETUP
13801 #line 2615 "code.l"
13802 { // escaped quote
13803                                           g_code->codify(codeYYtext);
13804                                         }
13805         YY_BREAK
13806 case 105:
13807 YY_RULE_SETUP
13808 #line 2618 "code.l"
13809 { // end of string
13810                                           g_code->codify(codeYYtext);
13811                                           endFontClass();
13812                                           BEGIN( g_lastVerbStringContext );
13813                                         }
13814         YY_BREAK
13815 case 106:
13816 YY_RULE_SETUP
13817 #line 2623 "code.l"
13818 {
13819                                           g_code->codify(codeYYtext);
13820                                         }
13821         YY_BREAK
13822 case 107:
13823 /* rule 107 can match eol */
13824 YY_RULE_SETUP
13825 #line 2626 "code.l"
13826 {
13827                                           codifyLines(codeYYtext);
13828                                         }
13829         YY_BREAK
13830 case 108:
13831 YY_RULE_SETUP
13832 #line 2629 "code.l"
13833 {
13834                                           g_code->codify(codeYYtext);
13835                                           g_name.resize(0);g_type.resize(0);
13836                                         }
13837         YY_BREAK
13838 case 109:
13839 YY_RULE_SETUP
13840 #line 2633 "code.l"
13841 {
13842                                           if (g_insideTemplate)
13843                                           {
13844                                             g_sharpCount++;
13845                                           }
13846                                           g_code->codify(codeYYtext);
13847                                         }
13848         YY_BREAK
13849 case 110:
13850 YY_RULE_SETUP
13851 #line 2640 "code.l"
13852 {
13853                                           if (g_insideTemplate)
13854                                           {
13855                                             if (--g_sharpCount<=0)
13856                                             {
13857                                               g_insideTemplate=FALSE;
13858                                             }
13859                                           }
13860                                           g_code->codify(codeYYtext);
13861                                         }
13862         YY_BREAK
13863 case 111:
13864 YY_RULE_SETUP
13865 #line 2650 "code.l"
13866 {
13867                                           startFontClass("charliteral"); 
13868                                           g_code->codify(codeYYtext);
13869                                           endFontClass();
13870                                         }
13871         YY_BREAK
13872 case 112:
13873 YY_RULE_SETUP
13874 #line 2655 "code.l"
13875
13876                                           if (codeYYtext[0]=='-') // -> could be overloaded
13877                                           {
13878                                             updateCallContextForSmartPointer();
13879                                           }
13880                                           g_code->codify(codeYYtext);
13881                                           g_memCallContext = YY_START;
13882                                           BEGIN( MemberCall ); 
13883                                         }
13884         YY_BREAK
13885 case 113:
13886 /* rule 113 can match eol */
13887 YY_RULE_SETUP
13888 #line 2664 "code.l"
13889 {
13890                                           if (g_theCallContext.getClass())
13891                                           {
13892                                             if (!generateClassMemberLink(*g_code,g_theCallContext.getClass(),codeYYtext))
13893                                             {
13894                                               g_code->linkableSymbol(g_yyLineNr,codeYYtext,0,
13895                                                                 g_currentMemberDef?g_currentMemberDef:g_currentDefinition);
13896                                               g_code->codify(codeYYtext);
13897                                               addToSearchIndex(codeYYtext);
13898                                             }
13899                                             g_name.resize(0);
13900                                           }
13901                                           else
13902                                           {
13903                                             g_code->linkableSymbol(g_yyLineNr,codeYYtext,0,
13904                                                                 g_currentMemberDef?g_currentMemberDef:g_currentDefinition);
13905                                             g_code->codify(codeYYtext);
13906                                             addToSearchIndex(codeYYtext);
13907                                             g_name.resize(0);
13908                                           }
13909                                           g_type.resize(0);
13910                                           g_bracketCount=0;
13911                                           if (g_memCallContext==Body)
13912                                           {
13913                                             BEGIN(FuncCall);
13914                                           }
13915                                           else
13916                                           {
13917                                             BEGIN(g_memCallContext);
13918                                           }
13919                                         }
13920         YY_BREAK
13921 case 114:
13922 /* rule 114 can match eol */
13923 YY_RULE_SETUP
13924 #line 2695 "code.l"
13925 {
13926                                           if (g_theCallContext.getClass())
13927                                           {
13928                                             //fprintf(stderr,"g_theCallContext.getClass()=%p\n",g_theCallContext.getClass());
13929                                             if (!generateClassMemberLink(*g_code,g_theCallContext.getClass(),codeYYtext))
13930                                             {
13931                                               g_code->linkableSymbol(g_yyLineNr,codeYYtext,0,
13932                                                                 g_currentMemberDef?g_currentMemberDef:g_currentDefinition);
13933                                               g_code->codify(codeYYtext);
13934                                               addToSearchIndex(codeYYtext);
13935                                             }
13936                                             g_name.resize(0);
13937                                           }
13938                                           else
13939                                           {
13940                                             //fprintf(stderr,"no class context!\n");
13941                                             g_code->codify(codeYYtext);
13942                                             addToSearchIndex(codeYYtext);
13943                                             g_name.resize(0);
13944                                           }
13945                                           g_type.resize(0);
13946                                           BEGIN(g_memCallContext);
13947                                         }
13948         YY_BREAK
13949 case 115:
13950 YY_RULE_SETUP
13951 #line 2718 "code.l"
13952 {
13953                                           if (g_insideObjC && *codeYYtext=='[')
13954                                           {
13955                                             //printf("Found start of ObjC call!\n");
13956                                             // start of a method call
13957                                             g_contextDict.setAutoDelete(TRUE);
13958                                             g_nameDict.setAutoDelete(TRUE);
13959                                             g_objectDict.setAutoDelete(TRUE);
13960                                             g_wordDict.setAutoDelete(TRUE);
13961                                             g_contextDict.clear();
13962                                             g_nameDict.clear();
13963                                             g_objectDict.clear();
13964                                             g_wordDict.clear();
13965                                             g_currentCtxId  = 0;
13966                                             g_currentNameId  = 0;
13967                                             g_currentObjId  = 0;
13968                                             g_currentCtx = 0;
13969                                             g_braceCount = 0;
13970                                             unput('[');
13971                                             BEGIN(ObjCCall);
13972                                           }
13973                                           else
13974                                           {
13975                                             g_code->codify(codeYYtext);
13976                                             g_saveName = g_name.copy();
13977                                             g_saveType = g_type.copy();
13978                                             if (*codeYYtext!='[' && !g_type.isEmpty()) 
13979                                             {
13980                                               //printf("g_scopeStack.bottom()=%p\n",g_scopeStack.bottom());
13981                                               if (g_scopeStack.top()!=CLASSBLOCK)
13982                                               {
13983                                                 //printf("AddVariable: '%s' '%s' context=%d\n",
13984                                                 //    g_type.data(),g_name.data(),g_theVarContext.count());
13985                                                 g_theVarContext.addVariable(g_type,g_name);
13986                                               }
13987                                               g_name.resize(0);
13988                                             }
13989                                             if (*codeYYtext==';' || *codeYYtext=='=') 
13990                                             {
13991                                               g_type.resize(0);
13992                                               g_name.resize(0);
13993                                             }
13994                                             else if (*codeYYtext=='[')
13995                                             {
13996                                               g_theCallContext.pushScope();
13997                                             }
13998                                             g_args.resize(0);
13999                                             g_parmType.resize(0);
14000                                             g_parmName.resize(0);
14001                                           }
14002                                         }
14003         YY_BREAK
14004 /*
14005 <ObjCMemberCall>{ID}                    {
14006                                           if (strcmp(codeYYtext,"self")==0 || strcmp(codeYYtext,"super")==0)
14007                                           {
14008                                             // TODO: get proper base class for "super"
14009                                             g_theCallContext.setClass(getClass(g_curClassName));
14010                                             startFontClass("keyword");
14011                                             g_code->codify(codeYYtext); 
14012                                             endFontClass();
14013                                           }
14014                                           else
14015                                           {
14016                                             generateClassOrGlobalLink(*g_code,codeYYtext);
14017                                           }
14018                                           g_name.resize(0);
14019                                           BEGIN(ObjCMemberCall2);
14020                                         }
14021 <ObjCMemberCall>"["                     {
14022                                             g_code->codify(codeYYtext);
14023                                             g_theCallContext.pushScope();
14024                                         }
14025 <ObjCMemberCall2>{ID}":"?               {
14026                                           g_name+=codeYYtext;
14027                                           if (g_theCallContext.getClass())
14028                                           {
14029                                             //printf("Calling method %s\n",g_name.data());
14030                                             if (!generateClassMemberLink(*g_code,g_theCallContext.getClass(),g_name))
14031                                             {
14032                                               g_code->codify(codeYYtext);
14033                                               addToSearchIndex(g_name);
14034                                             }
14035                                           }
14036                                           else
14037                                           {
14038                                             g_code->codify(codeYYtext);
14039                                             addToSearchIndex(g_name);
14040                                           }
14041                                           g_name.resize(0);
14042                                           BEGIN(ObjCMemberCall3);
14043                                         }
14044 <ObjCMemberCall2,ObjCMemberCall3>"]"    {
14045                                           g_theCallContext.popScope();
14046                                           g_code->codify(codeYYtext);
14047                                           BEGIN(Body);
14048                                         }
14049   */
14050 case 116:
14051 YY_RULE_SETUP
14052 #line 2815 "code.l"
14053
14054                                    saveObjCContext();
14055                                    g_currentCtx->format+=*codeYYtext;
14056                                    BEGIN(ObjCCall);
14057                                    //printf("open\n");
14058                                  }
14059         YY_BREAK
14060 case 117:
14061 YY_RULE_SETUP
14062 #line 2821 "code.l"
14063
14064                                     g_currentCtx->format+=*codeYYtext;
14065                                     restoreObjCContext();
14066                                     BEGIN(ObjCMName);
14067                                     if (g_currentCtx==0)
14068                                     {
14069                                       // end of call
14070                                       writeObjCMethodCall(g_contextDict.find(0));
14071                                       BEGIN(Body);
14072                                     }
14073                                     //printf("close\n");
14074                                   }
14075         YY_BREAK
14076 case 118:
14077 YY_RULE_SETUP
14078 #line 2833 "code.l"
14079 {
14080                                     g_currentCtx->format+=escapeObject(codeYYtext);
14081                                     if (g_braceCount==0)
14082                                     {
14083                                       g_currentCtx->objectTypeOrName=codeYYtext;
14084                                       //printf("new type=%s\n",g_currentCtx->objectTypeOrName.data());
14085                                       BEGIN(ObjCMName);
14086                                     }
14087                                   }
14088         YY_BREAK
14089 case 119:
14090 /* rule 119 can match eol */
14091 YY_RULE_SETUP
14092 #line 2842 "code.l"
14093
14094                                     if (g_braceCount==0 && 
14095                                         g_currentCtx->methodName.isEmpty())
14096                                     {
14097                                       g_currentCtx->methodName=codeYYtext; 
14098                                       g_currentCtx->format+=escapeName(codeYYtext);
14099                                     }
14100                                     else
14101                                     {
14102                                       g_currentCtx->format+=escapeWord(codeYYtext);
14103                                     }
14104                                   }
14105         YY_BREAK
14106 case 120:
14107 /* rule 120 can match eol */
14108 YY_RULE_SETUP
14109 #line 2854 "code.l"
14110
14111                                      if (g_braceCount==0)
14112                                      {
14113                                        g_currentCtx->methodName+=codeYYtext;
14114                                        g_currentCtx->methodName+=":";
14115                                      }
14116                                      g_currentCtx->format+=escapeName(codeYYtext);
14117                                    }
14118         YY_BREAK
14119 case 121:
14120 YY_RULE_SETUP
14121 #line 2862 "code.l"
14122 { g_currentCtx->format+=codeYYtext; }
14123         YY_BREAK
14124 case 122:
14125 YY_RULE_SETUP
14126 #line 2863 "code.l"
14127 { g_currentCtx->format+=codeYYtext; }
14128         YY_BREAK
14129 case 123:
14130 YY_RULE_SETUP
14131 #line 2864 "code.l"
14132 { g_currentCtx->format+=codeYYtext; 
14133                                       BEGIN(g_lastStringContext); 
14134                                    }
14135         YY_BREAK
14136 case 124:
14137 YY_RULE_SETUP
14138 #line 2867 "code.l"
14139 { g_currentCtx->format+=codeYYtext; }
14140         YY_BREAK
14141 case 125:
14142 YY_RULE_SETUP
14143 #line 2868 "code.l"
14144 { g_currentCtx->format+=codeYYtext; 
14145                                       g_lastStringContext=YY_START;
14146                                       BEGIN(ObjCSkipStr); 
14147                                    }
14148         YY_BREAK
14149 case 126:
14150 YY_RULE_SETUP
14151 #line 2872 "code.l"
14152 { g_currentCtx->format+="$$"; }
14153         YY_BREAK
14154 case 127:
14155 YY_RULE_SETUP
14156 #line 2873 "code.l"
14157 { g_currentCtx->format+=*codeYYtext; g_braceCount++; }
14158         YY_BREAK
14159 case 128:
14160 YY_RULE_SETUP
14161 #line 2874 "code.l"
14162 { g_currentCtx->format+=*codeYYtext; g_braceCount--; }
14163         YY_BREAK
14164 case 129:
14165 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */
14166 (yy_c_buf_p) = yy_cp = yy_bp + 1;
14167 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */
14168 YY_RULE_SETUP
14169 #line 2875 "code.l"
14170 { // needed to prevent matching the global rule (for C#)
14171                                      g_currentCtx->format+=codeYYtext;
14172                                    }
14173         YY_BREAK
14174 case 130:
14175 YY_RULE_SETUP
14176 #line 2878 "code.l"
14177 { g_currentCtx->format+=escapeWord(codeYYtext); }
14178         YY_BREAK
14179 case 131:
14180 YY_RULE_SETUP
14181 #line 2879 "code.l"
14182 { g_currentCtx->format+=*codeYYtext; }
14183         YY_BREAK
14184 case 132:
14185 /* rule 132 can match eol */
14186 YY_RULE_SETUP
14187 #line 2880 "code.l"
14188 { g_currentCtx->format+=*codeYYtext; }
14189         YY_BREAK
14190 case 133:
14191 YY_RULE_SETUP
14192 #line 2882 "code.l"
14193 {
14194                                           g_theCallContext.popScope();
14195                                           g_code->codify(codeYYtext);
14196                                           // TODO: nested arrays like: a[b[0]->func()]->func()
14197                                           g_name = g_saveName.copy();
14198                                           g_type = g_saveType.copy();
14199                                         }
14200         YY_BREAK
14201 case 134:
14202 YY_RULE_SETUP
14203 #line 2889 "code.l"
14204 {
14205                                           g_code->codify(codeYYtext);
14206                                         }
14207         YY_BREAK
14208 case 135:
14209 YY_RULE_SETUP
14210 #line 2892 "code.l"
14211 {
14212                                           g_code->codify(codeYYtext);
14213                                         }
14214         YY_BREAK
14215 case 136:
14216 /* rule 136 can match eol */
14217 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */
14218 (yy_c_buf_p) = yy_cp -= 1;
14219 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */
14220 YY_RULE_SETUP
14221 #line 2895 "code.l"
14222 {
14223                                           //addParmType();
14224                                           //g_parmName=codeYYtext; 
14225                                           startFontClass("keyword");
14226                                           g_code->codify(codeYYtext);
14227                                           endFontClass();
14228                                         }
14229         YY_BREAK
14230 case 137:
14231 /* rule 137 can match eol */
14232 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */
14233 (yy_c_buf_p) = yy_cp -= 1;
14234 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */
14235 YY_RULE_SETUP
14236 #line 2902 "code.l"
14237 {
14238                                           addParmType();
14239                                           g_parmName=codeYYtext; 
14240                                           startFontClass("keywordtype");
14241                                           g_code->codify(codeYYtext);
14242                                           endFontClass();
14243                                         }
14244         YY_BREAK
14245 case 138:
14246 /* rule 138 can match eol */
14247 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */
14248 (yy_c_buf_p) = yy_cp -= 1;
14249 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */
14250 YY_RULE_SETUP
14251 #line 2909 "code.l"
14252 {
14253                                           addParmType();
14254                                           g_parmName=codeYYtext; 
14255                                           startFontClass("keywordflow");
14256                                           g_code->codify(codeYYtext);
14257                                           endFontClass();
14258                                         }
14259         YY_BREAK
14260 case 139:
14261 YY_RULE_SETUP
14262 #line 2916 "code.l"
14263 {
14264                                           addParmType();
14265                                           g_parmName=codeYYtext; 
14266                                           generateClassOrGlobalLink(*g_code,codeYYtext,!g_insideBody);
14267                                         }
14268         YY_BREAK
14269 case 140:
14270 YY_RULE_SETUP
14271 #line 2921 "code.l"
14272 { // probably a cast, not a function call
14273                                           g_code->codify(codeYYtext);
14274                                           g_inForEachExpression = FALSE;
14275                                           BEGIN( Body );
14276                                         }
14277         YY_BREAK
14278 case 141:
14279 YY_RULE_SETUP
14280 #line 2926 "code.l"
14281 {
14282                                           g_code->codify(codeYYtext);
14283                                           g_theVarContext.addVariable(g_parmType,g_parmName);
14284                                           g_parmType.resize(0);g_parmName.resize(0);
14285                                         }
14286         YY_BREAK
14287 case 142:
14288 YY_RULE_SETUP
14289 #line 2931 "code.l"
14290 {
14291                                           g_parmType.resize(0);g_parmName.resize(0);
14292                                           g_code->codify(codeYYtext);
14293                                           g_bracketCount++; 
14294                                           g_theCallContext.pushScope();
14295                                           if (YY_START==FuncCall && !g_insideBody)
14296                                           {
14297                                             g_theVarContext.pushScope();
14298                                           }
14299                                         }
14300         YY_BREAK
14301 case 143:
14302 YY_RULE_SETUP
14303 #line 2941 "code.l"
14304 { // operator
14305                                           if (strcmp(codeYYtext,"*") && 
14306                                               strcmp(codeYYtext,"&") &&
14307                                               strcmp(codeYYtext,"^") &&
14308                                               strcmp(codeYYtext,"%")) // typically a pointer or reference
14309                                           {
14310                                             // not a * or &, or C++/CLI's ^ or %
14311                                             g_parmType.resize(0);g_parmName.resize(0);
14312                                           }
14313                                           g_code->codify(codeYYtext);
14314                                         }
14315         YY_BREAK
14316 case 144:
14317 YY_RULE_SETUP
14318 #line 2952 "code.l"
14319
14320                                           if (codeYYtext[0]==')') // no a pointer cast
14321                                           {
14322                                             //printf("addVariable(%s,%s)\n",g_parmType.data(),g_parmName.data());
14323                                             g_theVarContext.addVariable(g_parmType,g_parmName);
14324                                           }
14325                                           else
14326                                           {
14327                                             g_parmType.resize(0);
14328                                             g_parmName.resize(0);
14329                                           }
14330                                           g_theCallContext.popScope();
14331                                           g_inForEachExpression = FALSE;
14332                                           //g_theCallContext.setClass(0); // commented out, otherwise a()->b() does not work for b().
14333                                           g_code->codify(codeYYtext);
14334                                           if (--g_bracketCount<=0) 
14335                                           {
14336                                             if (g_name.isEmpty())
14337                                             {
14338                                               BEGIN( Body );
14339                                             }
14340                                             else
14341                                             {
14342                                               BEGIN( CallEnd ); 
14343                                             }
14344                                           }
14345                                         }
14346         YY_BREAK
14347 case 145:
14348 /* rule 145 can match eol */
14349 YY_RULE_SETUP
14350 #line 2979 "code.l"
14351 { codifyLines(codeYYtext); }
14352         YY_BREAK
14353 /*
14354 <MemberCall2,FuncCall>")"[ \t\n]*[;:]   {
14355   */
14356 case 146:
14357 YY_RULE_SETUP
14358 #line 2983 "code.l"
14359 {
14360                                           codifyLines(codeYYtext);
14361                                           g_bracketCount=0;
14362                                           if (*codeYYtext==';') g_searchingForBody=FALSE; 
14363                                           if (!g_type.isEmpty())
14364                                           {
14365                                             //fprintf(stderr,"add variable g_type=%s g_name=%s)\n",g_type.data(),g_name.data());
14366                                             g_theVarContext.addVariable(g_type,g_name);
14367                                           }
14368                                           g_parmType.resize(0);g_parmName.resize(0);
14369                                           g_theCallContext.setClass(0);
14370                                           if (*codeYYtext==';' || g_insideBody)
14371                                           {
14372                                             if (!g_insideBody)
14373                                             {
14374                                               g_theVarContext.popScope();
14375                                             }
14376                                             g_name.resize(0);g_type.resize(0);
14377                                             BEGIN( Body );
14378                                           }
14379                                           else
14380                                           {
14381                                             g_bracketCount=0;
14382                                             BEGIN( SkipInits );
14383                                           }
14384                                         }
14385         YY_BREAK
14386 case 147:
14387 /* rule 147 can match eol */
14388 YY_RULE_SETUP
14389 #line 3009 "code.l"
14390 {
14391                                           startFontClass("keyword");
14392                                           codifyLines(codeYYtext);
14393                                           endFontClass();
14394                                         }
14395         YY_BREAK
14396 case 148:
14397 /* rule 148 can match eol */
14398 YY_RULE_SETUP
14399 #line 3014 "code.l"
14400 {
14401                                           if (g_insideBody)
14402                                           {
14403                                             g_theVarContext.pushScope();
14404                                           }
14405                                           g_theVarContext.addVariable(g_parmType,g_parmName);
14406                                           //g_theCallContext.popScope();
14407                                           g_parmType.resize(0);g_parmName.resize(0);
14408                                           int index = g_name.findRev("::");
14409                                           //fprintf(stderr,"g_name=%s\n",g_name.data());
14410                                           if (index!=-1) 
14411                                           {
14412                                             QCString scope = g_name.left(index);
14413                                             if (!g_classScope.isEmpty()) scope.prepend(g_classScope+"::");
14414                                             ClassDef *cd=getResolvedClass(Doxygen::globalScope,g_sourceFileDef,scope);
14415                                             if (cd)
14416                                             {
14417                                               setClassScope(cd->name());
14418                                               g_scopeStack.push(SCOPEBLOCK);
14419                                               DBG_CTX((stderr,"** scope stack push SCOPEBLOCK\n"));
14420                                             }
14421                                             else 
14422                                             {
14423                                               //setClassScope(g_realScope);
14424                                               g_scopeStack.push(INNERBLOCK);
14425                                               DBG_CTX((stderr,"** scope stack push INNERBLOCK\n"));
14426                                             }
14427                                           }
14428                                           else
14429                                           {
14430                                             DBG_CTX((stderr,"** scope stack push INNERBLOCK\n"));
14431                                             g_scopeStack.push(INNERBLOCK);
14432                                           }
14433                                           codeYYtext[codeYYleng-1]='\0';
14434                                           QCString cv(codeYYtext);
14435                                           if (!cv.stripWhiteSpace().isEmpty())
14436                                           {
14437                                             startFontClass("keyword");
14438                                             codifyLines(codeYYtext);
14439                                             endFontClass();
14440                                           }
14441                                           else // just whitespace
14442                                           {
14443                                             codifyLines(codeYYtext);
14444                                           }
14445                                           g_code->codify("{");
14446                                           if (g_searchingForBody)
14447                                           {
14448                                             g_searchingForBody=FALSE;
14449                                             g_insideBody=TRUE;
14450                                           }
14451                                           if (g_insideBody) g_bodyCurlyCount++;
14452                                           g_curlyCount++;
14453                                           g_type.resize(0); g_name.resize(0);
14454                                           BEGIN( Body );
14455                                         }
14456         YY_BREAK
14457 case 149:
14458 YY_RULE_SETUP
14459 #line 3070 "code.l"
14460 { // function-try-block
14461                                           startFontClass("keyword");
14462                                           g_code->codify(codeYYtext);
14463                                           endFontClass();
14464                                           g_inFunctionTryBlock=TRUE;
14465                                         }
14466         YY_BREAK
14467 case 150:
14468 YY_RULE_SETUP
14469 #line 3076 "code.l"
14470 {
14471                                           if (g_insideBody || !g_parmType.isEmpty()) 
14472                                           {
14473                                             REJECT;
14474                                           }
14475                                           // could be K&R style definition
14476                                           addParmType();
14477                                           g_parmName=codeYYtext; 
14478                                           generateClassOrGlobalLink(*g_code,codeYYtext,!g_insideBody);
14479                                           BEGIN(OldStyleArgs);
14480                                         }
14481         YY_BREAK
14482 case 151:
14483 YY_RULE_SETUP
14484 #line 3087 "code.l"
14485 {
14486                                           addParmType();
14487                                           g_parmName=codeYYtext; 
14488                                           generateClassOrGlobalLink(*g_code,codeYYtext,!g_insideBody);
14489                                         }
14490         YY_BREAK
14491 case 152:
14492 YY_RULE_SETUP
14493 #line 3092 "code.l"
14494 {
14495                                           g_code->codify(codeYYtext);
14496                                           g_theVarContext.addVariable(g_parmType,g_parmName);
14497                                           if (*codeYYtext==';') g_parmType.resize(0);
14498                                           g_parmName.resize(0);
14499                                         }
14500         YY_BREAK
14501 case 153:
14502 YY_RULE_SETUP
14503 #line 3098 "code.l"
14504 {
14505                                           startFontClass("preprocessor");
14506                                           g_lastSkipCppContext = Body;
14507                                           g_code->codify(codeYYtext);
14508                                           BEGIN( SkipCPP );
14509                                         }
14510         YY_BREAK
14511 case 154:
14512 YY_RULE_SETUP
14513 #line 3104 "code.l"
14514 {
14515                                           unput(*codeYYtext);
14516                                           if (!g_insideBody) 
14517                                           {
14518                                             g_theVarContext.popScope();
14519                                           }
14520                                           g_name.resize(0);g_args.resize(0);
14521                                           g_parmType.resize(0);g_parmName.resize(0);
14522                                           BEGIN( Body ); 
14523                                         }
14524         YY_BREAK
14525 case 155:
14526 YY_RULE_SETUP
14527 #line 3114 "code.l"
14528 {
14529                                           g_code->codify(codeYYtext);
14530                                           g_type.resize(0); g_name.resize(0);
14531                                           BEGIN( Body );
14532                                         }
14533         YY_BREAK
14534 case 156:
14535 YY_RULE_SETUP
14536 #line 3119 "code.l"
14537
14538                                           g_code->codify(codeYYtext);
14539                                           g_curlyCount++; 
14540                                           if (g_searchingForBody)
14541                                           {
14542                                             g_searchingForBody=FALSE;
14543                                             g_insideBody=TRUE;
14544                                           }
14545                                           if (g_insideBody) g_bodyCurlyCount++;
14546                                           if (g_name.find("::")!=-1) 
14547                                           {
14548                                             DBG_CTX((stderr,"** scope stack push SCOPEBLOCK\n"));
14549                                             g_scopeStack.push(SCOPEBLOCK);
14550                                             setClassScope(g_realScope);
14551                                           }
14552                                           else
14553                                           {
14554                                             DBG_CTX((stderr,"** scope stack push INNERBLOCK\n"));
14555                                             g_scopeStack.push(INNERBLOCK);
14556                                           }
14557                                           g_type.resize(0); g_name.resize(0);
14558                                           BEGIN( Body ); 
14559                                         }
14560         YY_BREAK
14561 case 157:
14562 YY_RULE_SETUP
14563 #line 3142 "code.l"
14564 {
14565                                           generateClassOrGlobalLink(*g_code,codeYYtext);
14566                                         }
14567         YY_BREAK
14568 case 158:
14569 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */
14570 (yy_c_buf_p) = yy_cp -= 1;
14571 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */
14572 YY_RULE_SETUP
14573 #line 3145 "code.l"
14574 {
14575                                           generateFunctionLink(*g_code,codeYYtext);
14576                                         }
14577         YY_BREAK
14578 case 159:
14579 YY_RULE_SETUP
14580 #line 3148 "code.l"
14581
14582                                           g_name=codeYYtext; 
14583                                           generateClassOrGlobalLink(*g_code,codeYYtext);
14584                                           BEGIN( MemberCall2 ); 
14585                                         }
14586         YY_BREAK
14587 case 160:
14588 YY_RULE_SETUP
14589 #line 3153 "code.l"
14590
14591                                           g_code->codify(codeYYtext);
14592                                           int s=0;while (!isId(codeYYtext[s])) s++;
14593                                           int e=(int)codeYYleng-1;while (!isId(codeYYtext[e])) e--;
14594                                           g_name=((QCString)codeYYtext).mid(s,e-s+1); 
14595                                           BEGIN( MemberCall2 ); 
14596                                         }
14597         YY_BREAK
14598 case 161:
14599 /* rule 161 can match eol */
14600 YY_RULE_SETUP
14601 #line 3160 "code.l"
14602
14603                                           if (!g_args.isEmpty())
14604                                             generateMemberLink(*g_code,g_args,codeYYtext);
14605                                           else
14606                                             generateClassOrGlobalLink(*g_code,codeYYtext);
14607                                           g_args.resize(0);
14608                                           BEGIN( FuncCall );
14609                                         }
14610         YY_BREAK
14611 case 162:
14612 /* rule 162 can match eol */
14613 YY_RULE_SETUP
14614 #line 3168 "code.l"
14615 {
14616                                           //g_code->codify(codeYYtext);
14617                                           g_name=codeYYtext; 
14618                                           generateClassOrGlobalLink(*g_code,codeYYtext);
14619                                           BEGIN( MemberCall2 ); 
14620                                         }
14621         YY_BREAK
14622 case 163:
14623 YY_RULE_SETUP
14624 #line 3174 "code.l"
14625 {
14626                                           if (codeYYtext[0]=='-') // -> could be overloaded
14627                                           {
14628                                             updateCallContextForSmartPointer();
14629                                           }
14630                                           g_code->codify(codeYYtext);
14631                                           g_memCallContext = YY_START;
14632                                           BEGIN( MemberCall ); 
14633                                         }
14634         YY_BREAK
14635 case 164:
14636 YY_RULE_SETUP
14637 #line 3183 "code.l"
14638
14639                                           g_code->codify(codeYYtext);
14640                                           endFontClass();
14641                                           BEGIN( g_lastCContext ) ; 
14642                                         }
14643         YY_BREAK
14644 case 165:
14645 YY_RULE_SETUP
14646 #line 3188 "code.l"
14647 {
14648                                           g_code->codify(codeYYtext);
14649                                         }
14650         YY_BREAK
14651 case 166:
14652 YY_RULE_SETUP
14653 #line 3191 "code.l"
14654 {
14655                                           g_code->codify(codeYYtext);
14656                                         }
14657         YY_BREAK
14658 case 167:
14659 YY_RULE_SETUP
14660 #line 3194 "code.l"
14661
14662                                           g_code->codify(codeYYtext);
14663                                           endFontClass();
14664                                           if (g_lastCContext==SkipCPP)
14665                                           {
14666                                             startFontClass("preprocessor");
14667                                           }
14668                                           BEGIN( g_lastCContext ) ; 
14669                                         }
14670         YY_BREAK
14671 case 168:
14672 /* rule 168 can match eol */
14673 YY_RULE_SETUP
14674 #line 3203 "code.l"
14675 { // line continuation
14676                                           codifyLines(codeYYtext);
14677                                         }
14678         YY_BREAK
14679 case 169:
14680 YY_RULE_SETUP
14681 #line 3206 "code.l"
14682
14683                                           g_code->codify(codeYYtext);
14684                                         }
14685         YY_BREAK
14686 case 170:
14687 YY_RULE_SETUP
14688 #line 3209 "code.l"
14689
14690         YY_BREAK
14691 case 171:
14692 /* rule 171 can match eol */
14693 YY_RULE_SETUP
14694 #line 3210 "code.l"
14695 {
14696                                           unput('\n');
14697                                           endFontClass();
14698                                           BEGIN( g_lastCContext ) ;
14699                                         }
14700         YY_BREAK
14701 case 172:
14702 YY_RULE_SETUP
14703 #line 3215 "code.l"
14704 {
14705                                           g_code->codify(codeYYtext);
14706                                         }
14707         YY_BREAK
14708 case 173:
14709 /* rule 173 can match eol */
14710 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */
14711 (yy_c_buf_p) = yy_cp -= 1;
14712 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */
14713 YY_RULE_SETUP
14714 #line 3218 "code.l"
14715 {
14716                                           g_yyLineNr+=QCString(codeYYtext).contains('\n');
14717                                         }
14718         YY_BREAK
14719 case 174:
14720 /* rule 174 can match eol */
14721 YY_RULE_SETUP
14722 #line 3221 "code.l"
14723 {
14724                                           g_yyLineNr+=QCString(codeYYtext).contains('\n');
14725                                           nextCodeLine();
14726                                           if (g_lastSpecialCContext==SkipCxxComment)
14727                                           { // force end of C++ comment here
14728                                             endFontClass();
14729                                             BEGIN( g_lastCContext ) ;
14730                                           }
14731                                           else
14732                                           {
14733                                             BEGIN(g_lastSpecialCContext);
14734                                           }
14735                                         }
14736         YY_BREAK
14737 case 175:
14738 YY_RULE_SETUP
14739 #line 3234 "code.l"
14740 {
14741                                           BEGIN(g_lastSpecialCContext);
14742                                         }
14743         YY_BREAK
14744 case 176:
14745 YY_RULE_SETUP
14746 #line 3237 "code.l"
14747
14748         YY_BREAK
14749 case 177:
14750 YY_RULE_SETUP
14751 #line 3238 "code.l"
14752
14753         YY_BREAK
14754 case 178:
14755 /* rule 178 can match eol */
14756 YY_RULE_SETUP
14757 #line 3239 "code.l"
14758 { g_yyLineNr++; }
14759         YY_BREAK
14760 case 179:
14761 YY_RULE_SETUP
14762 #line 3240 "code.l"
14763
14764         YY_BREAK
14765 case 180:
14766 YY_RULE_SETUP
14767 #line 3241 "code.l"
14768
14769                                           g_code->codify(codeYYtext);
14770                                           g_type.resize(0);
14771                                           g_name.resize(0);
14772                                           BEGIN(g_memCallContext); 
14773                                         }
14774         YY_BREAK
14775 case 181:
14776 /* rule 181 can match eol */
14777 YY_RULE_SETUP
14778 #line 3247 "code.l"
14779 { // remove special one-line comment
14780                                           if (YY_START==SkipCPP) REJECT;
14781                                           if (Config_getBool("STRIP_CODE_COMMENTS"))
14782                                           {
14783                                             g_yyLineNr+=((QCString)codeYYtext).contains('\n');
14784                                             nextCodeLine();
14785                                           }
14786                                           else
14787                                           {
14788                                             startFontClass("comment");
14789                                             codifyLines(codeYYtext);
14790                                             endFontClass();
14791                                           }
14792                                           if (YY_START==SkipCxxComment)
14793                                           {
14794                                             endFontClass();
14795                                             BEGIN( g_lastCContext ) ;
14796                                           }
14797                                         }
14798         YY_BREAK
14799 case 182:
14800 /* rule 182 can match eol */
14801 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */
14802 (yy_c_buf_p) = yy_cp = yy_bp + 1;
14803 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */
14804 YY_RULE_SETUP
14805 #line 3266 "code.l"
14806
14807                                           codifyLines(codeYYtext);
14808                                           endFontClass();
14809                                           BEGIN( g_lastSkipCppContext ) ;
14810                                         }
14811         YY_BREAK
14812 case 183:
14813 /* rule 183 can match eol */
14814 YY_RULE_SETUP
14815 #line 3271 "code.l"
14816 { // remove one-line group marker
14817                                           if (Config_getBool("STRIP_CODE_COMMENTS"))
14818                                           {
14819                                             g_yyLineNr+=2;
14820                                             nextCodeLine();
14821                                           }
14822                                           else
14823                                           {
14824                                             startFontClass("comment");
14825                                             codifyLines(codeYYtext);
14826                                             endFontClass();
14827                                           }
14828                                           if (YY_START==SkipCxxComment)
14829                                           {
14830                                             endFontClass();
14831                                             BEGIN( g_lastCContext ) ;
14832                                           }
14833                                         }
14834         YY_BREAK
14835 case 184:
14836 /* rule 184 can match eol */
14837 YY_RULE_SETUP
14838 #line 3289 "code.l"
14839 { // remove one-line group marker
14840                                           if (Config_getBool("STRIP_CODE_COMMENTS"))
14841                                           {
14842                                             g_lastSpecialCContext = YY_START;
14843                                             g_yyLineNr++;
14844                                             BEGIN(RemoveSpecialCComment);
14845                                           }
14846                                           else
14847                                           {
14848                                             // check is to prevent getting stuck in skipping C++ comments
14849                                             if (YY_START != SkipCxxComment)
14850                                             {
14851                                               g_lastCContext = YY_START ;
14852                                             }
14853                                             startFontClass("comment");
14854                                             codifyLines(codeYYtext);
14855                                             BEGIN(SkipComment);
14856                                           }
14857                                         }
14858         YY_BREAK
14859 case 185:
14860 /* rule 185 can match eol */
14861 YY_RULE_SETUP
14862 #line 3308 "code.l"
14863 { // remove one-line group marker
14864                                           if (Config_getBool("STRIP_CODE_COMMENTS"))
14865                                           {
14866                                             g_yyLineNr++;
14867                                             nextCodeLine();
14868                                           }
14869                                           else
14870                                           {
14871                                             startFontClass("comment");
14872                                             codifyLines(codeYYtext);
14873                                             endFontClass();
14874                                           }
14875                                         }
14876         YY_BREAK
14877 case 186:
14878 YY_RULE_SETUP
14879 #line 3321 "code.l"
14880 { // remove multi-line group marker
14881                                           if (Config_getBool("STRIP_CODE_COMMENTS"))
14882                                           {
14883                                             g_lastSpecialCContext = YY_START;
14884                                             BEGIN(RemoveSpecialCComment);
14885                                           }
14886                                           else
14887                                           {
14888                                             // check is to prevent getting stuck in skipping C++ comments
14889                                             if (YY_START != SkipCxxComment)
14890                                             {
14891                                               g_lastCContext = YY_START ;
14892                                             }
14893                                             startFontClass("comment");
14894                                             g_code->codify(codeYYtext);
14895                                             BEGIN(SkipComment);
14896                                           }
14897                                         }
14898         YY_BREAK
14899 case 187:
14900 /* rule 187 can match eol */
14901 YY_RULE_SETUP
14902 #line 3339 "code.l"
14903 { // remove special one-line comment
14904                                           if (Config_getBool("STRIP_CODE_COMMENTS"))
14905                                           {
14906                                             g_yyLineNr++;
14907                                             nextCodeLine();
14908                                           }
14909                                           else
14910                                           {
14911                                             startFontClass("comment");
14912                                             codifyLines(codeYYtext);
14913                                             endFontClass();
14914                                           }
14915                                         }
14916         YY_BREAK
14917 case 188:
14918 /* rule 188 can match eol */
14919 YY_RULE_SETUP
14920 #line 3352 "code.l"
14921 { // strip special one-line comment
14922                                           if (YY_START==SkipComment || YY_START==SkipString) REJECT;
14923                                           if (Config_getBool("STRIP_CODE_COMMENTS"))
14924                                           {
14925                                             char c[2]; c[0]='\n'; c[1]=0;
14926                                             codifyLines(c);
14927                                           }
14928                                           else
14929                                           {
14930                                             startFontClass("comment");
14931                                             codifyLines(codeYYtext);
14932                                             endFontClass();
14933                                           }
14934                                         }
14935         YY_BREAK
14936 case 189:
14937 YY_RULE_SETUP
14938 #line 3366 "code.l"
14939 { // special pattern /*[tag:filename]*/ to force linking to a tag file
14940                                           g_forceTagReference=codeYYtext;
14941                                           int s=g_forceTagReference.find(':');
14942                                           int e=g_forceTagReference.findRev(']');
14943                                           g_forceTagReference = g_forceTagReference.mid(s+1,e-s-1);
14944                                         }
14945         YY_BREAK
14946 case 190:
14947 /* rule 190 can match eol */
14948 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */
14949 (yy_c_buf_p) = yy_cp -= 1;
14950 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */
14951 YY_RULE_SETUP
14952 #line 3372 "code.l"
14953 {
14954                                           if (Config_getBool("STRIP_CODE_COMMENTS"))
14955                                           {
14956                                             g_lastSpecialCContext = YY_START;
14957                                             g_yyLineNr++;
14958                                             BEGIN(RemoveSpecialCComment);
14959                                           }
14960                                           else
14961                                           {
14962                                             // check is to prevent getting stuck in skipping C++ comments
14963                                             if (YY_START != SkipCxxComment)
14964                                             {
14965                                               g_lastCContext = YY_START ;
14966                                             }
14967                                             startFontClass("comment");
14968                                             codifyLines(codeYYtext);
14969                                             BEGIN(SkipComment);
14970                                           }
14971                                         }
14972         YY_BREAK
14973 case 191:
14974 /* rule 191 can match eol */
14975 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */
14976 (yy_c_buf_p) = yy_cp -= 1;
14977 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */
14978 YY_RULE_SETUP
14979 #line 3391 "code.l"
14980 { // special C comment block at a new line
14981                                           if (Config_getBool("STRIP_CODE_COMMENTS"))
14982                                           {
14983                                             g_lastSpecialCContext = YY_START;
14984                                             BEGIN(RemoveSpecialCComment);
14985                                           }
14986                                           else
14987                                           {
14988                                             // check is to prevent getting stuck in skipping C++ comments
14989                                             if (YY_START != SkipCxxComment)
14990                                             {
14991                                               g_lastCContext = YY_START ;
14992                                             }
14993                                             startFontClass("comment");
14994                                             g_code->codify(codeYYtext);
14995                                             BEGIN(SkipComment);
14996                                           }
14997                                         }
14998         YY_BREAK
14999 case 192:
15000 /* rule 192 can match eol */
15001 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */
15002 (yy_c_buf_p) = yy_cp = yy_bp + 3;
15003 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */
15004 YY_RULE_SETUP
15005 #line 3409 "code.l"
15006 { // special C comment block half way a line
15007                                           if (YY_START==SkipString) REJECT;
15008                                           if (Config_getBool("STRIP_CODE_COMMENTS"))
15009                                           {
15010                                             g_lastSpecialCContext = YY_START;
15011                                             BEGIN(RemoveSpecialCComment);
15012                                           }
15013                                           else
15014                                           {
15015                                             // check is to prevent getting stuck in skipping C++ comments
15016                                             if (YY_START != SkipCxxComment)
15017                                             {
15018                                               g_lastCContext = YY_START ;
15019                                             }
15020                                             startFontClass("comment");
15021                                             g_code->codify(codeYYtext);
15022                                             BEGIN(SkipComment);
15023                                           }
15024                                         }
15025         YY_BREAK
15026 case 193:
15027 YY_RULE_SETUP
15028 #line 3428 "code.l"
15029
15030                                           if (YY_START==SkipString) REJECT;
15031                                           if (!Config_getBool("STRIP_CODE_COMMENTS"))
15032                                           {
15033                                             startFontClass("comment");
15034                                             g_code->codify(codeYYtext);
15035                                             endFontClass();
15036                                           }
15037                                         }
15038         YY_BREAK
15039 case 194:
15040 YY_RULE_SETUP
15041 #line 3437 "code.l"
15042
15043                                           startFontClass("comment");
15044                                           g_code->codify(codeYYtext);
15045                                           // check is to prevent getting stuck in skipping C++ comments
15046                                           if (YY_START != SkipCxxComment)
15047                                           {
15048                                             g_lastCContext = YY_START ;
15049                                           }
15050                                           BEGIN( SkipComment ) ;
15051                                         }
15052         YY_BREAK
15053 case 195:
15054 YY_RULE_SETUP
15055 #line 3447 "code.l"
15056 { // C# verbatim string
15057                                           startFontClass("stringliteral");
15058                                           g_code->codify(codeYYtext);
15059                                           g_lastVerbStringContext=YY_START;
15060                                           BEGIN(SkipVerbString);
15061                                         }
15062         YY_BREAK
15063 case 196:
15064 YY_RULE_SETUP
15065 #line 3453 "code.l"
15066
15067                                           startFontClass("comment");
15068                                           g_code->codify(codeYYtext);
15069                                           g_lastCContext = YY_START ;
15070                                           BEGIN( SkipCxxComment ) ;
15071                                         }
15072         YY_BREAK
15073 case 197:
15074 YY_RULE_SETUP
15075 #line 3459 "code.l"
15076 {
15077                                           g_code->codify(codeYYtext);
15078                                           g_theCallContext.pushScope();
15079                                         }
15080         YY_BREAK
15081 case 198:
15082 YY_RULE_SETUP
15083 #line 3463 "code.l"
15084 {
15085                                           g_code->codify(codeYYtext);
15086                                           g_theCallContext.popScope();
15087                                         }
15088         YY_BREAK
15089 case 199:
15090 /* rule 199 can match eol */
15091 YY_RULE_SETUP
15092 #line 3467 "code.l"
15093 {
15094                                           codifyLines(codeYYtext); 
15095                                         }
15096         YY_BREAK
15097 case 200:
15098 YY_RULE_SETUP
15099 #line 3470 "code.l"
15100 {
15101                                           g_code->codify(codeYYtext);
15102                                         }
15103         YY_BREAK
15104 /*
15105 <*>([ \t\n]*"\n"){2,}                   { // combine multiple blank lines
15106                                           //QCString sepLine=codeYYtext;
15107                                           //g_code->codify("\n\n");
15108                                           //g_yyLineNr+=sepLine.contains('\n'); 
15109                                           //char sepLine[3]="\n\n";
15110                                           codifyLines(codeYYtext);
15111                                         }
15112   */
15113 case 201:
15114 YY_RULE_SETUP
15115 #line 3483 "code.l"
15116 ECHO;
15117         YY_BREAK
15118 #line 15119 "<stdout>"
15119                         case YY_STATE_EOF(INITIAL):
15120                         case YY_STATE_EOF(SkipString):
15121                         case YY_STATE_EOF(SkipStringS):
15122                         case YY_STATE_EOF(SkipVerbString):
15123                         case YY_STATE_EOF(SkipCPP):
15124                         case YY_STATE_EOF(SkipComment):
15125                         case YY_STATE_EOF(SkipCxxComment):
15126                         case YY_STATE_EOF(RemoveSpecialCComment):
15127                         case YY_STATE_EOF(StripSpecialCComment):
15128                         case YY_STATE_EOF(Body):
15129                         case YY_STATE_EOF(FuncCall):
15130                         case YY_STATE_EOF(MemberCall):
15131                         case YY_STATE_EOF(MemberCall2):
15132                         case YY_STATE_EOF(SkipInits):
15133                         case YY_STATE_EOF(ClassName):
15134                         case YY_STATE_EOF(PackageName):
15135                         case YY_STATE_EOF(ClassVar):
15136                         case YY_STATE_EOF(CppCliTypeModifierFollowup):
15137                         case YY_STATE_EOF(Bases):
15138                         case YY_STATE_EOF(SkipSharp):
15139                         case YY_STATE_EOF(ReadInclude):
15140                         case YY_STATE_EOF(TemplDecl):
15141                         case YY_STATE_EOF(TemplCast):
15142                         case YY_STATE_EOF(CallEnd):
15143                         case YY_STATE_EOF(ObjCMethod):
15144                         case YY_STATE_EOF(ObjCParams):
15145                         case YY_STATE_EOF(ObjCParamType):
15146                         case YY_STATE_EOF(ObjCCall):
15147                         case YY_STATE_EOF(ObjCMName):
15148                         case YY_STATE_EOF(ObjCSkipStr):
15149                         case YY_STATE_EOF(OldStyleArgs):
15150                         case YY_STATE_EOF(UsingName):
15151                         case YY_STATE_EOF(RawString):
15152                                 yyterminate();
15153
15154         case YY_END_OF_BUFFER:
15155                 {
15156                 /* Amount of text matched not including the EOB char. */
15157                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
15158
15159                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
15160                 *yy_cp = (yy_hold_char);
15161                 YY_RESTORE_YY_MORE_OFFSET
15162
15163                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
15164                         {
15165                         /* We're scanning a new file or input source.  It's
15166                          * possible that this happened because the user
15167                          * just pointed codeYYin at a new source and called
15168                          * codeYYlex().  If so, then we have to assure
15169                          * consistency between YY_CURRENT_BUFFER and our
15170                          * globals.  Here is the right place to do so, because
15171                          * this is the first action (other than possibly a
15172                          * back-up) that will match for the new input source.
15173                          */
15174                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
15175                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = codeYYin;
15176                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
15177                         }
15178
15179                 /* Note that here we test for yy_c_buf_p "<=" to the position
15180                  * of the first EOB in the buffer, since yy_c_buf_p will
15181                  * already have been incremented past the NUL character
15182                  * (since all states make transitions on EOB to the
15183                  * end-of-buffer state).  Contrast this with the test
15184                  * in input().
15185                  */
15186                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
15187                         { /* This was really a NUL. */
15188                         yy_state_type yy_next_state;
15189
15190                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
15191
15192                         yy_current_state = yy_get_previous_state(  );
15193
15194                         /* Okay, we're now positioned to make the NUL
15195                          * transition.  We couldn't have
15196                          * yy_get_previous_state() go ahead and do it
15197                          * for us because it doesn't know how to deal
15198                          * with the possibility of jamming (and we don't
15199                          * want to build jamming into it because then it
15200                          * will run more slowly).
15201                          */
15202
15203                         yy_next_state = yy_try_NUL_trans( yy_current_state );
15204
15205                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
15206
15207                         if ( yy_next_state )
15208                                 {
15209                                 /* Consume the NUL. */
15210                                 yy_cp = ++(yy_c_buf_p);
15211                                 yy_current_state = yy_next_state;
15212                                 goto yy_match;
15213                                 }
15214
15215                         else
15216                                 {
15217                                 yy_cp = (yy_c_buf_p);
15218                                 goto yy_find_action;
15219                                 }
15220                         }
15221
15222                 else switch ( yy_get_next_buffer(  ) )
15223                         {
15224                         case EOB_ACT_END_OF_FILE:
15225                                 {
15226                                 (yy_did_buffer_switch_on_eof) = 0;
15227
15228                                 if ( codeYYwrap( ) )
15229                                         {
15230                                         /* Note: because we've taken care in
15231                                          * yy_get_next_buffer() to have set up
15232                                          * codeYYtext, we can now set up
15233                                          * yy_c_buf_p so that if some total
15234                                          * hoser (like flex itself) wants to
15235                                          * call the scanner after we return the
15236                                          * YY_NULL, it'll still work - another
15237                                          * YY_NULL will get returned.
15238                                          */
15239                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
15240
15241                                         yy_act = YY_STATE_EOF(YY_START);
15242                                         goto do_action;
15243                                         }
15244
15245                                 else
15246                                         {
15247                                         if ( ! (yy_did_buffer_switch_on_eof) )
15248                                                 YY_NEW_FILE;
15249                                         }
15250                                 break;
15251                                 }
15252
15253                         case EOB_ACT_CONTINUE_SCAN:
15254                                 (yy_c_buf_p) =
15255                                         (yytext_ptr) + yy_amount_of_matched_text;
15256
15257                                 yy_current_state = yy_get_previous_state(  );
15258
15259                                 yy_cp = (yy_c_buf_p);
15260                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
15261                                 goto yy_match;
15262
15263                         case EOB_ACT_LAST_MATCH:
15264                                 (yy_c_buf_p) =
15265                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
15266
15267                                 yy_current_state = yy_get_previous_state(  );
15268
15269                                 yy_cp = (yy_c_buf_p);
15270                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
15271                                 goto yy_find_action;
15272                         }
15273                 break;
15274                 }
15275
15276         default:
15277                 YY_FATAL_ERROR(
15278                         "fatal flex scanner internal error--no action found" );
15279         } /* end of action switch */
15280                 } /* end of scanning one token */
15281 } /* end of codeYYlex */
15282
15283 /* yy_get_next_buffer - try to read in a new buffer
15284  *
15285  * Returns a code representing an action:
15286  *      EOB_ACT_LAST_MATCH -
15287  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
15288  *      EOB_ACT_END_OF_FILE - end of file
15289  */
15290 static int yy_get_next_buffer (void)
15291 {
15292         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
15293         register char *source = (yytext_ptr);
15294         register int number_to_move, i;
15295         int ret_val;
15296
15297         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
15298                 YY_FATAL_ERROR(
15299                 "fatal flex scanner internal error--end of buffer missed" );
15300
15301         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
15302                 { /* Don't try to fill the buffer, so this is an EOF. */
15303                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
15304                         {
15305                         /* We matched a single character, the EOB, so
15306                          * treat this as a final EOF.
15307                          */
15308                         return EOB_ACT_END_OF_FILE;
15309                         }
15310
15311                 else
15312                         {
15313                         /* We matched some text prior to the EOB, first
15314                          * process it.
15315                          */
15316                         return EOB_ACT_LAST_MATCH;
15317                         }
15318                 }
15319
15320         /* Try to read more data. */
15321
15322         /* First move last chars to start of buffer. */
15323         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
15324
15325         for ( i = 0; i < number_to_move; ++i )
15326                 *(dest++) = *(source++);
15327
15328         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
15329                 /* don't do the read, it's not guaranteed to return an EOF,
15330                  * just force an EOF
15331                  */
15332                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
15333
15334         else
15335                 {
15336                         yy_size_t num_to_read =
15337                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
15338
15339                 while ( num_to_read <= 0 )
15340                         { /* Not enough room in the buffer - grow it. */
15341
15342                         YY_FATAL_ERROR(
15343 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
15344
15345                         }
15346
15347                 if ( num_to_read > YY_READ_BUF_SIZE )
15348                         num_to_read = YY_READ_BUF_SIZE;
15349
15350                 /* Read in more data. */
15351                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
15352                         (yy_n_chars), num_to_read );
15353
15354                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
15355                 }
15356
15357         if ( (yy_n_chars) == 0 )
15358                 {
15359                 if ( number_to_move == YY_MORE_ADJ )
15360                         {
15361                         ret_val = EOB_ACT_END_OF_FILE;
15362                         codeYYrestart(codeYYin  );
15363                         }
15364
15365                 else
15366                         {
15367                         ret_val = EOB_ACT_LAST_MATCH;
15368                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
15369                                 YY_BUFFER_EOF_PENDING;
15370                         }
15371                 }
15372
15373         else
15374                 ret_val = EOB_ACT_CONTINUE_SCAN;
15375
15376         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
15377                 /* Extend the array by 50%, plus the number we really need. */
15378                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
15379                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) codeYYrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
15380                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
15381                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
15382         }
15383
15384         (yy_n_chars) += number_to_move;
15385         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
15386         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
15387
15388         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
15389
15390         return ret_val;
15391 }
15392
15393 /* yy_get_previous_state - get the state just before the EOB char was reached */
15394
15395     static yy_state_type yy_get_previous_state (void)
15396 {
15397         register yy_state_type yy_current_state;
15398         register char *yy_cp;
15399     
15400         yy_current_state = (yy_start);
15401         yy_current_state += YY_AT_BOL();
15402
15403         (yy_state_ptr) = (yy_state_buf);
15404         *(yy_state_ptr)++ = yy_current_state;
15405
15406         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
15407                 {
15408                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
15409                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
15410                         {
15411                         yy_current_state = (int) yy_def[yy_current_state];
15412                         if ( yy_current_state >= 3492 )
15413                                 yy_c = yy_meta[(unsigned int) yy_c];
15414                         }
15415                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
15416                 *(yy_state_ptr)++ = yy_current_state;
15417                 }
15418
15419         return yy_current_state;
15420 }
15421
15422 /* yy_try_NUL_trans - try to make a transition on the NUL character
15423  *
15424  * synopsis
15425  *      next_state = yy_try_NUL_trans( current_state );
15426  */
15427     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
15428 {
15429         register int yy_is_jam;
15430     
15431         register YY_CHAR yy_c = 1;
15432         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
15433                 {
15434                 yy_current_state = (int) yy_def[yy_current_state];
15435                 if ( yy_current_state >= 3492 )
15436                         yy_c = yy_meta[(unsigned int) yy_c];
15437                 }
15438         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
15439         yy_is_jam = (yy_current_state == 3491);
15440         if ( ! yy_is_jam )
15441                 *(yy_state_ptr)++ = yy_current_state;
15442
15443         return yy_is_jam ? 0 : yy_current_state;
15444 }
15445
15446     static void yyunput (int c, register char * yy_bp )
15447 {
15448         register char *yy_cp;
15449     
15450     yy_cp = (yy_c_buf_p);
15451
15452         /* undo effects of setting up codeYYtext */
15453         *yy_cp = (yy_hold_char);
15454
15455         if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
15456                 { /* need to shift things up to make room */
15457                 /* +2 for EOB chars. */
15458                 register yy_size_t number_to_move = (yy_n_chars) + 2;
15459                 register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
15460                                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
15461                 register char *source =
15462                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
15463
15464                 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
15465                         *--dest = *--source;
15466
15467                 yy_cp += (int) (dest - source);
15468                 yy_bp += (int) (dest - source);
15469                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
15470                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
15471
15472                 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
15473                         YY_FATAL_ERROR( "flex scanner push-back overflow" );
15474                 }
15475
15476         *--yy_cp = (char) c;
15477
15478         (yytext_ptr) = yy_bp;
15479         (yy_hold_char) = *yy_cp;
15480         (yy_c_buf_p) = yy_cp;
15481 }
15482
15483 #ifndef YY_NO_INPUT
15484 #ifdef __cplusplus
15485     static int yyinput (void)
15486 #else
15487     static int input  (void)
15488 #endif
15489
15490 {
15491         int c;
15492     
15493         *(yy_c_buf_p) = (yy_hold_char);
15494
15495         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
15496                 {
15497                 /* yy_c_buf_p now points to the character we want to return.
15498                  * If this occurs *before* the EOB characters, then it's a
15499                  * valid NUL; if not, then we've hit the end of the buffer.
15500                  */
15501                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
15502                         /* This was really a NUL. */
15503                         *(yy_c_buf_p) = '\0';
15504
15505                 else
15506                         { /* need more input */
15507                         yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
15508                         ++(yy_c_buf_p);
15509
15510                         switch ( yy_get_next_buffer(  ) )
15511                                 {
15512                                 case EOB_ACT_LAST_MATCH:
15513                                         /* This happens because yy_g_n_b()
15514                                          * sees that we've accumulated a
15515                                          * token and flags that we need to
15516                                          * try matching the token before
15517                                          * proceeding.  But for input(),
15518                                          * there's no matching to consider.
15519                                          * So convert the EOB_ACT_LAST_MATCH
15520                                          * to EOB_ACT_END_OF_FILE.
15521                                          */
15522
15523                                         /* Reset buffer status. */
15524                                         codeYYrestart(codeYYin );
15525
15526                                         /*FALLTHROUGH*/
15527
15528                                 case EOB_ACT_END_OF_FILE:
15529                                         {
15530                                         if ( codeYYwrap( ) )
15531                                                 return 0;
15532
15533                                         if ( ! (yy_did_buffer_switch_on_eof) )
15534                                                 YY_NEW_FILE;
15535 #ifdef __cplusplus
15536                                         return yyinput();
15537 #else
15538                                         return input();
15539 #endif
15540                                         }
15541
15542                                 case EOB_ACT_CONTINUE_SCAN:
15543                                         (yy_c_buf_p) = (yytext_ptr) + offset;
15544                                         break;
15545                                 }
15546                         }
15547                 }
15548
15549         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
15550         *(yy_c_buf_p) = '\0';   /* preserve codeYYtext */
15551         (yy_hold_char) = *++(yy_c_buf_p);
15552
15553         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
15554
15555         return c;
15556 }
15557 #endif  /* ifndef YY_NO_INPUT */
15558
15559 /** Immediately switch to a different input stream.
15560  * @param input_file A readable stream.
15561  * 
15562  * @note This function does not reset the start condition to @c INITIAL .
15563  */
15564     void codeYYrestart  (FILE * input_file )
15565 {
15566     
15567         if ( ! YY_CURRENT_BUFFER ){
15568         codeYYensure_buffer_stack ();
15569                 YY_CURRENT_BUFFER_LVALUE =
15570             codeYY_create_buffer(codeYYin,YY_BUF_SIZE );
15571         }
15572
15573         codeYY_init_buffer(YY_CURRENT_BUFFER,input_file );
15574         codeYY_load_buffer_state( );
15575 }
15576
15577 /** Switch to a different input buffer.
15578  * @param new_buffer The new input buffer.
15579  * 
15580  */
15581     void codeYY_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
15582 {
15583     
15584         /* TODO. We should be able to replace this entire function body
15585          * with
15586          *              codeYYpop_buffer_state();
15587          *              codeYYpush_buffer_state(new_buffer);
15588      */
15589         codeYYensure_buffer_stack ();
15590         if ( YY_CURRENT_BUFFER == new_buffer )
15591                 return;
15592
15593         if ( YY_CURRENT_BUFFER )
15594                 {
15595                 /* Flush out information for old buffer. */
15596                 *(yy_c_buf_p) = (yy_hold_char);
15597                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
15598                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
15599                 }
15600
15601         YY_CURRENT_BUFFER_LVALUE = new_buffer;
15602         codeYY_load_buffer_state( );
15603
15604         /* We don't actually know whether we did this switch during
15605          * EOF (codeYYwrap()) processing, but the only time this flag
15606          * is looked at is after codeYYwrap() is called, so it's safe
15607          * to go ahead and always set it.
15608          */
15609         (yy_did_buffer_switch_on_eof) = 1;
15610 }
15611
15612 static void codeYY_load_buffer_state  (void)
15613 {
15614         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
15615         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
15616         codeYYin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
15617         (yy_hold_char) = *(yy_c_buf_p);
15618 }
15619
15620 /** Allocate and initialize an input buffer state.
15621  * @param file A readable stream.
15622  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
15623  * 
15624  * @return the allocated buffer state.
15625  */
15626     YY_BUFFER_STATE codeYY_create_buffer  (FILE * file, int  size )
15627 {
15628         YY_BUFFER_STATE b;
15629     
15630         b = (YY_BUFFER_STATE) codeYYalloc(sizeof( struct yy_buffer_state )  );
15631         if ( ! b )
15632                 YY_FATAL_ERROR( "out of dynamic memory in codeYY_create_buffer()" );
15633
15634         b->yy_buf_size = size;
15635
15636         /* yy_ch_buf has to be 2 characters longer than the size given because
15637          * we need to put in 2 end-of-buffer characters.
15638          */
15639         b->yy_ch_buf = (char *) codeYYalloc(b->yy_buf_size + 2  );
15640         if ( ! b->yy_ch_buf )
15641                 YY_FATAL_ERROR( "out of dynamic memory in codeYY_create_buffer()" );
15642
15643         b->yy_is_our_buffer = 1;
15644
15645         codeYY_init_buffer(b,file );
15646
15647         return b;
15648 }
15649
15650 /** Destroy the buffer.
15651  * @param b a buffer created with codeYY_create_buffer()
15652  * 
15653  */
15654     void codeYY_delete_buffer (YY_BUFFER_STATE  b )
15655 {
15656     
15657         if ( ! b )
15658                 return;
15659
15660         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
15661                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
15662
15663         if ( b->yy_is_our_buffer )
15664                 codeYYfree((void *) b->yy_ch_buf  );
15665
15666         codeYYfree((void *) b  );
15667 }
15668
15669 #ifndef __cplusplus
15670 extern int isatty (int );
15671 #endif /* __cplusplus */
15672     
15673 /* Initializes or reinitializes a buffer.
15674  * This function is sometimes called more than once on the same buffer,
15675  * such as during a codeYYrestart() or at EOF.
15676  */
15677     static void codeYY_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
15678
15679 {
15680         int oerrno = errno;
15681     
15682         codeYY_flush_buffer(b );
15683
15684         b->yy_input_file = file;
15685         b->yy_fill_buffer = 1;
15686
15687     /* If b is the current buffer, then codeYY_init_buffer was _probably_
15688      * called from codeYYrestart() or through yy_get_next_buffer.
15689      * In that case, we don't want to reset the lineno or column.
15690      */
15691     if (b != YY_CURRENT_BUFFER){
15692         b->yy_bs_lineno = 1;
15693         b->yy_bs_column = 0;
15694     }
15695
15696         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
15697     
15698         errno = oerrno;
15699 }
15700
15701 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
15702  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
15703  * 
15704  */
15705     void codeYY_flush_buffer (YY_BUFFER_STATE  b )
15706 {
15707         if ( ! b )
15708                 return;
15709
15710         b->yy_n_chars = 0;
15711
15712         /* We always need two end-of-buffer characters.  The first causes
15713          * a transition to the end-of-buffer state.  The second causes
15714          * a jam in that state.
15715          */
15716         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
15717         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
15718
15719         b->yy_buf_pos = &b->yy_ch_buf[0];
15720
15721         b->yy_at_bol = 1;
15722         b->yy_buffer_status = YY_BUFFER_NEW;
15723
15724         if ( b == YY_CURRENT_BUFFER )
15725                 codeYY_load_buffer_state( );
15726 }
15727
15728 /** Pushes the new state onto the stack. The new state becomes
15729  *  the current state. This function will allocate the stack
15730  *  if necessary.
15731  *  @param new_buffer The new state.
15732  *  
15733  */
15734 void codeYYpush_buffer_state (YY_BUFFER_STATE new_buffer )
15735 {
15736         if (new_buffer == NULL)
15737                 return;
15738
15739         codeYYensure_buffer_stack();
15740
15741         /* This block is copied from codeYY_switch_to_buffer. */
15742         if ( YY_CURRENT_BUFFER )
15743                 {
15744                 /* Flush out information for old buffer. */
15745                 *(yy_c_buf_p) = (yy_hold_char);
15746                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
15747                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
15748                 }
15749
15750         /* Only push if top exists. Otherwise, replace top. */
15751         if (YY_CURRENT_BUFFER)
15752                 (yy_buffer_stack_top)++;
15753         YY_CURRENT_BUFFER_LVALUE = new_buffer;
15754
15755         /* copied from codeYY_switch_to_buffer. */
15756         codeYY_load_buffer_state( );
15757         (yy_did_buffer_switch_on_eof) = 1;
15758 }
15759
15760 /** Removes and deletes the top of the stack, if present.
15761  *  The next element becomes the new top.
15762  *  
15763  */
15764 void codeYYpop_buffer_state (void)
15765 {
15766         if (!YY_CURRENT_BUFFER)
15767                 return;
15768
15769         codeYY_delete_buffer(YY_CURRENT_BUFFER );
15770         YY_CURRENT_BUFFER_LVALUE = NULL;
15771         if ((yy_buffer_stack_top) > 0)
15772                 --(yy_buffer_stack_top);
15773
15774         if (YY_CURRENT_BUFFER) {
15775                 codeYY_load_buffer_state( );
15776                 (yy_did_buffer_switch_on_eof) = 1;
15777         }
15778 }
15779
15780 /* Allocates the stack if it does not exist.
15781  *  Guarantees space for at least one push.
15782  */
15783 static void codeYYensure_buffer_stack (void)
15784 {
15785         yy_size_t num_to_alloc;
15786     
15787         if (!(yy_buffer_stack)) {
15788
15789                 /* First allocation is just for 2 elements, since we don't know if this
15790                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
15791                  * immediate realloc on the next call.
15792          */
15793                 num_to_alloc = 1;
15794                 (yy_buffer_stack) = (struct yy_buffer_state**)codeYYalloc
15795                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
15796                                                                 );
15797                 if ( ! (yy_buffer_stack) )
15798                         YY_FATAL_ERROR( "out of dynamic memory in codeYYensure_buffer_stack()" );
15799                                                                   
15800                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
15801                                 
15802                 (yy_buffer_stack_max) = num_to_alloc;
15803                 (yy_buffer_stack_top) = 0;
15804                 return;
15805         }
15806
15807         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
15808
15809                 /* Increase the buffer to prepare for a possible push. */
15810                 int grow_size = 8 /* arbitrary grow size */;
15811
15812                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
15813                 (yy_buffer_stack) = (struct yy_buffer_state**)codeYYrealloc
15814                                                                 ((yy_buffer_stack),
15815                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
15816                                                                 );
15817                 if ( ! (yy_buffer_stack) )
15818                         YY_FATAL_ERROR( "out of dynamic memory in codeYYensure_buffer_stack()" );
15819
15820                 /* zero only the new slots.*/
15821                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
15822                 (yy_buffer_stack_max) = num_to_alloc;
15823         }
15824 }
15825
15826 /** Setup the input buffer state to scan directly from a user-specified character buffer.
15827  * @param base the character buffer
15828  * @param size the size in bytes of the character buffer
15829  * 
15830  * @return the newly allocated buffer state object. 
15831  */
15832 YY_BUFFER_STATE codeYY_scan_buffer  (char * base, yy_size_t  size )
15833 {
15834         YY_BUFFER_STATE b;
15835     
15836         if ( size < 2 ||
15837              base[size-2] != YY_END_OF_BUFFER_CHAR ||
15838              base[size-1] != YY_END_OF_BUFFER_CHAR )
15839                 /* They forgot to leave room for the EOB's. */
15840                 return 0;
15841
15842         b = (YY_BUFFER_STATE) codeYYalloc(sizeof( struct yy_buffer_state )  );
15843         if ( ! b )
15844                 YY_FATAL_ERROR( "out of dynamic memory in codeYY_scan_buffer()" );
15845
15846         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
15847         b->yy_buf_pos = b->yy_ch_buf = base;
15848         b->yy_is_our_buffer = 0;
15849         b->yy_input_file = 0;
15850         b->yy_n_chars = b->yy_buf_size;
15851         b->yy_is_interactive = 0;
15852         b->yy_at_bol = 1;
15853         b->yy_fill_buffer = 0;
15854         b->yy_buffer_status = YY_BUFFER_NEW;
15855
15856         codeYY_switch_to_buffer(b  );
15857
15858         return b;
15859 }
15860
15861 /** Setup the input buffer state to scan a string. The next call to codeYYlex() will
15862  * scan from a @e copy of @a str.
15863  * @param yystr a NUL-terminated string to scan
15864  * 
15865  * @return the newly allocated buffer state object.
15866  * @note If you want to scan bytes that may contain NUL values, then use
15867  *       codeYY_scan_bytes() instead.
15868  */
15869 YY_BUFFER_STATE codeYY_scan_string (yyconst char * yystr )
15870 {
15871     
15872         return codeYY_scan_bytes(yystr,strlen(yystr) );
15873 }
15874
15875 /** Setup the input buffer state to scan the given bytes. The next call to codeYYlex() will
15876  * scan from a @e copy of @a bytes.
15877  * @param bytes the byte buffer to scan
15878  * @param len the number of bytes in the buffer pointed to by @a bytes.
15879  * 
15880  * @return the newly allocated buffer state object.
15881  */
15882 YY_BUFFER_STATE codeYY_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
15883 {
15884         YY_BUFFER_STATE b;
15885         char *buf;
15886         yy_size_t n, i;
15887     
15888         /* Get memory for full buffer, including space for trailing EOB's. */
15889         n = _yybytes_len + 2;
15890         buf = (char *) codeYYalloc(n  );
15891         if ( ! buf )
15892                 YY_FATAL_ERROR( "out of dynamic memory in codeYY_scan_bytes()" );
15893
15894         for ( i = 0; i < _yybytes_len; ++i )
15895                 buf[i] = yybytes[i];
15896
15897         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
15898
15899         b = codeYY_scan_buffer(buf,n );
15900         if ( ! b )
15901                 YY_FATAL_ERROR( "bad buffer in codeYY_scan_bytes()" );
15902
15903         /* It's okay to grow etc. this buffer, and we should throw it
15904          * away when we're done.
15905          */
15906         b->yy_is_our_buffer = 1;
15907
15908         return b;
15909 }
15910
15911 #ifndef YY_EXIT_FAILURE
15912 #define YY_EXIT_FAILURE 2
15913 #endif
15914
15915 static void yy_fatal_error (yyconst char* msg )
15916 {
15917         (void) fprintf( stderr, "%s\n", msg );
15918         exit( YY_EXIT_FAILURE );
15919 }
15920
15921 /* Redefine yyless() so it works in section 3 code. */
15922
15923 #undef yyless
15924 #define yyless(n) \
15925         do \
15926                 { \
15927                 /* Undo effects of setting up codeYYtext. */ \
15928         int yyless_macro_arg = (n); \
15929         YY_LESS_LINENO(yyless_macro_arg);\
15930                 codeYYtext[codeYYleng] = (yy_hold_char); \
15931                 (yy_c_buf_p) = codeYYtext + yyless_macro_arg; \
15932                 (yy_hold_char) = *(yy_c_buf_p); \
15933                 *(yy_c_buf_p) = '\0'; \
15934                 codeYYleng = yyless_macro_arg; \
15935                 } \
15936         while ( 0 )
15937
15938 /* Accessor  methods (get/set functions) to struct members. */
15939
15940 /** Get the current line number.
15941  * 
15942  */
15943 int codeYYget_lineno  (void)
15944 {
15945         
15946     return codeYYlineno;
15947 }
15948
15949 /** Get the input stream.
15950  * 
15951  */
15952 FILE *codeYYget_in  (void)
15953 {
15954         return codeYYin;
15955 }
15956
15957 /** Get the output stream.
15958  * 
15959  */
15960 FILE *codeYYget_out  (void)
15961 {
15962         return codeYYout;
15963 }
15964
15965 /** Get the length of the current token.
15966  * 
15967  */
15968 yy_size_t codeYYget_leng  (void)
15969 {
15970         return codeYYleng;
15971 }
15972
15973 /** Get the current token.
15974  * 
15975  */
15976
15977 char *codeYYget_text  (void)
15978 {
15979         return codeYYtext;
15980 }
15981
15982 /** Set the current line number.
15983  * @param line_number
15984  * 
15985  */
15986 void codeYYset_lineno (int  line_number )
15987 {
15988     
15989     codeYYlineno = line_number;
15990 }
15991
15992 /** Set the input stream. This does not discard the current
15993  * input buffer.
15994  * @param in_str A readable stream.
15995  * 
15996  * @see codeYY_switch_to_buffer
15997  */
15998 void codeYYset_in (FILE *  in_str )
15999 {
16000         codeYYin = in_str ;
16001 }
16002
16003 void codeYYset_out (FILE *  out_str )
16004 {
16005         codeYYout = out_str ;
16006 }
16007
16008 int codeYYget_debug  (void)
16009 {
16010         return codeYY_flex_debug;
16011 }
16012
16013 void codeYYset_debug (int  bdebug )
16014 {
16015         codeYY_flex_debug = bdebug ;
16016 }
16017
16018 static int yy_init_globals (void)
16019 {
16020         /* Initialization is the same as for the non-reentrant scanner.
16021      * This function is called from codeYYlex_destroy(), so don't allocate here.
16022      */
16023
16024     (yy_buffer_stack) = 0;
16025     (yy_buffer_stack_top) = 0;
16026     (yy_buffer_stack_max) = 0;
16027     (yy_c_buf_p) = (char *) 0;
16028     (yy_init) = 0;
16029     (yy_start) = 0;
16030
16031     (yy_state_buf) = 0;
16032     (yy_state_ptr) = 0;
16033     (yy_full_match) = 0;
16034     (yy_lp) = 0;
16035
16036 /* Defined in main.c */
16037 #ifdef YY_STDINIT
16038     codeYYin = stdin;
16039     codeYYout = stdout;
16040 #else
16041     codeYYin = (FILE *) 0;
16042     codeYYout = (FILE *) 0;
16043 #endif
16044
16045     /* For future reference: Set errno on error, since we are called by
16046      * codeYYlex_init()
16047      */
16048     return 0;
16049 }
16050
16051 /* codeYYlex_destroy is for both reentrant and non-reentrant scanners. */
16052 int codeYYlex_destroy  (void)
16053 {
16054     
16055     /* Pop the buffer stack, destroying each element. */
16056         while(YY_CURRENT_BUFFER){
16057                 codeYY_delete_buffer(YY_CURRENT_BUFFER  );
16058                 YY_CURRENT_BUFFER_LVALUE = NULL;
16059                 codeYYpop_buffer_state();
16060         }
16061
16062         /* Destroy the stack itself. */
16063         codeYYfree((yy_buffer_stack) );
16064         (yy_buffer_stack) = NULL;
16065
16066     codeYYfree ( (yy_state_buf) );
16067     (yy_state_buf)  = NULL;
16068
16069     /* Reset the globals. This is important in a non-reentrant scanner so the next time
16070      * codeYYlex() is called, initialization will occur. */
16071     yy_init_globals( );
16072
16073     return 0;
16074 }
16075
16076 /*
16077  * Internal utility routines.
16078  */
16079
16080 #ifndef yytext_ptr
16081 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
16082 {
16083         register int i;
16084         for ( i = 0; i < n; ++i )
16085                 s1[i] = s2[i];
16086 }
16087 #endif
16088
16089 #ifdef YY_NEED_STRLEN
16090 static int yy_flex_strlen (yyconst char * s )
16091 {
16092         register int n;
16093         for ( n = 0; s[n]; ++n )
16094                 ;
16095
16096         return n;
16097 }
16098 #endif
16099
16100 void *codeYYalloc (yy_size_t  size )
16101 {
16102         return (void *) malloc( size );
16103 }
16104
16105 void *codeYYrealloc  (void * ptr, yy_size_t  size )
16106 {
16107         /* The cast to (char *) in the following accommodates both
16108          * implementations that use char* generic pointers, and those
16109          * that use void* generic pointers.  It works with the latter
16110          * because both ANSI C and C++ allow castless assignment from
16111          * any pointer type to void*, and deal with argument conversions
16112          * as though doing an assignment.
16113          */
16114         return (void *) realloc( (char *) ptr, size );
16115 }
16116
16117 void codeYYfree (void * ptr )
16118 {
16119         free( (char *) ptr );   /* see codeYYrealloc() for (char *) cast */
16120 }
16121
16122 #define YYTABLES_NAME "yytables"
16123
16124 #line 3483 "code.l"
16125
16126
16127
16128 /*@ ----------------------------------------------------------------------------
16129  */
16130
16131 static void saveObjCContext()
16132 {
16133   if (g_currentCtx)
16134   {
16135     g_currentCtx->format+=QCString().sprintf("$c%d",g_currentCtxId);
16136     if (g_braceCount==0 && YY_START==ObjCCall)
16137     {
16138       g_currentCtx->objectTypeOrName=g_currentCtx->format.mid(1);
16139       //printf("new type=%s\n",g_currentCtx->objectTypeOrName.data());
16140     }
16141     g_contextStack.push(g_currentCtx);
16142   }
16143   else
16144   {
16145     //printf("Trying to save NULL context!\n");
16146   }
16147   ObjCCallCtx *newCtx = new ObjCCallCtx;
16148   newCtx->id = g_currentCtxId;
16149   newCtx->lexState = YY_START;
16150   newCtx->braceCount = g_braceCount;
16151   newCtx->objectType = 0;
16152   newCtx->objectVar = 0;
16153   newCtx->method = 0;
16154   //printf("save state=%d\n",YY_START);
16155   g_contextDict.insert(g_currentCtxId,newCtx);
16156   g_currentCtx = newCtx;
16157   g_braceCount = 0;
16158   g_currentCtxId++;
16159 }
16160
16161 static void restoreObjCContext()
16162 {
16163   //printf("restore state=%d->%d\n",YY_START,g_currentCtx->lexState);
16164   BEGIN(g_currentCtx->lexState);
16165   g_braceCount = g_currentCtx->braceCount;
16166   if (!g_contextStack.isEmpty())
16167   {
16168     g_currentCtx = g_contextStack.pop();
16169   }
16170   else
16171   {
16172     g_currentCtx = 0;
16173     //printf("Trying to pop context while g_contextStack is empty!\n");
16174   }
16175 }
16176
16177 void resetCCodeParserState()
16178 {
16179   //printf("***initParseCodeContext()\n");
16180   g_forceTagReference.resize(0);
16181   g_theVarContext.clear();
16182   g_classScopeLengthStack.setAutoDelete(TRUE);
16183   g_classScopeLengthStack.clear();
16184   delete g_codeClassSDict;
16185   g_codeClassSDict = new ClassSDict(17);
16186   g_codeClassSDict->setAutoDelete(TRUE);
16187   g_codeClassSDict->clear();
16188   g_curClassBases.clear();
16189   g_anchorCount = 0;
16190 }
16191
16192 void parseCCode(CodeOutputInterface &od,const char *className,const QCString &s, 
16193                   bool exBlock, const char *exName,FileDef *fd,
16194                   int startLine,int endLine,bool inlineFragment,
16195                   MemberDef *memberDef,bool showLineNumbers,Definition *searchCtx)
16196 {
16197   //printf("***parseCode() exBlock=%d exName=%s fd=%p className=%s searchCtx=%s\n",
16198   //      exBlock,exName,fd,className,searchCtx?searchCtx->name().data():"<none>");
16199   if (s.isEmpty()) return;
16200   if (g_codeClassSDict==0)
16201   {
16202     resetCCodeParserState();
16203   }
16204   g_code = &od;
16205   g_inputString   = s;
16206   g_inputPosition = 0;
16207   g_currentFontClass = 0;
16208   g_needsTermination = FALSE;
16209   g_searchCtx = searchCtx;
16210   g_inFunctionTryBlock = FALSE;
16211   if (endLine!=-1)
16212     g_inputLines  = endLine+1;
16213   else
16214     g_inputLines  = countLines();
16215
16216   if (startLine!=-1)
16217     g_yyLineNr    = startLine;
16218   else
16219     g_yyLineNr    = 1;
16220
16221   g_curlyCount    = 0;
16222   g_bodyCurlyCount    = 0;
16223   g_bracketCount  = 0;
16224   g_sharpCount    = 0;
16225   g_insideTemplate = FALSE;
16226   g_theCallContext.clear();
16227   g_scopeStack.clear();
16228   g_classScope    = className;
16229   //printf("parseCCode %s\n",className);
16230   g_exampleBlock  = exBlock; 
16231   g_exampleName   = exName;
16232   g_sourceFileDef = fd;
16233   g_lineNumbers   = fd!=0 && showLineNumbers;
16234   bool cleanupSourceDef = FALSE;
16235   if (fd==0)
16236   {
16237     // create a dummy filedef for the example
16238     g_sourceFileDef = new FileDef("",(exName?exName:"generated"));
16239     cleanupSourceDef = TRUE;
16240   }
16241   if (g_sourceFileDef) 
16242   {
16243     setCurrentDoc("l00001");
16244     g_insideObjC = g_sourceFileDef->name().lower().right(2)==".m" || 
16245                    g_sourceFileDef->name().lower().right(3)==".mm"; 
16246   }
16247   g_currentDefinition = 0;
16248   g_currentMemberDef = 0;
16249   g_searchingForBody = exBlock;
16250   g_insideBody = FALSE;
16251   g_bracketCount = 0;
16252   if (!g_exampleName.isEmpty())
16253   {
16254     g_exampleFile = convertNameToFile(g_exampleName+"-example",FALSE,TRUE);
16255     //printf("g_exampleFile=%s\n",g_exampleFile.data());
16256   }
16257   g_includeCodeFragment = inlineFragment;
16258   //printf("** exBlock=%d exName=%s include=%d\n",exBlock,exName,inlineFragment);
16259   startCodeLine();
16260   g_type.resize(0);
16261   g_name.resize(0);
16262   g_args.resize(0);
16263   g_parmName.resize(0);
16264   g_parmType.resize(0);
16265   if (memberDef) setParameterList(memberDef);
16266   codeYYrestart( codeYYin );
16267   BEGIN( Body );
16268   codeYYlex();
16269   g_lexInit=TRUE;
16270   if (g_needsTermination)
16271   {
16272     endFontClass();
16273     g_code->endCodeLine();
16274   }
16275   if (cleanupSourceDef)
16276   {
16277     // delete the temporary file definition used for this example
16278     delete g_sourceFileDef;
16279     g_sourceFileDef=0;
16280   }
16281   return;
16282 }
16283
16284 void codeFreeScanner()
16285 {
16286 #if defined(YY_FLEX_SUBMINOR_VERSION) 
16287   if (g_lexInit)
16288   {
16289     codeYYlex_destroy();
16290   }
16291 #endif
16292 }
16293
16294
16295
16296 #if !defined(YY_FLEX_SUBMINOR_VERSION) 
16297 extern "C" { // some bogus code to keep the compiler happy
16298   void codeYYdummy() { yy_flex_realloc(0,0); } 
16299 }
16300 #elif YY_FLEX_SUBMINOR_VERSION<33
16301 #error "You seem to be using a version of flex newer than 2.5.4 but older than 2.5.33. These versions do NOT work with doxygen! Please use version <=2.5.4 or >=2.5.33 or expect things to be parsed wrongly!"
16302 #endif
16303
16304