modules/up/src/rpsl/rpsl/rpsl.l.cc

/* [<][>]
[^][v][top][bottom][index][help] */

FUNCTIONS

This source file includes following functions.
  1. YY_PROTO
  2. YY_PROTO
  3. YY_SC_TO_UI
  4. YY_STATE_EOF
  5. yyless
  6. unput
  7. yy_set_interactive
  8. yy_set_bol
  9. YY_AT_BOL
  10. yymore
  11. YYLESS
  12. YY_INPUT
  13. yyterminate
  14. YY_FATAL_ERROR
  15. yy_get_next_buffer
  16. yy_get_previous_state
  17. yy_try_NUL_trans
  18. yyunput
  19. yyinput
  20. yyrestart
  21. yy_switch_to_buffer
  22. yy_load_buffer_state
  23. yy_create_buffer
  24. yy_delete_buffer
  25. yy_init_buffer
  26. yy_flush_buffer
  27. yy_scan_buffer
  28. yy_scan_string
  29. yy_scan_bytes
  30. yy_push_state
  31. yy_pop_state
  32. yy_top_state
  33. yy_fatal_error
  34. yyless
  35. yy_flex_strncpy
  36. yy_flex_strlen
  37. yy_flex_alloc
  38. yy_flex_realloc
  39. yy_flex_free
  40. main
  41. handle_error
  42. handle_object_error
  43. rpslerror
  44. handle_warning
  45. yy_scan_object
  46. changeCurrentAttr
  47. validIPv6
  48. validIntForPhone

   1 #define yy_create_buffer rpsl_create_buffer
   2 #define yy_delete_buffer rpsl_delete_buffer
   3 #define yy_scan_buffer rpsl_scan_buffer
   4 #define yy_scan_string rpsl_scan_string
   5 #define yy_scan_bytes rpsl_scan_bytes
   6 #define yy_flex_debug rpsl_flex_debug
   7 #define yy_init_buffer rpsl_init_buffer
   8 #define yy_flush_buffer rpsl_flush_buffer
   9 #define yy_load_buffer_state rpsl_load_buffer_state
  10 #define yy_switch_to_buffer rpsl_switch_to_buffer
  11 #define yyin rpslin
  12 #define yyleng rpslleng
  13 #define yylex rpsllex
  14 #define yyout rpslout
  15 #define yyrestart rpslrestart
  16 #define yytext rpsltext
  17 #define yywrap rpslwrap
  18 
  19 /* A lexical scanner generated by flex */
  20 
  21 /* Scanner skeleton version:
  22  * $Header: /ncc/cvsroot/ncc/RIP/modules/up/src/rpsl/rpsl/rpsl.l.cc,v 1.4 2001/04/20 13:57:28 engin Exp $
  23  */
  24 
  25 #define FLEX_SCANNER
  26 #define YY_FLEX_MAJOR_VERSION 2
  27 #define YY_FLEX_MINOR_VERSION 5
  28 
  29 #include <stdio.h>
  30 
  31 
  32 /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
  33 #ifdef c_plusplus
  34 #ifndef __cplusplus
  35 #define __cplusplus
  36 #endif
  37 #endif
  38 
  39 
  40 #ifdef __cplusplus
  41 
  42 #include <stdlib.h>
  43 #include <unistd.h>
  44 
  45 /* Use prototypes in function declarations. */
  46 #define YY_USE_PROTOS
  47 
  48 /* The "const" storage-class-modifier is valid. */
  49 #define YY_USE_CONST
  50 
  51 #else   /* ! __cplusplus */
  52 
  53 #if __STDC__
  54 
  55 #define YY_USE_PROTOS
  56 #define YY_USE_CONST
  57 
  58 #endif  /* __STDC__ */
  59 #endif  /* ! __cplusplus */
  60 
  61 #ifdef __TURBOC__
  62  #pragma warn -rch
  63  #pragma warn -use
  64 #include <io.h>
  65 #include <stdlib.h>
  66 #define YY_USE_CONST
  67 #define YY_USE_PROTOS
  68 #endif
  69 
  70 #ifdef YY_USE_CONST
  71 #define yyconst const
  72 #else
  73 #define yyconst
  74 #endif
  75 
  76 
  77 #ifdef YY_USE_PROTOS
  78 #define YY_PROTO(proto) proto
     /* [<][>][^][v][top][bottom][index][help] */
  79 #else
  80 #define YY_PROTO(proto) ()
     /* [<][>][^][v][top][bottom][index][help] */
  81 #endif
  82 
  83 /* Returned upon end-of-file. */
  84 #define YY_NULL 0
  85 
  86 /* Promotes a possibly negative, possibly signed char to an unsigned
  87  * integer for use as an array index.  If the signed char is negative,
  88  * we want to instead treat it as an 8-bit unsigned char, hence the
  89  * double cast.
  90  */
  91 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
     /* [<][>][^][v][top][bottom][index][help] */
  92 
  93 /* Enter a start condition.  This macro really ought to take a parameter,
  94  * but we do it the disgusting crufty way forced on us by the ()-less
  95  * definition of BEGIN.
  96  */
  97 #define BEGIN yy_start = 1 + 2 *
  98 
  99 /* Translate the current start state into a value that can be later handed
 100  * to BEGIN to return to the state.  The YYSTATE alias is for lex
 101  * compatibility.
 102  */
 103 #define YY_START ((yy_start - 1) / 2)
 104 #define YYSTATE YY_START
 105 
 106 /* Action number for EOF rule of a given start state. */
 107 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
     /* [<][>][^][v][top][bottom][index][help] */
 108 
 109 /* Special action meaning "start processing a new file". */
 110 #define YY_NEW_FILE yyrestart( yyin )
 111 
 112 #define YY_END_OF_BUFFER_CHAR 0
 113 
 114 /* Size of default input buffer. */
 115 #define YY_BUF_SIZE 16384
 116 
 117 typedef struct yy_buffer_state *YY_BUFFER_STATE;
 118 
 119 extern int yyleng;
 120 extern FILE *yyin, *yyout;
 121 
 122 #define EOB_ACT_CONTINUE_SCAN 0
 123 #define EOB_ACT_END_OF_FILE 1
 124 #define EOB_ACT_LAST_MATCH 2
 125 
 126 /* The funky do-while in the following #define is used to turn the definition
 127  * int a single C statement (which needs a semi-colon terminator).  This
 128  * avoids problems with code like:
 129  *
 130  *      if ( condition_holds )
 131  *              yyless( 5 );
 132  *      else
 133  *              do_something_else();
 134  *
 135  * Prior to using the do-while the compiler would get upset at the
 136  * "else" because it interpreted the "if" statement as being all
 137  * done when it reached the ';' after the yyless() call.
 138  */
 139 
 140 /* Return all but the first 'n' matched characters back to the input stream. */
 141 
 142 #define yyless(n) \
     /* [<][>][^][v][top][bottom][index][help] */
 143         do \
 144                 { \
 145                 /* Undo effects of setting up yytext. */ \
 146                 *yy_cp = yy_hold_char; \
 147                 YY_RESTORE_YY_MORE_OFFSET \
 148                 yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
 149                 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
 150                 } \
 151         while ( 0 )
 152 
 153 #define unput(c) yyunput( c, yytext_ptr )
     /* [<][>][^][v][top][bottom][index][help] */
 154 
 155 /* The following is because we cannot portably get our hands on size_t
 156  * (without autoconf's help, which isn't available because we want
 157  * flex-generated scanners to compile on their own).
 158  */
 159 typedef unsigned int yy_size_t;
 160 
 161 
 162 struct yy_buffer_state
 163         {
 164         FILE *yy_input_file;
 165 
 166         char *yy_ch_buf;                /* input buffer */
 167         char *yy_buf_pos;               /* current position in input buffer */
 168 
 169         /* Size of input buffer in bytes, not including room for EOB
 170          * characters.
 171          */
 172         yy_size_t yy_buf_size;
 173 
 174         /* Number of characters read into yy_ch_buf, not including EOB
 175          * characters.
 176          */
 177         int yy_n_chars;
 178 
 179         /* Whether we "own" the buffer - i.e., we know we created it,
 180          * and can realloc() it to grow it, and should free() it to
 181          * delete it.
 182          */
 183         int yy_is_our_buffer;
 184 
 185         /* Whether this is an "interactive" input source; if so, and
 186          * if we're using stdio for input, then we want to use getc()
 187          * instead of fread(), to make sure we stop fetching input after
 188          * each newline.
 189          */
 190         int yy_is_interactive;
 191 
 192         /* Whether we're considered to be at the beginning of a line.
 193          * If so, '^' rules will be active on the next match, otherwise
 194          * not.
 195          */
 196         int yy_at_bol;
 197 
 198         /* Whether to try to fill the input buffer when we reach the
 199          * end of it.
 200          */
 201         int yy_fill_buffer;
 202 
 203         int yy_buffer_status;
 204 #define YY_BUFFER_NEW 0
 205 #define YY_BUFFER_NORMAL 1
 206         /* When an EOF's been seen but there's still some text to process
 207          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
 208          * shouldn't try reading from the input source any more.  We might
 209          * still have a bunch of tokens to match, though, because of
 210          * possible backing-up.
 211          *
 212          * When we actually see the EOF, we change the status to "new"
 213          * (via yyrestart()), so that the user can continue scanning by
 214          * just pointing yyin at a new input file.
 215          */
 216 #define YY_BUFFER_EOF_PENDING 2
 217         };
 218 
 219 static YY_BUFFER_STATE yy_current_buffer = 0;
 220 
 221 /* We provide macros for accessing buffer states in case in the
 222  * future we want to put the buffer states in a more general
 223  * "scanner state".
 224  */
 225 #define YY_CURRENT_BUFFER yy_current_buffer
 226 
 227 
 228 /* yy_hold_char holds the character lost when yytext is formed. */
 229 static char yy_hold_char;
 230 
 231 static int yy_n_chars;          /* number of characters read into yy_ch_buf */
 232 
 233 
 234 int yyleng;
 235 
 236 /* Points to current character in buffer. */
 237 static char *yy_c_buf_p = (char *) 0;
 238 static int yy_init = 1;         /* whether we need to initialize */
 239 static int yy_start = 0;        /* start state number */
 240 
 241 /* Flag which is used to allow yywrap()'s to do buffer switches
 242  * instead of setting up a fresh yyin.  A bit of a hack ...
 243  */
 244 static int yy_did_buffer_switch_on_eof;
 245 
 246 void yyrestart YY_PROTO(( FILE *input_file ));
 247 
 248 void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
 249 void yy_load_buffer_state YY_PROTO(( void ));
 250 YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
 251 void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
 252 void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
 253 void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
 254 #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
 255 
 256 YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
 257 YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
 258 YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
 259 
 260 static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
 261 static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
 262 static void yy_flex_free YY_PROTO(( void * ));
 263 
 264 #define yy_new_buffer yy_create_buffer
 265 
 266 #define yy_set_interactive(is_interactive) \
     /* [<][>][^][v][top][bottom][index][help] */
 267         { \
 268         if ( ! yy_current_buffer ) \
 269                 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
 270         yy_current_buffer->yy_is_interactive = is_interactive; \
 271         }
 272 
 273 #define yy_set_bol(at_bol) \
     /* [<][>][^][v][top][bottom][index][help] */
 274         { \
 275         if ( ! yy_current_buffer ) \
 276                 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
 277         yy_current_buffer->yy_at_bol = at_bol; \
 278         }
 279 
 280 #define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
     /* [<][>][^][v][top][bottom][index][help] */
 281 
 282 
 283 #define YY_USES_REJECT
 284 typedef unsigned char YY_CHAR;
 285 FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
 286 typedef int yy_state_type;
 287 extern char *yytext;
 288 #define yytext_ptr yytext
 289 
 290 static yy_state_type yy_get_previous_state YY_PROTO(( void ));
 291 static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
 292 static int yy_get_next_buffer YY_PROTO(( void ));
 293 static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
 294 
 295 /* Done after the current pattern has been matched and before the
 296  * corresponding action - sets up yytext.
 297  */
 298 #define YY_DO_BEFORE_ACTION \
 299         yytext_ptr = yy_bp; \
 300         yyleng = (int) (yy_cp - yy_bp); \
 301         yy_hold_char = *yy_cp; \
 302         *yy_cp = '\0'; \
 303         yy_c_buf_p = yy_cp;
 304 
 305 #define YY_NUM_RULES 60
 306 #define YY_END_OF_BUFFER 61
 307 static yyconst short int yy_acclist[812] =
 308     {   0,
 309        61,    4,   60,   60,    3,    4,   60,    4,   60,    2,
 310        60,    4,   60,   58,   59,   60,   49,   60,   48,   59,
 311        60,   59,   60,   47,   60,   11,   47,   60,   10,   60,
 312        47,   60,   12,   47,   60,   47,   60,   46,   47,   60,
 313        46,   47,   60,   46,   47,   60,   47,   60,   13,   60,
 314        11,   13,   60,   12,   13,   60,   14,   60,   11,   60,
 315        12,   14,   60,   40,   60,   11,   40,   60,   10,   60,
 316        20,   40,   60,   12,   40,   60,   40,   60,   40,   60,
 317        40,   60,   40,   60,   40,   60,   17,   40,   60,   40,
 318        60,   36,   40,   60,   36,   40,   60,   40,   60,   36,
 319 
 320        40,   60,   36,   40,   60,   36,   40,   60,   36,   40,
 321        60,   36,   40,   60,    7,   60,    6,   60,    7,   60,
 322         5,    6,   60,   40,   60,   17,   40,   60,   40,   60,
 323         3,    2,    1,   58,   57,   50,   51,   57,   51,   57,
 324        55,   57,   56,   57,   52,   57,   54,   57,   53,   57,
 325        11,    9,    9,    8,   46,   12,   13,   11,   13,   12,
 326        13,   14,   12,   14,    9,    8,   12,   12,   12,   17,
 327        17,   19,   17,   36,   26,   36,   26,   36,   36,   26,
 328        36,   26,   36,   26,   36,   26,   36,   26,   36,   26,
 329        36,   26,   36,   26,   36,   26,   36,   26,   36,    7,
 330 
 331         7,    5,   17,   42,   41,   43,   50,   51,   51,   10,
 332        12,   12,   12,   12,   19,   38,   19,   38,   19,   19,
 333        38,   38,   17,   18,   36,   37,   38,   36,   36,   26,
 334        36,   26,   36,   26,   36,   26,   36,   26,   27,   36,
 335        26,   36,   26,   36,   26,   36,   26,   36,   26,   36,
 336        26,   36,   26,   36,   26,   36,   45,   17,   50,   51,
 337        12,   12,   12,   12,   38,   19,   19,   19,   38,   38,
 338        38,   17,   18,   23,   23,   38,   37,   38,   37,   38,
 339        36,   36,   26,   36,   26,   36,   26,   36,   26,   36,
 340        26,   36,   26,   36,   26,   36,   28,   36,   26,   28,
 341 
 342        36,   26,   27,   36,   26,   36,   26,   36,   26,   36,
 343        26,   36,   26,   36,   26,   36,   29,   36,   26,   29,
 344        36,   26,   36,   26,   33,   36,   17,   44,   39,   39,
 345        12,   39,   12,   39,   19,   38,   19,   38,   19,   19,
 346        19,   38,   38,   19,   38,   38,   19,   38,   17,   18,
 347        23,   23,   23,   37,   38,   37,   38,   37,   38,   37,
 348        38,   36,   26,   36,   26,   36,   26,   36,   26,   36,
 349        26,   28,   36,   26,   27,   36,   34,   36,   36,   36,
 350        26,   29,   36,   17,   12,   19,   19,   38,   38,   19,
 351        38,   38,   19,   38,   17,   18,   37,   38,   37,   38,
 352 
 353        36,   26,   36,   26,   36,   26,   36,   26,   36,   26,
 354        28,   36,   26,   27,   36,   26,   36,   32,   36,   26,
 355        32,   36,   36,   36,   31,   36,   26,   31,   36,   26,
 356        29,   36,   30,   36,   26,   30,   36,   17,   39,   39,
 357        39,   12,   39,   19,   19,   21,   38,   38,   38,   19,
 358        38,   38,   19,   38,   17,   18,   37,   38,   37,   38,
 359        36,   26,   36,   26,   36,   26,   36,   26,   36,   26,
 360        28,   36,   26,   27,   36,   36,   26,   32,   36,   26,
 361        31,   36,   26,   29,   36,   26,   30,   36,   17,   12,
 362        19,   19,   21,   38,   38,   38,   19,   38,   38,   19,
 363 
 364        38,   17,   37,   38,   37,   38,   36,   26,   36,   26,
 365        36,   26,   36,   26,   36,   28,   26,   28,   36,   26,
 366        27,   36,   28,   29,   26,   36,   26,   32,   36,   36,
 367        26,   31,   36,   29,   26,   29,   36,   26,   30,   36,
 368        17,   39,   39,   12,   39,   19,   19,   38,   24,   21,
 369        38,   38,   19,   38,   38,   19,   38,   17,   37,   38,
 370        37,   38,   36,   26,   36,   26,   36,   26,   36,   28,
 371        26,   28,   36,   27,   36,   26,   36,   26,   32,   36,
 372        36,   26,   31,   36,   29,   26,   29,   36,   26,   30,
 373        36,   19,   19,   38,   24,   21,   38,   38,   19,   38,
 374 
 375        38,   19,   38,   17,   37,   38,   37,   38,   36,   26,
 376        36,   26,   36,   26,   28,   36,   27,   36,   32,   31,
 377        30,   26,   36,   32,   26,   32,   36,   36,   31,   26,
 378        31,   36,   26,   29,   36,   30,   26,   30,   36,   39,
 379        19,   19,   38,   24,   25,   25,   21,   38,   38,   19,
 380        38,   38,   19,   38,   17,   37,   38,   37,   38,   36,
 381        26,   36,   28,   26,   28,   36,   27,   36,   26,   32,
 382        36,   36,   26,   31,   36,   29,   26,   29,   36,   26,
 383        30,   36,   19,   19,   38,   24,   21,   38,   38,   19,
 384        38,   38,   19,   38,   17,   37,   38,   37,   38,   36,
 385 
 386        26,   36,   26,   28,   36,   27,   36,   26,   32,   36,
 387        36,   26,   31,   36,   26,   29,   36,   26,   30,   36,
 388        16,   16,   19,   16,   16,   19,   16,   16,   16,   16,
 389        38,   16,   16,   24,   25,   16,   16,   21,   38,   16,
 390        16,   38,   16,   16,   19,   38,   16,   38,   16,   19,
 391        38,   16,   16,   17,   16,   16,   37,   38,   16,   37,
 392        38,   16,   16,   36,   16,   27,   36,   32,   32,   26,
 393        32,   36,   36,   31,   31,   26,   31,   36,   30,   30,
 394        26,   30,   36,   19,   24,   21,   38,   38,   19,   38,
 395        17,   27,   36,   26,   32,   36,   36,   26,   31,   36,
 396 
 397        26,   30,   36,   35,   36,   22,   22,   22,   22,   22,
 398        15
 399     } ;
 400 
 401 static yyconst short int yy_accept[852] =
 402     {   0,
 403         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 404         1,    1,    1,    1,    1,    1,    1,    2,    4,    5,
 405         8,   10,   12,   14,   17,   19,   22,   24,   26,   29,
 406        31,   33,   36,   38,   41,   44,   47,   49,   51,   54,
 407        57,   59,   61,   64,   66,   69,   71,   74,   77,   79,
 408        81,   83,   85,   87,   90,   92,   95,   98,  100,  103,
 409       106,  109,  112,  115,  117,  119,  121,  124,  126,  129,
 410       131,  132,  132,  133,  133,  133,  134,  135,  136,  139,
 411       141,  143,  145,  147,  149,  151,  152,  153,  154,  155,
 412       156,  157,  157,  157,  158,  160,  162,  163,  165,  165,
 413 
 414       165,  165,  166,  167,  167,  168,  169,  170,  170,  171,
 415       171,  171,  172,  172,  173,  173,  173,  173,  174,  174,
 416       174,  174,  174,  174,  174,  175,  175,  177,  179,  180,
 417       180,  182,  184,  186,  188,  190,  192,  194,  196,  198,
 418       200,  201,  202,  203,  203,  204,  205,  206,  207,  209,
 419       210,  210,  211,  211,  211,  211,  211,  211,  212,  213,
 420       214,  215,  216,  217,  219,  219,  219,  220,  220,  220,
 421       220,  220,  222,  223,  223,  224,  224,  224,  225,  225,
 422       225,  225,  225,  226,  228,  228,  229,  230,  230,  232,
 423       234,  236,  238,  238,  241,  243,  245,  247,  249,  251,
 424 
 425       253,  253,  255,  257,  258,  259,  259,  261,  261,  261,
 426       261,  261,  261,  262,  263,  264,  265,  265,  266,  266,
 427       266,  267,  267,  267,  267,  268,  268,  268,  268,  268,
 428       270,  271,  272,  272,  272,  273,  273,  273,  274,  274,
 429       274,  275,  276,  276,  276,  276,  277,  279,  281,  281,
 430       282,  283,  285,  287,  289,  291,  293,  295,  297,  297,
 431       299,  302,  305,  305,  307,  309,  311,  313,  315,  317,
 432       317,  319,  322,  324,  327,  328,  329,  330,  331,  331,
 433       331,  333,  335,  335,  336,  337,  339,  339,  340,  341,
 434       341,  342,  342,  342,  342,  343,  344,  344,  346,  347,
 435 
 436       347,  349,  349,  350,  350,  351,  351,  351,  352,  353,
 437       354,  354,  354,  356,  358,  360,  362,  362,  363,  365,
 438       367,  369,  371,  371,  374,  377,  377,  377,  377,  377,
 439       377,  379,  379,  380,  381,  381,  381,  384,  384,  385,
 440       385,  385,  385,  386,  386,  387,  387,  388,  388,  388,
 441       388,  388,  389,  390,  390,  390,  392,  393,  395,  395,
 442       396,  396,  396,  397,  397,  397,  397,  397,  397,  397,
 443       399,  401,  401,  402,  404,  406,  408,  410,  410,  410,
 444       413,  416,  416,  416,  416,  416,  416,  416,  418,  418,
 445       420,  423,  424,  425,  425,  427,  430,  430,  430,  430,
 446 
 447       433,  433,  435,  438,  439,  440,  441,  442,  444,  444,
 448       445,  445,  446,  446,  446,  446,  448,  449,  449,  450,
 449       450,  450,  452,  453,  455,  455,  456,  456,  457,  457,
 450       457,  457,  457,  459,  461,  461,  462,  464,  466,  468,
 451       470,  470,  470,  473,  476,  476,  476,  476,  476,  476,
 452       476,  476,  477,  477,  480,  480,  480,  483,  483,  483,
 453       483,  486,  486,  489,  490,  490,  490,  491,  491,  492,
 454       492,  493,  493,  493,  493,  493,  493,  495,  496,  496,
 455       497,  497,  499,  500,  502,  502,  503,  503,  503,  503,
 456       503,  503,  503,  503,  505,  507,  507,  508,  510,  512,
 457 
 458       514,  516,  516,  517,  517,  520,  523,  523,  524,  524,
 459       524,  524,  524,  525,  525,  527,  527,  527,  527,  530,
 460       531,  531,  531,  534,  535,  535,  535,  538,  538,  538,
 461       538,  541,  542,  543,  544,  546,  546,  547,  547,  548,
 462       548,  548,  548,  549,  550,  550,  550,  552,  552,  553,
 463       553,  555,  556,  558,  558,  558,  559,  559,  559,  559,
 464       559,  559,  561,  563,  563,  564,  566,  568,  570,  570,
 465       571,  571,  574,  576,  576,  576,  576,  576,  578,  578,
 466       578,  578,  581,  582,  582,  582,  582,  585,  585,  585,
 467       586,  589,  589,  589,  589,  592,  592,  592,  593,  593,
 468 
 469       594,  594,  594,  594,  594,  595,  596,  596,  596,  598,
 470       598,  599,  599,  601,  602,  604,  604,  604,  605,  605,
 471       605,  605,  605,  605,  605,  605,  607,  609,  609,  610,
 472       612,  614,  614,  617,  619,  619,  620,  620,  620,  621,
 473       621,  622,  624,  625,  625,  625,  628,  629,  630,  630,
 474       630,  633,  633,  636,  637,  637,  637,  640,  641,  641,
 475       642,  642,  643,  643,  643,  643,  644,  644,  645,  646,
 476       647,  647,  649,  649,  650,  650,  652,  653,  655,  655,
 477       655,  656,  656,  656,  656,  656,  656,  658,  660,  660,
 478       661,  663,  664,  667,  669,  669,  669,  672,  673,  673,
 479 
 480       673,  676,  677,  680,  680,  680,  683,  683,  684,  684,
 481       685,  685,  685,  685,  685,  686,  687,  687,  687,  689,
 482       689,  690,  690,  692,  693,  695,  695,  695,  696,  696,
 483       696,  696,  696,  696,  696,  696,  698,  700,  700,  701,
 484       703,  706,  708,  708,  708,  711,  712,  712,  712,  715,
 485       718,  718,  718,  721,  722,  724,  725,  727,  728,  729,
 486       730,  732,  733,  735,  736,  737,  740,  741,  743,  744,
 487       747,  749,  752,  752,  753,  755,  756,  756,  756,  756,
 488       756,  759,  762,  763,  765,  768,  768,  769,  770,  773,
 489       774,  775,  775,  776,  779,  780,  780,  781,  784,  785,
 490 
 491       786,  786,  788,  788,  789,  789,  791,  791,  791,  792,
 492       792,  792,  792,  792,  792,  792,  794,  797,  798,  801,
 493       804,  804,  804,  804,  804,  804,  806,  806,  806,  806,
 494       806,  806,  806,  806,  807,  808,  808,  808,  808,  809,
 495       810,  811,  811,  811,  811,  811,  811,  811,  811,  812,
 496       812
 497     } ;
 498 
 499 static yyconst int yy_ec[256] =
 500     {   0,
 501         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
 502         1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
 503         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 504         1,    2,    5,    6,    7,    1,    1,    1,    1,    8,
 505         9,   10,   11,   12,   13,   14,   15,   16,   17,   18,
 506        19,   19,   19,   19,   19,   20,   21,   22,   12,   23,
 507        24,   25,    1,   26,   35,   36,   37,   37,   38,   39,
 508        40,   41,   41,   41,   42,   43,   41,   44,   45,   46,
 509        41,   47,   48,   49,   50,   41,   41,   41,   51,   41,
 510        29,   30,   31,   32,   33,   34,   35,   36,   37,   37,
 511 
 512        38,   39,   40,   41,   41,   41,   42,   43,   41,   44,
 513        45,   46,   41,   47,   48,   49,   50,   41,   41,   41,
 514        51,   41,    1,    1,    1,    1,    1,    1,    1,    1,
 515         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 516         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 517         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 518         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 519         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 520         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 521         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 522 
 523         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 524         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 525         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 526         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 527         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 528         1,    1,    1,    1,    1
 529     } ;
 530 
 531 static yyconst int yy_meta[52] =
 532     {   0,
 533         1,    2,    3,    4,    1,    5,    1,    6,    6,    1,
 534         7,    6,    8,    9,   10,   11,   11,   11,   11,   11,
 535        11,   12,    6,    1,    6,   13,   14,   15,    6,    5,
 536         6,    1,   16,    1,   14,   14,   14,   17,   14,   15,
 537        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
 538        15
 539     } ;
 540 
 541 static yyconst short int yy_base[1020] =
 542     {   0,
 543         0,    6,    8,    9,   56,   84,   14,   20,   28,   70,
 544       113,    0, 1884,    2,  151,  170, 1885,12666,12666,    0,
 545        80,12666,    7,    0,12666,12666,  187,12666,   24,   99,
 546      1859,    0, 1872,   13, 1835,   51, 1827,    0,   98,    0,
 547         0,  171,  172,   64,  175,  207,    0,  235,12666,  253,
 548       279,  176,  330,  364, 1831,  415,  451,  234,  130,   61,
 549       172,   63, 1804,    0,12666,  196,12666,  331,  463,  480,
 550         0,  213,12666,  207,  255,12666,    0,12666,  486,  492,
 551     12666,12666,12666,12666,12666,  220,  306,12666,12666,12666,
 552         0, 1816, 1803,    0,  223,    0,    0,  226,   79, 1810,
 553 
 554       513,  187,  249, 1828,  563,  593,  624,  660,    0,  562,
 555       686,    0,    0,  736,  774,  808,  842,  893,  929,  955,
 556       962, 1810, 1001, 1035, 1086,  592, 1137, 1173, 1197,  725,
 557       745, 1773, 1776, 1768, 1768, 1757, 1741, 1770, 1725, 1718,
 558         0,  355,12666, 1733,  751,  320,  346,  265,  773,  807,
 559       391,12666,  347, 1236,  941, 1731, 1705, 1286, 1317,  974,
 560      1709, 1367, 1003,  745,    0,  300, 1404, 1441, 1462, 1496,
 561      1530, 1564, 1614,  800, 1652, 1690, 1697, 1721, 1185, 1708,
 562      1209,  220, 1760, 1794, 1828, 1879, 1915, 1941, 1286, 1992,
 563      2028, 1357, 2067, 2106, 1676, 1672, 1658, 1636, 1635, 1624,
 564 
 565      2128, 1608, 1616,    0, 1378, 2169, 1393, 1412, 1636, 2190,
 566      2224, 1418, 1430, 1634, 2258, 1461, 2308, 2345,    0,  681,
 567      2365, 2402,  799, 1495,  833, 2423, 2457, 2491, 2525, 2575,
 568      1531, 2612, 1603, 1027, 2633, 2671, 1607, 2678, 1605, 1620,
 569      1626, 1709,  317,    0, 2717, 2768, 2802, 2836, 2870, 2921,
 570      2955, 2989, 3028, 1733, 1760, 1794, 1927, 1604, 3050, 3084,
 571      3084, 1940, 1928, 1952, 3123,  243,   27, 1587,  249, 3161,
 572      3195, 3195,  406, 1579, 2040, 3233, 3259, 3293, 1581, 2190,
 573      3327, 2297, 3365, 3378, 3404,    0,    0, 2314, 3454, 3491,
 574      1026, 3512, 3546, 3580, 3614, 2322, 1575, 3664, 3701, 2334,
 575 
 576      1378, 1488, 3722, 3760, 3767, 2354, 1565,12666, 2371, 1384,
 577       402,  423, 3806, 3840, 3874, 3908, 3942, 3993, 4027, 4078,
 578      2377, 2391,  307, 4129, 2422, 1528, 1529,  438,  133, 4180,
 579      4231, 4265, 1513, 1508, 4316,  704, 4367, 4418, 2456, 2492,
 580         0, 2564, 2583,    0, 4468, 4505, 1487, 4526, 4560, 4594,
 581      4628, 2591, 2601, 2690, 2768, 4678, 4715, 1521, 1556, 4736,
 582      2802, 4774, 2836, 1535, 1533, 1524,  500,  520,    0, 4796,
 583      4830, 4864, 4915, 4915, 4966, 2921, 2955, 1494, 1498, 4983,
 584      3050, 3132, 1472, 1470, 1443, 1470, 1427, 5034, 5051,  269,
 585      5089, 5140,  578, 5140,  354, 5178, 1422, 1428, 1407, 5195,
 586 
 587      5212,  503, 5250, 3084, 3163, 1426, 1405, 3261,    0, 5300,
 588      5337, 1647, 5358, 5392, 5426, 5460, 3139,  231, 5498, 3443,
 589      1404, 5518, 5555, 1785, 1786, 5576, 5614, 3195, 1395, 1393,
 590       521,  599, 5636, 5670, 5704, 5755, 5789, 5840, 3460, 3466,
 591      3511, 1352, 5891, 3545,  462, 3579, 1332, 1267, 1270,  557,
 592      1253, 5916,  649, 5967, 6018,  320, 6035, 3480, 1259, 1283,
 593      6052,  770, 6069, 3653, 3672, 3678, 3690,    0, 6119, 6156,
 594      1819, 6177, 6211, 6245, 6279, 3779, 6313, 6364,  559, 3808,
 595      3842, 6397, 6434, 2215, 2216, 6455, 6505, 1269, 1245, 1239,
 596       693,  694,    0, 6527, 6561, 6595, 6646, 6646, 6697, 3874,
 597 
 598      3908,  571, 3993, 1201, 6731, 4231,  747,  817, 1231, 1188,
 599      1208,  763,  974, 1194, 6756, 1151, 1155, 1130, 6807, 6858,
 600      1114,  735, 6909, 4457, 1102,  818, 6960, 1097, 1105, 1092,
 601      7011,  385, 4476, 1125, 4482,    0, 7061, 7098, 2448, 7119,
 602      7153, 7187, 7221, 7242, 7274, 1085, 7295,  850, 4494, 4525,
 603      7315, 7352, 2482,  419, 2219, 7373, 7411, 1089, 1076,  814,
 604       880, 7433, 7467, 7475, 7526, 7526, 7577, 4559,  972, 1209,
 605      1057, 7611, 7650, 1031, 1042, 1082, 1133, 7646, 4593, 1039,
 606      1028, 7697, 7748, 4667, 1019, 1003, 7799, 1008, 1207, 1394,
 607      7850, 4684,  994,  979, 7901, 4690,    0, 7951, 7988, 2516,
 608 
 609      8009, 8043, 8077, 8111, 8145, 5088, 8169, 4704, 4797, 4832,
 610      4917, 5096, 8194, 8231, 2793, 5140, 2449, 8252, 8290,  996,
 611       991,  987,  901,  948,    0, 8312, 8346, 8380, 8431, 8431,
 612      8482,  938, 8482, 8521, 1225, 1471,  932, 1232, 1505, 1280,
 613      1733, 8528, 5177,  877,  875, 8533, 8569, 5185,  871,  865,
 614      8608,  853, 8625, 5249,  852,  849, 8642, 5259,    0, 8692,
 615      8729, 2827, 8750, 8784, 8818, 8852, 8886, 8907, 1427, 8927,
 616       841, 8940,  857, 5289, 5306, 8960, 8997, 2861,  845, 2517,
 617      9018, 9056,  832,  826,  988, 1094, 9078, 9112, 9120, 9171,
 618      9171,  798, 9222, 9273,  782,  751, 9290, 9326,  743,  735,
 619 
 620      9331,  695, 9348,  676,  687, 9365,    0, 9415, 9452, 2946,
 621      9473, 9507, 9541, 9575, 9609, 5312, 5357, 5391, 5426, 5507,
 622      5526, 5534, 9642, 9679, 2980, 5544, 2794, 9700, 9738,  676,
 623       668,  660, 1145, 1244,    0, 9760, 9794, 9828, 9879,    0,
 624      9879, 9930, 1359,  572, 9947, 9983,  569, 1472, 9988,10005,
 625       558, 1506,10022,12666,  795, 3075, 5636, 6109,10061, 1442,
 626     10082,10116,10138, 6128,  571,10157,  938, 5672, 5755,10177,
 627     10214, 3186, 5929, 2862,10235,10273,  576,  565, 1449, 1502,
 628     10295,10329,10337,    0, 6134, 1540, 1769,  546,10354,10390,
 629       522, 1648, 2040,10395,  516, 1731, 2170,10412, 1056,    0,
 630 
 631       460,    0, 1182, 6145, 6176,    0,  455, 6210,    0,  452,
 632       424,  418, 1571, 1660,    0, 6244,10429,10465,10470,10487,
 633      6279,  405,  355, 1747,  321,    0, 6364,  279, 6386,  270,
 634      1835,  244,  517, 6403, 6409,  217,  170, 3254,12666, 6423,
 635      2360,  151,   53, 6494, 6527,    3, 6561, 6646,12666,12666,
 636     10538,10555,10572,10589,10606,10623,10640,10650,10667,10684,
 637     10701,10718,10735,10752,10769,10786,10803,10820,10829,10846,
 638     10863,10880,10897,10906,10923,10940,10948,10965,10982,10991,
 639     11008,11025,11033,11050,11067,11077,11086,11102,11113,11130,
 640     11137,11145,11152,11169,11186,11203,11220,11237,11254,11271,
 641 
 642     11281,11298,11307,11324,11341,11348,11356,11364,11381,11398,
 643     11415,11425,11434,11451,11468,11475,11482,11490,11497,11514,
 644     11531,11540,11557,11574,11581,11588,11596,11604,11621,11638,
 645     11648,11658,11667,11684,11701,11718,11725,11732,11740,11747,
 646     11764,11781,11791,11801,11811,11821,11830,11847,11864,11881,
 647     11897,11898,11905,11913,11921,11938,11955,11965,11975,11985,
 648     11995,12005,12015,12024,12041,12058,12075,12092,12099,12106,
 649     12114,12121,12138,12155,12164,12181,12198,12215,12232,12239,
 650     12246,12254,12262,12279,12296,12305,12322,12339,12356,12363,
 651     12370,12378,12385,12402,12419,12429,12439,12449,12465,12481,
 652 
 653     12492,12509,12516,12523,12531,12539,12556,12563,12570,12578,
 654     12585,12592,12600,12608,12616,12624,12632,12640,12648
 655     } ;
 656 
 657 static yyconst short int yy_def[1020] =
 658     {   0,
 659       851,  851,  852,  852,  853,  853,  854,  854,  855,  855,
 660       850,   11,  856,  856,   11,   11,  850,  850,  850,  857,
 661       850,  850,  858,  859,  850,  850,  860,  850,  850,  850,
 662       850,  861,  850,  850,  850,  850,  850,  862,  862,  863,
 663       864,  850,  865,  866,  850,  866,  867,  868,  850,  866,
 664       850,  869,  870,  850,  850,  850,   56,   51,   56,   56,
 665        57,   57,   57,  871,  850,  871,  850,  869,   54,   50,
 666       857,  850,  850,  858,  858,  850,  859,  850,  850,  850,
 667       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
 668       861,  850,  850,  862,  862,  863,  864,  865,  866,  872,
 669 
 670       850,  866,  866,  867,  868,  873,  850,  872,   50,   51,
 671       850,   51,  874,  874,  875,  876,  850,  850,  850,  118,
 672       120,  877,  878,  850,  850,  119,  850,  127,  125,  111,
 673       128,  128,  127,  128,  128,  128,  128,  128,  128,  128,
 674       879,  879,  850,  874,  118,  866,  866,   70,  850,  850,
 675       850,  850,  872,  850,  101,  101,  850,  873,  850,  107,
 676       107,  872,  111,  111,  880,  850,  880,  880,  881,  881,
 677       882,  850,  172,  172,  850,  175,  176,  850,  178,  173,
 678       850,  883,  878,  884,  850,  850,  186,  183,  186,  850,
 679       190,  187,  850,  187,  191,  191,  191,  191,  191,  191,
 680 
 681       850,  191,  191,  880,  175,   70,  850,  154,  154,  885,
 682       885,  886,  159,  159,  850,  215,  162,  111,  887,  888,
 683       887,  887,  888,  850,  222,  889,  889,  890,  850,  229,
 684       229,  229,  229,  230,  850,  235,  236,  850,  891,  238,
 685       850,  850,  892,  893,  850,  894,  895,  895,  850,  896,
 686       896,  850,  251,  253,  253,  253,  253,  253,  897,  897,
 687       260,  253,  850,  251,  251,  265,  265,  265,  265,  898,
 688       898,  271,  265,  265,  235,  899,  900,  900,  901,  901,
 689       850,  281,  902,  902,  850,  285,  903,  850,  903,  903,
 690       290,  904,  904,  905,  850,  295,  295,  295,  295,  295,
 691 
 692       299,  298,  850,  303,  850,  305,  906,  850,  850,  850,
 693       907,  908,  909,  909,  910,  910,  850,  911,  850,  850,
 694       320,  320,  850,  850,  320,  850,  850,  850,  850,  850,
 695       911,  850,  331,  331,  850,  850,  850,  850,  303,  278,
 696       912,  912,  281,  913,  913,  913,  346,  914,  914,  915,
 697       850,  351,  351,  351,  351,  351,  351,  357,  356,  850,
 698       850,  360,  850,  850,  916,  917,  850,  918,  919,  920,
 699       920,  850,  921,  319,  850,  375,  375,  850,  850,  324,
 700       375,  850,  850,  850,  850,  850,  850,  850,  332,  389,
 701       389,  921,  392,  335,  394,  394,  850,  850,  850,  337,
 702 
 703       338,  401,  401,  360,  278,  912,  342,  281,  922,  922,
 704       922,  411,  923,  923,  924,  850,  416,  416,  416,  419,
 705       419,  419,  419,  423,  422,  850,  426,  850,  925,  926,
 706       927,  928,  929,  929,  850,  930,  850,  850,  438,  438,
 707       850,  850,  850,  438,  931,  850,  850,  850,  850,  932,
 708       850,  437,  850,  850,  850,  850,  396,  850,  850,  850,
 709       400,  850,  403,  426,  278,  342,  281,  933,  933,  933,
 710       470,  934,  934,  935,  936,  473,  850,  936,  477,  478,
 711       478,  478,  478,  483,  482,  850,  486,  850,  937,  938,
 712       850,  939,  940,  941,  941,  850,  942,  437,  942,  499,
 713 
 714       499,  943,  850,  850,  850,  499,  944,  944,  850,  850,
 715       850,  945,  945,  850,  437,  850,  850,  850,  850,  850,
 716       850,  850,  850,  850,  850,  946,  850,  850,  850,  850,
 717       850,  486,  278,  466,  281,  947,  947,  947,  538,  948,
 718       948,  949,  950,  541,  950,  544,  545,  547,  545,  545,
 719       545,  545,  552,  951,  551,  850,  556,  952,  953,  954,
 720       955,  956,  956,  545,  957,  437,  957,  567,  958,  958,
 721       850,  850,  567,  959,  850,  960,  961,  437,  850,  850,
 722       850,  850,  850,  850,  850,  850,  850,  850,  962,  962,
 723       850,  850,  850,  850,  850,  963,  964,  964,  964,  599,
 724 
 725       965,  965,  966,  967,  967,  602,  968,  602,  605,  605,
 726       605,  605,  605,  605,  614,  850,  613,  850,  618,  850,
 727       969,  970,  850,  971,  972,  973,  973,  850,  974,  437,
 728       974,  850,  572,  631,  959,  959,  850,  960,  960,  961,
 729       961,  583,  850,  850,  850,  582,  583,  850,  850,  850,
 730       850,  850,  591,  850,  850,  850,  595,  963,  975,  975,
 731       975,  661,  976,  976,  977,  978,  978,  664,  979,  979,
 732       668,  667,  672,  667,  667,  667,  667,  677,  850,  676,
 733       850,  681,  980,  981,  982,  983,  984,  984,  667,  985,
 734       642,  850,  850,  850,  850,  850,  582,  642,  850,  850,
 735 
 736       651,  850,  653,  850,  850,  657,  986,  986,  986,  709,
 737       987,  987,  988,  989,  989,  712,  670,  712,  715,  715,
 738       715,  715,  715,  715,  724,  850,  723,  850,  728,  850,
 739       990,  991,  850,  992,  993,  994,  994,  850,  995,  642,
 740       693,  850,  996,  850,  582,  642,  850,  997,  651,  653,
 741       850,  998,  657,  850,  999, 1000,  850,  670,  670, 1001,
 742      1002, 1002,  670,  670,  763,  762,  766,  762,  762,  762,
 743       762,  771,  850,  770,  850,  775, 1003, 1004, 1005, 1006,
 744      1007, 1007,  762,  642,  642,  996,  996,  850,  582,  642,
 745       850,  997,  997,  651,  850,  998,  998,  657,  999,  763,
 746 
 747       763,  766,  766,  762,  762,  770,  850,  762,  775,  850,
 748      1008, 1009,  850, 1010, 1011,  642,  582,  642,  651,  657,
 749       850, 1012, 1013, 1014, 1015,  642,  850,  850,  850, 1016,
 750       850, 1017,  850,  850,  850, 1018, 1019,  850,  850,  850,
 751       850,  850,  850,  850,  850,  850,  850,  850,  850,    0,
 752       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
 753       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
 754       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
 755       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
 756       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
 757 
 758       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
 759       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
 760       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
 761       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
 762       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
 763       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
 764       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
 765       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
 766       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
 767       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
 768 
 769       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
 770       850,  850,  850,  850,  850,  850,  850,  850,  850
 771     } ;
 772 
 773 static yyconst short int yy_nxt[12718] =
 774     {   0,
 775       850,  850,   19,   66,   67,   66,   20,   21,   22,   21,
 776        25,   25,   20,   26,   26,   39,   30,   39,  850,   74,
 777        40,   39,   30,   39,  847,   86,   40,   86,   76,   42,
 778        30,   42,   23,   23,   43,   92,   90,   27,   27,   74,
 779        23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
 780        23,   23,   23,   23,   23,   23,   23,   29,   30,   29,
 781        31,  333,   32,   33,  318,   31,   31,  181,   31,   31,
 782        31,   42,   30,   42,   90,   93,   43,  100,   34,   35,
 783        36,   72,   73,   72,   37,   29,   30,   29,   31,  101,
 784        32,   33,  100,   31,   31,  133,   31,   31,   31,   95,
 785 
 786        87,   95,   87,  134,  101,   88,   34,   35,   36,   89,
 787       138,  139,   37,   44,   45,   46,   45,   44,   47,   48,
 788        49,   49,   44,   50,   49,   51,   52,   53,   54,   54,
 789        54,   54,   54,   54,   55,   49,   44,   49,   44,   56,
 790        57,   49,   49,   49,   44,   58,   44,   59,   56,   56,
 791        56,   60,   57,   57,   57,   57,   57,   57,   61,   62,
 792        57,   63,   57,   57,   68,  829,   69,   69,   69,   69,
 793        69,   69,   86,   91,   86,   91,   86,  131,   86,  132,
 794       386,  387,   70,   68,  181,   69,   69,   69,   69,   69,
 795        69,  114,  114,  114,  114,  114,  114,  142,  143,  142,
 796 
 797       100,   70,   79,   79,   79,   79,   80,   80,   87,  135,
 798        87,  136,  101,  102,   72,   73,   72,  103,  137,   74,
 799       100,   86,   81,   86,   95,   82,   95,   91,  850,   91,
 800        83,  829,  101,   84,  181,   85,   91,   99,   91,   74,
 801        91,  244,   91,   91,  468,  473,   91,  130,  106,  110,
 802       110,  110,  110,  110,  110,  332,   91,   91,  181,   91,
 803       107,  335,  100,   91,   91,   91,  108,   74,  109,  109,
 804       109,  109,  109,  109,  101,   99,   76,  206,  101,   99,
 805       318,   99,  245,   99,  829,   99,  318,   74,   99,   99,
 806       453,  110,  111,   99,  112,  112,  112,  112,  112,  112,
 807 
 808       812,  166,   99,  166,  101,  110,  110,  151,  152,  151,
 809        99,  110,   99,  110,  110,  110,  110,  110,  110,  110,
 810       110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
 811        99,  181,   99,  100,   99,  181,   99,  220,  244,   99,
 812        99,  378,   99,  115,  144,  101,  114,  114,  114,  114,
 813       114,  114,  379,   99,  521,  101,  142,  143,  142,  100,
 814       100,   99,   99,   99,   99,  522,   99,  245,   99,  829,
 815        99,  101,  154,   99,   99,  456,  110,  117,  116,  118,
 816       118,  118,  118,  118,  118,  119,  850,   99,  850,  101,
 817       120,  121,  151,  152,  151,   99,  110,   99,  120,  120,
 818 
 819       120,  120,  120,  121,  121,  121,  121,  121,  121,  121,
 820       121,  121,  121,  121,  121,   99,  181,   99,  338,   99,
 821       554,   99,  554,  244,   99,   99,  812,  123,  124,  116,
 822       125,  125,  125,  125,  125,  125,  126,  181,   99,  122,
 823       101,  127,  128,  318,  369,  812,   99,  123,   99,  127,
 824       127,  127,  127,  127,  128,  128,  128,  128,  128,  128,
 825       128,  128,  128,  128,  128,  128,  129,  129,  129,  129,
 826       129,  129,  850,  732,  507,  384,  821,  128,  145,  145,
 827       145,  145,  145,  145,  385,  128,  128,  128,  128,  128,
 828       146,  153,  147,  100,  507,  148,  148,  148,  148,  148,
 829 
 830       148,  149,  149,  149,  149,  150,  150,  150,  150,  150,
 831       150,  150,  150,   99,  181,   99,  245,   99,  838,   99,
 832       838,  244,   99,   99,  462,  155,  100,   99,  156,  156,
 833       156,  156,  156,  156,  181,  181,   99,  462,  101,  155,
 834       155,  369,  369,  456,   99,  155,   99,  155,  155,  155,
 835       155,  155,  155,  155,  155,  155,  155,  155,  155,  155,
 836       155,  155,  155,  155,   91,   99,   91,  453,   91,  512,
 837        91,   91,  536,  540,   91,  130,  106,  110,  110,  110,
 838       110,  110,  110,  569,   91,   91,  812,   91,  107,  512,
 839       455,   91,   91,   91,   91,  153,   91,  732,   91,  850,
 840 
 841        91,   91,  153,  569,   91,  795,   91,  179,  179,  179,
 842       179,  179,  179,  181,   91,   91,  791,   91,  159,  788,
 843       493,   91,   91,   91,  105,   91,   99,   91,  105,   91,
 844       105,   91,   91,  105,  105,   91,  160,  106,  105,  161,
 845       161,  161,  161,  161,  161,   91,   91,  105,   91,  107,
 846       160,  160,   91,   91,   91,  105,  160,  105,  160,  160,
 847       160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
 848       160,  160,  160,  160,  160,  162,  162,  162,  162,  162,
 849       162,  122,  223,  516,  223,  154,  153,  517,  153,  732,
 850       153,  224,  153,  224,  518,  153,  153,  622,  163,  752,
 851 
 852       153,  164,  164,  164,  164,  164,  164,  181,  181,  153,
 853       751,  154,  163,  163,  369,  493,  336,  153,  163,  153,
 854       163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
 855       163,  163,  163,  163,  163,  163,  163,  166,  397,  166,
 856       163,  163,  163,  163,  163,  163,  166,  748,  166,  398,
 857       399,  167,  167,  167,  167,  167,  167,  193,  130,  507,
 858       194,  194,  194,  194,  194,  194,  205,  205,  205,  205,
 859       205,  205,  585,  168,  153,  512,  153,  747,  153,  507,
 860       153,  586,  218,  153,  153,  744,  153,  165,  207,  207,
 861       207,  207,  150,  150,  743,  512,  166,  153,  166,  154,
 862 
 863       223,  850,  223,  850,  528,  153,  153,  153,   99,  224,
 864        99,  224,   99,  219,   99,  529,  530,   99,   99,  323,
 865        99,  170,  150,  150,  150,  150,  150,  150,  181,  507,
 866       589,   99,  220,  101,  850,  493,  850,  231,  323,   99,
 867        99,   99,  153,  850,  153,  850,  153,  732,  153,  507,
 868       589,  153,  153,  622,  163,  165,  169,  172,  172,  172,
 869       172,  172,  172,  597,  602,  153,  726,  154,  173,  173,
 870       707,  712,  153,  153,  163,  153,  173,  173,  173,  173,
 871       173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
 872       173,  173,  173,   99,  181,   99,  705,   99,  704,   99,
 873 
 874       702,  625,   99,   99,  700,  110,  174,  171,  175,  175,
 875       175,  175,  175,  175,  119,  181,   99,  699,  101,  176,
 876       177,  696,  493,  695,   99,  110,   99,  176,  176,  176,
 877       176,  176,  177,  177,  177,  177,  177,  177,  177,  177,
 878       177,  177,  177,  177,  178,  178,  178,  178,  178,  178,
 879       122,  850,  153,  263,  210,  179,  155,  155,  155,  155,
 880       155,  155,  181,  179,  179,  179,  179,  179,  180,  625,
 881       176,  176,  176,  176,  176,  176,  126,  177,  177,  177,
 882       177,  177,  177,  850,  569,  692,  512,  215,  177,  160,
 883       160,  160,  160,  160,  160,  336,  177,  177,  177,  177,
 884 
 885       177,   99,  181,   99,  569,   99,  512,   99,  122,  625,
 886        99,   99,  622,  123,  130,   99,  130,  490,  163,  163,
 887       163,  163,  163,  163,   99,  656,  101,  850,  850,  850,
 888       850,  655,   99,  123,   99,  153,  850,  153,  850,  153,
 889       287,  153,  652,  635,  153,  153,  650,  163,  165,  169,
 890       173,  173,  173,  173,  173,  173,  649,  166,  153,  166,
 891       154,  184,  184,  635,  296,  645,  153,  163,  153,  184,
 892       184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
 893       184,  184,  184,  184,  184,  184,   99,  644,   99,  637,
 894        99,  632,   99,  220,  638,   99,   99,  622,  123,  185,
 895 
 896       171,  186,  186,  186,  186,  186,  186,  126,  181,   99,
 897       490,  101,  186,  187,  638,  735,  153,   99,  123,   99,
 898       186,  186,  186,  186,  186,  187,  187,  187,  187,  187,
 899       187,  187,  187,  187,  187,  187,  187,   99,  596,   99,
 900       594,   99,  593,   99,  592,  640,   99,   99,  588,  188,
 901       185,  171,  189,  189,  189,  189,  189,  189,  126,  181,
 902        99,  584,  101,  190,  191,  640,  625,  581,   99,  123,
 903        99,  190,  190,  190,  190,  190,  191,  191,  191,  191,
 904       191,  191,  191,  191,  191,  191,  191,  191,  192,  192,
 905       192,  192,  192,  192,  850,  850,  153,  580,  579,  191,
 906 
 907       240,  240,  240,  240,  240,  240,  577,  191,  191,  191,
 908       191,  191,  187,  187,  187,  187,  187,  187,  850,  589,
 909       576,  569,  575,  187,  241,  242,  241,  241,  241,  241,
 910       323,  187,  187,  187,  187,  187,  153,  635,  153,  589,
 911       153,  569,  153,  574,  638,  153,  153,  571,  208,  100,
 912       153,  209,  209,  209,  209,  209,  209,  635,  181,  153,
 913       122,  154,  208,  208,  638,  735,  490,  153,  208,  153,
 914       208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
 915       208,  208,  208,  208,  208,  208,  208,   91,  153,   91,
 916       366,   91,  640,   91,   91,  526,  525,   91,  188,  106,
 917 
 918       514,  253,  253,  253,  253,  253,  253,   91,   91,  511,
 919        91,  159,  640,  510,   91,   91,   91,  158,   91,  153,
 920        91,  158,   91,  158,   91,   91,  158,  158,   91,  213,
 921       106,  158,  214,  214,  214,  214,  214,  214,   91,   91,
 922       158,   91,  159,  213,  213,   91,   91,   91,  158,  213,
 923       158,  213,  213,  213,  213,  213,  213,  213,  213,  213,
 924       213,  213,  213,  213,  213,  213,  213,  213,  166,  188,
 925       166,  786,  258,  258,  258,  258,  258,  258,  509,  850,
 926       100,  850,  162,  162,  162,  162,  162,  162,  153,  504,
 927       163,  786,  154,  275,  275,  275,  275,  275,  275,  308,
 928 
 929       308,  308,  308,  308,  217,  166,  589,  166,  150,  150,
 930       150,  150,  150,  150,  490,  336,  366,  468,  466,  221,
 931       221,  221,  221,  221,  221,  210,  589,  208,  208,  208,
 932       208,  208,  208,  280,  280,  280,  280,  280,  280,  341,
 933       100,  222,  223,  215,  223,  213,  213,  213,  213,  213,
 934       213,  224,  154,  224,  460,  100,  225,  225,  225,  225,
 935       225,  225,  153,  181,  153,  459,  153,  101,  153,  458,
 936       735,  153,  153,  451,  153,  226,  282,  282,  282,  282,
 937       282,  282,  450,  635,  792,  153,  449,  154,  850,  850,
 938       850,  850,  453,  153,  153,  153,  153,  850,  153,  850,
 939 
 940       153,  344,  153,  635,  792,  153,  153,  448,  153,  219,
 941       288,  288,  288,  288,  288,  288,  181,  638,  796,  153,
 942       447,  154,  850,  815,  850,  353,  456,  153,  153,  153,
 943        99,  153,   99,  163,   99,  442,   99,  638,  796,   99,
 944        99,  441,   99,  226,  300,  122,  296,  296,  296,  296,
 945       296,  296,  786,   99,  366,  101,  239,  850,  393,  850,
 946       392,   99,   99,   99,  153,  166,  153,  166,  153,  409,
 947       153,  383,  786,  153,  153,  382,  163,  229,  227,  230,
 948       230,  230,  230,  230,  230,  181,  366,  153,  344,  154,
 949       231,  231,  735,  417,  341,  153,  163,  153,  231,  231,
 950 
 951       231,  232,  231,  231,  231,  231,  231,  231,  231,  231,
 952       231,  231,  231,  231,  231,  850,  318,  850,  296,  296,
 953       296,  296,  296,  296,  334,  850,  122,  233,  850,  231,
 954       231,  231,  231,  231,  231,  306,  306,  306,  306,  306,
 955       306,  308,  308,  308,  308,  308,  308,  216,  850,  211,
 956       850,  231,   99,  274,   99,  273,   99,  850,   99,  850,
 957       792,   99,   99,  269,  110,  234,  228,  235,  235,  235,
 958       235,  235,  235,  119,  181,   99,  268,  101,  236,  237,
 959       792,  815,  267,   99,  110,   99,  236,  236,  236,  236,
 960       236,  237,  237,  237,  237,  237,  237,  237,  237,  237,
 961 
 962       237,  237,  237,  233,  266,  236,  236,  236,  236,  236,
 963       236,  126,  237,  237,  237,  237,  237,  237,  850,  265,
 964       264,  219,  216,  237,  309,  309,  310,  308,  308,  308,
 965       212,  237,  237,  237,  237,  237,  238,  238,  238,  238,
 966       238,  238,  239,  796,  211,  640,  204,  240,  321,  321,
 967       321,  321,  321,  321,  462,  240,  240,  240,  240,  240,
 968        99,  181,   99,  796,   99,  640,   99,  203,  815,   99,
 969        99,  202,  123,  245,   99,  322,  322,  322,  322,  322,
 970       322,  786,  201,   99,  200,  101,  850,  850,  850,  850,
 971       453,   99,  123,   99,  153,  153,  153,  163,  153,  468,
 972 
 973       153,  786,  199,  153,  153,  198,  246,  233,  227,  322,
 974       322,  322,  322,  322,  322,  850,  197,  153,  196,  154,
 975       850,  195,  850,  478,  181,  153,  246,  153,  153,  850,
 976       153,  850,  153,  157,  153,  154,   92,  153,  153,   90,
 977       163,  219,  227,  231,  231,  231,  231,  231,  231,  181,
 978       140,  153,  122,  154,  248,  248,  815,   90,   90,  153,
 979       163,  153,  248,  248,  248,  248,  248,  248,  248,  248,
 980       248,  248,  248,  248,  248,  248,  248,  248,  248,   99,
 981        90,   99,   90,   99,  850,   99,   65,  850,   99,   99,
 982       850,  123,  249,  228,  250,  250,  250,  250,  250,  250,
 983 
 984       126,  850,   99,  850,  101,  250,  251,  850,  850,  850,
 985        99,  123,   99,  250,  250,  250,  250,  250,  251,  251,
 986       251,  251,  251,  251,  251,  251,  251,  251,  251,  251,
 987       251,  251,  251,  251,  251,  251,  850,  850,  850,  850,
 988       850,  251,  321,  321,  321,  321,  321,  321,  850,  251,
 989       251,  251,  251,  251,  130,  325,  325,  325,  325,  325,
 990       325,  263,  326,  850,  330,  850,  327,  322,  322,  322,
 991       322,  322,  322,  328,  329,  252,  252,  252,  252,  252,
 992       252,  252,  252,  252,  252,  252,  252,  252,  252,  252,
 993       252,  252,   99,  850,   99,  850,   99,  850,   99,  850,
 994 
 995       850,   99,   99,  850,  188,  249,  228,  254,  254,  254,
 996       254,  254,  254,  126,  850,   99,  850,  101,  255,  256,
 997       850,  850,  850,   99,  123,   99,  255,  255,  255,  255,
 998       255,  256,  256,  256,  256,  256,  256,  256,  256,  256,
 999       256,  256,  256,  257,  257,  257,  257,  257,  257,  850,
1000       850,  850,  792,  850,  256,  339,  339,  339,  339,  339,
1001       339,  456,  256,  256,  256,  256,  256,   99,  850,   99,
1002       850,   99,  792,   99,  850,  850,   99,   99,  850,  259,
1003       130,   99,  260,  260,  260,  260,  260,  260,  850,  850,
1004        99,  850,  101,  260,  260,  850,  850,  850,   99,  259,
1005 
1006        99,  261,  261,  261,  261,  261,  261,  261,  261,  261,
1007       261,  261,  261,  261,  261,  261,  261,  261,  188,  850,
1008       850,  262,  262,  262,  262,  262,  262,  263,   99,  850,
1009        99,  850,   99,  850,   99,  850,  850,   99,   99,  850,
1010       270,  130,   99,  271,  271,  271,  271,  271,  271,  850,
1011       850,   99,  850,  101,  271,  271,  850,  850,  850,   99,
1012       270,   99,  272,  272,  272,  272,  272,  272,  272,  272,
1013       272,  272,  272,  272,  272,  272,  272,  272,  272,   99,
1014       850,   99,  796,  850,  276,  276,  276,  276,  276,  276,
1015       153,  462,  153,  850,  153,  850,  153,  850,  850,  153,
1016 
1017       153,  850,  796,  342,  153,  280,  280,  280,  280,  280,
1018       280,  850,  850,  153,  850,  154,  850,  850,  850,  850,
1019       850,  153,  850,  153,  153,  153,  153,  163,  153,  536,
1020       153,  850,  597,  153,  153,  850,  850,  850,  153,  278,
1021       278,  278,  278,  278,  278,  850,  850,  153,  850,  154,
1022       850,  850,  850,  543,  850,  153,  605,  153,  158,   91,
1023       153,   91,  158,   91,  158,   91,   91,  158,  158,   91,
1024       281,   91,  158,  281,  281,  281,  281,  281,  281,   91,
1025        91,  158,   91,  159,  281,  281,   91,   91,   91,  158,
1026       281,  158,  281,  281,  281,  281,  281,  281,  281,  281,
1027 
1028       281,  281,  281,  281,  281,  281,  281,  281,  281,  223,
1029       343,  223,  282,  282,  282,  282,  282,  282,  283,  850,
1030       283,  850,  850,  284,  284,  284,  284,  284,  284,  288,
1031       288,  288,  288,  288,  288,  354,  850,  353,  353,  353,
1032       353,  353,  353,  850,  850,  153,  223,  344,  223,  353,
1033       353,  353,  353,  353,  353,  283,  850,  285,  130,  850,
1034       286,  286,  286,  286,  286,  286,  166,  850,  166,  364,
1035       364,  364,  364,  364,  364,  839,  839,  839,  839,  839,
1036       289,  289,  289,  289,  289,  289,  308,  308,  308,  308,
1037       308,  308,  376,  376,  376,  376,  376,  376,  850,  850,
1038 
1039       850,  850,  290,  223,  850,  223,  377,  377,  377,  377,
1040       377,  377,  224,  850,  224,  850,  850,  291,  291,  291,
1041       291,  291,  291,  153,  850,  153,  850,  153,  850,  153,
1042       850,  850,  153,  153,  850,  153,  287,  381,  381,  381,
1043       381,  381,  381,  263,  850,  850,  153,  850,  154,  850,
1044       850,  850,  850,  850,  153,  153,  153,  153,  850,  153,
1045       850,  153,  659,  153,  850,  850,  153,  153,  850,  153,
1046       293,  404,  404,  404,  404,  404,  404,  850,  850,  850,
1047       153,  850,  154,  850,  850,  850,  666,  850,  153,  153,
1048       153,   99,  153,   99,  163,   99,  850,   99,  850,  850,
1049 
1050        99,   99,  850,   99,  293,  850,  850,  405,  405,  405,
1051       405,  405,  405,  850,   99,  850,  101,  850,  850,  850,
1052       850,  850,   99,   99,   99,  153,  850,  153,  850,  153,
1053       707,  153,  850,  850,  153,  153,  850,  163,  287,  292,
1054       295,  295,  295,  295,  295,  295,  850,  850,  153,  850,
1055       154,  296,  296,  850,  715,  850,  153,  163,  153,  296,
1056       296,  296,  296,  296,  296,  296,  296,  296,  296,  296,
1057       296,  296,  296,  296,  296,  296,  166,  850,  166,  407,
1058       407,  407,  407,  407,  407,  850,  850,  850,  297,  850,
1059       298,  298,  298,  298,  298,  298,   91,  850,  408,  408,
1060 
1061       408,  408,  408,  408,  418,  850,  419,  419,  419,  419,
1062       419,  419,  299,  223,  420,  223,  417,  417,  417,  417,
1063       417,  417,  283,  850,  285,  300,  850,  301,  301,  301,
1064       301,  301,  301,   99,  850,   99,  850,   99,  850,   99,
1065       850,  850,   99,   99,  850,  110,  302,  294,  303,  303,
1066       303,  303,  303,  303,  119,  850,   99,  850,  101,  304,
1067       304,  850,  850,  850,   99,  110,   99,  304,  304,  304,
1068       304,  304,  304,  304,  304,  304,  304,  304,  304,  304,
1069       304,  304,  304,  304,  300,  850,  304,  304,  304,  304,
1070       304,  304,  126,  305,  305,  305,  305,  305,  305,  239,
1071 
1072       850,  850,  850,  850,  306,  417,  417,  417,  417,  417,
1073       417,  850,  306,  306,  306,  306,  306,  153,  850,  153,
1074       850,  153,  850,  153,  850,  850,  153,  153,  850,  163,
1075       850,  153,  163,  163,  163,  163,  163,  163,  850,  850,
1076       153,  850,  154,  313,  313,  850,  850,  850,  153,  163,
1077       153,  313,  313,  313,  313,  313,  313,  313,  313,  313,
1078       313,  313,  313,  313,  313,  313,  313,  313,  153,  850,
1079       153,  850,  153,  850,  153,  850,  850,  153,  153,  850,
1080       246,  130,  153,  419,  419,  419,  419,  419,  419,  850,
1081       850,  153,  850,  154,  850,  850,  850,  850,  850,  153,
1082 
1083       246,  153,  153,  153,  153,  163,  153,  754,  153,  850,
1084       850,  153,  153,  850,  246,  300,  292,  428,  428,  428,
1085       428,  428,  428,  850,  850,  153,  850,  154,  850,  850,
1086       850,  761,  850,  153,  246,  153,  153,  850,  153,  850,
1087       153,  850,  153,  850,  850,  153,  153,  850,  246,  300,
1088       292,  428,  428,  428,  428,  428,  428,  239,  850,  153,
1089       850,  154,  850,  850,  850,  850,  850,  153,  246,  153,
1090       153,  153,  153,  163,  153,  850,  153,  850,  850,  153,
1091       153,  850,  163,  287,  292,  296,  296,  296,  296,  296,
1092       296,  850,  850,  153,  850,  154,  316,  316,  850,  163,
1093 
1094       850,  153,  163,  153,  316,  316,  316,  316,  316,  316,
1095       316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
1096       316,   99,  850,   99,  850,   99,  850,   99,  850,  850,
1097        99,   99,  850,  123,  317,  294,  439,  439,  439,  439,
1098       439,  439,  126,  850,   99,  850,  101,  850,  850,  850,
1099       850,  850,   99,  123,   99,   99,  850,   99,  850,   99,
1100       850,   99,  850,  850,   99,   99,  850,  123,  317,  294,
1101       440,  440,  440,  440,  440,  440,  850,  850,   99,  850,
1102       101,  850,  850,  850,  850,  850,   99,  123,   99,   99,
1103       153,   99,  163,   99,  850,   99,  850,  850,   99,   99,
1104 
1105       850,  123,  245,   99,  183,  183,  183,  183,  183,  183,
1106       850,  850,   99,  850,  101,  183,  183,  850,  850,  850,
1107        99,  123,   99,  319,  319,  319,  319,  319,  319,  319,
1108       319,  319,  319,  319,  319,  319,  319,  319,  319,  319,
1109       188,  850,  850,  320,  320,  320,  320,  320,  320,  126,
1110        99,  850,   99,  850,   99,  850,   99,  850,  850,   99,
1111        99,  850,  259,  130,   99,  444,  444,  444,  444,  444,
1112       444,  263,  850,   99,  850,  101,  223,  850,  223,  850,
1113       850,   99,  259,   99,   99,  224,   99,  224,   99,  850,
1114        99,  850,  850,   99,   99,  850,  259,  245,   99,  464,
1115 
1116       464,  464,  464,  464,  464,  323,  850,   99,  850,  101,
1117       850,  850,  850,  850,  850,   99,  259,   99,  324,  324,
1118       324,  324,  324,  324,  324,  324,  324,  324,  324,  324,
1119       324,  324,  324,  324,  324,  188,  850,  850,  322,  322,
1120       322,  322,  322,  322,  445,  850,  850,  446,  446,  446,
1121       446,  446,  446,  473,  478,  478,  478,  478,  478,  478,
1122       331,   99,  850,   99,  850,   99,  850,   99,  850,  850,
1123        99,   99,  850,  270,  130,   99,  465,  850,  405,  405,
1124       405,  405,  405,  405,   99,  850,  101,  850,  850,  850,
1125       850,  850,   99,  270,   99,   99,  153,   99,  163,   99,
1126 
1127       850,   99,  850,  850,   99,   99,  850,  270,  245,   99,
1128       428,  428,  428,  428,  428,  428,  336,  850,   99,  850,
1129       101,  850,  850,  850,  850,  850,   99,  270,   99,  337,
1130       337,  337,  337,  337,  337,  337,  337,  337,  337,  337,
1131       337,  337,  337,  337,  337,  337,  100,  850,  276,  276,
1132       276,  276,  276,  276,  850,  838,  850,  838,  101,  153,
1133       850,  153,  850,  153,  844,  153,  844,  850,  153,  153,
1134       850,  850,  210,  153,  467,  850,  408,  408,  408,  408,
1135       408,  408,  153,  850,  154,  850,  850,  850,  850,  850,
1136       153,  850,  153,  153,  850,  153,  850,  153,  850,  153,
1137 
1138       850,  850,  153,  153,  850,  850,  340,  153,  278,  278,
1139       278,  278,  278,  278,  850,  850,  153,  850,  154,  850,
1140       850,  850,  850,  850,  153,  850,  153,  158,   91,  153,
1141        91,  158,   91,  158,   91,   91,  158,  158,   91,  281,
1142       215,  158,  281,  281,  281,  281,  281,  281,   91,   91,
1143       158,   91,  159,  281,  281,   91,   91,   91,  158,  281,
1144       158,  281,  281,  281,  281,  281,  281,  281,  281,  281,
1145       281,  281,  281,  281,  281,  281,  281,  281,  100,  850,
1146       284,  284,  284,  284,  284,  284,  850,  850,  850,  850,
1147       154,  100,  850,  284,  284,  284,  284,  284,  284,  850,
1148 
1149       850,  850,  850,  154,  153,  850,  153,  850,  153,  850,
1150       153,  850,  850,  153,  153,  850,  163,  130,  153,  286,
1151       286,  286,  286,  286,  286,  850,  850,  153,  850,  154,
1152       163,  163,  850,  850,  850,  153,  163,  153,  163,  163,
1153       163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
1154       163,  163,  163,  163,  163,  166,  468,  166,  478,  478,
1155       478,  478,  478,  478,  850,  850,  850,  850,  850,  345,
1156       345,  345,  345,  345,  345,  500,  500,  500,  500,  500,
1157       500,  501,  501,  501,  501,  501,  501,  850,  850,  850,
1158       850,  346,  223,  850,  223,  524,  524,  524,  524,  524,
1159 
1160       524,  224,  850,  224,  850,  850,  347,  347,  347,  347,
1161       347,  347,  153,  850,  153,  850,  153,  850,  153,  850,
1162       850,  153,  153,  502,  153,  348,  503,  503,  503,  503,
1163       503,  503,  850,  850,  850,  153,  850,  154,  850,  850,
1164       850,  850,  850,  153,  153,  153,  153,  850,  153,  850,
1165       153,  850,  153,  850,  850,  153,  153,  850,  153,  344,
1166       506,  506,  506,  506,  506,  506,  263,  850,  850,  153,
1167       850,  154,  850,  850,  850,  850,  850,  153,  153,  153,
1168        99,  850,   99,  850,   99,  850,   99,  850,  850,   99,
1169        99,  850,   99,  348,  446,  446,  446,  446,  446,  446,
1170 
1171       263,  850,  850,   99,  850,  101,  850,  850,  850,  850,
1172       850,   99,   99,   99,  153,  850,  153,  850,  153,  850,
1173       153,  850,  850,  153,  153,  850,  163,  351,  349,  352,
1174       352,  352,  352,  352,  352,  850,  850,  153,  850,  154,
1175       353,  353,  850,  850,  850,  153,  163,  153,  353,  353,
1176       353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
1177       353,  353,  353,  353,  353,  166,  850,  166,  532,  532,
1178       532,  532,  532,  532,  850,  850,  850,  355,  850,  356,
1179       356,  356,  356,  356,  356,  850,  850,  533,  533,  533,
1180       533,  533,  533,  534,  534,  534,  534,  534,  534,  850,
1181 
1182       850,  357,  223,   91,  223,  535,  535,  535,  535,  535,
1183       535,  283,  850,  285,  354,  850,  358,  358,  358,  358,
1184       358,  358,   99,  850,   99,  850,   99,  850,   99,  850,
1185       850,   99,   99,  850,  110,  359,  350,  360,  360,  360,
1186       360,  360,  360,  361,  850,   99,  850,  101,  362,  362,
1187       850,  850,  850,   99,  110,   99,  362,  362,  362,  362,
1188       362,  362,  362,  362,  362,  362,  362,  362,  362,  362,
1189       362,  362,  362,  354,  850,  362,  362,  362,  362,  362,
1190       362,  850,  363,  363,  363,  363,  363,  363,  239,  850,
1191       850,  850,  850,  364,  544,  544,  544,  544,  544,  544,
1192 
1193       850,  364,  364,  364,  364,  364,  153,  850,  153,  850,
1194       153,  850,  153,  850,  850,  153,  153,  850,  246,  130,
1195       153,  548,  850,  549,  549,  549,  549,  549,  549,  153,
1196       850,  154,  850,  850,  850,  850,  850,  153,  246,  153,
1197       153,  850,  153,  850,  153,  850,  153,  850,  850,  153,
1198       153,  850,  246,  130,  153,  536,  850,  549,  549,  549,
1199       549,  549,  549,  153,  850,  154,  850,  850,  850,  850,
1200       850,  153,  246,  153,  153,  850,  153,  850,  153,  850,
1201       153,  850,  850,  153,  153,  850,  246,  354,  349,  567,
1202       567,  567,  567,  567,  567,  850,  850,  153,  850,  154,
1203 
1204       850,  850,  850,  850,  850,  153,  246,  153,  153,  850,
1205       153,  850,  153,  850,  153,  850,  850,  153,  153,  850,
1206       246,  354,  349,  568,  568,  568,  568,  568,  568,  850,
1207       850,  153,  850,  154,  850,  850,  850,  850,  850,  153,
1208       246,  153,  153,  850,  153,  850,  153,  850,  153,  850,
1209       850,  153,  153,  850,  163,  344,  349,  353,  353,  353,
1210       353,  353,  353,  850,  850,  153,  850,  154,  371,  371,
1211       850,  850,  850,  153,  163,  153,  371,  371,  371,  371,
1212       371,  371,  371,  371,  371,  371,  371,  371,  371,  371,
1213       371,  371,  371,   99,  850,   99,  850,   99,  850,   99,
1214 
1215       850,  850,   99,   99,  850,  123,  372,  350,  503,  503,
1216       503,  503,  503,  503,  323,  850,   99,  850,  101,  850,
1217       850,  850,  850,  850,   99,  123,   99,   99,  850,   99,
1218       850,   99,  850,   99,  850,  850,   99,   99,  850,  123,
1219       245,   99,  183,  183,  183,  183,  183,  183,  850,  850,
1220        99,  850,  101,  183,  183,  850,  850,  850,   99,  123,
1221        99,  374,  374,  374,  374,  374,  374,  374,  374,  374,
1222       374,  374,  374,  374,  374,  374,  374,  374,   99,  850,
1223        99,  850,   99,  850,   99,  850,  850,   99,   99,  850,
1224       188,  372,  350,  375,  375,  375,  375,  375,  375,  850,
1225 
1226       850,   99,  850,  101,  373,  373,  850,  850,  850,   99,
1227       123,   99,  373,  373,  373,  373,  373,  373,  373,  373,
1228       373,  373,  373,  373,  373,  373,  373,  373,  373,   99,
1229       850,   99,  850,   99,  850,   99,  850,  850,   99,   99,
1230       850,  259,  245,   99,  260,  260,  260,  260,  260,  260,
1231       323,  850,   99,  850,  101,  260,  260,  850,  850,  850,
1232        99,  259,   99,  380,  380,  380,  380,  380,  380,  380,
1233       380,  380,  380,  380,  380,  380,  380,  380,  380,  380,
1234        99,  850,   99,  850,   99,  850,   99,  850,  850,   99,
1235        99,  850,  123,  130,   99,  388,  388,  388,  388,  388,
1236 
1237       388,  850,  850,   99,  850,  101,  183,  183,  850,  850,
1238       850,   99,  123,   99,  252,  252,  252,  252,  252,  252,
1239       252,  252,  252,  252,  252,  252,  252,  252,  252,  252,
1240       252,   99,  850,   99,  850,   99,  850,   99,  850,  850,
1241        99,   99,  850,  123,  372,  350,  573,  573,  573,  573,
1242       573,  573,  263,  850,   99,  850,  101,  850,  850,  850,
1243       850,  850,   99,  123,   99,   99,  850,   99,  850,   99,
1244       850,   99,  850,  850,   99,   99,  850,  389,  130,   99,
1245       390,  390,  390,  390,  390,  390,  850,  850,   99,  850,
1246       101,  390,  390,  850,  850,  850,   99,  389,   99,  391,
1247 
1248       391,  391,  391,  391,  391,  391,  391,  391,  391,  391,
1249       391,  391,  391,  391,  391,  391,   99,  850,   99,  850,
1250        99,  850,   99,  850,  850,   99,   99,  850,  394,  130,
1251        99,  395,  395,  395,  395,  395,  395,  850,  850,   99,
1252       850,  101,  395,  395,  850,  850,  850,   99,  394,   99,
1253       396,  396,  396,  396,  396,  396,  396,  396,  396,  396,
1254       396,  396,  396,  396,  396,  396,  396,   99,  850,   99,
1255       850,   99,  850,   99,  850,  850,   99,   99,  850,  270,
1256       245,   99,  271,  271,  271,  271,  271,  271,  336,  850,
1257        99,  850,  101,  271,  271,  850,  850,  850,   99,  270,
1258 
1259        99,  400,  400,  400,  400,  400,  400,  400,  400,  400,
1260       400,  400,  400,  400,  400,  400,  400,  400,   99,  850,
1261        99,  850,   99,  850,   99,  850,  850,   99,   99,  850,
1262       401,  130,   99,  402,  402,  402,  402,  402,  402,  850,
1263       850,   99,  850,  101,  402,  402,  850,  850,  850,   99,
1264       401,   99,  403,  403,  403,  403,  403,  403,  403,  403,
1265       403,  403,  403,  403,  403,  403,  403,  403,  403,  166,
1266       850,  166,  524,  524,  524,  524,  524,  524,  336,  850,
1267       850,  850,  850,  410,  410,  410,  410,  410,  410,  210,
1268       850,  533,  533,  533,  533,  533,  533,  535,  535,  535,
1269 
1270       535,  535,  535,  850,  850,  411,  223,  610,  223,  611,
1271       611,  611,  611,  611,  611,  224,  850,  224,  850,  850,
1272       412,  412,  412,  412,  412,  412,  153,  850,  153,  850,
1273       153,  850,  153,  850,  850,  153,  153,  850,  153,  409,
1274       611,  611,  611,  611,  611,  611,  850,  850,  850,  153,
1275       850,  154,  850,  850,  850,  850,  850,  153,  153,  153,
1276       153,  850,  153,  850,  153,  850,  153,  850,  850,  153,
1277       153,  850,  153,  414,  631,  631,  631,  631,  631,  631,
1278       850,  850,  850,  153,  850,  154,  850,  850,  850,  850,
1279       850,  153,  153,  153,   99,  850,   99,  850,   99,  850,
1280 
1281        99,  850,  850,   99,   99,  850,   99,  414,  643,  643,
1282       643,  643,  643,  643,  850,  850,  850,   99,  850,  101,
1283       850,  850,  850,  850,  850,   99,   99,   99,  153,  850,
1284       153,  850,  153,  850,  153,  850,  850,  153,  153,  850,
1285       163,  409,  413,  416,  416,  416,  416,  416,  416,  850,
1286       850,  153,  850,  154,  417,  417,  850,  850,  850,  153,
1287       163,  153,  417,  417,  417,  417,  417,  417,  417,  417,
1288       417,  417,  417,  417,  417,  417,  417,  417,  417,  166,
1289       850,  166,  648,  648,  648,  648,  648,  648,  850,  850,
1290       850,  421,  850,  422,  422,  422,  422,  422,  422,  654,
1291 
1292       654,  654,  654,  654,  654,  658,  658,  658,  658,  658,
1293       658,  850,  850,  850,  850,  423,  223,  850,  223,  668,
1294       668,  668,  668,  668,  668,  283,  850,  285,  420,  850,
1295       424,  424,  424,  424,  424,  424,   99,  850,   99,  850,
1296        99,  850,   99,  850,  850,   99,   99,  850,  110,  425,
1297       415,  426,  426,  426,  426,  426,  426,  361,  850,   99,
1298       850,  101,  427,  427,  850,  850,  850,   99,  110,   99,
1299       427,  427,  427,  427,  427,  427,  427,  427,  427,  427,
1300       427,  427,  427,  427,  427,  427,  427,  420,  850,  427,
1301       427,  427,  427,  427,  427,  850,  153,  850,  153,  850,
1302 
1303       153,  850,  153,  850,  850,  153,  153,  850,  246,  420,
1304       413,  671,  672,  672,  672,  672,  672,  672,  850,  153,
1305       850,  154,  850,  850,  850,  850,  850,  153,  246,  153,
1306       153,  850,  153,  850,  153,  850,  153,  850,  850,  153,
1307       153,  850,  246,  420,  413,  659,  850,  672,  672,  672,
1308       672,  672,  672,  153,  850,  154,  850,  850,  850,  850,
1309       850,  153,  246,  153,  153,  850,  153,  850,  153,  850,
1310       153,  850,  850,  153,  153,  850,  163,  409,  413,  417,
1311       417,  417,  417,  417,  417,  850,  850,  153,  850,  154,
1312       434,  434,  850,  850,  850,  153,  163,  153,  434,  434,
1313 
1314       434,  434,  434,  434,  434,  434,  434,  434,  434,  434,
1315       434,  434,  434,  434,  434,   99,  850,   99,  850,   99,
1316       850,   99,  850,  850,   99,   99,  850,  123,  435,  415,
1317       673,  850,  674,  674,  674,  674,  674,  674,   99,  850,
1318       101,  850,  850,  850,  850,  850,   99,  123,   99,  437,
1319       437,  437,  437,  437,  437,  437,  437,  437,  437,  437,
1320       437,  437,  437,  437,  437,  437,   99,  850,   99,  850,
1321        99,  850,   99,  850,  850,   99,   99,  850,  188,  435,
1322       415,  438,  438,  438,  438,  438,  438,  850,  850,   99,
1323       850,  101,  436,  436,  850,  850,  850,   99,  123,   99,
1324 
1325       436,  436,  436,  436,  436,  436,  436,  436,  436,  436,
1326       436,  436,  436,  436,  436,  436,  436,  443,  443,  443,
1327       443,  443,  443,  443,  443,  443,  443,  443,  443,  443,
1328       443,  443,  443,  443,   99,  850,   99,  850,   99,  850,
1329        99,  850,  850,   99,   99,  850,  123,  245,   99,  388,
1330       388,  388,  388,  388,  388,  850,  850,   99,  850,  101,
1331       452,  452,  850,  850,  850,   99,  123,   99,  452,  452,
1332       452,  452,  452,  452,  452,  452,  452,  452,  452,  452,
1333       452,  452,  452,  452,  452,  390,  390,  390,  390,  390,
1334       390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
1335 
1336       390,  390,  245,  668,  668,  668,  668,  668,  668,  659,
1337       453,  674,  674,  674,  674,  674,  674,  850,  850,  607,
1338       850,  850,  850,  454,  454,  454,  454,  454,  454,  454,
1339       454,  454,  454,  454,  454,  454,  454,  454,  454,  454,
1340        99,  850,   99,  850,   99,  850,   99,  850,  850,   99,
1341        99,  850,  123,  435,  415,  679,  679,  679,  679,  679,
1342       679,  263,  850,   99,  850,  101,  850,  850,  850,  850,
1343       850,   99,  123,   99,  395,  395,  395,  395,  395,  395,
1344       395,  395,  395,  395,  395,  395,  395,  395,  395,  395,
1345       395,  245,  643,  643,  643,  643,  643,  643,  453,  456,
1346 
1347       648,  648,  648,  648,  648,  648,  456,  850,  850,  850,
1348       850,  850,  457,  457,  457,  457,  457,  457,  457,  457,
1349       457,  457,  457,  457,  457,  457,  457,  457,  457,  461,
1350       461,  461,  461,  461,  461,  461,  461,  461,  461,  461,
1351       461,  461,  461,  461,  461,  461,  402,  402,  402,  402,
1352       402,  402,  402,  402,  402,  402,  402,  402,  402,  402,
1353       402,  402,  402,  245,  654,  654,  654,  654,  654,  654,
1354       462,  462,  341,  850,  658,  658,  658,  658,  658,  658,
1355       850,  850,  850,  850,  463,  463,  463,  463,  463,  463,
1356       463,  463,  463,  463,  463,  463,  463,  463,  463,  463,
1357 
1358       463,  166,  720,  166,  721,  721,  721,  721,  721,  721,
1359       850,  850,  850,  850,  850,  469,  469,  469,  469,  469,
1360       469,  721,  721,  721,  721,  721,  721,  763,  763,  763,
1361       763,  763,  763,  850,  850,  850,  850,  470,  223,  850,
1362       223,  850,  850,  607,  850,  850,  850,  224,  850,  224,
1363       850,  850,  471,  471,  471,  471,  471,  471,  153,  850,
1364       153,  850,  153,  850,  153,  850,  850,  153,  153,  153,
1365       153,  472,  764,  764,  764,  764,  764,  764,  850,  850,
1366       850,  153,  850,  154,  850,  850,  850,  850,  850,  153,
1367       153,  153,  153,  850,  153,  850,  153,  850,  153,  850,
1368 
1369       850,  153,  153,  850,  153,  468,  763,  763,  763,  763,
1370       763,  763,  850,  850,  850,  153,  850,  154,  850,  850,
1371       850,  850,  850,  153,  153,  153,   99,  850,   99,  850,
1372        99,  850,   99,  850,  850,   99,   99,  850,   99,  472,
1373       765,  766,  766,  766,  766,  766,  766,  850,  850,   99,
1374       850,  101,  850,  850,  850,  850,  850,   99,   99,   99,
1375       153,  850,  153,  850,  153,  850,  153,  850,  850,  153,
1376       153,  850,  163,  475,  476,  477,  477,  477,  477,  477,
1377       477,  850,  850,  153,  850,  154,  478,  478,  850,  850,
1378       850,  153,  163,  153,  478,  478,  478,  478,  478,  478,
1379 
1380       478,  478,  478,  478,  478,  478,  478,  478,  478,  478,
1381       478,  479,  473,  480,  480,  480,  480,  480,  480,  166,
1382       754,  166,  766,  766,  766,  766,  766,  766,  850,  850,
1383       850,  481,  850,  482,  482,  482,  482,  482,  482,  767,
1384       850,  768,  768,  768,  768,  768,  768,  754,  850,  768,
1385       768,  768,  768,  768,  768,  483,  223,  850,  223,  773,
1386       773,  773,  773,  773,  773,  283,  850,  285,  475,  850,
1387       484,  484,  484,  484,  484,  484,   99,  850,   99,  850,
1388        99,  850,   99,  850,  850,   99,   99,  850,  110,  485,
1389       474,  486,  486,  486,  486,  486,  486,  361,  850,   99,
1390 
1391       850,  101,  487,  487,  850,  850,  850,   99,  110,   99,
1392       487,  487,  487,  487,  487,  487,  487,  487,  487,  487,
1393       487,  487,  487,  487,  487,  487,  487,  475,  850,  487,
1394       487,  487,  487,  487,  487,  850,  153,  850,  153,  850,
1395       153,  850,  153,  850,  850,  153,  153,  850,  246,  475,
1396       473,  288,  288,  288,  288,  288,  288,  850,  850,  153,
1397       850,  154,  850,  850,  850,  850,  850,  153,  246,  153,
1398       153,  850,  153,  850,  153,  850,  153,  850,  850,  153,
1399       153,  850,  246,  475,  473,  803,  850,  804,  804,  804,
1400       804,  804,  804,  153,  850,  154,  850,  850,  850,  850,
1401 
1402       850,  153,  246,  153,  153,  850,  153,  850,  153,  850,
1403       153,  850,  850,  153,  153,  850,  163,  468,  473,  478,
1404       478,  478,  478,  478,  478,  850,  850,  153,  850,  154,
1405       495,  495,  850,  850,  850,  153,  163,  153,  495,  495,
1406       495,  495,  495,  495,  495,  495,  495,  495,  495,  495,
1407       495,  495,  495,  495,  495,   99,  850,   99,  850,   99,
1408       850,   99,  850,  850,   99,   99,  850,  123,  496,  474,
1409       804,  804,  804,  804,  804,  804,  850,  850,   99,  850,
1410       101,  850,  850,  850,  850,  850,   99,  123,   99,   99,
1411       850,   99,  850,   99,  850,   99,  850,  850,   99,   99,
1412 
1413       850,  123,  245,   99,  183,  183,  183,  183,  183,  183,
1414       850,  850,   99,  850,  101,  183,  183,  850,  850,  850,
1415        99,  123,   99,  498,  498,  498,  498,  498,  498,  498,
1416       498,  498,  498,  498,  498,  498,  498,  498,  498,  498,
1417        99,  850,   99,  850,   99,  850,   99,  850,  850,   99,
1418        99,  850,  188,  496,  474,  499,  499,  499,  499,  499,
1419       499,  850,  850,   99,  850,  101,  497,  497,  850,  850,
1420       850,   99,  123,   99,  497,  497,  497,  497,  497,  497,
1421       497,  497,  497,  497,  497,  497,  497,  497,  497,  497,
1422       497,   99,  850,   99,  850,   99,  850,   99,  850,  850,
1423 
1424        99,   99,  850,  259,  245,   99,  260,  260,  260,  260,
1425       260,  260,  323,  850,   99,  850,  101,  260,  260,  850,
1426       850,  850,   99,  259,   99,  505,  505,  505,  505,  505,
1427       505,  505,  505,  505,  505,  505,  505,  505,  505,  505,
1428       505,  505,  515,  515,  807,  807,  807,  807,  807,  807,
1429       515,  515,  515,  515,  515,  515,  515,  515,  515,  515,
1430       515,  515,  515,  515,  515,  515,  515,   99,  850,   99,
1431       850,   99,  850,   99,  850,  850,   99,   99,  850,  389,
1432       245,   99,  390,  390,  390,  390,  390,  390,  453,  850,
1433        99,  850,  101,  390,  390,  850,  850,  850,   99,  389,
1434 
1435        99,  519,  519,  519,  519,  519,  519,  519,  519,  519,
1436       519,  519,  519,  519,  519,  519,  519,  519,   99,  850,
1437        99,  850,   99,  850,   99,  850,  850,   99,   99,  850,
1438       123,  130,   99,  520,  520,  520,  520,  520,  520,  850,
1439       850,   99,  850,  101,  520,  183,  850,  850,  850,   99,
1440       123,   99,  520,  520,  520,  520,  520,  183,  183,  183,
1441       183,  183,  183,  183,  183,  183,  183,  183,  183,  523,
1442       523,  523,  523,  523,  523,  523,  523,  523,  523,  523,
1443       523,  523,  523,  523,  523,  523,  527,  527,  527,  527,
1444       527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
1445 
1446       527,  527,  527,  531,  531,  531,  531,  531,  531,  531,
1447       531,  531,  531,  531,  531,  531,  531,  531,  531,  531,
1448       166,  153,  166,  850,  153,  153,  153,  153,  153,  153,
1449       850,  850,  850,  850,  537,  537,  537,  537,  537,  537,
1450       153,  850,  850,  764,  764,  764,  764,  764,  764,  816,
1451       816,  816,  816,  816,  816,  263,  538,  223,  803,  223,
1452       804,  804,  804,  804,  804,  804,  224,  850,  224,  850,
1453       850,  539,  539,  539,  539,  539,  539,  153,  850,  153,
1454       850,  153,  850,  153,  850,  850,  153,  153,  850,  153,
1455       536,  804,  804,  804,  804,  804,  804,  850,  850,  850,
1456 
1457       153,  850,  154,  850,  850,  850,  850,  850,  153,  153,
1458       153,  153,  850,  153,  850,  153,  850,  153,  850,  850,
1459       153,  153,  850,  153,  541,  806,  806,  806,  806,  806,
1460       806,  850,  850,  850,  153,  850,  154,  850,  850,  850,
1461       850,  850,  153,  153,  153,   99,  850,   99,  850,   99,
1462       850,   99,  850,  850,   99,   99,  850,   99,  541,  816,
1463       816,  816,  816,  816,  816,  263,  850,  850,   99,  850,
1464       101,  850,  850,  850,  850,  850,   99,   99,   99,  153,
1465       850,  153,  850,  153,  850,  153,  850,  850,  153,  153,
1466       850,  163,  536,  540,  827,  827,  827,  827,  827,  827,
1467 
1468       850,  850,  153,  850,  154,  850,  850,  850,  850,  850,
1469       153,  163,  153,  153,  850,  153,  850,  153,  850,  153,
1470       850,  850,  153,  153,  850,  163,  545,  546,  547,  547,
1471       547,  547,  547,  547,  850,  850,  153,  850,  154,  543,
1472       543,  850,  850,  850,  153,  163,  153,  543,  543,  543,
1473       543,  543,  543,  543,  543,  543,  543,  543,  543,  543,
1474       543,  543,  543,  543,  153,  850,  153,  850,  153,  850,
1475       153,  850,  850,  153,  153,  850,  163,  545,  540,  833,
1476       833,  833,  833,  833,  833,  850,  850,  153,  850,  154,
1477       850,  850,  850,  850,  850,  153,  163,  153,  166,  850,
1478 
1479       166,  834,  835,  834,  834,  834,  834,  850,  850,  850,
1480       550,  850,  551,  551,  551,  551,  551,  551,  839,  839,
1481       839,  839,  839,  839,  840,  840,  841,  839,  839,  839,
1482       850,  850,  850,  850,  552,  223,  850,  223,  839,  839,
1483       839,  839,  839,  839,  283,  850,  285,  850,  850,  553,
1484       553,  553,  553,  553,  553,   99,  554,   99,  554,   99,
1485       850,   99,  850,  850,   99,   99,  850,  110,  555,  542,
1486       556,  556,  556,  556,  556,  556,  361,  850,   99,  850,
1487       101,  557,  557,  850,  850,  850,   99,  110,   99,  557,
1488       557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
1489 
1490       557,  557,  557,  557,  557,  557,  850,  850,  850,  845,
1491       845,  845,  845,  845,  845,  850,  850,  850,  545,  850,
1492       557,  557,  557,  557,  557,  557,  850,  153,  850,  153,
1493       850,  153,  850,  153,  850,  850,  153,  153,  850,  246,
1494       545,  540,  846,  846,  846,  846,  846,  846,  850,  850,
1495       153,  850,  154,  850,  850,  850,  850,  850,  153,  246,
1496       153,  153,  850,  153,  850,  153,  850,  153,  850,  850,
1497       153,  153,  850,  246,  545,  540,  848,  848,  848,  848,
1498       848,  848,  850,  850,  153,  850,  154,  850,  850,  850,
1499       850,  850,  153,  246,  153,  153,  850,  153,  850,  153,
1500 
1501       850,  153,  850,  850,  153,  153,  850,  163,  536,  540,
1502       543,  543,  543,  543,  543,  543,  850,  850,  153,  850,
1503       154,  563,  563,  850,  850,  850,  153,  163,  153,  563,
1504       563,  563,  563,  563,  563,  563,  563,  563,  563,  563,
1505       563,  563,  563,  563,  563,  563,   99,  850,   99,  850,
1506        99,  850,   99,  850,  850,   99,   99,  850,  123,  564,
1507       542,  849,  849,  849,  849,  849,  849,  850,  850,   99,
1508       850,  101,  850,  850,  850,  850,  850,   99,  123,   99,
1509       566,  566,  566,  566,  566,  566,  566,  566,  566,  566,
1510       566,  566,  566,  566,  566,  566,  566,   99,  850,   99,
1511 
1512       850,   99,  850,   99,  850,  850,   99,   99,  850,  188,
1513       564,  542,  850,  850,  850,  850,  850,  850,  850,  850,
1514        99,  850,  101,  850,  850,  850,  850,  850,   99,  123,
1515        99,   99,  850,   99,  850,   99,  850,   99,  850,  850,
1516        99,   99,  850,  259,  245,   99,  260,  260,  260,  260,
1517       260,  260,  323,  850,   99,  850,  101,  260,  260,  850,
1518       850,  850,   99,  259,   99,  572,  572,  572,  572,  572,
1519       572,  572,  572,  572,  572,  572,  572,  572,  572,  572,
1520       572,  572,  578,  578,  850,  850,  850,  850,  850,  850,
1521       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
1522 
1523       578,  578,  578,  578,  578,  578,  578,   99,  850,   99,
1524       850,   99,  850,   99,  850,  850,   99,   99,  850,  389,
1525       245,   99,  390,  390,  390,  390,  390,  390,  453,  850,
1526        99,  850,  101,  390,  390,  850,  850,  850,   99,  389,
1527        99,  582,  582,  582,  582,  582,  582,  582,  582,  582,
1528       582,  582,  582,  582,  582,  582,  582,  582,   99,  850,
1529        99,  850,   99,  850,   99,  850,  850,   99,   99,  850,
1530       123,  245,   99,  583,  583,  583,  583,  583,  583,  850,
1531       850,   99,  850,  101,  583,  183,  850,  850,  850,   99,
1532       123,   99,  583,  583,  583,  583,  583,  183,  183,  183,
1533 
1534       183,  183,  183,  183,  183,  183,  183,  183,  183,   99,
1535       850,   99,  850,   99,  850,   99,  850,  850,   99,   99,
1536       850,  394,  245,   99,  395,  395,  395,  395,  395,  395,
1537       456,  850,   99,  850,  101,  395,  395,  850,  850,  850,
1538        99,  394,   99,  587,  587,  587,  587,  587,  587,  587,
1539       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
1540        99,  850,   99,  850,   99,  850,   99,  850,  850,   99,
1541        99,  850,  270,  245,   99,  271,  271,  271,  271,  271,
1542       271,  336,  850,   99,  850,  101,  271,  271,  850,  850,
1543       850,   99,  270,   99,  591,  591,  591,  591,  591,  591,
1544 
1545       591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
1546       591,   99,  850,   99,  850,   99,  850,   99,  850,  850,
1547        99,   99,  850,  401,  245,   99,  402,  402,  402,  402,
1548       402,  402,  462,  850,   99,  850,  101,  402,  402,  850,
1549       850,  850,   99,  401,   99,  595,  595,  595,  595,  595,
1550       595,  595,  595,  595,  595,  595,  595,  595,  595,  595,
1551       595,  595,  166,  850,  166,  850,  850,  850,  850,  850,
1552       850,  850,  850,  850,  850,  850,  598,  598,  598,  598,
1553       598,  598,  850,  850,  850,  850,  850,  850,  850,  850,
1554       850,  850,  850,  850,  850,  850,  850,  850,  599,  223,
1555 
1556       850,  223,  850,  850,  850,  850,  850,  850,  224,  850,
1557       224,  850,  850,  600,  600,  600,  600,  600,  600,  153,
1558       850,  153,  850,  153,  850,  153,  850,  850,  153,  153,
1559       850,  153,  601,  850,  850,  850,  850,  850,  850,  850,
1560       850,  850,  153,  850,  154,  850,  850,  850,  850,  850,
1561       153,  153,  153,  153,  850,  153,  850,  153,  850,  153,
1562       850,  850,  153,  153,  850,  153,  597,  850,  850,  850,
1563       850,  850,  850,  850,  850,  850,  153,  850,  154,  850,
1564       850,  850,  850,  850,  153,  153,  153,   99,  850,   99,
1565       850,   99,  850,   99,  850,  850,   99,   99,  850,   99,
1566 
1567       601,  850,  850,  850,  850,  850,  850,  850,  850,  850,
1568        99,  850,  101,  850,  850,  850,  850,  850,   99,   99,
1569        99,  153,  850,  153,  850,  153,  850,  153,  850,  850,
1570       153,  153,  850,  163,  604,  602,  850,  850,  850,  850,
1571       850,  850,  850,  850,  153,  850,  154,  850,  850,  850,
1572       850,  850,  153,  163,  153,  601,  850,  606,  606,  606,
1573       606,  606,  606,  850,  850,  850,  850,  850,  850,  850,
1574       850,  850,  850,  607,  153,  850,  153,  850,  153,  850,
1575       153,  850,  850,  153,  153,  850,  163,  597,  602,  850,
1576       850,  850,  850,  850,  850,  850,  850,  153,  850,  154,
1577 
1578       850,  850,  850,  850,  850,  153,  163,  153,  604,  608,
1579       609,  609,  609,  609,  609,  609,  166,  850,  166,  850,
1580       850,  850,  850,  850,  850,  850,  850,  850,  612,  850,
1581       613,  613,  613,  613,  613,  613,  850,  850,  850,  850,
1582       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
1583       850,  850,  614,  223,  850,  223,  850,  850,  850,  850,
1584       850,  850,  283,  850,  285,  604,  850,  615,  615,  615,
1585       615,  615,  615,   99,  850,   99,  850,   99,  850,   99,
1586       850,  850,   99,   99,  850,  110,  617,  603,  618,  618,
1587       618,  618,  618,  618,  361,  850,   99,  850,  101,  619,
1588 
1589       619,  850,  850,  850,   99,  110,   99,  619,  619,  619,
1590       619,  619,  619,  619,  619,  619,  619,  619,  619,  619,
1591       619,  619,  619,  619,  604,  850,  619,  619,  619,  619,
1592       619,  619,  850,  153,  850,  153,  850,  153,  850,  153,
1593       850,  850,  153,  153,  850,  246,  604,  602,  850,  850,
1594       850,  850,  850,  850,  850,  850,  153,  850,  154,  850,
1595       850,  850,  850,  850,  153,  246,  153,  153,  850,  153,
1596       850,  153,  850,  153,  850,  850,  153,  153,  850,  246,
1597       604,  602,  850,  850,  850,  850,  850,  850,  850,  850,
1598       153,  850,  154,  850,  850,  850,  850,  850,  153,  246,
1599 
1600       153,  627,  627,  850,  850,  850,  850,  850,  850,  627,
1601       627,  627,  627,  627,  627,  627,  627,  627,  627,  627,
1602       627,  627,  627,  627,  627,  627,   99,  850,   99,  850,
1603        99,  850,   99,  850,  850,   99,   99,  850,  123,  628,
1604       603,  850,  850,  850,  850,  850,  850,  850,  850,   99,
1605       850,  101,  850,  850,  850,  850,  850,   99,  123,   99,
1606       630,  630,  630,  630,  630,  630,  630,  630,  630,  630,
1607       630,  630,  630,  630,  630,  630,  630,   99,  850,   99,
1608       850,   99,  850,   99,  850,  850,   99,   99,  850,  188,
1609       628,  603,  850,  850,  850,  850,  850,  850,  850,  850,
1610 
1611        99,  850,  101,  850,  850,  850,  850,  850,   99,  123,
1612        99,   99,  850,   99,  850,   99,  850,   99,  850,  850,
1613        99,   99,  850,  259,  245,   99,  260,  260,  260,  260,
1614       260,  260,  323,  850,   99,  850,  101,  260,  260,  850,
1615       850,  850,   99,  259,   99,  633,  633,  633,  633,  633,
1616       633,  633,  633,  633,  633,  633,  633,  633,  633,  633,
1617       633,  633,  123,  850,  850,  634,  634,  634,  634,  634,
1618       634,  263,  642,  642,  850,  850,  850,  850,  850,  850,
1619       642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
1620       642,  642,  642,  642,  642,  642,  642,   99,  850,   99,
1621 
1622       850,   99,  850,   99,  850,  850,   99,   99,  850,  389,
1623       245,   99,  390,  390,  390,  390,  390,  390,  453,  850,
1624        99,  850,  101,  390,  390,  850,  850,  850,   99,  389,
1625        99,  646,  646,  646,  646,  646,  646,  646,  646,  646,
1626       646,  646,  646,  646,  646,  646,  646,  646,   99,  850,
1627        99,  850,   99,  850,   99,  850,  850,   99,   99,  850,
1628       123,  245,   99,  647,  647,  647,  647,  647,  647,  850,
1629       850,   99,  850,  101,  647,  183,  850,  850,  850,   99,
1630       123,   99,  647,  647,  647,  647,  647,  183,  183,  183,
1631       183,  183,  183,  183,  183,  183,  183,  183,  183,   99,
1632 
1633       850,   99,  850,   99,  850,   99,  850,  850,   99,   99,
1634       850,  394,  245,   99,  395,  395,  395,  395,  395,  395,
1635       456,  850,   99,  850,  101,  395,  395,  850,  850,  850,
1636        99,  394,   99,  651,  651,  651,  651,  651,  651,  651,
1637       651,  651,  651,  651,  651,  651,  651,  651,  651,  651,
1638        99,  850,   99,  850,   99,  850,   99,  850,  850,   99,
1639        99,  850,  270,  245,   99,  271,  271,  271,  271,  271,
1640       271,  336,  850,   99,  850,  101,  271,  271,  850,  850,
1641       850,   99,  270,   99,  653,  653,  653,  653,  653,  653,
1642       653,  653,  653,  653,  653,  653,  653,  653,  653,  653,
1643 
1644       653,   99,  850,   99,  850,   99,  850,   99,  850,  850,
1645        99,   99,  850,  401,  245,   99,  402,  402,  402,  402,
1646       402,  402,  462,  850,   99,  850,  101,  402,  402,  850,
1647       850,  850,   99,  401,   99,  657,  657,  657,  657,  657,
1648       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,
1649       657,  657,  166,  850,  166,  850,  850,  850,  850,  850,
1650       850,  850,  850,  850,  850,  850,  660,  660,  660,  660,
1651       660,  660,  850,  850,  850,  850,  850,  850,  850,  850,
1652       850,  850,  850,  850,  850,  850,  850,  850,  661,  223,
1653       850,  223,  850,  850,  850,  850,  850,  850,  224,  850,
1654 
1655       224,  850,  850,  662,  662,  662,  662,  662,  662,  153,
1656       850,  153,  850,  153,  850,  153,  850,  850,  153,  153,
1657       850,  153,  659,  850,  850,  850,  850,  850,  850,  850,
1658       850,  850,  153,  850,  154,  850,  850,  850,  850,  850,
1659       153,  153,  153,  153,  850,  153,  850,  153,  850,  153,
1660       850,  850,  153,  153,  850,  153,  664,  850,  850,  850,
1661       850,  850,  850,  850,  850,  850,  153,  850,  154,  850,
1662       850,  850,  850,  850,  153,  153,  153,   99,  850,   99,
1663       850,   99,  850,   99,  850,  850,   99,   99,  850,   99,
1664       664,  850,  850,  850,  850,  850,  850,  850,  850,  850,
1665 
1666        99,  850,  101,  850,  850,  850,  850,  850,   99,   99,
1667        99,  153,  850,  153,  850,  153,  850,  153,  850,  850,
1668       153,  153,  850,  163,  659,  663,  850,  850,  850,  850,
1669       850,  850,  850,  850,  153,  850,  154,  850,  850,  850,
1670       850,  850,  153,  163,  153,  153,  850,  153,  850,  153,
1671       850,  153,  850,  850,  153,  153,  850,  163,  667,  663,
1672       850,  850,  850,  850,  850,  850,  850,  850,  153,  850,
1673       154,  850,  850,  850,  850,  850,  153,  163,  153,  669,
1674       850,  669,  100,  850,  670,  670,  670,  670,  670,  670,
1675       850,  850,  850,  850,  154,  166,  850,  166,  850,  850,
1676 
1677       850,  850,  850,  850,  850,  850,  850,  675,  850,  676,
1678       676,  676,  676,  676,  676,  850,  850,  850,  850,  850,
1679       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
1680       850,  677,  223,  850,  223,  850,  850,  850,  850,  850,
1681       850,  283,  850,  285,  850,  850,  678,  678,  678,  678,
1682       678,  678,   99,  850,   99,  850,   99,  850,   99,  850,
1683       850,   99,   99,  850,  110,  680,  665,  681,  681,  681,
1684       681,  681,  681,  361,  850,   99,  850,  101,  682,  682,
1685       850,  850,  850,   99,  110,   99,  682,  682,  682,  682,
1686       682,  682,  682,  682,  682,  682,  682,  682,  682,  682,
1687 
1688       682,  682,  682,  667,  850,  682,  682,  682,  682,  682,
1689       682,  850,  153,  850,  153,  850,  153,  850,  153,  850,
1690       850,  153,  153,  850,  246,  667,  663,  850,  850,  850,
1691       850,  850,  850,  850,  850,  153,  850,  154,  850,  850,
1692       850,  850,  850,  153,  246,  153,  153,  850,  153,  850,
1693       153,  850,  153,  850,  850,  153,  153,  850,  246,  667,
1694       663,  850,  850,  850,  850,  850,  850,  850,  850,  153,
1695       850,  154,  850,  850,  850,  850,  850,  153,  246,  153,
1696       153,  850,  153,  850,  153,  850,  153,  850,  850,  153,
1697       153,  850,  163,  659,  663,  666,  666,  666,  666,  666,
1698 
1699       666,  850,  850,  153,  850,  154,  688,  688,  850,  850,
1700       850,  153,  163,  153,  688,  688,  688,  688,  688,  688,
1701       688,  688,  688,  688,  688,  688,  688,  688,  688,  688,
1702       688,   99,  850,   99,  850,   99,  850,   99,  850,  850,
1703        99,   99,  850,  123,  689,  665,  850,  850,  850,  850,
1704       850,  850,  850,  850,   99,  850,  101,  850,  850,  850,
1705       850,  850,   99,  123,   99,  691,  691,  691,  691,  691,
1706       691,  691,  691,  691,  691,  691,  691,  691,  691,  691,
1707       691,  691,   99,  850,   99,  850,   99,  850,   99,  850,
1708       850,   99,   99,  850,  188,  689,  665,  850,  850,  850,
1709 
1710       850,  850,  850,  850,  850,   99,  850,  101,  850,  850,
1711       850,  850,  850,   99,  123,   99,  693,  693,  693,  693,
1712       693,  693,  693,  693,  693,  693,  693,  693,  693,  693,
1713       693,  693,  693,  123,  850,  850,  694,  694,  694,  694,
1714       694,  694,  263,  183,  183,  183,  183,  183,  183,  850,
1715       850,  850,  850,  850,  183,  850,  850,  850,  850,  850,
1716       850,  850,  183,  183,  183,  183,  183,  697,  697,  697,
1717       697,  697,  697,  697,  697,  697,  697,  697,  697,  697,
1718       697,  697,  697,  697,  698,  698,  698,  698,  698,  698,
1719       850,  850,  850,  850,  850,  698,  850,  850,  850,  850,
1720 
1721       850,  850,  850,  698,  698,  698,  698,  698,   99,  850,
1722        99,  850,   99,  850,   99,  850,  850,   99,   99,  850,
1723       394,  245,   99,  395,  395,  395,  395,  395,  395,  456,
1724       850,   99,  850,  101,  395,  395,  850,  850,  850,   99,
1725       394,   99,  701,  701,  701,  701,  701,  701,  701,  701,
1726       701,  701,  701,  701,  701,  701,  701,  701,  701,  703,
1727       703,  703,  703,  703,  703,  703,  703,  703,  703,  703,
1728       703,  703,  703,  703,  703,  703,  706,  706,  706,  706,
1729       706,  706,  706,  706,  706,  706,  706,  706,  706,  706,
1730       706,  706,  706,  166,  850,  166,  850,  850,  850,  850,
1731 
1732       850,  850,  850,  850,  850,  850,  850,  708,  708,  708,
1733       708,  708,  708,  850,  850,  850,  850,  850,  850,  850,
1734       850,  850,  850,  850,  850,  850,  850,  850,  850,  709,
1735       223,  850,  223,  850,  850,  850,  850,  850,  850,  224,
1736       850,  224,  850,  850,  710,  710,  710,  710,  710,  710,
1737       153,  850,  153,  850,  153,  850,  153,  850,  850,  153,
1738       153,  850,  153,  711,  850,  850,  850,  850,  850,  850,
1739       850,  850,  850,  153,  850,  154,  850,  850,  850,  850,
1740       850,  153,  153,  153,  153,  850,  153,  850,  153,  850,
1741       153,  850,  850,  153,  153,  850,  153,  707,  850,  850,
1742 
1743       850,  850,  850,  850,  850,  850,  850,  153,  850,  154,
1744       850,  850,  850,  850,  850,  153,  153,  153,   99,  850,
1745        99,  850,   99,  850,   99,  850,  850,   99,   99,  850,
1746        99,  711,  850,  850,  850,  850,  850,  850,  850,  850,
1747       850,   99,  850,  101,  850,  850,  850,  850,  850,   99,
1748        99,   99,  153,  850,  153,  850,  153,  850,  153,  850,
1749       850,  153,  153,  850,  163,  714,  712,  850,  850,  850,
1750       850,  850,  850,  850,  850,  153,  850,  154,  850,  850,
1751       850,  850,  850,  153,  163,  153,  153,  850,  153,  850,
1752       153,  850,  153,  850,  850,  153,  153,  850,  163,  707,
1753 
1754       712,  850,  850,  850,  850,  850,  850,  850,  850,  153,
1755       850,  154,  850,  850,  850,  850,  850,  153,  163,  153,
1756       711,  850,  716,  716,  716,  716,  716,  716,  850,  850,
1757       850,  850,  850,  850,  850,  850,  850,  850,  607,  717,
1758       100,  850,  670,  670,  670,  670,  670,  670,  850,  850,
1759       850,  850,  154,  714,  718,  719,  719,  719,  719,  719,
1760       719,  166,  850,  166,  850,  850,  850,  850,  850,  850,
1761       850,  850,  850,  722,  850,  723,  723,  723,  723,  723,
1762       723,  850,  850,  850,  850,  850,  850,  850,  850,  850,
1763       850,  850,  850,  850,  850,  850,  850,  724,  223,  850,
1764 
1765       223,  850,  850,  850,  850,  850,  850,  283,  850,  285,
1766       714,  850,  725,  725,  725,  725,  725,  725,   99,  850,
1767        99,  850,   99,  850,   99,  850,  850,   99,   99,  850,
1768       110,  727,  713,  728,  728,  728,  728,  728,  728,  361,
1769       850,   99,  850,  101,  729,  729,  850,  850,  850,   99,
1770       110,   99,  729,  729,  729,  729,  729,  729,  729,  729,
1771       729,  729,  729,  729,  729,  729,  729,  729,  729,  714,
1772       850,  729,  729,  729,  729,  729,  729,  850,  153,  850,
1773       153,  850,  153,  850,  153,  850,  850,  153,  153,  850,
1774       246,  714,  712,  850,  850,  850,  850,  850,  850,  850,
1775 
1776       850,  153,  850,  154,  850,  850,  850,  850,  850,  153,
1777       246,  153,  153,  850,  153,  850,  153,  850,  153,  850,
1778       850,  153,  153,  850,  246,  714,  712,  850,  850,  850,
1779       850,  850,  850,  850,  850,  153,  850,  154,  850,  850,
1780       850,  850,  850,  153,  246,  153,  737,  737,  850,  850,
1781       850,  850,  850,  850,  737,  737,  737,  737,  737,  737,
1782       737,  737,  737,  737,  737,  737,  737,  737,  737,  737,
1783       737,   99,  850,   99,  850,   99,  850,   99,  850,  850,
1784        99,   99,  850,  123,  738,  713,  850,  850,  850,  850,
1785       850,  850,  850,  850,   99,  850,  101,  850,  850,  850,
1786 
1787       850,  850,   99,  123,   99,  740,  740,  740,  740,  740,
1788       740,  740,  740,  740,  740,  740,  740,  740,  740,  740,
1789       740,  740,   99,  850,   99,  850,   99,  850,   99,  850,
1790       850,   99,   99,  850,  259,  245,   99,  260,  260,  260,
1791       260,  260,  260,  323,  850,   99,  850,  101,  260,  260,
1792       850,  850,  850,   99,  259,   99,  741,  741,  741,  741,
1793       741,  741,  741,  741,  741,  741,  741,  741,  741,  741,
1794       741,  741,  741,   99,  850,   99,  850,   99,  850,   99,
1795       850,  850,   99,   99,  850,  123,  738,  713,  742,  742,
1796       742,  742,  742,  742,  263,  850,   99,  850,  101,  739,
1797 
1798       739,  850,  850,  850,   99,  123,   99,  739,  739,  739,
1799       739,  739,  739,  739,  739,  739,  739,  739,  739,  739,
1800       739,  739,  739,  739,  745,  745,  745,  745,  745,  745,
1801       745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
1802       745,  746,  746,  746,  746,  746,  746,  850,  850,  850,
1803       850,  850,  746,  850,  850,  850,  850,  850,  850,  850,
1804       746,  746,  746,  746,  746,  749,  749,  749,  749,  749,
1805       749,  749,  749,  749,  749,  749,  749,  749,  749,  749,
1806       749,  749,  750,  750,  750,  750,  750,  750,  750,  750,
1807       750,  750,  750,  750,  750,  750,  750,  750,  750,  753,
1808 
1809       753,  753,  753,  753,  753,  753,  753,  753,  753,  753,
1810       753,  753,  753,  753,  753,  753,  166,  850,  166,  850,
1811       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
1812       755,  755,  755,  755,  755,  755,  850,  850,  850,  850,
1813       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
1814       850,  850,  756,  223,  850,  223,  850,  850,  850,  850,
1815       850,  850,  224,  850,  224,  850,  850,  757,  757,  757,
1816       757,  757,  757,  153,  850,  153,  850,  153,  850,  153,
1817       850,  850,  153,  153,  850,  153,  754,  850,  850,  850,
1818       850,  850,  850,  850,  850,  850,  153,  850,  154,  850,
1819 
1820       850,  850,  850,  850,  153,  153,  153,  153,  850,  153,
1821       850,  153,  850,  153,  850,  850,  153,  153,  850,  153,
1822       759,  850,  850,  850,  850,  850,  850,  850,  850,  850,
1823       153,  850,  154,  850,  850,  850,  850,  850,  153,  153,
1824       153,   99,  850,   99,  850,   99,  850,   99,  850,  850,
1825        99,   99,  850,   99,  759,  850,  850,  850,  850,  850,
1826       850,  850,  850,  850,   99,  850,  101,  850,  850,  850,
1827       850,  850,   99,   99,   99,  153,  850,  153,  850,  153,
1828       850,  153,  850,  850,  153,  153,  850,  163,  754,  758,
1829       850,  850,  850,  850,  850,  850,  850,  850,  153,  850,
1830 
1831       154,  850,  850,  850,  850,  850,  153,  163,  153,  153,
1832       850,  153,  850,  153,  850,  153,  850,  850,  153,  153,
1833       850,  163,  762,  758,  850,  850,  850,  850,  850,  850,
1834       850,  850,  153,  850,  154,  850,  850,  850,  850,  850,
1835       153,  163,  153,  166,  850,  166,  850,  850,  850,  850,
1836       850,  850,  850,  850,  850,  769,  850,  770,  770,  770,
1837       770,  770,  770,  850,  850,  850,  850,  850,  850,  850,
1838       850,  850,  850,  850,  850,  850,  850,  850,  850,  771,
1839       223,  850,  223,  850,  850,  850,  850,  850,  850,  283,
1840       850,  285,  850,  850,  772,  772,  772,  772,  772,  772,
1841 
1842        99,  850,   99,  850,   99,  850,   99,  850,  850,   99,
1843        99,  850,  110,  774,  760,  775,  775,  775,  775,  775,
1844       775,  361,  850,   99,  850,  101,  776,  776,  850,  850,
1845       850,   99,  110,   99,  776,  776,  776,  776,  776,  776,
1846       776,  776,  776,  776,  776,  776,  776,  776,  776,  776,
1847       776,  762,  850,  776,  776,  776,  776,  776,  776,  850,
1848       153,  850,  153,  850,  153,  850,  153,  850,  850,  153,
1849       153,  850,  246,  762,  758,  850,  850,  850,  850,  850,
1850       850,  850,  850,  153,  850,  154,  850,  850,  850,  850,
1851       850,  153,  246,  153,  153,  850,  153,  850,  153,  850,
1852 
1853       153,  850,  850,  153,  153,  850,  246,  762,  758,  850,
1854       850,  850,  850,  850,  850,  850,  850,  153,  850,  154,
1855       850,  850,  850,  850,  850,  153,  246,  153,  153,  850,
1856       153,  850,  153,  850,  153,  850,  850,  153,  153,  850,
1857       163,  754,  758,  761,  761,  761,  761,  761,  761,  850,
1858       850,  153,  850,  154,  782,  782,  850,  850,  850,  153,
1859       163,  153,  782,  782,  782,  782,  782,  782,  782,  782,
1860       782,  782,  782,  782,  782,  782,  782,  782,  782,   99,
1861       850,   99,  850,   99,  850,   99,  850,  850,   99,   99,
1862       850,  123,  783,  760,  850,  850,  850,  850,  850,  850,
1863 
1864       850,  850,   99,  850,  101,  850,  850,  850,  850,  850,
1865        99,  123,   99,  260,  260,  260,  260,  260,  260,  260,
1866       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,
1867        99,  850,   99,  850,   99,  850,   99,  850,  850,   99,
1868        99,  850,  123,  783,  760,  785,  785,  785,  785,  785,
1869       785,  263,  850,   99,  850,  101,  784,  784,  850,  850,
1870       850,   99,  123,   99,  784,  784,  784,  784,  784,  784,
1871       784,  784,  784,  784,  784,  784,  784,  784,  784,  784,
1872       784,  789,  789,  789,  789,  789,  789,  789,  789,  789,
1873       789,  789,  789,  789,  789,  789,  789,  789,  790,  790,
1874 
1875       790,  790,  790,  790,  850,  850,  850,  850,  850,  790,
1876       850,  850,  850,  850,  850,  850,  850,  790,  790,  790,
1877       790,  790,  794,  794,  794,  794,  794,  794,  794,  794,
1878       794,  794,  794,  794,  794,  794,  794,  794,  794,  271,
1879       271,  271,  271,  271,  271,  271,  271,  271,  271,  271,
1880       271,  271,  271,  271,  271,  271,  798,  798,  798,  798,
1881       798,  798,  798,  798,  798,  798,  798,  798,  798,  798,
1882       798,  798,  798,  153,  850,  850,  153,  153,  153,  153,
1883       153,  153,  153,  850,  153,  850,  153,  850,  153,  850,
1884       850,  153,  153,  850,  850,  130,  153,  850,  850,  850,
1885 
1886       850,  850,  850,  850,  850,  153,  850,  154,  850,  850,
1887       850,  850,  850,  153,  850,  153,  153,  850,  153,  850,
1888       153,  850,  153,  850,  850,  153,  153,  850,  850,  850,
1889       153,  850,  850,  850,  850,  850,  850,  850,  850,  153,
1890       850,  154,  850,  850,  850,  850,  850,  153,  850,  153,
1891       153,  850,  850,  800,  800,  800,  800,  800,  800,  850,
1892       850,  850,  850,  850,  850,  850,  850,  850,  850,  607,
1893       130,  801,  802,  802,  802,  802,  802,  802,  166,  850,
1894       166,  850,  850,  850,  850,  850,  850,  850,  850,  850,
1895       805,  850,  806,  806,  806,  806,  806,  806,  850,  850,
1896 
1897       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
1898       850,  850,  850,  850,  218,  223,  850,  223,  850,  850,
1899       850,  850,  850,  850,  283,  850,  285,  130,  850,  286,
1900       286,  286,  286,  286,  286,   99,  850,   99,  850,   99,
1901       850,   99,  850,  850,   99,   99,  850,  110,  808,   99,
1902       809,  809,  809,  809,  809,  809,  361,  850,   99,  850,
1903       101,  110,  110,  850,  850,  850,   99,  110,   99,  110,
1904       110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
1905       110,  110,  110,  110,  110,  110,  130,  850,  110,  110,
1906       110,  110,  110,  110,  850,  153,  850,  153,  850,  153,
1907 
1908       850,  153,  850,  850,  153,  153,  850,  246,  130,  153,
1909       850,  850,  850,  850,  850,  850,  850,  850,  153,  850,
1910       154,  850,  850,  850,  850,  850,  153,  246,  153,  153,
1911       850,  153,  850,  153,  850,  153,  850,  850,  153,  153,
1912       850,  246,  130,  153,  850,  850,  850,  850,  850,  850,
1913       850,  850,  153,  850,  154,  850,  850,  850,  850,  850,
1914       153,  246,  153,  313,  313,  850,  850,  850,  850,  850,
1915       850,  313,  313,  313,  313,  313,  313,  313,  313,  313,
1916       313,  313,  313,  313,  313,  313,  313,  313,  817,  817,
1917       817,  817,  817,  817,  817,  817,  817,  817,  817,  817,
1918 
1919       817,  817,  817,  817,  817,  818,  818,  818,  818,  818,
1920       818,  850,  850,  850,  850,  850,  818,  850,  850,  850,
1921       850,  850,  850,  850,  818,  818,  818,  818,  818,  819,
1922       819,  819,  819,  819,  819,  819,  819,  819,  819,  819,
1923       819,  819,  819,  819,  819,  819,  820,  820,  820,  820,
1924       820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
1925       820,  820,  820,  390,  390,  390,  390,  390,  390,  390,
1926       390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
1927       826,  826,  826,  826,  826,  826,  850,  850,  850,  850,
1928       850,  826,  850,  850,  850,  850,  850,  850,  850,  826,
1929 
1930       826,  826,  826,  826,  395,  395,  395,  395,  395,  395,
1931       395,  395,  395,  395,  395,  395,  395,  395,  395,  395,
1932       395,  402,  402,  402,  402,  402,  402,  402,  402,  402,
1933       402,  402,  402,  402,  402,  402,  402,  402,   18,   18,
1934        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1935        18,   18,   18,   18,   18,   24,   24,   24,   24,   24,
1936        24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
1937        24,   24,   28,   28,   28,   28,   28,   28,   28,   28,
1938        28,   28,   28,   28,   28,   28,   28,   28,   28,   38,
1939        38,   38,   38,   38,   38,   38,   38,   38,   38,   38,
1940 
1941        38,   38,   38,   38,   38,   38,   41,   41,   41,   41,
1942        41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
1943        41,   41,   41,   64,   64,   64,   64,   64,   64,   64,
1944        64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
1945        71,   71,  850,   71,   71,   71,   71,   71,   71,   71,
1946        71,   71,   71,   71,   71,   71,   71,   75,  850,  850,
1947        75,   75,  850,   75,   75,   75,   75,   77,   77,  850,
1948        77,  850,   77,   77,   77,   77,   77,   77,   77,   77,
1949        77,   77,   77,   77,   78,   78,   78,   78,   78,   78,
1950        78,   78,   78,   78,   78,   78,   78,   78,   78,   78,
1951 
1952        78,   91,   91,  850,   91,   91,   91,   91,   91,   91,
1953        91,   91,   91,   91,   91,   91,   91,   91,   94,   94,
1954       850,   94,   94,   94,   94,   94,   94,   94,   94,   94,
1955        94,   94,   94,   94,   94,   96,   96,  850,   96,   96,
1956        96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
1957        96,   96,   97,  850,  850,  850,   97,   97,   97,   97,
1958        97,   97,   97,   97,   97,   97,   97,   97,   97,   98,
1959        98,  850,   98,   98,   98,   98,   98,   98,   98,   98,
1960        98,   98,   98,   98,   98,   98,   99,  850,   99,  850,
1961       850,  850,   99,   99,   99,   99,   99,  850,   99,   99,
1962 
1963        99,   99,   99,  104,  104,  850,  850,  850,  104,  104,
1964       104,  104,  104,  104,  104,  850,  104,  104,  104,  104,
1965       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
1966       105,  105,  105,  105,  105,  105,  105,  113,  113,  113,
1967       850,  850,  113,  113,  850,  113,  116,  850,  116,  850,
1968       850,  850,  116,  116,  116,  116,  116,  850,  116,  116,
1969       116,  116,  116,  141,  141,  850,  141,  141,  141,  141,
1970       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
1971       153,  850,  153,  850,  850,  850,  153,  153,  850,  153,
1972       153,  850,  153,  153,  153,  153,  153,  158,  158,  158,
1973 
1974       158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
1975       158,  158,  158,  158,  165,  165,  165,  850,  850,  165,
1976       165,  850,  165,  169,  850,  169,  850,  850,  850,  169,
1977       169,  169,  169,  169,  850,  169,  169,  169,  169,  169,
1978       171,  850,  171,  850,  850,  850,  171,  171,  171,  171,
1979       171,  850,  171,  171,  171,  171,  171,  182,  182,  850,
1980       850,  182,  850,  850,  182,  183,  850,  183,  850,  850,
1981       850,  183,  183,  183,  183,  183,  850,  183,  183,  183,
1982       183,  183,  141,  141,  850,  141,  141,  141,  141,  141,
1983       141,  141,  141,  141,  141,  141,  141,  141,  141,  219,
1984 
1985       219,  219,  850,  850,  219,  219,  850,  219,  227,  850,
1986       227,  850,  850,  850,  227,  227,  227,  227,  227,  850,
1987       227,  227,  227,  227,  227,  228,  850,  228,  850,  850,
1988       850,  228,  228,  228,  228,  228,  850,  228,  228,  228,
1989       228,  228,  243,  243,  243,  850,  243,  850,  850,  243,
1990       247,  850,  247,  850,  850,  850,  247,  247,  247,  247,
1991       247,  850,  247,  247,  247,  247,  247,  277,  850,  277,
1992       850,  850,  850,  277,  277,  850,  277,  277,  850,  277,
1993       277,  277,  277,  277,  279,  850,  850,  279,  850,  850,
1994       279,  279,  279,  279,  287,  287,  287,  850,  850,  287,
1995 
1996       287,  850,  287,  288,  850,  288,  850,  850,  288,  288,
1997       850,  850,  288,  292,  850,  292,  850,  850,  850,  292,
1998       292,  292,  292,  292,  850,  292,  292,  292,  292,  292,
1999       294,  850,  294,  850,  850,  850,  294,  294,  294,  294,
2000       294,  850,  294,  294,  294,  294,  294,  307,  307,  850,
2001       307,  850,  850,  307,  311,  311,  311,  850,  311,  850,
2002       850,  311,  312,  850,  850,  312,  850,  850,  312,  314,
2003       850,  314,  850,  850,  850,  314,  314,  314,  314,  314,
2004       850,  314,  314,  314,  314,  314,  315,  850,  315,  850,
2005       850,  850,  315,  315,  315,  315,  315,  850,  315,  315,
2006 
2007       315,  315,  315,  318,  850,  318,  850,  850,  850,  318,
2008       318,  318,  318,  318,  318,  318,  318,  318,  318,  318,
2009       260,  850,  260,  850,  850,  850,  260,  260,  260,  260,
2010       260,  850,  260,  260,  260,  260,  260,  271,  850,  271,
2011       850,  850,  850,  271,  271,  271,  271,  271,  850,  271,
2012       271,  271,  271,  271,   99,  850,   99,  850,  850,  850,
2013        99,   99,   99,   99,   99,  850,   99,   99,   99,   99,
2014        99,  277,  850,  277,  850,  850,  850,  277,  277,  277,
2015       277,  277,  850,  277,  277,  277,  277,  277,  279,  279,
2016       850,  279,  850,  850,  279,  279,  279,  279,  153,  850,
2017 
2018       153,  850,  850,  850,  153,  153,  153,  153,  153,  850,
2019       153,  153,  153,  153,  153,  344,  344,  344,  850,  850,
2020       344,  344,  850,  344,  349,  850,  349,  850,  850,  850,
2021       349,  349,  349,  349,  349,  850,  349,  349,  349,  349,
2022       349,  350,  850,  350,  850,  850,  850,  350,  350,  350,
2023       350,  350,  850,  350,  350,  350,  350,  350,  365,  365,
2024       850,  365,  850,  850,  365,  367,  367,  367,  850,  367,
2025       850,  850,  367,  368,  368,  368,  850,  368,  850,  850,
2026       368,  314,  850,  314,  850,  850,  850,  314,  314,  314,
2027       314,  314,  850,  314,  314,  314,  314,  314,  370,  850,
2028 
2029       370,  850,  850,  850,  370,  370,  370,  370,  370,  850,
2030       370,  370,  370,  370,  370,  373,  850,  373,  850,  850,
2031       850,  373,  373,  373,  373,  373,  850,  373,  373,  373,
2032       373,  373,  406,  850,  850,  406,  850,  850,  406,  406,
2033       406,  406,  409,  409,  409,  850,  850,  409,  409,  850,
2034       409,  413,  850,  413,  850,  850,  850,  413,  413,  413,
2035       413,  413,  850,  413,  413,  413,  413,  413,  415,  850,
2036       415,  850,  850,  850,  415,  415,  415,  415,  415,  850,
2037       415,  415,  415,  415,  415,  429,  429,  850,  429,  850,
2038       850,  429,  430,  430,  850,  430,  850,  850,  430,  431,
2039 
2040       431,  431,  850,  431,  850,  850,  431,  432,  850,  850,
2041       432,  850,  850,  432,  433,  850,  433,  850,  850,  850,
2042       433,  433,  433,  433,  433,  850,  433,  433,  433,  433,
2043       433,  436,  850,  436,  850,  850,  850,  436,  436,  436,
2044       436,  436,  850,  436,  436,  436,  436,  436,  468,  468,
2045       468,  850,  850,  468,  468,  850,  468,  473,  850,  473,
2046       850,  850,  850,  473,  473,  473,  473,  473,  850,  473,
2047       473,  473,  473,  473,  474,  850,  474,  850,  850,  850,
2048       474,  474,  474,  474,  474,  850,  474,  474,  474,  474,
2049       474,  488,  488,  850,  488,  850,  850,  488,  489,  489,
2050 
2051       850,  489,  850,  850,  489,  491,  491,  491,  850,  491,
2052       850,  850,  491,  492,  492,  492,  850,  492,  850,  850,
2053       492,  494,  850,  494,  850,  850,  850,  494,  494,  494,
2054       494,  494,  850,  494,  494,  494,  494,  494,  497,  850,
2055       497,  850,  850,  850,  497,  497,  497,  497,  497,  850,
2056       497,  497,  497,  497,  497,  508,  850,  850,  508,  850,
2057       850,  508,  508,  508,  508,  513,  850,  850,  513,  850,
2058       850,  513,  513,  513,  513,  536,  536,  536,  850,  850,
2059       536,  536,  850,  536,  540,  850,  540,  850,  850,  850,
2060       540,  540,  540,  540,  540,  850,  540,  540,  540,  540,
2061 
2062       540,  542,  850,  542,  850,  850,  850,  542,  542,  542,
2063       542,  542,  850,  542,  542,  542,  542,  542,  543,  850,
2064       543,  850,  850,  850,  543,  543,  543,  543,  543,  850,
2065       543,  543,  543,  543,  543,  558,  558,  850,  558,  850,
2066       850,  558,  559,  559,  850,  559,  850,  850,  559,  560,
2067       560,  560,  850,  560,  850,  850,  560,  561,  850,  850,
2068       561,  850,  850,  561,  562,  850,  562,  850,  850,  850,
2069       562,  562,  562,  562,  562,  850,  562,  562,  562,  562,
2070       562,  565,  850,  565,  850,  850,  850,  565,  565,  565,
2071       565,  565,  850,  565,  565,  565,  565,  565,  570,  850,
2072 
2073       850,  570,  850,  850,  570,  570,  570,  570,  508,  850,
2074       850,  508,  850,  850,  508,  508,  508,  508,  513,  850,
2075       850,  513,  850,  850,  513,  513,  513,  513,  590,  850,
2076       850,  590,  850,  850,  590,  590,  590,  590,  597,  597,
2077       597,  850,  850,  597,  597,  850,  597,  602,  850,  602,
2078       850,  850,  850,  602,  602,  602,  602,  602,  850,  602,
2079       602,  602,  602,  602,  603,  850,  603,  850,  850,  850,
2080       603,  603,  603,  603,  603,  850,  603,  603,  603,  603,
2081       603,  605,  850,  605,  850,  850,  850,  605,  605,  605,
2082       605,  605,  850,  605,  605,  605,  605,  605,  616,  850,
2083 
2084       616,  850,  850,  850,  850,  850,  850,  616,  620,  620,
2085       850,  620,  850,  850,  620,  621,  621,  850,  621,  850,
2086       850,  621,  623,  623,  623,  850,  623,  850,  850,  623,
2087       624,  624,  624,  850,  624,  850,  850,  624,  626,  850,
2088       626,  850,  850,  850,  626,  626,  626,  626,  626,  850,
2089       626,  626,  626,  626,  626,  629,  850,  629,  850,  850,
2090       850,  629,  629,  629,  629,  629,  850,  629,  629,  629,
2091       629,  629,  570,  850,  850,  570,  850,  850,  570,  570,
2092       570,  570,  636,  850,  850,  636,  850,  850,  636,  636,
2093       636,  636,  639,  850,  850,  639,  850,  850,  639,  639,
2094 
2095       639,  639,  641,  850,  850,  641,  850,  850,  641,  641,
2096       641,  641,  590,  850,  850,  590,  850,  850,  590,  590,
2097       590,  590,  406,  850,  850,  406,  850,  850,  406,  406,
2098       406,  406,  659,  659,  659,  850,  850,  659,  659,  850,
2099       659,  663,  850,  663,  850,  850,  850,  663,  663,  663,
2100       663,  663,  850,  663,  663,  663,  663,  663,  665,  850,
2101       665,  850,  850,  850,  665,  665,  665,  665,  665,  850,
2102       665,  665,  665,  665,  665,  666,  850,  666,  850,  850,
2103       850,  666,  666,  666,  666,  666,  850,  666,  666,  666,
2104       666,  666,  153,  850,  153,  850,  850,  850,  153,  153,
2105 
2106       153,  153,  153,  850,  153,  153,  153,  153,  153,  683,
2107       683,  850,  683,  850,  850,  683,  684,  684,  850,  684,
2108       850,  850,  684,  685,  685,  685,  850,  685,  850,  850,
2109       685,  686,  850,  850,  686,  850,  850,  686,  687,  850,
2110       687,  850,  850,  850,  687,  687,  687,  687,  687,  850,
2111       687,  687,  687,  687,  687,  690,  850,  690,  850,  850,
2112       850,  690,  690,  690,  690,  690,  850,  690,  690,  690,
2113       690,  690,  707,  707,  707,  850,  850,  707,  707,  850,
2114       707,  712,  850,  712,  850,  850,  850,  712,  712,  712,
2115       712,  712,  850,  712,  712,  712,  712,  712,  713,  850,
2116 
2117       713,  850,  850,  850,  713,  713,  713,  713,  713,  850,
2118       713,  713,  713,  713,  713,  715,  850,  715,  850,  850,
2119       850,  715,  715,  715,  715,  715,  850,  715,  715,  715,
2120       715,  715,  153,  850,  153,  850,  850,  850,  153,  153,
2121       153,  153,  153,  850,  153,  153,  153,  153,  153,  730,
2122       730,  850,  730,  850,  850,  730,  731,  731,  850,  731,
2123       850,  850,  731,  733,  733,  733,  850,  733,  850,  850,
2124       733,  734,  734,  734,  850,  734,  850,  850,  734,  736,
2125       850,  736,  850,  850,  850,  736,  736,  736,  736,  736,
2126       850,  736,  736,  736,  736,  736,  739,  850,  739,  850,
2127 
2128       850,  850,  739,  739,  739,  739,  739,  850,  739,  739,
2129       739,  739,  739,  754,  754,  754,  850,  850,  754,  754,
2130       850,  754,  758,  850,  758,  850,  850,  850,  758,  758,
2131       758,  758,  758,  850,  758,  758,  758,  758,  758,  760,
2132       850,  760,  850,  850,  850,  760,  760,  760,  760,  760,
2133       850,  760,  760,  760,  760,  760,  761,  850,  761,  850,
2134       850,  850,  761,  761,  761,  761,  761,  850,  761,  761,
2135       761,  761,  761,  777,  777,  850,  777,  850,  850,  777,
2136       778,  778,  850,  778,  850,  850,  778,  779,  779,  779,
2137       850,  779,  850,  850,  779,  780,  850,  850,  780,  850,
2138 
2139       850,  780,  781,  850,  781,  850,  850,  850,  781,  781,
2140       781,  781,  781,  850,  781,  781,  781,  781,  781,  784,
2141       850,  784,  850,  850,  850,  784,  784,  784,  784,  784,
2142       850,  784,  784,  784,  784,  784,  787,  850,  850,  787,
2143       850,  850,  787,  787,  787,  787,  793,  850,  850,  793,
2144       850,  850,  793,  793,  793,  793,  797,  850,  850,  797,
2145       850,  850,  797,  797,  797,  797,  799,  850,  799,  850,
2146       850,  850,  850,  850,  850,  799,  850,  850,  850,  850,
2147       850,  799,  288,  850,  288,  850,  850,  288,  288,  850,
2148       850,  288,   99,  850,   99,  850,  850,  850,   99,   99,
2149 
2150        99,   99,   99,  850,   99,   99,   99,   99,   99,  163,
2151       850,  163,  850,  850,  850,  163,  163,  163,  163,  163,
2152       850,  163,  163,  163,  163,  163,  810,  810,  850,  810,
2153       850,  850,  810,  811,  811,  850,  811,  850,  850,  811,
2154       813,  813,  813,  850,  813,  850,  850,  813,  814,  814,
2155       814,  850,  814,  850,  850,  814,  314,  850,  314,  850,
2156       850,  850,  314,  314,  314,  314,  314,  850,  314,  314,
2157       314,  314,  314,  822,  822,  850,  822,  850,  850,  822,
2158       823,  823,  850,  823,  850,  850,  823,  824,  824,  824,
2159       850,  824,  850,  850,  824,  825,  850,  850,  825,  850,
2160 
2161       850,  825,  828,  828,  850,  828,  850,  850,  828,  830,
2162       830,  850,  850,  830,  850,  850,  830,  831,  831,  831,
2163       850,  831,  850,  850,  831,  832,  832,  850,  850,  832,
2164       850,  850,  832,  836,  836,  850,  850,  836,  850,  850,
2165       836,  837,  837,  850,  850,  837,  850,  850,  837,  842,
2166       842,  850,  850,  842,  850,  850,  842,  843,  843,  850,
2167       850,  843,  850,  850,  843,   17,  850,  850,  850,  850,
2168       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
2169       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
2170       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
2171 
2172       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
2173       850,  850,  850,  850,  850,  850,  850
2174     } ;
2175 
2176 static yyconst short int yy_chk[12718] =
2177     {   0,
2178         0,    0,    1,   14,   14,   14,    1,    2,    2,    2,
2179         3,    4,    2,    3,    4,    7,    7,    7,    0,   23,
2180         7,    8,    8,    8,  846,   29,    8,   29,   23,    9,
2181         9,    9,    2,    2,    9,   34,   34,    3,    4,   23,
2182         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
2183         2,    2,    2,    2,    2,    2,    2,    5,    5,    5,
2184         5,  267,    5,    5,  267,    5,    5,  843,    5,    5,
2185         5,   10,   10,   10,   36,   36,   10,   44,    5,    5,
2186         5,   21,   21,   21,    5,    6,    6,    6,    6,   44,
2187         6,    6,   99,    6,    6,   60,    6,    6,    6,   39,
2188 
2189        30,   39,   30,   60,   99,   30,    6,    6,    6,   30,
2190        62,   62,    6,   11,   11,   11,   11,   11,   11,   11,
2191        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
2192        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
2193        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
2194        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
2195        11,   11,   11,   11,   15,  842,   15,   15,   15,   15,
2196        15,   15,   42,   43,   42,   43,   45,   59,   45,   59,
2197       329,  329,   15,   16,  837,   16,   16,   16,   16,   16,
2198        16,   52,   52,   52,   52,   52,   52,   66,   66,   66,
2199 
2200       102,   16,   27,   27,   27,   27,   27,   27,   46,   61,
2201        46,   61,  102,   46,   72,   72,   72,   46,   61,   74,
2202        46,   86,   27,   86,   95,   27,   95,   98,   74,   98,
2203        27,  836,   46,   27,  182,   27,   48,   48,   48,   74,
2204        48,  182,   48,   48,  418,  418,   48,   58,   48,   58,
2205        58,   58,   58,   58,   58,  266,   48,   48,  832,   48,
2206        48,  269,  103,   48,   48,   48,   50,   75,   50,   50,
2207        50,   50,   50,   50,  103,  148,   75,  148,   50,   51,
2208       266,   51,  390,   51,  830,   51,  269,   75,   51,   51,
2209       390,   51,   51,   51,   51,   51,   51,   51,   51,   51,
2210 
2211       828,  166,   51,  166,   51,   51,   51,   87,   87,   87,
2212        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
2213        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
2214        53,  243,   53,  146,   53,  825,   53,  166,  243,   53,
2215        53,  323,   53,   53,   68,  146,   68,   68,   68,   68,
2216        68,   68,  323,   53,  456,   53,  142,  142,  142,  147,
2217       153,   53,   53,   53,   54,  456,   54,  395,   54,  823,
2218        54,  147,  153,   54,   54,  395,   54,   54,   54,   54,
2219        54,   54,   54,   54,   54,   54,  532,   54,  532,   54,
2220        54,   54,  151,  151,  151,   54,   54,   54,   54,   54,
2221 
2222        54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
2223        54,   54,   54,   54,   54,   56,  311,   56,  273,   56,
2224       554,   56,  554,  311,   56,   56,  822,   56,   56,   56,
2225        56,   56,   56,   56,   56,   56,   56,  312,   56,  812,
2226        56,   56,   56,  273,  312,  811,   56,   56,   56,   56,
2227        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
2228        56,   56,   56,   56,   56,   56,   57,   57,   57,   57,
2229        57,   57,   57,  810,  445,  328,  807,   57,   69,   69,
2230        69,   69,   69,   69,  328,   57,   57,   57,   57,   57,
2231        70,  801,   70,   70,  445,   70,   70,   70,   70,   70,
2232 
2233        70,   79,   79,   79,   79,   79,   79,   80,   80,   80,
2234        80,   80,   80,  101,  367,  101,  402,  101,  833,  101,
2235       833,  367,  101,  101,  402,  101,  101,  101,  101,  101,
2236       101,  101,  101,  101,  368,  431,  101,  795,  101,  101,
2237       101,  368,  431,  791,  101,  101,  101,  101,  101,  101,
2238       101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
2239       101,  101,  101,  101,  105,  105,  105,  788,  105,  450,
2240       105,  105,  479,  479,  105,  110,  105,  110,  110,  110,
2241       110,  110,  110,  502,  105,  105,  778,  105,  105,  450,
2242       393,  105,  105,  105,  106,  106,  106,  777,  106,  393,
2243 
2244       106,  106,  765,  502,  106,  751,  106,  126,  126,  126,
2245       126,  126,  126,  432,  106,  106,  747,  106,  106,  744,
2246       432,  106,  106,  106,  107,  107,  107,  107,  107,  107,
2247       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
2248       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
2249       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
2250       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
2251       107,  107,  107,  107,  107,  108,  108,  108,  108,  108,
2252       108,  732,  220,  453,  220,  108,  111,  453,  111,  731,
2253       111,  220,  111,  220,  453,  111,  111,  730,  111,  705,
2254 
2255       111,  111,  111,  111,  111,  111,  111,  491,  492,  111,
2256       704,  111,  111,  111,  491,  492,  702,  111,  111,  111,
2257       111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
2258       111,  111,  111,  111,  111,  111,  111,  114,  336,  114,
2259       130,  130,  130,  130,  130,  130,  164,  700,  164,  336,
2260       336,  114,  114,  114,  114,  114,  114,  131,  164,  507,
2261       131,  131,  131,  131,  131,  131,  145,  145,  145,  145,
2262       145,  145,  522,  114,  115,  512,  115,  699,  115,  507,
2263       115,  522,  164,  115,  115,  696,  115,  115,  149,  149,
2264       149,  149,  149,  149,  695,  512,  755,  115,  755,  115,
2265 
2266       223,  174,  223,  174,  462,  115,  115,  115,  116,  223,
2267       116,  223,  116,  174,  116,  462,  462,  116,  116,  692,
2268       116,  116,  150,  150,  150,  150,  150,  150,  560,  508,
2269       526,  116,  755,  116,  225,  560,  225,  174,  508,  116,
2270       116,  116,  117,  225,  117,  225,  117,  684,  117,  508,
2271       526,  117,  117,  683,  117,  117,  117,  117,  117,  117,
2272       117,  117,  117,  548,  548,  117,  679,  117,  117,  117,
2273       673,  673,  671,  117,  117,  117,  117,  117,  117,  117,
2274       117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
2275       117,  117,  117,  118,  561,  118,  656,  118,  655,  118,
2276 
2277       652,  561,  118,  118,  650,  118,  118,  118,  118,  118,
2278       118,  118,  118,  118,  118,  623,  118,  649,  118,  118,
2279       118,  645,  623,  644,  118,  118,  118,  118,  118,  118,
2280       118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
2281       118,  118,  118,  118,  119,  119,  119,  119,  119,  119,
2282       119,  767,  767,  637,  155,  119,  155,  155,  155,  155,
2283       155,  155,  624,  119,  119,  119,  119,  119,  120,  624,
2284       120,  120,  120,  120,  120,  120,  120,  121,  121,  121,
2285       121,  121,  121,  121,  569,  632,  513,  160,  121,  160,
2286       160,  160,  160,  160,  160,  513,  121,  121,  121,  121,
2287 
2288       121,  123,  685,  123,  569,  123,  513,  123,  622,  685,
2289       123,  123,  621,  123,  123,  123,  163,  620,  163,  163,
2290       163,  163,  163,  163,  123,  594,  123,  291,  234,  291,
2291       234,  593,  123,  123,  123,  124,  291,  124,  291,  124,
2292       234,  124,  588,  574,  124,  124,  586,  124,  124,  124,
2293       124,  124,  124,  124,  124,  124,  585,  799,  124,  799,
2294       124,  124,  124,  574,  234,  581,  124,  124,  124,  124,
2295       124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
2296       124,  124,  124,  124,  124,  124,  125,  580,  125,  575,
2297       125,  571,  125,  799,  576,  125,  125,  559,  125,  125,
2298 
2299       125,  125,  125,  125,  125,  125,  125,  125,  686,  125,
2300       558,  125,  125,  125,  576,  686,  546,  125,  125,  125,
2301       125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
2302       125,  125,  125,  125,  125,  125,  125,  127,  534,  127,
2303       530,  127,  529,  127,  528,  577,  127,  127,  525,  127,
2304       127,  127,  127,  127,  127,  127,  127,  127,  127,  733,
2305       127,  521,  127,  127,  127,  577,  733,  518,  127,  127,
2306       127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
2307       127,  127,  127,  127,  127,  127,  127,  127,  128,  128,
2308       128,  128,  128,  128,  128,  803,  803,  517,  516,  128,
2309 
2310       179,  179,  179,  179,  179,  179,  514,  128,  128,  128,
2311       128,  128,  129,  129,  129,  129,  129,  129,  129,  589,
2312       511,  570,  510,  129,  181,  181,  181,  181,  181,  181,
2313       570,  129,  129,  129,  129,  129,  154,  635,  154,  589,
2314       154,  570,  154,  509,  638,  154,  154,  504,  154,  154,
2315       154,  154,  154,  154,  154,  154,  154,  635,  734,  154,
2316       490,  154,  154,  154,  638,  734,  489,  154,  154,  154,
2317       154,  154,  154,  154,  154,  154,  154,  154,  154,  154,
2318       154,  154,  154,  154,  154,  154,  154,  158,  158,  158,
2319       488,  158,  640,  158,  158,  460,  459,  158,  189,  158,
2320 
2321       451,  189,  189,  189,  189,  189,  189,  158,  158,  449,
2322       158,  158,  640,  448,  158,  158,  158,  159,  159,  159,
2323       159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
2324       159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
2325       159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
2326       159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
2327       159,  159,  159,  159,  159,  159,  159,  159,  162,  192,
2328       162,  743,  192,  192,  192,  192,  192,  192,  447,  301,
2329       162,  301,  162,  162,  162,  162,  162,  162,  301,  442,
2330       301,  743,  162,  205,  205,  205,  205,  205,  205,  310,
2331 
2332       310,  310,  310,  310,  162,  167,  590,  167,  207,  207,
2333       207,  207,  207,  207,  430,  590,  429,  421,  407,  167,
2334       167,  167,  167,  167,  167,  208,  590,  208,  208,  208,
2335       208,  208,  208,  212,  212,  212,  212,  212,  212,  406,
2336       669,  167,  168,  213,  168,  213,  213,  213,  213,  213,
2337       213,  168,  669,  168,  399,  760,  168,  168,  168,  168,
2338       168,  168,  169,  779,  169,  398,  169,  760,  169,  397,
2339       779,  169,  169,  387,  169,  169,  216,  216,  216,  216,
2340       216,  216,  386,  636,  748,  169,  385,  169,  347,  302,
2341       347,  302,  636,  169,  169,  169,  170,  347,  170,  347,
2342 
2343       170,  302,  170,  636,  748,  170,  170,  384,  170,  170,
2344       224,  224,  224,  224,  224,  224,  780,  639,  752,  170,
2345       383,  170,  358,  780,  358,  302,  639,  170,  170,  170,
2346       171,  358,  171,  358,  171,  379,  171,  639,  752,  171,
2347       171,  378,  171,  171,  231,  366,  231,  231,  231,  231,
2348       231,  231,  786,  171,  365,  171,  364,  359,  334,  359,
2349       333,  171,  171,  171,  172,  172,  172,  172,  172,  359,
2350       172,  327,  786,  172,  172,  326,  172,  172,  172,  172,
2351       172,  172,  172,  172,  172,  813,  307,  172,  297,  172,
2352       172,  172,  813,  359,  279,  172,  172,  172,  172,  172,
2353 
2354       172,  172,  172,  172,  172,  172,  172,  172,  172,  172,
2355       172,  172,  172,  172,  172,  173,  274,  173,  233,  233,
2356       233,  233,  233,  233,  268,  258,  239,  173,  237,  173,
2357       173,  173,  173,  173,  173,  240,  240,  240,  240,  240,
2358       240,  241,  241,  241,  241,  241,  241,  214,  412,  209,
2359       412,  173,  175,  203,  175,  202,  175,  412,  175,  412,
2360       792,  175,  175,  200,  175,  175,  175,  175,  175,  175,
2361       175,  175,  175,  175,  814,  175,  199,  175,  175,  175,
2362       792,  814,  198,  175,  175,  175,  175,  175,  175,  175,
2363       175,  175,  175,  175,  175,  175,  175,  175,  175,  175,
2364 
2365       175,  175,  175,  176,  197,  176,  176,  176,  176,  176,
2366       176,  176,  177,  177,  177,  177,  177,  177,  177,  196,
2367       195,  180,  161,  177,  242,  242,  242,  242,  242,  242,
2368       157,  177,  177,  177,  177,  177,  178,  178,  178,  178,
2369       178,  178,  178,  796,  156,  641,  144,  178,  254,  254,
2370       254,  254,  254,  254,  641,  178,  178,  178,  178,  178,
2371       183,  824,  183,  796,  183,  641,  183,  140,  824,  183,
2372       183,  139,  183,  183,  183,  255,  255,  255,  255,  255,
2373       255,  787,  138,  183,  137,  183,  424,  425,  424,  425,
2374       787,  183,  183,  183,  184,  424,  184,  424,  184,  425,
2375 
2376       184,  787,  136,  184,  184,  135,  184,  184,  184,  256,
2377       256,  256,  256,  256,  256,  256,  134,  184,  133,  184,
2378       471,  132,  471,  425,  122,  184,  184,  184,  185,  471,
2379       185,  471,  185,  104,  185,  100,   93,  185,  185,   92,
2380       185,  185,  185,  185,  185,  185,  185,  185,  185,  831,
2381        63,  185,   55,  185,  185,  185,  831,   37,   35,  185,
2382       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
2383       185,  185,  185,  185,  185,  185,  185,  185,  185,  186,
2384        33,  186,   31,  186,   17,  186,   13,    0,  186,  186,
2385         0,  186,  186,  186,  186,  186,  186,  186,  186,  186,
2386 
2387       186,    0,  186,    0,  186,  186,  186,    0,    0,    0,
2388       186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
2389       186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
2390       187,  187,  187,  187,  187,  187,  187,    0,    0,    0,
2391         0,  187,  257,  257,  257,  257,  257,  257,  257,  187,
2392       187,  187,  187,  187,  188,  262,  262,  262,  262,  262,
2393       262,  262,  263,    0,  264,    0,  263,  264,  264,  264,
2394       264,  264,  264,  263,  263,  188,  188,  188,  188,  188,
2395       188,  188,  188,  188,  188,  188,  188,  188,  188,  188,
2396       188,  188,  190,    0,  190,    0,  190,    0,  190,    0,
2397 
2398         0,  190,  190,    0,  190,  190,  190,  190,  190,  190,
2399       190,  190,  190,  190,    0,  190,    0,  190,  190,  190,
2400         0,    0,    0,  190,  190,  190,  190,  190,  190,  190,
2401       190,  190,  190,  190,  190,  190,  190,  190,  190,  190,
2402       190,  190,  190,  191,  191,  191,  191,  191,  191,  191,
2403         0,    0,  793,    0,  191,  275,  275,  275,  275,  275,
2404       275,  793,  191,  191,  191,  191,  191,  193,    0,  193,
2405         0,  193,  793,  193,    0,    0,  193,  193,    0,  193,
2406       193,  193,  193,  193,  193,  193,  193,  193,    0,    0,
2407       193,    0,  193,  193,  193,    0,    0,    0,  193,  193,
2408 
2409       193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
2410       193,  193,  193,  193,  193,  193,  193,  193,  194,    0,
2411         0,  194,  194,  194,  194,  194,  194,  194,  201,    0,
2412       201,    0,  201,    0,  201,    0,    0,  201,  201,    0,
2413       201,  201,  201,  201,  201,  201,  201,  201,  201,    0,
2414         0,  201,    0,  201,  201,  201,    0,    0,    0,  201,
2415       201,  201,  201,  201,  201,  201,  201,  201,  201,  201,
2416       201,  201,  201,  201,  201,  201,  201,  201,  201,  206,
2417         0,  206,  797,    0,  206,  206,  206,  206,  206,  206,
2418       210,  797,  210,    0,  210,    0,  210,    0,    0,  210,
2419 
2420       210,    0,  797,  280,  210,  280,  280,  280,  280,  280,
2421       280,    0,    0,  210,    0,  210,  484,  485,  484,  485,
2422       555,  210,  555,  210,  211,  484,  211,  484,  211,  485,
2423       211,    0,  555,  211,  211,    0,    0,    0,  211,  211,
2424       211,  211,  211,  211,  211,    0,    0,  211,    0,  211,
2425         0,    0,    0,  485,    0,  211,  555,  211,  215,  215,
2426       215,  215,  215,  215,  215,  215,  215,  215,  215,  215,
2427       215,  215,  215,  215,  215,  215,  215,  215,  215,  215,
2428       215,  215,  215,  215,  215,  215,  215,  215,  215,  215,
2429       215,  215,  215,  215,  215,  215,  215,  215,  215,  215,
2430 
2431       215,  215,  215,  215,  215,  215,  215,  215,  215,  217,
2432       282,  217,  282,  282,  282,  282,  282,  282,  217,    0,
2433       217,    0,    0,  217,  217,  217,  217,  217,  217,  288,
2434       288,  288,  288,  288,  288,  296,    0,  296,  296,  296,
2435       296,  296,  296,    0,    0,  217,  218,  300,  218,  300,
2436       300,  300,  300,  300,  300,  218,    0,  218,  218,    0,
2437       218,  218,  218,  218,  218,  218,  221,    0,  221,  306,
2438       306,  306,  306,  306,  306,  841,  841,  841,  841,  841,
2439       221,  221,  221,  221,  221,  221,  309,  309,  309,  309,
2440       309,  309,  321,  321,  321,  321,  321,  321,    0,    0,
2441 
2442         0,    0,  221,  222,    0,  222,  322,  322,  322,  322,
2443       322,  322,  222,    0,  222,    0,    0,  222,  222,  222,
2444       222,  222,  222,  226,    0,  226,    0,  226,    0,  226,
2445         0,    0,  226,  226,    0,  226,  226,  325,  325,  325,
2446       325,  325,  325,  325,    0,    0,  226,    0,  226,  539,
2447       617,  539,  617,    0,  226,  226,  226,  227,  539,  227,
2448       539,  227,  617,  227,    0,    0,  227,  227,    0,  227,
2449       227,  339,  339,  339,  339,  339,  339,    0,    0,    0,
2450       227,    0,  227,  553,    0,  553,  617,    0,  227,  227,
2451       227,  228,  553,  228,  553,  228,    0,  228,    0,    0,
2452 
2453       228,  228,    0,  228,  228,  340,    0,  340,  340,  340,
2454       340,  340,  340,    0,  228,    0,  228,  600,  680,  600,
2455       680,    0,  228,  228,  228,  229,  600,  229,  600,  229,
2456       680,  229,    0,    0,  229,  229,    0,  229,  229,  229,
2457       229,  229,  229,  229,  229,  229,    0,    0,  229,    0,
2458       229,  229,  229,    0,  680,    0,  229,  229,  229,  229,
2459       229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
2460       229,  229,  229,  229,  229,  229,  230,    0,  230,  342,
2461       342,  342,  342,  342,  342,    0,    0,    0,  230,    0,
2462       230,  230,  230,  230,  230,  230,  343,    0,  343,  343,
2463 
2464       343,  343,  343,  343,  352,    0,  352,  352,  352,  352,
2465       352,  352,  230,  232,  353,  232,  353,  353,  353,  353,
2466       353,  353,  232,    0,  232,  232,    0,  232,  232,  232,
2467       232,  232,  232,  235,    0,  235,    0,  235,    0,  235,
2468         0,    0,  235,  235,    0,  235,  235,  235,  235,  235,
2469       235,  235,  235,  235,  235,    0,  235,    0,  235,  235,
2470       235,    0,    0,    0,  235,  235,  235,  235,  235,  235,
2471       235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
2472       235,  235,  235,  235,  236,    0,  236,  236,  236,  236,
2473       236,  236,  236,  238,  238,  238,  238,  238,  238,  238,
2474 
2475         0,    0,    0,    0,  238,  354,  354,  354,  354,  354,
2476       354,    0,  238,  238,  238,  238,  238,  245,    0,  245,
2477         0,  245,    0,  245,    0,    0,  245,  245,    0,  245,
2478         0,  245,  245,  245,  245,  245,  245,  245,    0,    0,
2479       245,    0,  245,  245,  245,    0,    0,    0,  245,  245,
2480       245,  245,  245,  245,  245,  245,  245,  245,  245,  245,
2481       245,  245,  245,  245,  245,  245,  245,  245,  246,    0,
2482       246,    0,  246,    0,  246,    0,    0,  246,  246,    0,
2483       246,  246,  246,  355,  355,  355,  355,  355,  355,    0,
2484         0,  246,    0,  246,  615,  727,  615,  727,    0,  246,
2485 
2486       246,  246,  247,  615,  247,  615,  247,  727,  247,    0,
2487         0,  247,  247,    0,  247,  247,  247,  361,  361,  361,
2488       361,  361,  361,    0,    0,  247,    0,  247,  662,    0,
2489       662,  727,    0,  247,  247,  247,  248,  662,  248,  662,
2490       248,    0,  248,    0,    0,  248,  248,    0,  248,  248,
2491       248,  363,  363,  363,  363,  363,  363,  363,    0,  248,
2492         0,  248,  678,  774,  678,  774,    0,  248,  248,  248,
2493       249,  678,  249,  678,  249,  774,  249,    0,    0,  249,
2494       249,    0,  249,  249,  249,  249,  249,  249,  249,  249,
2495       249,    0,    0,  249,    0,  249,  249,  249,    0,  774,
2496 
2497         0,  249,  249,  249,  249,  249,  249,  249,  249,  249,
2498       249,  249,  249,  249,  249,  249,  249,  249,  249,  249,
2499       249,  250,    0,  250,    0,  250,    0,  250,    0,    0,
2500       250,  250,    0,  250,  250,  250,  376,  376,  376,  376,
2501       376,  376,  250,    0,  250,    0,  250,  710,    0,  710,
2502         0,    0,  250,  250,  250,  251,  710,  251,  710,  251,
2503         0,  251,    0,    0,  251,  251,    0,  251,  251,  251,
2504       377,  377,  377,  377,  377,  377,  251,    0,  251,    0,
2505       251,  725,    0,  725,    0,    0,  251,  251,  251,  252,
2506       725,  252,  725,  252,    0,  252,    0,    0,  252,  252,
2507 
2508         0,  252,  252,  252,  252,  252,  252,  252,  252,  252,
2509         0,    0,  252,    0,  252,  252,  252,    0,    0,    0,
2510       252,  252,  252,  252,  252,  252,  252,  252,  252,  252,
2511       252,  252,  252,  252,  252,  252,  252,  252,  252,  252,
2512       253,    0,    0,  253,  253,  253,  253,  253,  253,  253,
2513       259,    0,  259,    0,  259,    0,  259,    0,    0,  259,
2514       259,    0,  259,  259,  259,  381,  381,  381,  381,  381,
2515       381,  381,    0,  259,    0,  259,  756,    0,  756,    0,
2516         0,  259,  259,  259,  260,  756,  260,  756,  260,    0,
2517       260,    0,    0,  260,  260,    0,  260,  260,  260,  404,
2518 
2519       404,  404,  404,  404,  404,  260,    0,  260,    0,  260,
2520         0,    0,    0,    0,    0,  260,  260,  260,  261,  261,
2521       261,  261,  261,  261,  261,  261,  261,  261,  261,  261,
2522       261,  261,  261,  261,  261,  265,    0,    0,  265,  265,
2523       265,  265,  265,  265,  382,    0,    0,  382,  382,  382,
2524       382,  382,  382,  417,  417,  417,  417,  417,  417,  417,
2525       265,  270,    0,  270,    0,  270,    0,  270,    0,    0,
2526       270,  270,    0,  270,  270,  270,  405,    0,  405,  405,
2527       405,  405,  405,  405,  270,    0,  270,  772,    0,  772,
2528         0,    0,  270,  270,  270,  271,  772,  271,  772,  271,
2529 
2530         0,  271,    0,    0,  271,  271,    0,  271,  271,  271,
2531       428,  428,  428,  428,  428,  428,  271,    0,  271,    0,
2532       271,    0,    0,    0,    0,    0,  271,  271,  271,  272,
2533       272,  272,  272,  272,  272,  272,  272,  272,  272,  272,
2534       272,  272,  272,  272,  272,  272,  276,    0,  276,  276,
2535       276,  276,  276,  276,    0,  838,    0,  838,  276,  277,
2536         0,  277,    0,  277,  838,  277,  838,    0,  277,  277,
2537         0,    0,  277,  277,  408,    0,  408,  408,  408,  408,
2538       408,  408,  277,    0,  277,    0,    0,    0,    0,    0,
2539       277,    0,  277,  278,    0,  278,    0,  278,    0,  278,
2540 
2541         0,    0,  278,  278,    0,    0,  278,  278,  278,  278,
2542       278,  278,  278,  278,    0,    0,  278,    0,  278,    0,
2543         0,    0,    0,    0,  278,    0,  278,  281,  281,  281,
2544       281,  281,  281,  281,  281,  281,  281,  281,  281,  281,
2545       281,  281,  281,  281,  281,  281,  281,  281,  281,  281,
2546       281,  281,  281,  281,  281,  281,  281,  281,  281,  281,
2547       281,  281,  281,  281,  281,  281,  281,  281,  281,  281,
2548       281,  281,  281,  281,  281,  281,  281,  281,  283,    0,
2549       283,  283,  283,  283,  283,  283,    0,    0,    0,    0,
2550       283,  284,    0,  284,  284,  284,  284,  284,  284,    0,
2551 
2552         0,    0,    0,  284,  285,    0,  285,    0,  285,    0,
2553       285,    0,    0,  285,  285,    0,  285,  285,  285,  285,
2554       285,  285,  285,  285,  285,    0,    0,  285,    0,  285,
2555       285,  285,    0,    0,    0,  285,  285,  285,  285,  285,
2556       285,  285,  285,  285,  285,  285,  285,  285,  285,  285,
2557       285,  285,  285,  285,  285,  289,  420,  289,  420,  420,
2558       420,  420,  420,  420,    0,    0,    0,    0,    0,  289,
2559       289,  289,  289,  289,  289,  439,  439,  439,  439,  439,
2560       439,  440,  440,  440,  440,  440,  440,    0,    0,    0,
2561         0,  289,  290,    0,  290,  458,  458,  458,  458,  458,
2562 
2563       458,  290,    0,  290,    0,    0,  290,  290,  290,  290,
2564       290,  290,  292,    0,  292,    0,  292,    0,  292,    0,
2565         0,  292,  292,  441,  292,  292,  441,  441,  441,  441,
2566       441,  441,    0,    0,    0,  292,    0,  292,    0,    0,
2567         0,    0,    0,  292,  292,  292,  293,    0,  293,    0,
2568       293,    0,  293,    0,    0,  293,  293,    0,  293,  293,
2569       444,  444,  444,  444,  444,  444,  444,    0,    0,  293,
2570         0,  293,    0,    0,    0,    0,    0,  293,  293,  293,
2571       294,    0,  294,    0,  294,    0,  294,    0,    0,  294,
2572       294,    0,  294,  294,  446,  446,  446,  446,  446,  446,
2573 
2574       446,    0,    0,  294,    0,  294,    0,    0,    0,    0,
2575         0,  294,  294,  294,  295,    0,  295,    0,  295,    0,
2576       295,    0,    0,  295,  295,    0,  295,  295,  295,  295,
2577       295,  295,  295,  295,  295,    0,    0,  295,    0,  295,
2578       295,  295,    0,    0,    0,  295,  295,  295,  295,  295,
2579       295,  295,  295,  295,  295,  295,  295,  295,  295,  295,
2580       295,  295,  295,  295,  295,  298,    0,  298,  464,  464,
2581       464,  464,  464,  464,    0,    0,    0,  298,    0,  298,
2582       298,  298,  298,  298,  298,  465,    0,  465,  465,  465,
2583       465,  465,  465,  466,  466,  466,  466,  466,  466,    0,
2584 
2585         0,  298,  299,  467,  299,  467,  467,  467,  467,  467,
2586       467,  299,    0,  299,  299,    0,  299,  299,  299,  299,
2587       299,  299,  303,    0,  303,    0,  303,    0,  303,    0,
2588         0,  303,  303,    0,  303,  303,  303,  303,  303,  303,
2589       303,  303,  303,  303,    0,  303,    0,  303,  303,  303,
2590         0,    0,    0,  303,  303,  303,  303,  303,  303,  303,
2591       303,  303,  303,  303,  303,  303,  303,  303,  303,  303,
2592       303,  303,  303,  304,    0,  304,  304,  304,  304,  304,
2593       304,  304,  305,  305,  305,  305,  305,  305,  305,    0,
2594         0,    0,    0,  305,  476,  476,  476,  476,  476,  476,
2595 
2596         0,  305,  305,  305,  305,  305,  313,    0,  313,    0,
2597       313,    0,  313,    0,    0,  313,  313,    0,  313,  313,
2598       313,  480,    0,  480,  480,  480,  480,  480,  480,  313,
2599         0,  313,    0,    0,    0,    0,    0,  313,  313,  313,
2600       314,    0,  314,    0,  314,    0,  314,    0,    0,  314,
2601       314,    0,  314,  314,  314,  481,    0,  481,  481,  481,
2602       481,  481,  481,  314,    0,  314,    0,    0,    0,    0,
2603         0,  314,  314,  314,  315,    0,  315,    0,  315,    0,
2604       315,    0,    0,  315,  315,    0,  315,  315,  315,  500,
2605       500,  500,  500,  500,  500,    0,    0,  315,    0,  315,
2606 
2607         0,    0,    0,    0,    0,  315,  315,  315,  316,    0,
2608       316,    0,  316,    0,  316,    0,    0,  316,  316,    0,
2609       316,  316,  316,  501,  501,  501,  501,  501,  501,    0,
2610         0,  316,    0,  316,    0,    0,    0,    0,    0,  316,
2611       316,  316,  317,    0,  317,    0,  317,    0,  317,    0,
2612         0,  317,  317,    0,  317,  317,  317,  317,  317,  317,
2613       317,  317,  317,    0,    0,  317,    0,  317,  317,  317,
2614         0,    0,    0,  317,  317,  317,  317,  317,  317,  317,
2615       317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
2616       317,  317,  317,  318,    0,  318,    0,  318,    0,  318,
2617 
2618         0,    0,  318,  318,    0,  318,  318,  318,  503,  503,
2619       503,  503,  503,  503,  503,    0,  318,    0,  318,    0,
2620         0,    0,    0,    0,  318,  318,  318,  319,    0,  319,
2621         0,  319,    0,  319,    0,    0,  319,  319,    0,  319,
2622       319,  319,  319,  319,  319,  319,  319,  319,    0,    0,
2623       319,    0,  319,  319,  319,    0,    0,    0,  319,  319,
2624       319,  319,  319,  319,  319,  319,  319,  319,  319,  319,
2625       319,  319,  319,  319,  319,  319,  319,  319,  320,    0,
2626       320,    0,  320,    0,  320,    0,    0,  320,  320,    0,
2627       320,  320,  320,  320,  320,  320,  320,  320,  320,    0,
2628 
2629         0,  320,    0,  320,  320,  320,    0,    0,    0,  320,
2630       320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
2631       320,  320,  320,  320,  320,  320,  320,  320,  320,  324,
2632         0,  324,    0,  324,    0,  324,    0,    0,  324,  324,
2633         0,  324,  324,  324,  324,  324,  324,  324,  324,  324,
2634       324,    0,  324,    0,  324,  324,  324,    0,    0,    0,
2635       324,  324,  324,  324,  324,  324,  324,  324,  324,  324,
2636       324,  324,  324,  324,  324,  324,  324,  324,  324,  324,
2637       330,    0,  330,    0,  330,    0,  330,    0,    0,  330,
2638       330,    0,  330,  330,  330,  330,  330,  330,  330,  330,
2639 
2640       330,    0,    0,  330,    0,  330,  330,  330,    0,    0,
2641         0,  330,  330,  330,  330,  330,  330,  330,  330,  330,
2642       330,  330,  330,  330,  330,  330,  330,  330,  330,  330,
2643       330,  331,    0,  331,    0,  331,    0,  331,    0,    0,
2644       331,  331,    0,  331,  331,  331,  506,  506,  506,  506,
2645       506,  506,  506,    0,  331,    0,  331,    0,    0,    0,
2646         0,    0,  331,  331,  331,  332,    0,  332,    0,  332,
2647         0,  332,    0,    0,  332,  332,    0,  332,  332,  332,
2648       332,  332,  332,  332,  332,  332,    0,    0,  332,    0,
2649       332,  332,  332,    0,    0,    0,  332,  332,  332,  332,
2650 
2651       332,  332,  332,  332,  332,  332,  332,  332,  332,  332,
2652       332,  332,  332,  332,  332,  332,  335,    0,  335,    0,
2653       335,    0,  335,    0,    0,  335,  335,    0,  335,  335,
2654       335,  335,  335,  335,  335,  335,  335,    0,    0,  335,
2655         0,  335,  335,  335,    0,    0,    0,  335,  335,  335,
2656       335,  335,  335,  335,  335,  335,  335,  335,  335,  335,
2657       335,  335,  335,  335,  335,  335,  335,  337,    0,  337,
2658         0,  337,    0,  337,    0,    0,  337,  337,    0,  337,
2659       337,  337,  337,  337,  337,  337,  337,  337,  337,    0,
2660       337,    0,  337,  337,  337,    0,    0,    0,  337,  337,
2661 
2662       337,  337,  337,  337,  337,  337,  337,  337,  337,  337,
2663       337,  337,  337,  337,  337,  337,  337,  337,  338,    0,
2664       338,    0,  338,    0,  338,    0,    0,  338,  338,    0,
2665       338,  338,  338,  338,  338,  338,  338,  338,  338,    0,
2666         0,  338,    0,  338,  338,  338,    0,    0,    0,  338,
2667       338,  338,  338,  338,  338,  338,  338,  338,  338,  338,
2668       338,  338,  338,  338,  338,  338,  338,  338,  338,  345,
2669         0,  345,  524,  524,  524,  524,  524,  524,  524,    0,
2670         0,    0,    0,  345,  345,  345,  345,  345,  345,  533,
2671         0,  533,  533,  533,  533,  533,  533,  535,  535,  535,
2672 
2673       535,  535,  535,    0,    0,  345,  346,  549,  346,  549,
2674       549,  549,  549,  549,  549,  346,    0,  346,    0,    0,
2675       346,  346,  346,  346,  346,  346,  348,    0,  348,    0,
2676       348,    0,  348,    0,    0,  348,  348,    0,  348,  348,
2677       550,  550,  550,  550,  550,  550,    0,    0,    0,  348,
2678         0,  348,    0,    0,    0,    0,    0,  348,  348,  348,
2679       349,    0,  349,    0,  349,    0,  349,    0,    0,  349,
2680       349,    0,  349,  349,  568,  568,  568,  568,  568,  568,
2681         0,    0,    0,  349,    0,  349,    0,    0,    0,    0,
2682         0,  349,  349,  349,  350,    0,  350,    0,  350,    0,
2683 
2684       350,    0,    0,  350,  350,    0,  350,  350,  579,  579,
2685       579,  579,  579,  579,    0,    0,    0,  350,    0,  350,
2686         0,    0,    0,    0,    0,  350,  350,  350,  351,    0,
2687       351,    0,  351,    0,  351,    0,    0,  351,  351,    0,
2688       351,  351,  351,  351,  351,  351,  351,  351,  351,    0,
2689         0,  351,    0,  351,  351,  351,    0,    0,    0,  351,
2690       351,  351,  351,  351,  351,  351,  351,  351,  351,  351,
2691       351,  351,  351,  351,  351,  351,  351,  351,  351,  356,
2692         0,  356,  584,  584,  584,  584,  584,  584,    0,    0,
2693         0,  356,    0,  356,  356,  356,  356,  356,  356,  592,
2694 
2695       592,  592,  592,  592,  592,  596,  596,  596,  596,  596,
2696       596,    0,    0,    0,    0,  356,  357,    0,  357,  608,
2697       608,  608,  608,  608,  608,  357,    0,  357,  357,    0,
2698       357,  357,  357,  357,  357,  357,  360,    0,  360,    0,
2699       360,    0,  360,    0,    0,  360,  360,    0,  360,  360,
2700       360,  360,  360,  360,  360,  360,  360,  360,    0,  360,
2701         0,  360,  360,  360,    0,    0,    0,  360,  360,  360,
2702       360,  360,  360,  360,  360,  360,  360,  360,  360,  360,
2703       360,  360,  360,  360,  360,  360,  360,  362,    0,  362,
2704       362,  362,  362,  362,  362,  362,  370,    0,  370,    0,
2705 
2706       370,    0,  370,    0,    0,  370,  370,    0,  370,  370,
2707       370,  609,  609,  609,  609,  609,  609,  609,    0,  370,
2708         0,  370,    0,    0,    0,    0,    0,  370,  370,  370,
2709       371,    0,  371,    0,  371,    0,  371,    0,    0,  371,
2710       371,    0,  371,  371,  371,  610,    0,  610,  610,  610,
2711       610,  610,  610,  371,    0,  371,    0,    0,    0,    0,
2712         0,  371,  371,  371,  372,    0,  372,    0,  372,    0,
2713       372,    0,    0,  372,  372,    0,  372,  372,  372,  372,
2714       372,  372,  372,  372,  372,    0,    0,  372,    0,  372,
2715       372,  372,    0,    0,    0,  372,  372,  372,  372,  372,
2716 
2717       372,  372,  372,  372,  372,  372,  372,  372,  372,  372,
2718       372,  372,  372,  372,  372,  373,    0,  373,    0,  373,
2719         0,  373,    0,    0,  373,  373,    0,  373,  373,  373,
2720       611,    0,  611,  611,  611,  611,  611,  611,  373,    0,
2721       373,    0,    0,    0,    0,    0,  373,  373,  373,  374,
2722       374,  374,  374,  374,  374,  374,  374,  374,  374,  374,
2723       374,  374,  374,  374,  374,  374,  375,    0,  375,    0,
2724       375,    0,  375,    0,    0,  375,  375,    0,  375,  375,
2725       375,  375,  375,  375,  375,  375,  375,    0,    0,  375,
2726         0,  375,  375,  375,    0,    0,    0,  375,  375,  375,
2727 
2728       375,  375,  375,  375,  375,  375,  375,  375,  375,  375,
2729       375,  375,  375,  375,  375,  375,  375,  380,  380,  380,
2730       380,  380,  380,  380,  380,  380,  380,  380,  380,  380,
2731       380,  380,  380,  380,  388,    0,  388,    0,  388,    0,
2732       388,    0,    0,  388,  388,    0,  388,  388,  388,  388,
2733       388,  388,  388,  388,  388,    0,    0,  388,    0,  388,
2734       388,  388,    0,    0,    0,  388,  388,  388,  388,  388,
2735       388,  388,  388,  388,  388,  388,  388,  388,  388,  388,
2736       388,  388,  388,  388,  388,  389,  389,  389,  389,  389,
2737       389,  389,  389,  389,  389,  389,  389,  389,  389,  389,
2738 
2739       389,  389,  391,  606,  606,  606,  606,  606,  606,  612,
2740       391,  612,  612,  612,  612,  612,  612,    0,    0,  606,
2741         0,    0,    0,  391,  391,  391,  391,  391,  391,  391,
2742       391,  391,  391,  391,  391,  391,  391,  391,  391,  391,
2743       392,    0,  392,    0,  392,    0,  392,    0,    0,  392,
2744       392,    0,  392,  392,  392,  616,  616,  616,  616,  616,
2745       616,  392,    0,  392,    0,  392,    0,    0,    0,    0,
2746         0,  392,  392,  392,  394,  394,  394,  394,  394,  394,
2747       394,  394,  394,  394,  394,  394,  394,  394,  394,  394,
2748       394,  396,  643,  643,  643,  643,  643,  643,  643,  396,
2749 
2750       648,  648,  648,  648,  648,  648,  648,    0,    0,    0,
2751         0,    0,  396,  396,  396,  396,  396,  396,  396,  396,
2752       396,  396,  396,  396,  396,  396,  396,  396,  396,  400,
2753       400,  400,  400,  400,  400,  400,  400,  400,  400,  400,
2754       400,  400,  400,  400,  400,  400,  401,  401,  401,  401,
2755       401,  401,  401,  401,  401,  401,  401,  401,  401,  401,
2756       401,  401,  401,  403,  654,  654,  654,  654,  654,  654,
2757       654,  403,  658,    0,  658,  658,  658,  658,  658,  658,
2758         0,    0,    0,    0,  403,  403,  403,  403,  403,  403,
2759       403,  403,  403,  403,  403,  403,  403,  403,  403,  403,
2760 
2761       403,  410,  674,  410,  674,  674,  674,  674,  674,  674,
2762         0,    0,    0,    0,    0,  410,  410,  410,  410,  410,
2763       410,  675,  675,  675,  675,  675,  675,  716,  716,  716,
2764       716,  716,  716,    0,    0,    0,    0,  410,  411,    0,
2765       411,    0,    0,  716,    0,    0,    0,  411,    0,  411,
2766         0,    0,  411,  411,  411,  411,  411,  411,  413,    0,
2767       413,    0,  413,    0,  413,    0,    0,  413,  413,  717,
2768       413,  413,  717,  717,  717,  717,  717,  717,    0,    0,
2769         0,  413,    0,  413,    0,    0,    0,    0,    0,  413,
2770       413,  413,  414,    0,  414,    0,  414,    0,  414,    0,
2771 
2772         0,  414,  414,    0,  414,  414,  718,  718,  718,  718,
2773       718,  718,    0,    0,    0,  414,    0,  414,    0,    0,
2774         0,    0,    0,  414,  414,  414,  415,    0,  415,    0,
2775       415,    0,  415,    0,    0,  415,  415,    0,  415,  415,
2776       719,  719,  719,  719,  719,  719,  719,    0,    0,  415,
2777         0,  415,    0,    0,    0,    0,    0,  415,  415,  415,
2778       416,    0,  416,    0,  416,    0,  416,    0,    0,  416,
2779       416,    0,  416,  416,  416,  416,  416,  416,  416,  416,
2780       416,    0,    0,  416,    0,  416,  416,  416,    0,    0,
2781         0,  416,  416,  416,  416,  416,  416,  416,  416,  416,
2782 
2783       416,  416,  416,  416,  416,  416,  416,  416,  416,  416,
2784       416,  419,  419,  419,  419,  419,  419,  419,  419,  422,
2785       720,  422,  720,  720,  720,  720,  720,  720,    0,    0,
2786         0,  422,    0,  422,  422,  422,  422,  422,  422,  721,
2787         0,  721,  721,  721,  721,  721,  721,  722,    0,  722,
2788       722,  722,  722,  722,  722,  422,  423,    0,  423,  726,
2789       726,  726,  726,  726,  726,  423,    0,  423,  423,    0,
2790       423,  423,  423,  423,  423,  423,  426,    0,  426,    0,
2791       426,    0,  426,    0,    0,  426,  426,    0,  426,  426,
2792       426,  426,  426,  426,  426,  426,  426,  426,    0,  426,
2793 
2794         0,  426,  426,  426,    0,    0,    0,  426,  426,  426,
2795       426,  426,  426,  426,  426,  426,  426,  426,  426,  426,
2796       426,  426,  426,  426,  426,  426,  426,  427,    0,  427,
2797       427,  427,  427,  427,  427,  427,  433,    0,  433,    0,
2798       433,    0,  433,    0,    0,  433,  433,    0,  433,  433,
2799       433,  757,  757,  757,  757,  757,  757,    0,    0,  433,
2800         0,  433,    0,    0,    0,    0,    0,  433,  433,  433,
2801       434,    0,  434,    0,  434,    0,  434,    0,    0,  434,
2802       434,    0,  434,  434,  434,  768,    0,  768,  768,  768,
2803       768,  768,  768,  434,    0,  434,    0,    0,    0,    0,
2804 
2805         0,  434,  434,  434,  435,    0,  435,    0,  435,    0,
2806       435,    0,    0,  435,  435,    0,  435,  435,  435,  435,
2807       435,  435,  435,  435,  435,    0,    0,  435,    0,  435,
2808       435,  435,    0,    0,    0,  435,  435,  435,  435,  435,
2809       435,  435,  435,  435,  435,  435,  435,  435,  435,  435,
2810       435,  435,  435,  435,  435,  436,    0,  436,    0,  436,
2811         0,  436,    0,    0,  436,  436,    0,  436,  436,  436,
2812       769,  769,  769,  769,  769,  769,    0,    0,  436,    0,
2813       436,    0,    0,    0,    0,    0,  436,  436,  436,  437,
2814         0,  437,    0,  437,    0,  437,    0,    0,  437,  437,
2815 
2816         0,  437,  437,  437,  437,  437,  437,  437,  437,  437,
2817         0,    0,  437,    0,  437,  437,  437,    0,    0,    0,
2818       437,  437,  437,  437,  437,  437,  437,  437,  437,  437,
2819       437,  437,  437,  437,  437,  437,  437,  437,  437,  437,
2820       438,    0,  438,    0,  438,    0,  438,    0,    0,  438,
2821       438,    0,  438,  438,  438,  438,  438,  438,  438,  438,
2822       438,    0,    0,  438,    0,  438,  438,  438,    0,    0,
2823         0,  438,  438,  438,  438,  438,  438,  438,  438,  438,
2824       438,  438,  438,  438,  438,  438,  438,  438,  438,  438,
2825       438,  443,    0,  443,    0,  443,    0,  443,    0,    0,
2826 
2827       443,  443,    0,  443,  443,  443,  443,  443,  443,  443,
2828       443,  443,  443,    0,  443,    0,  443,  443,  443,    0,
2829         0,    0,  443,  443,  443,  443,  443,  443,  443,  443,
2830       443,  443,  443,  443,  443,  443,  443,  443,  443,  443,
2831       443,  443,  452,  452,  773,  773,  773,  773,  773,  773,
2832       452,  452,  452,  452,  452,  452,  452,  452,  452,  452,
2833       452,  452,  452,  452,  452,  452,  452,  454,    0,  454,
2834         0,  454,    0,  454,    0,    0,  454,  454,    0,  454,
2835       454,  454,  454,  454,  454,  454,  454,  454,  454,    0,
2836       454,    0,  454,  454,  454,    0,    0,    0,  454,  454,
2837 
2838       454,  454,  454,  454,  454,  454,  454,  454,  454,  454,
2839       454,  454,  454,  454,  454,  454,  454,  454,  455,    0,
2840       455,    0,  455,    0,  455,    0,    0,  455,  455,    0,
2841       455,  455,  455,  455,  455,  455,  455,  455,  455,    0,
2842         0,  455,    0,  455,  455,  455,    0,    0,    0,  455,
2843       455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
2844       455,  455,  455,  455,  455,  455,  455,  455,  455,  457,
2845       457,  457,  457,  457,  457,  457,  457,  457,  457,  457,
2846       457,  457,  457,  457,  457,  457,  461,  461,  461,  461,
2847       461,  461,  461,  461,  461,  461,  461,  461,  461,  461,
2848 
2849       461,  461,  461,  463,  463,  463,  463,  463,  463,  463,
2850       463,  463,  463,  463,  463,  463,  463,  463,  463,  463,
2851       469,  758,  469,    0,  758,  758,  758,  758,  758,  758,
2852         0,    0,    0,    0,  469,  469,  469,  469,  469,  469,
2853       764,    0,    0,  764,  764,  764,  764,  764,  764,  785,
2854       785,  785,  785,  785,  785,  785,  469,  470,  804,  470,
2855       804,  804,  804,  804,  804,  804,  470,    0,  470,    0,
2856         0,  470,  470,  470,  470,  470,  470,  472,    0,  472,
2857         0,  472,    0,  472,    0,    0,  472,  472,    0,  472,
2858       472,  805,  805,  805,  805,  805,  805,    0,    0,    0,
2859 
2860       472,    0,  472,    0,    0,    0,    0,    0,  472,  472,
2861       472,  473,    0,  473,    0,  473,    0,  473,    0,    0,
2862       473,  473,    0,  473,  473,  808,  808,  808,  808,  808,
2863       808,    0,    0,    0,  473,    0,  473,    0,    0,    0,
2864         0,    0,  473,  473,  473,  474,    0,  474,    0,  474,
2865         0,  474,    0,    0,  474,  474,    0,  474,  474,  816,
2866       816,  816,  816,  816,  816,  816,    0,    0,  474,    0,
2867       474,    0,    0,    0,    0,    0,  474,  474,  474,  475,
2868         0,  475,    0,  475,    0,  475,    0,    0,  475,  475,
2869         0,  475,  475,  475,  821,  821,  821,  821,  821,  821,
2870 
2871         0,    0,  475,    0,  475,    0,    0,    0,    0,    0,
2872       475,  475,  475,  477,    0,  477,    0,  477,    0,  477,
2873         0,    0,  477,  477,    0,  477,  477,  477,  477,  477,
2874       477,  477,  477,  477,    0,    0,  477,    0,  477,  477,
2875       477,    0,    0,    0,  477,  477,  477,  477,  477,  477,
2876       477,  477,  477,  477,  477,  477,  477,  477,  477,  477,
2877       477,  477,  477,  477,  478,    0,  478,    0,  478,    0,
2878       478,    0,    0,  478,  478,    0,  478,  478,  478,  827,
2879       827,  827,  827,  827,  827,    0,    0,  478,    0,  478,
2880         0,    0,    0,    0,    0,  478,  478,  478,  482,    0,
2881 
2882       482,  829,  829,  829,  829,  829,  829,    0,    0,    0,
2883       482,    0,  482,  482,  482,  482,  482,  482,  834,  834,
2884       834,  834,  834,  834,  835,  835,  835,  835,  835,  835,
2885         0,    0,    0,    0,  482,  483,    0,  483,  840,  840,
2886       840,  840,  840,  840,  483,    0,  483,    0,    0,  483,
2887       483,  483,  483,  483,  483,  486,  486,  486,  486,  486,
2888         0,  486,    0,    0,  486,  486,    0,  486,  486,  486,
2889       486,  486,  486,  486,  486,  486,  486,    0,  486,    0,
2890       486,  486,  486,    0,    0,    0,  486,  486,  486,  486,
2891       486,  486,  486,  486,  486,  486,  486,  486,  486,  486,
2892 
2893       486,  486,  486,  486,  486,  486,  487,    0,  487,  844,
2894       844,  844,  844,  844,  844,    0,    0,    0,  487,    0,
2895       487,  487,  487,  487,  487,  487,  487,  494,    0,  494,
2896         0,  494,    0,  494,    0,    0,  494,  494,    0,  494,
2897       494,  494,  845,  845,  845,  845,  845,  845,    0,    0,
2898       494,    0,  494,    0,    0,    0,    0,    0,  494,  494,
2899       494,  495,    0,  495,    0,  495,    0,  495,    0,    0,
2900       495,  495,    0,  495,  495,  495,  847,  847,  847,  847,
2901       847,  847,    0,    0,  495,    0,  495,    0,    0,    0,
2902         0,    0,  495,  495,  495,  496,    0,  496,    0,  496,
2903 
2904         0,  496,    0,    0,  496,  496,    0,  496,  496,  496,
2905       496,  496,  496,  496,  496,  496,    0,    0,  496,    0,
2906       496,  496,  496,    0,    0,    0,  496,  496,  496,  496,
2907       496,  496,  496,  496,  496,  496,  496,  496,  496,  496,
2908       496,  496,  496,  496,  496,  496,  497,    0,  497,    0,
2909       497,    0,  497,    0,    0,  497,  497,    0,  497,  497,
2910       497,  848,  848,  848,  848,  848,  848,    0,    0,  497,
2911         0,  497,    0,    0,    0,    0,    0,  497,  497,  497,
2912       498,  498,  498,  498,  498,  498,  498,  498,  498,  498,
2913       498,  498,  498,  498,  498,  498,  498,  499,    0,  499,
2914 
2915         0,  499,    0,  499,    0,    0,  499,  499,    0,  499,
2916       499,  499,    0,    0,    0,    0,    0,    0,    0,    0,
2917       499,    0,  499,    0,    0,    0,    0,    0,  499,  499,
2918       499,  505,    0,  505,    0,  505,    0,  505,    0,    0,
2919       505,  505,    0,  505,  505,  505,  505,  505,  505,  505,
2920       505,  505,  505,    0,  505,    0,  505,  505,  505,    0,
2921         0,    0,  505,  505,  505,  505,  505,  505,  505,  505,
2922       505,  505,  505,  505,  505,  505,  505,  505,  505,  505,
2923       505,  505,  515,  515,    0,    0,    0,    0,    0,    0,
2924       515,  515,  515,  515,  515,  515,  515,  515,  515,  515,
2925 
2926       515,  515,  515,  515,  515,  515,  515,  519,    0,  519,
2927         0,  519,    0,  519,    0,    0,  519,  519,    0,  519,
2928       519,  519,  519,  519,  519,  519,  519,  519,  519,    0,
2929       519,    0,  519,  519,  519,    0,    0,    0,  519,  519,
2930       519,  519,  519,  519,  519,  519,  519,  519,  519,  519,
2931       519,  519,  519,  519,  519,  519,  519,  519,  520,    0,
2932       520,    0,  520,    0,  520,    0,    0,  520,  520,    0,
2933       520,  520,  520,  520,  520,  520,  520,  520,  520,    0,
2934         0,  520,    0,  520,  520,  520,    0,    0,    0,  520,
2935       520,  520,  520,  520,  520,  520,  520,  520,  520,  520,
2936 
2937       520,  520,  520,  520,  520,  520,  520,  520,  520,  523,
2938         0,  523,    0,  523,    0,  523,    0,    0,  523,  523,
2939         0,  523,  523,  523,  523,  523,  523,  523,  523,  523,
2940       523,    0,  523,    0,  523,  523,  523,    0,    0,    0,
2941       523,  523,  523,  523,  523,  523,  523,  523,  523,  523,
2942       523,  523,  523,  523,  523,  523,  523,  523,  523,  523,
2943       527,    0,  527,    0,  527,    0,  527,    0,    0,  527,
2944       527,    0,  527,  527,  527,  527,  527,  527,  527,  527,
2945       527,  527,    0,  527,    0,  527,  527,  527,    0,    0,
2946         0,  527,  527,  527,  527,  527,  527,  527,  527,  527,
2947 
2948       527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
2949       527,  531,    0,  531,    0,  531,    0,  531,    0,    0,
2950       531,  531,    0,  531,  531,  531,  531,  531,  531,  531,
2951       531,  531,  531,    0,  531,    0,  531,  531,  531,    0,
2952         0,    0,  531,  531,  531,  531,  531,  531,  531,  531,
2953       531,  531,  531,  531,  531,  531,  531,  531,  531,  531,
2954       531,  531,  537,    0,  537,    0,    0,    0,    0,    0,
2955         0,    0,    0,    0,    0,    0,  537,  537,  537,  537,
2956       537,  537,    0,    0,    0,    0,    0,    0,    0,    0,
2957         0,    0,    0,    0,    0,    0,    0,    0,  537,  538,
2958 
2959         0,  538,    0,    0,    0,    0,    0,    0,  538,    0,
2960       538,    0,    0,  538,  538,  538,  538,  538,  538,  540,
2961         0,  540,    0,  540,    0,  540,    0,    0,  540,  540,
2962         0,  540,  540,    0,    0,    0,    0,    0,    0,    0,
2963         0,    0,  540,    0,  540,    0,    0,    0,    0,    0,
2964       540,  540,  540,  541,    0,  541,    0,  541,    0,  541,
2965         0,    0,  541,  541,    0,  541,  541,    0,    0,    0,
2966         0,    0,    0,    0,    0,    0,  541,    0,  541,    0,
2967         0,    0,    0,    0,  541,  541,  541,  542,    0,  542,
2968         0,  542,    0,  542,    0,    0,  542,  542,    0,  542,
2969 
2970       542,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2971       542,    0,  542,    0,    0,    0,    0,    0,  542,  542,
2972       542,  543,    0,  543,    0,  543,    0,  543,    0,    0,
2973       543,  543,    0,  543,  543,  543,    0,    0,    0,    0,
2974         0,    0,    0,    0,  543,    0,  543,    0,    0,    0,
2975         0,    0,  543,  543,  543,  544,    0,  544,  544,  544,
2976       544,  544,  544,    0,    0,    0,    0,    0,    0,    0,
2977         0,    0,    0,  544,  545,    0,  545,    0,  545,    0,
2978       545,    0,    0,  545,  545,    0,  545,  545,  545,    0,
2979         0,    0,    0,    0,    0,    0,    0,  545,    0,  545,
2980 
2981         0,    0,    0,    0,    0,  545,  545,  545,  547,  547,
2982       547,  547,  547,  547,  547,  547,  551,    0,  551,    0,
2983         0,    0,    0,    0,    0,    0,    0,    0,  551,    0,
2984       551,  551,  551,  551,  551,  551,    0,    0,    0,    0,
2985         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2986         0,    0,  551,  552,    0,  552,    0,    0,    0,    0,
2987         0,    0,  552,    0,  552,  552,    0,  552,  552,  552,
2988       552,  552,  552,  556,    0,  556,    0,  556,    0,  556,
2989         0,    0,  556,  556,    0,  556,  556,  556,  556,  556,
2990       556,  556,  556,  556,  556,    0,  556,    0,  556,  556,
2991 
2992       556,    0,    0,    0,  556,  556,  556,  556,  556,  556,
2993       556,  556,  556,  556,  556,  556,  556,  556,  556,  556,
2994       556,  556,  556,  556,  557,    0,  557,  557,  557,  557,
2995       557,  557,  557,  562,    0,  562,    0,  562,    0,  562,
2996         0,    0,  562,  562,    0,  562,  562,  562,    0,    0,
2997         0,    0,    0,    0,    0,    0,  562,    0,  562,    0,
2998         0,    0,    0,    0,  562,  562,  562,  563,    0,  563,
2999         0,  563,    0,  563,    0,    0,  563,  563,    0,  563,
3000       563,  563,    0,    0,    0,    0,    0,    0,    0,    0,
3001       563,    0,  563,    0,    0,    0,    0,    0,  563,  563,
3002 
3003       563,  564,  564,    0,    0,    0,    0,    0,    0,  564,
3004       564,  564,  564,  564,  564,  564,  564,  564,  564,  564,
3005       564,  564,  564,  564,  564,  564,  565,    0,  565,    0,
3006       565,    0,  565,    0,    0,  565,  565,    0,  565,  565,
3007       565,    0,    0,    0,    0,    0,    0,    0,    0,  565,
3008         0,  565,    0,    0,    0,    0,    0,  565,  565,  565,
3009       566,  566,  566,  566,  566,  566,  566,  566,  566,  566,
3010       566,  566,  566,  566,  566,  566,  566,  567,    0,  567,
3011         0,  567,    0,  567,    0,    0,  567,  567,    0,  567,
3012       567,  567,    0,    0,    0,    0,    0,    0,    0,    0,
3013 
3014       567,    0,  567,    0,    0,    0,    0,    0,  567,  567,
3015       567,  572,    0,  572,    0,  572,    0,  572,    0,    0,
3016       572,  572,    0,  572,  572,  572,  572,  572,  572,  572,
3017       572,  572,  572,    0,  572,    0,  572,  572,  572,    0,
3018         0,    0,  572,  572,  572,  572,  572,  572,  572,  572,
3019       572,  572,  572,  572,  572,  572,  572,  572,  572,  572,
3020       572,  572,  573,    0,    0,  573,  573,  573,  573,  573,
3021       573,  573,  578,  578,    0,    0,    0,    0,    0,    0,
3022       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
3023       578,  578,  578,  578,  578,  578,  578,  582,    0,  582,
3024 
3025         0,  582,    0,  582,    0,    0,  582,  582,    0,  582,
3026       582,  582,  582,  582,  582,  582,  582,  582,  582,    0,
3027       582,    0,  582,  582,  582,    0,    0,    0,  582,  582,
3028       582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
3029       582,  582,  582,  582,  582,  582,  582,  582,  583,    0,
3030       583,    0,  583,    0,  583,    0,    0,  583,  583,    0,
3031       583,  583,  583,  583,  583,  583,  583,  583,  583,    0,
3032         0,  583,    0,  583,  583,  583,    0,    0,    0,  583,
3033       583,  583,  583,  583,  583,  583,  583,  583,  583,  583,
3034       583,  583,  583,  583,  583,  583,  583,  583,  583,  587,
3035 
3036         0,  587,    0,  587,    0,  587,    0,    0,  587,  587,
3037         0,  587,  587,  587,  587,  587,  587,  587,  587,  587,
3038       587,    0,  587,    0,  587,  587,  587,    0,    0,    0,
3039       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
3040       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
3041       591,    0,  591,    0,  591,    0,  591,    0,    0,  591,
3042       591,    0,  591,  591,  591,  591,  591,  591,  591,  591,
3043       591,  591,    0,  591,    0,  591,  591,  591,    0,    0,
3044         0,  591,  591,  591,  591,  591,  591,  591,  591,  591,
3045       591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
3046 
3047       591,  595,    0,  595,    0,  595,    0,  595,    0,    0,
3048       595,  595,    0,  595,  595,  595,  595,  595,  595,  595,
3049       595,  595,  595,    0,  595,    0,  595,  595,  595,    0,
3050         0,    0,  595,  595,  595,  595,  595,  595,  595,  595,
3051       595,  595,  595,  595,  595,  595,  595,  595,  595,  595,
3052       595,  595,  598,    0,  598,    0,    0,    0,    0,    0,
3053         0,    0,    0,    0,    0,    0,  598,  598,  598,  598,
3054       598,  598,    0,    0,    0,    0,    0,    0,    0,    0,
3055         0,    0,    0,    0,    0,    0,    0,    0,  598,  599,
3056         0,  599,    0,    0,    0,    0,    0,    0,  599,    0,
3057 
3058       599,    0,    0,  599,  599,  599,  599,  599,  599,  601,
3059         0,  601,    0,  601,    0,  601,    0,    0,  601,  601,
3060         0,  601,  601,    0,    0,    0,    0,    0,    0,    0,
3061         0,    0,  601,    0,  601,    0,    0,    0,    0,    0,
3062       601,  601,  601,  602,    0,  602,    0,  602,    0,  602,
3063         0,    0,  602,  602,    0,  602,  602,    0,    0,    0,
3064         0,    0,    0,    0,    0,    0,  602,    0,  602,    0,
3065         0,    0,    0,    0,  602,  602,  602,  603,    0,  603,
3066         0,  603,    0,  603,    0,    0,  603,  603,    0,  603,
3067       603,    0,    0,    0,    0,    0,    0,    0,    0,    0,
3068 
3069       603,    0,  603,    0,    0,    0,    0,    0,  603,  603,
3070       603,  604,    0,  604,    0,  604,    0,  604,    0,    0,
3071       604,  604,    0,  604,  604,  604,    0,    0,    0,    0,
3072         0,    0,    0,    0,  604,    0,  604,    0,    0,    0,
3073         0,    0,  604,  604,  604,  605,    0,  605,    0,  605,
3074         0,  605,    0,    0,  605,  605,    0,  605,  605,  605,
3075         0,    0,    0,    0,    0,    0,    0,    0,  605,    0,
3076       605,    0,    0,    0,    0,    0,  605,  605,  605,  607,
3077         0,  607,  607,    0,  607,  607,  607,  607,  607,  607,
3078         0,    0,    0,    0,  607,  613,    0,  613,    0,    0,
3079 
3080         0,    0,    0,    0,    0,    0,    0,  613,    0,  613,
3081       613,  613,  613,  613,  613,    0,    0,    0,    0,    0,
3082         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
3083         0,  613,  614,    0,  614,    0,    0,    0,    0,    0,
3084         0,  614,    0,  614,    0,    0,  614,  614,  614,  614,
3085       614,  614,  618,    0,  618,    0,  618,    0,  618,    0,
3086         0,  618,  618,    0,  618,  618,  618,  618,  618,  618,
3087       618,  618,  618,  618,    0,  618,    0,  618,  618,  618,
3088         0,    0,    0,  618,  618,  618,  618,  618,  618,  618,
3089       618,  618,  618,  618,  618,  618,  618,  618,  618,  618,
3090 
3091       618,  618,  618,  619,    0,  619,  619,  619,  619,  619,
3092       619,  619,  626,    0,  626,    0,  626,    0,  626,    0,
3093         0,  626,  626,    0,  626,  626,  626,    0,    0,    0,
3094         0,    0,    0,    0,    0,  626,    0,  626,    0,    0,
3095         0,    0,    0,  626,  626,  626,  627,    0,  627,    0,
3096       627,    0,  627,    0,    0,  627,  627,    0,  627,  627,
3097       627,    0,    0,    0,    0,    0,    0,    0,    0,  627,
3098         0,  627,    0,    0,    0,    0,    0,  627,  627,  627,
3099       628,    0,  628,    0,  628,    0,  628,    0,    0,  628,
3100       628,    0,  628,  628,  628,  628,  628,  628,  628,  628,
3101 
3102       628,    0,    0,  628,    0,  628,  628,  628,    0,    0,
3103         0,  628,  628,  628,  628,  628,  628,  628,  628,  628,
3104       628,  628,  628,  628,  628,  628,  628,  628,  628,  628,
3105       628,  629,    0,  629,    0,  629,    0,  629,    0,    0,
3106       629,  629,    0,  629,  629,  629,    0,    0,    0,    0,
3107         0,    0,    0,    0,  629,    0,  629,    0,    0,    0,
3108         0,    0,  629,  629,  629,  630,  630,  630,  630,  630,
3109       630,  630,  630,  630,  630,  630,  630,  630,  630,  630,
3110       630,  630,  631,    0,  631,    0,  631,    0,  631,    0,
3111         0,  631,  631,    0,  631,  631,  631,    0,    0,    0,
3112 
3113         0,    0,    0,    0,    0,  631,    0,  631,    0,    0,
3114         0,    0,    0,  631,  631,  631,  633,  633,  633,  633,
3115       633,  633,  633,  633,  633,  633,  633,  633,  633,  633,
3116       633,  633,  633,  634,    0,    0,  634,  634,  634,  634,
3117       634,  634,  634,  642,  642,  642,  642,  642,  642,    0,
3118         0,    0,    0,    0,  642,    0,    0,    0,    0,    0,
3119         0,    0,  642,  642,  642,  642,  642,  646,  646,  646,
3120       646,  646,  646,  646,  646,  646,  646,  646,  646,  646,
3121       646,  646,  646,  646,  647,  647,  647,  647,  647,  647,
3122         0,    0,    0,    0,    0,  647,    0,    0,    0,    0,
3123 
3124         0,    0,    0,  647,  647,  647,  647,  647,  651,    0,
3125       651,    0,  651,    0,  651,    0,    0,  651,  651,    0,
3126       651,  651,  651,  651,  651,  651,  651,  651,  651,  651,
3127         0,  651,    0,  651,  651,  651,    0,    0,    0,  651,
3128       651,  651,  651,  651,  651,  651,  651,  651,  651,  651,
3129       651,  651,  651,  651,  651,  651,  651,  651,  651,  653,
3130       653,  653,  653,  653,  653,  653,  653,  653,  653,  653,
3131       653,  653,  653,  653,  653,  653,  657,  657,  657,  657,
3132       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,
3133       657,  657,  657,  660,    0,  660,    0,    0,    0,    0,
3134 
3135         0,    0,    0,    0,    0,    0,    0,  660,  660,  660,
3136       660,  660,  660,    0,    0,    0,    0,    0,    0,    0,
3137         0,    0,    0,    0,    0,    0,    0,    0,    0,  660,
3138       661,    0,  661,    0,    0,    0,    0,    0,    0,  661,
3139         0,  661,    0,    0,  661,  661,  661,  661,  661,  661,
3140       663,    0,  663,    0,  663,    0,  663,    0,    0,  663,
3141       663,    0,  663,  663,    0,    0,    0,    0,    0,    0,
3142         0,    0,    0,  663,    0,  663,    0,    0,    0,    0,
3143         0,  663,  663,  663,  664,    0,  664,    0,  664,    0,
3144       664,    0,    0,  664,  664,    0,  664,  664,    0,    0,
3145 
3146         0,    0,    0,    0,    0,    0,    0,  664,    0,  664,
3147         0,    0,    0,    0,    0,  664,  664,  664,  665,    0,
3148       665,    0,  665,    0,  665,    0,    0,  665,  665,    0,
3149       665,  665,    0,    0,    0,    0,    0,    0,    0,    0,
3150         0,  665,    0,  665,    0,    0,    0,    0,    0,  665,
3151       665,  665,  666,    0,  666,    0,  666,    0,  666,    0,
3152         0,  666,  666,    0,  666,  666,  666,    0,    0,    0,
3153         0,    0,    0,    0,    0,  666,    0,  666,    0,    0,
3154         0,    0,    0,  666,  666,  666,  667,    0,  667,    0,
3155       667,    0,  667,    0,    0,  667,  667,    0,  667,  667,
3156 
3157       667,    0,    0,    0,    0,    0,    0,    0,    0,  667,
3158         0,  667,    0,    0,    0,    0,    0,  667,  667,  667,
3159       668,    0,  668,  668,  668,  668,  668,  668,    0,    0,
3160         0,    0,    0,    0,    0,    0,    0,    0,  668,  670,
3161       670,    0,  670,  670,  670,  670,  670,  670,    0,    0,
3162         0,    0,  670,  672,  672,  672,  672,  672,  672,  672,
3163       672,  676,    0,  676,    0,    0,    0,    0,    0,    0,
3164         0,    0,    0,  676,    0,  676,  676,  676,  676,  676,
3165       676,    0,    0,    0,    0,    0,    0,    0,    0,    0,
3166         0,    0,    0,    0,    0,    0,    0,  676,  677,    0,
3167 
3168       677,    0,    0,    0,    0,    0,    0,  677,    0,  677,
3169       677,    0,  677,  677,  677,  677,  677,  677,  681,    0,
3170       681,    0,  681,    0,  681,    0,    0,  681,  681,    0,
3171       681,  681,  681,  681,  681,  681,  681,  681,  681,  681,
3172         0,  681,    0,  681,  681,  681,    0,    0,    0,  681,
3173       681,  681,  681,  681,  681,  681,  681,  681,  681,  681,
3174       681,  681,  681,  681,  681,  681,  681,  681,  681,  682,
3175         0,  682,  682,  682,  682,  682,  682,  682,  687,    0,
3176       687,    0,  687,    0,  687,    0,    0,  687,  687,    0,
3177       687,  687,  687,    0,    0,    0,    0,    0,    0,    0,
3178 
3179         0,  687,    0,  687,    0,    0,    0,    0,    0,  687,
3180       687,  687,  688,    0,  688,    0,  688,    0,  688,    0,
3181         0,  688,  688,    0,  688,  688,  688,    0,    0,    0,
3182         0,    0,    0,    0,    0,  688,    0,  688,    0,    0,
3183         0,    0,    0,  688,  688,  688,  689,  689,    0,    0,
3184         0,    0,    0,    0,  689,  689,  689,  689,  689,  689,
3185       689,  689,  689,  689,  689,  689,  689,  689,  689,  689,
3186       689,  690,    0,  690,    0,  690,    0,  690,    0,    0,
3187       690,  690,    0,  690,  690,  690,    0,    0,    0,    0,
3188         0,    0,    0,    0,  690,    0,  690,    0,    0,    0,
3189 
3190         0,    0,  690,  690,  690,  691,  691,  691,  691,  691,
3191       691,  691,  691,  691,  691,  691,  691,  691,  691,  691,
3192       691,  691,  693,    0,  693,    0,  693,    0,  693,    0,
3193         0,  693,  693,    0,  693,  693,  693,  693,  693,  693,
3194       693,  693,  693,  693,    0,  693,    0,  693,  693,  693,
3195         0,    0,    0,  693,  693,  693,  693,  693,  693,  693,
3196       693,  693,  693,  693,  693,  693,  693,  693,  693,  693,
3197       693,  693,  693,  694,    0,  694,    0,  694,    0,  694,
3198         0,    0,  694,  694,    0,  694,  694,  694,  694,  694,
3199       694,  694,  694,  694,  694,    0,  694,    0,  694,  694,
3200 
3201       694,    0,    0,    0,  694,  694,  694,  694,  694,  694,
3202       694,  694,  694,  694,  694,  694,  694,  694,  694,  694,
3203       694,  694,  694,  694,  697,  697,  697,  697,  697,  697,
3204       697,  697,  697,  697,  697,  697,  697,  697,  697,  697,
3205       697,  698,  698,  698,  698,  698,  698,    0,    0,    0,
3206         0,    0,  698,    0,    0,    0,    0,    0,    0,    0,
3207       698,  698,  698,  698,  698,  701,  701,  701,  701,  701,
3208       701,  701,  701,  701,  701,  701,  701,  701,  701,  701,
3209       701,  701,  703,  703,  703,  703,  703,  703,  703,  703,
3210       703,  703,  703,  703,  703,  703,  703,  703,  703,  706,
3211 
3212       706,  706,  706,  706,  706,  706,  706,  706,  706,  706,
3213       706,  706,  706,  706,  706,  706,  708,    0,  708,    0,
3214         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
3215       708,  708,  708,  708,  708,  708,    0,    0,    0,    0,
3216         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
3217         0,    0,  708,  709,    0,  709,    0,    0,    0,    0,
3218         0,    0,  709,    0,  709,    0,    0,  709,  709,  709,
3219       709,  709,  709,  711,    0,  711,    0,  711,    0,  711,
3220         0,    0,  711,  711,    0,  711,  711,    0,    0,    0,
3221         0,    0,    0,    0,    0,    0,  711,    0,  711,    0,
3222 
3223         0,    0,    0,    0,  711,  711,  711,  712,    0,  712,
3224         0,  712,    0,  712,    0,    0,  712,  712,    0,  712,
3225       712,    0,    0,    0,    0,    0,    0,    0,    0,    0,
3226       712,    0,  712,    0,    0,    0,    0,    0,  712,  712,
3227       712,  713,    0,  713,    0,  713,    0,  713,    0,    0,
3228       713,  713,    0,  713,  713,    0,    0,    0,    0,    0,
3229         0,    0,    0,    0,  713,    0,  713,    0,    0,    0,
3230         0,    0,  713,  713,  713,  714,    0,  714,    0,  714,
3231         0,  714,    0,    0,  714,  714,    0,  714,  714,  714,
3232         0,    0,    0,    0,    0,    0,    0,    0,  714,    0,
3233 
3234       714,    0,    0,    0,    0,    0,  714,  714,  714,  715,
3235         0,  715,    0,  715,    0,  715,    0,    0,  715,  715,
3236         0,  715,  715,  715,    0,    0,    0,    0,    0,    0,
3237         0,    0,  715,    0,  715,    0,    0,    0,    0,    0,
3238       715,  715,  715,  723,    0,  723,    0,    0,    0,    0,
3239         0,    0,    0,    0,    0,  723,    0,  723,  723,  723,
3240       723,  723,  723,    0,    0,    0,    0,    0,    0,    0,
3241         0,    0,    0,    0,    0,    0,    0,    0,    0,  723,
3242       724,    0,  724,    0,    0,    0,    0,    0,    0,  724,
3243         0,  724,    0,    0,  724,  724,  724,  724,  724,  724,
3244 
3245       728,    0,  728,    0,  728,    0,  728,    0,    0,  728,
3246       728,    0,  728,  728,  728,  728,  728,  728,  728,  728,
3247       728,  728,    0,  728,    0,  728,  728,  728,    0,    0,
3248         0,  728,  728,  728,  728,  728,  728,  728,  728,  728,
3249       728,  728,  728,  728,  728,  728,  728,  728,  728,  728,
3250       728,  729,    0,  729,  729,  729,  729,  729,  729,  729,
3251       736,    0,  736,    0,  736,    0,  736,    0,    0,  736,
3252       736,    0,  736,  736,  736,    0,    0,    0,    0,    0,
3253         0,    0,    0,  736,    0,  736,    0,    0,    0,    0,
3254         0,  736,  736,  736,  737,    0,  737,    0,  737,    0,
3255 
3256       737,    0,    0,  737,  737,    0,  737,  737,  737,    0,
3257         0,    0,    0,    0,    0,    0,    0,  737,    0,  737,
3258         0,    0,    0,    0,    0,  737,  737,  737,  738,    0,
3259       738,    0,  738,    0,  738,    0,    0,  738,  738,    0,
3260       738,  738,  738,  738,  738,  738,  738,  738,  738,    0,
3261         0,  738,    0,  738,  738,  738,    0,    0,    0,  738,
3262       738,  738,  738,  738,  738,  738,  738,  738,  738,  738,
3263       738,  738,  738,  738,  738,  738,  738,  738,  738,  739,
3264         0,  739,    0,  739,    0,  739,    0,    0,  739,  739,
3265         0,  739,  739,  739,    0,    0,    0,    0,    0,    0,
3266 
3267         0,    0,  739,    0,  739,    0,    0,    0,    0,    0,
3268       739,  739,  739,  741,  741,  741,  741,  741,  741,  741,
3269       741,  741,  741,  741,  741,  741,  741,  741,  741,  741,
3270       742,    0,  742,    0,  742,    0,  742,    0,    0,  742,
3271       742,    0,  742,  742,  742,  742,  742,  742,  742,  742,
3272       742,  742,    0,  742,    0,  742,  742,  742,    0,    0,
3273         0,  742,  742,  742,  742,  742,  742,  742,  742,  742,
3274       742,  742,  742,  742,  742,  742,  742,  742,  742,  742,
3275       742,  745,  745,  745,  745,  745,  745,  745,  745,  745,
3276       745,  745,  745,  745,  745,  745,  745,  745,  746,  746,
3277 
3278       746,  746,  746,  746,    0,    0,    0,    0,    0,  746,
3279         0,    0,    0,    0,    0,    0,    0,  746,  746,  746,
3280       746,  746,  749,  749,  749,  749,  749,  749,  749,  749,
3281       749,  749,  749,  749,  749,  749,  749,  749,  749,  750,
3282       750,  750,  750,  750,  750,  750,  750,  750,  750,  750,
3283       750,  750,  750,  750,  750,  750,  753,  753,  753,  753,
3284       753,  753,  753,  753,  753,  753,  753,  753,  753,  753,
3285       753,  753,  753,  759,  759,    0,  759,  759,  759,  759,
3286       759,  759,  761,    0,  761,    0,  761,    0,  761,    0,
3287         0,  761,  761,    0,    0,  761,  761,    0,    0,    0,
3288 
3289         0,    0,    0,    0,    0,  761,    0,  761,    0,    0,
3290         0,    0,    0,  761,    0,  761,  762,    0,  762,    0,
3291       762,    0,  762,    0,    0,  762,  762,    0,    0,  762,
3292       762,    0,    0,    0,    0,    0,    0,    0,    0,  762,
3293         0,  762,    0,    0,    0,    0,    0,  762,    0,  762,
3294       763,    0,    0,  763,  763,  763,  763,  763,  763,    0,
3295         0,    0,    0,    0,    0,    0,    0,    0,    0,  763,
3296       766,  766,  766,  766,  766,  766,  766,  766,  770,    0,
3297       770,    0,    0,    0,    0,    0,    0,    0,    0,    0,
3298       770,    0,  770,  770,  770,  770,  770,  770,    0,    0,
3299 
3300         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
3301         0,    0,    0,    0,  770,  771,    0,  771,    0,    0,
3302         0,    0,    0,    0,  771,    0,  771,  771,    0,  771,
3303       771,  771,  771,  771,  771,  775,    0,  775,    0,  775,
3304         0,  775,    0,    0,  775,  775,    0,  775,  775,  775,
3305       775,  775,  775,  775,  775,  775,  775,    0,  775,    0,
3306       775,  775,  775,    0,    0,    0,  775,  775,  775,  775,
3307       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
3308       775,  775,  775,  775,  775,  775,  776,    0,  776,  776,
3309       776,  776,  776,  776,  776,  781,    0,  781,    0,  781,
3310 
3311         0,  781,    0,    0,  781,  781,    0,  781,  781,  781,
3312         0,    0,    0,    0,    0,    0,    0,    0,  781,    0,
3313       781,    0,    0,    0,    0,    0,  781,  781,  781,  782,
3314         0,  782,    0,  782,    0,  782,    0,    0,  782,  782,
3315         0,  782,  782,  782,    0,    0,    0,    0,    0,    0,
3316         0,    0,  782,    0,  782,    0,    0,    0,    0,    0,
3317       782,  782,  782,  783,  783,    0,    0,    0,    0,    0,
3318         0,  783,  783,  783,  783,  783,  783,  783,  783,  783,
3319       783,  783,  783,  783,  783,  783,  783,  783,  789,  789,
3320       789,  789,  789,  789,  789,  789,  789,  789,  789,  789,
3321 
3322       789,  789,  789,  789,  789,  790,  790,  790,  790,  790,
3323       790,    0,    0,    0,    0,    0,  790,    0,    0,    0,
3324         0,    0,    0,    0,  790,  790,  790,  790,  790,  794,
3325       794,  794,  794,  794,  794,  794,  794,  794,  794,  794,
3326       794,  794,  794,  794,  794,  794,  798,  798,  798,  798,
3327       798,  798,  798,  798,  798,  798,  798,  798,  798,  798,
3328       798,  798,  798,  817,  817,  817,  817,  817,  817,  817,
3329       817,  817,  817,  817,  817,  817,  817,  817,  817,  817,
3330       818,  818,  818,  818,  818,  818,    0,    0,    0,    0,
3331         0,  818,    0,    0,    0,    0,    0,    0,    0,  818,
3332 
3333       818,  818,  818,  818,  819,  819,  819,  819,  819,  819,
3334       819,  819,  819,  819,  819,  819,  819,  819,  819,  819,
3335       819,  820,  820,  820,  820,  820,  820,  820,  820,  820,
3336       820,  820,  820,  820,  820,  820,  820,  820,  851,  851,
3337       851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
3338       851,  851,  851,  851,  851,  852,  852,  852,  852,  852,
3339       852,  852,  852,  852,  852,  852,  852,  852,  852,  852,
3340       852,  852,  853,  853,  853,  853,  853,  853,  853,  853,
3341       853,  853,  853,  853,  853,  853,  853,  853,  853,  854,
3342       854,  854,  854,  854,  854,  854,  854,  854,  854,  854,
3343 
3344       854,  854,  854,  854,  854,  854,  855,  855,  855,  855,
3345       855,  855,  855,  855,  855,  855,  855,  855,  855,  855,
3346       855,  855,  855,  856,  856,  856,  856,  856,  856,  856,
3347       856,  856,  856,  856,  856,  856,  856,  856,  856,  856,
3348       857,  857,    0,  857,  857,  857,  857,  857,  857,  857,
3349       857,  857,  857,  857,  857,  857,  857,  858,    0,    0,
3350       858,  858,    0,  858,  858,  858,  858,  859,  859,    0,
3351       859,    0,  859,  859,  859,  859,  859,  859,  859,  859,
3352       859,  859,  859,  859,  860,  860,  860,  860,  860,  860,
3353       860,  860,  860,  860,  860,  860,  860,  860,  860,  860,
3354 
3355       860,  861,  861,    0,  861,  861,  861,  861,  861,  861,
3356       861,  861,  861,  861,  861,  861,  861,  861,  862,  862,
3357         0,  862,  862,  862,  862,  862,  862,  862,  862,  862,
3358       862,  862,  862,  862,  862,  863,  863,    0,  863,  863,
3359       863,  863,  863,  863,  863,  863,  863,  863,  863,  863,
3360       863,  863,  864,    0,    0,    0,  864,  864,  864,  864,
3361       864,  864,  864,  864,  864,  864,  864,  864,  864,  865,
3362       865,    0,  865,  865,  865,  865,  865,  865,  865,  865,
3363       865,  865,  865,  865,  865,  865,  866,    0,  866,    0,
3364         0,    0,  866,  866,  866,  866,  866,    0,  866,  866,
3365 
3366       866,  866,  866,  867,  867,    0,    0,    0,  867,  867,
3367       867,  867,  867,  867,  867,    0,  867,  867,  867,  867,
3368       868,  868,  868,  868,  868,  868,  868,  868,  868,  868,
3369       868,  868,  868,  868,  868,  868,  868,  869,  869,  869,
3370         0,    0,  869,  869,    0,  869,  870,    0,  870,    0,
3371         0,    0,  870,  870,  870,  870,  870,    0,  870,  870,
3372       870,  870,  870,  871,  871,    0,  871,  871,  871,  871,
3373       871,  871,  871,  871,  871,  871,  871,  871,  871,  871,
3374       872,    0,  872,    0,    0,    0,  872,  872,    0,  872,
3375       872,    0,  872,  872,  872,  872,  872,  873,  873,  873,
3376 
3377       873,  873,  873,  873,  873,  873,  873,  873,  873,  873,
3378       873,  873,  873,  873,  874,  874,  874,    0,    0,  874,
3379       874,    0,  874,  875,    0,  875,    0,    0,    0,  875,
3380       875,  875,  875,  875,    0,  875,  875,  875,  875,  875,
3381       876,    0,  876,    0,    0,    0,  876,  876,  876,  876,
3382       876,    0,  876,  876,  876,  876,  876,  877,  877,    0,
3383         0,  877,    0,    0,  877,  878,    0,  878,    0,    0,
3384         0,  878,  878,  878,  878,  878,    0,  878,  878,  878,
3385       878,  878,  879,  879,    0,  879,  879,  879,  879,  879,
3386       879,  879,  879,  879,  879,  879,  879,  879,  879,  880,
3387 
3388       880,  880,    0,    0,  880,  880,    0,  880,  881,    0,
3389       881,    0,    0,    0,  881,  881,  881,  881,  881,    0,
3390       881,  881,  881,  881,  881,  882,    0,  882,    0,    0,
3391         0,  882,  882,  882,  882,  882,    0,  882,  882,  882,
3392       882,  882,  883,  883,  883,    0,  883,    0,    0,  883,
3393       884,    0,  884,    0,    0,    0,  884,  884,  884,  884,
3394       884,    0,  884,  884,  884,  884,  884,  885,    0,  885,
3395         0,    0,    0,  885,  885,    0,  885,  885,    0,  885,
3396       885,  885,  885,  885,  886,    0,    0,  886,    0,    0,
3397       886,  886,  886,  886,  887,  887,  887,    0,    0,  887,
3398 
3399       887,    0,  887,  888,    0,  888,    0,    0,  888,  888,
3400         0,    0,  888,  889,    0,  889,    0,    0,    0,  889,
3401       889,  889,  889,  889,    0,  889,  889,  889,  889,  889,
3402       890,    0,  890,    0,    0,    0,  890,  890,  890,  890,
3403       890,    0,  890,  890,  890,  890,  890,  891,  891,    0,
3404       891,    0,    0,  891,  892,  892,  892,    0,  892,    0,
3405         0,  892,  893,    0,    0,  893,    0,    0,  893,  894,
3406         0,  894,    0,    0,    0,  894,  894,  894,  894,  894,
3407         0,  894,  894,  894,  894,  894,  895,    0,  895,    0,
3408         0,    0,  895,  895,  895,  895,  895,    0,  895,  895,
3409 
3410       895,  895,  895,  896,    0,  896,    0,    0,    0,  896,
3411       896,  896,  896,  896,  896,  896,  896,  896,  896,  896,
3412       897,    0,  897,    0,    0,    0,  897,  897,  897,  897,
3413       897,    0,  897,  897,  897,  897,  897,  898,    0,  898,
3414         0,    0,    0,  898,  898,  898,  898,  898,    0,  898,
3415       898,  898,  898,  898,  899,    0,  899,    0,    0,    0,
3416       899,  899,  899,  899,  899,    0,  899,  899,  899,  899,
3417       899,  900,    0,  900,    0,    0,    0,  900,  900,  900,
3418       900,  900,    0,  900,  900,  900,  900,  900,  901,  901,
3419         0,  901,    0,    0,  901,  901,  901,  901,  902,    0,
3420 
3421       902,    0,    0,    0,  902,  902,  902,  902,  902,    0,
3422       902,  902,  902,  902,  902,  903,  903,  903,    0,    0,
3423       903,  903,    0,  903,  904,    0,  904,    0,    0,    0,
3424       904,  904,  904,  904,  904,    0,  904,  904,  904,  904,
3425       904,  905,    0,  905,    0,    0,    0,  905,  905,  905,
3426       905,  905,    0,  905,  905,  905,  905,  905,  906,  906,
3427         0,  906,    0,    0,  906,  907,  907,  907,    0,  907,
3428         0,    0,  907,  908,  908,  908,    0,  908,    0,    0,
3429       908,  909,    0,  909,    0,    0,    0,  909,  909,  909,
3430       909,  909,    0,  909,  909,  909,  909,  909,  910,    0,
3431 
3432       910,    0,    0,    0,  910,  910,  910,  910,  910,    0,
3433       910,  910,  910,  910,  910,  911,    0,  911,    0,    0,
3434         0,  911,  911,  911,  911,  911,    0,  911,  911,  911,
3435       911,  911,  912,    0,    0,  912,    0,    0,  912,  912,
3436       912,  912,  913,  913,  913,    0,    0,  913,  913,    0,
3437       913,  914,    0,  914,    0,    0,    0,  914,  914,  914,
3438       914,  914,    0,  914,  914,  914,  914,  914,  915,    0,
3439       915,    0,    0,    0,  915,  915,  915,  915,  915,    0,
3440       915,  915,  915,  915,  915,  916,  916,    0,  916,    0,
3441         0,  916,  917,  917,    0,  917,    0,    0,  917,  918,
3442 
3443       918,  918,    0,  918,    0,    0,  918,  919,    0,    0,
3444       919,    0,    0,  919,  920,    0,  920,    0,    0,    0,
3445       920,  920,  920,  920,  920,    0,  920,  920,  920,  920,
3446       920,  921,    0,  921,    0,    0,    0,  921,  921,  921,
3447       921,  921,    0,  921,  921,  921,  921,  921,  922,  922,
3448       922,    0,    0,  922,  922,    0,  922,  923,    0,  923,
3449         0,    0,    0,  923,  923,  923,  923,  923,    0,  923,
3450       923,  923,  923,  923,  924,    0,  924,    0,    0,    0,
3451       924,  924,  924,  924,  924,    0,  924,  924,  924,  924,
3452       924,  925,  925,    0,  925,    0,    0,  925,  926,  926,
3453 
3454         0,  926,    0,    0,  926,  927,  927,  927,    0,  927,
3455         0,    0,  927,  928,  928,  928,    0,  928,    0,    0,
3456       928,  929,    0,  929,    0,    0,    0,  929,  929,  929,
3457       929,  929,    0,  929,  929,  929,  929,  929,  930,    0,
3458       930,    0,    0,    0,  930,  930,  930,  930,  930,    0,
3459       930,  930,  930,  930,  930,  931,    0,    0,  931,    0,
3460         0,  931,  931,  931,  931,  932,    0,    0,  932,    0,
3461         0,  932,  932,  932,  932,  933,  933,  933,    0,    0,
3462       933,  933,    0,  933,  934,    0,  934,    0,    0,    0,
3463       934,  934,  934,  934,  934,    0,  934,  934,  934,  934,
3464 
3465       934,  935,    0,  935,    0,    0,    0,  935,  935,  935,
3466       935,  935,    0,  935,  935,  935,  935,  935,  936,    0,
3467       936,    0,    0,    0,  936,  936,  936,  936,  936,    0,
3468       936,  936,  936,  936,  936,  937,  937,    0,  937,    0,
3469         0,  937,  938,  938,    0,  938,    0,    0,  938,  939,
3470       939,  939,    0,  939,    0,    0,  939,  940,    0,    0,
3471       940,    0,    0,  940,  941,    0,  941,    0,    0,    0,
3472       941,  941,  941,  941,  941,    0,  941,  941,  941,  941,
3473       941,  942,    0,  942,    0,    0,    0,  942,  942,  942,
3474       942,  942,    0,  942,  942,  942,  942,  942,  943,    0,
3475 
3476         0,  943,    0,    0,  943,  943,  943,  943,  944,    0,
3477         0,  944,    0,    0,  944,  944,  944,  944,  945,    0,
3478         0,  945,    0,    0,  945,  945,  945,  945,  946,    0,
3479         0,  946,    0,    0,  946,  946,  946,  946,  947,  947,
3480       947,    0,    0,  947,  947,    0,  947,  948,    0,  948,
3481         0,    0,    0,  948,  948,  948,  948,  948,    0,  948,
3482       948,  948,  948,  948,  949,    0,  949,    0,    0,    0,
3483       949,  949,  949,  949,  949,    0,  949,  949,  949,  949,
3484       949,  950,    0,  950,    0,    0,    0,  950,  950,  950,
3485       950,  950,    0,  950,  950,  950,  950,  950,  951,    0,
3486 
3487       951,    0,    0,    0,    0,    0,    0,  951,  952,  952,
3488         0,  952,    0,    0,  952,  953,  953,    0,  953,    0,
3489         0,  953,  954,  954,  954,    0,  954,    0,    0,  954,
3490       955,  955,  955,    0,  955,    0,    0,  955,  956,    0,
3491       956,    0,    0,    0,  956,  956,  956,  956,  956,    0,
3492       956,  956,  956,  956,  956,  957,    0,  957,    0,    0,
3493         0,  957,  957,  957,  957,  957,    0,  957,  957,  957,
3494       957,  957,  958,    0,    0,  958,    0,    0,  958,  958,
3495       958,  958,  959,    0,    0,  959,    0,    0,  959,  959,
3496       959,  959,  960,    0,    0,  960,    0,    0,  960,  960,
3497 
3498       960,  960,  961,    0,    0,  961,    0,    0,  961,  961,
3499       961,  961,  962,    0,    0,  962,    0,    0,  962,  962,
3500       962,  962,  963,    0,    0,  963,    0,    0,  963,  963,
3501       963,  963,  964,  964,  964,    0,    0,  964,  964,    0,
3502       964,  965,    0,  965,    0,    0,    0,  965,  965,  965,
3503       965,  965,    0,  965,  965,  965,  965,  965,  966,    0,
3504       966,    0,    0,    0,  966,  966,  966,  966,  966,    0,
3505       966,  966,  966,  966,  966,  967,    0,  967,    0,    0,
3506         0,  967,  967,  967,  967,  967,    0,  967,  967,  967,
3507       967,  967,  968,    0,  968,    0,    0,    0,  968,  968,
3508 
3509       968,  968,  968,    0,  968,  968,  968,  968,  968,  969,
3510       969,    0,  969,    0,    0,  969,  970,  970,    0,  970,
3511         0,    0,  970,  971,  971,  971,    0,  971,    0,    0,
3512       971,  972,    0,    0,  972,    0,    0,  972,  973,    0,
3513       973,    0,    0,    0,  973,  973,  973,  973,  973,    0,
3514       973,  973,  973,  973,  973,  974,    0,  974,    0,    0,
3515         0,  974,  974,  974,  974,  974,    0,  974,  974,  974,
3516       974,  974,  975,  975,  975,    0,    0,  975,  975,    0,
3517       975,  976,    0,  976,    0,    0,    0,  976,  976,  976,
3518       976,  976,    0,  976,  976,  976,  976,  976,  977,    0,
3519 
3520       977,    0,    0,    0,  977,  977,  977,  977,  977,    0,
3521       977,  977,  977,  977,  977,  978,    0,  978,    0,    0,
3522         0,  978,  978,  978,  978,  978,    0,  978,  978,  978,
3523       978,  978,  979,    0,  979,    0,    0,    0,  979,  979,
3524       979,  979,  979,    0,  979,  979,  979,  979,  979,  980,
3525       980,    0,  980,    0,    0,  980,  981,  981,    0,  981,
3526         0,    0,  981,  982,  982,  982,    0,  982,    0,    0,
3527       982,  983,  983,  983,    0,  983,    0,    0,  983,  984,
3528         0,  984,    0,    0,    0,  984,  984,  984,  984,  984,
3529         0,  984,  984,  984,  984,  984,  985,    0,  985,    0,
3530 
3531         0,    0,  985,  985,  985,  985,  985,    0,  985,  985,
3532       985,  985,  985,  986,  986,  986,    0,    0,  986,  986,
3533         0,  986,  987,    0,  987,    0,    0,    0,  987,  987,
3534       987,  987,  987,    0,  987,  987,  987,  987,  987,  988,
3535         0,  988,    0,    0,    0,  988,  988,  988,  988,  988,
3536         0,  988,  988,  988,  988,  988,  989,    0,  989,    0,
3537         0,    0,  989,  989,  989,  989,  989,    0,  989,  989,
3538       989,  989,  989,  990,  990,    0,  990,    0,    0,  990,
3539       991,  991,    0,  991,    0,    0,  991,  992,  992,  992,
3540         0,  992,    0,    0,  992,  993,    0,    0,  993,    0,
3541 
3542         0,  993,  994,    0,  994,    0,    0,    0,  994,  994,
3543       994,  994,  994,    0,  994,  994,  994,  994,  994,  995,
3544         0,  995,    0,    0,    0,  995,  995,  995,  995,  995,
3545         0,  995,  995,  995,  995,  995,  996,    0,    0,  996,
3546         0,    0,  996,  996,  996,  996,  997,    0,    0,  997,
3547         0,    0,  997,  997,  997,  997,  998,    0,    0,  998,
3548         0,    0,  998,  998,  998,  998,  999,    0,  999,    0,
3549         0,    0,    0,    0,    0,  999,    0,    0,    0,    0,
3550         0,  999, 1000,    0, 1000,    0,    0, 1000, 1000,    0,
3551         0, 1000, 1001,    0, 1001,    0,    0,    0, 1001, 1001,
3552 
3553      1001, 1001, 1001,    0, 1001, 1001, 1001, 1001, 1001, 1002,
3554         0, 1002,    0,    0,    0, 1002, 1002, 1002, 1002, 1002,
3555         0, 1002, 1002, 1002, 1002, 1002, 1003, 1003,    0, 1003,
3556         0,    0, 1003, 1004, 1004,    0, 1004,    0,    0, 1004,
3557      1005, 1005, 1005,    0, 1005,    0,    0, 1005, 1006, 1006,
3558      1006,    0, 1006,    0,    0, 1006, 1007,    0, 1007,    0,
3559         0,    0, 1007, 1007, 1007, 1007, 1007,    0, 1007, 1007,
3560      1007, 1007, 1007, 1008, 1008,    0, 1008,    0,    0, 1008,
3561      1009, 1009,    0, 1009,    0,    0, 1009, 1010, 1010, 1010,
3562         0, 1010,    0,    0, 1010, 1011,    0,    0, 1011,    0,
3563 
3564         0, 1011, 1012, 1012,    0, 1012,    0,    0, 1012, 1013,
3565      1013,    0,    0, 1013,    0,    0, 1013, 1014, 1014, 1014,
3566         0, 1014,    0,    0, 1014, 1015, 1015,    0,    0, 1015,
3567         0,    0, 1015, 1016, 1016,    0,    0, 1016,    0,    0,
3568      1016, 1017, 1017,    0,    0, 1017,    0,    0, 1017, 1018,
3569      1018,    0,    0, 1018,    0,    0, 1018, 1019, 1019,    0,
3570         0, 1019,    0,    0, 1019,  850,  850,  850,  850,  850,
3571       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
3572       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
3573       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
3574 
3575       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
3576       850,  850,  850,  850,  850,  850,  850
3577     } ;
3578 
3579 static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr;
3580 static char *yy_full_match;
3581 static int yy_lp;
3582 #define REJECT \
3583 { \
3584 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */ \
3585 yy_cp = yy_full_match; /* restore poss. backed-over text */ \
3586 ++yy_lp; \
3587 goto find_rule; \
3588 }
3589 #define yymore() yymore_used_but_not_detected
     /* [<][>][^][v][top][bottom][index][help] */
3590 #define YY_MORE_ADJ 0
3591 #define YY_RESTORE_YY_MORE_OFFSET
3592 char *yytext;
3593 #line 1 "rpsl.l"
3594 #define INITIAL 0
3595 /*
3596 //  $Id: rpsl.l.cc,v 1.4 2001/04/20 13:57:28 engin Exp $
3597 //
3598 //  Copyright (c) 1994 by the University of Southern California
3599 //  All rights reserved.
3600 //
3601 //  Permission to use, copy, modify, and distribute this software and its
3602 //  documentation in source and binary forms for lawful non-commercial
3603 //  purposes and without fee is hereby granted, provided that the above
3604 //  copyright notice appear in all copies and that both the copyright
3605 //  notice and this permission notice appear in supporting documentation,
3606 //  and that any documentation, advertising materials, and other materials
3607 //  related to such distribution and use acknowledge that the software was
3608 //  developed by the University of Southern California, Information
3609 //  Sciences Institute. The name of the USC may not be used to endorse or
3610 //  promote products derived from this software without specific prior
3611 //  written permission.
3612 //
3613 //  THE UNIVERSITY OF SOUTHERN CALIFORNIA DOES NOT MAKE ANY
3614 //  REPRESENTATIONS ABOUT THE SUITABILITY OF THIS SOFTWARE FOR ANY
3615 //  PURPOSE.  THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
3616 //  IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
3617 //  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE,
3618 //  TITLE, AND NON-INFRINGEMENT.
3619 //
3620 //  IN NO EVENT SHALL USC, OR ANY OTHER CONTRIBUTOR BE LIABLE FOR ANY
3621 //  SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES, WHETHER IN CONTRACT, TORT,
3622 //  OR OTHER FORM OF ACTION, ARISING OUT OF OR IN CONNECTION WITH, THE USE
3623 //  OR PERFORMANCE OF THIS SOFTWARE.
3624 //
3625 //  Questions concerning this software should be directed to
3626 //  ratoolset@isi.edu.
3627 //
3628 //  Author(s): Cengiz Alaettinoglu <cengiz@ISI.EDU>
3629 */
3630 /* definitions */
3631 #define STRING 1
3632 
3633 #define EXPECT_OPERATOR 2
3634 
3635 #define FREETEXT 3
3636 
3637 #define BLOBMODE 4
3638 
3639 #define GENERICMODE 5
3640 
3641 #define SKIP_OBJECT 6
3642 
3643 #define POLICYMODE 7
3644 
3645 /*%option nodefault /* */
3646 /*%option debug     /* */
3647 #line 83 "rpsl.l"
3648 #include "config.h"
3649 #include <cstring>
3650 #include <cstdarg>
3651 #include <cstdio>
3652 #include <time.h>
3653 
3654 #include "object.hh"
3655 #include "rpsl.y.hh"
3656 #include "schema.hh"
3657 
3658 static int errorLine = 0;
3659 static int errorColon = 0;
3660 #define errorNewLine { errorLine++;   errorColon = 0; }
3661 
3662 static int scan_position = 0;
3663 static bool start_of_object = true;
3664 static bool genericMode = true;
3665 static int oldStart = 0;
3666 
3667 Object *current_object;
3668 Attr   *current_attribute;
3669 YY_BUFFER_STATE rpsl_buffer = (YY_BUFFER_STATE) NULL;
3670 
3671 #define MAX_STR_CONST 1024
3672 #define LEXER_RETURN return
3673 #define YY_USER_ACTION { scan_position += yyleng; errorColon += yyleng; }
3674 #define YYLESS(n) {scan_position -= yyleng - n; errorColon -= yyleng - n; yyless(n); }
     /* [<][>][^][v][top][bottom][index][help] */
3675 #define yylval rpsllval
3676 #define yy_scan_object rpsl_scan_object
3677 #define yyschema schema
3678 
3679 extern void handle_error(char *, ...);
3680 extern void handle_warning(char *, ...);
3681 extern int validIPv6(const char *);
3682 extern int validIntForPhone(const char *);
3683 
3684 extern "C" {
3685 extern void atollRA(...);
3686 }
3687 #line 3688 "lex.rpsl.c"
3688 
3689 /* Macros after this point can all be overridden by user definitions in
3690  * section 1.
3691  */
3692 
3693 #ifndef YY_SKIP_YYWRAP
3694 #ifdef __cplusplus
3695 extern "C" int yywrap YY_PROTO(( void ));
3696 #else
3697 extern int yywrap YY_PROTO(( void ));
3698 #endif
3699 #endif
3700 
3701 #ifndef YY_NO_UNPUT
3702 static void yyunput YY_PROTO(( int c, char *buf_ptr ));
3703 #endif
3704 
3705 #ifndef yytext_ptr
3706 static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
3707 #endif
3708 
3709 #ifdef YY_NEED_STRLEN
3710 static int yy_flex_strlen YY_PROTO(( yyconst char * ));
3711 #endif
3712 
3713 #ifndef YY_NO_INPUT
3714 #ifdef __cplusplus
3715 static int yyinput YY_PROTO(( void ));
3716 #else
3717 static int input YY_PROTO(( void ));
3718 #endif
3719 #endif
3720 
3721 #if YY_STACK_USED
3722 static int yy_start_stack_ptr = 0;
3723 static int yy_start_stack_depth = 0;
3724 static int *yy_start_stack = 0;
3725 #ifndef YY_NO_PUSH_STATE
3726 static void yy_push_state YY_PROTO(( int new_state ));
3727 #endif
3728 #ifndef YY_NO_POP_STATE
3729 static void yy_pop_state YY_PROTO(( void ));
3730 #endif
3731 #ifndef YY_NO_TOP_STATE
3732 static int yy_top_state YY_PROTO(( void ));
3733 #endif
3734 
3735 #else
3736 #define YY_NO_PUSH_STATE 1
3737 #define YY_NO_POP_STATE 1
3738 #define YY_NO_TOP_STATE 1
3739 #endif
3740 
3741 #ifdef YY_MALLOC_DECL
3742 YY_MALLOC_DECL
3743 #else
3744 #if __STDC__
3745 #ifndef __cplusplus
3746 #include <stdlib.h>
3747 #endif
3748 #else
3749 /* Just try to get by without declaring the routines.  This will fail
3750  * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
3751  * or sizeof(void*) != sizeof(int).
3752  */
3753 #endif
3754 #endif
3755 
3756 /* Amount of stuff to slurp up with each read. */
3757 #ifndef YY_READ_BUF_SIZE
3758 #define YY_READ_BUF_SIZE 8192
3759 #endif
3760 
3761 /* Copy whatever the last rule matched to the standard output. */
3762 
3763 #ifndef ECHO
3764 /* This used to be an fputs(), but since the string might contain NUL's,
3765  * we now use fwrite().
3766  */
3767 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
3768 #endif
3769 
3770 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
3771  * is returned in "result".
3772  */
3773 #ifndef YY_INPUT
3774 #define YY_INPUT(buf,result,max_size) \
     /* [<][>][^][v][top][bottom][index][help] */
3775         if ( yy_current_buffer->yy_is_interactive ) \
3776                 { \
3777                 int c = '*', n; \
3778                 for ( n = 0; n < max_size && \
3779                              (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
3780                         buf[n] = (char) c; \
3781                 if ( c == '\n' ) \
3782                         buf[n++] = (char) c; \
3783                 if ( c == EOF && ferror( yyin ) ) \
3784                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
3785                 result = n; \
3786                 } \
3787         else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
3788                   && ferror( yyin ) ) \
3789                 YY_FATAL_ERROR( "input in flex scanner failed" );
3790 #endif
3791 
3792 /* No semi-colon after return; correct usage is to write "yyterminate();" -
3793  * we don't want an extra ';' after the "return" because that will cause
3794  * some compilers to complain about unreachable statements.
3795  */
3796 #ifndef yyterminate
3797 #define yyterminate() return YY_NULL
     /* [<][>][^][v][top][bottom][index][help] */
3798 #endif
3799 
3800 /* Number of entries by which start-condition stack grows. */
3801 #ifndef YY_START_STACK_INCR
3802 #define YY_START_STACK_INCR 25
3803 #endif
3804 
3805 /* Report a fatal error. */
3806 #ifndef YY_FATAL_ERROR
3807 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
     /* [<][>][^][v][top][bottom][index][help] */
3808 #endif
3809 
3810 /* Default declaration of generated scanner - a define so the user can
3811  * easily add parameters.
3812  */
3813 #ifndef YY_DECL
3814 #define YY_DECL int yylex YY_PROTO(( void ))
3815 #endif
3816 
3817 /* Code executed at the beginning of each rule, after yytext and yyleng
3818  * have been set up.
3819  */
3820 #ifndef YY_USER_ACTION
3821 #define YY_USER_ACTION
3822 #endif
3823 
3824 /* Code executed at the end of each rule. */
3825 #ifndef YY_BREAK
3826 #define YY_BREAK break;
3827 #endif
3828 
3829 #define YY_RULE_SETUP \
3830         if ( yyleng > 0 ) \
3831                 yy_current_buffer->yy_at_bol = \
3832                                 (yytext[yyleng - 1] == '\n'); \
3833         YY_USER_ACTION
3834 
3835 YY_DECL
3836         {
3837         register yy_state_type yy_current_state;
3838         register char *yy_cp, *yy_bp;
3839         register int yy_act;
3840 
3841 #line 124 "rpsl.l"
3842 
3843  
3844    /* this code is copied to beginning of yylex */
3845    static char string_buf[MAX_STR_CONST];
3846    char *string_buf_ptr;
3847 
3848 
3849 #line 3850 "lex.rpsl.c"
3850 
3851         if ( yy_init )
3852                 {
3853                 yy_init = 0;
3854 
3855 #ifdef YY_USER_INIT
3856                 YY_USER_INIT;
3857 #endif
3858 
3859                 if ( ! yy_start )
3860                         yy_start = 1;   /* first start state */
3861 
3862                 if ( ! yyin )
3863                         yyin = stdin;
3864 
3865                 if ( ! yyout )
3866                         yyout = stdout;
3867 
3868                 if ( ! yy_current_buffer )
3869                         yy_current_buffer =
3870                                 yy_create_buffer( yyin, YY_BUF_SIZE );
3871 
3872                 yy_load_buffer_state();
3873                 }
3874 
3875         while ( 1 )             /* loops until end-of-file is reached */
3876                 {
3877                 yy_cp = yy_c_buf_p;
3878 
3879                 /* Support of yytext. */
3880                 *yy_cp = yy_hold_char;
3881 
3882                 /* yy_bp points to the position in yy_ch_buf of the start of
3883                  * the current run.
3884                  */
3885                 yy_bp = yy_cp;
3886 
3887                 yy_current_state = yy_start;
3888                 yy_current_state += YY_AT_BOL();
3889                 yy_state_ptr = yy_state_buf;
3890                 *yy_state_ptr++ = yy_current_state;
3891 yy_match:
3892                 do
3893                         {
3894                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
3895                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3896                                 {
3897                                 yy_current_state = (int) yy_def[yy_current_state];
3898                                 if ( yy_current_state >= 851 )
3899                                         yy_c = yy_meta[(unsigned int) yy_c];
3900                                 }
3901                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3902                         *yy_state_ptr++ = yy_current_state;
3903                         ++yy_cp;
3904                         }
3905                 while ( yy_base[yy_current_state] != 12666 );
3906 
3907 yy_find_action:
3908                 yy_current_state = *--yy_state_ptr;
3909                 yy_lp = yy_accept[yy_current_state];
3910 find_rule: /* we branch to this label when backing up */
3911                 for ( ; ; ) /* until we find what rule we matched */
3912                         {
3913                         if ( yy_lp && yy_lp < yy_accept[yy_current_state + 1] )
3914                                 {
3915                                 yy_act = yy_acclist[yy_lp];
3916                                         {
3917                                         yy_full_match = yy_cp;
3918                                         break;
3919                                         }
3920                                 }
3921                         --yy_cp;
3922                         yy_current_state = *--yy_state_ptr;
3923                         yy_lp = yy_accept[yy_current_state];
3924                         }
3925 
3926                 YY_DO_BEFORE_ACTION;
3927 
3928 
3929 do_action:      /* This label is used only to access EOF actions. */
3930 
3931 
3932                 switch ( yy_act )
3933         { /* beginning of action switch */
3934 case 1:
3935 YY_RULE_SETUP
3936 #line 131 "rpsl.l"
3937 { //
3938    errorLine = 0; 
3939    errorColon = yyleng;
3940 
3941    *(yytext + yyleng - 1) = 0; // remove ':'
3942 
3943    yylval.attr = new Attr;
3944    yylval.attr->offset = scan_position - yyleng;
3945    current_attribute = yylval.attr;
3946 
3947    if (start_of_object) {
3948       start_of_object = false;
3949       current_object->type = yyschema.searchClass(yytext);
3950       if (!current_object->type) {
3951          handle_error("Error: unknown class \"%s\"\n", yytext);
3952          yylval.attr->type   = NULL;
3953 //(*current_object) += yylval.attr;
3954          BEGIN(SKIP_OBJECT);
3955          LEXER_RETURN(TKN_UNKNOWN_CLASS);
3956       }
3957    }
3958 
3959    yylval.attr->type   = current_object->type->searchAttr(yytext);
3960    yylval.attr->object = current_object;
3961 
3962 //   (*current_object) += yylval.attr;
3963 
3964    if (! yylval.attr->type) {
3965       if (! schema.isForgiving())
3966          handle_error("Error: unknown attribute %s of class %s\n",
3967                       yytext, current_object->type->name);
3968       BEGIN(FREETEXT);
3969       LEXER_RETURN(ATTR_FREETEXT);
3970    }
3971 
3972    if (yylval.attr->type->isObsolete())
3973       handle_warning("Warning: attribute %s of class %s is now obsolete\n", 
3974               yytext, current_object->type->name);
3975 
3976    if (!yylval.attr->type->shouldParse()) { // may be free text?
3977       BEGIN(FREETEXT);
3978       LEXER_RETURN(ATTR_FREETEXT);
3979    } else {
3980       if (yylval.attr->type->syntax() == ATTR_GENERIC) {
3981          genericMode = true;
3982          BEGIN(GENERICMODE);
3983       } else if (yylval.attr->type->syntax() == ATTR_BLOBS) {
3984          genericMode = true;
3985          BEGIN(BLOBMODE);
3986       } else {
3987          genericMode = false;
3988          BEGIN(POLICYMODE);
3989       }
3990       LEXER_RETURN(yylval.attr->type->syntax());
3991    }
3992 }
3993         YY_BREAK
3994 case 2:
3995 YY_RULE_SETUP
3996 #line 188 "rpsl.l"
3997 {
3998    if (current_attribute)
3999       current_attribute->len = scan_position - current_attribute->offset;
4000    LEXER_RETURN(TKN_EOO);
4001 }
4002         YY_BREAK
4003 case YY_STATE_EOF(INITIAL):
4004 case YY_STATE_EOF(STRING):
4005 case YY_STATE_EOF(EXPECT_OPERATOR):
4006 case YY_STATE_EOF(FREETEXT):
4007 case YY_STATE_EOF(BLOBMODE):
4008 case YY_STATE_EOF(GENERICMODE):
4009 case YY_STATE_EOF(SKIP_OBJECT):
4010 case YY_STATE_EOF(POLICYMODE):
4011 #line 194 "rpsl.l"
4012 {
4013    yy_delete_buffer(rpsl_buffer);
4014    rpsl_buffer = (YY_BUFFER_STATE) NULL;
4015    if (current_attribute)
4016       current_attribute->len = scan_position - current_attribute->offset;
4017    BEGIN(INITIAL);
4018    yyterminate();
4019 }
4020         YY_BREAK
4021 case 3:
4022 YY_RULE_SETUP
4023 #line 203 "rpsl.l"
4024 
4025         YY_BREAK
4026 case 4:
4027 YY_RULE_SETUP
4028 #line 205 "rpsl.l"
4029 { // not a valid line
4030    current_attribute = NULL;
4031    handle_error("Error: valid lines start with attribute names, spaces or #\n");
4032    BEGIN(FREETEXT);
4033    LEXER_RETURN(TKN_ERROR);
4034 }
4035         YY_BREAK
4036 
4037 case 5:
4038 YY_RULE_SETUP
4039 #line 213 "rpsl.l"
4040 {
4041      BEGIN(INITIAL);
4042      if (current_attribute)
4043         current_attribute->len = scan_position - current_attribute->offset;
4044      LEXER_RETURN(TKN_EOO);
4045   }
4046         YY_BREAK
4047 case 6:
4048 YY_RULE_SETUP
4049 #line 219 "rpsl.l"
4050 errorNewLine;
4051         YY_BREAK
4052 case 7:
4053 YY_RULE_SETUP
4054 #line 220 "rpsl.l"
4055 ;
4056         YY_BREAK
4057 
4058 
4059 case 8:
4060 YY_RULE_SETUP
4061 #line 224 "rpsl.l"
4062 errorNewLine; errorColon++; // line continuation with +
4063         YY_BREAK
4064 case 9:
4065 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
4066 yy_c_buf_p = yy_cp = yy_bp + 1;
4067 YY_DO_BEFORE_ACTION; /* set up yytext again */
4068 YY_RULE_SETUP
4069 #line 225 "rpsl.l"
4070 errorNewLine; // line continuation with space or comment
4071         YY_BREAK
4072 case 10:
4073 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
4074 yy_c_buf_p = yy_cp = yy_bp + 1;
4075 YY_DO_BEFORE_ACTION; /* set up yytext again */
4076 YY_RULE_SETUP
4077 #line 226 "rpsl.l"
4078 { // end of attribute and may be end of object too
4079       BEGIN(INITIAL);
4080       if (current_attribute)
4081          current_attribute->len = scan_position - current_attribute->offset;
4082       LEXER_RETURN(TKN_EOA);
4083    }
4084         YY_BREAK
4085 case 11:
4086 YY_RULE_SETUP
4087 #line 232 "rpsl.l"
4088 ; // skip white space
4089         YY_BREAK
4090 case 12:
4091 YY_RULE_SETUP
4092 #line 233 "rpsl.l"
4093 ; // skip comment 
4094         YY_BREAK
4095 
4096 // dont parse anything, keep going till EOA
4097 case 13:
4098 YY_RULE_SETUP
4099 #line 237 "rpsl.l"
4100 ; // this rule needs to be after \n rules
4101         YY_BREAK
4102 
4103 
4104 case 14:
4105 YY_RULE_SETUP
4106 #line 241 "rpsl.l"
4107 {
4108      yylval.string = strdup(yytext);
4109      LEXER_RETURN(TKN_BLOB);
4110   }
4111         YY_BREAK
4112 
4113 
4114 case 15:
4115 YY_RULE_SETUP
4116 #line 248 "rpsl.l"
4117 {
4118      tm ts;
4119      bzero((char *) &ts, sizeof(ts));
4120 
4121      int date, zone_hours, zone_mins;
4122      sscanf(yytext, "%d %d:%d:%d %d:%d", 
4123                     &date, 
4124                     &ts.tm_hour, &ts.tm_min, &ts.tm_sec,
4125                     &zone_hours, &zone_mins);
4126 
4127      ts.tm_mday = date % 100; date /= 100;
4128      ts.tm_mon  = date % 100 - 1; date /= 100;
4129      ts.tm_year = date - 1900;
4130    
4131      if (ts.tm_mday > 31) {
4132         handle_error("Error: Invalid day %d\n", ts.tm_mday);
4133         LEXER_RETURN(TKN_ERROR);
4134      }
4135      if (ts.tm_mon > 11) {
4136         handle_error("Error: Invalid month %d\n", ts.tm_mon);
4137         LEXER_RETURN(TKN_ERROR);
4138      }
4139      if (ts.tm_year < 70) {
4140         handle_error("Error: Invalid year %d\n", ts.tm_year);
4141         LEXER_RETURN(TKN_ERROR);
4142      }
4143      if (ts.tm_sec > 59) {
4144         handle_error("Error: Invalid sec %d\n", ts.tm_sec);
4145         LEXER_RETURN(TKN_ERROR);
4146      }
4147      if (ts.tm_min > 59) {
4148         handle_error("Error: Invalid min %d\n", ts.tm_min);
4149         LEXER_RETURN(TKN_ERROR);
4150      }
4151      if (ts.tm_hour > 23) {
4152         handle_error("Error: Invalid hour %d\n", ts.tm_hour);
4153         LEXER_RETURN(TKN_ERROR);
4154      }
4155      if (zone_mins > 59) {
4156         handle_error("Error: Invalid zone min %d\n", zone_mins);
4157         LEXER_RETURN(TKN_ERROR);
4158      }
4159      if (zone_hours > 23) {
4160         handle_error("Error: Invalid zone hour %d\n", zone_hours);
4161         LEXER_RETURN(TKN_ERROR);
4162      }
4163 
4164      // this fiddling with TZ is necessary for mktime to use utc as timezone
4165      // it sucks, there's got to be a better way
4166      time_t result = (time_t) mktime(&ts);
4167      result -= (time_t) timezone;
4168 /*
4169      char *TZ=getenv("TZ");
4170      if (TZ)
4171         TZ = strdup(TZ);
4172      setenv("TZ", "", 1);
4173      time_t result = mktime(&ts);
4174      if (TZ) {
4175         setenv("TZ", TZ, 1);
4176         free(TZ);
4177      } else
4178         unsetenv("TZ");
4179 */
4180      if (zone_hours < 0)
4181         zone_mins *= -1;
4182 
4183      result += zone_mins * 60 + zone_hours * 60 * 60;
4184    
4185      yylval.time = result;
4186      LEXER_RETURN(TKN_TIMESTAMP);
4187   }
4188         YY_BREAK
4189 
4190 
4191 case 16:
4192 YY_RULE_SETUP
4193 #line 323 "rpsl.l"
4194 {
4195      if(current_attribute->type->syntax() == ATTR_AUTH){
4196      yylval.string = strdup(yytext);
4197      LEXER_RETURN(TKN_CRYPTEDPW);
4198      }else{
4199        scan_position -= yyleng; errorColon -= yyleng;
4200        REJECT;
4201      }
4202   }
4203         YY_BREAK
4204 case 17:
4205 YY_RULE_SETUP
4206 #line 333 "rpsl.l"
4207 {
4208      // The following code causes problem on Solaris since long long int
4209      // is not standardized yet 
4210      // sscanf(yytext, "%Ld", &(yylval.i));
4211      if(current_attribute->type->syntax() == ATTR_PHONE){
4212        if(validIntForPhone(yytext)){
4213          atollRA(yytext, &yylval.i);
4214          LEXER_RETURN(TKN_INT);
4215        }else{
4216          scan_position -= yyleng; errorColon -= yyleng;
4217          REJECT;
4218        }
4219      }else{
4220        atollRA(yytext, &yylval.i);
4221        LEXER_RETURN(TKN_INT);
4222      }
4223     /* atollRA(yytext, &yylval.i);
4224      LEXER_RETURN(TKN_INT);*/
4225   }
4226         YY_BREAK
4227 case 18:
4228 YY_RULE_SETUP
4229 #line 353 "rpsl.l"
4230 {
4231      unsigned int ms, ls;
4232      char *colon = strchr(yytext, ':');
4233      *colon = 0;
4234      ms = atoi(yytext);
4235      ls = atoi(colon+1);
4236      if (ms > 65535 || ls > 65535)
4237         LEXER_RETURN(TKN_ERROR);
4238 
4239      yylval.i = (ms << 16) + ls;
4240      LEXER_RETURN(TKN_INT);
4241   }
4242         YY_BREAK
4243 case 19:
4244 YY_RULE_SETUP
4245 #line 366 "rpsl.l"
4246 {
4247      yylval.real = atof(yytext);
4248      LEXER_RETURN(TKN_REAL);
4249   }
4250         YY_BREAK
4251 case 20:
4252 YY_RULE_SETUP
4253 #line 371 "rpsl.l"
4254 {
4255      string_buf_ptr = string_buf; 
4256      oldStart = YY_START;
4257      BEGIN(STRING);
4258   }
4259         YY_BREAK
4260 case 21:
4261 YY_RULE_SETUP
4262 #line 377 "rpsl.l"
4263 {
4264      yylval.ip = new IPAddr(yytext);
4265      LEXER_RETURN(TKN_IPV4);
4266   }
4267         YY_BREAK
4268 case 22:
4269 YY_RULE_SETUP
4270 #line 382 "rpsl.l"
4271 {
4272      yylval.string = strdup(yytext);
4273      LEXER_RETURN(TKN_PRFXV6);
4274   }
4275         YY_BREAK
4276 case 23:
4277 YY_RULE_SETUP
4278 #line 387 "rpsl.l"
4279 {
4280      yylval.string = strdup(yytext);
4281      if(validIPv6(yylval.string)){
4282         LEXER_RETURN(TKN_PRFXV6);
4283      }else{
4284         handle_error("Error: Invalid IPv6 prefix\n");
4285         BEGIN(FREETEXT);
4286         LEXER_RETURN(TKN_ERROR);
4287      }
4288   }
4289         YY_BREAK
4290 case 24:
4291 YY_RULE_SETUP
4292 #line 398 "rpsl.l"
4293 {
4294      yylval.prfx = new Prefix(yytext);
4295      LEXER_RETURN(TKN_PRFXV4);
4296   }
4297         YY_BREAK
4298 case 25:
4299 YY_RULE_SETUP
4300 #line 403 "rpsl.l"
4301 {
4302      yylval.prfxrng = new PrefixRange(yytext);
4303      LEXER_RETURN(TKN_PRFXV4RNG);
4304   }
4305         YY_BREAK
4306 case 26:
4307 YY_RULE_SETUP
4308 #line 408 "rpsl.l"
4309 {
4310       /*printf("DEBUG: lexer: matched a nichdl candidate (%s)\n",yytext);*/
4311       if(current_attribute->type->syntax() != ATTR_NICHDL){
4312         /*printf("DEBUG: lexer: This is not a nichdl attribute, rejecting\n");*/
4313         scan_position -= yyleng; errorColon -= yyleng;
4314         REJECT;
4315       }else{
4316         yylval.string = strdup(yytext);
4317         LEXER_RETURN(TKN_NICHDL);
4318       }
4319   }
4320         YY_BREAK
4321 /* The order of these rules are important */
4322 case 27:
4323 YY_RULE_SETUP
4324 #line 422 "rpsl.l"
4325 {
4326      yylval.i = atoi(yytext+2);
4327      LEXER_RETURN(TKN_ASNO);
4328   }
4329         YY_BREAK
4330 case 28:
4331 YY_RULE_SETUP
4332 #line 427 "rpsl.l"
4333 {
4334      yylval.sid = symbols.symID(yytext);
4335      LEXER_RETURN(TKN_ASNAME);
4336   }
4337         YY_BREAK
4338 case 29:
4339 YY_RULE_SETUP
4340 #line 432 "rpsl.l"
4341 {
4342      yylval.sid = symbols.symID(yytext);
4343      LEXER_RETURN(TKN_RSNAME);
4344   }
4345         YY_BREAK
4346 case 30:
4347 YY_RULE_SETUP
4348 #line 437 "rpsl.l"
4349 {
4350      yylval.sid = symbols.symID(yytext);
4351      LEXER_RETURN(TKN_RTRSNAME);
4352   }
4353         YY_BREAK
4354 case 31:
4355 YY_RULE_SETUP
4356 #line 442 "rpsl.l"
4357 {
4358      yylval.sid = symbols.symID(yytext);
4359      LEXER_RETURN(TKN_PRNGNAME);
4360   }
4361         YY_BREAK
4362 case 32:
4363 YY_RULE_SETUP
4364 #line 447 "rpsl.l"
4365 {
4366      yylval.sid = symbols.symID(yytext);
4367      LEXER_RETURN(TKN_FLTRNAME);
4368   }
4369         YY_BREAK
4370 case 33:
4371 YY_RULE_SETUP
4372 #line 452 "rpsl.l"
4373 {
4374      yylval.i = 1;
4375      LEXER_RETURN(TKN_BOOLEAN);
4376   }
4377         YY_BREAK
4378 case 34:
4379 YY_RULE_SETUP
4380 #line 457 "rpsl.l"
4381 {
4382      yylval.i = 0;
4383      LEXER_RETURN(TKN_BOOLEAN);
4384   }
4385         YY_BREAK
4386 case 35:
4387 YY_RULE_SETUP
4388 #line 462 "rpsl.l"
4389 { /* keycert name */  
4390      yylval.string = strdup(yytext);
4391      LEXER_RETURN(TKN_KEYCRTNAME);
4392   }
4393         YY_BREAK
4394 case 36:
4395 YY_RULE_SETUP
4396 #line 468 "rpsl.l"
4397 { /* reserved word or rp-attribute, or arbitrary name */
4398      if (!genericMode) {
4399         oldStart = YY_START;
4400 
4401         int index;
4402         if ((index  = yyschema.searchKeyword(yytext)) >= 0) {
4403            if (index == KEYW_OPERATOR)
4404               BEGIN(EXPECT_OPERATOR);
4405            LEXER_RETURN(index);
4406         }
4407      
4408         if ((yylval.rp_attr = yyschema.searchRPAttr(yytext)) != NULL) {
4409            BEGIN(EXPECT_OPERATOR);
4410            LEXER_RETURN(TKN_RP_ATTR);
4411         }
4412      }
4413 
4414      yylval.string = strdup(yytext);
4415      LEXER_RETURN(TKN_WORD);
4416   }
4417         YY_BREAK
4418 case 37:
4419 YY_RULE_SETUP
4420 #line 489 "rpsl.l"
4421 { /* rp-attribute.method or DNS name */
4422      if (!genericMode) {
4423         char *p = strchr(yytext, '.');
4424         *p = 0;
4425 
4426         if ((yylval.rp_attr = yyschema.searchRPAttr(yytext)) != NULL) {
4427            *p = '.';
4428            YYLESS((p - yytext));
4429            LEXER_RETURN(TKN_RP_ATTR);
4430         }
4431 
4432         *p = '.';
4433      }
4434 
4435      yylval.sid = symbols.symID(yytext);
4436      LEXER_RETURN(TKN_DNS);
4437   }
4438         YY_BREAK
4439 case 38:
4440 YY_RULE_SETUP
4441 #line 507 "rpsl.l"
4442 { /* DNS name */
4443      yylval.sid = symbols.symID(yytext);
4444      LEXER_RETURN(TKN_DNS);
4445   }
4446         YY_BREAK
4447 case 39:
4448 YY_RULE_SETUP
4449 #line 512 "rpsl.l"
4450 { /* email */  
4451      yylval.string = strdup(yytext);
4452      LEXER_RETURN(TKN_EMAIL);
4453   }
4454         YY_BREAK
4455 case 40:
4456 YY_RULE_SETUP
4457 #line 519 "rpsl.l"
4458 {
4459      if (*yytext <= 0) {
4460         handle_error("Error: Non-ASCII character encountered\n");
4461         LEXER_RETURN(TKN_ERROR);
4462      } else
4463         LEXER_RETURN(*yytext);
4464   }
4465         YY_BREAK
4466 
4467 
4468 case 41:
4469 YY_RULE_SETUP
4470 #line 529 "rpsl.l"
4471 {
4472       yylval.moreSpecOp = new FilterMS(0);
4473       LEXER_RETURN(OP_MS);
4474    }
4475         YY_BREAK
4476 case 42:
4477 YY_RULE_SETUP
4478 #line 534 "rpsl.l"
4479 {
4480       yylval.moreSpecOp = new FilterMS(1);
4481       LEXER_RETURN(OP_MS);
4482    }
4483         YY_BREAK
4484 case 43:
4485 YY_RULE_SETUP
4486 #line 539 "rpsl.l"
4487 {
4488       int i;
4489       sscanf(yytext, "^%d", &i);
4490       yylval.moreSpecOp = new FilterMS(2, i, i);
4491       LEXER_RETURN(OP_MS);
4492    }
4493         YY_BREAK
4494 case 44:
4495 YY_RULE_SETUP
4496 #line 546 "rpsl.l"
4497 {
4498       int i, j;
4499       sscanf(yytext, "^%d-%d", &i, &j);
4500       yylval.moreSpecOp = new FilterMS(2, i, j);
4501       LEXER_RETURN(OP_MS);
4502    }
4503         YY_BREAK
4504 case 45:
4505 YY_RULE_SETUP
4506 #line 553 "rpsl.l"
4507 LEXER_RETURN(TKN_3DOTS);
4508         YY_BREAK
4509 
4510 
4511 case 46:
4512 YY_RULE_SETUP
4513 #line 557 "rpsl.l"
4514 {
4515       yylval.string = strdup(yytext);
4516       BEGIN(oldStart);
4517       LEXER_RETURN(TKN_OPERATOR);
4518    }
4519         YY_BREAK
4520 case 47:
4521 YY_RULE_SETUP
4522 #line 563 "rpsl.l"
4523 {
4524       YYLESS(0); 
4525       BEGIN(oldStart);
4526    }
4527         YY_BREAK
4528 
4529 
4530 case 48:
4531 YY_RULE_SETUP
4532 #line 570 "rpsl.l"
4533 { /* saw closing quote - all done */
4534       BEGIN(oldStart);
4535       *string_buf_ptr = '\0';
4536       yylval.string = strdup(string_buf);
4537       LEXER_RETURN(TKN_STRING);
4538    }
4539         YY_BREAK
4540 case 49:
4541 YY_RULE_SETUP
4542 #line 577 "rpsl.l"
4543 {
4544       errorNewLine;
4545       handle_error("Error: unterminated string encountered\n");
4546       BEGIN(oldStart);
4547       if (current_attribute)
4548          current_attribute->len = scan_position - current_attribute->offset;
4549       LEXER_RETURN(TKN_EOA);
4550    }
4551         YY_BREAK
4552 case 50:
4553 YY_RULE_SETUP
4554 #line 586 "rpsl.l"
4555 {
4556       /* octal escape sequence */
4557       int result;
4558       
4559       (void) sscanf( yytext + 1, "%o", &result );
4560 
4561       if ( result > 0xff ) {
4562          handle_error("Error: octal escape sequence is out of bounds\n");
4563          BEGIN(oldStart);
4564          LEXER_RETURN(TKN_ERROR);
4565       }
4566 
4567       *string_buf_ptr++ = result;
4568    }
4569         YY_BREAK
4570 case 51:
4571 YY_RULE_SETUP
4572 #line 601 "rpsl.l"
4573 {                       /* like '\48' or '\0777777' */
4574       handle_error("Error: bad octal escape sequence\n");
4575       BEGIN(oldStart);
4576       LEXER_RETURN(TKN_ERROR);
4577    }
4578         YY_BREAK
4579 case 52:
4580 YY_RULE_SETUP
4581 #line 607 "rpsl.l"
4582 *string_buf_ptr++ = '\n';
4583         YY_BREAK
4584 case 53:
4585 YY_RULE_SETUP
4586 #line 608 "rpsl.l"
4587 *string_buf_ptr++ = '\t';
4588         YY_BREAK
4589 case 54:
4590 YY_RULE_SETUP
4591 #line 609 "rpsl.l"
4592 *string_buf_ptr++ = '\r';
4593         YY_BREAK
4594 case 55:
4595 YY_RULE_SETUP
4596 #line 610 "rpsl.l"
4597 *string_buf_ptr++ = '\b';
4598         YY_BREAK
4599 case 56:
4600 YY_RULE_SETUP
4601 #line 611 "rpsl.l"
4602 *string_buf_ptr++ = '\f';
4603         YY_BREAK
4604 case 57:
4605 YY_RULE_SETUP
4606 #line 613 "rpsl.l"
4607 *string_buf_ptr++ = yytext[1];
4608         YY_BREAK
4609 case 58:
4610 YY_RULE_SETUP
4611 #line 615 "rpsl.l"
4612 {
4613       char *yptr = yytext;
4614       while ( *yptr )
4615          *string_buf_ptr++ = *yptr++;
4616    }
4617         YY_BREAK
4618 case 59:
4619 YY_RULE_SETUP
4620 #line 621 "rpsl.l"
4621 *string_buf_ptr++ = yytext[0];
4622         YY_BREAK
4623 
4624 case 60:
4625 YY_RULE_SETUP
4626 #line 624 "rpsl.l"
4627 ECHO;
4628         YY_BREAK
4629 #line 4630 "lex.rpsl.c"
4630 
4631         case YY_END_OF_BUFFER:
4632                 {
4633                 /* Amount of text matched not including the EOB char. */
4634                 int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
4635 
4636                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
4637                 *yy_cp = yy_hold_char;
4638                 YY_RESTORE_YY_MORE_OFFSET
4639 
4640                 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
4641                         {
4642                         /* We're scanning a new file or input source.  It's
4643                          * possible that this happened because the user
4644                          * just pointed yyin at a new source and called
4645                          * yylex().  If so, then we have to assure
4646                          * consistency between yy_current_buffer and our
4647                          * globals.  Here is the right place to do so, because
4648                          * this is the first action (other than possibly a
4649                          * back-up) that will match for the new input source.
4650                          */
4651                         yy_n_chars = yy_current_buffer->yy_n_chars;
4652                         yy_current_buffer->yy_input_file = yyin;
4653                         yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
4654                         }
4655 
4656                 /* Note that here we test for yy_c_buf_p "<=" to the position
4657                  * of the first EOB in the buffer, since yy_c_buf_p will
4658                  * already have been incremented past the NUL character
4659                  * (since all states make transitions on EOB to the
4660                  * end-of-buffer state).  Contrast this with the test
4661                  * in input().
4662                  */
4663                 if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
4664                         { /* This was really a NUL. */
4665                         yy_state_type yy_next_state;
4666 
4667                         yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
4668 
4669                         yy_current_state = yy_get_previous_state();
4670 
4671                         /* Okay, we're now positioned to make the NUL
4672                          * transition.  We couldn't have
4673                          * yy_get_previous_state() go ahead and do it
4674                          * for us because it doesn't know how to deal
4675                          * with the possibility of jamming (and we don't
4676                          * want to build jamming into it because then it
4677                          * will run more slowly).
4678                          */
4679 
4680                         yy_next_state = yy_try_NUL_trans( yy_current_state );
4681 
4682                         yy_bp = yytext_ptr + YY_MORE_ADJ;
4683 
4684                         if ( yy_next_state )
4685                                 {
4686                                 /* Consume the NUL. */
4687                                 yy_cp = ++yy_c_buf_p;
4688                                 yy_current_state = yy_next_state;
4689                                 goto yy_match;
4690                                 }
4691 
4692                         else
4693                                 {
4694                                 yy_cp = yy_c_buf_p;
4695                                 goto yy_find_action;
4696                                 }
4697                         }
4698 
4699                 else switch ( yy_get_next_buffer() )
4700                         {
4701                         case EOB_ACT_END_OF_FILE:
4702                                 {
4703                                 yy_did_buffer_switch_on_eof = 0;
4704 
4705                                 if ( yywrap() )
4706                                         {
4707                                         /* Note: because we've taken care in
4708                                          * yy_get_next_buffer() to have set up
4709                                          * yytext, we can now set up
4710                                          * yy_c_buf_p so that if some total
4711                                          * hoser (like flex itself) wants to
4712                                          * call the scanner after we return the
4713                                          * YY_NULL, it'll still work - another
4714                                          * YY_NULL will get returned.
4715                                          */
4716                                         yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
4717 
4718                                         yy_act = YY_STATE_EOF(YY_START);
4719                                         goto do_action;
4720                                         }
4721 
4722                                 else
4723                                         {
4724                                         if ( ! yy_did_buffer_switch_on_eof )
4725                                                 YY_NEW_FILE;
4726                                         }
4727                                 break;
4728                                 }
4729 
4730                         case EOB_ACT_CONTINUE_SCAN:
4731                                 yy_c_buf_p =
4732                                         yytext_ptr + yy_amount_of_matched_text;
4733 
4734                                 yy_current_state = yy_get_previous_state();
4735 
4736                                 yy_cp = yy_c_buf_p;
4737                                 yy_bp = yytext_ptr + YY_MORE_ADJ;
4738                                 goto yy_match;
4739 
4740                         case EOB_ACT_LAST_MATCH:
4741                                 yy_c_buf_p =
4742                                 &yy_current_buffer->yy_ch_buf[yy_n_chars];
4743 
4744                                 yy_current_state = yy_get_previous_state();
4745 
4746                                 yy_cp = yy_c_buf_p;
4747                                 yy_bp = yytext_ptr + YY_MORE_ADJ;
4748                                 goto yy_find_action;
4749                         }
4750                 break;
4751                 }
4752 
4753         default:
4754                 YY_FATAL_ERROR(
4755                         "fatal flex scanner internal error--no action found" );
4756         } /* end of action switch */
4757                 } /* end of scanning one token */
4758         } /* end of yylex */
4759 
4760 
4761 /* yy_get_next_buffer - try to read in a new buffer
4762  *
4763  * Returns a code representing an action:
4764  *      EOB_ACT_LAST_MATCH -
4765  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
4766  *      EOB_ACT_END_OF_FILE - end of file
4767  */
4768 
4769 static int yy_get_next_buffer()
     /* [<][>][^][v][top][bottom][index][help] */
4770         {
4771         register char *dest = yy_current_buffer->yy_ch_buf;
4772         register char *source = yytext_ptr;
4773         register int number_to_move, i;
4774         int ret_val;
4775 
4776         if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
4777                 YY_FATAL_ERROR(
4778                 "fatal flex scanner internal error--end of buffer missed" );
4779 
4780         if ( yy_current_buffer->yy_fill_buffer == 0 )
4781                 { /* Don't try to fill the buffer, so this is an EOF. */
4782                 if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
4783                         {
4784                         /* We matched a single character, the EOB, so
4785                          * treat this as a final EOF.
4786                          */
4787                         return EOB_ACT_END_OF_FILE;
4788                         }
4789 
4790                 else
4791                         {
4792                         /* We matched some text prior to the EOB, first
4793                          * process it.
4794                          */
4795                         return EOB_ACT_LAST_MATCH;
4796                         }
4797                 }
4798 
4799         /* Try to read more data. */
4800 
4801         /* First move last chars to start of buffer. */
4802         number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
4803 
4804         for ( i = 0; i < number_to_move; ++i )
4805                 *(dest++) = *(source++);
4806 
4807         if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
4808                 /* don't do the read, it's not guaranteed to return an EOF,
4809                  * just force an EOF
4810                  */
4811                 yy_current_buffer->yy_n_chars = yy_n_chars = 0;
4812 
4813         else
4814                 {
4815                 int num_to_read =
4816                         yy_current_buffer->yy_buf_size - number_to_move - 1;
4817 
4818                 while ( num_to_read <= 0 )
4819                         { /* Not enough room in the buffer - grow it. */
4820 #ifdef YY_USES_REJECT
4821                         YY_FATAL_ERROR(
4822 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
4823 #else
4824 
4825                         /* just a shorter name for the current buffer */
4826                         YY_BUFFER_STATE b = yy_current_buffer;
4827 
4828                         int yy_c_buf_p_offset =
4829                                 (int) (yy_c_buf_p - b->yy_ch_buf);
4830 
4831                         if ( b->yy_is_our_buffer )
4832                                 {
4833                                 int new_size = b->yy_buf_size * 2;
4834 
4835                                 if ( new_size <= 0 )
4836                                         b->yy_buf_size += b->yy_buf_size / 8;
4837                                 else
4838                                         b->yy_buf_size *= 2;
4839 
4840                                 b->yy_ch_buf = (char *)
4841                                         /* Include room in for 2 EOB chars. */
4842                                         yy_flex_realloc( (void *) b->yy_ch_buf,
4843                                                          b->yy_buf_size + 2 );
4844                                 }
4845                         else
4846                                 /* Can't grow it, we don't own it. */
4847                                 b->yy_ch_buf = 0;
4848 
4849                         if ( ! b->yy_ch_buf )
4850                                 YY_FATAL_ERROR(
4851                                 "fatal error - scanner input buffer overflow" );
4852 
4853                         yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
4854 
4855                         num_to_read = yy_current_buffer->yy_buf_size -
4856                                                 number_to_move - 1;
4857 #endif
4858                         }
4859 
4860                 if ( num_to_read > YY_READ_BUF_SIZE )
4861                         num_to_read = YY_READ_BUF_SIZE;
4862 
4863                 /* Read in more data. */
4864                 YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
4865                         yy_n_chars, num_to_read );
4866 
4867                 yy_current_buffer->yy_n_chars = yy_n_chars;
4868                 }
4869 
4870         if ( yy_n_chars == 0 )
4871                 {
4872                 if ( number_to_move == YY_MORE_ADJ )
4873                         {
4874                         ret_val = EOB_ACT_END_OF_FILE;
4875                         yyrestart( yyin );
4876                         }
4877 
4878                 else
4879                         {
4880                         ret_val = EOB_ACT_LAST_MATCH;
4881                         yy_current_buffer->yy_buffer_status =
4882                                 YY_BUFFER_EOF_PENDING;
4883                         }
4884                 }
4885 
4886         else
4887                 ret_val = EOB_ACT_CONTINUE_SCAN;
4888 
4889         yy_n_chars += number_to_move;
4890         yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
4891         yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
4892 
4893         yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
4894 
4895         return ret_val;
4896         }
4897 
4898 
4899 /* yy_get_previous_state - get the state just before the EOB char was reached */
4900 
4901 static yy_state_type yy_get_previous_state()
     /* [<][>][^][v][top][bottom][index][help] */
4902         {
4903         register yy_state_type yy_current_state;
4904         register char *yy_cp;
4905 
4906         yy_current_state = yy_start;
4907         yy_current_state += YY_AT_BOL();
4908         yy_state_ptr = yy_state_buf;
4909         *yy_state_ptr++ = yy_current_state;
4910 
4911         for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
4912                 {
4913                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
4914                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4915                         {
4916                         yy_current_state = (int) yy_def[yy_current_state];
4917                         if ( yy_current_state >= 851 )
4918                                 yy_c = yy_meta[(unsigned int) yy_c];
4919                         }
4920                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
4921                 *yy_state_ptr++ = yy_current_state;
4922                 }
4923 
4924         return yy_current_state;
4925         }
4926 
4927 
4928 /* yy_try_NUL_trans - try to make a transition on the NUL character
4929  *
4930  * synopsis
4931  *      next_state = yy_try_NUL_trans( current_state );
4932  */
4933 
4934 #ifdef YY_USE_PROTOS
4935 static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
     /* [<][>][^][v][top][bottom][index][help] */
4936 #else
4937 static yy_state_type yy_try_NUL_trans( yy_current_state )
4938 yy_state_type yy_current_state;
4939 #endif
4940         {
4941         register int yy_is_jam;
4942 
4943         register YY_CHAR yy_c = 1;
4944         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4945                 {
4946                 yy_current_state = (int) yy_def[yy_current_state];
4947                 if ( yy_current_state >= 851 )
4948                         yy_c = yy_meta[(unsigned int) yy_c];
4949                 }
4950         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
4951         yy_is_jam = (yy_current_state == 850);
4952         if ( ! yy_is_jam )
4953                 *yy_state_ptr++ = yy_current_state;
4954 
4955         return yy_is_jam ? 0 : yy_current_state;
4956         }
4957 
4958 
4959 #ifndef YY_NO_UNPUT
4960 #ifdef YY_USE_PROTOS
4961 static void yyunput( int c, register char *yy_bp )
     /* [<][>][^][v][top][bottom][index][help] */
4962 #else
4963 static void yyunput( c, yy_bp )
4964 int c;
4965 register char *yy_bp;
4966 #endif
4967         {
4968         register char *yy_cp = yy_c_buf_p;
4969 
4970         /* undo effects of setting up yytext */
4971         *yy_cp = yy_hold_char;
4972 
4973         if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
4974                 { /* need to shift things up to make room */
4975                 /* +2 for EOB chars. */
4976                 register int number_to_move = yy_n_chars + 2;
4977                 register char *dest = &yy_current_buffer->yy_ch_buf[
4978                                         yy_current_buffer->yy_buf_size + 2];
4979                 register char *source =
4980                                 &yy_current_buffer->yy_ch_buf[number_to_move];
4981 
4982                 while ( source > yy_current_buffer->yy_ch_buf )
4983                         *--dest = *--source;
4984 
4985                 yy_cp += (int) (dest - source);
4986                 yy_bp += (int) (dest - source);
4987                 yy_current_buffer->yy_n_chars =
4988                         yy_n_chars = yy_current_buffer->yy_buf_size;
4989 
4990                 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
4991                         YY_FATAL_ERROR( "flex scanner push-back overflow" );
4992                 }
4993 
4994         *--yy_cp = (char) c;
4995 
4996 
4997         yytext_ptr = yy_bp;
4998         yy_hold_char = *yy_cp;
4999         yy_c_buf_p = yy_cp;
5000         }
5001 #endif  /* ifndef YY_NO_UNPUT */
5002 
5003 
5004 #ifdef __cplusplus
5005 static int yyinput()
     /* [<][>][^][v][top][bottom][index][help] */
5006 #else
5007 static int input()
5008 #endif
5009         {
5010         int c;
5011 
5012         *yy_c_buf_p = yy_hold_char;
5013 
5014         if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
5015                 {
5016                 /* yy_c_buf_p now points to the character we want to return.
5017                  * If this occurs *before* the EOB characters, then it's a
5018                  * valid NUL; if not, then we've hit the end of the buffer.
5019                  */
5020                 if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
5021                         /* This was really a NUL. */
5022                         *yy_c_buf_p = '\0';
5023 
5024                 else
5025                         { /* need more input */
5026                         int offset = yy_c_buf_p - yytext_ptr;
5027                         ++yy_c_buf_p;
5028 
5029                         switch ( yy_get_next_buffer() )
5030                                 {
5031                                 case EOB_ACT_LAST_MATCH:
5032                                         /* This happens because yy_g_n_b()
5033                                          * sees that we've accumulated a
5034                                          * token and flags that we need to
5035                                          * try matching the token before
5036                                          * proceeding.  But for input(),
5037                                          * there's no matching to consider.
5038                                          * So convert the EOB_ACT_LAST_MATCH
5039                                          * to EOB_ACT_END_OF_FILE.
5040                                          */
5041 
5042                                         /* Reset buffer status. */
5043                                         yyrestart( yyin );
5044 
5045                                         /* fall through */
5046 
5047                                 case EOB_ACT_END_OF_FILE:
5048                                         {
5049                                         if ( yywrap() )
5050                                                 return EOF;
5051 
5052                                         if ( ! yy_did_buffer_switch_on_eof )
5053                                                 YY_NEW_FILE;
5054 #ifdef __cplusplus
5055                                         return yyinput();
5056 #else
5057                                         return input();
5058 #endif
5059                                         }
5060 
5061                                 case EOB_ACT_CONTINUE_SCAN:
5062                                         yy_c_buf_p = yytext_ptr + offset;
5063                                         break;
5064                                 }
5065                         }
5066                 }
5067 
5068         c = *(unsigned char *) yy_c_buf_p;      /* cast for 8-bit char's */
5069         *yy_c_buf_p = '\0';     /* preserve yytext */
5070         yy_hold_char = *++yy_c_buf_p;
5071 
5072         yy_current_buffer->yy_at_bol = (c == '\n');
5073 
5074         return c;
5075         }
5076 
5077 
5078 #ifdef YY_USE_PROTOS
5079 void yyrestart( FILE *input_file )
     /* [<][>][^][v][top][bottom][index][help] */
5080 #else
5081 void yyrestart( input_file )
5082 FILE *input_file;
5083 #endif
5084         {
5085         if ( ! yy_current_buffer )
5086                 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
5087 
5088         yy_init_buffer( yy_current_buffer, input_file );
5089         yy_load_buffer_state();
5090         }
5091 
5092 
5093 #ifdef YY_USE_PROTOS
5094 void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
     /* [<][>][^][v][top][bottom][index][help] */
5095 #else
5096 void yy_switch_to_buffer( new_buffer )
5097 YY_BUFFER_STATE new_buffer;
5098 #endif
5099         {
5100         if ( yy_current_buffer == new_buffer )
5101                 return;
5102 
5103         if ( yy_current_buffer )
5104                 {
5105                 /* Flush out information for old buffer. */
5106                 *yy_c_buf_p = yy_hold_char;
5107                 yy_current_buffer->yy_buf_pos = yy_c_buf_p;
5108                 yy_current_buffer->yy_n_chars = yy_n_chars;
5109                 }
5110 
5111         yy_current_buffer = new_buffer;
5112         yy_load_buffer_state();
5113 
5114         /* We don't actually know whether we did this switch during
5115          * EOF (yywrap()) processing, but the only time this flag
5116          * is looked at is after yywrap() is called, so it's safe
5117          * to go ahead and always set it.
5118          */
5119         yy_did_buffer_switch_on_eof = 1;
5120         }
5121 
5122 
5123 #ifdef YY_USE_PROTOS
5124 void yy_load_buffer_state( void )
     /* [<][>][^][v][top][bottom][index][help] */
5125 #else
5126 void yy_load_buffer_state()
5127 #endif
5128         {
5129         yy_n_chars = yy_current_buffer->yy_n_chars;
5130         yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
5131         yyin = yy_current_buffer->yy_input_file;
5132         yy_hold_char = *yy_c_buf_p;
5133         }
5134 
5135 
5136 #ifdef YY_USE_PROTOS
5137 YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
     /* [<][>][^][v][top][bottom][index][help] */
5138 #else
5139 YY_BUFFER_STATE yy_create_buffer( file, size )
5140 FILE *file;
5141 int size;
5142 #endif
5143         {
5144         YY_BUFFER_STATE b;
5145 
5146         b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
5147         if ( ! b )
5148                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
5149 
5150         b->yy_buf_size = size;
5151 
5152         /* yy_ch_buf has to be 2 characters longer than the size given because
5153          * we need to put in 2 end-of-buffer characters.
5154          */
5155         b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
5156         if ( ! b->yy_ch_buf )
5157                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
5158 
5159         b->yy_is_our_buffer = 1;
5160 
5161         yy_init_buffer( b, file );
5162 
5163         return b;
5164         }
5165 
5166 
5167 #ifdef YY_USE_PROTOS
5168 void yy_delete_buffer( YY_BUFFER_STATE b )
     /* [<][>][^][v][top][bottom][index][help] */
5169 #else
5170 void yy_delete_buffer( b )
5171 YY_BUFFER_STATE b;
5172 #endif
5173         {
5174         if ( ! b )
5175                 return;
5176 
5177         if ( b == yy_current_buffer )
5178                 yy_current_buffer = (YY_BUFFER_STATE) 0;
5179 
5180         if ( b->yy_is_our_buffer )
5181                 yy_flex_free( (void *) b->yy_ch_buf );
5182 
5183         yy_flex_free( (void *) b );
5184         }
5185 
5186 
5187 #ifndef YY_ALWAYS_INTERACTIVE
5188 #ifndef YY_NEVER_INTERACTIVE
5189 extern int isatty YY_PROTO(( int ));
5190 #endif
5191 #endif
5192 
5193 #ifdef YY_USE_PROTOS
5194 void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
     /* [<][>][^][v][top][bottom][index][help] */
5195 #else
5196 void yy_init_buffer( b, file )
5197 YY_BUFFER_STATE b;
5198 FILE *file;
5199 #endif
5200 
5201 
5202         {
5203         yy_flush_buffer( b );
5204 
5205         b->yy_input_file = file;
5206         b->yy_fill_buffer = 1;
5207 
5208 #if YY_ALWAYS_INTERACTIVE
5209         b->yy_is_interactive = 1;
5210 #else
5211 #if YY_NEVER_INTERACTIVE
5212         b->yy_is_interactive = 0;
5213 #else
5214         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
5215 #endif
5216 #endif
5217         }
5218 
5219 
5220 #ifdef YY_USE_PROTOS
5221 void yy_flush_buffer( YY_BUFFER_STATE b )
     /* [<][>][^][v][top][bottom][index][help] */
5222 #else
5223 void yy_flush_buffer( b )
5224 YY_BUFFER_STATE b;
5225 #endif
5226 
5227         {
5228         if ( ! b )
5229                 return;
5230 
5231         b->yy_n_chars = 0;
5232 
5233         /* We always need two end-of-buffer characters.  The first causes
5234          * a transition to the end-of-buffer state.  The second causes
5235          * a jam in that state.
5236          */
5237         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
5238         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
5239 
5240         b->yy_buf_pos = &b->yy_ch_buf[0];
5241 
5242         b->yy_at_bol = 1;
5243         b->yy_buffer_status = YY_BUFFER_NEW;
5244 
5245         if ( b == yy_current_buffer )
5246                 yy_load_buffer_state();
5247         }
5248 
5249 
5250 #ifndef YY_NO_SCAN_BUFFER
5251 #ifdef YY_USE_PROTOS
5252 YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
     /* [<][>][^][v][top][bottom][index][help] */
5253 #else
5254 YY_BUFFER_STATE yy_scan_buffer( base, size )
5255 char *base;
5256 yy_size_t size;
5257 #endif
5258         {
5259         YY_BUFFER_STATE b;
5260 
5261         if ( size < 2 ||
5262              base[size-2] != YY_END_OF_BUFFER_CHAR ||
5263              base[size-1] != YY_END_OF_BUFFER_CHAR )
5264                 /* They forgot to leave room for the EOB's. */
5265                 return 0;
5266 
5267         b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
5268         if ( ! b )
5269                 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
5270 
5271         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
5272         b->yy_buf_pos = b->yy_ch_buf = base;
5273         b->yy_is_our_buffer = 0;
5274         b->yy_input_file = 0;
5275         b->yy_n_chars = b->yy_buf_size;
5276         b->yy_is_interactive = 0;
5277         b->yy_at_bol = 1;
5278         b->yy_fill_buffer = 0;
5279         b->yy_buffer_status = YY_BUFFER_NEW;
5280 
5281         yy_switch_to_buffer( b );
5282 
5283         return b;
5284         }
5285 #endif
5286 
5287 
5288 #ifndef YY_NO_SCAN_STRING
5289 #ifdef YY_USE_PROTOS
5290 YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
     /* [<][>][^][v][top][bottom][index][help] */
5291 #else
5292 YY_BUFFER_STATE yy_scan_string( yy_str )
5293 yyconst char *yy_str;
5294 #endif
5295         {
5296         int len;
5297         for ( len = 0; yy_str[len]; ++len )
5298                 ;
5299 
5300         return yy_scan_bytes( yy_str, len );
5301         }
5302 #endif
5303 
5304 
5305 #ifndef YY_NO_SCAN_BYTES
5306 #ifdef YY_USE_PROTOS
5307 YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
     /* [<][>][^][v][top][bottom][index][help] */
5308 #else
5309 YY_BUFFER_STATE yy_scan_bytes( bytes, len )
5310 yyconst char *bytes;
5311 int len;
5312 #endif
5313         {
5314         YY_BUFFER_STATE b;
5315         char *buf;
5316         yy_size_t n;
5317         int i;
5318 
5319         /* Get memory for full buffer, including space for trailing EOB's. */
5320         n = len + 2;
5321         buf = (char *) yy_flex_alloc( n );
5322         if ( ! buf )
5323                 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
5324 
5325         for ( i = 0; i < len; ++i )
5326                 buf[i] = bytes[i];
5327 
5328         buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
5329 
5330         b = yy_scan_buffer( buf, n );
5331         if ( ! b )
5332                 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
5333 
5334         /* It's okay to grow etc. this buffer, and we should throw it
5335          * away when we're done.
5336          */
5337         b->yy_is_our_buffer = 1;
5338 
5339         return b;
5340         }
5341 #endif
5342 
5343 
5344 #ifndef YY_NO_PUSH_STATE
5345 #ifdef YY_USE_PROTOS
5346 static void yy_push_state( int new_state )
     /* [<][>][^][v][top][bottom][index][help] */
5347 #else
5348 static void yy_push_state( new_state )
5349 int new_state;
5350 #endif
5351         {
5352         if ( yy_start_stack_ptr >= yy_start_stack_depth )
5353                 {
5354                 yy_size_t new_size;
5355 
5356                 yy_start_stack_depth += YY_START_STACK_INCR;
5357                 new_size = yy_start_stack_depth * sizeof( int );
5358 
5359                 if ( ! yy_start_stack )
5360                         yy_start_stack = (int *) yy_flex_alloc( new_size );
5361 
5362                 else
5363                         yy_start_stack = (int *) yy_flex_realloc(
5364                                         (void *) yy_start_stack, new_size );
5365 
5366                 if ( ! yy_start_stack )
5367                         YY_FATAL_ERROR(
5368                         "out of memory expanding start-condition stack" );
5369                 }
5370 
5371         yy_start_stack[yy_start_stack_ptr++] = YY_START;
5372 
5373         BEGIN(new_state);
5374         }
5375 #endif
5376 
5377 
5378 #ifndef YY_NO_POP_STATE
5379 static void yy_pop_state()
     /* [<][>][^][v][top][bottom][index][help] */
5380         {
5381         if ( --yy_start_stack_ptr < 0 )
5382                 YY_FATAL_ERROR( "start-condition stack underflow" );
5383 
5384         BEGIN(yy_start_stack[yy_start_stack_ptr]);
5385         }
5386 #endif
5387 
5388 
5389 #ifndef YY_NO_TOP_STATE
5390 static int yy_top_state()
     /* [<][>][^][v][top][bottom][index][help] */
5391         {
5392         return yy_start_stack[yy_start_stack_ptr - 1];
5393         }
5394 #endif
5395 
5396 #ifndef YY_EXIT_FAILURE
5397 #define YY_EXIT_FAILURE 2
5398 #endif
5399 
5400 #ifdef YY_USE_PROTOS
5401 static void yy_fatal_error( yyconst char msg[] )
     /* [<][>][^][v][top][bottom][index][help] */
5402 #else
5403 static void yy_fatal_error( msg )
5404 char msg[];
5405 #endif
5406         {
5407         (void) fprintf( stderr, "%s\n", msg );
5408         exit( YY_EXIT_FAILURE );
5409         }
5410 
5411 
5412 
5413 /* Redefine yyless() so it works in section 3 code. */
5414 
5415 #undef yyless
5416 #define yyless(n) \
     /* [<][>][^][v][top][bottom][index][help] */
5417         do \
5418                 { \
5419                 /* Undo effects of setting up yytext. */ \
5420                 yytext[yyleng] = yy_hold_char; \
5421                 yy_c_buf_p = yytext + n; \
5422                 yy_hold_char = *yy_c_buf_p; \
5423                 *yy_c_buf_p = '\0'; \
5424                 yyleng = n; \
5425                 } \
5426         while ( 0 )
5427 
5428 
5429 /* Internal utility routines. */
5430 
5431 #ifndef yytext_ptr
5432 #ifdef YY_USE_PROTOS
5433 static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
     /* [<][>][^][v][top][bottom][index][help] */
5434 #else
5435 static void yy_flex_strncpy( s1, s2, n )
5436 char *s1;
5437 yyconst char *s2;
5438 int n;
5439 #endif
5440         {
5441         register int i;
5442         for ( i = 0; i < n; ++i )
5443                 s1[i] = s2[i];
5444         }
5445 #endif
5446 
5447 #ifdef YY_NEED_STRLEN
5448 #ifdef YY_USE_PROTOS
5449 static int yy_flex_strlen( yyconst char *s )
     /* [<][>][^][v][top][bottom][index][help] */
5450 #else
5451 static int yy_flex_strlen( s )
5452 yyconst char *s;
5453 #endif
5454         {
5455         register int n;
5456         for ( n = 0; s[n]; ++n )
5457                 ;
5458 
5459         return n;
5460         }
5461 #endif
5462 
5463 
5464 #ifdef YY_USE_PROTOS
5465 static void *yy_flex_alloc( yy_size_t size )
     /* [<][>][^][v][top][bottom][index][help] */
5466 #else
5467 static void *yy_flex_alloc( size )
5468 yy_size_t size;
5469 #endif
5470         {
5471         return (void *) malloc( size );
5472         }
5473 
5474 #ifdef YY_USE_PROTOS
5475 static void *yy_flex_realloc( void *ptr, yy_size_t size )
     /* [<][>][^][v][top][bottom][index][help] */
5476 #else
5477 static void *yy_flex_realloc( ptr, size )
5478 void *ptr;
5479 yy_size_t size;
5480 #endif
5481         {
5482         /* The cast to (char *) in the following accommodates both
5483          * implementations that use char* generic pointers, and those
5484          * that use void* generic pointers.  It works with the latter
5485          * because both ANSI C and C++ allow castless assignment from
5486          * any pointer type to void*, and deal with argument conversions
5487          * as though doing an assignment.
5488          */
5489         return (void *) realloc( (char *) ptr, size );
5490         }
5491 
5492 #ifdef YY_USE_PROTOS
5493 static void yy_flex_free( void *ptr )
     /* [<][>][^][v][top][bottom][index][help] */
5494 #else
5495 static void yy_flex_free( ptr )
5496 void *ptr;
5497 #endif
5498         {
5499         free( ptr );
5500         }
5501 
5502 #if YY_MAIN
5503 int main()
     /* [<][>][^][v][top][bottom][index][help] */
5504         {
5505         yylex();
5506         return 0;
5507         }
5508 #endif
5509 #line 624 "rpsl.l"
5510 
5511 extern "C" {
5512 int yywrap () {
5513    return 1;
5514 }
5515 }
5516 
5517 void handle_error(char *s, ...) {
     /* [<][>][^][v][top][bottom][index][help] */
5518    current_object->has_error = true;
5519 
5520    char buffer[1024] = "***";
5521    va_list ap;
5522    va_start(ap, s);
5523    vsprintf(buffer+3, s, ap);
5524    va_end(ap);
5525 
5526    if (current_attribute)
5527       current_attribute->errors += buffer;
5528    else 
5529       current_object->errors += buffer;
5530 }
5531 
5532 void handle_object_error(char *s, ...) {
     /* [<][>][^][v][top][bottom][index][help] */
5533    current_object->has_error = true;
5534 
5535    char buffer[1024] = "***";
5536    va_list ap;
5537    va_start(ap, s);
5538    vsprintf(buffer+3, s, ap);
5539    va_end(ap);
5540 
5541    current_object->errors += buffer;
5542 }
5543 
5544 void rpslerror(char *, ...) {
     /* [<][>][^][v][top][bottom][index][help] */
5545    if (current_attribute) {
5546       current_attribute->errorLine = errorLine;
5547       current_attribute->errorColon = errorColon - yyleng;
5548       current_attribute->errorLeng  = yyleng;
5549    }
5550 }
5551 
5552 void handle_warning(char *s, ...) {
     /* [<][>][^][v][top][bottom][index][help] */
5553    current_object->has_warning = true;
5554 
5555    char buffer[1024];
5556    va_list ap;
5557    va_start(ap, s);
5558    vsprintf(buffer, s, ap);
5559    va_end(ap);
5560 
5561    if (current_attribute) 
5562       current_attribute->errors += buffer;
5563    else 
5564       current_object->errors += buffer;
5565 }
5566 
5567 void yy_scan_object(Object *o) {
     /* [<][>][^][v][top][bottom][index][help] */
5568    errorLine = 0; 
5569    errorColon = 0;
5570    current_object = o;
5571    current_attribute = NULL;
5572    start_of_object = true;
5573    scan_position = 0;
5574    genericMode = true;
5575 
5576    if (rpsl_buffer)
5577       yy_delete_buffer(rpsl_buffer);
5578    rpsl_buffer = yy_scan_bytes(o->contents, o->size);
5579    BEGIN(INITIAL);
5580 }
5581 
5582 Attr *changeCurrentAttr(Attr *b) {
     /* [<][>][^][v][top][bottom][index][help] */
5583    if (current_attribute) {
5584       b->object = current_attribute->object;
5585       b->type   = current_attribute->type;
5586       b->offset = current_attribute->offset;;
5587       b->len    = current_attribute->len;
5588       b->errors = current_attribute->errors;
5589       b->errorLine  = current_attribute->errorLine;
5590       b->errorColon = current_attribute->errorColon;
5591       b->errorLeng  = current_attribute->errorLeng;
5592       delete current_attribute;
5593    }
5594    current_attribute = b;
5595    return b;
5596 }
5597 
5598 int validIPv6(const char *s){
     /* [<][>][^][v][top][bottom][index][help] */
5599    char *string, *sleft, *sright, *pos;
5600    int countleft = 0, countright = 0; 
5601    string = strdup(s);
5602    pos = strstr(string,"/");
5603    pos[0] = '\0';
5604    sleft = strdup(string);
5605    pos = strstr(sleft,"::");
5606    pos[0] = '\0';  
5607    sright = pos + 2;
5608    // count the ':'s on the left
5609    for(int i=0;i<strlen(sleft);i++){
5610      if(sleft[i] == ':'){ countleft++;} 
5611    }
5612    // count the ':'s on the right
5613    for(int i=0;i<strlen(sright);i++){
5614      if(sright[i] == ':'){ countright++;} 
5615    }
5616 
5617    // now, if the total # of quads is  > 8, than there
5618    // is a problem with the syntax of the ipv6 address.
5619    if((countleft + 1 + countright + 1) <= 8 ){
5620      return 1;
5621    }else{
5622      return 0;
5623    }
5624 }
5625 
5626 int validIntForPhone(const char * arg){
     /* [<][>][^][v][top][bottom][index][help] */
5627    /* Checks if the integer is valid  as a phone no (should not contain '+' or '-')*/
5628    if((strchr(arg,'+') == NULL) && (strchr(arg,'-') == NULL)){
5629        return 1;
5630    }
5631    return 0;
5632 }
5633 

/* [<][>][^][v][top][bottom][index][help] */