The iOS framework that grows only as fast as its documentation
CSSTokenizer.m
1 //
2 // Copyright 2011-2014 NimbusKit
3 //
4 // Autogenerated by flex using the Nimbus CSS grammar
5 //
6 // Licensed under the Apache License, Version 2.0 (the "License");
7 // you may not use this file except in compliance with the License.
8 // You may obtain a copy of the License at
9 //
10 // http://www.apache.org/licenses/LICENSE-2.0
11 //
12 // Unless required by applicable law or agreed to in writing, software
13 // distributed under the License is distributed on an "AS IS" BASIS,
14 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 // See the License for the specific language governing permissions and
16 // limitations under the License.
17 //
18 
19 #include "CssTokens.h"
20 
21 #line 3 "lex.css.c"
22 
23 #define YY_INT_ALIGNED short int
24 
25 /* A lexical scanner generated by flex */
26 
27 #define yy_create_buffer css_create_buffer
28 #define yy_delete_buffer css_delete_buffer
29 #define yy_flex_debug css_flex_debug
30 #define yy_init_buffer css_init_buffer
31 #define yy_flush_buffer css_flush_buffer
32 #define yy_load_buffer_state css_load_buffer_state
33 #define yy_switch_to_buffer css_switch_to_buffer
34 #define yyin cssin
35 #define yyleng cssleng
36 #define yylex csslex
37 #define yylineno csslineno
38 #define yyout cssout
39 #define yyrestart cssrestart
40 #define yytext csstext
41 #define yywrap csswrap
42 #define yyalloc cssalloc
43 #define yyrealloc cssrealloc
44 #define yyfree cssfree
45 
46 #define FLEX_SCANNER
47 #define YY_FLEX_MAJOR_VERSION 2
48 #define YY_FLEX_MINOR_VERSION 5
49 #define YY_FLEX_SUBMINOR_VERSION 35
50 #if YY_FLEX_SUBMINOR_VERSION > 0
51 #define FLEX_BETA
52 #endif
53 
54 /* First, we deal with platform-specific or compiler-specific issues. */
55 
56 /* begin standard C headers. */
57 #include <stdio.h>
58 #include <string.h>
59 #include <errno.h>
60 #include <stdlib.h>
61 
62 /* end standard C headers. */
63 
64 /* flex integer type definitions */
65 
66 #ifndef FLEXINT_H
67 #define FLEXINT_H
68 
69 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
70 
71 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
72 
73 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
74  * if you want the limit (max/min) macros for int types.
75  */
76 #ifndef __STDC_LIMIT_MACROS
77 #define __STDC_LIMIT_MACROS 1
78 #endif
79 
80 #include <inttypes.h>
81 typedef int8_t flex_int8_t;
82 typedef uint8_t flex_uint8_t;
83 typedef int16_t flex_int16_t;
84 typedef uint16_t flex_uint16_t;
85 typedef int32_t flex_int32_t;
86 typedef uint32_t flex_uint32_t;
87 typedef uint64_t flex_uint64_t;
88 #else
89 typedef signed char flex_int8_t;
90 typedef short int flex_int16_t;
91 typedef int flex_int32_t;
92 typedef unsigned char flex_uint8_t;
93 typedef unsigned short int flex_uint16_t;
94 typedef unsigned int flex_uint32_t;
95 #endif /* ! C99 */
96 
97 /* Limits of integral types. */
98 #ifndef INT8_MIN
99 #define INT8_MIN (-128)
100 #endif
101 #ifndef INT16_MIN
102 #define INT16_MIN (-32767-1)
103 #endif
104 #ifndef INT32_MIN
105 #define INT32_MIN (-2147483647-1)
106 #endif
107 #ifndef INT8_MAX
108 #define INT8_MAX (127)
109 #endif
110 #ifndef INT16_MAX
111 #define INT16_MAX (32767)
112 #endif
113 #ifndef INT32_MAX
114 #define INT32_MAX (2147483647)
115 #endif
116 #ifndef UINT8_MAX
117 #define UINT8_MAX (255U)
118 #endif
119 #ifndef UINT16_MAX
120 #define UINT16_MAX (65535U)
121 #endif
122 #ifndef UINT32_MAX
123 #define UINT32_MAX (4294967295U)
124 #endif
125 
126 #endif /* ! FLEXINT_H */
127 
128 #ifdef __cplusplus
129 
130 /* The "const" storage-class-modifier is valid. */
131 #define YY_USE_CONST
132 
133 #else /* ! __cplusplus */
134 
135 /* C99 requires __STDC__ to be defined as 1. */
136 #if defined (__STDC__)
137 
138 #define YY_USE_CONST
139 
140 #endif /* defined (__STDC__) */
141 #endif /* ! __cplusplus */
142 
143 #ifdef YY_USE_CONST
144 #define yyconst const
145 #else
146 #define yyconst
147 #endif
148 
149 /* Returned upon end-of-file. */
150 #define YY_NULL 0
151 
152 /* Promotes a possibly negative, possibly signed char to an unsigned
153  * integer for use as an array index. If the signed char is negative,
154  * we want to instead treat it as an 8-bit unsigned char, hence the
155  * double cast.
156  */
157 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
158 
159 /* Enter a start condition. This macro really ought to take a parameter,
160  * but we do it the disgusting crufty way forced on us by the ()-less
161  * definition of BEGIN.
162  */
163 #define BEGIN (yy_start) = 1 + 2 *
164 
165 /* Translate the current start state into a value that can be later handed
166  * to BEGIN to return to the state. The YYSTATE alias is for lex
167  * compatibility.
168  */
169 #define YY_START (((yy_start) - 1) / 2)
170 #define YYSTATE YY_START
171 
172 /* Action number for EOF rule of a given start state. */
173 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
174 
175 /* Special action meaning "start processing a new file". */
176 #define YY_NEW_FILE cssrestart(cssin )
177 
178 #define YY_END_OF_BUFFER_CHAR 0
179 
180 /* Size of default input buffer. */
181 #ifndef YY_BUF_SIZE
182 #define YY_BUF_SIZE 16384
183 #endif
184 
185 /* The state buf must be large enough to hold one state per character in the main buffer.
186  */
187 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
188 
189 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
190 #define YY_TYPEDEF_YY_BUFFER_STATE
191 typedef struct yy_buffer_state *YY_BUFFER_STATE;
192 #endif
193 
194 #ifndef YY_TYPEDEF_YY_SIZE_T
195 #define YY_TYPEDEF_YY_SIZE_T
196 typedef size_t yy_size_t;
197 #endif
198 
199 extern yy_size_t cssleng;
200 
201 extern FILE *cssin, *cssout;
202 
203 #define EOB_ACT_CONTINUE_SCAN 0
204 #define EOB_ACT_END_OF_FILE 1
205 #define EOB_ACT_LAST_MATCH 2
206 
207  #define YY_LESS_LINENO(n)
208 
209 /* Return all but the first "n" matched characters back to the input stream. */
210 #define yyless(n) \
211  do \
212  { \
213  /* Undo effects of setting up csstext. */ \
214  int yyless_macro_arg = (n); \
215  YY_LESS_LINENO(yyless_macro_arg);\
216  *yy_cp = (yy_hold_char); \
217  YY_RESTORE_YY_MORE_OFFSET \
218  (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
219  YY_DO_BEFORE_ACTION; /* set up csstext again */ \
220  } \
221  while ( 0 )
222 
223 #define unput(c) yyunput( c, (yytext_ptr) )
224 
225 #ifndef YY_STRUCT_YY_BUFFER_STATE
226 #define YY_STRUCT_YY_BUFFER_STATE
227 struct yy_buffer_state
228  {
229  FILE *yy_input_file;
230 
231  char *yy_ch_buf; /* input buffer */
232  char *yy_buf_pos; /* current position in input buffer */
233 
234  /* Size of input buffer in bytes, not including room for EOB
235  * characters.
236  */
237  yy_size_t yy_buf_size;
238 
239  /* Number of characters read into yy_ch_buf, not including EOB
240  * characters.
241  */
242  yy_size_t yy_n_chars;
243 
244  /* Whether we "own" the buffer - i.e., we know we created it,
245  * and can realloc() it to grow it, and should free() it to
246  * delete it.
247  */
248  int yy_is_our_buffer;
249 
250  /* Whether this is an "interactive" input source; if so, and
251  * if we're using stdio for input, then we want to use getc()
252  * instead of fread(), to make sure we stop fetching input after
253  * each newline.
254  */
255  int yy_is_interactive;
256 
257  /* Whether we're considered to be at the beginning of a line.
258  * If so, '^' rules will be active on the next match, otherwise
259  * not.
260  */
261  int yy_at_bol;
262 
263  int yy_bs_lineno;
264  int yy_bs_column;
266  /* Whether to try to fill the input buffer when we reach the
267  * end of it.
268  */
269  int yy_fill_buffer;
270 
271  int yy_buffer_status;
272 
273 #define YY_BUFFER_NEW 0
274 #define YY_BUFFER_NORMAL 1
275  /* When an EOF's been seen but there's still some text to process
276  * then we mark the buffer as YY_EOF_PENDING, to indicate that we
277  * shouldn't try reading from the input source any more. We might
278  * still have a bunch of tokens to match, though, because of
279  * possible backing-up.
280  *
281  * When we actually see the EOF, we change the status to "new"
282  * (via cssrestart()), so that the user can continue scanning by
283  * just pointing cssin at a new input file.
284  */
285 #define YY_BUFFER_EOF_PENDING 2
286 
287  };
288 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
289 
290 /* Stack of input buffers. */
291 static size_t yy_buffer_stack_top = 0;
292 static size_t yy_buffer_stack_max = 0;
293 static YY_BUFFER_STATE * yy_buffer_stack = 0;
295 /* We provide macros for accessing buffer states in case in the
296  * future we want to put the buffer states in a more general
297  * "scanner state".
298  *
299  * Returns the top of the stack, or NULL.
300  */
301 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
302  ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
303  : NULL)
304 
305 /* Same as previous macro, but useful when we know that the buffer stack is not
306  * NULL or when we need an lvalue. For internal use only.
307  */
308 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
309 
310 /* yy_hold_char holds the character lost when csstext is formed. */
311 static char yy_hold_char;
312 static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */
313 yy_size_t cssleng;
314 
315 /* Points to current character in buffer. */
316 static char *yy_c_buf_p = (char *) 0;
317 static int yy_init = 0; /* whether we need to initialize */
318 static int yy_start = 0; /* start state number */
319 
320 /* Flag which is used to allow csswrap()'s to do buffer switches
321  * instead of setting up a fresh cssin. A bit of a hack ...
322  */
323 static int yy_did_buffer_switch_on_eof;
324 
325 void cssrestart (FILE *input_file );
326 void css_switch_to_buffer (YY_BUFFER_STATE new_buffer );
327 YY_BUFFER_STATE css_create_buffer (FILE *file,int size );
328 void css_delete_buffer (YY_BUFFER_STATE b );
329 void css_flush_buffer (YY_BUFFER_STATE b );
330 void csspush_buffer_state (YY_BUFFER_STATE new_buffer );
331 void csspop_buffer_state (void );
332 
333 static void cssensure_buffer_stack (void );
334 static void css_load_buffer_state (void );
335 static void css_init_buffer (YY_BUFFER_STATE b,FILE *file );
336 
337 #define YY_FLUSH_BUFFER css_flush_buffer(YY_CURRENT_BUFFER )
338 
339 YY_BUFFER_STATE css_scan_buffer (char *base,yy_size_t size );
340 YY_BUFFER_STATE css_scan_string (yyconst char *yy_str );
341 YY_BUFFER_STATE css_scan_bytes (yyconst char *bytes,yy_size_t len );
342 
343 void *cssalloc (yy_size_t );
344 void *cssrealloc (void *,yy_size_t );
345 void cssfree (void * );
346 
347 #define yy_new_buffer css_create_buffer
348 
349 #define yy_set_interactive(is_interactive) \
350  { \
351  if ( ! YY_CURRENT_BUFFER ){ \
352  cssensure_buffer_stack (); \
353  YY_CURRENT_BUFFER_LVALUE = \
354  css_create_buffer(cssin,YY_BUF_SIZE ); \
355  } \
356  YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
357  }
358 
359 #define yy_set_bol(at_bol) \
360  { \
361  if ( ! YY_CURRENT_BUFFER ){\
362  cssensure_buffer_stack (); \
363  YY_CURRENT_BUFFER_LVALUE = \
364  css_create_buffer(cssin,YY_BUF_SIZE ); \
365  } \
366  YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
367  }
368 
369 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
370 
371 /* Begin user sect3 */
372 
373 typedef unsigned char YY_CHAR;
374 
375 FILE *cssin = (FILE *) 0, *cssout = (FILE *) 0;
376 
377 typedef int yy_state_type;
378 
379 extern int csslineno;
380 
381 int csslineno = 1;
382 
383 extern char *csstext;
384 #define yytext_ptr csstext
385 
386 static yy_state_type yy_get_previous_state (void );
387 static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
388 static int yy_get_next_buffer (void );
389 static void yy_fatal_error (yyconst char msg[] );
390 
391 /* Done after the current pattern has been matched and before the
392  * corresponding action - sets up csstext.
393  */
394 #define YY_DO_BEFORE_ACTION \
395  (yytext_ptr) = yy_bp; \
396  cssleng = (yy_size_t) (yy_cp - yy_bp); \
397  (yy_hold_char) = *yy_cp; \
398  *yy_cp = '\0'; \
399  (yy_c_buf_p) = yy_cp;
400 
401 #define YY_NUM_RULES 41
402 #define YY_END_OF_BUFFER 42
403 /* This struct is not used in this scanner,
404  but its presence is necessary. */
405 struct yy_trans_info
406  {
407  flex_int32_t yy_verify;
408  flex_int32_t yy_nxt;
409  };
410 static yyconst flex_int16_t yy_accept[370] =
411  { 0,
412  0, 0, 42, 40, 1, 1, 40, 40, 40, 40,
413  40, 40, 40, 34, 40, 40, 8, 8, 40, 40,
414  40, 1, 0, 0, 7, 0, 9, 9, 8, 0,
415  0, 0, 0, 0, 34, 8, 0, 0, 34, 8,
416  0, 0, 33, 0, 32, 32, 32, 32, 32, 32,
417  32, 32, 32, 32, 32, 29, 0, 0, 0, 0,
418  0, 0, 0, 0, 37, 8, 0, 0, 0, 0,
419  8, 8, 8, 6, 5, 0, 0, 0, 7, 0,
420  0, 0, 8, 0, 8, 8, 0, 0, 7, 0,
421  0, 4, 8, 0, 8, 8, 0, 0, 32, 0,
422 
423  20, 32, 17, 18, 32, 30, 22, 32, 21, 28,
424  24, 23, 19, 32, 32, 32, 0, 0, 0, 0,
425  0, 0, 0, 0, 8, 0, 0, 8, 0, 8,
426  8, 38, 38, 8, 8, 0, 0, 0, 9, 9,
427  8, 8, 8, 0, 0, 8, 8, 8, 0, 0,
428  2, 32, 32, 25, 32, 31, 26, 32, 3, 0,
429  0, 0, 0, 0, 0, 8, 0, 8, 8, 8,
430  0, 8, 8, 8, 0, 38, 38, 38, 37, 8,
431  0, 0, 9, 8, 8, 0, 8, 8, 0, 0,
432  0, 0, 2, 32, 27, 32, 0, 0, 0, 0,
433 
434  0, 11, 8, 8, 8, 8, 8, 8, 8, 39,
435  38, 38, 38, 38, 0, 0, 0, 0, 36, 0,
436  8, 0, 0, 9, 8, 8, 0, 8, 8, 0,
437  32, 32, 0, 0, 0, 12, 0, 8, 8, 8,
438  8, 8, 39, 38, 38, 38, 38, 38, 0, 0,
439  0, 0, 0, 0, 0, 0, 0, 36, 0, 0,
440  8, 0, 0, 9, 8, 8, 0, 8, 8, 32,
441  32, 0, 0, 10, 0, 8, 8, 8, 8, 8,
442  39, 38, 38, 38, 38, 38, 38, 0, 35, 0,
443  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
444 
445  8, 0, 0, 9, 8, 8, 0, 8, 8, 32,
446  32, 14, 0, 0, 8, 8, 8, 8, 8, 39,
447  38, 38, 38, 38, 38, 38, 38, 0, 35, 0,
448  0, 0, 35, 0, 0, 0, 0, 9, 8, 8,
449  32, 0, 0, 8, 8, 8, 8, 39, 0, 0,
450  0, 0, 13, 15, 8, 8, 39, 0, 0, 0,
451  0, 0, 0, 0, 0, 0, 0, 16, 0
452  } ;
453 
454 static yyconst flex_int32_t yy_ec[256] =
455  { 0,
456  1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
457  1, 4, 5, 1, 1, 1, 1, 1, 1, 1,
458  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
459  1, 6, 7, 8, 9, 10, 11, 10, 12, 13,
460  14, 15, 16, 10, 17, 18, 19, 20, 20, 20,
461  20, 20, 20, 20, 20, 20, 20, 21, 10, 22,
462  23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
463  33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
464  36, 43, 44, 45, 46, 36, 47, 48, 36, 49,
465  10, 50, 10, 10, 10, 10, 51, 28, 52, 53,
466 
467  54, 55, 56, 57, 58, 36, 59, 60, 61, 62,
468  63, 64, 36, 65, 66, 67, 68, 36, 69, 70,
469  36, 71, 72, 73, 74, 75, 1, 76, 76, 76,
470  76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
471  76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
472  76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
473  76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
474  76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
475  76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
476  76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
477 
478  76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
479  76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
480  76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
481  76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
482  76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
483  76, 76, 76, 76, 76
484  } ;
485 
486 static yyconst flex_int32_t yy_meta[77] =
487  { 0,
488  1, 2, 3, 4, 4, 5, 6, 7, 6, 6,
489  6, 7, 8, 6, 6, 6, 9, 10, 6, 11,
490  12, 6, 6, 6, 13, 6, 14, 14, 14, 14,
491  14, 14, 15, 15, 15, 15, 15, 15, 15, 15,
492  15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
493  14, 14, 14, 14, 14, 15, 15, 15, 15, 15,
494  15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
495  15, 6, 6, 6, 6, 15
496  } ;
497 
498 static yyconst flex_int16_t yy_base[448] =
499  { 0,
500  0, 0, 882, 6624, 75, 80, 803, 79, 71, 77,
501  75, 80, 858, 120, 865, 168, 83, 188, 234, 831,
502  830, 103, 43, 86, 6624, 288, 82, 802, 92, 324,
503  91, 378, 827, 830, 0, 198, 414, 94, 97, 174,
504  450, 834, 6624, 798, 797, 84, 85, 186, 162, 144,
505  178, 164, 207, 230, 233, 796, 486, 828, 86, 83,
506  174, 168, 71, 190, 6624, 224, 222, 226, 522, 819,
507  285, 231, 576, 6624, 6624, 762, 296, 259, 261, 630,
508  684, 720, 284, 756, 307, 810, 298, 221, 282, 864,
509  918, 6624, 308, 954, 309, 1008, 820, 318, 784, 1044,
510 
511  783, 314, 782, 779, 322, 777, 776, 313, 774, 773,
512  772, 771, 770, 335, 769, 1098, 801, 228, 274, 325,
513  338, 332, 336, 344, 397, 1134, 767, 756, 1170, 398,
514  1224, 101, 780, 399, 1278, 339, 262, 1332, 753, 1386,
515  403, 1440, 1494, 310, 1548, 404, 1602, 1656, 787, 380,
516  6624, 750, 1710, 744, 373, 743, 740, 1764, 6624, 370,
517  369, 396, 369, 407, 408, 434, 1800, 439, 1854, 732,
518  1890, 682, 1944, 1980, 0, 233, 705, 675, 517, 2034,
519  411, 2088, 2142, 2178, 2232, 2286, 2322, 2358, 683, 381,
520  638, 456, 636, 2394, 2448, 2502, 407, 630, 420, 280,
521 
522  420, 6624, 474, 2556, 2610, 591, 2664, 2718, 2754, 0,
523  296, 612, 567, 511, 640, 691, 316, 390, 6624, 2808,
524  2862, 432, 2916, 2970, 3024, 3078, 3132, 3186, 3240, 468,
525  3276, 3312, 445, 456, 445, 6624, 466, 3348, 3384, 3420,
526  3456, 3492, 0, 509, 472, 468, 466, 376, 541, 448,
527  554, 3546, 482, 3600, 704, 717, 754, 775, 3654, 3708,
528  3762, 507, 3816, 3870, 3924, 3978, 4032, 4086, 4140, 4194,
529  4248, 516, 482, 6624, 535, 4284, 4320, 4356, 4392, 4428,
530  0, 510, 325, 270, 252, 177, 103, 596, 6624, 561,
531  450, 875, 4482, 4536, 516, 606, 929, 4590, 4644, 4698,
532 
533  4734, 520, 617, 4788, 4842, 853, 667, 4896, 906, 4932,
534  4986, 6624, 536, 543, 5040, 5094, 5130, 5166, 610, 0,
535  102, 6624, 6624, 6624, 6624, 6624, 6624, 949, 616, 641,
536  5202, 1018, 652, 741, 5238, 5292, 526, 5328, 998, 1087,
537  672, 586, 670, 5364, 5400, 5436, 5472, 0, 5508, 5544,
538  5580, 612, 6624, 6624, 723, 759, 6624, 5616, 5652, 5688,
539  693, 5724, 5760, 1107, 725, 793, 1082, 6624, 6624, 5814,
540  5821, 5835, 5842, 5849, 5857, 5868, 5882, 5889, 5896, 5907,
541  5921, 5928, 5939, 5954, 372, 5961, 5972, 5979, 5986, 5997,
542  6002, 6012, 6023, 6034, 6049, 6060, 6067, 6078, 576, 6085,
543 
544  6096, 6103, 6116, 6123, 6137, 6152, 6167, 6178, 6189, 496,
545  6196, 6209, 6223, 6237, 6252, 6267, 573, 6274, 6287, 6301,
546  6315, 6329, 6343, 6357, 6371, 6385, 6399, 6414, 654, 6421,
547  6434, 6448, 6462, 6476, 6490, 6504, 6518, 6532, 6546, 731,
548  6553, 6566, 6580, 6594, 6608, 732, 755
549  } ;
550 
551 static yyconst flex_int16_t yy_def[448] =
552  { 0,
553  369, 1, 369, 369, 369, 369, 369, 370, 371, 372,
554  373, 374, 369, 369, 369, 369, 375, 375, 376, 369,
555  369, 369, 369, 370, 369, 377, 371, 378, 379, 380,
556  372, 381, 369, 369, 14, 375, 376, 374, 14, 382,
557  383, 384, 369, 385, 386, 386, 386, 386, 386, 386,
558  386, 386, 386, 386, 386, 386, 387, 369, 369, 369,
559  369, 369, 369, 369, 369, 375, 388, 389, 390, 391,
560  375, 375, 375, 369, 369, 369, 370, 370, 370, 370,
561  377, 392, 379, 393, 379, 379, 372, 372, 372, 372,
562  381, 369, 382, 394, 382, 382, 384, 395, 386, 396,
563 
564  386, 386, 386, 386, 386, 386, 386, 386, 386, 386,
565  386, 386, 386, 386, 386, 386, 369, 369, 369, 369,
566  369, 369, 369, 388, 397, 398, 399, 400, 401, 375,
567  375, 402, 369, 375, 131, 369, 403, 403, 404, 404,
568  379, 379, 142, 405, 405, 382, 96, 147, 406, 407,
569  369, 386, 116, 386, 386, 386, 386, 153, 369, 369,
570  369, 369, 369, 369, 369, 397, 408, 397, 397, 400,
571  409, 400, 400, 131, 410, 411, 369, 369, 412, 131,
572  369, 413, 414, 142, 142, 405, 147, 148, 406, 415,
573  406, 416, 406, 153, 153, 153, 369, 369, 369, 369,
574 
575  369, 369, 397, 397, 204, 400, 400, 207, 131, 417,
576  418, 369, 369, 369, 419, 419, 420, 421, 369, 422,
577  131, 369, 423, 424, 425, 425, 426, 427, 427, 428,
578  153, 196, 369, 369, 369, 369, 369, 204, 205, 207,
579  208, 131, 429, 430, 369, 369, 369, 369, 369, 420,
580  369, 431, 421, 432, 433, 433, 433, 433, 433, 434,
581  131, 369, 435, 436, 437, 437, 438, 439, 439, 232,
582  270, 369, 369, 369, 369, 204, 239, 207, 241, 131,
583  440, 441, 369, 369, 369, 369, 369, 369, 369, 420,
584  420, 420, 420, 442, 443, 443, 443, 443, 444, 445,
585 
586  261, 369, 435, 436, 266, 437, 438, 269, 439, 270,
587  270, 369, 369, 369, 277, 315, 207, 279, 301, 446,
588  369, 369, 369, 369, 369, 369, 369, 420, 420, 420,
589  293, 443, 443, 443, 298, 445, 369, 304, 437, 439,
590  311, 369, 369, 315, 316, 317, 318, 447, 293, 298,
591  336, 369, 369, 369, 345, 347, 369, 293, 298, 336,
592  369, 293, 298, 445, 369, 420, 443, 369, 0, 369,
593  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
594  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
595  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
596 
597  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
598  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
599  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
600  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
601  369, 369, 369, 369, 369, 369, 369
602  } ;
603 
604 static yyconst flex_int16_t yy_nxt[6701] =
605  { 0,
606  4, 5, 6, 5, 5, 5, 7, 8, 9, 4,
607  4, 10, 4, 4, 4, 4, 11, 12, 13, 14,
608  4, 15, 4, 4, 4, 16, 17, 17, 17, 17,
609  17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
610  17, 17, 17, 17, 17, 18, 17, 17, 17, 19,
611  17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
612  17, 17, 17, 17, 17, 17, 17, 18, 17, 17,
613  17, 4, 20, 4, 21, 17, 22, 22, 22, 22,
614  22, 22, 22, 22, 22, 22, 25, 27, 25, 76,
615  28, 33, 34, 25, 35, 65, 38, 122, 28, 39,
616 
617  67, 28, 25, 68, 22, 22, 22, 22, 22, 67,
618  369, 76, 68, 369, 369, 102, 39, 175, 175, 118,
619  30, 122, 101, 119, 37, 177, 32, 327, 26, 41,
620  43, 30, 69, 100, 100, 26, 44, 34, 102, 35,
621  32, 84, 118, 41, 101, 119, 45, 45, 46, 47,
622  48, 45, 49, 50, 51, 45, 52, 45, 53, 45,
623  45, 54, 55, 56, 45, 45, 45, 45, 45, 57,
624  45, 46, 47, 48, 45, 49, 50, 51, 52, 45,
625  53, 45, 45, 54, 55, 56, 45, 45, 45, 45,
626  45, 67, 106, 100, 68, 45, 59, 108, 121, 60,
627 
628  65, 326, 61, 70, 105, 67, 62, 63, 68, 64,
629  65, 100, 120, 100, 106, 67, 123, 107, 68, 59,
630  108, 121, 60, 94, 103, 61, 105, 100, 62, 63,
631  71, 64, 25, 104, 120, 100, 65, 69, 124, 107,
632  123, 67, 127, 65, 68, 109, 103, 69, 67, 175,
633  110, 68, 71, 73, 160, 104, 100, 212, 111, 114,
634  73, 73, 73, 73, 73, 73, 25, 109, 25, 25,
635  32, 126, 110, 69, 112, 129, 325, 113, 160, 100,
636  69, 111, 100, 114, 73, 73, 73, 73, 73, 24,
637  24, 24, 77, 25, 324, 79, 112, 65, 24, 113,
638 
639  31, 67, 67, 25, 68, 68, 236, 80, 26, 25,
640  26, 26, 175, 161, 80, 80, 80, 80, 80, 80,
641  245, 25, 134, 251, 67, 67, 67, 68, 68, 68,
642  236, 32, 150, 84, 69, 161, 151, 81, 80, 80,
643  80, 80, 80, 86, 134, 26, 154, 32, 155, 323,
644  86, 86, 86, 86, 86, 86, 84, 94, 94, 32,
645  369, 156, 100, 100, 157, 252, 162, 163, 165, 154,
646  164, 100, 155, 181, 86, 86, 86, 86, 86, 31,
647  31, 31, 87, 156, 100, 45, 45, 157, 162, 89,
648  163, 165, 164, 126, 192, 230, 181, 90, 193, 151,
649 
650  287, 251, 195, 200, 90, 90, 90, 90, 90, 90,
651  65, 179, 197, 198, 67, 67, 67, 68, 68, 68,
652  67, 67, 100, 68, 68, 195, 200, 91, 90, 90,
653  90, 90, 90, 73, 197, 198, 199, 201, 202, 254,
654  73, 73, 73, 73, 73, 73, 167, 69, 69, 222,
655  233, 67, 84, 94, 68, 251, 67, 251, 199, 68,
656  201, 202, 235, 237, 73, 73, 73, 73, 73, 96,
657  192, 222, 233, 262, 193, 272, 96, 96, 96, 96,
658  96, 96, 230, 167, 235, 237, 193, 273, 167, 274,
659  286, 67, 285, 251, 68, 262, 284, 252, 272, 252,
660 
661  96, 96, 96, 96, 96, 116, 210, 275, 313, 210,
662  273, 274, 116, 116, 116, 116, 116, 116, 215, 215,
663  215, 215, 215, 167, 217, 175, 175, 251, 218, 275,
664  219, 254, 313, 283, 322, 248, 116, 116, 116, 116,
665  116, 131, 249, 249, 249, 249, 249, 302, 131, 131,
666  131, 131, 131, 131, 219, 288, 288, 288, 288, 288,
667  312, 314, 337, 250, 342, 254, 220, 289, 251, 302,
668  352, 343, 131, 131, 131, 131, 131, 72, 72, 72,
669  72, 72, 312, 243, 337, 314, 243, 342, 65, 128,
670  128, 247, 352, 67, 343, 135, 68, 288, 288, 288,
671 
672  288, 288, 135, 135, 135, 135, 135, 135, 369, 289,
673  252, 130, 130, 130, 130, 130, 353, 251, 78, 137,
674  137, 137, 78, 251, 25, 69, 135, 135, 135, 135,
675  135, 78, 137, 137, 137, 78, 246, 25, 361, 353,
676  171, 215, 215, 215, 215, 215, 234, 217, 251, 138,
677  190, 218, 190, 219, 369, 254, 138, 138, 138, 138,
678  138, 138, 361, 251, 281, 252, 26, 281, 88, 144,
679  144, 144, 88, 152, 152, 152, 152, 152, 25, 26,
680  138, 138, 138, 138, 138, 24, 24, 24, 77, 220,
681  252, 79, 249, 249, 249, 249, 249, 190, 369, 214,
682 
683  354, 254, 369, 80, 219, 249, 249, 249, 249, 249,
684  80, 80, 80, 80, 80, 80, 32, 219, 249, 249,
685  249, 249, 249, 354, 203, 203, 203, 203, 203, 213,
686  219, 171, 365, 81, 80, 80, 80, 80, 80, 140,
687  220, 320, 348, 369, 320, 348, 140, 140, 140, 140,
688  140, 140, 251, 220, 365, 249, 249, 249, 249, 249,
689  206, 206, 206, 206, 206, 357, 220, 219, 357, 368,
690  140, 140, 140, 140, 140, 142, 249, 249, 249, 249,
691  249, 171, 142, 142, 142, 142, 142, 142, 219, 100,
692  254, 368, 100, 100, 291, 330, 330, 330, 291, 100,
693 
694  251, 190, 82, 220, 178, 171, 142, 142, 142, 142,
695  142, 85, 85, 85, 85, 85, 129, 159, 100, 100,
696  100, 100, 100, 100, 220, 100, 100, 67, 100, 143,
697  68, 100, 100, 100, 98, 136, 143, 143, 143, 143,
698  143, 143, 252, 133, 117, 100, 100, 57, 98, 39,
699  92, 82, 75, 74, 85, 85, 85, 85, 85, 84,
700  143, 143, 143, 143, 143, 88, 144, 144, 144, 88,
701  67, 58, 42, 68, 23, 25, 328, 288, 288, 288,
702  328, 369, 251, 145, 369, 369, 369, 369, 329, 369,
703  145, 145, 145, 145, 145, 145, 369, 369, 369, 369,
704 
705  369, 369, 84, 369, 369, 369, 369, 95, 95, 95,
706  95, 95, 369, 32, 145, 145, 145, 145, 145, 31,
707  31, 31, 87, 67, 252, 369, 68, 369, 369, 89,
708  332, 288, 288, 288, 332, 369, 369, 90, 369, 369,
709  251, 369, 333, 369, 90, 90, 90, 90, 90, 90,
710  328, 288, 288, 288, 328, 94, 251, 369, 369, 369,
711  369, 369, 329, 369, 369, 369, 369, 91, 90, 90,
712  90, 90, 90, 147, 369, 369, 369, 369, 254, 369,
713  147, 147, 147, 147, 147, 147, 369, 369, 369, 369,
714  369, 369, 369, 369, 369, 369, 369, 369, 252, 141,
715 
716  141, 141, 141, 141, 147, 147, 147, 147, 147, 95,
717  95, 95, 95, 95, 369, 67, 369, 369, 68, 332,
718  288, 288, 288, 332, 369, 67, 369, 148, 68, 251,
719  369, 333, 369, 369, 148, 148, 148, 148, 148, 148,
720  369, 369, 369, 369, 369, 369, 369, 84, 369, 369,
721  369, 369, 369, 369, 369, 369, 369, 94, 148, 148,
722  148, 148, 148, 153, 369, 369, 369, 254, 369, 369,
723  153, 153, 153, 153, 153, 153, 369, 369, 369, 369,
724  369, 369, 369, 296, 334, 334, 334, 296, 146, 146,
725  146, 146, 146, 251, 153, 153, 153, 153, 153, 115,
726 
727  115, 115, 115, 115, 67, 369, 369, 68, 255, 255,
728  255, 255, 255, 369, 369, 369, 369, 158, 369, 369,
729  219, 369, 369, 369, 158, 158, 158, 158, 158, 158,
730  369, 254, 369, 369, 369, 369, 94, 369, 369, 369,
731  369, 369, 369, 369, 369, 369, 369, 100, 158, 158,
732  158, 158, 158, 169, 369, 369, 220, 369, 369, 369,
733  169, 169, 169, 169, 169, 169, 369, 369, 369, 369,
734  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
735  369, 369, 369, 369, 169, 169, 169, 169, 169, 173,
736  369, 369, 369, 369, 369, 369, 173, 173, 173, 173,
737 
738  173, 173, 369, 369, 369, 369, 369, 369, 369, 369,
739  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
740  173, 173, 173, 173, 173, 130, 130, 130, 130, 130,
741  369, 369, 369, 369, 369, 369, 65, 369, 369, 369,
742  369, 67, 369, 174, 68, 369, 369, 369, 369, 369,
743  174, 174, 174, 174, 174, 174, 369, 369, 369, 369,
744  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
745  369, 369, 369, 69, 174, 174, 174, 174, 174, 72,
746  72, 72, 72, 72, 369, 369, 369, 369, 369, 369,
747  369, 369, 369, 369, 369, 369, 369, 180, 369, 369,
748 
749  369, 369, 369, 369, 180, 180, 180, 180, 180, 180,
750  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
751  369, 369, 369, 369, 369, 369, 369, 369, 180, 180,
752  180, 180, 180, 78, 137, 137, 137, 78, 369, 25,
753  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
754  369, 182, 369, 369, 369, 369, 369, 369, 182, 182,
755  182, 182, 182, 182, 369, 369, 369, 369, 369, 369,
756  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
757  369, 26, 182, 182, 182, 182, 182, 139, 139, 139,
758  139, 139, 369, 369, 369, 369, 369, 369, 369, 369,
759 
760  369, 369, 369, 369, 369, 183, 369, 369, 369, 369,
761  369, 369, 183, 183, 183, 183, 183, 183, 369, 369,
762  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
763  369, 369, 369, 369, 369, 82, 183, 183, 183, 183,
764  183, 141, 141, 141, 141, 141, 369, 369, 369, 369,
765  369, 369, 369, 369, 369, 369, 369, 67, 369, 184,
766  68, 369, 369, 369, 369, 369, 184, 184, 184, 184,
767  184, 184, 369, 369, 369, 369, 369, 369, 369, 369,
768  369, 369, 369, 369, 369, 369, 369, 369, 369, 84,
769  184, 184, 184, 184, 184, 85, 85, 85, 85, 85,
770 
771  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
772  369, 369, 369, 185, 369, 369, 369, 369, 369, 369,
773  185, 185, 185, 185, 185, 185, 369, 369, 369, 369,
774  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
775  369, 369, 369, 369, 185, 185, 185, 185, 185, 88,
776  144, 144, 144, 88, 369, 369, 369, 369, 369, 25,
777  369, 369, 369, 369, 369, 369, 369, 186, 369, 369,
778  369, 369, 369, 369, 186, 186, 186, 186, 186, 186,
779  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
780  369, 369, 369, 369, 369, 369, 369, 32, 186, 186,
781 
782  186, 186, 186, 146, 146, 146, 146, 146, 369, 369,
783  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
784  369, 187, 369, 369, 369, 369, 369, 369, 187, 187,
785  187, 187, 187, 187, 369, 369, 369, 369, 369, 369,
786  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
787  369, 369, 187, 187, 187, 187, 187, 95, 95, 95,
788  95, 95, 369, 369, 369, 369, 369, 369, 369, 369,
789  369, 369, 369, 369, 369, 188, 369, 369, 369, 369,
790  369, 369, 188, 188, 188, 188, 188, 188, 369, 369,
791  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
792 
793  369, 369, 369, 369, 369, 369, 188, 188, 188, 188,
794  188, 152, 152, 152, 152, 152, 369, 369, 369, 369,
795  369, 369, 369, 369, 369, 369, 369, 369, 369, 194,
796  369, 369, 369, 369, 369, 369, 194, 194, 194, 194,
797  194, 194, 369, 369, 369, 369, 369, 369, 369, 369,
798  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
799  194, 194, 194, 194, 194, 115, 115, 115, 115, 115,
800  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
801  369, 369, 369, 196, 369, 369, 369, 369, 369, 369,
802  196, 196, 196, 196, 196, 196, 369, 369, 369, 369,
803 
804  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
805  369, 369, 369, 369, 196, 196, 196, 196, 196, 204,
806  369, 369, 369, 369, 369, 369, 204, 204, 204, 204,
807  204, 204, 369, 369, 369, 369, 369, 369, 369, 369,
808  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
809  204, 204, 204, 204, 204, 168, 168, 168, 168, 168,
810  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
811  369, 67, 369, 205, 68, 369, 369, 369, 369, 369,
812  205, 205, 205, 205, 205, 205, 369, 369, 369, 369,
813  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
814 
815  369, 369, 369, 167, 205, 205, 205, 205, 205, 207,
816  369, 369, 369, 369, 369, 369, 207, 207, 207, 207,
817  207, 207, 369, 369, 369, 369, 369, 369, 369, 369,
818  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
819  207, 207, 207, 207, 207, 172, 172, 172, 172, 172,
820  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
821  369, 369, 369, 208, 369, 369, 369, 369, 369, 369,
822  208, 208, 208, 208, 208, 208, 369, 369, 369, 369,
823  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
824  369, 369, 369, 171, 208, 208, 208, 208, 208, 209,
825 
826  369, 369, 369, 369, 369, 369, 209, 209, 209, 209,
827  209, 209, 369, 369, 369, 369, 369, 369, 369, 369,
828  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
829  209, 209, 209, 209, 209, 72, 72, 72, 72, 72,
830  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
831  369, 369, 369, 221, 369, 369, 369, 369, 369, 369,
832  221, 221, 221, 221, 221, 221, 369, 369, 369, 369,
833  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
834  369, 369, 369, 369, 221, 221, 221, 221, 221, 78,
835  137, 137, 137, 78, 369, 25, 369, 369, 369, 369,
836 
837  369, 369, 369, 369, 369, 369, 369, 223, 369, 369,
838  369, 369, 369, 369, 223, 223, 223, 223, 223, 223,
839  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
840  369, 369, 369, 369, 369, 369, 369, 26, 223, 223,
841  223, 223, 223, 139, 139, 139, 139, 139, 369, 369,
842  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
843  369, 224, 369, 369, 369, 369, 369, 369, 224, 224,
844  224, 224, 224, 224, 369, 369, 369, 369, 369, 369,
845  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
846  369, 82, 224, 224, 224, 224, 224, 225, 369, 369,
847 
848  369, 369, 369, 369, 225, 225, 225, 225, 225, 225,
849  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
850  369, 369, 369, 369, 369, 369, 369, 369, 225, 225,
851  225, 225, 225, 85, 85, 85, 85, 85, 369, 369,
852  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
853  369, 226, 369, 369, 369, 369, 369, 369, 226, 226,
854  226, 226, 226, 226, 369, 369, 369, 369, 369, 369,
855  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
856  369, 369, 226, 226, 226, 226, 226, 88, 144, 144,
857  144, 88, 369, 369, 369, 369, 369, 25, 369, 369,
858 
859  369, 369, 369, 369, 369, 227, 369, 369, 369, 369,
860  369, 369, 227, 227, 227, 227, 227, 227, 369, 369,
861  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
862  369, 369, 369, 369, 369, 32, 227, 227, 227, 227,
863  227, 228, 369, 369, 369, 369, 369, 369, 228, 228,
864  228, 228, 228, 228, 369, 369, 369, 369, 369, 369,
865  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
866  369, 369, 228, 228, 228, 228, 228, 229, 369, 369,
867  369, 369, 369, 369, 229, 229, 229, 229, 229, 229,
868  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
869 
870  369, 369, 369, 369, 369, 369, 369, 369, 229, 229,
871  229, 229, 229, 231, 369, 369, 369, 369, 369, 369,
872  231, 231, 231, 231, 231, 231, 369, 369, 369, 369,
873  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
874  369, 369, 369, 369, 231, 231, 231, 231, 231, 369,
875  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
876  369, 369, 369, 369, 369, 369, 369, 99, 369, 369,
877  369, 369, 369, 369, 99, 99, 99, 99, 99, 99,
878  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
879  369, 369, 369, 369, 369, 369, 369, 369, 99, 99,
880 
881  99, 99, 99, 115, 115, 115, 115, 115, 369, 369,
882  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
883  369, 232, 369, 369, 369, 369, 369, 369, 232, 232,
884  232, 232, 232, 232, 369, 369, 369, 369, 369, 369,
885  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
886  369, 369, 232, 232, 232, 232, 232, 203, 203, 203,
887  203, 203, 369, 369, 369, 369, 369, 369, 369, 369,
888  369, 369, 369, 67, 369, 238, 68, 369, 369, 369,
889  369, 369, 238, 238, 238, 238, 238, 238, 369, 369,
890  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
891 
892  369, 369, 369, 369, 369, 167, 238, 238, 238, 238,
893  238, 168, 168, 168, 168, 168, 369, 369, 369, 369,
894  369, 369, 369, 369, 369, 369, 369, 369, 369, 239,
895  369, 369, 369, 369, 369, 369, 239, 239, 239, 239,
896  239, 239, 369, 369, 369, 369, 369, 369, 369, 369,
897  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
898  239, 239, 239, 239, 239, 206, 206, 206, 206, 206,
899  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
900  369, 369, 369, 240, 369, 369, 369, 369, 369, 369,
901  240, 240, 240, 240, 240, 240, 369, 369, 369, 369,
902 
903  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
904  369, 369, 369, 171, 240, 240, 240, 240, 240, 172,
905  172, 172, 172, 172, 369, 369, 369, 369, 369, 369,
906  369, 369, 369, 369, 369, 369, 369, 241, 369, 369,
907  369, 369, 369, 369, 241, 241, 241, 241, 241, 241,
908  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
909  369, 369, 369, 369, 369, 369, 369, 369, 241, 241,
910  241, 241, 241, 242, 369, 369, 369, 369, 369, 369,
911  242, 242, 242, 242, 242, 242, 369, 369, 369, 369,
912  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
913 
914  369, 369, 369, 369, 242, 242, 242, 242, 242, 249,
915  249, 249, 249, 255, 369, 257, 369, 369, 369, 257,
916  257, 258, 369, 369, 369, 369, 369, 259, 369, 369,
917  369, 369, 369, 369, 259, 259, 259, 259, 259, 259,
918  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
919  369, 369, 369, 369, 369, 369, 369, 260, 259, 259,
920  259, 259, 259, 72, 72, 72, 72, 72, 369, 369,
921  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
922  369, 261, 369, 369, 369, 369, 369, 369, 261, 261,
923  261, 261, 261, 261, 369, 369, 369, 369, 369, 369,
924 
925  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
926  369, 369, 261, 261, 261, 261, 261, 78, 137, 137,
927  137, 78, 369, 25, 369, 369, 369, 369, 369, 369,
928  369, 369, 369, 369, 369, 263, 369, 369, 369, 369,
929  369, 369, 263, 263, 263, 263, 263, 263, 369, 369,
930  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
931  369, 369, 369, 369, 369, 26, 263, 263, 263, 263,
932  263, 139, 139, 139, 139, 139, 369, 369, 369, 369,
933  369, 369, 369, 369, 369, 369, 369, 369, 369, 264,
934  369, 369, 369, 369, 369, 369, 264, 264, 264, 264,
935 
936  264, 264, 369, 369, 369, 369, 369, 369, 369, 369,
937  369, 369, 369, 369, 369, 369, 369, 369, 369, 82,
938  264, 264, 264, 264, 264, 141, 141, 141, 141, 141,
939  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
940  369, 67, 369, 265, 68, 369, 369, 369, 369, 369,
941  265, 265, 265, 265, 265, 265, 369, 369, 369, 369,
942  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
943  369, 369, 369, 84, 265, 265, 265, 265, 265, 85,
944  85, 85, 85, 85, 369, 369, 369, 369, 369, 369,
945  369, 369, 369, 369, 369, 67, 369, 266, 68, 369,
946 
947  369, 369, 369, 369, 266, 266, 266, 266, 266, 266,
948  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
949  369, 369, 369, 369, 369, 369, 369, 84, 266, 266,
950  266, 266, 266, 88, 144, 144, 144, 88, 369, 369,
951  369, 369, 369, 25, 369, 369, 369, 369, 369, 369,
952  369, 267, 369, 369, 369, 369, 369, 369, 267, 267,
953  267, 267, 267, 267, 369, 369, 369, 369, 369, 369,
954  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
955  369, 32, 267, 267, 267, 267, 267, 146, 146, 146,
956  146, 146, 369, 369, 369, 369, 369, 369, 369, 369,
957 
958  369, 369, 369, 67, 369, 268, 68, 369, 369, 369,
959  369, 369, 268, 268, 268, 268, 268, 268, 369, 369,
960  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
961  369, 369, 369, 369, 369, 94, 268, 268, 268, 268,
962  268, 95, 95, 95, 95, 95, 369, 369, 369, 369,
963  369, 369, 369, 369, 369, 369, 369, 67, 369, 269,
964  68, 369, 369, 369, 369, 369, 269, 269, 269, 269,
965  269, 269, 369, 369, 369, 369, 369, 369, 369, 369,
966  369, 369, 369, 369, 369, 369, 369, 369, 369, 94,
967  269, 269, 269, 269, 269, 270, 369, 369, 369, 369,
968 
969  369, 369, 270, 270, 270, 270, 270, 270, 369, 369,
970  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
971  369, 369, 369, 369, 369, 369, 270, 270, 270, 270,
972  270, 271, 369, 369, 369, 369, 369, 369, 271, 271,
973  271, 271, 271, 271, 369, 369, 369, 369, 369, 369,
974  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
975  369, 369, 271, 271, 271, 271, 271, 276, 369, 369,
976  369, 369, 369, 369, 276, 276, 276, 276, 276, 276,
977  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
978  369, 369, 369, 369, 369, 369, 369, 369, 276, 276,
979 
980  276, 276, 276, 277, 369, 369, 369, 369, 369, 369,
981  277, 277, 277, 277, 277, 277, 369, 369, 369, 369,
982  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
983  369, 369, 369, 369, 277, 277, 277, 277, 277, 278,
984  369, 369, 369, 369, 369, 369, 278, 278, 278, 278,
985  278, 278, 369, 369, 369, 369, 369, 369, 369, 369,
986  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
987  278, 278, 278, 278, 278, 279, 369, 369, 369, 369,
988  369, 369, 279, 279, 279, 279, 279, 279, 369, 369,
989  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
990 
991  369, 369, 369, 369, 369, 369, 279, 279, 279, 279,
992  279, 280, 369, 369, 369, 369, 369, 369, 280, 280,
993  280, 280, 280, 280, 369, 369, 369, 369, 369, 369,
994  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
995  369, 369, 280, 280, 280, 280, 280, 250, 250, 250,
996  290, 369, 369, 292, 369, 369, 369, 369, 369, 369,
997  369, 369, 369, 369, 369, 293, 369, 369, 369, 369,
998  369, 369, 293, 293, 293, 293, 293, 293, 369, 369,
999  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1000  369, 369, 369, 369, 369, 294, 293, 293, 293, 293,
1001 
1002  293, 253, 253, 253, 295, 369, 369, 369, 369, 369,
1003  369, 297, 369, 369, 369, 369, 369, 369, 369, 298,
1004  369, 369, 369, 369, 369, 369, 298, 298, 298, 298,
1005  298, 298, 369, 369, 369, 369, 369, 369, 369, 369,
1006  369, 369, 369, 369, 369, 369, 369, 369, 369, 299,
1007  298, 298, 298, 298, 298, 255, 255, 255, 255, 255,
1008  369, 369, 369, 369, 369, 369, 369, 219, 369, 369,
1009  369, 369, 369, 300, 369, 369, 369, 369, 369, 369,
1010  300, 300, 300, 300, 300, 300, 369, 369, 369, 369,
1011  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1012 
1013  369, 369, 369, 220, 300, 300, 300, 300, 300, 249,
1014  249, 249, 249, 255, 369, 257, 369, 369, 369, 257,
1015  257, 258, 369, 369, 369, 369, 369, 259, 369, 369,
1016  369, 369, 369, 369, 259, 259, 259, 259, 259, 259,
1017  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1018  369, 369, 369, 369, 369, 369, 369, 260, 259, 259,
1019  259, 259, 259, 72, 72, 72, 72, 72, 369, 369,
1020  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1021  369, 301, 369, 369, 369, 369, 369, 369, 301, 301,
1022  301, 301, 301, 301, 369, 369, 369, 369, 369, 369,
1023 
1024  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1025  369, 369, 301, 301, 301, 301, 301, 78, 137, 137,
1026  137, 78, 369, 25, 369, 369, 369, 369, 369, 369,
1027  369, 369, 369, 369, 369, 303, 369, 369, 369, 369,
1028  369, 369, 303, 303, 303, 303, 303, 303, 369, 369,
1029  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1030  369, 369, 369, 369, 369, 26, 303, 303, 303, 303,
1031  303, 139, 139, 139, 139, 139, 369, 369, 369, 369,
1032  369, 369, 369, 369, 369, 369, 369, 369, 369, 304,
1033  369, 369, 369, 369, 369, 369, 304, 304, 304, 304,
1034 
1035  304, 304, 369, 369, 369, 369, 369, 369, 369, 369,
1036  369, 369, 369, 369, 369, 369, 369, 369, 369, 82,
1037  304, 304, 304, 304, 304, 141, 141, 141, 141, 141,
1038  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1039  369, 67, 369, 305, 68, 369, 369, 369, 369, 369,
1040  305, 305, 305, 305, 305, 305, 369, 369, 369, 369,
1041  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1042  369, 369, 369, 84, 305, 305, 305, 305, 305, 85,
1043  85, 85, 85, 85, 369, 369, 369, 369, 369, 369,
1044  369, 369, 369, 369, 369, 67, 369, 306, 68, 369,
1045 
1046  369, 369, 369, 369, 306, 306, 306, 306, 306, 306,
1047  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1048  369, 369, 369, 369, 369, 369, 369, 84, 306, 306,
1049  306, 306, 306, 88, 144, 144, 144, 88, 369, 369,
1050  369, 369, 369, 25, 369, 369, 369, 369, 369, 369,
1051  369, 307, 369, 369, 369, 369, 369, 369, 307, 307,
1052  307, 307, 307, 307, 369, 369, 369, 369, 369, 369,
1053  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1054  369, 32, 307, 307, 307, 307, 307, 146, 146, 146,
1055  146, 146, 369, 369, 369, 369, 369, 369, 369, 369,
1056 
1057  369, 369, 369, 67, 369, 308, 68, 369, 369, 369,
1058  369, 369, 308, 308, 308, 308, 308, 308, 369, 369,
1059  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1060  369, 369, 369, 369, 369, 94, 308, 308, 308, 308,
1061  308, 95, 95, 95, 95, 95, 369, 369, 369, 369,
1062  369, 369, 369, 369, 369, 369, 369, 67, 369, 309,
1063  68, 369, 369, 369, 369, 369, 309, 309, 309, 309,
1064  309, 309, 369, 369, 369, 369, 369, 369, 369, 369,
1065  369, 369, 369, 369, 369, 369, 369, 369, 369, 94,
1066  309, 309, 309, 309, 309, 152, 152, 152, 152, 152,
1067 
1068  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1069  369, 369, 369, 310, 369, 369, 369, 369, 369, 369,
1070  310, 310, 310, 310, 310, 310, 369, 369, 369, 369,
1071  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1072  369, 369, 369, 369, 310, 310, 310, 310, 310, 115,
1073  115, 115, 115, 115, 369, 369, 369, 369, 369, 369,
1074  369, 369, 369, 369, 369, 369, 369, 311, 369, 369,
1075  369, 369, 369, 369, 311, 311, 311, 311, 311, 311,
1076  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1077  369, 369, 369, 369, 369, 369, 369, 369, 311, 311,
1078 
1079  311, 311, 311, 315, 369, 369, 369, 369, 369, 369,
1080  315, 315, 315, 315, 315, 315, 369, 369, 369, 369,
1081  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1082  369, 369, 369, 369, 315, 315, 315, 315, 315, 316,
1083  369, 369, 369, 369, 369, 369, 316, 316, 316, 316,
1084  316, 316, 369, 369, 369, 369, 369, 369, 369, 369,
1085  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1086  316, 316, 316, 316, 316, 317, 369, 369, 369, 369,
1087  369, 369, 317, 317, 317, 317, 317, 317, 369, 369,
1088  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1089 
1090  369, 369, 369, 369, 369, 369, 317, 317, 317, 317,
1091  317, 318, 369, 369, 369, 369, 369, 369, 318, 318,
1092  318, 318, 318, 318, 369, 369, 369, 369, 369, 369,
1093  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1094  369, 369, 318, 318, 318, 318, 318, 319, 369, 369,
1095  369, 369, 369, 369, 319, 319, 319, 319, 319, 319,
1096  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1097  369, 369, 369, 369, 369, 369, 369, 369, 319, 319,
1098  319, 319, 319, 291, 330, 330, 330, 291, 369, 251,
1099  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1100 
1101  369, 331, 369, 369, 369, 369, 369, 369, 331, 331,
1102  331, 331, 331, 331, 369, 369, 369, 369, 369, 369,
1103  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1104  369, 252, 331, 331, 331, 331, 331, 250, 250, 250,
1105  290, 369, 369, 292, 369, 369, 369, 369, 369, 369,
1106  369, 369, 369, 369, 369, 293, 369, 369, 369, 369,
1107  369, 369, 293, 293, 293, 293, 293, 293, 369, 369,
1108  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1109  369, 369, 369, 369, 369, 294, 293, 293, 293, 293,
1110  293, 296, 334, 334, 334, 296, 369, 369, 369, 369,
1111 
1112  369, 251, 369, 369, 369, 369, 369, 369, 369, 335,
1113  369, 369, 369, 369, 369, 369, 335, 335, 335, 335,
1114  335, 335, 369, 369, 369, 369, 369, 369, 369, 369,
1115  369, 369, 369, 369, 369, 369, 369, 369, 369, 254,
1116  335, 335, 335, 335, 335, 253, 253, 253, 295, 369,
1117  369, 369, 369, 369, 369, 297, 369, 369, 369, 369,
1118  369, 369, 369, 298, 369, 369, 369, 369, 369, 369,
1119  298, 298, 298, 298, 298, 298, 369, 369, 369, 369,
1120  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1121  369, 369, 369, 299, 298, 298, 298, 298, 298, 255,
1122 
1123  255, 255, 255, 255, 369, 369, 369, 369, 369, 369,
1124  369, 219, 369, 369, 369, 369, 369, 336, 369, 369,
1125  369, 369, 369, 369, 336, 336, 336, 336, 336, 336,
1126  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1127  369, 369, 369, 369, 369, 369, 369, 220, 336, 336,
1128  336, 336, 336, 66, 369, 369, 369, 369, 369, 369,
1129  66, 66, 66, 66, 66, 66, 369, 369, 369, 369,
1130  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1131  369, 369, 369, 369, 66, 66, 66, 66, 66, 139,
1132  139, 139, 139, 139, 369, 369, 369, 369, 369, 369,
1133 
1134  369, 369, 369, 369, 369, 369, 369, 338, 369, 369,
1135  369, 369, 369, 369, 338, 338, 338, 338, 338, 338,
1136  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1137  369, 369, 369, 369, 369, 369, 369, 82, 338, 338,
1138  338, 338, 338, 141, 141, 141, 141, 141, 369, 369,
1139  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1140  369, 339, 369, 369, 369, 369, 369, 369, 339, 339,
1141  339, 339, 339, 339, 369, 369, 369, 369, 369, 369,
1142  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1143  369, 369, 339, 339, 339, 339, 339, 146, 146, 146,
1144 
1145  146, 146, 369, 369, 369, 369, 369, 369, 369, 369,
1146  369, 369, 369, 369, 369, 340, 369, 369, 369, 369,
1147  369, 369, 340, 340, 340, 340, 340, 340, 369, 369,
1148  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1149  369, 369, 369, 369, 369, 369, 340, 340, 340, 340,
1150  340, 341, 369, 369, 369, 369, 369, 369, 341, 341,
1151  341, 341, 341, 341, 369, 369, 369, 369, 369, 369,
1152  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1153  369, 369, 341, 341, 341, 341, 341, 115, 115, 115,
1154  115, 115, 369, 369, 369, 369, 369, 369, 369, 369,
1155 
1156  369, 369, 369, 369, 369, 99, 369, 369, 369, 369,
1157  369, 369, 99, 99, 99, 99, 99, 99, 369, 369,
1158  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1159  369, 369, 369, 369, 369, 369, 99, 99, 99, 99,
1160  99, 203, 203, 203, 203, 203, 369, 369, 369, 369,
1161  369, 369, 369, 369, 369, 369, 369, 369, 369, 344,
1162  369, 369, 369, 369, 369, 369, 344, 344, 344, 344,
1163  344, 344, 369, 369, 369, 369, 369, 369, 369, 369,
1164  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1165  344, 344, 344, 344, 344, 168, 168, 168, 168, 168,
1166 
1167  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1168  369, 369, 369, 345, 369, 369, 369, 369, 369, 369,
1169  345, 345, 345, 345, 345, 345, 369, 369, 369, 369,
1170  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1171  369, 369, 369, 369, 345, 345, 345, 345, 345, 346,
1172  369, 369, 369, 369, 369, 369, 346, 346, 346, 346,
1173  346, 346, 369, 369, 369, 369, 369, 369, 369, 369,
1174  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1175  346, 346, 346, 346, 346, 347, 369, 369, 369, 369,
1176  369, 369, 347, 347, 347, 347, 347, 347, 369, 369,
1177 
1178  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1179  369, 369, 369, 369, 369, 369, 347, 347, 347, 347,
1180  347, 349, 369, 369, 369, 369, 369, 369, 349, 349,
1181  349, 349, 349, 349, 369, 369, 369, 369, 369, 369,
1182  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1183  369, 369, 349, 349, 349, 349, 349, 350, 369, 369,
1184  369, 369, 369, 369, 350, 350, 350, 350, 350, 350,
1185  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1186  369, 369, 369, 369, 369, 369, 369, 369, 350, 350,
1187  350, 350, 350, 255, 255, 255, 255, 255, 369, 369,
1188 
1189  369, 369, 369, 369, 369, 219, 369, 369, 369, 369,
1190  369, 351, 369, 369, 369, 369, 369, 369, 351, 351,
1191  351, 351, 351, 351, 369, 369, 369, 369, 369, 369,
1192  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1193  369, 220, 351, 351, 351, 351, 351, 28, 369, 369,
1194  369, 369, 369, 369, 28, 28, 28, 28, 28, 28,
1195  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1196  369, 369, 369, 369, 369, 369, 369, 369, 28, 28,
1197  28, 28, 28, 355, 369, 369, 369, 369, 369, 369,
1198  355, 355, 355, 355, 355, 355, 369, 369, 369, 369,
1199 
1200  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1201  369, 369, 369, 369, 355, 355, 355, 355, 355, 166,
1202  369, 369, 369, 369, 369, 369, 166, 166, 166, 166,
1203  166, 166, 369, 369, 369, 369, 369, 369, 369, 369,
1204  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1205  166, 166, 166, 166, 166, 356, 369, 369, 369, 369,
1206  369, 369, 356, 356, 356, 356, 356, 356, 369, 369,
1207  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1208  369, 369, 369, 369, 369, 369, 356, 356, 356, 356,
1209  356, 170, 369, 369, 369, 369, 369, 369, 170, 170,
1210 
1211  170, 170, 170, 170, 369, 369, 369, 369, 369, 369,
1212  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1213  369, 369, 170, 170, 170, 170, 170, 358, 369, 369,
1214  369, 369, 369, 369, 358, 358, 358, 358, 358, 358,
1215  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1216  369, 369, 369, 369, 369, 369, 369, 369, 358, 358,
1217  358, 358, 358, 359, 369, 369, 369, 369, 369, 369,
1218  359, 359, 359, 359, 359, 359, 369, 369, 369, 369,
1219  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1220  369, 369, 369, 369, 359, 359, 359, 359, 359, 360,
1221 
1222  369, 369, 369, 369, 369, 369, 360, 360, 360, 360,
1223  360, 360, 369, 369, 369, 369, 369, 369, 369, 369,
1224  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1225  360, 360, 360, 360, 360, 362, 369, 369, 369, 369,
1226  369, 369, 362, 362, 362, 362, 362, 362, 369, 369,
1227  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1228  369, 369, 369, 369, 369, 369, 362, 362, 362, 362,
1229  362, 363, 369, 369, 369, 369, 369, 369, 363, 363,
1230  363, 363, 363, 363, 369, 369, 369, 369, 369, 369,
1231  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1232 
1233  369, 369, 363, 363, 363, 363, 363, 364, 369, 369,
1234  369, 369, 369, 369, 364, 364, 364, 364, 364, 364,
1235  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1236  369, 369, 369, 369, 369, 369, 369, 369, 364, 364,
1237  364, 364, 364, 366, 369, 369, 369, 369, 369, 369,
1238  366, 366, 366, 366, 366, 366, 369, 369, 369, 369,
1239  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1240  369, 369, 369, 369, 366, 366, 366, 366, 366, 367,
1241  369, 369, 369, 369, 369, 369, 367, 367, 367, 367,
1242  367, 367, 369, 369, 369, 369, 369, 369, 369, 369,
1243 
1244  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1245  367, 367, 367, 367, 367, 24, 369, 369, 24, 24,
1246  24, 24, 24, 24, 24, 24, 24, 24, 24, 29,
1247  369, 29, 369, 369, 29, 29, 31, 369, 369, 31,
1248  31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
1249  36, 36, 36, 369, 369, 36, 36, 40, 369, 40,
1250  369, 369, 40, 40, 66, 66, 66, 66, 66, 369,
1251  66, 66, 72, 72, 72, 72, 72, 72, 72, 72,
1252  72, 72, 72, 78, 78, 78, 78, 78, 78, 78,
1253  78, 78, 78, 78, 78, 78, 78, 28, 369, 28,
1254 
1255  369, 369, 28, 28, 83, 83, 83, 83, 369, 83,
1256  83, 85, 85, 85, 85, 85, 85, 85, 85, 85,
1257  85, 85, 88, 88, 88, 88, 88, 88, 88, 88,
1258  88, 88, 88, 88, 88, 88, 93, 93, 93, 93,
1259  369, 93, 93, 95, 95, 95, 95, 95, 95, 95,
1260  95, 95, 95, 95, 97, 97, 97, 97, 97, 97,
1261  97, 97, 97, 97, 97, 97, 97, 97, 97, 99,
1262  369, 99, 369, 369, 99, 99, 115, 115, 115, 115,
1263  115, 115, 115, 115, 115, 115, 115, 125, 369, 369,
1264  369, 369, 125, 125, 128, 369, 369, 369, 369, 128,
1265 
1266  128, 130, 130, 130, 130, 130, 130, 130, 130, 130,
1267  130, 130, 132, 369, 132, 132, 139, 139, 139, 139,
1268  139, 139, 139, 139, 139, 139, 139, 141, 141, 141,
1269  141, 141, 141, 141, 141, 141, 141, 141, 146, 146,
1270  146, 146, 146, 146, 146, 146, 146, 146, 146, 149,
1271  149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
1272  149, 149, 149, 149, 152, 152, 152, 152, 152, 152,
1273  152, 152, 152, 152, 152, 166, 166, 166, 166, 369,
1274  166, 166, 168, 168, 168, 168, 168, 168, 168, 168,
1275  168, 168, 168, 170, 369, 170, 369, 369, 170, 170,
1276 
1277  172, 172, 172, 172, 172, 172, 172, 172, 172, 172,
1278  172, 176, 369, 176, 369, 176, 176, 24, 369, 369,
1279  24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
1280  24, 28, 369, 28, 369, 369, 28, 28, 31, 369,
1281  369, 31, 31, 31, 31, 31, 31, 31, 31, 31,
1282  31, 31, 189, 189, 189, 189, 189, 189, 189, 189,
1283  189, 189, 189, 189, 189, 189, 189, 191, 191, 191,
1284  191, 191, 191, 191, 191, 191, 191, 191, 191, 191,
1285  191, 191, 203, 203, 203, 203, 203, 203, 203, 203,
1286  203, 203, 203, 206, 206, 206, 206, 206, 206, 206,
1287 
1288  206, 206, 206, 206, 211, 369, 211, 369, 211, 211,
1289  216, 216, 216, 216, 216, 216, 369, 216, 216, 216,
1290  216, 216, 216, 216, 24, 24, 24, 24, 24, 24,
1291  24, 24, 24, 24, 24, 24, 24, 24, 28, 28,
1292  28, 28, 369, 369, 369, 28, 369, 28, 369, 369,
1293  28, 28, 149, 149, 149, 149, 149, 149, 149, 149,
1294  149, 149, 149, 149, 149, 149, 149, 191, 191, 191,
1295  191, 191, 191, 191, 191, 191, 191, 191, 191, 191,
1296  191, 191, 244, 369, 244, 369, 244, 244, 216, 216,
1297  216, 216, 216, 216, 369, 216, 216, 216, 216, 216,
1298 
1299  216, 216, 250, 369, 369, 250, 250, 250, 250, 250,
1300  250, 250, 250, 250, 250, 250, 253, 369, 369, 253,
1301  253, 253, 253, 253, 253, 253, 253, 253, 253, 253,
1302  256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
1303  256, 256, 256, 256, 24, 24, 24, 24, 24, 24,
1304  24, 24, 24, 24, 24, 24, 24, 24, 28, 28,
1305  28, 28, 369, 369, 369, 28, 369, 28, 369, 369,
1306  28, 28, 83, 83, 83, 83, 369, 369, 369, 83,
1307  83, 83, 83, 369, 83, 83, 31, 31, 31, 31,
1308  31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
1309 
1310  93, 93, 93, 93, 369, 369, 369, 93, 93, 93,
1311  93, 369, 93, 93, 191, 191, 191, 191, 191, 191,
1312  191, 191, 191, 191, 191, 191, 191, 191, 191, 282,
1313  369, 282, 369, 282, 282, 291, 291, 291, 291, 291,
1314  291, 291, 291, 291, 291, 291, 291, 291, 291, 296,
1315  296, 296, 296, 296, 296, 296, 296, 296, 296, 296,
1316  296, 296, 296, 216, 216, 216, 216, 216, 369, 369,
1317  216, 216, 216, 216, 216, 216, 216, 256, 256, 256,
1318  256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
1319  256, 24, 24, 24, 24, 24, 24, 24, 24, 24,
1320 
1321  24, 24, 24, 24, 24, 28, 28, 28, 28, 369,
1322  369, 369, 28, 369, 28, 369, 369, 28, 28, 83,
1323  83, 83, 83, 369, 369, 369, 83, 83, 83, 83,
1324  369, 83, 83, 31, 31, 31, 31, 31, 31, 31,
1325  31, 31, 31, 31, 31, 31, 31, 93, 93, 93,
1326  93, 369, 369, 369, 93, 93, 93, 93, 369, 93,
1327  93, 321, 369, 321, 369, 321, 321, 291, 291, 291,
1328  291, 291, 291, 291, 291, 291, 291, 291, 291, 291,
1329  291, 253, 253, 369, 253, 253, 253, 253, 253, 253,
1330  253, 253, 253, 253, 253, 296, 296, 296, 296, 296,
1331 
1332  296, 296, 296, 296, 296, 296, 296, 296, 296, 216,
1333  216, 216, 216, 216, 369, 369, 216, 216, 216, 216,
1334  216, 216, 216, 3, 369, 369, 369, 369, 369, 369,
1335  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1336  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1337  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1338  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1339  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1340  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
1341  369, 369, 369, 369, 369, 369, 369, 369, 369, 369
1342 
1343  } ;
1344 
1345 static yyconst flex_int16_t yy_chk[6701] =
1346  { 0,
1347  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1348  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1349  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1350  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1351  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1352  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1353  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1354  1, 1, 1, 1, 1, 1, 5, 5, 5, 5,
1355  5, 6, 6, 6, 6, 6, 8, 9, 10, 23,
1356  9, 11, 11, 24, 11, 17, 12, 63, 27, 12,
1357 
1358  17, 27, 31, 17, 22, 22, 22, 22, 22, 29,
1359  38, 23, 29, 38, 39, 47, 39, 132, 321, 59,
1360  9, 63, 46, 60, 11, 132, 10, 287, 8, 12,
1361  14, 27, 17, 46, 47, 24, 14, 14, 47, 14,
1362  31, 29, 59, 38, 46, 60, 14, 14, 14, 14,
1363  14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
1364  14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
1365  14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
1366  14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
1367  14, 40, 50, 50, 40, 14, 16, 52, 62, 16,
1368 
1369  18, 286, 16, 18, 49, 18, 16, 16, 18, 16,
1370  36, 49, 61, 52, 50, 36, 64, 51, 36, 16,
1371  52, 62, 16, 40, 48, 16, 49, 51, 16, 16,
1372  18, 16, 88, 48, 61, 48, 66, 18, 67, 51,
1373  64, 66, 68, 72, 66, 53, 48, 36, 72, 176,
1374  53, 72, 18, 19, 118, 48, 53, 176, 54, 55,
1375  19, 19, 19, 19, 19, 19, 78, 53, 79, 137,
1376  88, 67, 53, 66, 54, 68, 285, 54, 118, 54,
1377  72, 54, 55, 55, 19, 19, 19, 19, 19, 26,
1378  26, 26, 26, 89, 284, 26, 54, 71, 77, 54,
1379 
1380  87, 83, 71, 77, 83, 71, 200, 26, 78, 87,
1381  79, 137, 211, 119, 26, 26, 26, 26, 26, 26,
1382  211, 144, 71, 217, 85, 93, 95, 85, 93, 95,
1383  200, 89, 98, 83, 71, 119, 98, 26, 26, 26,
1384  26, 26, 26, 30, 71, 77, 102, 87, 105, 283,
1385  30, 30, 30, 30, 30, 30, 85, 93, 95, 144,
1386  124, 108, 108, 102, 114, 217, 120, 121, 123, 102,
1387  122, 105, 105, 136, 30, 30, 30, 30, 30, 32,
1388  32, 32, 32, 108, 114, 385, 385, 114, 120, 32,
1389  121, 123, 122, 124, 150, 190, 136, 32, 150, 190,
1390 
1391  248, 218, 155, 163, 32, 32, 32, 32, 32, 32,
1392  130, 134, 160, 161, 125, 130, 134, 125, 130, 134,
1393  141, 146, 155, 141, 146, 155, 163, 32, 32, 32,
1394  32, 32, 32, 37, 160, 161, 162, 164, 165, 218,
1395  37, 37, 37, 37, 37, 37, 125, 130, 134, 181,
1396  197, 166, 141, 146, 166, 250, 168, 291, 162, 168,
1397  164, 165, 199, 201, 37, 37, 37, 37, 37, 41,
1398  192, 181, 197, 222, 192, 233, 41, 41, 41, 41,
1399  41, 41, 230, 166, 199, 201, 230, 234, 168, 235,
1400  247, 203, 246, 253, 203, 222, 245, 250, 233, 291,
1401 
1402  41, 41, 41, 41, 41, 57, 410, 237, 273, 410,
1403  234, 235, 57, 57, 57, 57, 57, 57, 179, 179,
1404  179, 179, 179, 203, 179, 244, 282, 295, 179, 237,
1405  179, 253, 273, 244, 282, 214, 57, 57, 57, 57,
1406  57, 69, 249, 249, 249, 249, 249, 262, 69, 69,
1407  69, 69, 69, 69, 249, 251, 251, 251, 251, 251,
1408  272, 275, 302, 290, 313, 295, 179, 251, 290, 262,
1409  337, 314, 69, 69, 69, 69, 69, 73, 73, 73,
1410  73, 73, 272, 417, 302, 275, 417, 313, 73, 399,
1411  399, 213, 337, 73, 314, 73, 73, 288, 288, 288,
1412 
1413  288, 288, 73, 73, 73, 73, 73, 73, 296, 288,
1414  290, 319, 319, 319, 319, 319, 342, 296, 303, 303,
1415  303, 303, 303, 329, 303, 73, 73, 73, 73, 73,
1416  73, 80, 80, 80, 80, 80, 212, 80, 352, 342,
1417  206, 215, 215, 215, 215, 215, 198, 215, 330, 80,
1418  193, 215, 191, 215, 333, 296, 80, 80, 80, 80,
1419  80, 80, 352, 333, 429, 329, 303, 429, 307, 307,
1420  307, 307, 307, 341, 341, 341, 341, 341, 307, 80,
1421  80, 80, 80, 80, 80, 81, 81, 81, 81, 215,
1422  330, 81, 216, 216, 216, 216, 216, 189, 216, 178,
1423 
1424  343, 333, 216, 81, 216, 255, 255, 255, 255, 255,
1425  81, 81, 81, 81, 81, 81, 307, 255, 256, 256,
1426  256, 256, 256, 343, 355, 355, 355, 355, 355, 177,
1427  256, 172, 361, 81, 81, 81, 81, 81, 81, 82,
1428  216, 440, 446, 334, 440, 446, 82, 82, 82, 82,
1429  82, 82, 334, 255, 361, 257, 257, 257, 257, 257,
1430  356, 356, 356, 356, 356, 447, 256, 257, 447, 365,
1431  82, 82, 82, 82, 82, 84, 258, 258, 258, 258,
1432  258, 170, 84, 84, 84, 84, 84, 84, 258, 157,
1433  334, 365, 156, 154, 366, 366, 366, 366, 366, 152,
1434 
1435  366, 149, 139, 257, 133, 128, 84, 84, 84, 84,
1436  84, 86, 86, 86, 86, 86, 127, 117, 115, 113,
1437  112, 111, 110, 109, 258, 107, 106, 86, 104, 86,
1438  86, 103, 101, 99, 97, 76, 86, 86, 86, 86,
1439  86, 86, 366, 70, 58, 56, 45, 44, 42, 34,
1440  33, 28, 21, 20, 306, 306, 306, 306, 306, 86,
1441  86, 86, 86, 86, 86, 90, 90, 90, 90, 90,
1442  306, 15, 13, 306, 7, 90, 292, 292, 292, 292,
1443  292, 3, 292, 90, 0, 0, 0, 0, 292, 0,
1444  90, 90, 90, 90, 90, 90, 0, 0, 0, 0,
1445 
1446  0, 0, 306, 0, 0, 0, 0, 309, 309, 309,
1447  309, 309, 0, 90, 90, 90, 90, 90, 90, 91,
1448  91, 91, 91, 309, 292, 0, 309, 0, 0, 91,
1449  297, 297, 297, 297, 297, 0, 0, 91, 0, 0,
1450  297, 0, 297, 0, 91, 91, 91, 91, 91, 91,
1451  328, 328, 328, 328, 328, 309, 328, 0, 0, 0,
1452  0, 0, 328, 0, 0, 0, 0, 91, 91, 91,
1453  91, 91, 91, 94, 0, 0, 0, 0, 297, 0,
1454  94, 94, 94, 94, 94, 94, 0, 0, 0, 0,
1455  0, 0, 0, 0, 0, 0, 0, 0, 328, 339,
1456 
1457  339, 339, 339, 339, 94, 94, 94, 94, 94, 96,
1458  96, 96, 96, 96, 0, 339, 0, 0, 339, 332,
1459  332, 332, 332, 332, 0, 96, 0, 96, 96, 332,
1460  0, 332, 0, 0, 96, 96, 96, 96, 96, 96,
1461  0, 0, 0, 0, 0, 0, 0, 339, 0, 0,
1462  0, 0, 0, 0, 0, 0, 0, 96, 96, 96,
1463  96, 96, 96, 100, 0, 0, 0, 332, 0, 0,
1464  100, 100, 100, 100, 100, 100, 0, 0, 0, 0,
1465  0, 0, 0, 367, 367, 367, 367, 367, 340, 340,
1466  340, 340, 340, 367, 100, 100, 100, 100, 100, 116,
1467 
1468  116, 116, 116, 116, 340, 0, 0, 340, 364, 364,
1469  364, 364, 364, 0, 0, 0, 0, 116, 0, 0,
1470  364, 0, 0, 0, 116, 116, 116, 116, 116, 116,
1471  0, 367, 0, 0, 0, 0, 340, 0, 0, 0,
1472  0, 0, 0, 0, 0, 0, 0, 116, 116, 116,
1473  116, 116, 116, 126, 0, 0, 364, 0, 0, 0,
1474  126, 126, 126, 126, 126, 126, 0, 0, 0, 0,
1475  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1476  0, 0, 0, 0, 126, 126, 126, 126, 126, 129,
1477  0, 0, 0, 0, 0, 0, 129, 129, 129, 129,
1478 
1479  129, 129, 0, 0, 0, 0, 0, 0, 0, 0,
1480  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1481  129, 129, 129, 129, 129, 131, 131, 131, 131, 131,
1482  0, 0, 0, 0, 0, 0, 131, 0, 0, 0,
1483  0, 131, 0, 131, 131, 0, 0, 0, 0, 0,
1484  131, 131, 131, 131, 131, 131, 0, 0, 0, 0,
1485  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1486  0, 0, 0, 131, 131, 131, 131, 131, 131, 135,
1487  135, 135, 135, 135, 0, 0, 0, 0, 0, 0,
1488  0, 0, 0, 0, 0, 0, 0, 135, 0, 0,
1489 
1490  0, 0, 0, 0, 135, 135, 135, 135, 135, 135,
1491  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1492  0, 0, 0, 0, 0, 0, 0, 0, 135, 135,
1493  135, 135, 135, 138, 138, 138, 138, 138, 0, 138,
1494  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1495  0, 138, 0, 0, 0, 0, 0, 0, 138, 138,
1496  138, 138, 138, 138, 0, 0, 0, 0, 0, 0,
1497  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1498  0, 138, 138, 138, 138, 138, 138, 140, 140, 140,
1499  140, 140, 0, 0, 0, 0, 0, 0, 0, 0,
1500 
1501  0, 0, 0, 0, 0, 140, 0, 0, 0, 0,
1502  0, 0, 140, 140, 140, 140, 140, 140, 0, 0,
1503  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1504  0, 0, 0, 0, 0, 140, 140, 140, 140, 140,
1505  140, 142, 142, 142, 142, 142, 0, 0, 0, 0,
1506  0, 0, 0, 0, 0, 0, 0, 142, 0, 142,
1507  142, 0, 0, 0, 0, 0, 142, 142, 142, 142,
1508  142, 142, 0, 0, 0, 0, 0, 0, 0, 0,
1509  0, 0, 0, 0, 0, 0, 0, 0, 0, 142,
1510  142, 142, 142, 142, 142, 143, 143, 143, 143, 143,
1511 
1512  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1513  0, 0, 0, 143, 0, 0, 0, 0, 0, 0,
1514  143, 143, 143, 143, 143, 143, 0, 0, 0, 0,
1515  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1516  0, 0, 0, 0, 143, 143, 143, 143, 143, 145,
1517  145, 145, 145, 145, 0, 0, 0, 0, 0, 145,
1518  0, 0, 0, 0, 0, 0, 0, 145, 0, 0,
1519  0, 0, 0, 0, 145, 145, 145, 145, 145, 145,
1520  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1521  0, 0, 0, 0, 0, 0, 0, 145, 145, 145,
1522 
1523  145, 145, 145, 147, 147, 147, 147, 147, 0, 0,
1524  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1525  0, 147, 0, 0, 0, 0, 0, 0, 147, 147,
1526  147, 147, 147, 147, 0, 0, 0, 0, 0, 0,
1527  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1528  0, 0, 147, 147, 147, 147, 147, 148, 148, 148,
1529  148, 148, 0, 0, 0, 0, 0, 0, 0, 0,
1530  0, 0, 0, 0, 0, 148, 0, 0, 0, 0,
1531  0, 0, 148, 148, 148, 148, 148, 148, 0, 0,
1532  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1533 
1534  0, 0, 0, 0, 0, 0, 148, 148, 148, 148,
1535  148, 153, 153, 153, 153, 153, 0, 0, 0, 0,
1536  0, 0, 0, 0, 0, 0, 0, 0, 0, 153,
1537  0, 0, 0, 0, 0, 0, 153, 153, 153, 153,
1538  153, 153, 0, 0, 0, 0, 0, 0, 0, 0,
1539  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1540  153, 153, 153, 153, 153, 158, 158, 158, 158, 158,
1541  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1542  0, 0, 0, 158, 0, 0, 0, 0, 0, 0,
1543  158, 158, 158, 158, 158, 158, 0, 0, 0, 0,
1544 
1545  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1546  0, 0, 0, 0, 158, 158, 158, 158, 158, 167,
1547  0, 0, 0, 0, 0, 0, 167, 167, 167, 167,
1548  167, 167, 0, 0, 0, 0, 0, 0, 0, 0,
1549  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1550  167, 167, 167, 167, 167, 169, 169, 169, 169, 169,
1551  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1552  0, 169, 0, 169, 169, 0, 0, 0, 0, 0,
1553  169, 169, 169, 169, 169, 169, 0, 0, 0, 0,
1554  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1555 
1556  0, 0, 0, 169, 169, 169, 169, 169, 169, 171,
1557  0, 0, 0, 0, 0, 0, 171, 171, 171, 171,
1558  171, 171, 0, 0, 0, 0, 0, 0, 0, 0,
1559  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1560  171, 171, 171, 171, 171, 173, 173, 173, 173, 173,
1561  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1562  0, 0, 0, 173, 0, 0, 0, 0, 0, 0,
1563  173, 173, 173, 173, 173, 173, 0, 0, 0, 0,
1564  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1565  0, 0, 0, 173, 173, 173, 173, 173, 173, 174,
1566 
1567  0, 0, 0, 0, 0, 0, 174, 174, 174, 174,
1568  174, 174, 0, 0, 0, 0, 0, 0, 0, 0,
1569  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1570  174, 174, 174, 174, 174, 180, 180, 180, 180, 180,
1571  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1572  0, 0, 0, 180, 0, 0, 0, 0, 0, 0,
1573  180, 180, 180, 180, 180, 180, 0, 0, 0, 0,
1574  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1575  0, 0, 0, 0, 180, 180, 180, 180, 180, 182,
1576  182, 182, 182, 182, 0, 182, 0, 0, 0, 0,
1577 
1578  0, 0, 0, 0, 0, 0, 0, 182, 0, 0,
1579  0, 0, 0, 0, 182, 182, 182, 182, 182, 182,
1580  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1581  0, 0, 0, 0, 0, 0, 0, 182, 182, 182,
1582  182, 182, 182, 183, 183, 183, 183, 183, 0, 0,
1583  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1584  0, 183, 0, 0, 0, 0, 0, 0, 183, 183,
1585  183, 183, 183, 183, 0, 0, 0, 0, 0, 0,
1586  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1587  0, 183, 183, 183, 183, 183, 183, 184, 0, 0,
1588 
1589  0, 0, 0, 0, 184, 184, 184, 184, 184, 184,
1590  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1591  0, 0, 0, 0, 0, 0, 0, 0, 184, 184,
1592  184, 184, 184, 185, 185, 185, 185, 185, 0, 0,
1593  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1594  0, 185, 0, 0, 0, 0, 0, 0, 185, 185,
1595  185, 185, 185, 185, 0, 0, 0, 0, 0, 0,
1596  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1597  0, 0, 185, 185, 185, 185, 185, 186, 186, 186,
1598  186, 186, 0, 0, 0, 0, 0, 186, 0, 0,
1599 
1600  0, 0, 0, 0, 0, 186, 0, 0, 0, 0,
1601  0, 0, 186, 186, 186, 186, 186, 186, 0, 0,
1602  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1603  0, 0, 0, 0, 0, 186, 186, 186, 186, 186,
1604  186, 187, 0, 0, 0, 0, 0, 0, 187, 187,
1605  187, 187, 187, 187, 0, 0, 0, 0, 0, 0,
1606  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1607  0, 0, 187, 187, 187, 187, 187, 188, 0, 0,
1608  0, 0, 0, 0, 188, 188, 188, 188, 188, 188,
1609  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1610 
1611  0, 0, 0, 0, 0, 0, 0, 0, 188, 188,
1612  188, 188, 188, 194, 0, 0, 0, 0, 0, 0,
1613  194, 194, 194, 194, 194, 194, 0, 0, 0, 0,
1614  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1615  0, 0, 0, 0, 194, 194, 194, 194, 194, 195,
1616  195, 195, 195, 195, 0, 0, 0, 0, 0, 0,
1617  0, 0, 0, 0, 0, 0, 0, 195, 0, 0,
1618  0, 0, 0, 0, 195, 195, 195, 195, 195, 195,
1619  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1620  0, 0, 0, 0, 0, 0, 0, 0, 195, 195,
1621 
1622  195, 195, 195, 196, 196, 196, 196, 196, 0, 0,
1623  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1624  0, 196, 0, 0, 0, 0, 0, 0, 196, 196,
1625  196, 196, 196, 196, 0, 0, 0, 0, 0, 0,
1626  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1627  0, 0, 196, 196, 196, 196, 196, 204, 204, 204,
1628  204, 204, 0, 0, 0, 0, 0, 0, 0, 0,
1629  0, 0, 0, 204, 0, 204, 204, 0, 0, 0,
1630  0, 0, 204, 204, 204, 204, 204, 204, 0, 0,
1631  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1632 
1633  0, 0, 0, 0, 0, 204, 204, 204, 204, 204,
1634  204, 205, 205, 205, 205, 205, 0, 0, 0, 0,
1635  0, 0, 0, 0, 0, 0, 0, 0, 0, 205,
1636  0, 0, 0, 0, 0, 0, 205, 205, 205, 205,
1637  205, 205, 0, 0, 0, 0, 0, 0, 0, 0,
1638  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1639  205, 205, 205, 205, 205, 207, 207, 207, 207, 207,
1640  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1641  0, 0, 0, 207, 0, 0, 0, 0, 0, 0,
1642  207, 207, 207, 207, 207, 207, 0, 0, 0, 0,
1643 
1644  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1645  0, 0, 0, 207, 207, 207, 207, 207, 207, 208,
1646  208, 208, 208, 208, 0, 0, 0, 0, 0, 0,
1647  0, 0, 0, 0, 0, 0, 0, 208, 0, 0,
1648  0, 0, 0, 0, 208, 208, 208, 208, 208, 208,
1649  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1650  0, 0, 0, 0, 0, 0, 0, 0, 208, 208,
1651  208, 208, 208, 209, 0, 0, 0, 0, 0, 0,
1652  209, 209, 209, 209, 209, 209, 0, 0, 0, 0,
1653  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1654 
1655  0, 0, 0, 0, 209, 209, 209, 209, 209, 220,
1656  220, 220, 220, 220, 0, 220, 0, 0, 0, 220,
1657  220, 220, 0, 0, 0, 0, 0, 220, 0, 0,
1658  0, 0, 0, 0, 220, 220, 220, 220, 220, 220,
1659  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1660  0, 0, 0, 0, 0, 0, 0, 220, 220, 220,
1661  220, 220, 220, 221, 221, 221, 221, 221, 0, 0,
1662  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1663  0, 221, 0, 0, 0, 0, 0, 0, 221, 221,
1664  221, 221, 221, 221, 0, 0, 0, 0, 0, 0,
1665 
1666  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1667  0, 0, 221, 221, 221, 221, 221, 223, 223, 223,
1668  223, 223, 0, 223, 0, 0, 0, 0, 0, 0,
1669  0, 0, 0, 0, 0, 223, 0, 0, 0, 0,
1670  0, 0, 223, 223, 223, 223, 223, 223, 0, 0,
1671  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1672  0, 0, 0, 0, 0, 223, 223, 223, 223, 223,
1673  223, 224, 224, 224, 224, 224, 0, 0, 0, 0,
1674  0, 0, 0, 0, 0, 0, 0, 0, 0, 224,
1675  0, 0, 0, 0, 0, 0, 224, 224, 224, 224,
1676 
1677  224, 224, 0, 0, 0, 0, 0, 0, 0, 0,
1678  0, 0, 0, 0, 0, 0, 0, 0, 0, 224,
1679  224, 224, 224, 224, 224, 225, 225, 225, 225, 225,
1680  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1681  0, 225, 0, 225, 225, 0, 0, 0, 0, 0,
1682  225, 225, 225, 225, 225, 225, 0, 0, 0, 0,
1683  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1684  0, 0, 0, 225, 225, 225, 225, 225, 225, 226,
1685  226, 226, 226, 226, 0, 0, 0, 0, 0, 0,
1686  0, 0, 0, 0, 0, 226, 0, 226, 226, 0,
1687 
1688  0, 0, 0, 0, 226, 226, 226, 226, 226, 226,
1689  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1690  0, 0, 0, 0, 0, 0, 0, 226, 226, 226,
1691  226, 226, 226, 227, 227, 227, 227, 227, 0, 0,
1692  0, 0, 0, 227, 0, 0, 0, 0, 0, 0,
1693  0, 227, 0, 0, 0, 0, 0, 0, 227, 227,
1694  227, 227, 227, 227, 0, 0, 0, 0, 0, 0,
1695  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1696  0, 227, 227, 227, 227, 227, 227, 228, 228, 228,
1697  228, 228, 0, 0, 0, 0, 0, 0, 0, 0,
1698 
1699  0, 0, 0, 228, 0, 228, 228, 0, 0, 0,
1700  0, 0, 228, 228, 228, 228, 228, 228, 0, 0,
1701  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1702  0, 0, 0, 0, 0, 228, 228, 228, 228, 228,
1703  228, 229, 229, 229, 229, 229, 0, 0, 0, 0,
1704  0, 0, 0, 0, 0, 0, 0, 229, 0, 229,
1705  229, 0, 0, 0, 0, 0, 229, 229, 229, 229,
1706  229, 229, 0, 0, 0, 0, 0, 0, 0, 0,
1707  0, 0, 0, 0, 0, 0, 0, 0, 0, 229,
1708  229, 229, 229, 229, 229, 231, 0, 0, 0, 0,
1709 
1710  0, 0, 231, 231, 231, 231, 231, 231, 0, 0,
1711  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1712  0, 0, 0, 0, 0, 0, 231, 231, 231, 231,
1713  231, 232, 0, 0, 0, 0, 0, 0, 232, 232,
1714  232, 232, 232, 232, 0, 0, 0, 0, 0, 0,
1715  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1716  0, 0, 232, 232, 232, 232, 232, 238, 0, 0,
1717  0, 0, 0, 0, 238, 238, 238, 238, 238, 238,
1718  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1719  0, 0, 0, 0, 0, 0, 0, 0, 238, 238,
1720 
1721  238, 238, 238, 239, 0, 0, 0, 0, 0, 0,
1722  239, 239, 239, 239, 239, 239, 0, 0, 0, 0,
1723  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1724  0, 0, 0, 0, 239, 239, 239, 239, 239, 240,
1725  0, 0, 0, 0, 0, 0, 240, 240, 240, 240,
1726  240, 240, 0, 0, 0, 0, 0, 0, 0, 0,
1727  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1728  240, 240, 240, 240, 240, 241, 0, 0, 0, 0,
1729  0, 0, 241, 241, 241, 241, 241, 241, 0, 0,
1730  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1731 
1732  0, 0, 0, 0, 0, 0, 241, 241, 241, 241,
1733  241, 242, 0, 0, 0, 0, 0, 0, 242, 242,
1734  242, 242, 242, 242, 0, 0, 0, 0, 0, 0,
1735  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1736  0, 0, 242, 242, 242, 242, 242, 252, 252, 252,
1737  252, 0, 0, 252, 0, 0, 0, 0, 0, 0,
1738  0, 0, 0, 0, 0, 252, 0, 0, 0, 0,
1739  0, 0, 252, 252, 252, 252, 252, 252, 0, 0,
1740  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1741  0, 0, 0, 0, 0, 252, 252, 252, 252, 252,
1742 
1743  252, 254, 254, 254, 254, 0, 0, 0, 0, 0,
1744  0, 254, 0, 0, 0, 0, 0, 0, 0, 254,
1745  0, 0, 0, 0, 0, 0, 254, 254, 254, 254,
1746  254, 254, 0, 0, 0, 0, 0, 0, 0, 0,
1747  0, 0, 0, 0, 0, 0, 0, 0, 0, 254,
1748  254, 254, 254, 254, 254, 259, 259, 259, 259, 259,
1749  0, 0, 0, 0, 0, 0, 0, 259, 0, 0,
1750  0, 0, 0, 259, 0, 0, 0, 0, 0, 0,
1751  259, 259, 259, 259, 259, 259, 0, 0, 0, 0,
1752  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1753 
1754  0, 0, 0, 259, 259, 259, 259, 259, 259, 260,
1755  260, 260, 260, 260, 0, 260, 0, 0, 0, 260,
1756  260, 260, 0, 0, 0, 0, 0, 260, 0, 0,
1757  0, 0, 0, 0, 260, 260, 260, 260, 260, 260,
1758  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1759  0, 0, 0, 0, 0, 0, 0, 260, 260, 260,
1760  260, 260, 260, 261, 261, 261, 261, 261, 0, 0,
1761  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1762  0, 261, 0, 0, 0, 0, 0, 0, 261, 261,
1763  261, 261, 261, 261, 0, 0, 0, 0, 0, 0,
1764 
1765  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1766  0, 0, 261, 261, 261, 261, 261, 263, 263, 263,
1767  263, 263, 0, 263, 0, 0, 0, 0, 0, 0,
1768  0, 0, 0, 0, 0, 263, 0, 0, 0, 0,
1769  0, 0, 263, 263, 263, 263, 263, 263, 0, 0,
1770  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1771  0, 0, 0, 0, 0, 263, 263, 263, 263, 263,
1772  263, 264, 264, 264, 264, 264, 0, 0, 0, 0,
1773  0, 0, 0, 0, 0, 0, 0, 0, 0, 264,
1774  0, 0, 0, 0, 0, 0, 264, 264, 264, 264,
1775 
1776  264, 264, 0, 0, 0, 0, 0, 0, 0, 0,
1777  0, 0, 0, 0, 0, 0, 0, 0, 0, 264,
1778  264, 264, 264, 264, 264, 265, 265, 265, 265, 265,
1779  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1780  0, 265, 0, 265, 265, 0, 0, 0, 0, 0,
1781  265, 265, 265, 265, 265, 265, 0, 0, 0, 0,
1782  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1783  0, 0, 0, 265, 265, 265, 265, 265, 265, 266,
1784  266, 266, 266, 266, 0, 0, 0, 0, 0, 0,
1785  0, 0, 0, 0, 0, 266, 0, 266, 266, 0,
1786 
1787  0, 0, 0, 0, 266, 266, 266, 266, 266, 266,
1788  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1789  0, 0, 0, 0, 0, 0, 0, 266, 266, 266,
1790  266, 266, 266, 267, 267, 267, 267, 267, 0, 0,
1791  0, 0, 0, 267, 0, 0, 0, 0, 0, 0,
1792  0, 267, 0, 0, 0, 0, 0, 0, 267, 267,
1793  267, 267, 267, 267, 0, 0, 0, 0, 0, 0,
1794  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1795  0, 267, 267, 267, 267, 267, 267, 268, 268, 268,
1796  268, 268, 0, 0, 0, 0, 0, 0, 0, 0,
1797 
1798  0, 0, 0, 268, 0, 268, 268, 0, 0, 0,
1799  0, 0, 268, 268, 268, 268, 268, 268, 0, 0,
1800  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1801  0, 0, 0, 0, 0, 268, 268, 268, 268, 268,
1802  268, 269, 269, 269, 269, 269, 0, 0, 0, 0,
1803  0, 0, 0, 0, 0, 0, 0, 269, 0, 269,
1804  269, 0, 0, 0, 0, 0, 269, 269, 269, 269,
1805  269, 269, 0, 0, 0, 0, 0, 0, 0, 0,
1806  0, 0, 0, 0, 0, 0, 0, 0, 0, 269,
1807  269, 269, 269, 269, 269, 270, 270, 270, 270, 270,
1808 
1809  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1810  0, 0, 0, 270, 0, 0, 0, 0, 0, 0,
1811  270, 270, 270, 270, 270, 270, 0, 0, 0, 0,
1812  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1813  0, 0, 0, 0, 270, 270, 270, 270, 270, 271,
1814  271, 271, 271, 271, 0, 0, 0, 0, 0, 0,
1815  0, 0, 0, 0, 0, 0, 0, 271, 0, 0,
1816  0, 0, 0, 0, 271, 271, 271, 271, 271, 271,
1817  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1818  0, 0, 0, 0, 0, 0, 0, 0, 271, 271,
1819 
1820  271, 271, 271, 276, 0, 0, 0, 0, 0, 0,
1821  276, 276, 276, 276, 276, 276, 0, 0, 0, 0,
1822  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1823  0, 0, 0, 0, 276, 276, 276, 276, 276, 277,
1824  0, 0, 0, 0, 0, 0, 277, 277, 277, 277,
1825  277, 277, 0, 0, 0, 0, 0, 0, 0, 0,
1826  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1827  277, 277, 277, 277, 277, 278, 0, 0, 0, 0,
1828  0, 0, 278, 278, 278, 278, 278, 278, 0, 0,
1829  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1830 
1831  0, 0, 0, 0, 0, 0, 278, 278, 278, 278,
1832  278, 279, 0, 0, 0, 0, 0, 0, 279, 279,
1833  279, 279, 279, 279, 0, 0, 0, 0, 0, 0,
1834  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1835  0, 0, 279, 279, 279, 279, 279, 280, 0, 0,
1836  0, 0, 0, 0, 280, 280, 280, 280, 280, 280,
1837  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1838  0, 0, 0, 0, 0, 0, 0, 0, 280, 280,
1839  280, 280, 280, 293, 293, 293, 293, 293, 0, 293,
1840  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1841 
1842  0, 293, 0, 0, 0, 0, 0, 0, 293, 293,
1843  293, 293, 293, 293, 0, 0, 0, 0, 0, 0,
1844  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1845  0, 293, 293, 293, 293, 293, 293, 294, 294, 294,
1846  294, 0, 0, 294, 0, 0, 0, 0, 0, 0,
1847  0, 0, 0, 0, 0, 294, 0, 0, 0, 0,
1848  0, 0, 294, 294, 294, 294, 294, 294, 0, 0,
1849  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1850  0, 0, 0, 0, 0, 294, 294, 294, 294, 294,
1851  294, 298, 298, 298, 298, 298, 0, 0, 0, 0,
1852 
1853  0, 298, 0, 0, 0, 0, 0, 0, 0, 298,
1854  0, 0, 0, 0, 0, 0, 298, 298, 298, 298,
1855  298, 298, 0, 0, 0, 0, 0, 0, 0, 0,
1856  0, 0, 0, 0, 0, 0, 0, 0, 0, 298,
1857  298, 298, 298, 298, 298, 299, 299, 299, 299, 0,
1858  0, 0, 0, 0, 0, 299, 0, 0, 0, 0,
1859  0, 0, 0, 299, 0, 0, 0, 0, 0, 0,
1860  299, 299, 299, 299, 299, 299, 0, 0, 0, 0,
1861  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1862  0, 0, 0, 299, 299, 299, 299, 299, 299, 300,
1863 
1864  300, 300, 300, 300, 0, 0, 0, 0, 0, 0,
1865  0, 300, 0, 0, 0, 0, 0, 300, 0, 0,
1866  0, 0, 0, 0, 300, 300, 300, 300, 300, 300,
1867  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1868  0, 0, 0, 0, 0, 0, 0, 300, 300, 300,
1869  300, 300, 300, 301, 0, 0, 0, 0, 0, 0,
1870  301, 301, 301, 301, 301, 301, 0, 0, 0, 0,
1871  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1872  0, 0, 0, 0, 301, 301, 301, 301, 301, 304,
1873  304, 304, 304, 304, 0, 0, 0, 0, 0, 0,
1874 
1875  0, 0, 0, 0, 0, 0, 0, 304, 0, 0,
1876  0, 0, 0, 0, 304, 304, 304, 304, 304, 304,
1877  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1878  0, 0, 0, 0, 0, 0, 0, 304, 304, 304,
1879  304, 304, 304, 305, 305, 305, 305, 305, 0, 0,
1880  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1881  0, 305, 0, 0, 0, 0, 0, 0, 305, 305,
1882  305, 305, 305, 305, 0, 0, 0, 0, 0, 0,
1883  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1884  0, 0, 305, 305, 305, 305, 305, 308, 308, 308,
1885 
1886  308, 308, 0, 0, 0, 0, 0, 0, 0, 0,
1887  0, 0, 0, 0, 0, 308, 0, 0, 0, 0,
1888  0, 0, 308, 308, 308, 308, 308, 308, 0, 0,
1889  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1890  0, 0, 0, 0, 0, 0, 308, 308, 308, 308,
1891  308, 310, 0, 0, 0, 0, 0, 0, 310, 310,
1892  310, 310, 310, 310, 0, 0, 0, 0, 0, 0,
1893  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1894  0, 0, 310, 310, 310, 310, 310, 311, 311, 311,
1895  311, 311, 0, 0, 0, 0, 0, 0, 0, 0,
1896 
1897  0, 0, 0, 0, 0, 311, 0, 0, 0, 0,
1898  0, 0, 311, 311, 311, 311, 311, 311, 0, 0,
1899  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1900  0, 0, 0, 0, 0, 0, 311, 311, 311, 311,
1901  311, 315, 315, 315, 315, 315, 0, 0, 0, 0,
1902  0, 0, 0, 0, 0, 0, 0, 0, 0, 315,
1903  0, 0, 0, 0, 0, 0, 315, 315, 315, 315,
1904  315, 315, 0, 0, 0, 0, 0, 0, 0, 0,
1905  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1906  315, 315, 315, 315, 315, 316, 316, 316, 316, 316,
1907 
1908  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1909  0, 0, 0, 316, 0, 0, 0, 0, 0, 0,
1910  316, 316, 316, 316, 316, 316, 0, 0, 0, 0,
1911  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1912  0, 0, 0, 0, 316, 316, 316, 316, 316, 317,
1913  0, 0, 0, 0, 0, 0, 317, 317, 317, 317,
1914  317, 317, 0, 0, 0, 0, 0, 0, 0, 0,
1915  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1916  317, 317, 317, 317, 317, 318, 0, 0, 0, 0,
1917  0, 0, 318, 318, 318, 318, 318, 318, 0, 0,
1918 
1919  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1920  0, 0, 0, 0, 0, 0, 318, 318, 318, 318,
1921  318, 331, 0, 0, 0, 0, 0, 0, 331, 331,
1922  331, 331, 331, 331, 0, 0, 0, 0, 0, 0,
1923  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1924  0, 0, 331, 331, 331, 331, 331, 335, 0, 0,
1925  0, 0, 0, 0, 335, 335, 335, 335, 335, 335,
1926  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1927  0, 0, 0, 0, 0, 0, 0, 0, 335, 335,
1928  335, 335, 335, 336, 336, 336, 336, 336, 0, 0,
1929 
1930  0, 0, 0, 0, 0, 336, 0, 0, 0, 0,
1931  0, 336, 0, 0, 0, 0, 0, 0, 336, 336,
1932  336, 336, 336, 336, 0, 0, 0, 0, 0, 0,
1933  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1934  0, 336, 336, 336, 336, 336, 336, 338, 0, 0,
1935  0, 0, 0, 0, 338, 338, 338, 338, 338, 338,
1936  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1937  0, 0, 0, 0, 0, 0, 0, 0, 338, 338,
1938  338, 338, 338, 344, 0, 0, 0, 0, 0, 0,
1939  344, 344, 344, 344, 344, 344, 0, 0, 0, 0,
1940 
1941  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1942  0, 0, 0, 0, 344, 344, 344, 344, 344, 345,
1943  0, 0, 0, 0, 0, 0, 345, 345, 345, 345,
1944  345, 345, 0, 0, 0, 0, 0, 0, 0, 0,
1945  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1946  345, 345, 345, 345, 345, 346, 0, 0, 0, 0,
1947  0, 0, 346, 346, 346, 346, 346, 346, 0, 0,
1948  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1949  0, 0, 0, 0, 0, 0, 346, 346, 346, 346,
1950  346, 347, 0, 0, 0, 0, 0, 0, 347, 347,
1951 
1952  347, 347, 347, 347, 0, 0, 0, 0, 0, 0,
1953  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1954  0, 0, 347, 347, 347, 347, 347, 349, 0, 0,
1955  0, 0, 0, 0, 349, 349, 349, 349, 349, 349,
1956  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1957  0, 0, 0, 0, 0, 0, 0, 0, 349, 349,
1958  349, 349, 349, 350, 0, 0, 0, 0, 0, 0,
1959  350, 350, 350, 350, 350, 350, 0, 0, 0, 0,
1960  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1961  0, 0, 0, 0, 350, 350, 350, 350, 350, 351,
1962 
1963  0, 0, 0, 0, 0, 0, 351, 351, 351, 351,
1964  351, 351, 0, 0, 0, 0, 0, 0, 0, 0,
1965  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1966  351, 351, 351, 351, 351, 358, 0, 0, 0, 0,
1967  0, 0, 358, 358, 358, 358, 358, 358, 0, 0,
1968  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1969  0, 0, 0, 0, 0, 0, 358, 358, 358, 358,
1970  358, 359, 0, 0, 0, 0, 0, 0, 359, 359,
1971  359, 359, 359, 359, 0, 0, 0, 0, 0, 0,
1972  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1973 
1974  0, 0, 359, 359, 359, 359, 359, 360, 0, 0,
1975  0, 0, 0, 0, 360, 360, 360, 360, 360, 360,
1976  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1977  0, 0, 0, 0, 0, 0, 0, 0, 360, 360,
1978  360, 360, 360, 362, 0, 0, 0, 0, 0, 0,
1979  362, 362, 362, 362, 362, 362, 0, 0, 0, 0,
1980  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1981  0, 0, 0, 0, 362, 362, 362, 362, 362, 363,
1982  0, 0, 0, 0, 0, 0, 363, 363, 363, 363,
1983  363, 363, 0, 0, 0, 0, 0, 0, 0, 0,
1984 
1985  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1986  363, 363, 363, 363, 363, 370, 0, 0, 370, 370,
1987  370, 370, 370, 370, 370, 370, 370, 370, 370, 371,
1988  0, 371, 0, 0, 371, 371, 372, 0, 0, 372,
1989  372, 372, 372, 372, 372, 372, 372, 372, 372, 372,
1990  373, 373, 373, 0, 0, 373, 373, 374, 0, 374,
1991  0, 0, 374, 374, 375, 375, 375, 375, 375, 0,
1992  375, 375, 376, 376, 376, 376, 376, 376, 376, 376,
1993  376, 376, 376, 377, 377, 377, 377, 377, 377, 377,
1994  377, 377, 377, 377, 377, 377, 377, 378, 0, 378,
1995 
1996  0, 0, 378, 378, 379, 379, 379, 379, 0, 379,
1997  379, 380, 380, 380, 380, 380, 380, 380, 380, 380,
1998  380, 380, 381, 381, 381, 381, 381, 381, 381, 381,
1999  381, 381, 381, 381, 381, 381, 382, 382, 382, 382,
2000  0, 382, 382, 383, 383, 383, 383, 383, 383, 383,
2001  383, 383, 383, 383, 384, 384, 384, 384, 384, 384,
2002  384, 384, 384, 384, 384, 384, 384, 384, 384, 386,
2003  0, 386, 0, 0, 386, 386, 387, 387, 387, 387,
2004  387, 387, 387, 387, 387, 387, 387, 388, 0, 0,
2005  0, 0, 388, 388, 389, 0, 0, 0, 0, 389,
2006 
2007  389, 390, 390, 390, 390, 390, 390, 390, 390, 390,
2008  390, 390, 391, 0, 391, 391, 392, 392, 392, 392,
2009  392, 392, 392, 392, 392, 392, 392, 393, 393, 393,
2010  393, 393, 393, 393, 393, 393, 393, 393, 394, 394,
2011  394, 394, 394, 394, 394, 394, 394, 394, 394, 395,
2012  395, 395, 395, 395, 395, 395, 395, 395, 395, 395,
2013  395, 395, 395, 395, 396, 396, 396, 396, 396, 396,
2014  396, 396, 396, 396, 396, 397, 397, 397, 397, 0,
2015  397, 397, 398, 398, 398, 398, 398, 398, 398, 398,
2016  398, 398, 398, 400, 0, 400, 0, 0, 400, 400,
2017 
2018  401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
2019  401, 402, 0, 402, 0, 402, 402, 403, 0, 0,
2020  403, 403, 403, 403, 403, 403, 403, 403, 403, 403,
2021  403, 404, 0, 404, 0, 0, 404, 404, 405, 0,
2022  0, 405, 405, 405, 405, 405, 405, 405, 405, 405,
2023  405, 405, 406, 406, 406, 406, 406, 406, 406, 406,
2024  406, 406, 406, 406, 406, 406, 406, 407, 407, 407,
2025  407, 407, 407, 407, 407, 407, 407, 407, 407, 407,
2026  407, 407, 408, 408, 408, 408, 408, 408, 408, 408,
2027  408, 408, 408, 409, 409, 409, 409, 409, 409, 409,
2028 
2029  409, 409, 409, 409, 411, 0, 411, 0, 411, 411,
2030  412, 412, 412, 412, 412, 412, 0, 412, 412, 412,
2031  412, 412, 412, 412, 413, 413, 413, 413, 413, 413,
2032  413, 413, 413, 413, 413, 413, 413, 413, 414, 414,
2033  414, 414, 0, 0, 0, 414, 0, 414, 0, 0,
2034  414, 414, 415, 415, 415, 415, 415, 415, 415, 415,
2035  415, 415, 415, 415, 415, 415, 415, 416, 416, 416,
2036  416, 416, 416, 416, 416, 416, 416, 416, 416, 416,
2037  416, 416, 418, 0, 418, 0, 418, 418, 419, 419,
2038  419, 419, 419, 419, 0, 419, 419, 419, 419, 419,
2039 
2040  419, 419, 420, 0, 0, 420, 420, 420, 420, 420,
2041  420, 420, 420, 420, 420, 420, 421, 0, 0, 421,
2042  421, 421, 421, 421, 421, 421, 421, 421, 421, 421,
2043  422, 422, 422, 422, 422, 422, 422, 422, 422, 422,
2044  422, 422, 422, 422, 423, 423, 423, 423, 423, 423,
2045  423, 423, 423, 423, 423, 423, 423, 423, 424, 424,
2046  424, 424, 0, 0, 0, 424, 0, 424, 0, 0,
2047  424, 424, 425, 425, 425, 425, 0, 0, 0, 425,
2048  425, 425, 425, 0, 425, 425, 426, 426, 426, 426,
2049  426, 426, 426, 426, 426, 426, 426, 426, 426, 426,
2050 
2051  427, 427, 427, 427, 0, 0, 0, 427, 427, 427,
2052  427, 0, 427, 427, 428, 428, 428, 428, 428, 428,
2053  428, 428, 428, 428, 428, 428, 428, 428, 428, 430,
2054  0, 430, 0, 430, 430, 431, 431, 431, 431, 431,
2055  431, 431, 431, 431, 431, 431, 431, 431, 431, 432,
2056  432, 432, 432, 432, 432, 432, 432, 432, 432, 432,
2057  432, 432, 432, 433, 433, 433, 433, 433, 0, 0,
2058  433, 433, 433, 433, 433, 433, 433, 434, 434, 434,
2059  434, 434, 434, 434, 434, 434, 434, 434, 434, 434,
2060  434, 435, 435, 435, 435, 435, 435, 435, 435, 435,
2061 
2062  435, 435, 435, 435, 435, 436, 436, 436, 436, 0,
2063  0, 0, 436, 0, 436, 0, 0, 436, 436, 437,
2064  437, 437, 437, 0, 0, 0, 437, 437, 437, 437,
2065  0, 437, 437, 438, 438, 438, 438, 438, 438, 438,
2066  438, 438, 438, 438, 438, 438, 438, 439, 439, 439,
2067  439, 0, 0, 0, 439, 439, 439, 439, 0, 439,
2068  439, 441, 0, 441, 0, 441, 441, 442, 442, 442,
2069  442, 442, 442, 442, 442, 442, 442, 442, 442, 442,
2070  442, 443, 443, 0, 443, 443, 443, 443, 443, 443,
2071  443, 443, 443, 443, 443, 444, 444, 444, 444, 444,
2072 
2073  444, 444, 444, 444, 444, 444, 444, 444, 444, 445,
2074  445, 445, 445, 445, 0, 0, 445, 445, 445, 445,
2075  445, 445, 445, 369, 369, 369, 369, 369, 369, 369,
2076  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
2077  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
2078  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
2079  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
2080  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
2081  369, 369, 369, 369, 369, 369, 369, 369, 369, 369,
2082  369, 369, 369, 369, 369, 369, 369, 369, 369, 369
2083 
2084  } ;
2085 
2086 static yy_state_type yy_last_accepting_state;
2087 static char *yy_last_accepting_cpos;
2088 
2089 extern int css_flex_debug;
2090 int css_flex_debug = 0;
2091 
2092 /* The intent behind this definition is that it'll catch
2093  * any uses of REJECT which flex missed.
2094  */
2095 #define REJECT reject_used_but_not_detected
2096 #define yymore() yymore_used_but_not_detected
2097 #define YY_MORE_ADJ 0
2098 #define YY_RESTORE_YY_MORE_OFFSET
2099 char *csstext;
2100 #line 1 "css.grammar"
2101 #line 2083 "lex.css.c"
2102 
2103 #define INITIAL 0
2104 
2105 #ifndef YY_NO_UNISTD_H
2106 /* Special case for "unistd.h", since it is non-ANSI. We include it way
2107  * down here because we want the user's section 1 to have been scanned first.
2108  * The user has a chance to override it with an option.
2109  */
2110 #include <unistd.h>
2111 #endif
2112 
2113 #ifndef YY_EXTRA_TYPE
2114 #define YY_EXTRA_TYPE void *
2115 #endif
2116 
2117 static int yy_init_globals (void );
2118 
2119 /* Accessor methods to globals.
2120  These are made visible to non-reentrant scanners for convenience. */
2121 
2122 int csslex_destroy (void );
2123 
2124 int cssget_debug (void );
2125 
2126 void cssset_debug (int debug_flag );
2127 
2128 YY_EXTRA_TYPE cssget_extra (void );
2129 
2130 void cssset_extra (YY_EXTRA_TYPE user_defined );
2131 
2132 FILE *cssget_in (void );
2133 
2134 void cssset_in (FILE * in_str );
2135 
2136 FILE *cssget_out (void );
2137 
2138 void cssset_out (FILE * out_str );
2139 
2140 yy_size_t cssget_leng (void );
2141 
2142 char *cssget_text (void );
2143 
2144 int cssget_lineno (void );
2145 
2146 void cssset_lineno (int line_number );
2147 
2148 /* Macros after this point can all be overridden by user definitions in
2149  * section 1.
2150  */
2151 
2152 #ifndef YY_SKIP_YYWRAP
2153 #ifdef __cplusplus
2154 extern "C" int csswrap (void );
2155 #else
2156 extern int csswrap (void );
2157 #endif
2158 #endif
2159 
2160 #ifndef yytext_ptr
2161 static void yy_flex_strncpy (char *,yyconst char *,int );
2162 #endif
2163 
2164 #ifdef YY_NEED_STRLEN
2165 static int yy_flex_strlen (yyconst char * );
2166 #endif
2167 
2168 #ifndef YY_NO_INPUT
2169 
2170 #ifdef __cplusplus
2171 static int yyinput (void );
2172 #else
2173 static int input (void );
2174 #endif
2175 
2176 #endif
2177 
2178 /* Amount of stuff to slurp up with each read. */
2179 #ifndef YY_READ_BUF_SIZE
2180 #define YY_READ_BUF_SIZE 8192
2181 #endif
2182 
2183 /* Copy whatever the last rule matched to the standard output. */
2184 #ifndef ECHO
2185 /* This used to be an fputs(), but since the string might contain NUL's,
2186  * we now use fwrite().
2187  */
2188 #define ECHO fwrite( csstext, cssleng, 1, cssout )
2189 #endif
2190 
2191 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
2192  * is returned in "result".
2193  */
2194 #ifndef YY_INPUT
2195 #define YY_INPUT(buf,result,max_size) \
2196  if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
2197  { \
2198  int c = '*'; \
2199  yy_size_t n; \
2200  for ( n = 0; n < max_size && \
2201  (c = getc( cssin )) != EOF && c != '\n'; ++n ) \
2202  buf[n] = (char) c; \
2203  if ( c == '\n' ) \
2204  buf[n++] = (char) c; \
2205  if ( c == EOF && ferror( cssin ) ) \
2206  YY_FATAL_ERROR( "input in flex scanner failed" ); \
2207  result = n; \
2208  } \
2209  else \
2210  { \
2211  errno=0; \
2212  while ( (result = fread(buf, 1, max_size, cssin))==0 && ferror(cssin)) \
2213  { \
2214  if( errno != EINTR) \
2215  { \
2216  YY_FATAL_ERROR( "input in flex scanner failed" ); \
2217  break; \
2218  } \
2219  errno=0; \
2220  clearerr(cssin); \
2221  } \
2222  }\
2223 \
2224 
2225 #endif
2226 
2227 /* No semi-colon after return; correct usage is to write "yyterminate();" -
2228  * we don't want an extra ';' after the "return" because that will cause
2229  * some compilers to complain about unreachable statements.
2230  */
2231 #ifndef yyterminate
2232 #define yyterminate() return YY_NULL
2233 #endif
2234 
2235 /* Number of entries by which start-condition stack grows. */
2236 #ifndef YY_START_STACK_INCR
2237 #define YY_START_STACK_INCR 25
2238 #endif
2239 
2240 /* Report a fatal error. */
2241 #ifndef YY_FATAL_ERROR
2242 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2243 #endif
2244 
2245 /* end tables serialization structures and prototypes */
2246 
2247 /* Default declaration of generated scanner - a define so the user can
2248  * easily add parameters.
2249  */
2250 #ifndef YY_DECL
2251 #define YY_DECL_IS_OURS 1
2252 
2253 extern int csslex (void);
2254 
2255 #define YY_DECL int csslex (void)
2256 #endif /* !YY_DECL */
2257 
2258 /* Code executed at the beginning of each rule, after csstext and cssleng
2259  * have been set up.
2260  */
2261 #ifndef YY_USER_ACTION
2262 #define YY_USER_ACTION
2263 #endif
2264 
2265 /* Code executed at the end of each rule. */
2266 #ifndef YY_BREAK
2267 #define YY_BREAK break;
2268 #endif
2269 
2270 #define YY_RULE_SETUP \
2271  YY_USER_ACTION
2272 
2275 YY_DECL
2276 {
2277  register yy_state_type yy_current_state;
2278  register char *yy_cp, *yy_bp;
2279  register int yy_act;
2280 
2281 #line 21 "css.grammar"
2282 
2283 
2284 #line 2266 "lex.css.c"
2285 
2286  if ( !(yy_init) )
2287  {
2288  (yy_init) = 1;
2289 
2290 #ifdef YY_USER_INIT
2291  YY_USER_INIT;
2292 #endif
2293 
2294  if ( ! (yy_start) )
2295  (yy_start) = 1; /* first start state */
2296 
2297  if ( ! cssin )
2298  cssin = stdin;
2299 
2300  if ( ! cssout )
2301  cssout = stdout;
2302 
2303  if ( ! YY_CURRENT_BUFFER ) {
2304  cssensure_buffer_stack ();
2305  YY_CURRENT_BUFFER_LVALUE =
2306  css_create_buffer(cssin,YY_BUF_SIZE );
2307  }
2308 
2309  css_load_buffer_state( );
2310  }
2311 
2312  while ( 1 ) /* loops until end-of-file is reached */
2313  {
2314  yy_cp = (yy_c_buf_p);
2315 
2316  /* Support of csstext. */
2317  *yy_cp = (yy_hold_char);
2318 
2319  /* yy_bp points to the position in yy_ch_buf of the start of
2320  * the current run.
2321  */
2322  yy_bp = yy_cp;
2323 
2324  yy_current_state = (yy_start);
2325 yy_match:
2326  do
2327  {
2328  register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
2329  if ( yy_accept[yy_current_state] )
2330  {
2331  (yy_last_accepting_state) = yy_current_state;
2332  (yy_last_accepting_cpos) = yy_cp;
2333  }
2334  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2335  {
2336  yy_current_state = (int) yy_def[yy_current_state];
2337  if ( yy_current_state >= 370 )
2338  yy_c = yy_meta[(unsigned int) yy_c];
2339  }
2340  yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2341  ++yy_cp;
2342  }
2343  while ( yy_base[yy_current_state] != 6624 );
2344 
2345 yy_find_action:
2346  yy_act = yy_accept[yy_current_state];
2347  if ( yy_act == 0 )
2348  { /* have to back up */
2349  yy_cp = (yy_last_accepting_cpos);
2350  yy_current_state = (yy_last_accepting_state);
2351  yy_act = yy_accept[yy_current_state];
2352  }
2353 
2354  YY_DO_BEFORE_ACTION;
2355 
2356 do_action: /* This label is used only to access EOF actions. */
2357 
2358  switch ( yy_act )
2359  { /* beginning of action switch */
2360  case 0: /* must back up */
2361  /* undo the effects of YY_DO_BEFORE_ACTION */
2362  *yy_cp = (yy_hold_char);
2363  yy_cp = (yy_last_accepting_cpos);
2364  yy_current_state = (yy_last_accepting_state);
2365  goto yy_find_action;
2366 
2367 case 1:
2368 /* rule 1 can match eol */
2369 YY_RULE_SETUP
2370 #line 23 "css.grammar"
2371 
2372  YY_BREAK
2373 case 2:
2374 /* rule 2 can match eol */
2375 YY_RULE_SETUP
2376 #line 25 "css.grammar"
2377 /* ignore comments */
2378  YY_BREAK
2379 case 3:
2380 YY_RULE_SETUP
2381 #line 27 "css.grammar"
2382 
2383  YY_BREAK
2384 case 4:
2385 YY_RULE_SETUP
2386 #line 28 "css.grammar"
2387 
2388  YY_BREAK
2389 case 5:
2390 YY_RULE_SETUP
2391 #line 29 "css.grammar"
2392 
2393  YY_BREAK
2394 case 6:
2395 YY_RULE_SETUP
2396 #line 30 "css.grammar"
2397 
2398  YY_BREAK
2399 case 7:
2400 /* rule 7 can match eol */
2401 YY_RULE_SETUP
2402 #line 32 "css.grammar"
2403 {cssConsume(csstext, CSSSTRING);}
2404  YY_BREAK
2405 case 8:
2406 /* rule 8 can match eol */
2407 YY_RULE_SETUP
2408 #line 34 "css.grammar"
2409 {cssConsume(csstext, CSSIDENT);}
2410  YY_BREAK
2411 case 9:
2412 /* rule 9 can match eol */
2413 YY_RULE_SETUP
2414 #line 36 "css.grammar"
2415 {cssConsume(csstext, CSSHASH);}
2416  YY_BREAK
2417 case 10:
2418 YY_RULE_SETUP
2419 #line 38 "css.grammar"
2420 {cssConsume(csstext, CSSIMPORT);}
2421  YY_BREAK
2422 case 11:
2423 YY_RULE_SETUP
2424 #line 39 "css.grammar"
2425 
2426  YY_BREAK
2427 case 12:
2428 YY_RULE_SETUP
2429 #line 40 "css.grammar"
2430 {cssConsume(csstext, CSSMEDIA);}
2431  YY_BREAK
2432 case 13:
2433 YY_RULE_SETUP
2434 #line 41 "css.grammar"
2435 
2436  YY_BREAK
2437 case 14:
2438 YY_RULE_SETUP
2439 #line 42 "css.grammar"
2440 
2441  YY_BREAK
2442 case 15:
2443 YY_RULE_SETUP
2444 #line 43 "css.grammar"
2445 
2446  YY_BREAK
2447 case 16:
2448 YY_RULE_SETUP
2449 #line 45 "css.grammar"
2450 
2451  YY_BREAK
2452 case 17:
2453 YY_RULE_SETUP
2454 #line 47 "css.grammar"
2455 {cssConsume(csstext, CSSEMS);}
2456  YY_BREAK
2457 case 18:
2458 YY_RULE_SETUP
2459 #line 48 "css.grammar"
2460 {cssConsume(csstext, CSSEXS);}
2461  YY_BREAK
2462 case 19:
2463 YY_RULE_SETUP
2464 #line 49 "css.grammar"
2465 {cssConsume(csstext, CSSLENGTH);}
2466  YY_BREAK
2467 case 20:
2468 YY_RULE_SETUP
2469 #line 50 "css.grammar"
2470 {cssConsume(csstext, CSSLENGTH);}
2471  YY_BREAK
2472 case 21:
2473 YY_RULE_SETUP
2474 #line 51 "css.grammar"
2475 {cssConsume(csstext, CSSLENGTH);}
2476  YY_BREAK
2477 case 22:
2478 YY_RULE_SETUP
2479 #line 52 "css.grammar"
2480 {cssConsume(csstext, CSSLENGTH);}
2481  YY_BREAK
2482 case 23:
2483 YY_RULE_SETUP
2484 #line 53 "css.grammar"
2485 {cssConsume(csstext, CSSLENGTH);}
2486  YY_BREAK
2487 case 24:
2488 YY_RULE_SETUP
2489 #line 54 "css.grammar"
2490 {cssConsume(csstext, CSSLENGTH);}
2491  YY_BREAK
2492 case 25:
2493 YY_RULE_SETUP
2494 #line 55 "css.grammar"
2495 {cssConsume(csstext, CSSANGLE);}
2496  YY_BREAK
2497 case 26:
2498 YY_RULE_SETUP
2499 #line 56 "css.grammar"
2500 {cssConsume(csstext, CSSANGLE);}
2501  YY_BREAK
2502 case 27:
2503 YY_RULE_SETUP
2504 #line 57 "css.grammar"
2505 {cssConsume(csstext, CSSANGLE);}
2506  YY_BREAK
2507 case 28:
2508 YY_RULE_SETUP
2509 #line 58 "css.grammar"
2510 {cssConsume(csstext, CSSTIME);}
2511  YY_BREAK
2512 case 29:
2513 YY_RULE_SETUP
2514 #line 59 "css.grammar"
2515 {cssConsume(csstext, CSSTIME);}
2516  YY_BREAK
2517 case 30:
2518 YY_RULE_SETUP
2519 #line 60 "css.grammar"
2520 {cssConsume(csstext, CSSFREQ);}
2521  YY_BREAK
2522 case 31:
2523 YY_RULE_SETUP
2524 #line 61 "css.grammar"
2525 {cssConsume(csstext, CSSFREQ);}
2526  YY_BREAK
2527 case 32:
2528 /* rule 32 can match eol */
2529 YY_RULE_SETUP
2530 #line 62 "css.grammar"
2531 {cssConsume(csstext, CSSDIMEN);}
2532  YY_BREAK
2533 case 33:
2534 YY_RULE_SETUP
2535 #line 63 "css.grammar"
2536 {cssConsume(csstext, CSSPERCENTAGE);}
2537  YY_BREAK
2538 case 34:
2539 YY_RULE_SETUP
2540 #line 64 "css.grammar"
2541 {cssConsume(csstext, CSSNUMBER);}
2542  YY_BREAK
2543 case 35:
2544 /* rule 35 can match eol */
2545 YY_RULE_SETUP
2546 #line 66 "css.grammar"
2547 {cssConsume(csstext, CSSURI);}
2548  YY_BREAK
2549 case 36:
2550 /* rule 36 can match eol */
2551 YY_RULE_SETUP
2552 #line 67 "css.grammar"
2553 {cssConsume(csstext, CSSURI);}
2554  YY_BREAK
2555 case 37:
2556 /* rule 37 can match eol */
2557 YY_RULE_SETUP
2558 #line 68 "css.grammar"
2559 {cssConsume(csstext, CSSFUNCTION);}
2560  YY_BREAK
2561 case 38:
2562 YY_RULE_SETUP
2563 #line 70 "css.grammar"
2564 {cssConsume(csstext, CSSUNICODERANGE);}
2565  YY_BREAK
2566 case 39:
2567 YY_RULE_SETUP
2568 #line 71 "css.grammar"
2569 {cssConsume(csstext, CSSUNICODERANGE);}
2570  YY_BREAK
2571 case 40:
2572 YY_RULE_SETUP
2573 #line 73 "css.grammar"
2574 {cssConsume(csstext, CSSUNKNOWN);}
2575  YY_BREAK
2576 case 41:
2577 YY_RULE_SETUP
2578 #line 75 "css.grammar"
2579 ECHO;
2580  YY_BREAK
2581 #line 2563 "lex.css.c"
2582 case YY_STATE_EOF(INITIAL):
2583  yyterminate();
2584 
2585  case YY_END_OF_BUFFER:
2586  {
2587  /* Amount of text matched not including the EOB char. */
2588  int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
2589 
2590  /* Undo the effects of YY_DO_BEFORE_ACTION. */
2591  *yy_cp = (yy_hold_char);
2592  YY_RESTORE_YY_MORE_OFFSET
2593 
2594  if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
2595  {
2596  /* We're scanning a new file or input source. It's
2597  * possible that this happened because the user
2598  * just pointed cssin at a new source and called
2599  * csslex(). If so, then we have to assure
2600  * consistency between YY_CURRENT_BUFFER and our
2601  * globals. Here is the right place to do so, because
2602  * this is the first action (other than possibly a
2603  * back-up) that will match for the new input source.
2604  */
2605  (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2606  YY_CURRENT_BUFFER_LVALUE->yy_input_file = cssin;
2607  YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
2608  }
2609 
2610  /* Note that here we test for yy_c_buf_p "<=" to the position
2611  * of the first EOB in the buffer, since yy_c_buf_p will
2612  * already have been incremented past the NUL character
2613  * (since all states make transitions on EOB to the
2614  * end-of-buffer state). Contrast this with the test
2615  * in input().
2616  */
2617  if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
2618  { /* This was really a NUL. */
2619  yy_state_type yy_next_state;
2620 
2621  (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
2622 
2623  yy_current_state = yy_get_previous_state( );
2624 
2625  /* Okay, we're now positioned to make the NUL
2626  * transition. We couldn't have
2627  * yy_get_previous_state() go ahead and do it
2628  * for us because it doesn't know how to deal
2629  * with the possibility of jamming (and we don't
2630  * want to build jamming into it because then it
2631  * will run more slowly).
2632  */
2633 
2634  yy_next_state = yy_try_NUL_trans( yy_current_state );
2635 
2636  yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2637 
2638  if ( yy_next_state )
2639  {
2640  /* Consume the NUL. */
2641  yy_cp = ++(yy_c_buf_p);
2642  yy_current_state = yy_next_state;
2643  goto yy_match;
2644  }
2645 
2646  else
2647  {
2648  yy_cp = (yy_c_buf_p);
2649  goto yy_find_action;
2650  }
2651  }
2652 
2653  else switch ( yy_get_next_buffer( ) )
2654  {
2655  case EOB_ACT_END_OF_FILE:
2656  {
2657  (yy_did_buffer_switch_on_eof) = 0;
2658 
2659  if ( csswrap( ) )
2660  {
2661  /* Note: because we've taken care in
2662  * yy_get_next_buffer() to have set up
2663  * csstext, we can now set up
2664  * yy_c_buf_p so that if some total
2665  * hoser (like flex itself) wants to
2666  * call the scanner after we return the
2667  * YY_NULL, it'll still work - another
2668  * YY_NULL will get returned.
2669  */
2670  (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
2671 
2672  yy_act = YY_STATE_EOF(YY_START);
2673  goto do_action;
2674  }
2675 
2676  else
2677  {
2678  if ( ! (yy_did_buffer_switch_on_eof) )
2679  YY_NEW_FILE;
2680  }
2681  break;
2682  }
2683 
2684  case EOB_ACT_CONTINUE_SCAN:
2685  (yy_c_buf_p) =
2686  (yytext_ptr) + yy_amount_of_matched_text;
2687 
2688  yy_current_state = yy_get_previous_state( );
2689 
2690  yy_cp = (yy_c_buf_p);
2691  yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2692  goto yy_match;
2693 
2694  case EOB_ACT_LAST_MATCH:
2695  (yy_c_buf_p) =
2696  &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
2697 
2698  yy_current_state = yy_get_previous_state( );
2699 
2700  yy_cp = (yy_c_buf_p);
2701  yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2702  goto yy_find_action;
2703  }
2704  break;
2705  }
2706 
2707  default:
2708  YY_FATAL_ERROR(
2709  "fatal flex scanner internal error--no action found" );
2710  } /* end of action switch */
2711  } /* end of scanning one token */
2712 } /* end of csslex */
2713 
2714 /* yy_get_next_buffer - try to read in a new buffer
2715  *
2716  * Returns a code representing an action:
2717  * EOB_ACT_LAST_MATCH -
2718  * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2719  * EOB_ACT_END_OF_FILE - end of file
2720  */
2721 static int yy_get_next_buffer (void)
2722 {
2723  register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
2724  register char *source = (yytext_ptr);
2725  register int number_to_move, i;
2726  int ret_val;
2727 
2728  if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
2729  YY_FATAL_ERROR(
2730  "fatal flex scanner internal error--end of buffer missed" );
2731 
2732  if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
2733  { /* Don't try to fill the buffer, so this is an EOF. */
2734  if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
2735  {
2736  /* We matched a single character, the EOB, so
2737  * treat this as a final EOF.
2738  */
2739  return EOB_ACT_END_OF_FILE;
2740  }
2741 
2742  else
2743  {
2744  /* We matched some text prior to the EOB, first
2745  * process it.
2746  */
2747  return EOB_ACT_LAST_MATCH;
2748  }
2749  }
2750 
2751  /* Try to read more data. */
2752 
2753  /* First move last chars to start of buffer. */
2754  number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
2755 
2756  for ( i = 0; i < number_to_move; ++i )
2757  *(dest++) = *(source++);
2758 
2759  if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2760  /* don't do the read, it's not guaranteed to return an EOF,
2761  * just force an EOF
2762  */
2763  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
2764 
2765  else
2766  {
2767  yy_size_t num_to_read =
2768  YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
2769 
2770  while ( num_to_read <= 0 )
2771  { /* Not enough room in the buffer - grow it. */
2772 
2773  /* just a shorter name for the current buffer */
2774  YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
2775 
2776  int yy_c_buf_p_offset =
2777  (int) ((yy_c_buf_p) - b->yy_ch_buf);
2778 
2779  if ( b->yy_is_our_buffer )
2780  {
2781  yy_size_t new_size = b->yy_buf_size * 2;
2782 
2783  if ( new_size <= 0 )
2784  b->yy_buf_size += b->yy_buf_size / 8;
2785  else
2786  b->yy_buf_size *= 2;
2787 
2788  b->yy_ch_buf = (char *)
2789  /* Include room in for 2 EOB chars. */
2790  cssrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
2791  }
2792  else
2793  /* Can't grow it, we don't own it. */
2794  b->yy_ch_buf = 0;
2795 
2796  if ( ! b->yy_ch_buf )
2797  YY_FATAL_ERROR(
2798  "fatal error - scanner input buffer overflow" );
2799 
2800  (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
2801 
2802  num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
2803  number_to_move - 1;
2804 
2805  }
2806 
2807  if ( num_to_read > YY_READ_BUF_SIZE )
2808  num_to_read = YY_READ_BUF_SIZE;
2809 
2810  /* Read in more data. */
2811  YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
2812  (yy_n_chars), num_to_read );
2813 
2814  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2815  }
2816 
2817  if ( (yy_n_chars) == 0 )
2818  {
2819  if ( number_to_move == YY_MORE_ADJ )
2820  {
2821  ret_val = EOB_ACT_END_OF_FILE;
2822  cssrestart(cssin );
2823  }
2824 
2825  else
2826  {
2827  ret_val = EOB_ACT_LAST_MATCH;
2828  YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
2829  YY_BUFFER_EOF_PENDING;
2830  }
2831  }
2832 
2833  else
2834  ret_val = EOB_ACT_CONTINUE_SCAN;
2835 
2836  if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
2837  /* Extend the array by 50%, plus the number we really need. */
2838  yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
2839  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) cssrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size );
2840  if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
2841  YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
2842  }
2843 
2844  (yy_n_chars) += number_to_move;
2845  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
2846  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
2847 
2848  (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
2849 
2850  return ret_val;
2851 }
2852 
2853 /* yy_get_previous_state - get the state just before the EOB char was reached */
2854 
2855  static yy_state_type yy_get_previous_state (void)
2856 {
2857  register yy_state_type yy_current_state;
2858  register char *yy_cp;
2859 
2860  yy_current_state = (yy_start);
2861 
2862  for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
2863  {
2864  register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
2865  if ( yy_accept[yy_current_state] )
2866  {
2867  (yy_last_accepting_state) = yy_current_state;
2868  (yy_last_accepting_cpos) = yy_cp;
2869  }
2870  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2871  {
2872  yy_current_state = (int) yy_def[yy_current_state];
2873  if ( yy_current_state >= 370 )
2874  yy_c = yy_meta[(unsigned int) yy_c];
2875  }
2876  yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2877  }
2878 
2879  return yy_current_state;
2880 }
2881 
2882 /* yy_try_NUL_trans - try to make a transition on the NUL character
2883  *
2884  * synopsis
2885  * next_state = yy_try_NUL_trans( current_state );
2886  */
2887  static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
2888 {
2889  register int yy_is_jam;
2890  register char *yy_cp = (yy_c_buf_p);
2891 
2892  register YY_CHAR yy_c = 1;
2893  if ( yy_accept[yy_current_state] )
2894  {
2895  (yy_last_accepting_state) = yy_current_state;
2896  (yy_last_accepting_cpos) = yy_cp;
2897  }
2898  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2899  {
2900  yy_current_state = (int) yy_def[yy_current_state];
2901  if ( yy_current_state >= 370 )
2902  yy_c = yy_meta[(unsigned int) yy_c];
2903  }
2904  yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2905  yy_is_jam = (yy_current_state == 369);
2906 
2907  return yy_is_jam ? 0 : yy_current_state;
2908 }
2909 
2910 #ifndef YY_NO_INPUT
2911 #ifdef __cplusplus
2912  static int yyinput (void)
2913 #else
2914  static int input (void)
2915 #endif
2916 
2917 {
2918  int c;
2919 
2920  *(yy_c_buf_p) = (yy_hold_char);
2921 
2922  if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
2923  {
2924  /* yy_c_buf_p now points to the character we want to return.
2925  * If this occurs *before* the EOB characters, then it's a
2926  * valid NUL; if not, then we've hit the end of the buffer.
2927  */
2928  if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
2929  /* This was really a NUL. */
2930  *(yy_c_buf_p) = '\0';
2931 
2932  else
2933  { /* need more input */
2934  yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
2935  ++(yy_c_buf_p);
2936 
2937  switch ( yy_get_next_buffer( ) )
2938  {
2939  case EOB_ACT_LAST_MATCH:
2940  /* This happens because yy_g_n_b()
2941  * sees that we've accumulated a
2942  * token and flags that we need to
2943  * try matching the token before
2944  * proceeding. But for input(),
2945  * there's no matching to consider.
2946  * So convert the EOB_ACT_LAST_MATCH
2947  * to EOB_ACT_END_OF_FILE.
2948  */
2949 
2950  /* Reset buffer status. */
2951  cssrestart(cssin );
2952 
2953  /*FALLTHROUGH*/
2954 
2955  case EOB_ACT_END_OF_FILE:
2956  {
2957  if ( csswrap( ) )
2958  return 0;
2959 
2960  if ( ! (yy_did_buffer_switch_on_eof) )
2961  YY_NEW_FILE;
2962 #ifdef __cplusplus
2963  return yyinput();
2964 #else
2965  return input();
2966 #endif
2967  }
2968 
2969  case EOB_ACT_CONTINUE_SCAN:
2970  (yy_c_buf_p) = (yytext_ptr) + offset;
2971  break;
2972  }
2973  }
2974  }
2975 
2976  c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
2977  *(yy_c_buf_p) = '\0'; /* preserve csstext */
2978  (yy_hold_char) = *++(yy_c_buf_p);
2979 
2980  return c;
2981 }
2982 #endif /* ifndef YY_NO_INPUT */
2983 
2989  void cssrestart (FILE * input_file )
2990 {
2991 
2992  if ( ! YY_CURRENT_BUFFER ){
2993  cssensure_buffer_stack ();
2994  YY_CURRENT_BUFFER_LVALUE =
2995  css_create_buffer(cssin,YY_BUF_SIZE );
2996  }
2997 
2998  css_init_buffer(YY_CURRENT_BUFFER,input_file );
2999  css_load_buffer_state( );
3000 }
3001 
3006  void css_switch_to_buffer (YY_BUFFER_STATE new_buffer )
3007 {
3008 
3009  /* TODO. We should be able to replace this entire function body
3010  * with
3011  * csspop_buffer_state();
3012  * csspush_buffer_state(new_buffer);
3013  */
3014  cssensure_buffer_stack ();
3015  if ( YY_CURRENT_BUFFER == new_buffer )
3016  return;
3017 
3018  if ( YY_CURRENT_BUFFER )
3019  {
3020  /* Flush out information for old buffer. */
3021  *(yy_c_buf_p) = (yy_hold_char);
3022  YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3023  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3024  }
3025 
3026  // This line looks to be a manual fix from flex output... Restore if you regenerate the file.
3027  if (yy_buffer_stack) {
3028  YY_CURRENT_BUFFER_LVALUE = new_buffer;
3029  }
3030  css_load_buffer_state( );
3031 
3032  /* We don't actually know whether we did this switch during
3033  * EOF (csswrap()) processing, but the only time this flag
3034  * is looked at is after csswrap() is called, so it's safe
3035  * to go ahead and always set it.
3036  */
3037  (yy_did_buffer_switch_on_eof) = 1;
3038 }
3039 
3040 static void css_load_buffer_state (void)
3041 {
3042  (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3043  (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
3044  cssin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
3045  (yy_hold_char) = *(yy_c_buf_p);
3046 }
3047 
3054  YY_BUFFER_STATE css_create_buffer (FILE * file, int size )
3055 {
3056  YY_BUFFER_STATE b;
3057 
3058  b = (YY_BUFFER_STATE) cssalloc(sizeof( struct yy_buffer_state ) );
3059  if ( ! b )
3060  YY_FATAL_ERROR( "out of dynamic memory in css_create_buffer()" );
3061 
3062  b->yy_buf_size = size;
3063 
3064  /* yy_ch_buf has to be 2 characters longer than the size given because
3065  * we need to put in 2 end-of-buffer characters.
3066  */
3067  b->yy_ch_buf = (char *) cssalloc(b->yy_buf_size + 2 );
3068  if ( ! b->yy_ch_buf )
3069  YY_FATAL_ERROR( "out of dynamic memory in css_create_buffer()" );
3070 
3071  b->yy_is_our_buffer = 1;
3072 
3073  css_init_buffer(b,file );
3074 
3075  return b;
3076 }
3077 
3082  void css_delete_buffer (YY_BUFFER_STATE b )
3083 {
3084 
3085  if ( ! b )
3086  return;
3087 
3088  if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
3089  YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
3090 
3091  if ( b->yy_is_our_buffer )
3092  cssfree((void *) b->yy_ch_buf );
3093 
3094  cssfree((void *) b );
3095 }
3096 
3097 #ifndef __cplusplus
3098 extern int isatty (int );
3099 #endif /* __cplusplus */
3100 
3101 /* Initializes or reinitializes a buffer.
3102  * This function is sometimes called more than once on the same buffer,
3103  * such as during a cssrestart() or at EOF.
3104  */
3105  static void css_init_buffer (YY_BUFFER_STATE b, FILE * file )
3106 
3107 {
3108  int oerrno = errno;
3109 
3110  css_flush_buffer(b );
3111 
3112  b->yy_input_file = file;
3113  b->yy_fill_buffer = 1;
3114 
3115  /* If b is the current buffer, then css_init_buffer was _probably_
3116  * called from cssrestart() or through yy_get_next_buffer.
3117  * In that case, we don't want to reset the lineno or column.
3118  */
3119  if (b != YY_CURRENT_BUFFER){
3120  b->yy_bs_lineno = 1;
3121  b->yy_bs_column = 0;
3122  }
3123 
3124  b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
3125 
3126  errno = oerrno;
3127 }
3128 
3133  void css_flush_buffer (YY_BUFFER_STATE b )
3134 {
3135  if ( ! b )
3136  return;
3137 
3138  b->yy_n_chars = 0;
3139 
3140  /* We always need two end-of-buffer characters. The first causes
3141  * a transition to the end-of-buffer state. The second causes
3142  * a jam in that state.
3143  */
3144  b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
3145  b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
3146 
3147  b->yy_buf_pos = &b->yy_ch_buf[0];
3148 
3149  b->yy_at_bol = 1;
3150  b->yy_buffer_status = YY_BUFFER_NEW;
3151 
3152  if ( b == YY_CURRENT_BUFFER )
3153  css_load_buffer_state( );
3154 }
3155 
3162 void csspush_buffer_state (YY_BUFFER_STATE new_buffer )
3163 {
3164  if (new_buffer == NULL)
3165  return;
3166 
3167  cssensure_buffer_stack();
3168 
3169  /* This block is copied from css_switch_to_buffer. */
3170  if ( YY_CURRENT_BUFFER )
3171  {
3172  /* Flush out information for old buffer. */
3173  *(yy_c_buf_p) = (yy_hold_char);
3174  YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3175  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3176  }
3177 
3178  /* Only push if top exists. Otherwise, replace top. */
3179  if (YY_CURRENT_BUFFER)
3180  (yy_buffer_stack_top)++;
3181  // This line looks to be a manual fix from flex output... Restore if you regenerate the file.
3182  if (yy_buffer_stack) {
3183  YY_CURRENT_BUFFER_LVALUE = new_buffer;
3184  }
3185 
3186  /* copied from css_switch_to_buffer. */
3187  css_load_buffer_state( );
3188  (yy_did_buffer_switch_on_eof) = 1;
3189 }
3190 
3195 void csspop_buffer_state (void)
3196 {
3197  if (!YY_CURRENT_BUFFER)
3198  return;
3199 
3200  css_delete_buffer(YY_CURRENT_BUFFER );
3201  YY_CURRENT_BUFFER_LVALUE = NULL;
3202  if ((yy_buffer_stack_top) > 0)
3203  --(yy_buffer_stack_top);
3204 
3205  if (YY_CURRENT_BUFFER) {
3206  css_load_buffer_state( );
3207  (yy_did_buffer_switch_on_eof) = 1;
3208  }
3209 }
3210 
3211 /* Allocates the stack if it does not exist.
3212  * Guarantees space for at least one push.
3213  */
3214 static void cssensure_buffer_stack (void)
3215 {
3216  yy_size_t num_to_alloc;
3217 
3218  if (!(yy_buffer_stack)) {
3219 
3220  /* First allocation is just for 2 elements, since we don't know if this
3221  * scanner will even need a stack. We use 2 instead of 1 to avoid an
3222  * immediate realloc on the next call.
3223  */
3224  num_to_alloc = 1;
3225  const yy_size_t ptr_size = sizeof(struct yy_buffer_state*);
3226  const yy_size_t size_to_alloc = ptr_size /* * num_to_alloc */;
3227  (yy_buffer_stack) = (struct yy_buffer_state**)cssalloc(size_to_alloc);
3228 
3229  /* flex generates this, but the above 4 lines were here before, so I'm keeping them as is.
3230  * it would sure seem like num_to_alloc isn't getting set as it should in the above
3231  (yy_buffer_stack) = (struct yy_buffer_state**)cssalloc
3232  (num_to_alloc * sizeof(struct yy_buffer_state*)
3233  );
3234  */
3235 
3236  if ( ! (yy_buffer_stack) )
3237  YY_FATAL_ERROR( "out of dynamic memory in cssensure_buffer_stack()" );
3238 
3239  memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
3240 
3241  (yy_buffer_stack_max) = num_to_alloc;
3242  (yy_buffer_stack_top) = 0;
3243  return;
3244  }
3245 
3246  if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
3247 
3248  /* Increase the buffer to prepare for a possible push. */
3249  int grow_size = 8 /* arbitrary grow size */;
3250 
3251  num_to_alloc = (yy_buffer_stack_max) + grow_size;
3252  (yy_buffer_stack) = (struct yy_buffer_state**)cssrealloc
3253  ((yy_buffer_stack),
3254  num_to_alloc * sizeof(struct yy_buffer_state*)
3255  );
3256  if ( ! (yy_buffer_stack) )
3257  YY_FATAL_ERROR( "out of dynamic memory in cssensure_buffer_stack()" );
3258 
3259  /* zero only the new slots.*/
3260  memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
3261  (yy_buffer_stack_max) = num_to_alloc;
3262  }
3263 }
3264 
3271 YY_BUFFER_STATE css_scan_buffer (char * base, yy_size_t size )
3272 {
3273  YY_BUFFER_STATE b;
3274 
3275  if ( size < 2 ||
3276  base[size-2] != YY_END_OF_BUFFER_CHAR ||
3277  base[size-1] != YY_END_OF_BUFFER_CHAR )
3278  /* They forgot to leave room for the EOB's. */
3279  return 0;
3280 
3281  b = (YY_BUFFER_STATE) cssalloc(sizeof( struct yy_buffer_state ) );
3282  if ( ! b )
3283  YY_FATAL_ERROR( "out of dynamic memory in css_scan_buffer()" );
3284 
3285  b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
3286  b->yy_buf_pos = b->yy_ch_buf = base;
3287  b->yy_is_our_buffer = 0;
3288  b->yy_input_file = 0;
3289  b->yy_n_chars = b->yy_buf_size;
3290  b->yy_is_interactive = 0;
3291  b->yy_at_bol = 1;
3292  b->yy_fill_buffer = 0;
3293  b->yy_buffer_status = YY_BUFFER_NEW;
3294 
3295  css_switch_to_buffer(b );
3296 
3297  return b;
3298 }
3299 
3308 YY_BUFFER_STATE css_scan_string (yyconst char * yystr )
3309 {
3310 
3311  return css_scan_bytes(yystr,strlen(yystr) );
3312 }
3313 
3321 YY_BUFFER_STATE css_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len )
3322 {
3323  YY_BUFFER_STATE b;
3324  char *buf;
3325  yy_size_t n, i;
3326 
3327  /* Get memory for full buffer, including space for trailing EOB's. */
3328  n = _yybytes_len + 2;
3329  buf = (char *) cssalloc(n );
3330  if ( ! buf )
3331  YY_FATAL_ERROR( "out of dynamic memory in css_scan_bytes()" );
3332 
3333  for ( i = 0; i < _yybytes_len; ++i )
3334  buf[i] = yybytes[i];
3335 
3336  buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
3337 
3338  b = css_scan_buffer(buf,n );
3339  if ( ! b )
3340  YY_FATAL_ERROR( "bad buffer in css_scan_bytes()" );
3341 
3342  /* It's okay to grow etc. this buffer, and we should throw it
3343  * away when we're done.
3344  */
3345  b->yy_is_our_buffer = 1;
3346 
3347  return b;
3348 }
3349 
3350 #ifndef YY_EXIT_FAILURE
3351 #define YY_EXIT_FAILURE 2
3352 #endif
3353 
3354 static void yy_fatal_error (yyconst char* msg )
3355 {
3356  (void) fprintf( stderr, "%s\n", msg );
3357  exit( YY_EXIT_FAILURE );
3358 }
3359 
3360 /* Redefine yyless() so it works in section 3 code. */
3361 
3362 #undef yyless
3363 #define yyless(n) \
3364  do \
3365  { \
3366  /* Undo effects of setting up csstext. */ \
3367  int yyless_macro_arg = (n); \
3368  YY_LESS_LINENO(yyless_macro_arg);\
3369  csstext[cssleng] = (yy_hold_char); \
3370  (yy_c_buf_p) = csstext + yyless_macro_arg; \
3371  (yy_hold_char) = *(yy_c_buf_p); \
3372  *(yy_c_buf_p) = '\0'; \
3373  cssleng = yyless_macro_arg; \
3374  } \
3375  while ( 0 )
3376 
3377 /* Accessor methods (get/set functions) to struct members. */
3378 
3382 int cssget_lineno (void)
3383 {
3384 
3385  return csslineno;
3386 }
3387 
3391 FILE *cssget_in (void)
3392 {
3393  return cssin;
3394 }
3395 
3399 FILE *cssget_out (void)
3400 {
3401  return cssout;
3402 }
3403 
3407 yy_size_t cssget_leng (void)
3408 {
3409  return cssleng;
3410 }
3411 
3416 char *cssget_text (void)
3417 {
3418  return csstext;
3419 }
3420 
3425 void cssset_lineno (int line_number )
3426 {
3427 
3428  csslineno = line_number;
3429 }
3430 
3437 void cssset_in (FILE * in_str )
3438 {
3439  cssin = in_str ;
3440 }
3441 
3442 void cssset_out (FILE * out_str )
3443 {
3444  cssout = out_str ;
3445 }
3446 
3447 int cssget_debug (void)
3448 {
3449  return css_flex_debug;
3450 }
3451 
3452 void cssset_debug (int bdebug )
3453 {
3454  css_flex_debug = bdebug ;
3455 }
3456 
3457 static int yy_init_globals (void)
3458 {
3459  /* Initialization is the same as for the non-reentrant scanner.
3460  * This function is called from csslex_destroy(), so don't allocate here.
3461  */
3462 
3463  (yy_buffer_stack) = 0;
3464  (yy_buffer_stack_top) = 0;
3465  (yy_buffer_stack_max) = 0;
3466  (yy_c_buf_p) = (char *) 0;
3467  (yy_init) = 0;
3468  (yy_start) = 0;
3469 
3470 /* Defined in main.c */
3471 #ifdef YY_STDINIT
3472  cssin = stdin;
3473  cssout = stdout;
3474 #else
3475  cssin = (FILE *) 0;
3476  cssout = (FILE *) 0;
3477 #endif
3478 
3479  /* For future reference: Set errno on error, since we are called by
3480  * csslex_init()
3481  */
3482  return 0;
3483 }
3484 
3485 /* csslex_destroy is for both reentrant and non-reentrant scanners. */
3486 int csslex_destroy (void)
3487 {
3488 
3489  /* Pop the buffer stack, destroying each element. */
3490  while(YY_CURRENT_BUFFER){
3491  css_delete_buffer(YY_CURRENT_BUFFER );
3492  YY_CURRENT_BUFFER_LVALUE = NULL;
3493  csspop_buffer_state();
3494  }
3495 
3496  /* Destroy the stack itself. */
3497  cssfree((yy_buffer_stack) );
3498  (yy_buffer_stack) = NULL;
3499 
3500  /* Reset the globals. This is important in a non-reentrant scanner so the next time
3501  * csslex() is called, initialization will occur. */
3502  yy_init_globals( );
3503 
3504  return 0;
3505 }
3506 
3507 /*
3508  * Internal utility routines.
3509  */
3510 
3511 #ifndef yytext_ptr
3512 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
3513 {
3514  register int i;
3515  for ( i = 0; i < n; ++i )
3516  s1[i] = s2[i];
3517 }
3518 #endif
3519 
3520 #ifdef YY_NEED_STRLEN
3521 static int yy_flex_strlen (yyconst char * s )
3522 {
3523  register int n;
3524  for ( n = 0; s[n]; ++n )
3525  ;
3526 
3527  return n;
3528 }
3529 #endif
3530 
3531 void *cssalloc (yy_size_t size )
3532 {
3533  return (void *) malloc( size );
3534 }
3535 
3536 void *cssrealloc (void * ptr, yy_size_t size )
3537 {
3538  /* The cast to (char *) in the following accommodates both
3539  * implementations that use char* generic pointers, and those
3540  * that use void* generic pointers. It works with the latter
3541  * because both ANSI C and C++ allow castless assignment from
3542  * any pointer type to void*, and deal with argument conversions
3543  * as though doing an assignment.
3544  */
3545  return (void *) realloc( (char *) ptr, size );
3546 }
3547 
3548 void cssfree (void * ptr )
3549 {
3550  free( (char *) ptr ); /* see cssrealloc() for (char *) cast */
3551 }
3552 
3553 #define YYTABLES_NAME "yytables"
3554 
3555 #line 75 "css.grammar"
3556 
3557 
3558 
3559 int csswrap(void){return 1;}
3560