LTP GCOV extension - code coverage report
Current view: directory - home/mike/build/php-5.2-gcov/lcov_data/Zend - zend_language_scanner.c
Test: PHP Code Coverage
Date: 2007-04-10 Instrumented lines: 306
Code covered: 55.2 % Executed lines: 169
Legend: not executed executed

       1                 : #define yy_create_buffer zend_create_buffer
       2                 : #define yy_delete_buffer zend_delete_buffer
       3                 : #define yy_scan_buffer zend_scan_buffer
       4                 : #define yy_scan_string zend_scan_string
       5                 : #define yy_scan_bytes zend_scan_bytes
       6                 : #define yy_flex_debug zend_flex_debug
       7                 : #define yy_init_buffer zend_init_buffer
       8                 : #define yy_flush_buffer zend_flush_buffer
       9                 : #define yy_load_buffer_state zend_load_buffer_state
      10                 : #define yy_switch_to_buffer zend_switch_to_buffer
      11                 : #define yyin zendin
      12                 : #define yyleng zendleng
      13                 : #define yylex zendlex
      14                 : #define yyout zendout
      15                 : #define yyrestart zendrestart
      16                 : #define yytext zendtext
      17                 : 
      18                 : #line 19 "Zend/zend_language_scanner.c"
      19                 : /* A Lexical scanner generated by flex */
      20                 : 
      21                 : /* Scanner skeleton version:
      22                 :  * $Header: /repository/ZendEngine2/flex.skl,v 1.31 2003/08/11 05:24:41 fujimoto Exp $
      23                 :  * vim:ft=lex:
      24                 :  */
      25                 : 
      26                 : #define FLEX_SCANNER
      27                 : #define YY_FLEX_MAJOR_VERSION 2
      28                 : #define YY_FLEX_MINOR_VERSION 5
      29                 : 
      30                 : #include <stdio.h>
      31                 : 
      32                 : 
      33                 : /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
      34                 : #ifdef c_plusplus
      35                 : #ifndef __cplusplus
      36                 : #define __cplusplus
      37                 : #endif
      38                 : #endif
      39                 : 
      40                 : 
      41                 : #ifdef __cplusplus
      42                 : 
      43                 : #include <stdlib.h>
      44                 : #if HAVE_UNISTD_H
      45                 : #include <unistd.h>
      46                 : #endif
      47                 : 
      48                 : /* Use prototypes in function declarations. */
      49                 : #define YY_USE_PROTOS
      50                 : 
      51                 : /* The "const" storage-class-modifier is valid. */
      52                 : #define YY_USE_CONST
      53                 : 
      54                 : #else   /* ! __cplusplus */
      55                 : 
      56                 : #if __STDC__
      57                 : 
      58                 : #define YY_USE_PROTOS
      59                 : #define YY_USE_CONST
      60                 : 
      61                 : #endif  /* __STDC__ */
      62                 : #endif  /* ! __cplusplus */
      63                 : 
      64                 : #ifdef __TURBOC__
      65                 :  #pragma warn -rch
      66                 :  #pragma warn -use
      67                 : #include <io.h>
      68                 : #include <stdlib.h>
      69                 : #define YY_USE_CONST
      70                 : #define YY_USE_PROTOS
      71                 : #endif
      72                 : 
      73                 : #ifdef YY_USE_CONST
      74                 : #define yyconst const
      75                 : #else
      76                 : #define yyconst
      77                 : #endif
      78                 : 
      79                 : #undef YY_USE_PROTOS
      80                 : #define YY_USE_PROTOS
      81                 : 
      82                 : #ifdef YY_USE_PROTOS
      83                 : #define YY_PROTO(proto) proto
      84                 : #else
      85                 : #define YY_PROTO(proto) ()
      86                 : #endif
      87                 : 
      88                 : /* Returned upon end-of-file. */
      89                 : #define YY_NULL 0
      90                 : 
      91                 : /* Promotes a possibly negative, possibly signed char to an unsigned
      92                 :  * integer for use as an array index.  If the signed char is negative,
      93                 :  * we want to instead treat it as an 8-bit unsigned char, hence the
      94                 :  * double cast.
      95                 :  */
      96                 : #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
      97                 : 
      98                 : /* Enter a start condition.  This macro really ought to take a parameter,
      99                 :  * but we do it the disgusting crufty way forced on us by the ()-less
     100                 :  * definition of BEGIN.
     101                 :  */
     102                 : #define BEGIN yy_start = 1 + 2 *
     103                 : 
     104                 : /* Translate the current start state into a value that can be later handed
     105                 :  * to BEGIN to return to the state.  The YYSTATE alias is for lex
     106                 :  * compatibility.
     107                 :  */
     108                 : #define YY_START ((yy_start - 1) / 2)
     109                 : #define YYSTATE YY_START
     110                 : 
     111                 : /* Action number for EOF rule of a given start state. */
     112                 : #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
     113                 : 
     114                 : /* Special action meaning "start processing a new file". */
     115                 : #define YY_NEW_FILE yyrestart( SCNG(yy_in) TSRMLS_CC )
     116                 : 
     117                 : #define YY_END_OF_BUFFER_CHAR 0
     118                 : 
     119                 : /* Size of default input buffer. */
     120                 : #define YY_BUF_SIZE 16384
     121                 : 
     122                 : typedef struct yy_buffer_state *YY_BUFFER_STATE;
     123                 : 
     124                 : extern int yyleng;
     125                 : 
     126                 : 
     127                 : #define EOB_ACT_CONTINUE_SCAN 0
     128                 : #define EOB_ACT_END_OF_FILE 1
     129                 : #define EOB_ACT_LAST_MATCH 2
     130                 : 
     131                 : /* The funky do-while in the following #define is used to turn the definition
     132                 :  * int a single C statement (which needs a semi-colon terminator).  This
     133                 :  * avoids problems with code like:
     134                 :  *
     135                 :  *      if ( condition_holds )
     136                 :  *              yyless( 5 );
     137                 :  *      else
     138                 :  *              do_something_else();
     139                 :  *
     140                 :  * Prior to using the do-while the compiler would get upset at the
     141                 :  * "else" because it interpreted the "if" statement as being all
     142                 :  * done when it reached the ';' after the yyless() call.
     143                 :  */
     144                 : 
     145                 : /* Return all but the first 'n' matched characters back to the input stream. */
     146                 : 
     147                 : #define yyless(n) \
     148                 :         do \
     149                 :                 { \
     150                 :                 /* Undo effects of setting up yytext. */ \
     151                 :                 *yy_cp = yy_hold_char; \
     152                 :                 yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
     153                 :                 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
     154                 :                 } \
     155                 :         while ( 0 )
     156                 : 
     157                 : #define unput(c) yyunput( c, yytext_ptr TSRMLS_CC )
     158                 : 
     159                 : /* The following is because we cannot portably get our hands on size_t
     160                 :  * (without autoconf's help, which isn't available because we want
     161                 :  * flex-generated scanners to compile on their own).
     162                 :  */
     163                 : typedef unsigned int yy_size_t;
     164                 : 
     165                 : 
     166                 : struct yy_buffer_state
     167                 :         {
     168                 :         struct _zend_file_handle *yy_input_file;
     169                 : 
     170                 :         char *yy_ch_buf;                /* input buffer */
     171                 :         char *yy_buf_pos;               /* current position in input buffer */
     172                 : 
     173                 :         /* Size of input buffer in bytes, not including room for EOB
     174                 :          * characters.
     175                 :          */
     176                 :         yy_size_t yy_buf_size;
     177                 : 
     178                 :         /* Number of characters read into yy_ch_buf, not including EOB
     179                 :          * characters.
     180                 :          */
     181                 :         int yy_n_chars;
     182                 : 
     183                 :         /* Whether we "own" the buffer - i.e., we know we created it,
     184                 :          * and can realloc() it to grow it, and should free() it to
     185                 :          * delete it.
     186                 :          */
     187                 :         int yy_is_our_buffer;
     188                 : 
     189                 :         /* Whether this is an "interactive" input source; if so, and
     190                 :          * if we're using stdio for input, then we want to use getc()
     191                 :          * instead of fread(), to make sure we stop fetching input after
     192                 :          * each newline.
     193                 :          */
     194                 :         int yy_is_interactive;
     195                 : 
     196                 :         /* Whether we're considered to be at the beginning of a line.
     197                 :          * If so, '^' rules will be active on the next match, otherwise
     198                 :          * not.
     199                 :          */
     200                 :         int yy_at_bol;
     201                 : 
     202                 :         /* Whether to try to fill the input buffer when we reach the
     203                 :          * end of it.
     204                 :          */
     205                 :         int yy_fill_buffer;
     206                 : 
     207                 :         int yy_buffer_status;
     208                 : #define YY_BUFFER_NEW 0
     209                 : #define YY_BUFFER_NORMAL 1
     210                 :         /* When an EOF's been seen but there's still some text to process
     211                 :          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
     212                 :          * shouldn't try reading from the input source any more.  We might
     213                 :          * still have a bunch of tokens to match, though, because of
     214                 :          * possible backing-up.
     215                 :          *
     216                 :          * When we actually see the EOF, we change the status to "new"
     217                 :          * (via yyrestart()), so that the user can continue scanning by
     218                 :          * just pointing yyin at a new input file.
     219                 :          */
     220                 : #define YY_BUFFER_EOF_PENDING 2
     221                 :         };
     222                 : 
     223                 : #define yy_current_buffer SCNG(current_buffer)
     224                 : #define yy_hold_char SCNG(_yy_hold_char)
     225                 : 
     226                 : /* We provide macros for accessing buffer states in case in the
     227                 :  * future we want to put the buffer states in a more general
     228                 :  * "scanner state".
     229                 :  */
     230                 : #define YY_CURRENT_BUFFER yy_current_buffer
     231                 : 
     232                 : 
     233                 : /* yy_hold_char holds the character lost when yytext is formed. */
     234                 : 
     235                 : #if 0
     236                 : static char yy_hold_char;
     237                 : 
     238                 : static int yy_n_chars;          /* number of characters read into yy_ch_buf */
     239                 : #endif
     240                 : 
     241                 : /* Points to current character in buffer. */
     242                 : #define yy_c_buf_p SCNG(c_buf_p)
     243                 : #define yy_init SCNG(init)
     244                 : #define yy_start SCNG(start)
     245                 : 
     246                 : #ifdef ZTS
     247                 : #define TSRMLS_D        void ***tsrm_ls
     248                 : #define TSRMLS_DC       , TSRMLS_D
     249                 : #define TSRMLS_C        tsrm_ls
     250                 : #define TSRMLS_CC       , TSRMLS_C
     251                 : #else
     252                 : #define TSRMLS_D
     253                 : #define TSRMLS_DC
     254                 : #define TSRMLS_C
     255                 : #define TSRMLS_CC
     256                 : #endif
     257                 : 
     258                 : /* Flag which is used to allow yywrap()'s to do buffer switches
     259                 :  * instead of setting up a fresh yyin.  A bit of a hack ...
     260                 :  */
     261                 : /* static int yy_did_buffer_switch_on_eof; */
     262                 : #define yy_did_buffer_switch_on_eof SCNG(_yy_did_buffer_switch_on_eof)
     263                 : 
     264                 : void yyrestart YY_PROTO(( struct _zend_file_handle *input_file TSRMLS_DC ));
     265                 : 
     266                 : void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer TSRMLS_DC ));
     267                 : void yy_load_buffer_state YY_PROTO(( TSRMLS_D ));
     268                 : YY_BUFFER_STATE yy_create_buffer YY_PROTO(( struct _zend_file_handle *file, int size TSRMLS_DC ));
     269                 : void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b TSRMLS_DC ));
     270                 : void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, struct _zend_file_handle *file TSRMLS_DC ));
     271                 : void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b TSRMLS_DC ));
     272                 : #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer TSRMLS_CC )
     273                 : 
     274                 : YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size TSRMLS_DC ));
     275                 : YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str TSRMLS_DC ));
     276                 : YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len TSRMLS_DC ));
     277                 : 
     278                 : 
     279                 : static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
     280                 : static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
     281                 : static void yy_flex_free YY_PROTO(( void * ));
     282                 : 
     283                 : #define yy_new_buffer yy_create_buffer
     284                 : 
     285                 : #define yy_set_interactive(is_interactive) \
     286                 :         { \
     287                 :         if ( ! yy_current_buffer ) \
     288                 :                 yy_current_buffer = yy_create_buffer( SCNG(yy_in), YY_BUF_SIZE TSRMLS_CC ); \
     289                 :         yy_current_buffer->yy_is_interactive = is_interactive; \
     290                 :         }
     291                 : 
     292                 : #define yy_set_bol(at_bol) \
     293                 :         { \
     294                 :         if ( ! yy_current_buffer ) \
     295                 :                 yy_current_buffer = yy_create_buffer( SCNG(yy_in), YY_BUF_SIZE TSRMLS_CC ); \
     296                 :         yy_current_buffer->yy_at_bol = at_bol; \
     297                 :         }
     298                 : 
     299                 : #define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
     300                 : 
     301                 : 
     302                 : #define yywrap() 1
     303                 : #define YY_SKIP_YYWRAP
     304                 : typedef unsigned char YY_CHAR;
     305                 : FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
     306                 : typedef int yy_state_type;
     307                 : extern char *yytext;
     308                 : #define yytext_ptr yytext
     309                 : #undef yyleng
     310                 : #define yyleng SCNG(yy_leng)
     311                 : #undef yytext
     312                 : #define yytext SCNG(yy_text)
     313                 : #undef yytext_ptr
     314                 : #define yytext_ptr SCNG(yy_text)
     315                 : #undef yyin
     316                 : #define yyin SCNG(yy_in)
     317                 : #undef yyout
     318                 : #define yyout SCNG(yy_out)
     319                 : #undef yy_last_accepting_state
     320                 : #define yy_last_accepting_state SCNG(_yy_last_accepting_state)
     321                 : #undef yy_last_accepting_cpos
     322                 : #define yy_last_accepting_cpos SCNG(_yy_last_accepting_cpos)
     323                 : #undef yy_more_flag
     324                 : #define yy_more_flag SCNG(_yy_more_flag)
     325                 : #undef yy_more_len
     326                 : #define yy_more_len SCNG(_yy_more_len)
     327                 : 
     328                 : 
     329                 : static yy_state_type yy_get_previous_state YY_PROTO(( TSRMLS_D ));
     330                 : static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state TSRMLS_DC ));
     331                 : static int yy_get_next_buffer YY_PROTO(( TSRMLS_D ));
     332                 : static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
     333                 : 
     334                 : #undef TSRMLS_D
     335                 : #undef TSRMLS_DC
     336                 : #undef TSRMLS_C
     337                 : #undef TSRMLS_CC
     338                 : 
     339                 : /* Done after the current pattern has been matched and before the
     340                 :  * corresponding action - sets up yytext.
     341                 :  */
     342                 : #define YY_DO_BEFORE_ACTION \
     343                 :         yytext_ptr = yy_bp; \
     344                 :         yytext_ptr -= yy_more_len; \
     345                 :         yyleng = (int) (yy_cp - yytext_ptr); \
     346                 :         yy_hold_char = *yy_cp; \
     347                 :         *yy_cp = '\0'; \
     348                 :         yy_c_buf_p = yy_cp;
     349                 : 
     350                 : #undef yyleng
     351                 : #undef yytext
     352                 : #undef yytext_ptr
     353                 : #undef yyin
     354                 : #undef yyout
     355                 : #undef yy_last_accepting_state
     356                 : #undef yy_last_accepting_cpos
     357                 : #undef yy_more_flag
     358                 : #undef yy_more_len
     359                 : 
     360                 : 
     361                 : #define YY_NUM_RULES 161
     362                 : #define YY_END_OF_BUFFER 162
     363                 : static yyconst short int yy_accept[1422] =
     364                 :     {   0,
     365                 :         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
     366                 :         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
     367                 :         0,    0,  162,  112,  112,  160,  120,   97,  136,  121,
     368                 :        97,   97,   97,  139,   97,   97,   97,   97,   97,   97,
     369                 :        97,  103,  103,   97,   97,   97,   97,   97,   97,  118,
     370                 :       138,  118,  118,  118,  118,  118,  118,  118,  118,  118,
     371                 :       118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
     372                 :       118,   98,   97,  100,  141,  157,  146,  141,  105,  105,
     373                 :       146,  160,  119,  143,  146,  142,  159,  160,  144,  160,
     374                 :       158,  156,  141,  160,  119,   38,   37,  102,  101,  128,
     375                 : 
     376                 :       131,  131,  123,  123,  123,  122,  122,  122,  112,    0,
     377                 :       112,  115,  113,  112,  120,   76,    0,  134,    0,  117,
     378                 :        84,  133,   91,   87,    0,  135,    0,    0,    0,    0,
     379                 :         0,    0,    0,    0,    0,    0,    0,   81,   71,   79,
     380                 :        72,   80,   36,  106,   83,  127,  121,   82,  106,  103,
     381                 :         0,    0,   39,    0,   95,   77,   76,   75,   68,   78,
     382                 :        96,  132,   89,  118,  118,  118,  118,  118,   23,  136,
     383                 :       139,    0,  118,  118,  118,  118,  118,  118,   15,  118,
     384                 :       118,  118,  118,  118,  118,  118,  118,  118,  118,    9,
     385                 :       118,  118,  118,  118,  118,   92,  118,  118,  118,  118,
     386                 : 
     387                 :       118,  118,  118,  118,  118,  118,  118,  118,   88,   90,
     388                 :       141,  145,   99,   36,  105,    0,  155,  151,  153,  155,
     389                 :       147,  119,  143,  148,  142,    0,  149,  150,  144,  152,
     390                 :       156,  141,  140,  140,  119,    0,   37,  101,  128,  130,
     391                 :       129,  123,  123,  124,  125,  112,    0,  114,    0,    0,
     392                 :        74,  117,  133,  133,    0,    0,    0,    0,    0,    0,
     393                 :         0,    0,    0,    0,    0,  106,    0,  106,  104,    0,
     394                 :         0,   85,   73,   86,  132,  132,  118,  118,  118,  118,
     395                 :       118,  118,   93,  118,    0,  118,  118,  118,  118,  118,
     396                 :       118,  118,  118,    2,  118,  118,  118,  118,  118,  118,
     397                 : 
     398                 :       118,  118,   16,  118,  118,  118,  118,  118,  118,  118,
     399                 :       118,   40,  118,  118,  118,  118,  118,  118,  118,  118,
     400                 :         6,  118,   56,   42,  118,   94,  105,  153,  154,  112,
     401                 :         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
     402                 :         0,    0,    0,  126,    0,    0,    0,  118,  118,  118,
     403                 :       118,  118,  118,  118,  118,  118,   26,  118,  118,  118,
     404                 :       118,  118,  118,  118,   30,   12,  118,  118,  118,  118,
     405                 :       118,  118,   51,    1,  118,  118,  118,  118,  118,  118,
     406                 :       118,  118,  118,  118,   69,  118,  118,  118,  118,  118,
     407                 :       118,  118,  118,  118,  118,  118,  153,  154,  112,    0,
     408                 : 
     409                 :         0,    0,    0,    0,    0,    0,    0,    0,   43,    0,
     410                 :         0,    0,    0,    0,    0,  137,  137,    0,  118,  118,
     411                 :       118,  118,  118,  118,  118,   70,   28,    7,   32,   41,
     412                 :         4,  118,  118,  118,  118,   59,  118,  118,   11,  118,
     413                 :       118,  118,   63,  118,  118,  118,  118,  118,  118,  118,
     414                 :        58,   31,  118,  118,  118,  118,  118,  118,  118,    8,
     415                 :        67,   13,  112,    0,  116,  116,    0,    0,    0,    0,
     416                 :        49,    0,    0,    0,    0,    0,   44,    0,    0,    0,
     417                 :       118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
     418                 :        10,  118,   17,  118,  118,  118,  118,  118,   57,  118,
     419                 : 
     420                 :       118,  118,  118,  118,  118,   66,  118,    5,   61,   24,
     421                 :       112,    0,    0,    0,   47,    0,    0,    0,    0,    0,
     422                 :         0,   50,    0,  118,  118,  118,  118,  118,  118,  118,
     423                 :       118,   20,   27,  118,  118,  118,  118,   34,   18,  118,
     424                 :       118,   52,  118,  118,   64,  118,   54,  112,    0,    0,
     425                 :         0,   46,    0,    0,    0,   48,    0,   45,    0,  118,
     426                 :       111,  118,  118,  110,  118,   62,   29,  118,  118,  118,
     427                 :        14,    3,  118,  118,  118,  118,  118,  118,  112,    0,
     428                 :         0,    0,  107,  118,  118,  118,  118,  118,   25,  118,
     429                 :       118,  118,   33,   65,  118,  112,    0,    0,  118,  118,
     430                 : 
     431                 :       109,   21,   19,   35,  118,   22,  118,  112,    0,    0,
     432                 :       118,  118,  118,  118,  112,    0,    0,  108,  118,   53,
     433                 :        55,  112,    0,    0,  118,  112,    0,    0,  118,  112,
     434                 :         0,    0,   60,  112,    0,    0,  112,    0,    0,    0,
     435                 :       112,    0,    0,    0,    0,    0,  112,    0,    0,    0,
     436                 :         0,  112,    0,    0,    0,    0,  112,    0,    0,    0,
     437                 :         0,  113,  112,    0,  112,    0,  112,    0,  112,    0,
     438                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     439                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     440                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     441                 : 
     442                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     443                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     444                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     445                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     446                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     447                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     448                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     449                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     450                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     451                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     452                 : 
     453                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     454                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     455                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     456                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     457                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     458                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     459                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     460                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     461                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     462                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     463                 : 
     464                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     465                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     466                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     467                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     468                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     469                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     470                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     471                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     472                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     473                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     474                 : 
     475                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     476                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     477                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     478                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     479                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     480                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     481                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     482                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     483                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     484                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     485                 : 
     486                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     487                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     488                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     489                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     490                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     491                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     492                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     493                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     494                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     495                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     496                 : 
     497                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     498                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     499                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     500                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     501                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     502                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     503                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     504                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     505                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     506                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     507                 : 
     508                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     509                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     510                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     511                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     512                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     513                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     514                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     515                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     516                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     517                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     518                 : 
     519                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     520                 :       112,    0,  112,    0,  112,    0,  112,    0,  112,    0,
     521                 :         0
     522                 :     } ;
     523                 : 
     524                 : static yyconst int yy_ec[256] =
     525                 :     {   0,
     526                 :         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
     527                 :         1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
     528                 :         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     529                 :         1,    2,    5,    6,    7,    8,    9,   10,   11,   12,
     530                 :        13,   14,   15,   16,   17,   18,   19,   20,   21,   21,
     531                 :        21,   21,   21,   21,   21,   22,   22,   23,   24,   25,
     532                 :        26,   27,   28,   16,   34,   35,   36,   37,   38,   39,
     533                 :        40,   41,   42,   43,   44,   45,   46,   47,   48,   49,
     534                 :        50,   51,   52,   53,   54,   55,   56,   57,   58,   59,
     535                 :        29,   30,   29,   31,   32,   33,   34,   35,   36,   37,
     536                 : 
     537                 :        38,   39,   40,   41,   42,   43,   44,   45,   46,   47,
     538                 :        48,   49,   50,   51,   52,   53,   54,   55,   56,   57,
     539                 :        58,   59,   60,   61,   62,   16,   59,   59,   59,   59,
     540                 :        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
     541                 :        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
     542                 :        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
     543                 :        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
     544                 :        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
     545                 :        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
     546                 :        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
     547                 : 
     548                 :        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
     549                 :        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
     550                 :        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
     551                 :        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
     552                 :        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
     553                 :        59,   59,   59,   59,   59
     554                 :     } ;
     555                 : 
     556                 : static yyconst int yy_meta[63] =
     557                 :     {   0,
     558                 :         1,    2,    3,    3,    4,    1,    4,    5,    4,    4,
     559                 :         6,    4,    4,    7,    4,    4,    4,    4,    4,    8,
     560                 :         8,    8,    4,    9,   10,    4,    4,    4,    1,    1,
     561                 :         4,   11,    1,   11,   11,   11,   11,   11,   11,   11,
     562                 :        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
     563                 :        11,   11,   11,   11,   11,   11,   11,   11,   11,    1,
     564                 :         4,    1
     565                 :     } ;
     566                 : 
     567                 : static yyconst short int yy_base[1842] =
     568                 :     {   0,
     569                 :      7591, 7590,    0,    0,   62,    0,  114,  115,  121,  122,
     570                 :       123,  151,  210,    0,  272,    0, 7600, 7599, 7598, 7597,
     571                 :       132,  139, 7610, 7584,  121, 7617,  129, 7582,  131, 7617,
     572                 :         0,  112,  137,  135,  333, 7617, 7581,  143,  151,  150,
     573                 :       322,  322,  331, 7583,  320,  148,  153, 7578, 7578, 7571,
     574                 :      7617,  303,  351,  329,  323,  344,  340, 7557,    0,  357,
     575                 :      7559, 7562, 7548,  305, 7560,  330,   99,  326, 7563, 7555,
     576                 :      7547, 7617,  332, 7617,    0, 7617,  409, 7567,  452,  385,
     577                 :      7617,  469,    0, 7560, 7584, 7561, 7617,  465, 7584,  458,
     578                 :      7617,  471,  474,  463,  484, 7617,    0, 7617,    0,    0,
     579                 : 
     580                 :      7570, 7569,  489, 7617, 7584, 7559, 7617, 7558, 7559,  472,
     581                 :      7558, 7556,  470, 7545,  499, 7554,  480, 7617,  389,    0,
     582                 :      7617,  502, 7617, 7617,  483, 7617, 7576,    0, 7527,  479,
     583                 :      7529, 7531, 7528, 7539, 7535, 7519, 7524, 7617, 7617, 7617,
     584                 :      7617, 7617, 7617,  510, 7617, 7556, 7617, 7617,  513,  518,
     585                 :       532,  523, 7617, 7517,  486, 7617, 7617, 7542, 7617, 7617,
     586                 :      7541,  538, 7617,    0,  527, 7514, 7528, 7513,    0,  516,
     587                 :       539, 7538, 7524,  512,  480, 7514,  359, 7522,    0, 7518,
     588                 :      7506, 7508, 7519, 7521,  525, 7507, 7502, 7505, 7503,    0,
     589                 :      7501,  534, 7497, 7496, 7491,    0,  529, 7511,  526, 7511,
     590                 : 
     591                 :      7502, 7492, 7484, 7489, 7502, 7488, 7496, 7486, 7617, 7617,
     592                 :         0, 7617, 7617,    0,  560,  563, 7617, 7617,  554,  569,
     593                 :      7617,    0, 7503, 7617, 7505, 7504, 7617, 7617, 7527, 7617,
     594                 :       582,  603, 7617, 7529,  592,  607,    0,    0,    0, 7617,
     595                 :      7617,  614, 7617, 7617, 7617, 7506,  603, 7617, 7489, 7478,
     596                 :      7617,    0, 7617, 7525, 7476, 7479, 7477, 7470, 7475, 7469,
     597                 :      7478, 7486, 7468, 7466,  617,  605,  612,  617,  624, 7481,
     598                 :      7514, 7617, 7617, 7617, 7617, 7512, 7469,  483, 7479, 7470,
     599                 :      7473, 7457,    0, 7475, 7483, 7473, 7468, 7469, 7452, 7456,
     600                 :       577, 7457, 7467,    0, 7452, 7461, 7445,  612, 7452, 7443,
     601                 : 
     602                 :      7457, 7460, 7455, 7456, 7456, 7445, 7444, 7435, 7449, 7448,
     603                 :      7432,    0,  353, 7431, 7438, 7428, 7427, 7427, 7426, 7430,
     604                 :         0, 7439,    0,    0, 7431,    0,  645,  627,  651, 7450,
     605                 :       666, 7425, 7431, 7438, 7437, 7425, 7434, 7434,  690, 7429,
     606                 :      7421, 7423, 7426,  674, 7412, 7460,  649, 7427, 7415, 7412,
     607                 :      7413, 7410, 7403, 7404, 7396, 7409,    0, 7411, 7399, 7412,
     608                 :      7396, 7406, 7413, 7392,    0, 7403, 7386, 7405, 7394, 7402,
     609                 :      7384, 7398,    0,    0, 7391, 7392, 7402, 7382, 7400, 7395,
     610                 :      7378, 7397, 7379, 7376,    0, 7375, 7393, 7388, 7383, 7382,
     611                 :      7372, 7380, 7385, 7364, 7366, 7380, 7617, 7617, 7392,  684,
     612                 : 
     613                 :       693, 7367, 7357, 7363,  697, 7368, 7359,  611, 7617, 7371,
     614                 :      7374,  698, 7362, 7355, 7365, 7617, 7403,  653, 7353, 7366,
     615                 :      7367, 7349, 7363, 7359, 7365,    0,    0,    0,    0,    0,
     616                 :         0, 7351, 7346, 7351, 7356,    0, 7358, 7342,    0, 7350,
     617                 :      7349, 7353,    0, 7353, 7346, 7342, 7340, 7348, 7337, 7344,
     618                 :         0,    0, 2983, 2999, 2997, 2981, 2984, 2994, 2975,    0,
     619                 :         0,    0, 2990,  689, 7617, 3011, 2960,  700, 2954,  702,
     620                 :      7617, 2977, 2972, 2971, 2942,  703, 7617, 2954,  706, 2917,
     621                 :      2906, 2925, 2901, 2921, 2918, 2899, 2910, 2891, 2906, 2884,
     622                 :         0, 2885, 2891, 2861, 2866, 2854, 2864, 2838,    0, 2842,
     623                 : 
     624                 :      2776, 2777, 2778, 2773, 2757,    0, 2771,    0,    0,    0,
     625                 :      2783,  697,  727,  719, 7617,  721, 2760, 2755,  724,  725,
     626                 :       731, 7617, 2752, 2771, 2770, 2759, 2764, 2767, 2760, 2743,
     627                 :      2757,    0,    0, 2760, 2758, 2754, 2748,    0,    0, 2738,
     628                 :      2737, 2750, 2741, 2742,    0, 2735, 2738, 2743,  715,  743,
     629                 :       737, 7617,  740,  746,  749, 7617,  750, 7617,  752, 2735,
     630                 :         0, 2716, 2694,    0, 2707,    0,    0, 2686, 2692, 2686,
     631                 :         0,    0, 2672, 2676, 2674, 2659, 2659, 2646, 2666,  748,
     632                 :      2654,  762,    0, 2638, 2636, 2647, 2638, 2624,    0, 2602,
     633                 :      2606, 2612,    0,    0, 2603, 2623,  749, 2592, 2604, 2576,
     634                 : 
     635                 :         0,    0,    0,    0, 2586,    0, 2583, 2588,  759, 2570,
     636                 :      2576, 2565, 2566, 2551, 2557,  766, 2525,    0, 2532,    0,
     637                 :         0, 2551,  771, 2539, 2529, 2539,  777, 2522, 2486, 2511,
     638                 :       781, 2496,    0, 2508,  788,  767, 2506,  789,  817,  824,
     639                 :      2497,  806,  842, 2470, 2467, 2464, 2469,  827, 2450, 2449,
     640                 :      2439, 2460,  829, 2433, 2430,  847, 2451,  838, 2459, 2451,
     641                 :       857, 7617, 2434,  847, 2423,  855, 2422,  860, 2420,  861,
     642                 :      2419,  867, 2417,  868, 2397,  869, 2394,  873, 2392,  878,
     643                 :      2391,  899, 2388,  901, 2382,  906, 2379,  907, 2377,  908,
     644                 :      2358,  913, 2352,  914, 2351,  919, 2349,  936, 2348,  945,
     645                 : 
     646                 :      2346,  947, 2345,  953, 2342,  954, 2331,  958, 2320,  959,
     647                 :      2309,  965, 2306,  967, 2305,  976, 2303,  987, 2302,  993,
     648                 :      2300,  998, 2291,  999, 2280, 1004, 2277, 1005, 2274, 1013,
     649                 :      2263, 1027, 2260, 1033, 2259, 1034, 2257, 1035, 2254, 1039,
     650                 :      2251, 1044, 2237, 1045, 2234, 1065, 2232, 1067, 2231, 1073,
     651                 :      2228, 1074, 2217, 1075, 2214, 1079, 2211, 1080, 2192, 1085,
     652                 :      2191, 1105, 2189, 1111, 2188, 1113, 2186, 1115, 2185, 1119,
     653                 :      2182, 1120, 2171, 1125, 2152, 1126, 2149, 1133, 2146, 1151,
     654                 :      2145, 1155, 2143, 1159, 2142, 1161, 2140, 1165, 2139, 1166,
     655                 :      2106, 1172, 2104, 1173, 2103, 1187, 2101, 1195, 2100, 1201,
     656                 : 
     657                 :      2099, 1205, 2097, 1207, 2094, 1212, 2064, 1213, 2061, 1218,
     658                 :      2060, 1227, 2058, 1233, 2057, 1235, 2055, 1241, 2054, 1247,
     659                 :      2051, 1253, 2032, 1258, 2029, 1264, 2018, 1273, 2015, 1275,
     660                 :      2014, 1279, 2012, 1281, 2011, 1286, 2009, 1287, 1992, 1293,
     661                 :      1989, 1304, 1986, 1315, 1983, 1319, 1972, 1321, 1969, 1325,
     662                 :      1968, 1326, 1966, 1327, 1963, 1332, 1952, 1333, 1946, 1355,
     663                 :      1943, 1361, 1941, 1363, 1940, 1365, 1937, 1367, 1926, 1372,
     664                 :      1923, 1373, 1912, 1378, 1901, 1393, 1900, 1395, 1898, 1401,
     665                 :      1897, 1403, 1895, 1407, 1894, 1413, 1891, 1418, 1869, 1424,
     666                 :      1864, 1433, 1861, 1435, 1858, 1439, 1855, 1441, 1854, 1447,
     667                 : 
     668                 :      1852, 1453, 1851, 1464, 1849, 1470, 1826, 1475, 1824, 1479,
     669                 :      1823, 1481, 1821, 1485, 1812, 1487, 1809, 1492, 1806, 1493,
     670                 :      1803, 1510, 1792, 1515, 1786, 1521, 1783, 1523, 1781, 1525,
     671                 :      1780, 1527, 1777, 1532, 1766, 1533,  139, 1538,  157, 1555,
     672                 :       312, 1561,  339, 1563,  341, 1567,  474, 1569,  530, 1573,
     673                 :       567, 1578,  569, 1584,  597, 1595,  610, 1599,  615, 1601,
     674                 :       625, 1607,  644, 1609,  645, 1613,  649, 1624,  676, 1630,
     675                 :       682, 1635,  695, 1639,  735, 1641,  736, 1645,  747, 1647,
     676                 :       753, 1653,  756, 1670,  757, 1675,  758, 1676,  760, 1681,
     677                 :       767, 1683,  770, 1685,  778, 1687,  779, 1693,  782, 1698,
     678                 : 
     679                 :       783, 1715,  785, 1716,  787, 1721,  797, 1723,  799, 1727,
     680                 :       800, 1729,  807, 1733,  812, 1738,  814, 1744,  817, 1755,
     681                 :       837, 1761,  840, 1767,  842, 1769,  843, 1773,  846, 1775,
     682                 :       875, 1784,  877, 1790,  879, 1795,  880, 1801,  884, 1805,
     683                 :       886, 1807,  889, 1813,  893, 1815,  912, 1830,  915, 1835,
     684                 :       918, 1836,  921, 1841,  923, 1843,  924, 1845,  925, 1847,
     685                 :       927, 1853,  930, 1875,  932, 1876,  944, 1881,  952, 1882,
     686                 :       955, 1883,  964, 1887,  966, 1889,  969, 1893,  973, 1904,
     687                 :       975, 1915,  978, 1921,  984, 1922,  991, 1927,  995, 1929,
     688                 :      1000, 1933, 1006, 1935, 1009, 1944, 1010, 1950, 1012, 1955,
     689                 : 
     690                 :      1015, 1961, 1021, 1967, 1022, 1973, 1024, 1975, 1041, 1981,
     691                 :      1043, 1990, 1046, 1995, 1050, 1996, 1052, 2001, 1053, 2003,
     692                 :      1055, 2007, 1056, 2013, 1081, 2021, 1084, 2035, 1086, 2036,
     693                 :      1087, 2041, 1090, 2042, 1091, 2043, 1093, 2047, 1096, 2049,
     694                 :      1098, 2053, 1121, 2075, 1124, 2081, 1127, 2082, 1130, 2083,
     695                 :      1131, 2087, 1134, 2088, 1137, 2089, 1141, 2093, 1144, 2095,
     696                 :      1148, 2121, 1163, 2123, 1167, 2127, 1170, 2128, 1174, 2129,
     697                 :      1177, 2133, 1180, 2134, 1181, 2135, 1183, 2141, 1184, 2163,
     698                 :      1194, 2167, 1203, 2169, 1206, 2173, 1209, 2174, 1220, 2175,
     699                 :      1223, 2180, 1224, 2181, 1226, 2195, 1229, 2203, 1243, 2209,
     700                 : 
     701                 :      1246, 2213, 1249, 2215, 1251, 2220, 1252, 2221, 1255, 2226,
     702                 :      1266, 2235, 1269, 2241, 1272, 2243, 1283, 2249, 1292, 2255,
     703                 :      1294, 2261, 1295, 2266, 1297, 2272, 1298, 2281, 1301, 2283,
     704                 :      1312, 2287, 1323, 2289, 1334, 2294, 1337, 2295, 1338, 2301,
     705                 :      1340, 2312, 1341, 2323, 1343, 2327, 1344, 2329, 1350, 2333,
     706                 :      1369, 2334, 1371, 2335, 1374, 2340, 1380, 2341, 1383, 2363,
     707                 :      1384, 2369, 1386, 2371, 1389, 2373, 1409, 2375, 1411, 2380,
     708                 :      1412, 2381, 1414, 2386, 1415, 2401, 1426, 2403, 1429, 2409,
     709                 :      1432, 2411, 1443, 2415, 1446, 2421, 1449, 2426, 1452, 2432,
     710                 :      1455, 2441, 1457, 2443, 1458, 2447, 1461, 2449, 1472, 2455,
     711                 : 
     712                 :      1483, 2461, 1486, 2472, 1489, 2478, 1498, 2483, 1500, 2487,
     713                 :      1501, 2489, 1503, 2493, 1504, 2495, 1529, 2500, 1531, 2501,
     714                 :      1534, 2518, 1540, 2523, 1543, 2529, 1544, 2531, 1546, 2533,
     715                 :      1549, 2535, 1556, 2540, 1571, 2541, 1574, 2546, 1575, 2563,
     716                 :      1577, 2569, 1580, 2571, 1586, 2575, 1589, 2577, 1592, 2581,
     717                 :      1603, 2586, 1606, 2592, 1615, 2603, 1617, 2607, 1618, 2609,
     718                 :      1620, 2615, 1621, 2617, 1632, 2621, 1643, 2632, 1646, 2638,
     719                 :      1649, 2643, 1652, 2647, 1655, 2649, 1658, 2653, 1661, 2655,
     720                 :      1663, 2661, 1664, 2678, 1689, 2683, 1691, 2684, 1692, 2689,
     721                 :      1694, 2691, 1695, 2693, 1704, 2695, 1706, 2701, 1709, 2706,
     722                 : 
     723                 :      1731, 2723, 1734, 2724, 1735, 2729, 1737, 2731, 1740, 2735,
     724                 :      1746, 2737, 1749, 2741, 1752, 2746, 1762, 2752, 7617, 2763,
     725                 :      7617, 2815, 2826, 2837, 2848, 2859, 2870, 2881, 1777, 2892,
     726                 :      2896, 2906, 2916, 2920, 2931, 2940, 2944, 2948, 2959, 2970,
     727                 :      2981, 2985, 2996, 3006, 3017, 3026, 3037, 3048, 3059, 3070,
     728                 :      3081, 3092, 3103, 3114, 3125, 3136, 3147, 3158, 3169, 3180,
     729                 :      3191, 3202, 3213, 3224, 3235, 3246, 3257, 3268, 3279, 3290,
     730                 :      3301, 3312, 3323, 3334, 3345, 3356, 3367, 3378, 3389, 3400,
     731                 :      3411, 3422, 3433, 3444, 3455, 3466, 3477, 3488, 3499, 3510,
     732                 :      3521, 3532, 3543, 3554, 3565, 3576, 3587, 3598, 3609, 3620,
     733                 : 
     734                 :      3631, 3642, 3653, 3664, 3675, 3686, 3697, 3708, 3719, 3730,
     735                 :      3741, 3752, 3763, 3774, 3785, 3796, 3807, 3818, 3829, 3840,
     736                 :      3851, 3862, 3873, 3884, 3895, 3906, 3917, 3928, 3939, 3950,
     737                 :      3961, 3972, 3983, 3994, 4005, 4016, 4027, 4038, 4049, 4060,
     738                 :      4071, 4082, 4093, 4104, 4115, 4126, 4137, 4148, 4159, 4170,
     739                 :      4181, 4192, 4203, 4214, 4225, 4236, 4247, 4258, 4269, 4280,
     740                 :      4291, 4302, 4313, 4324, 4335, 4346, 4357, 4368, 4379, 4390,
     741                 :      4401, 4412, 4423, 4434, 4445, 4456, 4467, 4478, 4489, 4500,
     742                 :      4511, 4522, 4533, 4544, 4555, 4566, 4577, 4588, 4599, 4610,
     743                 :      4621, 4632, 4643, 4654, 4665, 4676, 4687, 4698, 4709, 4720,
     744                 : 
     745                 :      4731, 4742, 4753, 4764, 4775, 4786, 4797, 4808, 4819, 4830,
     746                 :      4841, 4852, 4863, 4874, 4885, 4896, 4907, 4918, 4929, 4940,
     747                 :      4951, 4962, 4973, 4984, 4995, 5006, 5017, 5028, 5039, 5050,
     748                 :      5061, 5072, 5083, 5094, 5105, 5116, 5127, 5138, 5149, 5160,
     749                 :      5171, 5182, 5193, 5204, 5215, 5226, 5237, 5248, 5259, 5270,
     750                 :      5281, 5292, 5303, 5314, 5325, 5336, 5347, 5358, 5369, 5380,
     751                 :      5391, 5402, 5413, 5424, 5435, 5446, 5457, 5468, 5479, 5490,
     752                 :      5501, 5512, 5523, 5534, 5545, 5556, 5567, 5578, 5589, 5600,
     753                 :      5611, 5622, 5633, 5644, 5655, 5666, 5677, 5688, 5699, 5710,
     754                 :      5721, 5732, 5743, 5754, 5765, 5776, 5787, 5798, 5809, 5820,
     755                 : 
     756                 :      5831, 5842, 5853, 5864, 5875, 5886, 5897, 5908, 5919, 5930,
     757                 :      5941, 5952, 5963, 5974, 5985, 5996, 6007, 6018, 6029, 6040,
     758                 :      6051, 6062, 6073, 6084, 6095, 6106, 6117, 6128, 6139, 6150,
     759                 :      6161, 6172, 6183, 6194, 6205, 6216, 6227, 6238, 6249, 6260,
     760                 :      6271, 6282, 6293, 6304, 6315, 6326, 6337, 6348, 6359, 6370,
     761                 :      6381, 6392, 6403, 6414, 6425, 6436, 6447, 6458, 6469, 6480,
     762                 :      6491, 6502, 6513, 6524, 6535, 6546, 6557, 6568, 6579, 6590,
     763                 :      6601, 6612, 6623, 6634, 6645, 6656, 6667, 6678, 6689, 6700,
     764                 :      6711, 6722, 6733, 6744, 6755, 6766, 6777, 6788, 6799, 6810,
     765                 :      6821, 6832, 6843, 6854, 6865, 6876, 6887, 6898, 6909, 6920,
     766                 : 
     767                 :      6931, 6942, 6953, 6964, 6975, 6986, 6997, 7008, 7019, 7030,
     768                 :      7041, 7052, 7063, 7074, 7085, 7096, 7107, 7118, 7129, 7140,
     769                 :      7151, 7162, 7173, 7184, 7195, 7206, 7217, 7228, 7239, 7250,
     770                 :      7261, 7272, 7283, 7294, 7305, 7316, 7327, 7338, 7349, 7360,
     771                 :      7371
     772                 :     } ;
     773                 : 
     774                 : static yyconst short int yy_def[1842] =
     775                 :     {   0,
     776                 :      1422, 1422, 1421,    3, 1421,    5, 1423, 1423,    5,    5,
     777                 :         5,    5, 1421,   13, 1421,   15, 1424, 1424, 1424, 1424,
     778                 :      1425, 1425, 1421, 1426, 1427, 1421, 1421, 1421, 1428, 1421,
     779                 :      1429, 1421, 1421, 1430, 1421, 1421, 1421, 1421, 1421, 1421,
     780                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1431,
     781                 :      1421, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431,
     782                 :      1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431,
     783                 :      1431, 1421, 1421, 1421, 1432, 1421, 1421, 1432, 1421, 1421,
     784                 :      1421, 1433, 1434, 1421, 1421, 1435, 1421, 1435, 1421, 1433,
     785                 :      1421, 1421, 1432, 1433, 1436, 1421, 1437, 1421, 1438, 1439,
     786                 : 
     787                 :      1421, 1421, 1440, 1421, 1421, 1421, 1421, 1421, 1441, 1426,
     788                 :      1426, 1421, 1421, 1421, 1421, 1421, 1428, 1421, 1428, 1442,
     789                 :      1421, 1421, 1421, 1421, 1430, 1421, 1430,   35, 1421, 1421,
     790                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     791                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     792                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     793                 :      1421, 1421, 1421, 1431, 1431, 1431, 1431, 1431, 1431, 1428,
     794                 :      1430, 1421, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431,
     795                 :      1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431,
     796                 :      1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431,
     797                 : 
     798                 :      1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1421, 1421,
     799                 :      1432, 1421, 1421, 1432, 1421, 1421, 1421, 1421, 1421, 1421,
     800                 :      1421, 1434, 1421, 1421, 1435, 1435, 1421, 1421, 1421, 1421,
     801                 :      1421, 1432, 1421, 1421, 1436, 1421, 1437, 1438, 1439, 1421,
     802                 :      1421, 1440, 1421, 1421, 1421, 1443, 1441, 1421, 1421, 1421,
     803                 :      1421, 1442, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     804                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     805                 :      1444, 1421, 1421, 1421, 1421, 1421, 1431, 1431, 1431, 1431,
     806                 :      1431, 1431, 1431, 1431, 1421, 1431, 1431, 1431, 1431, 1431,
     807                 :      1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431,
     808                 : 
     809                 :      1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431,
     810                 :      1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431,
     811                 :      1431, 1431, 1431, 1431, 1431, 1431, 1421, 1421, 1421, 1445,
     812                 :      1443, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     813                 :      1421, 1421, 1421, 1421, 1421, 1444, 1446, 1431, 1431, 1431,
     814                 :      1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431,
     815                 :      1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431,
     816                 :      1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431,
     817                 :      1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431,
     818                 :      1431, 1431, 1431, 1431, 1431, 1431, 1421, 1421, 1447, 1445,
     819                 : 
     820                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     821                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1446, 1431, 1431,
     822                 :      1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431,
     823                 :      1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431,
     824                 :      1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431,
     825                 :      1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431,
     826                 :      1431, 1431, 1448, 1447, 1421, 1421, 1421, 1421, 1421, 1421,
     827                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     828                 :      1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431,
     829                 :      1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431,
     830                 : 
     831                 :      1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431,
     832                 :      1449, 1448, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     833                 :      1421, 1421, 1421, 1431, 1431, 1431, 1431, 1431, 1431, 1431,
     834                 :      1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431,
     835                 :      1431, 1431, 1431, 1431, 1431, 1431, 1431, 1450, 1449, 1421,
     836                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1431,
     837                 :      1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431,
     838                 :      1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1451, 1450,
     839                 :      1421, 1421, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431,
     840                 :      1431, 1431, 1431, 1431, 1431, 1452, 1451, 1421, 1431, 1431,
     841                 : 
     842                 :      1431, 1431, 1431, 1431, 1431, 1431, 1431, 1453, 1452, 1421,
     843                 :      1431, 1431, 1431, 1431, 1454, 1453, 1421, 1431, 1431, 1431,
     844                 :      1431, 1455, 1454, 1421, 1431, 1456, 1455, 1421, 1431, 1457,
     845                 :      1456, 1421, 1431, 1458, 1457, 1421, 1459, 1458, 1421, 1421,
     846                 :      1460, 1459, 1421, 1421, 1421, 1421, 1461, 1460, 1421, 1421,
     847                 :      1421, 1462, 1461, 1421, 1421, 1421, 1463, 1462, 1421, 1421,
     848                 :      1421, 1421, 1464, 1463, 1465, 1464, 1466, 1465, 1467, 1466,
     849                 :      1468, 1467, 1469, 1468, 1470, 1469, 1471, 1470, 1472, 1471,
     850                 :      1473, 1472, 1474, 1473, 1475, 1474, 1476, 1475, 1477, 1476,
     851                 :      1478, 1477, 1479, 1478, 1480, 1479, 1481, 1480, 1482, 1481,
     852                 : 
     853                 :      1483, 1482, 1484, 1483, 1485, 1484, 1486, 1485, 1487, 1486,
     854                 :      1488, 1487, 1489, 1488, 1490, 1489, 1491, 1490, 1492, 1491,
     855                 :      1493, 1492, 1494, 1493, 1495, 1494, 1496, 1495, 1497, 1496,
     856                 :      1498, 1497, 1499, 1498, 1500, 1499, 1501, 1500, 1502, 1501,
     857                 :      1503, 1502, 1504, 1503, 1505, 1504, 1506, 1505, 1507, 1506,
     858                 :      1508, 1507, 1509, 1508, 1510, 1509, 1511, 1510, 1512, 1511,
     859                 :      1513, 1512, 1514, 1513, 1515, 1514, 1516, 1515, 1517, 1516,
     860                 :      1518, 1517, 1519, 1518, 1520, 1519, 1521, 1520, 1522, 1521,
     861                 :      1523, 1522, 1524, 1523, 1525, 1524, 1526, 1525, 1527, 1526,
     862                 :      1528, 1527, 1529, 1528, 1530, 1529, 1531, 1530, 1532, 1531,
     863                 : 
     864                 :      1533, 1532, 1534, 1533, 1535, 1534, 1536, 1535, 1537, 1536,
     865                 :      1538, 1537, 1539, 1538, 1540, 1539, 1541, 1540, 1542, 1541,
     866                 :      1543, 1542, 1544, 1543, 1545, 1544, 1546, 1545, 1547, 1546,
     867                 :      1548, 1547, 1549, 1548, 1550, 1549, 1551, 1550, 1552, 1551,
     868                 :      1553, 1552, 1554, 1553, 1555, 1554, 1556, 1555, 1557, 1556,
     869                 :      1558, 1557, 1559, 1558, 1560, 1559, 1561, 1560, 1562, 1561,
     870                 :      1563, 1562, 1564, 1563, 1565, 1564, 1566, 1565, 1567, 1566,
     871                 :      1568, 1567, 1569, 1568, 1570, 1569, 1571, 1570, 1572, 1571,
     872                 :      1573, 1572, 1574, 1573, 1575, 1574, 1576, 1575, 1577, 1576,
     873                 :      1578, 1577, 1579, 1578, 1580, 1579, 1581, 1580, 1582, 1581,
     874                 : 
     875                 :      1583, 1582, 1584, 1583, 1585, 1584, 1586, 1585, 1587, 1586,
     876                 :      1588, 1587, 1589, 1588, 1590, 1589, 1591, 1590, 1592, 1591,
     877                 :      1593, 1592, 1594, 1593, 1595, 1594, 1596, 1595, 1597, 1596,
     878                 :      1598, 1597, 1599, 1598, 1600, 1599, 1601, 1600, 1602, 1601,
     879                 :      1603, 1602, 1604, 1603, 1605, 1604, 1606, 1605, 1607, 1606,
     880                 :      1608, 1607, 1609, 1608, 1610, 1609, 1611, 1610, 1612, 1611,
     881                 :      1613, 1612, 1614, 1613, 1615, 1614, 1616, 1615, 1617, 1616,
     882                 :      1618, 1617, 1619, 1618, 1620, 1619, 1621, 1620, 1622, 1621,
     883                 :      1623, 1622, 1624, 1623, 1625, 1624, 1626, 1625, 1627, 1626,
     884                 :      1628, 1627, 1629, 1628, 1630, 1629, 1631, 1630, 1632, 1631,
     885                 : 
     886                 :      1633, 1632, 1634, 1633, 1635, 1634, 1636, 1635, 1637, 1636,
     887                 :      1638, 1637, 1639, 1638, 1640, 1639, 1641, 1640, 1642, 1641,
     888                 :      1643, 1642, 1644, 1643, 1645, 1644, 1646, 1645, 1647, 1646,
     889                 :      1648, 1647, 1649, 1648, 1650, 1649, 1651, 1650, 1652, 1651,
     890                 :      1653, 1652, 1654, 1653, 1655, 1654, 1656, 1655, 1657, 1656,
     891                 :      1658, 1657, 1659, 1658, 1660, 1659, 1661, 1660, 1662, 1661,
     892                 :      1663, 1662, 1664, 1663, 1665, 1664, 1666, 1665, 1667, 1666,
     893                 :      1668, 1667, 1669, 1668, 1670, 1669, 1671, 1670, 1672, 1671,
     894                 :      1673, 1672, 1674, 1673, 1675, 1674, 1676, 1675, 1677, 1676,
     895                 :      1678, 1677, 1679, 1678, 1680, 1679, 1681, 1680, 1682, 1681,
     896                 : 
     897                 :      1683, 1682, 1684, 1683, 1685, 1684, 1686, 1685, 1687, 1686,
     898                 :      1688, 1687, 1689, 1688, 1690, 1689, 1691, 1690, 1692, 1691,
     899                 :      1693, 1692, 1694, 1693, 1695, 1694, 1696, 1695, 1697, 1696,
     900                 :      1698, 1697, 1699, 1698, 1700, 1699, 1701, 1700, 1702, 1701,
     901                 :      1703, 1702, 1704, 1703, 1705, 1704, 1706, 1705, 1707, 1706,
     902                 :      1708, 1707, 1709, 1708, 1710, 1709, 1711, 1710, 1712, 1711,
     903                 :      1713, 1712, 1714, 1713, 1715, 1714, 1716, 1715, 1717, 1716,
     904                 :      1718, 1717, 1719, 1718, 1720, 1719, 1721, 1720, 1722, 1721,
     905                 :      1723, 1722, 1724, 1723, 1725, 1724, 1726, 1725, 1727, 1726,
     906                 :      1728, 1727, 1729, 1728, 1730, 1729, 1731, 1730, 1732, 1731,
     907                 : 
     908                 :      1733, 1732, 1734, 1733, 1735, 1734, 1736, 1735, 1737, 1736,
     909                 :      1738, 1737, 1739, 1738, 1740, 1739, 1741, 1740, 1742, 1741,
     910                 :      1743, 1742, 1744, 1743, 1745, 1744, 1746, 1745, 1747, 1746,
     911                 :      1748, 1747, 1749, 1748, 1750, 1749, 1751, 1750, 1752, 1751,
     912                 :      1753, 1752, 1754, 1753, 1755, 1754, 1756, 1755, 1757, 1756,
     913                 :      1758, 1757, 1759, 1758, 1760, 1759, 1761, 1760, 1762, 1761,
     914                 :      1763, 1762, 1764, 1763, 1765, 1764, 1766, 1765, 1767, 1766,
     915                 :      1768, 1767, 1769, 1768, 1770, 1769, 1771, 1770, 1772, 1771,
     916                 :      1773, 1772, 1774, 1773, 1775, 1774, 1776, 1775, 1777, 1776,
     917                 :      1778, 1777, 1779, 1778, 1780, 1779, 1781, 1780, 1782, 1781,
     918                 : 
     919                 :      1783, 1782, 1784, 1783, 1785, 1784, 1786, 1785, 1787, 1786,
     920                 :      1788, 1787, 1789, 1788, 1790, 1789, 1791, 1790, 1792, 1791,
     921                 :      1793, 1792, 1794, 1793, 1795, 1794, 1796, 1795, 1797, 1796,
     922                 :      1798, 1797, 1799, 1798, 1800, 1799, 1801, 1800, 1802, 1801,
     923                 :      1803, 1802, 1804, 1803, 1805, 1804, 1806, 1805, 1807, 1806,
     924                 :      1808, 1807, 1809, 1808, 1810, 1809, 1811, 1810, 1812, 1811,
     925                 :      1813, 1812, 1814, 1813, 1815, 1814, 1816, 1815, 1817, 1816,
     926                 :      1818, 1817, 1819, 1818, 1820, 1819, 1821, 1820, 1822, 1821,
     927                 :      1823, 1822, 1824, 1823, 1825, 1824, 1826, 1825, 1827, 1826,
     928                 :      1828, 1827, 1829, 1828, 1830, 1829, 1831, 1830, 1832, 1831,
     929                 : 
     930                 :      1833, 1832, 1834, 1833, 1835, 1834, 1836, 1835, 1837, 1836,
     931                 :      1838, 1837, 1839, 1838, 1840, 1839, 1841, 1840, 1421, 1841,
     932                 :         0, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     933                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     934                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     935                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     936                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     937                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     938                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     939                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     940                 : 
     941                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     942                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     943                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     944                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     945                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     946                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     947                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     948                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     949                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     950                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     951                 : 
     952                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     953                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     954                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     955                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     956                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     957                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     958                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     959                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     960                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     961                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     962                 : 
     963                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     964                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     965                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     966                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     967                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     968                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     969                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     970                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     971                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     972                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     973                 : 
     974                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     975                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     976                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     977                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
     978                 :      1421
     979                 :     } ;
     980                 : 
     981                 : static yyconst short int yy_nxt[7680] =
     982                 :     {   0,
     983                 :        26,   27,   27,   27,   28,   29,   30,   31,   32,   33,
     984                 :        34,   35,   36,   37,   38,   36,   39,   40,   41,   42,
     985                 :        43,   43,   44,   36,   45,   46,   47,   48,   36,   26,
     986                 :        49,   50,   51,   52,   53,   54,   55,   56,   57,   58,
     987                 :        59,   60,   59,   59,   61,   59,   62,   63,   64,   59,
     988                 :        65,   66,   67,   68,   69,   70,   71,   59,   59,   72,
     989                 :        73,   74,   26,   75,   75,   75,   75,   76,   75,   77,
     990                 :        75,   75,   75,   75,   75,   75,   75,   75,   78,   75,
     991                 :        75,   79,   80,   80,   75,   75,   75,   75,   75,   75,
     992                 :        81,   82,   75,   83,   84,   83,   83,   83,   83,   83,
     993                 : 
     994                 :        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
     995                 :        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
     996                 :        83,   85,   75,   81,   87,   87,   89,   89,   92,  112,
     997                 :       115,  115,  115,   93,  104,  105,  118,  121,  122,  202,
     998                 :       106,  104,  105,   88,   88,  126,  123,  106,  113,  203,
     999                 :        90,   90,   94,   91,   91,   92,   92,  139,  107,  108,
    1000                 :       119,   93,  124,  940,  127,  107,  108,  141,  140,  144,
    1001                 :       144,  144,  114,  158,  159,  145,  142,  143,  160,  161,
    1002                 :        94,  942,   95,   92,   95,   95,   95,   95,   95,   95,
    1003                 :        95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
    1004                 : 
    1005                 :        95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
    1006                 :        96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
    1007                 :        96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
    1008                 :        96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
    1009                 :        96,   97,   96,   97,   97,   97,   97,   97,   97,   97,
    1010                 :        97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
    1011                 :        97,   97,   97,   97,   97,   97,   97,   97,   97,   96,
    1012                 :        96,   96,   98,   98,   98,   98,   98,   98,   98,   98,
    1013                 :        98,   98,   98,   98,   98,   98,   98,   98,   98,   98,
    1014                 :        98,   98,   98,   98,   98,   98,   98,   98,   98,   98,
    1015                 : 
    1016                 :        98,   98,   98,   99,   98,   99,   99,   99,   99,   99,
    1017                 :        99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
    1018                 :        99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
    1019                 :        99,   98,   98,   98,  128,  146,  944,  166,  154,  149,
    1020                 :       147,  150,  150,  150,  155,  156,  157,  148,  149,  167,
    1021                 :       150,  150,  150,  168,  169,  197,  170,  209,  198,  151,
    1022                 :       177,  171,  174,  946,  178,  948,  129,  130,  151,  131,
    1023                 :       179,  132,  204,  175,  133,  172,  176,  205,  152,  180,
    1024                 :       134,  186,  200,  135,  136,  201,  137,  187,  181,  182,
    1025                 :       183, 1421,  210,  188,  292,  190,  117,  293,  184,  386,
    1026                 : 
    1027                 :       185,  173,  191,  192,  215,  215,  215,  387,  193,  212,
    1028                 :       212,  212,  212,  212,  212,  212,  212,  212,  212,  212,
    1029                 :       212,  212,  212,  212,  212,  212,  212,  212,  212,  212,
    1030                 :       212,  212,  212,  212,  212,  212,  212,  212,  212,  212,
    1031                 :       120,  212,  120,  120,  120,  120,  120,  120,  120,  120,
    1032                 :       120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
    1033                 :       120,  120,  120,  120,  120,  120,  120,  120,  213,  212,
    1034                 :       212,  215,  215,  215,  218,  227,  231,  219,  219,  231,
    1035                 :      1421,  231,  219,  219,  232,  118,  233,  234,  219,  219,
    1036                 :       230,  243,  243,  126,  228,  248, 1421,  243,  950, 1421,
    1037                 : 
    1038                 :       115,  115,  115,  231,  253,  254,  231,  236,  216,  119,
    1039                 :       271,  272,  127,  289,  220,  243,  243,  221,  249,  220,
    1040                 :       256,  118,  221, 1421,  349,  220,  257,  290,  221,  144,
    1041                 :       144,  144,  266,  266,  266,  149,  350,  150,  150,  150,
    1042                 :       275,  276,  269,  269,  269,  119,  267,  151,  267,  126,
    1043                 :       151,  268,  268,  268,  952,  151,  269,  269,  269,  269,
    1044                 :       269,  269,  277,  287,  288,  278,  300,  279,  127,  307,
    1045                 :       313,  280,  281,  328,  328,  316,  314,  301,  317,  215,
    1046                 :       215,  215,  327,  327,  327,  308,  309,  231,  329,  329,
    1047                 :       329,  954,  231,  956,  233,  234,  327,  327,  327,  327,
    1048                 : 
    1049                 :       327,  327,  329,  329,  329,  329,  329,  329,  231,  233,
    1050                 :       234, 1421,  408,  232,  231,  236,  243,  243,  344,  344,
    1051                 :       344,  958,  243,  409,  266,  266,  266, 1421,  361,  362,
    1052                 :      1421,  268,  268,  268,  960,  231,  268,  268,  268,  962,
    1053                 :       243,  243,  151,  269,  269,  269,  397,  397,  368,  964,
    1054                 :       369,  416,  417,  370, 1421,  416,  417,  269,  269,  269,
    1055                 :       269,  269,  269,  371,  327,  327,  327,  372,  966,  968,
    1056                 :       398,  398,  398,  970, 1421,  344,  344,  344,  327,  327,
    1057                 :       327,  327,  327,  327,  398,  398,  398,  398,  398,  398,
    1058                 :      1421,  408, 1421, 1421,  465,  465,  466, 1421,  470,  476,
    1059                 : 
    1060                 :       972,  514,  409,  470,  476, 1421,  974,  521, 1421,  471,
    1061                 :       477, 1421,  515, 1421,  471,  477, 1421, 1421,  522,  976,
    1062                 :       514, 1421,  551, 1421, 1421,  555,  557,  410,  550,  550,
    1063                 :       550,  515,  521,  552,  472, 1421,  556,  558,  551, 1421,
    1064                 :      1421,  470, 1421,  522,  550,  550,  550,  408, 1421,  552,
    1065                 :       555,  557,  471,  582,  582,  582, 1421, 1421,  409,  978,
    1066                 :       980,  556,  558,  582,  582,  582, 1421, 1421,  639,  639,
    1067                 :       639,  982, 1421, 1421, 1421, 1421, 1421,  984,  162, 1421,
    1068                 :       986,  988,  990, 1421,  992, 1421, 1421,  581,  162, 1421,
    1069                 :      1421,  994,  640, 1421,  996, 1421, 1421, 1421, 1421, 1421,
    1070                 : 
    1071                 :      1421, 1421,  998, 1000, 1421, 1421, 1002, 1004, 1421, 1006,
    1072                 :      1421, 1008, 1421, 1421, 1421, 1421, 1421, 1421,  639,  639,
    1073                 :       639, 1010, 1421, 1012, 1014,  643,  643,  643, 1421,  644,
    1074                 :      1421, 1016, 1421, 1421,  645, 1421, 1018, 1421, 1020, 1421,
    1075                 :      1421, 1022,  640,  643,  643,  643, 1421,  644,  661,  661,
    1076                 :       661, 1421,  645, 1421, 1421, 1421, 1421, 1421,  661,  661,
    1077                 :       661, 1024, 1421, 1421, 1026, 1421, 1028, 1030, 1421, 1421,
    1078                 :      1032, 1421,  646,  662, 1421, 1421, 1421, 1421, 1421, 1421,
    1079                 :      1421, 1421, 1421,  662, 1421, 1421, 1421, 1421, 1421, 1421,
    1080                 :       646, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1034,
    1081                 : 
    1082                 :      1421, 1036, 1421, 1038, 1040, 1421, 1421, 1421, 1042, 1421,
    1083                 :      1044, 1421, 1421, 1046, 1421, 1421, 1421, 1048, 1421, 1421,
    1084                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1085                 :      1421, 1421, 1421, 1421, 1421, 1421, 1050, 1421, 1421, 1052,
    1086                 :      1421, 1421, 1054, 1421, 1421, 1056, 1421, 1058, 1060, 1062,
    1087                 :      1421, 1064, 1421, 1421, 1066, 1421, 1068, 1421, 1421, 1421,
    1088                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1070, 1421,
    1089                 :      1421, 1421, 1421, 1421, 1421, 1421, 1072, 1421, 1421, 1074,
    1090                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1076, 1421,
    1091                 :      1078, 1421, 1421, 1080, 1421, 1421, 1421, 1082, 1421, 1084,
    1092                 : 
    1093                 :      1421, 1421, 1086, 1421, 1421, 1421, 1421, 1421, 1088, 1421,
    1094                 :      1421, 1421, 1421, 1421, 1421, 1090, 1421, 1421, 1421, 1092,
    1095                 :      1421, 1421, 1421, 1421, 1094, 1421, 1421, 1421, 1421, 1421,
    1096                 :      1096, 1421, 1421, 1098, 1100, 1421, 1102, 1421, 1421, 1104,
    1097                 :      1421, 1421, 1421, 1421, 1421, 1106, 1108, 1421, 1110, 1421,
    1098                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1099                 :      1421, 1421, 1421, 1421, 1421, 1112, 1421, 1114, 1421, 1421,
    1100                 :      1116, 1421, 1421, 1421, 1118, 1421, 1120, 1122, 1421, 1124,
    1101                 :      1126, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1102                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1103                 : 
    1104                 :      1421, 1421, 1421, 1421, 1421, 1128, 1421, 1421, 1130, 1421,
    1105                 :      1132, 1134, 1421, 1421, 1136, 1138, 1421, 1140, 1421, 1421,
    1106                 :      1142, 1421, 1144, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1107                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1108                 :      1421, 1421, 1421, 1421, 1421, 1146, 1421, 1421, 1148, 1421,
    1109                 :      1421, 1150, 1421, 1421, 1152, 1154, 1421, 1421, 1156, 1421,
    1110                 :      1421, 1158, 1421, 1421, 1421, 1160, 1421, 1421, 1162, 1421,
    1111                 :      1421, 1421, 1164, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1112                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1166, 1421, 1421,
    1113                 :      1421, 1168, 1421, 1421, 1170, 1421, 1421, 1421, 1172, 1421,
    1114                 : 
    1115                 :      1421, 1174, 1421, 1421, 1176, 1178, 1421, 1180, 1182, 1421,
    1116                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1184, 1421,
    1117                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1186, 1421, 1421,
    1118                 :      1188, 1421, 1421, 1190, 1421, 1421, 1421, 1421, 1421, 1421,
    1119                 :      1421, 1421, 1421, 1421, 1192, 1421, 1421, 1194, 1196, 1421,
    1120                 :      1198, 1421, 1421, 1200, 1421, 1421, 1421, 1421, 1421, 1421,
    1121                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1202, 1421, 1421,
    1122                 :      1204, 1421, 1421, 1206, 1421, 1208, 1210, 1421, 1421, 1212,
    1123                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1124                 :      1214, 1421, 1421, 1216, 1421, 1421, 1218, 1421, 1421, 1421,
    1125                 : 
    1126                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1220, 1421, 1421,
    1127                 :      1421, 1421, 1421, 1421, 1421, 1421, 1222, 1421, 1224, 1226,
    1128                 :      1421, 1228, 1230, 1421, 1421, 1232, 1421, 1421, 1421, 1421,
    1129                 :      1421, 1421, 1421, 1421, 1421, 1421, 1234, 1421, 1421, 1421,
    1130                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1236, 1421, 1421,
    1131                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1238, 1421,
    1132                 :      1421, 1240, 1242, 1421, 1244, 1246, 1421, 1248, 1250, 1421,
    1133                 :      1421, 1421, 1421, 1421, 1252, 1421, 1421, 1421, 1421, 1421,
    1134                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1135                 :      1421, 1421, 1421, 1254, 1421, 1256, 1421, 1421, 1258, 1421,
    1136                 : 
    1137                 :      1421, 1421, 1421, 1421, 1260, 1421, 1421, 1262, 1264, 1421,
    1138                 :      1266, 1421, 1421, 1268, 1421, 1421, 1421, 1421, 1421, 1421,
    1139                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1140                 :      1421, 1421, 1421, 1270, 1421, 1272, 1274, 1421, 1276, 1278,
    1141                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1142                 :      1280, 1421, 1421, 1282, 1421, 1421, 1284, 1421, 1421, 1421,
    1143                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1286, 1421, 1421,
    1144                 :      1288, 1421, 1421, 1290, 1421, 1421, 1292, 1421, 1421, 1294,
    1145                 :      1421, 1296, 1298, 1421, 1421, 1300, 1421, 1421, 1421, 1421,
    1146                 :      1421, 1421, 1421, 1421, 1421, 1421, 1302, 1421, 1421, 1421,
    1147                 : 
    1148                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1304, 1421, 1421,
    1149                 :      1306, 1421, 1421, 1308, 1421, 1421, 1421, 1421, 1421, 1421,
    1150                 :      1421, 1421, 1310, 1421, 1312, 1314, 1421, 1316, 1318, 1421,
    1151                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1152                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1153                 :      1421, 1421, 1421, 1320, 1421, 1322, 1421, 1421, 1324, 1421,
    1154                 :      1421, 1421, 1421, 1421, 1326, 1421, 1421, 1328, 1330, 1421,
    1155                 :      1332, 1421, 1421, 1334, 1421, 1421, 1421, 1421, 1421, 1421,
    1156                 :      1336, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1157                 :      1421, 1421, 1421, 1421, 1421, 1338, 1421, 1421, 1340, 1342,
    1158                 : 
    1159                 :      1421, 1344, 1421, 1421, 1346, 1421, 1421, 1421, 1421, 1421,
    1160                 :      1348, 1421, 1421, 1350, 1421, 1421, 1352, 1421, 1421, 1421,
    1161                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1354, 1421, 1421,
    1162                 :      1356, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1358,
    1163                 :      1421, 1360, 1362, 1421, 1364, 1366, 1421, 1421, 1421, 1421,
    1164                 :      1421, 1421, 1421, 1421, 1421, 1421, 1368, 1421, 1421, 1421,
    1165                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1370, 1421, 1421,
    1166                 :      1372, 1421, 1421, 1374, 1421, 1421, 1376, 1421, 1421, 1378,
    1167                 :      1421, 1421, 1380, 1421, 1421, 1382, 1421, 1384, 1386, 1421,
    1168                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1169                 : 
    1170                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1171                 :      1421, 1421, 1421, 1388, 1421, 1390, 1392, 1421, 1394, 1396,
    1172                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1398, 1421,
    1173                 :      1400, 1421, 1421, 1402, 1421, 1421, 1421, 1421, 1421, 1421,
    1174                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1175                 :      1421, 1421, 1421, 1421, 1421, 1404, 1421, 1421, 1406, 1408,
    1176                 :      1421, 1410, 1421, 1421, 1412, 1421, 1421, 1421, 1421, 1421,
    1177                 :      1414, 1421, 1421, 1416, 1421, 1421, 1418, 1421, 1421, 1421,
    1178                 :      1421, 1421, 1421, 1421, 1421, 1421, 1420,  120, 1421, 1421,
    1179                 :       938, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1180                 : 
    1181                 :      1421,  936, 1421, 1421,  934,  932, 1421,  930, 1421, 1421,
    1182                 :       928, 1421, 1421, 1421, 1421, 1421,  926, 1421, 1421, 1421,
    1183                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421,  924, 1421, 1421,
    1184                 :       922, 1421, 1421,  920, 1421, 1421,  918, 1421, 1421, 1421,
    1185                 :      1421, 1421, 1421, 1421, 1421,  916, 1421,  914,  912, 1421,
    1186                 :       910, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1187                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1188                 :      1421, 1421, 1421,  908, 1421,  906,  904, 1421,  902,  900,
    1189                 :      1421, 1421,  898, 1421, 1421,  896, 1421, 1421,  894, 1421,
    1190                 :      1421, 1421, 1421,  892, 1421, 1421, 1421, 1421, 1421, 1421,
    1191                 : 
    1192                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1193                 :      1421, 1421, 1421, 1421, 1421,  890, 1421, 1421,  888,  886,
    1194                 :      1421,  884,  882, 1421,  880,  878, 1421, 1421, 1421, 1421,
    1195                 :      1421, 1421, 1421, 1421, 1421, 1421,  876, 1421, 1421, 1421,
    1196                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421,  874, 1421, 1421,
    1197                 :       872, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1198                 :      1421,  870, 1421, 1421,  868,  866, 1421,  864, 1421, 1421,
    1199                 :       862, 1421, 1421, 1421, 1421, 1421,  860, 1421, 1421, 1421,
    1200                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421,  858, 1421, 1421,
    1201                 :       856, 1421,  854,  852, 1421, 1421,  850, 1421, 1421, 1421,
    1202                 : 
    1203                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421,  848, 1421, 1421,
    1204                 :       846, 1421, 1421,  844, 1421, 1421,  842, 1421, 1421, 1421,
    1205                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1206                 :      1421, 1421, 1421,  840, 1421,  838,  836, 1421,  834,  832,
    1207                 :      1421, 1421,  830, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1208                 :      1421, 1421, 1421,  828, 1421, 1421,  826, 1421, 1421, 1421,
    1209                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1210                 :      1421, 1421, 1421, 1421, 1421,  824, 1421, 1421,  822,  820,
    1211                 :      1421,  818,  816, 1421,  814,  812, 1421, 1421,  810, 1421,
    1212                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1213                 : 
    1214                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1215                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,  808, 1421,
    1216                 :      1421,  806, 1421,  804,  802,  800, 1421,  798,  796, 1421,
    1217                 :       794, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1218                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1219                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1220                 :      1421, 1421, 1421,  792,  790, 1421,  788,  786, 1421,  784,
    1221                 :       782, 1421, 1421,  780, 1421, 1421,  778, 1421, 1421, 1421,
    1222                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1223                 :      1421, 1421, 1421, 1421, 1421,  776, 1421, 1421, 1421, 1421,
    1224                 : 
    1225                 :      1421, 1421, 1421, 1421, 1421, 1421,  774, 1421, 1421,  772,
    1226                 :       770, 1421,  768,  766, 1421,  764,  762, 1421, 1421, 1421,
    1227                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1228                 :      1421, 1421, 1421, 1421, 1421,  760, 1421, 1421,  758, 1421,
    1229                 :      1421,  756, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1230                 :      1421, 1421,  754, 1421, 1421,  752,  750, 1421,  748, 1421,
    1231                 :      1421,  746, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1232                 :      1421, 1421, 1421, 1421, 1421,  744, 1421, 1421,  742, 1421,
    1233                 :      1421,  740, 1421,  738,  736, 1421, 1421,  734, 1421, 1421,
    1234                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,  732, 1421,
    1235                 : 
    1236                 :      1421,  730, 1421, 1421,  728, 1421, 1421, 1421, 1421, 1421,
    1237                 :      1421, 1421, 1421, 1421, 1421,  726, 1421, 1421, 1421, 1421,
    1238                 :      1421, 1421, 1421, 1421,  724, 1421,  722,  720, 1421,  718,
    1239                 :       716, 1421, 1421,  714, 1421, 1421, 1421, 1421, 1421, 1421,
    1240                 :      1421, 1421, 1421, 1421,  712, 1421, 1421, 1421, 1421, 1421,
    1241                 :      1421, 1421, 1421, 1421, 1421,  710, 1421, 1421, 1421, 1421,
    1242                 :      1421, 1421, 1421, 1421, 1421, 1421,  708, 1421, 1421,  706,
    1243                 :       704, 1421,  702,  700, 1421,  698,  696, 1421, 1421, 1421,
    1244                 :      1421, 1421,  694, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1245                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1246                 : 
    1247                 :      1421,  692, 1421,  690, 1421, 1421,  688, 1421, 1421, 1421,
    1248                 :      1421, 1421,  686, 1421, 1421,  684,  682, 1421,  680, 1421,
    1249                 :      1421,  678, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1250                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1251                 :      1421,  676, 1421,  674,  672, 1421,  670,  668, 1421, 1421,
    1252                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,  666, 1421,
    1253                 :      1421,  656, 1421, 1421,  656, 1421, 1421, 1421, 1421, 1421,
    1254                 :      1421, 1421, 1421, 1421, 1421,  664, 1421, 1421,  660, 1421,
    1255                 :      1421,  659, 1421, 1421,  658, 1421, 1421,  656, 1421,  655,
    1256                 :       654, 1421, 1421,  653, 1421, 1421, 1421, 1421, 1421, 1421,
    1257                 : 
    1258                 :      1421, 1421, 1421, 1421,  651, 1421, 1421, 1421, 1421, 1421,
    1259                 :      1421, 1421, 1421, 1421, 1421,  650, 1421, 1421,  649, 1421,
    1260                 :      1421,  648, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1261                 :       642, 1421,  638,  636, 1421,  635,  633, 1421, 1421, 1421,
    1262                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1263                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1264                 :      1421,  632, 1421,  631, 1421, 1421,  629, 1421, 1421, 1421,
    1265                 :      1421, 1421,  628, 1421, 1421,  627,  625, 1421,  624, 1421,
    1266                 :      1421,  623, 1421, 1421, 1421, 1421, 1421, 1421,  621, 1421,
    1267                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1268                 : 
    1269                 :      1421, 1421, 1421,  620, 1421, 1421,  619,  618, 1421,  617,
    1270                 :      1421, 1421,  616, 1421, 1421, 1421, 1421, 1421,  614, 1421,
    1271                 :      1421,  613, 1421, 1421,  612, 1421, 1421, 1421, 1421, 1421,
    1272                 :      1421, 1421, 1421, 1421, 1421,  611, 1421, 1421,  610, 1421,
    1273                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421,  609, 1421,  607,
    1274                 :       606, 1421,  605,  604, 1421, 1421, 1421, 1421, 1421, 1421,
    1275                 :      1421, 1421, 1421, 1421,  603, 1421, 1421, 1421, 1421, 1421,
    1276                 :      1421, 1421, 1421, 1421, 1421,  602, 1421, 1421,  601, 1421,
    1277                 :      1421,  600, 1421, 1421,  599, 1421, 1421,  598, 1421, 1421,
    1278                 :       597, 1421, 1421,  595, 1421,  594,  593, 1421, 1421, 1421,
    1279                 : 
    1280                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1281                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1282                 :      1421,  592, 1421,  591,  590, 1421,  589,  588, 1421, 1421,
    1283                 :      1421, 1421, 1421, 1421, 1421, 1421,  587, 1421,  586, 1421,
    1284                 :      1421,  585, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1285                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1286                 :      1421, 1421, 1421,  584, 1421, 1421,  583,  580, 1421,  578,
    1287                 :      1421, 1421,  577, 1421, 1421, 1421, 1421,  576,  575, 1421,
    1288                 :      1421,  574, 1421,  573,  572,  571, 1421, 1421, 1421,  570,
    1289                 :      1421,  569, 1421,  568,  567,  566,  565, 1421,  564,  563,
    1290                 : 
    1291                 :       562,  561,  560, 1421,  559,  554,  553,  549,  547,  546,
    1292                 :       545,  544,  543,  542, 1421,   24,   24,   24,   24,   24,
    1293                 :        24,   24,   24,   24,   24,   24,   86,   86,   86,   86,
    1294                 :        86,   86,   86,   86,   86,   86,   86,  100,  100,  100,
    1295                 :       100,  100,  100,  100,  100,  100,  100,  100,  103,  103,
    1296                 :       103,  103,  103,  103,  103,  103,  103,  103,  103,  109,
    1297                 :       109,  109,  109,  109,  109,  109,  109,  109,  109,  109,
    1298                 :       111,  111,  111,  111,  111,  111,  111,  111,  111,  541,
    1299                 :       111,  117,  117,  117,  117,  540,  117,  117,  117,  117,
    1300                 :       117,  117,  125,  125,  125,  125,  125,  125,  125,  125,
    1301                 : 
    1302                 :       125,  125,  125,  164,  539,  538,  164,  211,  211,  211,
    1303                 :       537,  211,  211,  536,  211,  211,  217,  217,  217,  217,
    1304                 :       217,  217,  217,  217,  217,  217,  217,  222,  535,  534,
    1305                 :       222,  225,  225,  225,  225,  225,  533,  225,  225,  225,
    1306                 :       225,  225,  235,  532,  531,  530,  529,  235,  235,  528,
    1307                 :       235,  237,  527,  526,  237,  238,  525,  524,  238,  239,
    1308                 :       239,  239,  239,  239,  239,  523,  239,  239,  239,  239,
    1309                 :       242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
    1310                 :       242,  246,  246,  246,  246,  246,  246,  246,  246,  246,
    1311                 :       246,  246,  252,  520,  519,  252,  330,  330,  330,  330,
    1312                 : 
    1313                 :       330,  330,  330,  330,  330,  330,  330,  347,  518,  412,
    1314                 :       517,  516,  513,  465,  512,  510,  347,  399,  399,  399,
    1315                 :       399,  399,  399,  399,  399,  399,  399,  399,  418,  509,
    1316                 :       508,  507,  506,  418,  505,  504,  418,  463,  463,  463,
    1317                 :       463,  463,  463,  463,  463,  463,  463,  463,  511,  511,
    1318                 :       511,  511,  511,  511,  511,  511,  511,  511,  511,  548,
    1319                 :       548,  548,  548,  548,  548,  548,  548,  548,  548,  548,
    1320                 :       579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
    1321                 :       579,  596,  596,  596,  596,  596,  596,  596,  596,  596,
    1322                 :       596,  596,  608,  608,  608,  608,  608,  608,  608,  608,
    1323                 : 
    1324                 :       608,  608,  608,  615,  615,  615,  615,  615,  615,  615,
    1325                 :       615,  615,  615,  615,  622,  622,  622,  622,  622,  622,
    1326                 :       622,  622,  622,  622,  622,  626,  626,  626,  626,  626,
    1327                 :       626,  626,  626,  626,  626,  626,  630,  630,  630,  630,
    1328                 :       630,  630,  630,  630,  630,  630,  630,  634,  634,  634,
    1329                 :       634,  634,  634,  634,  634,  634,  634,  634,  637,  637,
    1330                 :       637,  637,  637,  637,  637,  637,  637,  637,  637,  641,
    1331                 :       641,  641,  641,  641,  641,  641,  641,  641,  641,  641,
    1332                 :       647,  647,  647,  647,  647,  647,  647,  647,  647,  647,
    1333                 :       647,  652,  652,  652,  652,  652,  652,  652,  652,  652,
    1334                 : 
    1335                 :       652,  652,  657,  657,  657,  657,  657,  657,  657,  657,
    1336                 :       657,  657,  657,  663,  663,  663,  663,  663,  663,  663,
    1337                 :       663,  663,  663,  663,  665,  665,  665,  665,  665,  665,
    1338                 :       665,  665,  665,  665,  665,  667,  667,  667,  667,  667,
    1339                 :       667,  667,  667,  667,  667,  667,  669,  669,  669,  669,
    1340                 :       669,  669,  669,  669,  669,  669,  669,  671,  671,  671,
    1341                 :       671,  671,  671,  671,  671,  671,  671,  671,  673,  673,
    1342                 :       673,  673,  673,  673,  673,  673,  673,  673,  673,  675,
    1343                 :       675,  675,  675,  675,  675,  675,  675,  675,  675,  675,
    1344                 :       677,  677,  677,  677,  677,  677,  677,  677,  677,  677,
    1345                 : 
    1346                 :       677,  679,  679,  679,  679,  679,  679,  679,  679,  679,
    1347                 :       679,  679,  681,  681,  681,  681,  681,  681,  681,  681,
    1348                 :       681,  681,  681,  683,  683,  683,  683,  683,  683,  683,
    1349                 :       683,  683,  683,  683,  685,  685,  685,  685,  685,  685,
    1350                 :       685,  685,  685,  685,  685,  687,  687,  687,  687,  687,
    1351                 :       687,  687,  687,  687,  687,  687,  689,  689,  689,  689,
    1352                 :       689,  689,  689,  689,  689,  689,  689,  691,  691,  691,
    1353                 :       691,  691,  691,  691,  691,  691,  691,  691,  693,  693,
    1354                 :       693,  693,  693,  693,  693,  693,  693,  693,  693,  695,
    1355                 :       695,  695,  695,  695,  695,  695,  695,  695,  695,  695,
    1356                 : 
    1357                 :       697,  697,  697,  697,  697,  697,  697,  697,  697,  697,
    1358                 :       697,  699,  699,  699,  699,  699,  699,  699,  699,  699,
    1359                 :       699,  699,  701,  701,  701,  701,  701,  701,  701,  701,
    1360                 :       701,  701,  701,  703,  703,  703,  703,  703,  703,  703,
    1361                 :       703,  703,  703,  703,  705,  705,  705,  705,  705,  705,
    1362                 :       705,  705,  705,  705,  705,  707,  707,  707,  707,  707,
    1363                 :       707,  707,  707,  707,  707,  707,  709,  709,  709,  709,
    1364                 :       709,  709,  709,  709,  709,  709,  709,  711,  711,  711,
    1365                 :       711,  711,  711,  711,  711,  711,  711,  711,  713,  713,
    1366                 :       713,  713,  713,  713,  713,  713,  713,  713,  713,  715,
    1367                 : 
    1368                 :       715,  715,  715,  715,  715,  715,  715,  715,  715,  715,
    1369                 :       717,  717,  717,  717,  717,  717,  717,  717,  717,  717,
    1370                 :       717,  719,  719,  719,  719,  719,  719,  719,  719,  719,
    1371                 :       719,  719,  721,  721,  721,  721,  721,  721,  721,  721,
    1372                 :       721,  721,  721,  723,  723,  723,  723,  723,  723,  723,
    1373                 :       723,  723,  723,  723,  725,  725,  725,  725,  725,  725,
    1374                 :       725,  725,  725,  725,  725,  727,  727,  727,  727,  727,
    1375                 :       727,  727,  727,  727,  727,  727,  729,  729,  729,  729,
    1376                 :       729,  729,  729,  729,  729,  729,  729,  731,  731,  731,
    1377                 :       731,  731,  731,  731,  731,  731,  731,  731,  733,  733,
    1378                 : 
    1379                 :       733,  733,  733,  733,  733,  733,  733,  733,  733,  735,
    1380                 :       735,  735,  735,  735,  735,  735,  735,  735,  735,  735,
    1381                 :       737,  737,  737,  737,  737,  737,  737,  737,  737,  737,
    1382                 :       737,  739,  739,  739,  739,  739,  739,  739,  739,  739,
    1383                 :       739,  739,  741,  741,  741,  741,  741,  741,  741,  741,
    1384                 :       741,  741,  741,  743,  743,  743,  743,  743,  743,  743,
    1385                 :       743,  743,  743,  743,  745,  745,  745,  745,  745,  745,
    1386                 :       745,  745,  745,  745,  745,  747,  747,  747,  747,  747,
    1387                 :       747,  747,  747,  747,  747,  747,  749,  749,  749,  749,
    1388                 :       749,  749,  749,  749,  749,  749,  749,  751,  751,  751,
    1389                 : 
    1390                 :       751,  751,  751,  751,  751,  751,  751,  751,  753,  753,
    1391                 :       753,  753,  753,  753,  753,  753,  753,  753,  753,  755,
    1392                 :       755,  755,  755,  755,  755,  755,  755,  755,  755,  755,
    1393                 :       757,  757,  757,  757,  757,  757,  757,  757,  757,  757,
    1394                 :       757,  759,  759,  759,  759,  759,  759,  759,  759,  759,
    1395                 :       759,  759,  761,  761,  761,  761,  761,  761,  761,  761,
    1396                 :       761,  761,  761,  763,  763,  763,  763,  763,  763,  763,
    1397                 :       763,  763,  763,  763,  765,  765,  765,  765,  765,  765,
    1398                 :       765,  765,  765,  765,  765,  767,  767,  767,  767,  767,
    1399                 :       767,  767,  767,  767,  767,  767,  769,  769,  769,  769,
    1400                 : 
    1401                 :       769,  769,  769,  769,  769,  769,  769,  771,  771,  771,
    1402                 :       771,  771,  771,  771,  771,  771,  771,  771,  773,  773,
    1403                 :       773,  773,  773,  773,  773,  773,  773,  773,  773,  775,
    1404                 :       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
    1405                 :       777,  777,  777,  777,  777,  777,  777,  777,  777,  777,
    1406                 :       777,  779,  779,  779,  779,  779,  779,  779,  779,  779,
    1407                 :       779,  779,  781,  781,  781,  781,  781,  781,  781,  781,
    1408                 :       781,  781,  781,  783,  783,  783,  783,  783,  783,  783,
    1409                 :       783,  783,  783,  783,  785,  785,  785,  785,  785,  785,
    1410                 :       785,  785,  785,  785,  785,  787,  787,  787,  787,  787,
    1411                 : 
    1412                 :       787,  787,  787,  787,  787,  787,  789,  789,  789,  789,
    1413                 :       789,  789,  789,  789,  789,  789,  789,  791,  791,  791,
    1414                 :       791,  791,  791,  791,  791,  791,  791,  791,  793,  793,
    1415                 :       793,  793,  793,  793,  793,  793,  793,  793,  793,  795,
    1416                 :       795,  795,  795,  795,  795,  795,  795,  795,  795,  795,
    1417                 :       797,  797,  797,  797,  797,  797,  797,  797,  797,  797,
    1418                 :       797,  799,  799,  799,  799,  799,  799,  799,  799,  799,
    1419                 :       799,  799,  801,  801,  801,  801,  801,  801,  801,  801,
    1420                 :       801,  801,  801,  803,  803,  803,  803,  803,  803,  803,
    1421                 :       803,  803,  803,  803,  805,  805,  805,  805,  805,  805,
    1422                 : 
    1423                 :       805,  805,  805,  805,  805,  807,  807,  807,  807,  807,
    1424                 :       807,  807,  807,  807,  807,  807,  809,  809,  809,  809,
    1425                 :       809,  809,  809,  809,  809,  809,  809,  811,  811,  811,
    1426                 :       811,  811,  811,  811,  811,  811,  811,  811,  813,  813,
    1427                 :       813,  813,  813,  813,  813,  813,  813,  813,  813,  815,
    1428                 :       815,  815,  815,  815,  815,  815,  815,  815,  815,  815,
    1429                 :       817,  817,  817,  817,  817,  817,  817,  817,  817,  817,
    1430                 :       817,  819,  819,  819,  819,  819,  819,  819,  819,  819,
    1431                 :       819,  819,  821,  821,  821,  821,  821,  821,  821,  821,
    1432                 :       821,  821,  821,  823,  823,  823,  823,  823,  823,  823,
    1433                 : 
    1434                 :       823,  823,  823,  823,  825,  825,  825,  825,  825,  825,
    1435                 :       825,  825,  825,  825,  825,  827,  827,  827,  827,  827,
    1436                 :       827,  827,  827,  827,  827,  827,  829,  829,  829,  829,
    1437                 :       829,  829,  829,  829,  829,  829,  829,  831,  831,  831,
    1438                 :       831,  831,  831,  831,  831,  831,  831,  831,  833,  833,
    1439                 :       833,  833,  833,  833,  833,  833,  833,  833,  833,  835,
    1440                 :       835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
    1441                 :       837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
    1442                 :       837,  839,  839,  839,  839,  839,  839,  839,  839,  839,
    1443                 :       839,  839,  841,  841,  841,  841,  841,  841,  841,  841,
    1444                 : 
    1445                 :       841,  841,  841,  843,  843,  843,  843,  843,  843,  843,
    1446                 :       843,  843,  843,  843,  845,  845,  845,  845,  845,  845,
    1447                 :       845,  845,  845,  845,  845,  847,  847,  847,  847,  847,
    1448                 :       847,  847,  847,  847,  847,  847,  849,  849,  849,  849,
    1449                 :       849,  849,  849,  849,  849,  849,  849,  851,  851,  851,
    1450                 :       851,  851,  851,  851,  851,  851,  851,  851,  853,  853,
    1451                 :       853,  853,  853,  853,  853,  853,  853,  853,  853,  855,
    1452                 :       855,  855,  855,  855,  855,  855,  855,  855,  855,  855,
    1453                 :       857,  857,  857,  857,  857,  857,  857,  857,  857,  857,
    1454                 :       857,  859,  859,  859,  859,  859,  859,  859,  859,  859,
    1455                 : 
    1456                 :       859,  859,  861,  861,  861,  861,  861,  861,  861,  861,
    1457                 :       861,  861,  861,  863,  863,  863,  863,  863,  863,  863,
    1458                 :       863,  863,  863,  863,  865,  865,  865,  865,  865,  865,
    1459                 :       865,  865,  865,  865,  865,  867,  867,  867,  867,  867,
    1460                 :       867,  867,  867,  867,  867,  867,  869,  869,  869,  869,
    1461                 :       869,  869,  869,  869,  869,  869,  869,  871,  871,  871,
    1462                 :       871,  871,  871,  871,  871,  871,  871,  871,  873,  873,
    1463                 :       873,  873,  873,  873,  873,  873,  873,  873,  873,  875,
    1464                 :       875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
    1465                 :       877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
    1466                 : 
    1467                 :       877,  879,  879,  879,  879,  879,  879,  879,  879,  879,
    1468                 :       879,  879,  881,  881,  881,  881,  881,  881,  881,  881,
    1469                 :       881,  881,  881,  883,  883,  883,  883,  883,  883,  883,
    1470                 :       883,  883,  883,  883,  885,  885,  885,  885,  885,  885,
    1471                 :       885,  885,  885,  885,  885,  887,  887,  887,  887,  887,
    1472                 :       887,  887,  887,  887,  887,  887,  889,  889,  889,  889,
    1473                 :       889,  889,  889,  889,  889,  889,  889,  891,  891,  891,
    1474                 :       891,  891,  891,  891,  891,  891,  891,  891,  893,  893,
    1475                 :       893,  893,  893,  893,  893,  893,  893,  893,  893,  895,
    1476                 :       895,  895,  895,  895,  895,  895,  895,  895,  895,  895,
    1477                 : 
    1478                 :       897,  897,  897,  897,  897,  897,  897,  897,  897,  897,
    1479                 :       897,  899,  899,  899,  899,  899,  899,  899,  899,  899,
    1480                 :       899,  899,  901,  901,  901,  901,  901,  901,  901,  901,
    1481                 :       901,  901,  901,  903,  903,  903,  903,  903,  903,  903,
    1482                 :       903,  903,  903,  903,  905,  905,  905,  905,  905,  905,
    1483                 :       905,  905,  905,  905,  905,  907,  907,  907,  907,  907,
    1484                 :       907,  907,  907,  907,  907,  907,  909,  909,  909,  909,
    1485                 :       909,  909,  909,  909,  909,  909,  909,  911,  911,  911,
    1486                 :       911,  911,  911,  911,  911,  911,  911,  911,  913,  913,
    1487                 :       913,  913,  913,  913,  913,  913,  913,  913,  913,  915,
    1488                 : 
    1489                 :       915,  915,  915,  915,  915,  915,  915,  915,  915,  915,
    1490                 :       917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
    1491                 :       917,  919,  919,  919,  919,  919,  919,  919,  919,  919,
    1492                 :       919,  919,  921,  921,  921,  921,  921,  921,  921,  921,
    1493                 :       921,  921,  921,  923,  923,  923,  923,  923,  923,  923,
    1494                 :       923,  923,  923,  923,  925,  925,  925,  925,  925,  925,
    1495                 :       925,  925,  925,  925,  925,  927,  927,  927,  927,  927,
    1496                 :       927,  927,  927,  927,  927,  927,  929,  929,  929,  929,
    1497                 :       929,  929,  929,  929,  929,  929,  929,  931,  931,  931,
    1498                 :       931,  931,  931,  931,  931,  931,  931,  931,  933,  933,
    1499                 : 
    1500                 :       933,  933,  933,  933,  933,  933,  933,  933,  933,  935,
    1501                 :       935,  935,  935,  935,  935,  935,  935,  935,  935,  935,
    1502                 :       937,  937,  937,  937,  937,  937,  937,  937,  937,  937,
    1503                 :       937,  939,  939,  939,  939,  939,  939,  939,  939,  939,
    1504                 :       939,  939,  941,  941,  941,  941,  941,  941,  941,  941,
    1505                 :       941,  941,  941,  943,  943,  943,  943,  943,  943,  943,
    1506                 :       943,  943,  943,  943,  945,  945,  945,  945,  945,  945,
    1507                 :       945,  945,  945,  945,  945,  947,  947,  947,  947,  947,
    1508                 :       947,  947,  947,  947,  947,  947,  949,  949,  949,  949,
    1509                 :       949,  949,  949,  949,  949,  949,  949,  951,  951,  951,
    1510                 : 
    1511                 :       951,  951,  951,  951,  951,  951,  951,  951,  953,  953,
    1512                 :       953,  953,  953,  953,  953,  953,  953,  953,  953,  955,
    1513                 :       955,  955,  955,  955,  955,  955,  955,  955,  955,  955,
    1514                 :       957,  957,  957,  957,  957,  957,  957,  957,  957,  957,
    1515                 :       957,  959,  959,  959,  959,  959,  959,  959,  959,  959,
    1516                 :       959,  959,  961,  961,  961,  961,  961,  961,  961,  961,
    1517                 :       961,  961,  961,  963,  963,  963,  963,  963,  963,  963,
    1518                 :       963,  963,  963,  963,  965,  965,  965,  965,  965,  965,
    1519                 :       965,  965,  965,  965,  965,  967,  967,  967,  967,  967,
    1520                 :       967,  967,  967,  967,  967,  967,  969,  969,  969,  969,
    1521                 : 
    1522                 :       969,  969,  969,  969,  969,  969,  969,  971,  971,  971,
    1523                 :       971,  971,  971,  971,  971,  971,  971,  971,  973,  973,
    1524                 :       973,  973,  973,  973,  973,  973,  973,  973,  973,  975,
    1525                 :       975,  975,  975,  975,  975,  975,  975,  975,  975,  975,
    1526                 :       977,  977,  977,  977,  977,  977,  977,  977,  977,  977,
    1527                 :       977,  979,  979,  979,  979,  979,  979,  979,  979,  979,
    1528                 :       979,  979,  981,  981,  981,  981,  981,  981,  981,  981,
    1529                 :       981,  981,  981,  983,  983,  983,  983,  983,  983,  983,
    1530                 :       983,  983,  983,  983,  985,  985,  985,  985,  985,  985,
    1531                 :       985,  985,  985,  985,  985,  987,  987,  987,  987,  987,
    1532                 : 
    1533                 :       987,  987,  987,  987,  987,  987,  989,  989,  989,  989,
    1534                 :       989,  989,  989,  989,  989,  989,  989,  991,  991,  991,
    1535                 :       991,  991,  991,  991,  991,  991,  991,  991,  993,  993,
    1536                 :       993,  993,  993,  993,  993,  993,  993,  993,  993,  995,
    1537                 :       995,  995,  995,  995,  995,  995,  995,  995,  995,  995,
    1538                 :       997,  997,  997,  997,  997,  997,  997,  997,  997,  997,
    1539                 :       997,  999,  999,  999,  999,  999,  999,  999,  999,  999,
    1540                 :       999,  999, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
    1541                 :      1001, 1001, 1001, 1003, 1003, 1003, 1003, 1003, 1003, 1003,
    1542                 :      1003, 1003, 1003, 1003, 1005, 1005, 1005, 1005, 1005, 1005,
    1543                 : 
    1544                 :      1005, 1005, 1005, 1005, 1005, 1007, 1007, 1007, 1007, 1007,
    1545                 :      1007, 1007, 1007, 1007, 1007, 1007, 1009, 1009, 1009, 1009,
    1546                 :      1009, 1009, 1009, 1009, 1009, 1009, 1009, 1011, 1011, 1011,
    1547                 :      1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1013, 1013,
    1548                 :      1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1015,
    1549                 :      1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015,
    1550                 :      1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
    1551                 :      1017, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019,
    1552                 :      1019, 1019, 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021,
    1553                 :      1021, 1021, 1021, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
    1554                 : 
    1555                 :      1023, 1023, 1023, 1023, 1025, 1025, 1025, 1025, 1025, 1025,
    1556                 :      1025, 1025, 1025, 1025, 1025, 1027, 1027, 1027, 1027, 1027,
    1557                 :      1027, 1027, 1027, 1027, 1027, 1027, 1029, 1029, 1029, 1029,
    1558                 :      1029, 1029, 1029, 1029, 1029, 1029, 1029, 1031, 1031, 1031,
    1559                 :      1031, 1031, 1031, 1031, 1031, 1031, 1031, 1031, 1033, 1033,
    1560                 :      1033, 1033, 1033, 1033, 1033, 1033, 1033, 1033, 1033, 1035,
    1561                 :      1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035,
    1562                 :      1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037,
    1563                 :      1037, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039,
    1564                 :      1039, 1039, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
    1565                 : 
    1566                 :      1041, 1041, 1041, 1043, 1043, 1043, 1043, 1043, 1043, 1043,
    1567                 :      1043, 1043, 1043, 1043, 1045, 1045, 1045, 1045, 1045, 1045,
    1568                 :      1045, 1045, 1045, 1045, 1045, 1047, 1047, 1047, 1047, 1047,
    1569                 :      1047, 1047, 1047, 1047, 1047, 1047, 1049, 1049, 1049, 1049,
    1570                 :      1049, 1049, 1049, 1049, 1049, 1049, 1049, 1051, 1051, 1051,
    1571                 :      1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1053, 1053,
    1572                 :      1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1055,
    1573                 :      1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055,
    1574                 :      1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057,
    1575                 :      1057, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059,
    1576                 : 
    1577                 :      1059, 1059, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
    1578                 :      1061, 1061, 1061, 1063, 1063, 1063, 1063, 1063, 1063, 1063,
    1579                 :      1063, 1063, 1063, 1063, 1065, 1065, 1065, 1065, 1065, 1065,
    1580                 :      1065, 1065, 1065, 1065, 1065, 1067, 1067, 1067, 1067, 1067,
    1581                 :      1067, 1067, 1067, 1067, 1067, 1067, 1069, 1069, 1069, 1069,
    1582                 :      1069, 1069, 1069, 1069, 1069, 1069, 1069, 1071, 1071, 1071,
    1583                 :      1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1073, 1073,
    1584                 :      1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1075,
    1585                 :      1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075,
    1586                 :      1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077,
    1587                 : 
    1588                 :      1077, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
    1589                 :      1079, 1079, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081,
    1590                 :      1081, 1081, 1081, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
    1591                 :      1083, 1083, 1083, 1083, 1085, 1085, 1085, 1085, 1085, 1085,
    1592                 :      1085, 1085, 1085, 1085, 1085, 1087, 1087, 1087, 1087, 1087,
    1593                 :      1087, 1087, 1087, 1087, 1087, 1087, 1089, 1089, 1089, 1089,
    1594                 :      1089, 1089, 1089, 1089, 1089, 1089, 1089, 1091, 1091, 1091,
    1595                 :      1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1093, 1093,
    1596                 :      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1095,
    1597                 :      1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095,
    1598                 : 
    1599                 :      1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
    1600                 :      1097, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099,
    1601                 :      1099, 1099, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101,
    1602                 :      1101, 1101, 1101, 1103, 1103, 1103, 1103, 1103, 1103, 1103,
    1603                 :      1103, 1103, 1103, 1103, 1105, 1105, 1105, 1105, 1105, 1105,
    1604                 :      1105, 1105, 1105, 1105, 1105, 1107, 1107, 1107, 1107, 1107,
    1605                 :      1107, 1107, 1107, 1107, 1107, 1107, 1109, 1109, 1109, 1109,
    1606                 :      1109, 1109, 1109, 1109, 1109, 1109, 1109, 1111, 1111, 1111,
    1607                 :      1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1113, 1113,
    1608                 :      1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1115,
    1609                 : 
    1610                 :      1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115,
    1611                 :      1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117,
    1612                 :      1117, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119,
    1613                 :      1119, 1119, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121,
    1614                 :      1121, 1121, 1121, 1123, 1123, 1123, 1123, 1123, 1123, 1123,
    1615                 :      1123, 1123, 1123, 1123, 1125, 1125, 1125, 1125, 1125, 1125,
    1616                 :      1125, 1125, 1125, 1125, 1125, 1127, 1127, 1127, 1127, 1127,
    1617                 :      1127, 1127, 1127, 1127, 1127, 1127, 1129, 1129, 1129, 1129,
    1618                 :      1129, 1129, 1129, 1129, 1129, 1129, 1129, 1131, 1131, 1131,
    1619                 :      1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1133, 1133,
    1620                 : 
    1621                 :      1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1135,
    1622                 :      1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135,
    1623                 :      1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137,
    1624                 :      1137, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139,
    1625                 :      1139, 1139, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141,
    1626                 :      1141, 1141, 1141, 1143, 1143, 1143, 1143, 1143, 1143, 1143,
    1627                 :      1143, 1143, 1143, 1143, 1145, 1145, 1145, 1145, 1145, 1145,
    1628                 :      1145, 1145, 1145, 1145, 1145, 1147, 1147, 1147, 1147, 1147,
    1629                 :      1147, 1147, 1147, 1147, 1147, 1147, 1149, 1149, 1149, 1149,
    1630                 :      1149, 1149, 1149, 1149, 1149, 1149, 1149, 1151, 1151, 1151,
    1631                 : 
    1632                 :      1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1153, 1153,
    1633                 :      1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1155,
    1634                 :      1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155,
    1635                 :      1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157,
    1636                 :      1157, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159,
    1637                 :      1159, 1159, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161,
    1638                 :      1161, 1161, 1161, 1163, 1163, 1163, 1163, 1163, 1163, 1163,
    1639                 :      1163, 1163, 1163, 1163, 1165, 1165, 1165, 1165, 1165, 1165,
    1640                 :      1165, 1165, 1165, 1165, 1165, 1167, 1167, 1167, 1167, 1167,
    1641                 :      1167, 1167, 1167, 1167, 1167, 1167, 1169, 1169, 1169, 1169,
    1642                 : 
    1643                 :      1169, 1169, 1169, 1169, 1169, 1169, 1169, 1171, 1171, 1171,
    1644                 :      1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1173, 1173,
    1645                 :      1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1175,
    1646                 :      1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175,
    1647                 :      1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177,
    1648                 :      1177, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179,
    1649                 :      1179, 1179, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181,
    1650                 :      1181, 1181, 1181, 1183, 1183, 1183, 1183, 1183, 1183, 1183,
    1651                 :      1183, 1183, 1183, 1183, 1185, 1185, 1185, 1185, 1185, 1185,
    1652                 :      1185, 1185, 1185, 1185, 1185, 1187, 1187, 1187, 1187, 1187,
    1653                 : 
    1654                 :      1187, 1187, 1187, 1187, 1187, 1187, 1189, 1189, 1189, 1189,
    1655                 :      1189, 1189, 1189, 1189, 1189, 1189, 1189, 1191, 1191, 1191,
    1656                 :      1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1193, 1193,
    1657                 :      1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1195,
    1658                 :      1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195,
    1659                 :      1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197,
    1660                 :      1197, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199,
    1661                 :      1199, 1199, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201,
    1662                 :      1201, 1201, 1201, 1203, 1203, 1203, 1203, 1203, 1203, 1203,
    1663                 :      1203, 1203, 1203, 1203, 1205, 1205, 1205, 1205, 1205, 1205,
    1664                 : 
    1665                 :      1205, 1205, 1205, 1205, 1205, 1207, 1207, 1207, 1207, 1207,
    1666                 :      1207, 1207, 1207, 1207, 1207, 1207, 1209, 1209, 1209, 1209,
    1667                 :      1209, 1209, 1209, 1209, 1209, 1209, 1209, 1211, 1211, 1211,
    1668                 :      1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1213, 1213,
    1669                 :      1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1215,
    1670                 :      1215, 1215, 1215, 1215, 1215, 1215, 1215, 1215, 1215, 1215,
    1671                 :      1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
    1672                 :      1217, 1219, 1219, 1219, 1219, 1219, 1219, 1219, 1219, 1219,
    1673                 :      1219, 1219, 1221, 1221, 1221, 1221, 1221, 1221, 1221, 1221,
    1674                 :      1221, 1221, 1221, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
    1675                 : 
    1676                 :      1223, 1223, 1223, 1223, 1225, 1225, 1225, 1225, 1225, 1225,
    1677                 :      1225, 1225, 1225, 1225, 1225, 1227, 1227, 1227, 1227, 1227,
    1678                 :      1227, 1227, 1227, 1227, 1227, 1227, 1229, 1229, 1229, 1229,
    1679                 :      1229, 1229, 1229, 1229, 1229, 1229, 1229, 1231, 1231, 1231,
    1680                 :      1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1233, 1233,
    1681                 :      1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1235,
    1682                 :      1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235,
    1683                 :      1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237,
    1684                 :      1237, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239,
    1685                 :      1239, 1239, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241,
    1686                 : 
    1687                 :      1241, 1241, 1241, 1243, 1243, 1243, 1243, 1243, 1243, 1243,
    1688                 :      1243, 1243, 1243, 1243, 1245, 1245, 1245, 1245, 1245, 1245,
    1689                 :      1245, 1245, 1245, 1245, 1245, 1247, 1247, 1247, 1247, 1247,
    1690                 :      1247, 1247, 1247, 1247, 1247, 1247, 1249, 1249, 1249, 1249,
    1691                 :      1249, 1249, 1249, 1249, 1249, 1249, 1249, 1251, 1251, 1251,
    1692                 :      1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1253, 1253,
    1693                 :      1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1255,
    1694                 :      1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255,
    1695                 :      1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257,
    1696                 :      1257, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259,
    1697                 : 
    1698                 :      1259, 1259, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261,
    1699                 :      1261, 1261, 1261, 1263, 1263, 1263, 1263, 1263, 1263, 1263,
    1700                 :      1263, 1263, 1263, 1263, 1265, 1265, 1265, 1265, 1265, 1265,
    1701                 :      1265, 1265, 1265, 1265, 1265, 1267, 1267, 1267, 1267, 1267,
    1702                 :      1267, 1267, 1267, 1267, 1267, 1267, 1269, 1269, 1269, 1269,
    1703                 :      1269, 1269, 1269, 1269, 1269, 1269, 1269, 1271, 1271, 1271,
    1704                 :      1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1273, 1273,
    1705                 :      1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1275,
    1706                 :      1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
    1707                 :      1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277,
    1708                 : 
    1709                 :      1277, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279,
    1710                 :      1279, 1279, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281,
    1711                 :      1281, 1281, 1281, 1283, 1283, 1283, 1283, 1283, 1283, 1283,
    1712                 :      1283, 1283, 1283, 1283, 1285, 1285, 1285, 1285, 1285, 1285,
    1713                 :      1285, 1285, 1285, 1285, 1285, 1287, 1287, 1287, 1287, 1287,
    1714                 :      1287, 1287, 1287, 1287, 1287, 1287, 1289, 1289, 1289, 1289,
    1715                 :      1289, 1289, 1289, 1289, 1289, 1289, 1289, 1291, 1291, 1291,
    1716                 :      1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1293, 1293,
    1717                 :      1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1295,
    1718                 :      1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295,
    1719                 : 
    1720                 :      1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297,
    1721                 :      1297, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
    1722                 :      1299, 1299, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301,
    1723                 :      1301, 1301, 1301, 1303, 1303, 1303, 1303, 1303, 1303, 1303,
    1724                 :      1303, 1303, 1303, 1303, 1305, 1305, 1305, 1305, 1305, 1305,
    1725                 :      1305, 1305, 1305, 1305, 1305, 1307, 1307, 1307, 1307, 1307,
    1726                 :      1307, 1307, 1307, 1307, 1307, 1307, 1309, 1309, 1309, 1309,
    1727                 :      1309, 1309, 1309, 1309, 1309, 1309, 1309, 1311, 1311, 1311,
    1728                 :      1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1313, 1313,
    1729                 :      1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1315,
    1730                 : 
    1731                 :      1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315,
    1732                 :      1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317,
    1733                 :      1317, 1319, 1319, 1319, 1319, 1319, 1319, 1319, 1319, 1319,
    1734                 :      1319, 1319, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
    1735                 :      1321, 1321, 1321, 1323, 1323, 1323, 1323, 1323, 1323, 1323,
    1736                 :      1323, 1323, 1323, 1323, 1325, 1325, 1325, 1325, 1325, 1325,
    1737                 :      1325, 1325, 1325, 1325, 1325, 1327, 1327, 1327, 1327, 1327,
    1738                 :      1327, 1327, 1327, 1327, 1327, 1327, 1329, 1329, 1329, 1329,
    1739                 :      1329, 1329, 1329, 1329, 1329, 1329, 1329, 1331, 1331, 1331,
    1740                 :      1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1333, 1333,
    1741                 : 
    1742                 :      1333, 1333, 1333, 1333, 1333, 1333, 1333, 1333, 1333, 1335,
    1743                 :      1335, 1335, 1335, 1335, 1335, 1335, 1335, 1335, 1335, 1335,
    1744                 :      1337, 1337, 1337, 1337, 1337, 1337, 1337, 1337, 1337, 1337,
    1745                 :      1337, 1339, 1339, 1339, 1339, 1339, 1339, 1339, 1339, 1339,
    1746                 :      1339, 1339, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341,
    1747                 :      1341, 1341, 1341, 1343, 1343, 1343, 1343, 1343, 1343, 1343,
    1748                 :      1343, 1343, 1343, 1343, 1345, 1345, 1345, 1345, 1345, 1345,
    1749                 :      1345, 1345, 1345, 1345, 1345, 1347, 1347, 1347, 1347, 1347,
    1750                 :      1347, 1347, 1347, 1347, 1347, 1347, 1349, 1349, 1349, 1349,
    1751                 :      1349, 1349, 1349, 1349, 1349, 1349, 1349, 1351, 1351, 1351,
    1752                 : 
    1753                 :      1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1353, 1353,
    1754                 :      1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1355,
    1755                 :      1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355,
    1756                 :      1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357,
    1757                 :      1357, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359,
    1758                 :      1359, 1359, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
    1759                 :      1361, 1361, 1361, 1363, 1363, 1363, 1363, 1363, 1363, 1363,
    1760                 :      1363, 1363, 1363, 1363, 1365, 1365, 1365, 1365, 1365, 1365,
    1761                 :      1365, 1365, 1365, 1365, 1365, 1367, 1367, 1367, 1367, 1367,
    1762                 :      1367, 1367, 1367, 1367, 1367, 1367, 1369, 1369, 1369, 1369,
    1763                 : 
    1764                 :      1369, 1369, 1369, 1369, 1369, 1369, 1369, 1371, 1371, 1371,
    1765                 :      1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1373, 1373,
    1766                 :      1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1375,
    1767                 :      1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375,
    1768                 :      1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377,
    1769                 :      1377, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379,
    1770                 :      1379, 1379, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381,
    1771                 :      1381, 1381, 1381, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1772                 :      1383, 1383, 1383, 1383, 1385, 1385, 1385, 1385, 1385, 1385,
    1773                 :      1385, 1385, 1385, 1385, 1385, 1387, 1387, 1387, 1387, 1387,
    1774                 : 
    1775                 :      1387, 1387, 1387, 1387, 1387, 1387, 1389, 1389, 1389, 1389,
    1776                 :      1389, 1389, 1389, 1389, 1389, 1389, 1389, 1391, 1391, 1391,
    1777                 :      1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1393, 1393,
    1778                 :      1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1395,
    1779                 :      1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395,
    1780                 :      1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397,
    1781                 :      1397, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399,
    1782                 :      1399, 1399, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401,
    1783                 :      1401, 1401, 1401, 1403, 1403, 1403, 1403, 1403, 1403, 1403,
    1784                 :      1403, 1403, 1403, 1403, 1405, 1405, 1405, 1405, 1405, 1405,
    1785                 : 
    1786                 :      1405, 1405, 1405, 1405, 1405, 1407, 1407, 1407, 1407, 1407,
    1787                 :      1407, 1407, 1407, 1407, 1407, 1407, 1409, 1409, 1409, 1409,
    1788                 :      1409, 1409, 1409, 1409, 1409, 1409, 1409, 1411, 1411, 1411,
    1789                 :      1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1413, 1413,
    1790                 :      1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1415,
    1791                 :      1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415,
    1792                 :      1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417,
    1793                 :      1417, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419,
    1794                 :      1419, 1419,  503,  502,  501,  500,  499,  498,  497,  496,
    1795                 :       495,  494,  493,  492,  491,  490,  489,  488,  487,  486,
    1796                 : 
    1797                 :       485,  484,  483,  482,  481,  416,  480,  479,  478,  475,
    1798                 :       474,  412,  473,  469,  468,  467,  464,  462,  461,  460,
    1799                 :       459,  458,  457,  456,  455,  454,  453,  452,  451,  450,
    1800                 :       449,  448,  447,  446,  445,  444,  443,  442,  441,  440,
    1801                 :       439,  438,  437,  436,  435,  434,  433,  432,  431,  430,
    1802                 :       429,  428,  427,  426,  425,  424,  423,  422,  421,  420,
    1803                 :       419,  346,  415,  414,  413,  412,  411,  407,  406,  405,
    1804                 :       404,  403,  402,  401,  400,  396,  395,  394,  393,  392,
    1805                 :       391,  390,  389,  388,  385,  384,  383,  382,  381,  380,
    1806                 :       379,  378,  377,  376,  375,  374,  373,  367,  366,  365,
    1807                 : 
    1808                 :       364,  363,  360,  359,  358,  357,  356,  271,  355,  354,
    1809                 :       353,  352,  351,  348,  275,  346,  345,  343,  342,  341,
    1810                 :       340,  339,  338,  337,  336,  335,  334,  253,  333,  332,
    1811                 :       331,  233,  229, 1421,  226,  223,  326,  325,  324,  323,
    1812                 :       322,  321,  320,  319,  318,  315,  312,  311,  310,  306,
    1813                 :       305,  304,  303,  302,  299,  298,  297,  296,  295,  294,
    1814                 :       291,  286,  285,  284,  283,  282,  274,  273,  270,  265,
    1815                 :       264,  263,  262,  261,  260,  259,  258,  255, 1421,  251,
    1816                 :       250,  248,  110,  247,  245,  245,  244,  241,  240,  229,
    1817                 :       226,  224,  223,  214,  208,  207,  206,  199,  196,  195,
    1818                 : 
    1819                 :       194,  189,  165,  163,  162,  153,  138,  116,  110, 1421,
    1820                 :       102,  102,  101,  101,   25,   25,   23, 1421, 1421, 1421,
    1821                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1822                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1823                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1824                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1825                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    1826                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421
    1827                 :     } ;
    1828                 : 
    1829                 : static yyconst short int yy_chk[7680] =
    1830                 :     {   0,
    1831                 :         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
    1832                 :         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
    1833                 :         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
    1834                 :         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
    1835                 :         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
    1836                 :         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
    1837                 :         3,    3,    5,    5,    5,    5,    5,    5,    5,    5,
    1838                 :         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
    1839                 :         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
    1840                 :         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
    1841                 : 
    1842                 :         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
    1843                 :         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
    1844                 :         5,    5,    5,    5,    7,    8,    9,   10,   11,   25,
    1845                 :        27,   27,   27,   11,   21,   21,   29,   32,   32,   67,
    1846                 :        21,   22,   22,    7,    8,   34,   33,   22,   25,   67,
    1847                 :         9,   10,   11,    9,   10,   11,   12,   38,   21,   21,
    1848                 :        29,   12,   33,  937,   34,   22,   22,   39,   38,   40,
    1849                 :        40,   40,   25,   46,   46,   40,   39,   39,   47,   47,
    1850                 :        12,  939,   12,   12,   12,   12,   12,   12,   12,   12,
    1851                 :        12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
    1852                 : 
    1853                 :        12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
    1854                 :        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
    1855                 :        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
    1856                 :        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
    1857                 :        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
    1858                 :        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
    1859                 :        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
    1860                 :        13,   13,   15,   15,   15,   15,   15,   15,   15,   15,
    1861                 :        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
    1862                 :        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
    1863                 : 
    1864                 :        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
    1865                 :        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
    1866                 :        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
    1867                 :        15,   15,   15,   15,   35,   41,  941,   52,   45,   42,
    1868                 :        41,   42,   42,   42,   45,   45,   45,   41,   43,   52,
    1869                 :        43,   43,   43,   52,   52,   64,   53,   73,   64,   42,
    1870                 :        55,   53,   54,  943,   55,  945,   35,   35,   43,   35,
    1871                 :        55,   35,   68,   54,   35,   53,   54,   68,   42,   56,
    1872                 :        35,   57,   66,   35,   35,   66,   35,   57,   56,   56,
    1873                 :        56,  119,   73,   57,  177,   60,  119,  177,   56,  313,
    1874                 : 
    1875                 :        56,   53,   60,   60,   80,   80,   80,  313,   60,   77,
    1876                 :        77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
    1877                 :        77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
    1878                 :        77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
    1879                 :        77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
    1880                 :        77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
    1881                 :        77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
    1882                 :        77,   79,   79,   79,   82,   88,   92,   90,   90,   93,
    1883                 :       110,   92,   94,   94,   93,  117,   95,   95,   82,   82,
    1884                 :        90,  103,  103,  125,   88,  113,  110,  103,  947,  110,
    1885                 : 
    1886                 :       115,  115,  115,   92,  122,  122,   93,   95,   79,  117,
    1887                 :       155,  155,  125,  175,   90,  103,  103,   90,  113,   94,
    1888                 :       130,  170,   94,  110,  278,   82,  130,  175,   82,  144,
    1889                 :       144,  144,  149,  149,  149,  150,  278,  150,  150,  150,
    1890                 :       162,  162,  152,  152,  152,  170,  151,  144,  151,  171,
    1891                 :       149,  151,  151,  151,  949,  150,  152,  152,  152,  152,
    1892                 :       152,  152,  165,  174,  174,  165,  185,  165,  171,  192,
    1893                 :       197,  165,  165,  219,  219,  199,  197,  185,  199,  215,
    1894                 :       215,  215,  216,  216,  216,  192,  192,  231,  220,  220,
    1895                 :       220,  951,  231,  953,  235,  235,  216,  216,  216,  216,
    1896                 : 
    1897                 :       216,  216,  220,  220,  220,  220,  220,  220,  232,  236,
    1898                 :       236,  247,  408,  232,  231,  235,  242,  242,  265,  265,
    1899                 :       265,  955,  242,  408,  266,  266,  266,  247,  291,  291,
    1900                 :       247,  267,  267,  267,  957,  232,  268,  268,  268,  959,
    1901                 :       242,  242,  266,  269,  269,  269,  328,  328,  298,  961,
    1902                 :       298,  347,  347,  298,  247,  418,  418,  269,  269,  269,
    1903                 :       269,  269,  269,  298,  327,  327,  327,  298,  963,  965,
    1904                 :       329,  329,  329,  967,  331,  344,  344,  344,  327,  327,
    1905                 :       327,  327,  327,  327,  329,  329,  329,  329,  329,  329,
    1906                 :       331,  339,  400,  331,  401,  401,  401,  464,  405,  412,
    1907                 : 
    1908                 :       969,  468,  339,  470,  476,  512,  971,  479,  400,  405,
    1909                 :       412,  400,  468,  464,  470,  476,  464,  331,  479,  973,
    1910                 :       514,  512,  516,  549,  512,  519,  520,  339,  513,  513,
    1911                 :       513,  514,  521,  516,  405,  400,  519,  520,  551,  549,
    1912                 :       464,  553,  549,  521,  550,  550,  550,  554,  512,  551,
    1913                 :       555,  557,  553,  559,  559,  559,  580,  597,  554,  975,
    1914                 :       977,  555,  557,  582,  582,  582,  549,  609,  636,  636,
    1915                 :       636,  979,  580,  597,  616,  580,  597,  981,  559,  623,
    1916                 :       983,  985,  987,  609,  989,  627,  609,  550,  582,  631,
    1917                 :       616,  991,  636,  616,  993,  623,  635,  638,  623,  580,
    1918                 : 
    1919                 :       597,  627,  995,  997,  627,  631,  999, 1001,  631, 1003,
    1920                 :       609, 1005,  635,  638,  642,  635,  638,  616,  639,  639,
    1921                 :       639, 1007,  623, 1009, 1011,  640,  640,  640,  627,  640,
    1922                 :       642, 1013,  631,  642,  640,  648, 1015,  653, 1017,  635,
    1923                 :       638, 1019,  639,  643,  643,  643,  658,  643,  656,  656,
    1924                 :       656,  648,  643,  653,  648,  664,  653,  642,  661,  661,
    1925                 :       661, 1021,  658,  666, 1023,  658, 1025, 1027,  668,  670,
    1926                 :      1029,  664,  640,  656,  664,  672,  674,  676,  648,  666,
    1927                 :       653,  678,  666,  661,  668,  670,  680,  668,  670,  658,
    1928                 :       643,  672,  674,  676,  672,  674,  676,  678,  664, 1031,
    1929                 : 
    1930                 :       678, 1033,  680, 1035, 1037,  680,  666,  682, 1039,  684,
    1931                 :      1041,  668,  670, 1043,  686,  688,  690, 1045,  672,  674,
    1932                 :       676,  692,  694,  682,  678,  684,  682,  696,  684,  680,
    1933                 :       686,  688,  690,  686,  688,  690, 1047,  692,  694, 1049,
    1934                 :       692,  694, 1051,  696,  698, 1053,  696, 1055, 1057, 1059,
    1935                 :       682, 1061,  684,  700, 1063,  702, 1065,  686,  688,  690,
    1936                 :       698,  704,  706,  698,  692,  694,  708,  710, 1067,  700,
    1937                 :       696,  702,  700,  712,  702,  714, 1069,  704,  706, 1071,
    1938                 :       704,  706,  708,  710,  716,  708,  710,  698, 1073,  712,
    1939                 :      1075,  714,  712, 1077,  714,  718,  700, 1079,  702, 1081,
    1940                 : 
    1941                 :       716,  720, 1083,  716,  704,  706,  722,  724, 1085,  708,
    1942                 :       710,  718,  726,  728,  718, 1087,  712,  720,  714, 1089,
    1943                 :       720,  730,  722,  724, 1091,  722,  724,  716,  726,  728,
    1944                 :      1093,  726,  728, 1095, 1097,  732, 1099,  730,  718, 1101,
    1945                 :       730,  734,  736,  738,  720, 1103, 1105,  740, 1107,  722,
    1946                 :       724,  732,  742,  744,  732,  726,  728,  734,  736,  738,
    1947                 :       734,  736,  738,  740,  730, 1109,  740, 1111,  742,  744,
    1948                 :      1113,  742,  744,  746, 1115,  748, 1117, 1119,  732, 1121,
    1949                 :      1123,  750,  752,  754,  734,  736,  738,  756,  758,  746,
    1950                 :       740,  748,  746,  760,  748,  742,  744,  750,  752,  754,
    1951                 : 
    1952                 :       750,  752,  754,  756,  758, 1125,  756,  758, 1127,  760,
    1953                 :      1129, 1131,  760,  762, 1133, 1135,  746, 1137,  748,  764,
    1954                 :      1139,  766, 1141,  768,  750,  752,  754,  770,  772,  762,
    1955                 :       756,  758,  762,  774,  776,  764,  760,  766,  764,  768,
    1956                 :       766,  778,  768,  770,  772, 1143,  770,  772, 1145,  774,
    1957                 :       776, 1147,  774,  776, 1149, 1151,  762,  778, 1153,  780,
    1958                 :       778, 1155,  764,  782,  766, 1157,  768,  784, 1159,  786,
    1959                 :       770,  772, 1161,  788,  790,  780,  774,  776,  780,  782,
    1960                 :       792,  794,  782,  784,  778,  786,  784, 1163,  786,  788,
    1961                 :       790, 1165,  788,  790, 1167,  796,  792,  794, 1169,  792,
    1962                 : 
    1963                 :       794, 1171,  780,  798, 1173, 1175,  782, 1177, 1179,  800,
    1964                 :       784,  796,  786,  802,  796,  804,  788,  790, 1181,  798,
    1965                 :       806,  808,  798,  792,  794,  800,  810, 1183,  800,  802,
    1966                 :      1185,  804,  802, 1187,  804,  812,  806,  808,  796,  806,
    1967                 :       808,  814,  810,  816, 1189,  810,  798, 1191, 1193,  818,
    1968                 :      1195,  812,  800, 1197,  812,  820,  802,  814,  804,  816,
    1969                 :       814,  822,  816,  806,  808,  818,  824, 1199,  818,  810,
    1970                 :      1201,  820,  826, 1203,  820, 1205, 1207,  822,  812, 1209,
    1971                 :       822,  828,  824,  830,  814,  824,  816,  832,  826,  834,
    1972                 :      1211,  826,  818, 1213,  836,  838, 1215,  828,  820,  830,
    1973                 : 
    1974                 :       828,  840,  830,  832,  822,  834,  832, 1217,  834,  824,
    1975                 :       836,  838,  842,  836,  838,  826, 1219,  840, 1221, 1223,
    1976                 :       840, 1225, 1227,  844,  828, 1229,  830,  846,  842,  848,
    1977                 :       832,  842,  834,  850,  852,  854, 1231,  836,  838,  844,
    1978                 :       856,  858,  844,  846,  840,  848,  846, 1233,  848,  850,
    1979                 :       852,  854,  850,  852,  854,  842,  856,  858, 1235,  856,
    1980                 :       858, 1237, 1239,  860, 1241, 1243,  844, 1245, 1247,  862,
    1981                 :       846,  864,  848,  866, 1249,  868,  850,  852,  854,  860,
    1982                 :       870,  872,  860,  856,  858,  862,  874,  864,  862,  866,
    1983                 :       864,  868,  866, 1251,  868, 1253,  870,  872, 1255,  870,
    1984                 : 
    1985                 :       872,  876,  874,  878, 1257,  874,  860, 1259, 1261,  880,
    1986                 :      1263,  882,  862, 1265,  864,  884,  866,  876,  868,  878,
    1987                 :       876,  886,  878,  870,  872,  880,  888,  882,  880,  874,
    1988                 :       882,  884,  890, 1267,  884, 1269, 1271,  886, 1273, 1275,
    1989                 :       886,  892,  888,  894,  876,  888,  878,  896,  890,  898,
    1990                 :      1277,  890,  880, 1279,  882,  900, 1281,  892,  884,  894,
    1991                 :       892,  902,  894,  896,  886,  898,  896, 1283,  898,  888,
    1992                 :      1285,  900,  904, 1287,  900,  890, 1289,  902,  906, 1291,
    1993                 :       902, 1293, 1295,  908,  892, 1297,  894,  910,  904,  912,
    1994                 :       896,  904,  898,  914,  906,  916, 1299,  906,  900,  908,
    1995                 : 
    1996                 :       918,  920,  908,  910,  902,  912,  910, 1301,  912,  914,
    1997                 :      1303,  916,  914, 1305,  916,  904,  918,  920,  922,  918,
    1998                 :       920,  906, 1307,  924, 1309, 1311,  908, 1313, 1315,  926,
    1999                 :       910,  928,  912,  930,  922,  932,  914,  922,  916,  924,
    2000                 :       934,  936,  924,  918,  920,  926,  938,  928,  926,  930,
    2001                 :       928,  932,  930, 1317,  932, 1319,  934,  936, 1321,  934,
    2002                 :       936,  922,  938,  940, 1323,  938,  924, 1325, 1327,  942,
    2003                 :      1329,  944,  926, 1331,  928,  946,  930,  948,  932,  940,
    2004                 :      1333,  950,  940,  934,  936,  942,  952,  944,  942,  938,
    2005                 :       944,  946,  954,  948,  946, 1335,  948,  950, 1337, 1339,
    2006                 : 
    2007                 :       950, 1341,  952,  956, 1343,  952,  940,  958,  954,  960,
    2008                 :      1345,  954,  942, 1347,  944,  962, 1349,  964,  946,  956,
    2009                 :       948,  966,  956,  958,  950,  960,  958, 1351,  960,  952,
    2010                 :      1353,  962,  968,  964,  962,  954,  964,  966,  970, 1355,
    2011                 :       966, 1357, 1359,  972, 1361, 1363,  956,  974,  968,  976,
    2012                 :       958,  968,  960,  978,  970,  980, 1365,  970,  962,  972,
    2013                 :       964,  982,  972,  974,  966,  976,  974, 1367,  976,  978,
    2014                 :      1369,  980,  978, 1371,  980,  968, 1373,  982,  984, 1375,
    2015                 :       982,  970, 1377,  986,  988, 1379,  972, 1381, 1383,  990,
    2016                 :       974,  992,  976,  994,  984,  996,  978,  984,  980,  986,
    2017                 : 
    2018                 :       988,  998,  986,  988,  982,  990, 1000,  992,  990,  994,
    2019                 :       992,  996,  994, 1385,  996, 1387, 1389,  998, 1391, 1393,
    2020                 :       998,  984, 1000, 1002, 1004, 1000,  986,  988, 1395, 1006,
    2021                 :      1397, 1008,  990, 1399,  992, 1010,  994, 1012,  996, 1002,
    2022                 :      1004, 1014, 1002, 1004,  998, 1006, 1016, 1008, 1006, 1000,
    2023                 :      1008, 1010, 1018, 1012, 1010, 1401, 1012, 1014, 1403, 1405,
    2024                 :      1014, 1407, 1016, 1020, 1409, 1016, 1002, 1004, 1018, 1022,
    2025                 :      1411, 1018, 1006, 1413, 1008, 1024, 1415, 1026, 1010, 1020,
    2026                 :      1012, 1028, 1020, 1030, 1014, 1022, 1417, 1429, 1022, 1016,
    2027                 :       935, 1024, 1032, 1026, 1024, 1018, 1026, 1028, 1034, 1030,
    2028                 : 
    2029                 :      1028,  933, 1030, 1036,  931,  929, 1020,  927, 1032, 1038,
    2030                 :       925, 1032, 1022, 1040, 1034, 1042,  923, 1034, 1024, 1036,
    2031                 :      1026, 1044, 1036, 1046, 1028, 1038, 1030,  921, 1038, 1040,
    2032                 :       919, 1042, 1040,  917, 1042, 1032,  915, 1044, 1048, 1046,
    2033                 :      1044, 1034, 1046, 1050, 1052,  913, 1036,  911,  909, 1054,
    2034                 :       907, 1056, 1038, 1058, 1048, 1060, 1040, 1048, 1042, 1050,
    2035                 :      1052, 1062, 1050, 1052, 1044, 1054, 1046, 1056, 1054, 1058,
    2036                 :      1056, 1060, 1058,  905, 1060,  903,  901, 1062,  899,  897,
    2037                 :      1062, 1048,  895, 1064, 1066,  893, 1050, 1052,  891, 1068,
    2038                 :      1070, 1072, 1054,  889, 1056, 1074, 1058, 1076, 1060, 1064,
    2039                 : 
    2040                 :      1066, 1078, 1064, 1066, 1062, 1068, 1070, 1072, 1068, 1070,
    2041                 :      1072, 1074, 1080, 1076, 1074,  887, 1076, 1078,  885,  883,
    2042                 :      1078,  881,  879, 1082,  877,  875, 1064, 1066, 1080, 1084,
    2043                 :      1086, 1080, 1068, 1070, 1072, 1088,  873, 1090, 1074, 1082,
    2044                 :      1076, 1092, 1082, 1094, 1078, 1084, 1086,  871, 1084, 1086,
    2045                 :       869, 1088, 1096, 1090, 1088, 1080, 1090, 1092, 1098, 1094,
    2046                 :      1092,  867, 1094, 1100,  865,  863, 1082,  861, 1096, 1102,
    2047                 :       859, 1096, 1084, 1086, 1098, 1104,  857, 1098, 1088, 1100,
    2048                 :      1090, 1106, 1100, 1108, 1092, 1102, 1094,  855, 1102, 1110,
    2049                 :       853, 1104,  851,  849, 1104, 1096,  847, 1106, 1112, 1108,
    2050                 : 
    2051                 :      1106, 1098, 1108, 1114, 1116, 1110, 1100,  845, 1110, 1118,
    2052                 :       843, 1120, 1102,  841, 1112, 1122,  839, 1112, 1104, 1114,
    2053                 :      1116, 1124, 1114, 1116, 1106, 1118, 1108, 1120, 1118, 1126,
    2054                 :      1120, 1122, 1110,  837, 1122,  835,  833, 1124,  831,  829,
    2055                 :      1124, 1112,  827, 1128, 1130, 1126, 1114, 1116, 1126, 1132,
    2056                 :      1134, 1136, 1118,  825, 1120, 1138,  823, 1140, 1122, 1128,
    2057                 :      1130, 1142, 1128, 1130, 1124, 1132, 1134, 1136, 1132, 1134,
    2058                 :      1136, 1138, 1126, 1140, 1138,  821, 1140, 1142,  819,  817,
    2059                 :      1142,  815,  813, 1144,  811,  809, 1128, 1130,  807, 1146,
    2060                 :      1148, 1150, 1132, 1134, 1136, 1152, 1154, 1156, 1138, 1144,
    2061                 : 
    2062                 :      1140, 1158, 1144, 1160, 1142, 1146, 1148, 1150, 1146, 1148,
    2063                 :      1150, 1152, 1154, 1156, 1152, 1154, 1156, 1158,  805, 1160,
    2064                 :      1158,  803, 1160,  801,  799,  797, 1144,  795,  793, 1162,
    2065                 :       791, 1164, 1146, 1148, 1150, 1166, 1168, 1170, 1152, 1154,
    2066                 :      1156, 1172, 1174, 1176, 1158, 1162, 1160, 1164, 1162, 1178,
    2067                 :      1164, 1166, 1168, 1170, 1166, 1168, 1170, 1172, 1174, 1176,
    2068                 :      1172, 1174, 1176,  789,  787, 1178,  785,  783, 1178,  781,
    2069                 :       779, 1180, 1162,  777, 1164, 1182,  775, 1184, 1166, 1168,
    2070                 :      1170, 1186, 1188, 1190, 1172, 1174, 1176, 1180, 1192, 1194,
    2071                 :      1180, 1182, 1178, 1184, 1182,  773, 1184, 1186, 1188, 1190,
    2072                 : 
    2073                 :      1186, 1188, 1190, 1196, 1192, 1194,  771, 1192, 1194,  769,
    2074                 :       767, 1198,  765,  763, 1180,  761,  759, 1200, 1182, 1196,
    2075                 :      1184, 1202, 1196, 1204, 1186, 1188, 1190, 1198, 1206, 1208,
    2076                 :      1198, 1192, 1194, 1200, 1210,  757, 1200, 1202,  755, 1204,
    2077                 :      1202,  753, 1204, 1212, 1206, 1208, 1196, 1206, 1208, 1214,
    2078                 :      1210, 1216,  751, 1210, 1198,  749,  747, 1218,  745, 1212,
    2079                 :      1200,  743, 1212, 1220, 1202, 1214, 1204, 1216, 1214, 1222,
    2080                 :      1216, 1206, 1208, 1218, 1224,  741, 1218, 1210,  739, 1220,
    2081                 :      1226,  737, 1220,  735,  733, 1222, 1212,  731, 1222, 1228,
    2082                 :      1224, 1230, 1214, 1224, 1216, 1232, 1226, 1234,  729, 1226,
    2083                 : 
    2084                 :      1218,  727, 1236, 1238,  725, 1228, 1220, 1230, 1228, 1240,
    2085                 :      1230, 1232, 1222, 1234, 1232,  723, 1234, 1224, 1236, 1238,
    2086                 :      1242, 1236, 1238, 1226,  721, 1240,  719,  717, 1240,  715,
    2087                 :       713, 1244, 1228,  711, 1230, 1246, 1242, 1248, 1232, 1242,
    2088                 :      1234, 1250, 1252, 1254,  709, 1236, 1238, 1244, 1256, 1258,
    2089                 :      1244, 1246, 1240, 1248, 1246,  707, 1248, 1250, 1252, 1254,
    2090                 :      1250, 1252, 1254, 1242, 1256, 1258,  705, 1256, 1258,  703,
    2091                 :       701, 1260,  699,  697, 1244,  695,  693, 1262, 1246, 1264,
    2092                 :      1248, 1266,  691, 1268, 1250, 1252, 1254, 1260, 1270, 1272,
    2093                 :      1260, 1256, 1258, 1262, 1274, 1264, 1262, 1266, 1264, 1268,
    2094                 : 
    2095                 :      1266,  689, 1268,  687, 1270, 1272,  685, 1270, 1272, 1276,
    2096                 :      1274, 1278,  683, 1274, 1260,  681,  679, 1280,  677, 1282,
    2097                 :      1262,  675, 1264, 1284, 1266, 1276, 1268, 1278, 1276, 1286,
    2098                 :      1278, 1270, 1272, 1280, 1288, 1282, 1280, 1274, 1282, 1284,
    2099                 :      1290,  673, 1284,  671,  669, 1286,  667,  665, 1286, 1292,
    2100                 :      1288, 1294, 1276, 1288, 1278, 1296, 1290, 1298,  663, 1290,
    2101                 :      1280,  660, 1282, 1300,  659, 1292, 1284, 1294, 1292, 1302,
    2102                 :      1294, 1296, 1286, 1298, 1296,  657, 1298, 1288,  655, 1300,
    2103                 :      1304,  654, 1300, 1290,  652, 1302, 1306,  651, 1302,  650,
    2104                 :       649, 1308, 1292,  647, 1294, 1310, 1304, 1312, 1296, 1304,
    2105                 : 
    2106                 :      1298, 1314, 1306, 1316,  646, 1306, 1300, 1308, 1318, 1320,
    2107                 :      1308, 1310, 1302, 1312, 1310,  645, 1312, 1314,  644, 1316,
    2108                 :      1314,  641, 1316, 1304, 1318, 1320, 1322, 1318, 1320, 1306,
    2109                 :       637, 1324,  634,  632, 1308,  630,  629, 1326, 1310, 1328,
    2110                 :      1312, 1330, 1322, 1332, 1314, 1322, 1316, 1324, 1334, 1336,
    2111                 :      1324, 1318, 1320, 1326, 1338, 1328, 1326, 1330, 1328, 1332,
    2112                 :      1330,  628, 1332,  626, 1334, 1336,  625, 1334, 1336, 1322,
    2113                 :      1338, 1340,  624, 1338, 1324,  622,  619, 1342,  617, 1344,
    2114                 :      1326,  615, 1328, 1346, 1330, 1348, 1332, 1340,  614, 1350,
    2115                 :      1340, 1334, 1336, 1342, 1352, 1344, 1342, 1338, 1344, 1346,
    2116                 : 
    2117                 :      1354, 1348, 1346,  613, 1348, 1350,  612,  611, 1350,  610,
    2118                 :      1352, 1356,  608, 1352, 1340, 1358, 1354, 1360,  607, 1354,
    2119                 :      1342,  605, 1344, 1362,  600, 1364, 1346, 1356, 1348, 1366,
    2120                 :      1356, 1358, 1350, 1360, 1358,  599, 1360, 1352,  598, 1362,
    2121                 :      1368, 1364, 1362, 1354, 1364, 1366, 1370,  596, 1366,  595,
    2122                 :       592, 1372,  591,  590, 1356, 1374, 1368, 1376, 1358, 1368,
    2123                 :      1360, 1378, 1370, 1380,  588, 1370, 1362, 1372, 1364, 1382,
    2124                 :      1372, 1374, 1366, 1376, 1374,  587, 1376, 1378,  586, 1380,
    2125                 :      1378,  585, 1380, 1368,  584, 1382, 1384,  581, 1382, 1370,
    2126                 :       579, 1386, 1388,  578, 1372,  577,  576, 1390, 1374, 1392,
    2127                 : 
    2128                 :      1376, 1394, 1384, 1396, 1378, 1384, 1380, 1386, 1388, 1398,
    2129                 :      1386, 1388, 1382, 1390, 1400, 1392, 1390, 1394, 1392, 1396,
    2130                 :      1394,  575, 1396,  574,  573, 1398,  570,  569, 1398, 1384,
    2131                 :      1400, 1402, 1404, 1400, 1386, 1388,  568, 1406,  565, 1408,
    2132                 :      1390,  563, 1392, 1410, 1394, 1412, 1396, 1402, 1404, 1414,
    2133                 :      1402, 1404, 1398, 1406, 1416, 1408, 1406, 1400, 1408, 1410,
    2134                 :      1418, 1412, 1410,  562, 1412, 1414,  560,  548, 1414,  547,
    2135                 :      1416, 1420,  546, 1416, 1402, 1404, 1418,  544,  543, 1418,
    2136                 :      1406,  542, 1408,  541,  540,  537, 1410, 1420, 1412,  536,
    2137                 :      1420,  535, 1414,  534,  531,  530,  529, 1416,  528,  527,
    2138                 : 
    2139                 :       526,  525,  524, 1418,  523,  518,  517,  511,  507,  505,
    2140                 :       504,  503,  502,  501, 1420, 1422, 1422, 1422, 1422, 1422,
    2141                 :      1422, 1422, 1422, 1422, 1422, 1422, 1423, 1423, 1423, 1423,
    2142                 :      1423, 1423, 1423, 1423, 1423, 1423, 1423, 1424, 1424, 1424,
    2143                 :      1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1425, 1425,
    2144                 :      1425, 1425, 1425, 1425, 1425, 1425, 1425, 1425, 1425, 1426,
    2145                 :      1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426,
    2146                 :      1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427,  500,
    2147                 :      1427, 1428, 1428, 1428, 1428,  498, 1428, 1428, 1428, 1428,
    2148                 :      1428, 1428, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430,
    2149                 : 
    2150                 :      1430, 1430, 1430, 1431,  497,  496, 1431, 1432, 1432, 1432,
    2151                 :       495, 1432, 1432,  494, 1432, 1432, 1433, 1433, 1433, 1433,
    2152                 :      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1434,  493,  492,
    2153                 :      1434, 1435, 1435, 1435, 1435, 1435,  490, 1435, 1435, 1435,
    2154                 :      1435, 1435, 1436,  489,  488,  487,  486, 1436, 1436,  485,
    2155                 :      1436, 1437,  484,  483, 1437, 1438,  482,  481, 1438, 1439,
    2156                 :      1439, 1439, 1439, 1439, 1439,  480, 1439, 1439, 1439, 1439,
    2157                 :      1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440,
    2158                 :      1440, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441,
    2159                 :      1441, 1441, 1442,  478,  475, 1442, 1443, 1443, 1443, 1443,
    2160                 : 
    2161                 :      1443, 1443, 1443, 1443, 1443, 1443, 1443, 1444,  474,  473,
    2162                 :       472,  469,  467,  466,  463,  459, 1444, 1445, 1445, 1445,
    2163                 :      1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1446,  458,
    2164                 :       457,  456,  455, 1446,  454,  453, 1446, 1447, 1447, 1447,
    2165                 :      1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1448, 1448,
    2166                 :      1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1449,
    2167                 :      1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449,
    2168                 :      1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450,
    2169                 :      1450, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451,
    2170                 :      1451, 1451, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452,
    2171                 : 
    2172                 :      1452, 1452, 1452, 1453, 1453, 1453, 1453, 1453, 1453, 1453,
    2173                 :      1453, 1453, 1453, 1453, 1454, 1454, 1454, 1454, 1454, 1454,
    2174                 :      1454, 1454, 1454, 1454, 1454, 1455, 1455, 1455, 1455, 1455,
    2175                 :      1455, 1455, 1455, 1455, 1455, 1455, 1456, 1456, 1456, 1456,
    2176                 :      1456, 1456, 1456, 1456, 1456, 1456, 1456, 1457, 1457, 1457,
    2177                 :      1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1458, 1458,
    2178                 :      1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1459,
    2179                 :      1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459,
    2180                 :      1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460,
    2181                 :      1460, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461,
    2182                 : 
    2183                 :      1461, 1461, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462,
    2184                 :      1462, 1462, 1462, 1463, 1463, 1463, 1463, 1463, 1463, 1463,
    2185                 :      1463, 1463, 1463, 1463, 1464, 1464, 1464, 1464, 1464, 1464,
    2186                 :      1464, 1464, 1464, 1464, 1464, 1465, 1465, 1465, 1465, 1465,
    2187                 :      1465, 1465, 1465, 1465, 1465, 1465, 1466, 1466, 1466, 1466,
    2188                 :      1466, 1466, 1466, 1466, 1466, 1466, 1466, 1467, 1467, 1467,
    2189                 :      1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1468, 1468,
    2190                 :      1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1469,
    2191                 :      1469, 1469, 1469, 1469, 1469, 1469, 1469, 1469, 1469, 1469,
    2192                 :      1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470,
    2193                 : 
    2194                 :      1470, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471,
    2195                 :      1471, 1471, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472,
    2196                 :      1472, 1472, 1472, 1473, 1473, 1473, 1473, 1473, 1473, 1473,
    2197                 :      1473, 1473, 1473, 1473, 1474, 1474, 1474, 1474, 1474, 1474,
    2198                 :      1474, 1474, 1474, 1474, 1474, 1475, 1475, 1475, 1475, 1475,
    2199                 :      1475, 1475, 1475, 1475, 1475, 1475, 1476, 1476, 1476, 1476,
    2200                 :      1476, 1476, 1476, 1476, 1476, 1476, 1476, 1477, 1477, 1477,
    2201                 :      1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1478, 1478,
    2202                 :      1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1479,
    2203                 :      1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479,
    2204                 : 
    2205                 :      1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480,
    2206                 :      1480, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481,
    2207                 :      1481, 1481, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482,
    2208                 :      1482, 1482, 1482, 1483, 1483, 1483, 1483, 1483, 1483, 1483,
    2209                 :      1483, 1483, 1483, 1483, 1484, 1484, 1484, 1484, 1484, 1484,
    2210                 :      1484, 1484, 1484, 1484, 1484, 1485, 1485, 1485, 1485, 1485,
    2211                 :      1485, 1485, 1485, 1485, 1485, 1485, 1486, 1486, 1486, 1486,
    2212                 :      1486, 1486, 1486, 1486, 1486, 1486, 1486, 1487, 1487, 1487,
    2213                 :      1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1488, 1488,
    2214                 :      1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1489,
    2215                 : 
    2216                 :      1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489,
    2217                 :      1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490,
    2218                 :      1490, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491,
    2219                 :      1491, 1491, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
    2220                 :      1492, 1492, 1492, 1493, 1493, 1493, 1493, 1493, 1493, 1493,
    2221                 :      1493, 1493, 1493, 1493, 1494, 1494, 1494, 1494, 1494, 1494,
    2222                 :      1494, 1494, 1494, 1494, 1494, 1495, 1495, 1495, 1495, 1495,
    2223                 :      1495, 1495, 1495, 1495, 1495, 1495, 1496, 1496, 1496, 1496,
    2224                 :      1496, 1496, 1496, 1496, 1496, 1496, 1496, 1497, 1497, 1497,
    2225                 :      1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1498, 1498,
    2226                 : 
    2227                 :      1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1499,
    2228                 :      1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499,
    2229                 :      1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500,
    2230                 :      1500, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501,
    2231                 :      1501, 1501, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502,
    2232                 :      1502, 1502, 1502, 1503, 1503, 1503, 1503, 1503, 1503, 1503,
    2233                 :      1503, 1503, 1503, 1503, 1504, 1504, 1504, 1504, 1504, 1504,
    2234                 :      1504, 1504, 1504, 1504, 1504, 1505, 1505, 1505, 1505, 1505,
    2235                 :      1505, 1505, 1505, 1505, 1505, 1505, 1506, 1506, 1506, 1506,
    2236                 :      1506, 1506, 1506, 1506, 1506, 1506, 1506, 1507, 1507, 1507,
    2237                 : 
    2238                 :      1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1508, 1508,
    2239                 :      1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1509,
    2240                 :      1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509,
    2241                 :      1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510,
    2242                 :      1510, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511,
    2243                 :      1511, 1511, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
    2244                 :      1512, 1512, 1512, 1513, 1513, 1513, 1513, 1513, 1513, 1513,
    2245                 :      1513, 1513, 1513, 1513, 1514, 1514, 1514, 1514, 1514, 1514,
    2246                 :      1514, 1514, 1514, 1514, 1514, 1515, 1515, 1515, 1515, 1515,
    2247                 :      1515, 1515, 1515, 1515, 1515, 1515, 1516, 1516, 1516, 1516,
    2248                 : 
    2249                 :      1516, 1516, 1516, 1516, 1516, 1516, 1516, 1517, 1517, 1517,
    2250                 :      1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1518, 1518,
    2251                 :      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1519,
    2252                 :      1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519,
    2253                 :      1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520,
    2254                 :      1520, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521,
    2255                 :      1521, 1521, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522,
    2256                 :      1522, 1522, 1522, 1523, 1523, 1523, 1523, 1523, 1523, 1523,
    2257                 :      1523, 1523, 1523, 1523, 1524, 1524, 1524, 1524, 1524, 1524,
    2258                 :      1524, 1524, 1524, 1524, 1524, 1525, 1525, 1525, 1525, 1525,
    2259                 : 
    2260                 :      1525, 1525, 1525, 1525, 1525, 1525, 1526, 1526, 1526, 1526,
    2261                 :      1526, 1526, 1526, 1526, 1526, 1526, 1526, 1527, 1527, 1527,
    2262                 :      1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1528, 1528,
    2263                 :      1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1529,
    2264                 :      1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529,
    2265                 :      1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530,
    2266                 :      1530, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531,
    2267                 :      1531, 1531, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532,
    2268                 :      1532, 1532, 1532, 1533, 1533, 1533, 1533, 1533, 1533, 1533,
    2269                 :      1533, 1533, 1533, 1533, 1534, 1534, 1534, 1534, 1534, 1534,
    2270                 : 
    2271                 :      1534, 1534, 1534, 1534, 1534, 1535, 1535, 1535, 1535, 1535,
    2272                 :      1535, 1535, 1535, 1535, 1535, 1535, 1536, 1536, 1536, 1536,
    2273                 :      1536, 1536, 1536, 1536, 1536, 1536, 1536, 1537, 1537, 1537,
    2274                 :      1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1538, 1538,
    2275                 :      1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1539,
    2276                 :      1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539,
    2277                 :      1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540,
    2278                 :      1540, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
    2279                 :      1541, 1541, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542,
    2280                 :      1542, 1542, 1542, 1543, 1543, 1543, 1543, 1543, 1543, 1543,
    2281                 : 
    2282                 :      1543, 1543, 1543, 1543, 1544, 1544, 1544, 1544, 1544, 1544,
    2283                 :      1544, 1544, 1544, 1544, 1544, 1545, 1545, 1545, 1545, 1545,
    2284                 :      1545, 1545, 1545, 1545, 1545, 1545, 1546, 1546, 1546, 1546,
    2285                 :      1546, 1546, 1546, 1546, 1546, 1546, 1546, 1547, 1547, 1547,
    2286                 :      1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1548, 1548,
    2287                 :      1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1549,
    2288                 :      1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
    2289                 :      1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550,
    2290                 :      1550, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551,
    2291                 :      1551, 1551, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552,
    2292                 : 
    2293                 :      1552, 1552, 1552, 1553, 1553, 1553, 1553, 1553, 1553, 1553,
    2294                 :      1553, 1553, 1553, 1553, 1554, 1554, 1554, 1554, 1554, 1554,
    2295                 :      1554, 1554, 1554, 1554, 1554, 1555, 1555, 1555, 1555, 1555,
    2296                 :      1555, 1555, 1555, 1555, 1555, 1555, 1556, 1556, 1556, 1556,
    2297                 :      1556, 1556, 1556, 1556, 1556, 1556, 1556, 1557, 1557, 1557,
    2298                 :      1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1558, 1558,
    2299                 :      1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1559,
    2300                 :      1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559,
    2301                 :      1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560,
    2302                 :      1560, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561,
    2303                 : 
    2304                 :      1561, 1561, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562,
    2305                 :      1562, 1562, 1562, 1563, 1563, 1563, 1563, 1563, 1563, 1563,
    2306                 :      1563, 1563, 1563, 1563, 1564, 1564, 1564, 1564, 1564, 1564,
    2307                 :      1564, 1564, 1564, 1564, 1564, 1565, 1565, 1565, 1565, 1565,
    2308                 :      1565, 1565, 1565, 1565, 1565, 1565, 1566, 1566, 1566, 1566,
    2309                 :      1566, 1566, 1566, 1566, 1566, 1566, 1566, 1567, 1567, 1567,
    2310                 :      1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1568, 1568,
    2311                 :      1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1569,
    2312                 :      1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569,
    2313                 :      1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570,
    2314                 : 
    2315                 :      1570, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571,
    2316                 :      1571, 1571, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572,
    2317                 :      1572, 1572, 1572, 1573, 1573, 1573, 1573, 1573, 1573, 1573,
    2318                 :      1573, 1573, 1573, 1573, 1574, 1574, 1574, 1574, 1574, 1574,
    2319                 :      1574, 1574, 1574, 1574, 1574, 1575, 1575, 1575, 1575, 1575,
    2320                 :      1575, 1575, 1575, 1575, 1575, 1575, 1576, 1576, 1576, 1576,
    2321                 :      1576, 1576, 1576, 1576, 1576, 1576, 1576, 1577, 1577, 1577,
    2322                 :      1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1578, 1578,
    2323                 :      1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1579,
    2324                 :      1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579,
    2325                 : 
    2326                 :      1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580,
    2327                 :      1580, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581,
    2328                 :      1581, 1581, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582,
    2329                 :      1582, 1582, 1582, 1583, 1583, 1583, 1583, 1583, 1583, 1583,
    2330                 :      1583, 1583, 1583, 1583, 1584, 1584, 1584, 1584, 1584, 1584,
    2331                 :      1584, 1584, 1584, 1584, 1584, 1585, 1585, 1585, 1585, 1585,
    2332                 :      1585, 1585, 1585, 1585, 1585, 1585, 1586, 1586, 1586, 1586,
    2333                 :      1586, 1586, 1586, 1586, 1586, 1586, 1586, 1587, 1587, 1587,
    2334                 :      1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1588, 1588,
    2335                 :      1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1589,
    2336                 : 
    2337                 :      1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589,
    2338                 :      1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590,
    2339                 :      1590, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591,
    2340                 :      1591, 1591, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592,
    2341                 :      1592, 1592, 1592, 1593, 1593, 1593, 1593, 1593, 1593, 1593,
    2342                 :      1593, 1593, 1593, 1593, 1594, 1594, 1594, 1594, 1594, 1594,
    2343                 :      1594, 1594, 1594, 1594, 1594, 1595, 1595, 1595, 1595, 1595,
    2344                 :      1595, 1595, 1595, 1595, 1595, 1595, 1596, 1596, 1596, 1596,
    2345                 :      1596, 1596, 1596, 1596, 1596, 1596, 1596, 1597, 1597, 1597,
    2346                 :      1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1598, 1598,
    2347                 : 
    2348                 :      1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1599,
    2349                 :      1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599,
    2350                 :      1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600,
    2351                 :      1600, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601,
    2352                 :      1601, 1601, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602,
    2353                 :      1602, 1602, 1602, 1603, 1603, 1603, 1603, 1603, 1603, 1603,
    2354                 :      1603, 1603, 1603, 1603, 1604, 1604, 1604, 1604, 1604, 1604,
    2355                 :      1604, 1604, 1604, 1604, 1604, 1605, 1605, 1605, 1605, 1605,
    2356                 :      1605, 1605, 1605, 1605, 1605, 1605, 1606, 1606, 1606, 1606,
    2357                 :      1606, 1606, 1606, 1606, 1606, 1606, 1606, 1607, 1607, 1607,
    2358                 : 
    2359                 :      1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1608, 1608,
    2360                 :      1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1609,
    2361                 :      1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609,
    2362                 :      1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610,
    2363                 :      1610, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611,
    2364                 :      1611, 1611, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612,
    2365                 :      1612, 1612, 1612, 1613, 1613, 1613, 1613, 1613, 1613, 1613,
    2366                 :      1613, 1613, 1613, 1613, 1614, 1614, 1614, 1614, 1614, 1614,
    2367                 :      1614, 1614, 1614, 1614, 1614, 1615, 1615, 1615, 1615, 1615,
    2368                 :      1615, 1615, 1615, 1615, 1615, 1615, 1616, 1616, 1616, 1616,
    2369                 : 
    2370                 :      1616, 1616, 1616, 1616, 1616, 1616, 1616, 1617, 1617, 1617,
    2371                 :      1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1618, 1618,
    2372                 :      1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1619,
    2373                 :      1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619,
    2374                 :      1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620,
    2375                 :      1620, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621,
    2376                 :      1621, 1621, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622,
    2377                 :      1622, 1622, 1622, 1623, 1623, 1623, 1623, 1623, 1623, 1623,
    2378                 :      1623, 1623, 1623, 1623, 1624, 1624, 1624, 1624, 1624, 1624,
    2379                 :      1624, 1624, 1624, 1624, 1624, 1625, 1625, 1625, 1625, 1625,
    2380                 : 
    2381                 :      1625, 1625, 1625, 1625, 1625, 1625, 1626, 1626, 1626, 1626,
    2382                 :      1626, 1626, 1626, 1626, 1626, 1626, 1626, 1627, 1627, 1627,
    2383                 :      1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1628, 1628,
    2384                 :      1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1629,
    2385                 :      1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
    2386                 :      1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630,
    2387                 :      1630, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631,
    2388                 :      1631, 1631, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632,
    2389                 :      1632, 1632, 1632, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
    2390                 :      1633, 1633, 1633, 1633, 1634, 1634, 1634, 1634, 1634, 1634,
    2391                 : 
    2392                 :      1634, 1634, 1634, 1634, 1634, 1635, 1635, 1635, 1635, 1635,
    2393                 :      1635, 1635, 1635, 1635, 1635, 1635, 1636, 1636, 1636, 1636,
    2394                 :      1636, 1636, 1636, 1636, 1636, 1636, 1636, 1637, 1637, 1637,
    2395                 :      1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1638, 1638,
    2396                 :      1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1639,
    2397                 :      1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639,
    2398                 :      1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640,
    2399                 :      1640, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641,
    2400                 :      1641, 1641, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642,
    2401                 :      1642, 1642, 1642, 1643, 1643, 1643, 1643, 1643, 1643, 1643,
    2402                 : 
    2403                 :      1643, 1643, 1643, 1643, 1644, 1644, 1644, 1644, 1644, 1644,
    2404                 :      1644, 1644, 1644, 1644, 1644, 1645, 1645, 1645, 1645, 1645,
    2405                 :      1645, 1645, 1645, 1645, 1645, 1645, 1646, 1646, 1646, 1646,
    2406                 :      1646, 1646, 1646, 1646, 1646, 1646, 1646, 1647, 1647, 1647,
    2407                 :      1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1648, 1648,
    2408                 :      1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1649,
    2409                 :      1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649,
    2410                 :      1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650,
    2411                 :      1650, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651,
    2412                 :      1651, 1651, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652,
    2413                 : 
    2414                 :      1652, 1652, 1652, 1653, 1653, 1653, 1653, 1653, 1653, 1653,
    2415                 :      1653, 1653, 1653, 1653, 1654, 1654, 1654, 1654, 1654, 1654,
    2416                 :      1654, 1654, 1654, 1654, 1654, 1655, 1655, 1655, 1655, 1655,
    2417                 :      1655, 1655, 1655, 1655, 1655, 1655, 1656, 1656, 1656, 1656,
    2418                 :      1656, 1656, 1656, 1656, 1656, 1656, 1656, 1657, 1657, 1657,
    2419                 :      1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1658, 1658,
    2420                 :      1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1659,
    2421                 :      1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659,
    2422                 :      1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660,
    2423                 :      1660, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661,
    2424                 : 
    2425                 :      1661, 1661, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662,
    2426                 :      1662, 1662, 1662, 1663, 1663, 1663, 1663, 1663, 1663, 1663,
    2427                 :      1663, 1663, 1663, 1663, 1664, 1664, 1664, 1664, 1664, 1664,
    2428                 :      1664, 1664, 1664, 1664, 1664, 1665, 1665, 1665, 1665, 1665,
    2429                 :      1665, 1665, 1665, 1665, 1665, 1665, 1666, 1666, 1666, 1666,
    2430                 :      1666, 1666, 1666, 1666, 1666, 1666, 1666, 1667, 1667, 1667,
    2431                 :      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1668, 1668,
    2432                 :      1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1669,
    2433                 :      1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669,
    2434                 :      1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670,
    2435                 : 
    2436                 :      1670, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671,
    2437                 :      1671, 1671, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672,
    2438                 :      1672, 1672, 1672, 1673, 1673, 1673, 1673, 1673, 1673, 1673,
    2439                 :      1673, 1673, 1673, 1673, 1674, 1674, 1674, 1674, 1674, 1674,
    2440                 :      1674, 1674, 1674, 1674, 1674, 1675, 1675, 1675, 1675, 1675,
    2441                 :      1675, 1675, 1675, 1675, 1675, 1675, 1676, 1676, 1676, 1676,
    2442                 :      1676, 1676, 1676, 1676, 1676, 1676, 1676, 1677, 1677, 1677,
    2443                 :      1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1678, 1678,
    2444                 :      1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1679,
    2445                 :      1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679,
    2446                 : 
    2447                 :      1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680,
    2448                 :      1680, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681,
    2449                 :      1681, 1681, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682,
    2450                 :      1682, 1682, 1682, 1683, 1683, 1683, 1683, 1683, 1683, 1683,
    2451                 :      1683, 1683, 1683, 1683, 1684, 1684, 1684, 1684, 1684, 1684,
    2452                 :      1684, 1684, 1684, 1684, 1684, 1685, 1685, 1685, 1685, 1685,
    2453                 :      1685, 1685, 1685, 1685, 1685, 1685, 1686, 1686, 1686, 1686,
    2454                 :      1686, 1686, 1686, 1686, 1686, 1686, 1686, 1687, 1687, 1687,
    2455                 :      1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1688, 1688,
    2456                 :      1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1689,
    2457                 : 
    2458                 :      1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689,
    2459                 :      1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690,
    2460                 :      1690, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691,
    2461                 :      1691, 1691, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692,
    2462                 :      1692, 1692, 1692, 1693, 1693, 1693, 1693, 1693, 1693, 1693,
    2463                 :      1693, 1693, 1693, 1693, 1694, 1694, 1694, 1694, 1694, 1694,
    2464                 :      1694, 1694, 1694, 1694, 1694, 1695, 1695, 1695, 1695, 1695,
    2465                 :      1695, 1695, 1695, 1695, 1695, 1695, 1696, 1696, 1696, 1696,
    2466                 :      1696, 1696, 1696, 1696, 1696, 1696, 1696, 1697, 1697, 1697,
    2467                 :      1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1698, 1698,
    2468                 : 
    2469                 :      1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1699,
    2470                 :      1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699,
    2471                 :      1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700,
    2472                 :      1700, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701,
    2473                 :      1701, 1701, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702,
    2474                 :      1702, 1702, 1702, 1703, 1703, 1703, 1703, 1703, 1703, 1703,
    2475                 :      1703, 1703, 1703, 1703, 1704, 1704, 1704, 1704, 1704, 1704,
    2476                 :      1704, 1704, 1704, 1704, 1704, 1705, 1705, 1705, 1705, 1705,
    2477                 :      1705, 1705, 1705, 1705, 1705, 1705, 1706, 1706, 1706, 1706,
    2478                 :      1706, 1706, 1706, 1706, 1706, 1706, 1706, 1707, 1707, 1707,
    2479                 : 
    2480                 :      1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1708, 1708,
    2481                 :      1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1709,
    2482                 :      1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709,
    2483                 :      1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710,
    2484                 :      1710, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711,
    2485                 :      1711, 1711, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712,
    2486                 :      1712, 1712, 1712, 1713, 1713, 1713, 1713, 1713, 1713, 1713,
    2487                 :      1713, 1713, 1713, 1713, 1714, 1714, 1714, 1714, 1714, 1714,
    2488                 :      1714, 1714, 1714, 1714, 1714, 1715, 1715, 1715, 1715, 1715,
    2489                 :      1715, 1715, 1715, 1715, 1715, 1715, 1716, 1716, 1716, 1716,
    2490                 : 
    2491                 :      1716, 1716, 1716, 1716, 1716, 1716, 1716, 1717, 1717, 1717,
    2492                 :      1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1718, 1718,
    2493                 :      1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1719,
    2494                 :      1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719,
    2495                 :      1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720,
    2496                 :      1720, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721,
    2497                 :      1721, 1721, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722,
    2498                 :      1722, 1722, 1722, 1723, 1723, 1723, 1723, 1723, 1723, 1723,
    2499                 :      1723, 1723, 1723, 1723, 1724, 1724, 1724, 1724, 1724, 1724,
    2500                 :      1724, 1724, 1724, 1724, 1724, 1725, 1725, 1725, 1725, 1725,
    2501                 : 
    2502                 :      1725, 1725, 1725, 1725, 1725, 1725, 1726, 1726, 1726, 1726,
    2503                 :      1726, 1726, 1726, 1726, 1726, 1726, 1726, 1727, 1727, 1727,
    2504                 :      1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1728, 1728,
    2505                 :      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1729,
    2506                 :      1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729,
    2507                 :      1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730,
    2508                 :      1730, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731,
    2509                 :      1731, 1731, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732,
    2510                 :      1732, 1732, 1732, 1733, 1733, 1733, 1733, 1733, 1733, 1733,
    2511                 :      1733, 1733, 1733, 1733, 1734, 1734, 1734, 1734, 1734, 1734,
    2512                 : 
    2513                 :      1734, 1734, 1734, 1734, 1734, 1735, 1735, 1735, 1735, 1735,
    2514                 :      1735, 1735, 1735, 1735, 1735, 1735, 1736, 1736, 1736, 1736,
    2515                 :      1736, 1736, 1736, 1736, 1736, 1736, 1736, 1737, 1737, 1737,
    2516                 :      1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1738, 1738,
    2517                 :      1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1739,
    2518                 :      1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739,
    2519                 :      1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740,
    2520                 :      1740, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741,
    2521                 :      1741, 1741, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742,
    2522                 :      1742, 1742, 1742, 1743, 1743, 1743, 1743, 1743, 1743, 1743,
    2523                 : 
    2524                 :      1743, 1743, 1743, 1743, 1744, 1744, 1744, 1744, 1744, 1744,
    2525                 :      1744, 1744, 1744, 1744, 1744, 1745, 1745, 1745, 1745, 1745,
    2526                 :      1745, 1745, 1745, 1745, 1745, 1745, 1746, 1746, 1746, 1746,
    2527                 :      1746, 1746, 1746, 1746, 1746, 1746, 1746, 1747, 1747, 1747,
    2528                 :      1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1748, 1748,
    2529                 :      1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1749,
    2530                 :      1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749,
    2531                 :      1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750,
    2532                 :      1750, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751,
    2533                 :      1751, 1751, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752,
    2534                 : 
    2535                 :      1752, 1752, 1752, 1753, 1753, 1753, 1753, 1753, 1753, 1753,
    2536                 :      1753, 1753, 1753, 1753, 1754, 1754, 1754, 1754, 1754, 1754,
    2537                 :      1754, 1754, 1754, 1754, 1754, 1755, 1755, 1755, 1755, 1755,
    2538                 :      1755, 1755, 1755, 1755, 1755, 1755, 1756, 1756, 1756, 1756,
    2539                 :      1756, 1756, 1756, 1756, 1756, 1756, 1756, 1757, 1757, 1757,
    2540                 :      1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1758, 1758,
    2541                 :      1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1759,
    2542                 :      1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759,
    2543                 :      1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760,
    2544                 :      1760, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761,
    2545                 : 
    2546                 :      1761, 1761, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762,
    2547                 :      1762, 1762, 1762, 1763, 1763, 1763, 1763, 1763, 1763, 1763,
    2548                 :      1763, 1763, 1763, 1763, 1764, 1764, 1764, 1764, 1764, 1764,
    2549                 :      1764, 1764, 1764, 1764, 1764, 1765, 1765, 1765, 1765, 1765,
    2550                 :      1765, 1765, 1765, 1765, 1765, 1765, 1766, 1766, 1766, 1766,
    2551                 :      1766, 1766, 1766, 1766, 1766, 1766, 1766, 1767, 1767, 1767,
    2552                 :      1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1768, 1768,
    2553                 :      1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1769,
    2554                 :      1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769,
    2555                 :      1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770,
    2556                 : 
    2557                 :      1770, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771,
    2558                 :      1771, 1771, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
    2559                 :      1772, 1772, 1772, 1773, 1773, 1773, 1773, 1773, 1773, 1773,
    2560                 :      1773, 1773, 1773, 1773, 1774, 1774, 1774, 1774, 1774, 1774,
    2561                 :      1774, 1774, 1774, 1774, 1774, 1775, 1775, 1775, 1775, 1775,
    2562                 :      1775, 1775, 1775, 1775, 1775, 1775, 1776, 1776, 1776, 1776,
    2563                 :      1776, 1776, 1776, 1776, 1776, 1776, 1776, 1777, 1777, 1777,
    2564                 :      1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1778, 1778,
    2565                 :      1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1779,
    2566                 :      1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779,
    2567                 : 
    2568                 :      1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780,
    2569                 :      1780, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781,
    2570                 :      1781, 1781, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
    2571                 :      1782, 1782, 1782, 1783, 1783, 1783, 1783, 1783, 1783, 1783,
    2572                 :      1783, 1783, 1783, 1783, 1784, 1784, 1784, 1784, 1784, 1784,
    2573                 :      1784, 1784, 1784, 1784, 1784, 1785, 1785, 1785, 1785, 1785,
    2574                 :      1785, 1785, 1785, 1785, 1785, 1785, 1786, 1786, 1786, 1786,
    2575                 :      1786, 1786, 1786, 1786, 1786, 1786, 1786, 1787, 1787, 1787,
    2576                 :      1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1788, 1788,
    2577                 :      1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1789,
    2578                 : 
    2579                 :      1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789,
    2580                 :      1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790,
    2581                 :      1790, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791,
    2582                 :      1791, 1791, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
    2583                 :      1792, 1792, 1792, 1793, 1793, 1793, 1793, 1793, 1793, 1793,
    2584                 :      1793, 1793, 1793, 1793, 1794, 1794, 1794, 1794, 1794, 1794,
    2585                 :      1794, 1794, 1794, 1794, 1794, 1795, 1795, 1795, 1795, 1795,
    2586                 :      1795, 1795, 1795, 1795, 1795, 1795, 1796, 1796, 1796, 1796,
    2587                 :      1796, 1796, 1796, 1796, 1796, 1796, 1796, 1797, 1797, 1797,
    2588                 :      1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1798, 1798,
    2589                 : 
    2590                 :      1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1799,
    2591                 :      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
    2592                 :      1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800,
    2593                 :      1800, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801,
    2594                 :      1801, 1801, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802,
    2595                 :      1802, 1802, 1802, 1803, 1803, 1803, 1803, 1803, 1803, 1803,
    2596                 :      1803, 1803, 1803, 1803, 1804, 1804, 1804, 1804, 1804, 1804,
    2597                 :      1804, 1804, 1804, 1804, 1804, 1805, 1805, 1805, 1805, 1805,
    2598                 :      1805, 1805, 1805, 1805, 1805, 1805, 1806, 1806, 1806, 1806,
    2599                 :      1806, 1806, 1806, 1806, 1806, 1806, 1806, 1807, 1807, 1807,
    2600                 : 
    2601                 :      1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1808, 1808,
    2602                 :      1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1809,
    2603                 :      1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809,
    2604                 :      1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810,
    2605                 :      1810, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811,
    2606                 :      1811, 1811, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812,
    2607                 :      1812, 1812, 1812, 1813, 1813, 1813, 1813, 1813, 1813, 1813,
    2608                 :      1813, 1813, 1813, 1813, 1814, 1814, 1814, 1814, 1814, 1814,
    2609                 :      1814, 1814, 1814, 1814, 1814, 1815, 1815, 1815, 1815, 1815,
    2610                 :      1815, 1815, 1815, 1815, 1815, 1815, 1816, 1816, 1816, 1816,
    2611                 : 
    2612                 :      1816, 1816, 1816, 1816, 1816, 1816, 1816, 1817, 1817, 1817,
    2613                 :      1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1818, 1818,
    2614                 :      1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1819,
    2615                 :      1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
    2616                 :      1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820,
    2617                 :      1820, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821,
    2618                 :      1821, 1821, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822,
    2619                 :      1822, 1822, 1822, 1823, 1823, 1823, 1823, 1823, 1823, 1823,
    2620                 :      1823, 1823, 1823, 1823, 1824, 1824, 1824, 1824, 1824, 1824,
    2621                 :      1824, 1824, 1824, 1824, 1824, 1825, 1825, 1825, 1825, 1825,
    2622                 : 
    2623                 :      1825, 1825, 1825, 1825, 1825, 1825, 1826, 1826, 1826, 1826,
    2624                 :      1826, 1826, 1826, 1826, 1826, 1826, 1826, 1827, 1827, 1827,
    2625                 :      1827, 1827, 1827, 1827, 1827, 1827, 1827, 1827, 1828, 1828,
    2626                 :      1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1829,
    2627                 :      1829, 1829, 1829, 1829, 1829, 1829, 1829, 1829, 1829, 1829,
    2628                 :      1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830,
    2629                 :      1830, 1831, 1831, 1831, 1831, 1831, 1831, 1831, 1831, 1831,
    2630                 :      1831, 1831, 1832, 1832, 1832, 1832, 1832, 1832, 1832, 1832,
    2631                 :      1832, 1832, 1832, 1833, 1833, 1833, 1833, 1833, 1833, 1833,
    2632                 :      1833, 1833, 1833, 1833, 1834, 1834, 1834, 1834, 1834, 1834,
    2633                 : 
    2634                 :      1834, 1834, 1834, 1834, 1834, 1835, 1835, 1835, 1835, 1835,
    2635                 :      1835, 1835, 1835, 1835, 1835, 1835, 1836, 1836, 1836, 1836,
    2636                 :      1836, 1836, 1836, 1836, 1836, 1836, 1836, 1837, 1837, 1837,
    2637                 :      1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1838, 1838,
    2638                 :      1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1839,
    2639                 :      1839, 1839, 1839, 1839, 1839, 1839, 1839, 1839, 1839, 1839,
    2640                 :      1840, 1840, 1840, 1840, 1840, 1840, 1840, 1840, 1840, 1840,
    2641                 :      1840, 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
    2642                 :      1841, 1841,  450,  449,  448,  447,  446,  445,  444,  442,
    2643                 :       441,  440,  438,  437,  435,  434,  433,  432,  425,  424,
    2644                 : 
    2645                 :       423,  422,  421,  420,  419,  417,  415,  414,  413,  411,
    2646                 :       410,  407,  406,  404,  403,  402,  399,  396,  395,  394,
    2647                 :       393,  392,  391,  390,  389,  388,  387,  386,  384,  383,
    2648                 :       382,  381,  380,  379,  378,  377,  376,  375,  372,  371,
    2649                 :       370,  369,  368,  367,  366,  364,  363,  362,  361,  360,
    2650                 :       359,  358,  356,  355,  354,  353,  352,  351,  350,  349,
    2651                 :       348,  346,  345,  343,  342,  341,  340,  338,  337,  336,
    2652                 :       335,  334,  333,  332,  330,  325,  322,  320,  319,  318,
    2653                 :       317,  316,  315,  314,  311,  310,  309,  308,  307,  306,
    2654                 :       305,  304,  303,  302,  301,  300,  299,  297,  296,  295,
    2655                 : 
    2656                 :       293,  292,  290,  289,  288,  287,  286,  285,  284,  282,
    2657                 :       281,  280,  279,  277,  276,  271,  270,  264,  263,  262,
    2658                 :       261,  260,  259,  258,  257,  256,  255,  254,  250,  249,
    2659                 :       246,  234,  229,  226,  225,  223,  208,  207,  206,  205,
    2660                 :       204,  203,  202,  201,  200,  198,  195,  194,  193,  191,
    2661                 :       189,  188,  187,  186,  184,  183,  182,  181,  180,  178,
    2662                 :       176,  173,  172,  168,  167,  166,  161,  158,  154,  146,
    2663                 :       137,  136,  135,  134,  133,  132,  131,  129,  127,  116,
    2664                 :       114,  112,  111,  109,  108,  106,  105,  102,  101,   89,
    2665                 :        86,   85,   84,   78,   71,   70,   69,   65,   63,   62,
    2666                 : 
    2667                 :        61,   58,   50,   49,   48,   44,   37,   28,   24,   23,
    2668                 :        20,   19,   18,   17,    2,    1, 1421, 1421, 1421, 1421,
    2669                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    2670                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    2671                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    2672                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    2673                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
    2674                 :      1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421
    2675                 :     } ;
    2676                 : 
    2677                 : static yy_state_type yy_last_accepting_state;
    2678                 : static char *yy_last_accepting_cpos;
    2679                 : 
    2680                 : /* The intent behind this definition is that it'll catch
    2681                 :  * any uses of REJECT which flex missed.
    2682                 :  */
    2683                 : #define REJECT reject_used_but_not_detected
    2684                 : static int yy_more_flag = 0;
    2685                 : static int yy_more_len = 0;
    2686                 : #define yymore() (yy_more_flag = 1)
    2687                 : #define YY_MORE_ADJ yy_more_len
    2688                 : #define YY_RESTORE_YY_MORE_OFFSET
    2689                 : char *yytext;
    2690                 : #line 1 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    2691                 : #define INITIAL 0
    2692                 : #line 2 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    2693                 : 
    2694                 : /*
    2695                 :    +----------------------------------------------------------------------+
    2696                 :    | Zend Engine                                                          |
    2697                 :    +----------------------------------------------------------------------+
    2698                 :    | Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
    2699                 :    +----------------------------------------------------------------------+
    2700                 :    | This source file is subject to version 2.00 of the Zend license,     |
    2701                 :    | that is bundled with this package in the file LICENSE, and is        |
    2702                 :    | available through the world-wide-web at the following url:           |
    2703                 :    | http://www.zend.com/license/2_00.txt.                                |
    2704                 :    | If you did not receive a copy of the Zend license and are unable to  |
    2705                 :    | obtain it through the world-wide-web, please send a note to          |
    2706                 :    | license@zend.com so we can mail you a copy immediately.              |
    2707                 :    +----------------------------------------------------------------------+
    2708                 :    | Authors: Andi Gutmans <andi@zend.com>                                |
    2709                 :    |          Zeev Suraski <zeev@zend.com>                                |
    2710                 :    +----------------------------------------------------------------------+
    2711                 : */
    2712                 : 
    2713                 : /* $Id: zend_language_scanner.l,v 1.131.2.11.2.9 2007/02/24 02:17:23 helly Exp $ */
    2714                 : 
    2715                 : #define yyleng SCNG(yy_leng)
    2716                 : #define yytext SCNG(yy_text)
    2717                 : #define yytext_ptr SCNG(yy_text)
    2718                 : #define yyin SCNG(yy_in)
    2719                 : #define yyout SCNG(yy_out)
    2720                 : #define yy_last_accepting_state SCNG(_yy_last_accepting_state)
    2721                 : #define yy_last_accepting_cpos SCNG(_yy_last_accepting_cpos)
    2722                 : #define yy_more_flag SCNG(_yy_more_flag)
    2723                 : #define yy_more_len SCNG(_yy_more_len)
    2724                 : 
    2725                 : #define ST_IN_SCRIPTING 1
    2726                 : 
    2727                 : #define ST_DOUBLE_QUOTES 2
    2728                 : 
    2729                 : #define ST_SINGLE_QUOTE 3
    2730                 : 
    2731                 : #define ST_BACKQUOTE 4
    2732                 : 
    2733                 : #define ST_HEREDOC 5
    2734                 : 
    2735                 : #define ST_LOOKING_FOR_PROPERTY 6
    2736                 : 
    2737                 : #define ST_LOOKING_FOR_VARNAME 7
    2738                 : 
    2739                 : #define ST_COMMENT 8
    2740                 : 
    2741                 : #define ST_DOC_COMMENT 9
    2742                 : 
    2743                 : #define ST_ONE_LINE_COMMENT 10
    2744                 : 
    2745                 : #define YY_STACK_USED 1
    2746                 : #line 49 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    2747                 : 
    2748                 : #include <errno.h>
    2749                 : #include "zend.h"
    2750                 : #include "zend_alloc.h"
    2751                 : #include <zend_language_parser.h>
    2752                 : #include "zend_compile.h"
    2753                 : #include "zend_language_scanner.h"
    2754                 : #include "zend_highlight.h"
    2755                 : #include "zend_constants.h"
    2756                 : #include "zend_variables.h"
    2757                 : #include "zend_operators.h"
    2758                 : #include "zend_API.h"
    2759                 : #include "zend_strtod.h"
    2760                 : #include "zend_exceptions.h"
    2761                 : 
    2762                 : #ifdef HAVE_STDARG_H
    2763                 : # include <stdarg.h>
    2764                 : #endif
    2765                 : 
    2766                 : #ifdef HAVE_UNISTD_H
    2767                 : # include <unistd.h>
    2768                 : #endif
    2769                 : 
    2770                 : #define YY_DECL int lex_scan(zval *zendlval TSRMLS_DC)
    2771                 : 
    2772                 : #define ECHO { ZEND_WRITE( yytext, yyleng ); }
    2773                 : 
    2774                 : #ifdef ZTS
    2775                 : #  define MY_INPUT yyinput
    2776                 : #else
    2777                 : #  define MY_INPUT input
    2778                 : #endif
    2779                 : 
    2780                 : 
    2781                 : /* Globals Macros */
    2782                 : #define SCNG    LANG_SCNG
    2783                 : #ifdef ZTS
    2784                 : ZEND_API ts_rsrc_id language_scanner_globals_id;
    2785                 : #else
    2786                 : ZEND_API zend_scanner_globals language_scanner_globals;
    2787                 : #endif
    2788                 : 
    2789                 : 
    2790                 : #define YY_FATAL_ERROR zend_fatal_scanner_error
    2791                 : 
    2792                 : #define HANDLE_NEWLINES(s, l)                                                                                                   \
    2793                 : do {                                                                                                                                                    \
    2794                 :         char *p = (s), *boundary = p+(l);                                                                                       \
    2795                 :                                                                                                                                                                 \
    2796                 :         while (p<boundary) {                                                                                                         \
    2797                 :                 if (*p == '\n') {                                                                                                               \
    2798                 :                         CG(zend_lineno)++;                                                                                                      \
    2799                 :                 } else if ((*p == '\r') && (p+1 < boundary) && (*(p+1) != '\n')) {           \
    2800                 :                         CG(zend_lineno)++;                                                                                                      \
    2801                 :                 }                                                                                                                                               \
    2802                 :                 p++;                                                                                                                                    \
    2803                 :         }                                                                                                                                                       \
    2804                 : } while (0)
    2805                 : 
    2806                 : #define HANDLE_NEWLINE(c) \
    2807                 : { \
    2808                 :         if (c == '\n' || c == '\r') { \
    2809                 :                 CG(zend_lineno)++; \
    2810                 :         } \
    2811                 : }
    2812                 : 
    2813                 : 
    2814                 : #define ZEND_IS_OCT(c)  ((c)>='0' && (c)<='7')
    2815                 : #define ZEND_IS_HEX(c)  (((c)>='0' && (c)<='9') || ((c)>='a' && (c)<='f') || ((c)>='A' && (c)<='F'))
    2816                 : 
    2817                 : 
    2818                 : void zend_fatal_scanner_error(char *message)
    2819                 : {
    2820                 :         zend_error(E_COMPILE_ERROR, "%s", message);
    2821                 : }
    2822                 : 
    2823                 : BEGIN_EXTERN_C()
    2824                 : void startup_scanner(TSRMLS_D)
    2825                 : {
    2826                 :         CG(heredoc) = NULL;
    2827                 :         CG(heredoc_len) = 0;
    2828                 :         CG(doc_comment) = NULL;
    2829                 :         CG(doc_comment_len) = 0;
    2830                 :         SCNG(yy_start_stack_ptr) = 0;
    2831                 :         SCNG(yy_start_stack_depth) = 0;
    2832                 :         SCNG(current_buffer) = NULL;
    2833                 : #ifdef ZEND_MULTIBYTE
    2834                 :         SCNG(script_org) = NULL;
    2835                 :         SCNG(script_org_size) = 0;
    2836                 :         SCNG(script_filtered) = NULL;
    2837                 :         SCNG(script_filtered_size) = 0;
    2838                 :         SCNG(input_filter) = NULL;
    2839                 :         SCNG(output_filter) = NULL;
    2840                 :         SCNG(script_encoding) = NULL;
    2841                 :         SCNG(internal_encoding) = NULL;
    2842                 : #endif /* ZEND_MULTIBYTE */
    2843                 : }
    2844                 : 
    2845                 : 
    2846                 : void shutdown_scanner(TSRMLS_D)
    2847                 : {
    2848                 :         if (CG(heredoc)) {
    2849                 :                 efree(CG(heredoc));
    2850                 :                 CG(heredoc_len)=0;
    2851                 :         }
    2852                 :         if (SCNG(yy_start_stack)) {
    2853                 :                 yy_flex_free(SCNG(yy_start_stack));
    2854                 :                 SCNG(yy_start_stack) = NULL;
    2855                 :         }
    2856                 :         RESET_DOC_COMMENT();
    2857                 :         
    2858                 : #ifdef ZEND_MULTIBYTE
    2859                 :         if (SCNG(script_org)) {
    2860                 :                 efree(SCNG(script_org));
    2861                 :                 SCNG(script_org) = NULL;
    2862                 :         }
    2863                 :         if (SCNG(script_filtered)) {
    2864                 :                 efree(SCNG(script_filtered));
    2865                 :                 SCNG(script_filtered) = NULL;
    2866                 :         }
    2867                 :         SCNG(script_org_size) = 0;
    2868                 :         SCNG(script_filtered_size) = 0;
    2869                 :         SCNG(input_filter) = NULL;
    2870                 :         SCNG(output_filter) = NULL;
    2871                 :         SCNG(script_encoding) = NULL;
    2872                 :         SCNG(internal_encoding) = NULL;
    2873                 : #endif /* ZEND_MULTIBYTE */
    2874                 : }
    2875                 : END_EXTERN_C()
    2876                 : 
    2877                 : 
    2878                 : ZEND_API void zend_save_lexical_state(zend_lex_state *lex_state TSRMLS_DC)
    2879                 : {
    2880                 :         memcpy(&lex_state->buffer_state, &YY_CURRENT_BUFFER, sizeof(YY_BUFFER_STATE));
    2881                 :         lex_state->in = SCNG(yy_in);
    2882                 :         lex_state->state = YYSTATE;
    2883                 :         lex_state->filename = zend_get_compiled_filename(TSRMLS_C);
    2884                 :         lex_state->lineno = CG(zend_lineno);
    2885                 : 
    2886                 : #ifdef ZEND_MULTIBYTE
    2887                 :         lex_state->script_org = SCNG(script_org);
    2888                 :         lex_state->script_org_size = SCNG(script_org_size);
    2889                 :         lex_state->script_filtered = SCNG(script_filtered);
    2890                 :         lex_state->script_filtered_size = SCNG(script_filtered_size);
    2891                 :         lex_state->input_filter = SCNG(input_filter);
    2892                 :         lex_state->output_filter = SCNG(output_filter);
    2893                 :         lex_state->script_encoding = SCNG(script_encoding);
    2894                 :         lex_state->internal_encoding = SCNG(internal_encoding);
    2895                 : #endif /* ZEND_MULTIBYTE */
    2896                 : }
    2897                 : 
    2898                 : ZEND_API void zend_restore_lexical_state(zend_lex_state *lex_state TSRMLS_DC)
    2899                 : {
    2900                 :         YY_BUFFER_STATE original_buffer_state = YY_CURRENT_BUFFER;
    2901                 : 
    2902                 :         if (lex_state->buffer_state) {
    2903                 :                 yy_switch_to_buffer(lex_state->buffer_state TSRMLS_CC);
    2904                 :         } else {
    2905                 :                 YY_CURRENT_BUFFER = NULL;
    2906                 :         }
    2907                 : 
    2908                 :         yy_delete_buffer(original_buffer_state TSRMLS_CC);
    2909                 :         SCNG(yy_in) = lex_state->in;
    2910                 :         BEGIN(lex_state->state);
    2911                 :         CG(zend_lineno) = lex_state->lineno;
    2912                 :         zend_restore_compiled_filename(lex_state->filename TSRMLS_CC);
    2913                 : 
    2914                 : #ifdef ZEND_MULTIBYTE
    2915                 :         if (SCNG(script_org)) {
    2916                 :                 efree(SCNG(script_org));
    2917                 :                 SCNG(script_org) = NULL;
    2918                 :         }
    2919                 :         if (SCNG(script_filtered)) {
    2920                 :                 efree(SCNG(script_filtered));
    2921                 :                 SCNG(script_filtered) = NULL;
    2922                 :         }
    2923                 :         SCNG(script_org) = lex_state->script_org;
    2924                 :         SCNG(script_org_size) = lex_state->script_org_size;
    2925                 :         SCNG(script_filtered) = lex_state->script_filtered;
    2926                 :         SCNG(script_filtered_size) = lex_state->script_filtered_size;
    2927                 :         SCNG(input_filter) = lex_state->input_filter;
    2928                 :         SCNG(output_filter) = lex_state->output_filter;
    2929                 :         SCNG(script_encoding) = lex_state->script_encoding;
    2930                 :         SCNG(internal_encoding) = lex_state->internal_encoding;
    2931                 : #endif /* ZEND_MULTIBYTE */
    2932                 : }
    2933                 : 
    2934                 : 
    2935                 : BEGIN_EXTERN_C()
    2936                 : 
    2937                 : 
    2938                 : ZEND_API void zend_file_handle_dtor(zend_file_handle *fh)
    2939                 : {
    2940                 :         TSRMLS_FETCH();
    2941                 :         
    2942                 :         switch (fh->type) {
    2943                 :                 case ZEND_HANDLE_FP:
    2944                 :                         fclose(fh->handle.fp);
    2945                 :                         break;
    2946                 :                 case ZEND_HANDLE_STREAM:
    2947                 :                         if (fh->handle.stream.closer) {
    2948                 :                                 fh->handle.stream.closer(fh->handle.stream.handle TSRMLS_CC);
    2949                 :                         }
    2950                 :                         break;
    2951                 :                 case ZEND_HANDLE_FILENAME:
    2952                 :                         /* We're only supposed to get here when destructing the used_files hash,
    2953                 :                          * which doesn't really contain open files, but references to their names/paths
    2954                 :                          */
    2955                 :                         break;
    2956                 :         }
    2957                 :         if (fh->opened_path) {
    2958                 :                 efree(fh->opened_path);
    2959                 :                 fh->opened_path = NULL;
    2960                 :         }
    2961                 :         if (fh->free_filename && fh->filename) {
    2962                 :                 efree(fh->filename);
    2963                 :                 fh->filename = NULL;
    2964                 :         }
    2965                 : }
    2966                 : 
    2967                 : 
    2968                 : int zend_compare_file_handles(zend_file_handle *fh1, zend_file_handle *fh2)
    2969                 : {
    2970                 :         if (fh1->type != fh2->type) {
    2971                 :                 return 0;
    2972                 :         }
    2973                 :         switch (fh1->type) {
    2974                 :                 case ZEND_HANDLE_FP:
    2975                 :                         return fh1->handle.fp==fh2->handle.fp;
    2976                 :                         break;
    2977                 :                 case ZEND_HANDLE_STREAM:
    2978                 :                         return fh1->handle.stream.handle == fh2->handle.stream.handle;
    2979                 :                         break;
    2980                 :         }
    2981                 :         return 0;
    2982                 : }
    2983                 : 
    2984                 : 
    2985                 : ZEND_API void zend_destroy_file_handle(zend_file_handle *file_handle TSRMLS_DC)
    2986                 : {
    2987                 :         zend_llist_del_element(&CG(open_files), file_handle, (int (*)(void *, void *)) zend_compare_file_handles);
    2988                 :         /* zend_file_handle_dtor() operates on the copy, so we have to NULLify the original here */
    2989                 :         file_handle->opened_path = NULL;
    2990                 :         if (file_handle->free_filename) {
    2991                 :                 file_handle->filename = NULL;
    2992                 :         }
    2993                 : }
    2994                 : 
    2995                 : 
    2996                 : ZEND_API int open_file_for_scanning(zend_file_handle *file_handle TSRMLS_DC)
    2997                 : {
    2998                 :         char *file_path=NULL;
    2999                 : 
    3000                 :         if (FAILURE == zend_stream_fixup(file_handle TSRMLS_CC)) {
    3001                 :                 return FAILURE;
    3002                 :         }
    3003                 : 
    3004                 :         zend_llist_add_element(&CG(open_files), file_handle);
    3005                 :         
    3006                 :         /* Reset the scanner for scanning the new file */
    3007                 :         SCNG(yy_in) = file_handle;
    3008                 : 
    3009                 : #ifdef ZEND_MULTIBYTE
    3010                 :         if (file_handle->handle.stream.interactive == 0) {
    3011                 :                 if (zend_multibyte_read_script(TSRMLS_C) != 0) {
    3012                 :                         return FAILURE;
    3013                 :                 }
    3014                 : 
    3015                 :                 /* force flex to use buffer only */
    3016                 :                 SCNG(yy_in) = NULL;
    3017                 :                 SCNG(init) = 0;
    3018                 :                 SCNG(start) = 1;
    3019                 : 
    3020                 :                 zend_multibyte_set_filter(NULL TSRMLS_CC);
    3021                 : 
    3022                 :                 if (!SCNG(input_filter)) {
    3023                 :                         SCNG(script_filtered) = (char*)emalloc(SCNG(script_org_size)+1);
    3024                 :                         memcpy(SCNG(script_filtered), SCNG(script_org), SCNG(script_org_size)+1);
    3025                 :                         SCNG(script_filtered_size) = SCNG(script_org_size);
    3026                 :                 } else {
    3027                 :                         SCNG(input_filter)(&SCNG(script_filtered), &SCNG(script_filtered_size), SCNG(script_org), SCNG(script_org_size) TSRMLS_CC);
    3028                 :                 }
    3029                 : 
    3030                 :                 /* flex requires doubled null */
    3031                 :                 SCNG(script_filtered) = (char*)erealloc(SCNG(script_filtered), SCNG(script_filtered_size)+2);
    3032                 :                 *(SCNG(script_filtered)+SCNG(script_filtered_size)) = (char)NULL;
    3033                 :                 *(SCNG(script_filtered)+SCNG(script_filtered_size)+1) = (char)NULL;
    3034                 :                 yy_scan_buffer(SCNG(script_filtered), SCNG(script_filtered_size)+2 TSRMLS_CC);
    3035                 :         } else {
    3036                 :                 yy_switch_to_buffer(yy_create_buffer(SCNG(yy_in), YY_BUF_SIZE TSRMLS_CC) TSRMLS_CC);
    3037                 :         }
    3038                 : #else  /* !ZEND_MULTIBYTE */
    3039                 :         yy_switch_to_buffer(yy_create_buffer(SCNG(yy_in), YY_BUF_SIZE TSRMLS_CC) TSRMLS_CC);
    3040                 : #endif /* ZEND_MULTIBYTE */
    3041                 : 
    3042                 :         BEGIN(INITIAL);
    3043                 : 
    3044                 :         if (file_handle->opened_path) {
    3045                 :                 file_path = file_handle->opened_path;
    3046                 :         } else {
    3047                 :                 file_path = file_handle->filename;
    3048                 :         }
    3049                 : 
    3050                 :         zend_set_compiled_filename(file_path TSRMLS_CC);
    3051                 : 
    3052                 :         if (CG(start_lineno)) {
    3053                 :                 CG(zend_lineno) = CG(start_lineno);
    3054                 :                 CG(start_lineno) = 0;
    3055                 :         } else {
    3056                 :                 CG(zend_lineno) = 1;
    3057                 :         }
    3058                 : 
    3059                 :         CG(increment_lineno) = 0;
    3060                 :         return SUCCESS;
    3061                 : }
    3062                 : END_EXTERN_C()
    3063                 : 
    3064                 : 
    3065                 : ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle, int type TSRMLS_DC)
    3066                 : {
    3067                 :         zend_lex_state original_lex_state;
    3068                 :         zend_op_array *op_array = (zend_op_array *) emalloc(sizeof(zend_op_array));
    3069                 :         zend_op_array *original_active_op_array = CG(active_op_array);
    3070                 :         zend_op_array *retval=NULL;
    3071                 :         int compiler_result;
    3072                 :         zend_bool compilation_successful=0;
    3073                 :         znode retval_znode;
    3074                 :         zend_bool original_in_compilation = CG(in_compilation);
    3075                 : 
    3076                 :         retval_znode.op_type = IS_CONST;
    3077                 :         retval_znode.u.constant.type = IS_LONG;
    3078                 :         retval_znode.u.constant.value.lval = 1;
    3079                 :         retval_znode.u.constant.is_ref = 0;
    3080                 :         retval_znode.u.constant.refcount = 1;
    3081                 : 
    3082                 :         zend_save_lexical_state(&original_lex_state TSRMLS_CC);
    3083                 : 
    3084                 :         retval = op_array; /* success oriented */
    3085                 : 
    3086                 :         if (open_file_for_scanning(file_handle TSRMLS_CC)==FAILURE) {
    3087                 :                 if (type==ZEND_REQUIRE) {
    3088                 :                         zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, file_handle->filename);
    3089                 :                         zend_bailout();
    3090                 :                 } else {
    3091                 :                         zend_message_dispatcher(ZMSG_FAILED_INCLUDE_FOPEN, file_handle->filename);
    3092                 :                 }
    3093                 :                 compilation_successful=0;
    3094                 :         } else {
    3095                 :                 init_op_array(op_array, ZEND_USER_FUNCTION, INITIAL_OP_ARRAY_SIZE TSRMLS_CC);
    3096                 :                 CG(in_compilation) = 1;
    3097                 :                 CG(active_op_array) = op_array;
    3098                 :                 compiler_result = zendparse(TSRMLS_C);
    3099                 :                 zend_do_return(&retval_znode, 0 TSRMLS_CC);
    3100                 :                 zend_do_handle_exception(TSRMLS_C);
    3101                 :                 CG(in_compilation) = original_in_compilation;
    3102                 :                 if (compiler_result==1) { /* parser error */
    3103                 :                         zend_bailout();
    3104                 :                 }
    3105                 :                 compilation_successful=1;
    3106                 :         }
    3107                 : 
    3108                 :         if (retval) {
    3109                 :                 CG(active_op_array) = original_active_op_array;
    3110                 :                 if (compilation_successful) {
    3111                 :                         pass_two(op_array TSRMLS_CC);
    3112                 :                 } else {
    3113                 :                         efree(op_array);
    3114                 :                         retval = NULL;
    3115                 :                 }
    3116                 :         }
    3117                 :         if (compilation_successful) {
    3118                 :                 zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
    3119                 :         }
    3120                 :         return retval;
    3121                 : }
    3122                 : 
    3123                 : 
    3124                 : zend_op_array *compile_filename(int type, zval *filename TSRMLS_DC)
    3125                 : {
    3126                 :         zend_file_handle file_handle;
    3127                 :         zval tmp;
    3128                 :         zend_op_array *retval;
    3129                 :         char *opened_path = NULL;
    3130                 : 
    3131                 :         if (filename->type != IS_STRING) {
    3132                 :                 tmp = *filename;
    3133                 :                 zval_copy_ctor(&tmp);
    3134                 :                 convert_to_string(&tmp);
    3135                 :                 filename = &tmp;
    3136                 :         }
    3137                 :         file_handle.filename = filename->value.str.val;
    3138                 :         file_handle.free_filename = 0;
    3139                 :         file_handle.type = ZEND_HANDLE_FILENAME;
    3140                 :         file_handle.opened_path = NULL;
    3141                 :         file_handle.handle.fp = NULL;
    3142                 : 
    3143                 :         retval = zend_compile_file(&file_handle, type TSRMLS_CC);
    3144                 :         if (retval && file_handle.handle.stream.handle) {
    3145                 :                 int dummy = 1;
    3146                 : 
    3147                 :                 if (!file_handle.opened_path) {
    3148                 :                         file_handle.opened_path = opened_path = estrndup(filename->value.str.val, filename->value.str.len);
    3149                 :                 }
    3150                 : 
    3151                 :                 zend_hash_add(&EG(included_files), file_handle.opened_path, strlen(file_handle.opened_path)+1, (void *)&dummy, sizeof(int), NULL);
    3152                 : 
    3153                 :                 if (opened_path) {
    3154                 :                         efree(opened_path);
    3155                 :                 }
    3156                 :         }
    3157                 :         zend_destroy_file_handle(&file_handle TSRMLS_CC);
    3158                 : 
    3159                 :         if (filename==&tmp) {
    3160                 :                 zval_dtor(&tmp);
    3161                 :         }
    3162                 :         return retval;
    3163                 : }
    3164                 : 
    3165                 : ZEND_API int zend_prepare_string_for_scanning(zval *str, char *filename TSRMLS_DC)
    3166                 : {
    3167                 :         /* enforce two trailing NULLs for flex... */
    3168                 :         STR_REALLOC(str->value.str.val, str->value.str.len+2);
    3169                 : 
    3170                 :         str->value.str.val[str->value.str.len+1]=0;
    3171                 : 
    3172                 :         SCNG(yy_in)=NULL;
    3173                 : 
    3174                 : #ifdef ZEND_MULTIBYTE
    3175                 :         SCNG(script_org) = estrdup(str->value.str.val);
    3176                 :         SCNG(script_org_size) = str->value.str.len;
    3177                 : 
    3178                 :         zend_multibyte_set_filter(CG(internal_encoding) TSRMLS_CC);
    3179                 : 
    3180                 :         if (!SCNG(input_filter)) {
    3181                 :                 SCNG(script_filtered) = (char*)emalloc(SCNG(script_org_size)+1);
    3182                 :                 memcpy(SCNG(script_filtered), SCNG(script_org), SCNG(script_org_size)+1);
    3183                 :                 SCNG(script_filtered_size) = SCNG(script_org_size);
    3184                 :         } else {
    3185                 :                 SCNG(input_filter)(&SCNG(script_filtered), &SCNG(script_filtered_size), SCNG(script_org), SCNG(script_org_size) TSRMLS_CC);
    3186                 :         }
    3187                 : 
    3188                 :         /* flex requires doubled null */
    3189                 :         SCNG(script_filtered) = (char*)erealloc(SCNG(script_filtered), SCNG(script_filtered_size)+2);
    3190                 :         *(SCNG(script_filtered)+SCNG(script_filtered_size)) = (char)NULL;
    3191                 :         *(SCNG(script_filtered)+SCNG(script_filtered_size)+1) = (char)NULL;
    3192                 :         yy_scan_buffer(SCNG(script_filtered), SCNG(script_filtered_size)+2 TSRMLS_CC);
    3193                 : #else /* !ZEND_MULTIBYTE */
    3194                 :         yy_scan_buffer(str->value.str.val, str->value.str.len+2 TSRMLS_CC);
    3195                 : #endif /* ZEND_MULTIBYTE */
    3196                 : 
    3197                 :         zend_set_compiled_filename(filename TSRMLS_CC);
    3198                 :         CG(zend_lineno) = 1;
    3199                 :         CG(increment_lineno) = 0;
    3200                 :         return SUCCESS;
    3201                 : }
    3202                 : 
    3203                 : 
    3204                 : ZEND_API int zend_get_scanned_file_offset(TSRMLS_D)
    3205                 : {
    3206                 :         if (yyin) {
    3207                 :                 int offset_in_buffer = (yy_c_buf_p - (YY_CURRENT_BUFFER)->yy_ch_buf);
    3208                 :                 int read_bytes = SCNG(yy_n_chars);
    3209                 :                 int offset_from_the_end = read_bytes - offset_in_buffer;
    3210                 : 
    3211                 :                 return zend_stream_ftell(yyin TSRMLS_CC) - offset_from_the_end;
    3212                 :         } else {
    3213                 :                 /* The entire file is in the buffer; probably zend multibyte
    3214                 :                    is enabled */
    3215                 :                 return (yy_c_buf_p - (YY_CURRENT_BUFFER)->yy_ch_buf);
    3216                 :         }
    3217                 : }
    3218                 : 
    3219                 : 
    3220                 : zend_op_array *compile_string(zval *source_string, char *filename TSRMLS_DC)
    3221                 : {
    3222                 :         zend_lex_state original_lex_state;
    3223                 :         zend_op_array *op_array = (zend_op_array *) emalloc(sizeof(zend_op_array));
    3224                 :         zend_op_array *original_active_op_array = CG(active_op_array);
    3225                 :         zend_op_array *retval;
    3226                 :         zval tmp;
    3227                 :         int compiler_result;
    3228                 :         zend_bool original_in_compilation = CG(in_compilation);
    3229                 : 
    3230                 :         if (source_string->value.str.len==0) {
    3231                 :                 efree(op_array);
    3232                 :                 return NULL;
    3233                 :         }
    3234                 : 
    3235                 :         CG(in_compilation) = 1;
    3236                 : 
    3237                 :         tmp = *source_string;
    3238                 :         zval_copy_ctor(&tmp);
    3239                 :         convert_to_string(&tmp);
    3240                 :         source_string = &tmp;
    3241                 : 
    3242                 :         zend_save_lexical_state(&original_lex_state TSRMLS_CC);
    3243                 :         if (zend_prepare_string_for_scanning(source_string, filename TSRMLS_CC)==FAILURE) {
    3244                 :                 efree(op_array);
    3245                 :                 retval = NULL;
    3246                 :         } else {
    3247                 :                 zend_bool orig_interactive = CG(interactive);
    3248                 :         
    3249                 :                 CG(interactive) = 0;
    3250                 :                 init_op_array(op_array, ZEND_EVAL_CODE, INITIAL_OP_ARRAY_SIZE TSRMLS_CC);
    3251                 :                 CG(interactive) = orig_interactive;
    3252                 :                 CG(active_op_array) = op_array;
    3253                 :                 BEGIN(ST_IN_SCRIPTING);
    3254                 :                 compiler_result = zendparse(TSRMLS_C);
    3255                 : 
    3256                 : #ifdef ZEND_MULTIBYTE
    3257                 :                 if (SCNG(script_org)) {
    3258                 :                         efree(SCNG(script_org));
    3259                 :                         SCNG(script_org) = NULL;
    3260                 :                 }
    3261                 :                 if (SCNG(script_filtered)) {
    3262                 :                         efree(SCNG(script_filtered));
    3263                 :                         SCNG(script_filtered) = NULL;
    3264                 :                 }
    3265                 : #endif /* ZEND_MULTIBYTE */
    3266                 : 
    3267                 :                 if (compiler_result==1) {
    3268                 :                         CG(active_op_array) = original_active_op_array;
    3269                 :                         CG(unclean_shutdown)=1;
    3270                 :                         retval = NULL;
    3271                 :                 } else {
    3272                 :                         zend_do_return(NULL, 0 TSRMLS_CC);
    3273                 :                         zend_do_handle_exception(TSRMLS_C);
    3274                 :                         CG(active_op_array) = original_active_op_array;
    3275                 :                         pass_two(op_array TSRMLS_CC);
    3276                 :                         retval = op_array;
    3277                 :                 }
    3278                 :                 zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
    3279                 :         }
    3280                 :         zval_dtor(&tmp);
    3281                 :         CG(in_compilation) = original_in_compilation;
    3282                 :         return retval;
    3283                 : }
    3284                 : 
    3285                 : 
    3286                 : BEGIN_EXTERN_C()
    3287                 : int highlight_file(char *filename, zend_syntax_highlighter_ini *syntax_highlighter_ini TSRMLS_DC)
    3288                 : {
    3289                 :         zend_lex_state original_lex_state;
    3290                 :         zend_file_handle file_handle;
    3291                 : 
    3292                 :         file_handle.type = ZEND_HANDLE_FILENAME;
    3293                 :         file_handle.filename = filename;
    3294                 :         file_handle.free_filename = 0;
    3295                 :         file_handle.opened_path = NULL;
    3296                 :         zend_save_lexical_state(&original_lex_state TSRMLS_CC);
    3297                 :         if (open_file_for_scanning(&file_handle TSRMLS_CC)==FAILURE) {
    3298                 :                 zend_message_dispatcher(ZMSG_FAILED_HIGHLIGHT_FOPEN, filename);
    3299                 :                 return FAILURE;
    3300                 :         }
    3301                 :         zend_highlight(syntax_highlighter_ini TSRMLS_CC);
    3302                 : #ifdef ZEND_MULTIBYTE
    3303                 :         if (SCNG(script_org)) {
    3304                 :                 efree(SCNG(script_org));
    3305                 :                 SCNG(script_org) = NULL;
    3306                 :         }
    3307                 :         if (SCNG(script_filtered)) {
    3308                 :                 efree(SCNG(script_filtered));
    3309                 :                 SCNG(script_filtered) = NULL;
    3310                 :         }
    3311                 : #endif /* ZEND_MULTIBYTE */
    3312                 :         zend_destroy_file_handle(&file_handle TSRMLS_CC);
    3313                 :         zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
    3314                 :         return SUCCESS;
    3315                 : }
    3316                 : 
    3317                 : int highlight_string(zval *str, zend_syntax_highlighter_ini *syntax_highlighter_ini, char *str_name TSRMLS_DC)
    3318                 : {
    3319                 :         zend_lex_state original_lex_state;
    3320                 :         zval tmp = *str;
    3321                 : 
    3322                 :         str = &tmp;
    3323                 :         zval_copy_ctor(str);
    3324                 :         zend_save_lexical_state(&original_lex_state TSRMLS_CC);
    3325                 :         if (zend_prepare_string_for_scanning(str, str_name TSRMLS_CC)==FAILURE) {
    3326                 :                 return FAILURE;
    3327                 :         }
    3328                 :         BEGIN(INITIAL);
    3329                 :         zend_highlight(syntax_highlighter_ini TSRMLS_CC);
    3330                 : #ifdef ZEND_MULTIBYTE
    3331                 :         if (SCNG(script_org)) {
    3332                 :                 efree(SCNG(script_org));
    3333                 :                 SCNG(script_org) = NULL;
    3334                 :         }
    3335                 :         if (SCNG(script_filtered)) {
    3336                 :                 efree(SCNG(script_filtered));
    3337                 :                 SCNG(script_filtered) = NULL;
    3338                 :         }
    3339                 : #endif /* ZEND_MULTIBYTE */
    3340                 :         zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
    3341                 :         zval_dtor(str);
    3342                 :         return SUCCESS;
    3343                 : }
    3344                 : END_EXTERN_C()
    3345                 : 
    3346                 : #ifdef ZEND_MULTIBYTE
    3347                 : BEGIN_EXTERN_C()
    3348                 : ZEND_API void zend_multibyte_yyinput_again(zend_encoding_filter old_input_filter, zend_encoding *old_encoding TSRMLS_DC)
    3349                 : {
    3350                 :         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
    3351                 :         int offset, original_offset, length, free_flag;
    3352                 :         char *p;
    3353                 :         zend_encoding *new_encoding;
    3354                 : 
    3355                 :         /* calculate current position */
    3356                 :         offset = original_offset = yy_c_buf_p - b->yy_ch_buf;
    3357                 :         if (old_input_filter && original_offset > 0) {
    3358                 :                 new_encoding = SCNG(script_encoding);
    3359                 :                 SCNG(script_encoding) = old_encoding;
    3360                 :                 do {
    3361                 :                         (old_input_filter)(&p, &length, SCNG(script_org), offset TSRMLS_CC);
    3362                 :                         if (!p) {
    3363                 :                                 SCNG(script_encoding) = new_encoding;
    3364                 :                                 return;
    3365                 :                         }
    3366                 :                         efree(p);
    3367                 :                         if (length > original_offset) {
    3368                 :                                 offset--;
    3369                 :                         } else if (length < original_offset) {
    3370                 :                                 offset++;
    3371                 :                         }
    3372                 :                 } while (original_offset != length);
    3373                 :                 SCNG(script_encoding) = new_encoding;
    3374                 :         }
    3375                 : 
    3376                 :         /* convert and set */
    3377                 :         if (!SCNG(input_filter)) {
    3378                 :                 length = SCNG(script_org_size)-offset-1;
    3379                 :                 p = SCNG(script_org)+offset+1;
    3380                 :                 free_flag = 0;
    3381                 :         } else {
    3382                 :                 SCNG(input_filter)(&p, &length, SCNG(script_org)+offset+1, SCNG(script_org_size)-offset-1 TSRMLS_CC);
    3383                 :                 free_flag = 1;
    3384                 :         }
    3385                 :         if (original_offset+length+1 > (int)b->yy_buf_size) {
    3386                 :                 b->yy_buf_size = original_offset+length+1;
    3387                 :                 b->yy_ch_buf = (char*)erealloc(b->yy_ch_buf, b->yy_buf_size+2);
    3388                 :                 SCNG(script_filtered) = b->yy_ch_buf;
    3389                 :                 SCNG(script_filtered_size) = b->yy_buf_size;
    3390                 :         }
    3391                 :         yy_c_buf_p = b->yy_ch_buf + original_offset;
    3392                 :         strncpy(yy_c_buf_p+1, p, length);
    3393                 :         b->yy_n_chars = original_offset + length + 1;
    3394                 :         SCNG(yy_n_chars) = b->yy_n_chars;
    3395                 :         b->yy_ch_buf[SCNG(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
    3396                 :         b->yy_ch_buf[SCNG(yy_n_chars)+1] = YY_END_OF_BUFFER_CHAR;
    3397                 : 
    3398                 :         if (free_flag) {
    3399                 :                 efree(p);
    3400                 :         }
    3401                 : }
    3402                 : 
    3403                 : 
    3404                 : ZEND_API int zend_multibyte_yyinput(zend_file_handle *file_handle, char *buf, size_t len TSRMLS_DC)
    3405                 : {
    3406                 :         int c = '*', n;
    3407                 : 
    3408                 :         if (file_handle->handle.stream.interactive == 0) {
    3409                 :                 return zend_stream_read(file_handle, buf, len TSRMLS_CC);
    3410                 :         }
    3411                 : 
    3412                 :         /* interactive */
    3413                 :         if (SCNG(script_org)) {
    3414                 :                 efree(SCNG(script_org));
    3415                 :         }
    3416                 :         if (SCNG(script_filtered)) {
    3417                 :                 efree(SCNG(script_filtered));
    3418                 :         }
    3419                 :         SCNG(script_org) = NULL;
    3420                 :         SCNG(script_org_size) = 0;
    3421                 : 
    3422                 :         /* TODO: support widechars */
    3423                 : 
    3424                 :         for (n = 0; n < sizeof(buf) && (c = zend_stream_getc(yyin TSRMLS_CC)) != EOF && c != '\n'; ++n) {
    3425                 :                 buf[n] = (char)c;
    3426                 :         }
    3427                 :         if (c == '\n') {
    3428                 :                 buf[n++] = (char) c;
    3429                 :         }
    3430                 : 
    3431                 :         SCNG(script_org_size) = n;
    3432                 :         SCNG(script_org) = (char*)emalloc(SCNG(script_org_size)+1);
    3433                 :         memcpy(SCNG(script_org)+SCNG(script_org_size)-n, buf, n);
    3434                 : 
    3435                 :         return n;
    3436                 : }
    3437                 : 
    3438                 : 
    3439                 : ZEND_API int zend_multibyte_read_script(TSRMLS_D)
    3440                 : {
    3441                 :         char buf[8192];
    3442                 :         int n;
    3443                 : 
    3444                 :         if (SCNG(script_org)) {
    3445                 :                 efree(SCNG(script_org));
    3446                 :         }
    3447                 :         SCNG(script_org) = NULL;
    3448                 :         SCNG(script_org_size) = 0;
    3449                 : 
    3450                 :         for (;;) {
    3451                 :                 n = zend_stream_read(yyin, buf, sizeof(buf) TSRMLS_CC);
    3452                 :                 if (n <= 0) {
    3453                 :                         break;
    3454                 :                 }
    3455                 : 
    3456                 :                 SCNG(script_org_size) += n;
    3457                 :                 if (SCNG(script_org)) {
    3458                 :                         SCNG(script_org) = (char*)erealloc(SCNG(script_org), SCNG(script_org_size)+1);
    3459                 :                 } else {
    3460                 :                         SCNG(script_org) = (char*)emalloc(SCNG(script_org_size)+1);
    3461                 :                 }
    3462                 :                 memcpy(SCNG(script_org)+SCNG(script_org_size)-n, buf, n);
    3463                 :         }
    3464                 : 
    3465                 :         if (n < 0) {
    3466                 :                 return -1;
    3467                 :         }
    3468                 : 
    3469                 :         if (!SCNG(script_org)) {
    3470                 :                 SCNG(script_org) = emalloc(SCNG(script_org_size)+1);
    3471                 :         }
    3472                 :         *(SCNG(script_org)+SCNG(script_org_size)) = (char)NULL;
    3473                 : 
    3474                 :         return 0;
    3475                 : }
    3476                 : 
    3477                 : 
    3478                 : # define zend_copy_value(zendlval, yytext, yyleng) \
    3479                 :         if (SCNG(output_filter)) { \
    3480                 :                 SCNG(output_filter)(&(zendlval->value.str.val), &(zendlval->value.str.len), yytext, yyleng TSRMLS_CC); \
    3481                 :         } else { \
    3482                 :                 zendlval->value.str.val = (char *) estrndup(yytext, yyleng); \
    3483                 :                 zendlval->value.str.len = yyleng; \
    3484                 :         }
    3485                 : #else /* ZEND_MULTIBYTE */
    3486                 : # define zend_copy_value(zendlval, yytext, yyleng) \
    3487                 :         zendlval->value.str.val = (char *)estrndup(yytext, yyleng); \
    3488                 :         zendlval->value.str.len = yyleng;
    3489                 : #endif /* ZEND_MULTIBYTE */
    3490                 : #line 3491 "Zend/zend_language_scanner.c"
    3491                 : 
    3492                 : /* Macros after this point can all be overridden by user definitions in
    3493                 :  * section 1.
    3494                 :  */
    3495                 : 
    3496                 : #ifndef YY_SKIP_YYWRAP
    3497                 : #ifdef __cplusplus
    3498                 : extern "C" int yywrap YY_PROTO(( void ));
    3499                 : #else
    3500                 : extern int yywrap YY_PROTO(( void ));
    3501                 : #endif
    3502                 : #endif
    3503                 : 
    3504                 : #ifndef YY_NO_UNPUT
    3505                 : static void yyunput YY_PROTO(( int c, char *buf_ptr TSRMLS_DC ));
    3506                 : #endif
    3507                 : 
    3508                 : #ifndef yytext_ptr
    3509                 : static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
    3510                 : #endif
    3511                 : 
    3512                 : #ifdef YY_NEED_STRLEN
    3513                 : static int yy_flex_strlen YY_PROTO(( yyconst char * ));
    3514                 : #endif
    3515                 : 
    3516                 : #ifndef YY_NO_INPUT
    3517                 : #ifdef __cplusplus
    3518                 : static int 3 YY_PROTO(( TSRMLS_D ));
    3519                 : #else
    3520                 : static int input YY_PROTO(( TSRMLS_D ));
    3521                 : #endif
    3522                 : #endif
    3523                 : 
    3524                 : #if YY_STACK_USED
    3525                 : #define yy_start_stack_ptr SCNG(yy_start_stack_ptr)
    3526                 : #define yy_start_stack_depth SCNG(yy_start_stack_depth)
    3527                 : #define yy_start_stack SCNG(yy_start_stack)
    3528                 : /*
    3529                 : static int yy_start_stack_ptr = 0;
    3530                 : static int yy_start_stack_depth = 0;
    3531                 : static int *yy_start_stack = 0;
    3532                 : */
    3533                 : #ifndef YY_NO_PUSH_STATE
    3534                 : static void yy_push_state YY_PROTO(( int new_state TSRMLS_DC ));
    3535                 : #endif
    3536                 : #ifndef YY_NO_POP_STATE
    3537                 : static void yy_pop_state YY_PROTO(( TSRMLS_D ));
    3538                 : #endif
    3539                 : #ifndef YY_NO_TOP_STATE
    3540                 : static int yy_top_state YY_PROTO(( TSRMLS_D ));
    3541                 : #endif
    3542                 : 
    3543                 : #else
    3544                 : #define YY_NO_PUSH_STATE 1
    3545                 : #define YY_NO_POP_STATE 1
    3546                 : #define YY_NO_TOP_STATE 1
    3547                 : #endif
    3548                 : 
    3549                 : #ifdef YY_MALLOC_DECL
    3550                 : YY_MALLOC_DECL
    3551                 : #else
    3552                 : #if __STDC__
    3553                 : #ifndef __cplusplus
    3554                 : #include <stdlib.h>
    3555                 : #endif
    3556                 : #else
    3557                 : /* Just try to get by without declaring the routines.  This will fail
    3558                 :  * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
    3559                 :  * or sizeof(void*) != sizeof(int).
    3560                 :  */
    3561                 : #endif
    3562                 : #endif
    3563                 : 
    3564                 : /* Amount of stuff to slurp up with each read. */
    3565                 : #ifndef YY_READ_BUF_SIZE
    3566                 : #define YY_READ_BUF_SIZE 8192
    3567                 : #endif
    3568                 : 
    3569                 : /* Copy whatever the last rule matched to the standard output. */
    3570                 : 
    3571                 : /* Zend file handle reading */
    3572                 : #ifndef ECHO
    3573                 : #define ECHO /* There is no output */
    3574                 : #endif
    3575                 : 
    3576                 : #ifdef ZEND_MULTIBYTE
    3577                 : # define YY_INPUT(buf, result, max_size) \
    3578                 :         if ( ((result = zend_multibyte_yyinput(yyin, buf, max_size TSRMLS_CC)) == 0) \
    3579                 :                 && zend_stream_ferror( yyin TSRMLS_CC) ) \
    3580                 :                 YY_FATAL_ERROR( "input in flex scanner failed" );
    3581                 : #else
    3582                 : # define YY_INPUT(buf, result, max_size) \
    3583                 :         if ( ((result = zend_stream_read(yyin, buf, max_size TSRMLS_CC)) == 0) \
    3584                 :                   && zend_stream_ferror( yyin TSRMLS_CC) ) \
    3585                 :                 YY_FATAL_ERROR( "input in flex scanner failed" );
    3586                 : #endif
    3587                 : 
    3588                 : #ifndef ECHO
    3589                 : /* This used to be an fputs(), but since the string might contain NUL's,
    3590                 :  * we now use fwrite().
    3591                 :  */
    3592                 : #define ECHO (void) fwrite( yytext, yyleng, 1, SCNG(yy_out) )
    3593                 : #endif
    3594                 : 
    3595                 : /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
    3596                 :  * is returned in "result".
    3597                 :  */
    3598                 : #ifndef YY_INPUT
    3599                 : #define YY_INPUT(buf,result,max_size) \
    3600                 :         if ( yy_current_buffer->yy_is_interactive ) \
    3601                 :                 { \
    3602                 :                 int c = '*', n; \
    3603                 :                 for ( n = 0; n < max_size && \
    3604                 :                              (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
    3605                 :                         buf[n] = (char) c; \
    3606                 :                 if ( c == '\n' ) \
    3607                 :                         buf[n++] = (char) c; \
    3608                 :                 if ( c == EOF && ferror( yyin ) ) \
    3609                 :                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
    3610                 :                 result = n; \
    3611                 :                 } \
    3612                 :         else \
    3613                 :                 { \
    3614                 :                 errno=0; \
    3615                 :                 while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
    3616                 :                         { \
    3617                 :                         if( errno != EINTR) \
    3618                 :                                 { \
    3619                 :                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
    3620                 :                                 break; \
    3621                 :                                 } \
    3622                 :                         errno=0; \
    3623                 :                         clearerr(yyin); \
    3624                 :                         } \
    3625                 :                 }
    3626                 : #endif
    3627                 : 
    3628                 : /* No semi-colon after return; correct usage is to write "yyterminate();" -
    3629                 :  * we don't want an extra ';' after the "return" because that will cause
    3630                 :  * some compilers to complain about unreachable statements.
    3631                 :  */
    3632                 : #ifndef yyterminate
    3633                 : #define yyterminate() return YY_NULL
    3634                 : #endif
    3635                 : 
    3636                 : /* Number of entries by which start-condition stack grows. */
    3637                 : #ifndef YY_START_STACK_INCR
    3638                 : #define YY_START_STACK_INCR 25
    3639                 : #endif
    3640                 : 
    3641                 : /* Report a fatal error. */
    3642                 : #ifndef YY_FATAL_ERROR
    3643                 : #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
    3644                 : #endif
    3645                 : 
    3646                 : 
    3647                 : /* Default declaration of generated scanner - a define so the user can
    3648                 :  * easily add parameters.
    3649                 :  */
    3650                 : #ifndef YY_DECL
    3651                 : #define YY_DECL int yylex YY_PROTO(( void ))
    3652                 : #endif
    3653                 : 
    3654                 : /* Code executed at the beginning of each rule, after yytext and yyleng
    3655                 :  * have been set up.
    3656                 :  */
    3657                 : #ifndef YY_USER_ACTION
    3658                 : #define YY_USER_ACTION
    3659                 : #endif
    3660                 : 
    3661                 : /* Code executed at the end of each rule. */
    3662                 : #ifndef YY_BREAK
    3663                 : #define YY_BREAK break;
    3664                 : #endif
    3665                 : 
    3666                 : #define YY_RULE_SETUP \
    3667                 :         if ( yyleng > 0 ) \
    3668                 :                 yy_current_buffer->yy_at_bol = \
    3669                 :                                 (yytext[yyleng - 1] == '\n'); \
    3670                 :         YY_USER_ACTION
    3671                 : 
    3672                 : YY_DECL
    3673           60230 :         {
    3674                 :         register yy_state_type yy_current_state;
    3675                 :         register char *yy_cp, *yy_bp;
    3676                 :         register int yy_act;
    3677                 : 
    3678                 : #line 809 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    3679                 : 
    3680                 : 
    3681                 : #line 3682 "Zend/zend_language_scanner.c"
    3682                 : 
    3683           60230 :         if ( yy_init )
    3684                 :                 {
    3685             219 :                 yy_init = 0;
    3686                 : 
    3687                 : #ifdef YY_USER_INIT
    3688                 :                 YY_USER_INIT;
    3689                 : #endif
    3690                 : 
    3691             219 :                 if ( ! yy_start )
    3692               0 :                         yy_start = 1;   /* first start state */
    3693                 : 
    3694                 : #if 0
    3695                 :                 if ( ! SCNG(yy_in) )
    3696                 :                         SCNG(yy_in) = stdin;
    3697                 : 
    3698                 :                 if ( ! SCNG(yy_out) )
    3699                 :                         SCNG(yy_out) = stdout;
    3700                 : #endif
    3701                 : 
    3702             219 :                 if ( ! yy_current_buffer )
    3703               0 :                         yy_current_buffer =
    3704                 :                                 yy_create_buffer( SCNG(yy_in), YY_BUF_SIZE TSRMLS_CC );
    3705                 : 
    3706             219 :                 yy_load_buffer_state(TSRMLS_C);
    3707                 :                 }
    3708                 : 
    3709                 :         while ( 1 )             /* loops until end-of-file is reached */
    3710                 :                 {
    3711           60373 :                 yy_more_len = 0;
    3712           60373 :                 if ( yy_more_flag )
    3713                 :                         {
    3714             142 :                         yy_more_len = yy_c_buf_p - yytext_ptr;
    3715             142 :                         yy_more_flag = 0;
    3716                 :                         }
    3717           60373 :                 yy_cp = yy_c_buf_p;
    3718                 : 
    3719                 :                 /* Support of yytext. */
    3720           60373 :                 *yy_cp = yy_hold_char;
    3721                 : 
    3722                 :                 /* yy_bp points to the position in yy_ch_buf of the start of
    3723                 :                  * the current run.
    3724                 :                  */
    3725           60373 :                 yy_bp = yy_cp;
    3726                 : 
    3727           60373 :                 yy_current_state = yy_start;
    3728           60373 :                 yy_current_state += YY_AT_BOL();
    3729          230859 : yy_match:
    3730                 :                 do
    3731                 :                         {
    3732          230859 :                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
    3733          230859 :                         if ( yy_accept[yy_current_state] )
    3734                 :                                 {
    3735          136012 :                                 yy_last_accepting_state = yy_current_state;
    3736          136012 :                                 yy_last_accepting_cpos = yy_cp;
    3737                 :                                 }
    3738          624492 :                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
    3739                 :                                 {
    3740          162774 :                                 yy_current_state = (int) yy_def[yy_current_state];
    3741          162774 :                                 if ( yy_current_state >= 1422 )
    3742          118893 :                                         yy_c = yy_meta[(unsigned int) yy_c];
    3743                 :                                 }
    3744          230859 :                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
    3745          230859 :                         ++yy_cp;
    3746                 :                         }
    3747          230859 :                 while ( yy_base[yy_current_state] != 7617 );
    3748                 : 
    3749           60725 : yy_find_action:
    3750           60725 :                 yy_act = yy_accept[yy_current_state];
    3751           60725 :                 if ( yy_act == 0 )
    3752                 :                         { /* have to back up */
    3753           40217 :                         yy_cp = yy_last_accepting_cpos;
    3754           40217 :                         yy_current_state = yy_last_accepting_state;
    3755           40217 :                         yy_act = yy_accept[yy_current_state];
    3756                 :                         }
    3757                 : 
    3758           60725 :                 YY_DO_BEFORE_ACTION;
    3759                 : 
    3760                 : 
    3761           61060 : do_action:      /* This label is used only to access EOF actions. */
    3762                 : 
    3763                 : 
    3764           61060 :                 switch ( yy_act )
    3765                 :         { /* beginning of action switch */
    3766                 :                         case 0: /* must back up */
    3767                 :                         /* undo the effects of YY_DO_BEFORE_ACTION */
    3768               0 :                         *yy_cp = yy_hold_char;
    3769               0 :                         yy_cp = yy_last_accepting_cpos;
    3770               0 :                         yy_current_state = yy_last_accepting_state;
    3771               0 :                         goto yy_find_action;
    3772                 : 
    3773                 : case 1:
    3774             117 : YY_RULE_SETUP
    3775                 : #line 811 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    3776                 : {
    3777                 :         return T_EXIT;
    3778                 : }
    3779                 :         YY_BREAK
    3780                 : case 2:
    3781                 : YY_RULE_SETUP
    3782                 : #line 815 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    3783                 : {
    3784                 :         return T_EXIT;
    3785                 : }
    3786                 :         YY_BREAK
    3787                 : case 3:
    3788                 : YY_RULE_SETUP
    3789                 : #line 819 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    3790                 : {
    3791                 :         return T_FUNCTION;
    3792                 : }
    3793                 :         YY_BREAK
    3794                 : case 4:
    3795                 : YY_RULE_SETUP
    3796                 : #line 823 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    3797                 : {
    3798                 :         return T_CONST;
    3799                 : }
    3800                 :         YY_BREAK
    3801                 : case 5:
    3802                 : YY_RULE_SETUP
    3803                 : #line 827 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    3804                 : {
    3805                 :         return T_RETURN;
    3806                 : }
    3807                 :         YY_BREAK
    3808                 : case 6:
    3809                 : YY_RULE_SETUP
    3810                 : #line 831 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    3811                 : {
    3812                 :         return T_TRY;
    3813                 : }
    3814                 :         YY_BREAK
    3815                 : case 7:
    3816                 : YY_RULE_SETUP
    3817                 : #line 835 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    3818                 : {
    3819                 :         return T_CATCH;
    3820                 : }
    3821                 :         YY_BREAK
    3822                 : case 8:
    3823                 : YY_RULE_SETUP
    3824                 : #line 839 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    3825                 : {
    3826                 :         return T_THROW;
    3827                 : }
    3828                 :         YY_BREAK
    3829                 : case 9:
    3830                 : YY_RULE_SETUP
    3831                 : #line 843 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    3832                 : {
    3833                 :         return T_IF;
    3834                 : }
    3835                 :         YY_BREAK
    3836                 : case 10:
    3837                 : YY_RULE_SETUP
    3838                 : #line 847 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    3839                 : {
    3840                 :         return T_ELSEIF;
    3841                 : }
    3842                 :         YY_BREAK
    3843                 : case 11:
    3844                 : YY_RULE_SETUP
    3845                 : #line 851 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    3846                 : {
    3847                 :         return T_ENDIF;
    3848                 : }
    3849                 :         YY_BREAK
    3850                 : case 12:
    3851                 : YY_RULE_SETUP
    3852                 : #line 855 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    3853                 : {
    3854                 :         return T_ELSE;
    3855                 : }
    3856                 :         YY_BREAK
    3857                 : case 13:
    3858                 : YY_RULE_SETUP
    3859                 : #line 859 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    3860                 : {
    3861                 :         return T_WHILE;
    3862                 : }
    3863                 :         YY_BREAK
    3864                 : case 14:
    3865                 : YY_RULE_SETUP
    3866                 : #line 863 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    3867                 : {
    3868                 :         return T_ENDWHILE;
    3869                 : }
    3870                 :         YY_BREAK
    3871                 : case 15:
    3872                 : YY_RULE_SETUP
    3873                 : #line 867 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    3874                 : {
    3875                 :         return T_DO;
    3876                 : }
    3877                 :         YY_BREAK
    3878                 : case 16:
    3879                 : YY_RULE_SETUP
    3880                 : #line 871 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    3881                 : {
    3882                 :         return T_FOR;
    3883                 : }
    3884                 :         YY_BREAK
    3885                 : case 17:
    3886                 : YY_RULE_SETUP
    3887                 : #line 875 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    3888                 : {
    3889                 :         return T_ENDFOR;
    3890                 : }
    3891                 :         YY_BREAK
    3892                 : case 18:
    3893                 : YY_RULE_SETUP
    3894                 : #line 879 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    3895                 : {
    3896                 :         return T_FOREACH;
    3897                 : }
    3898                 :         YY_BREAK
    3899                 : case 19:
    3900                 : YY_RULE_SETUP
    3901                 : #line 883 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    3902                 : {
    3903                 :         return T_ENDFOREACH;
    3904                 : }
    3905                 :         YY_BREAK
    3906                 : case 20:
    3907                 : YY_RULE_SETUP
    3908                 : #line 887 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    3909                 : {
    3910                 :         return T_DECLARE;
    3911                 : }
    3912                 :         YY_BREAK
    3913                 : case 21:
    3914                 : YY_RULE_SETUP
    3915                 : #line 891 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    3916                 : {
    3917                 :         return T_ENDDECLARE;
    3918                 : }
    3919                 :         YY_BREAK
    3920                 : case 22:
    3921                 : YY_RULE_SETUP
    3922                 : #line 895 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    3923                 : {
    3924                 :         return T_INSTANCEOF;
    3925                 : }
    3926                 :         YY_BREAK
    3927                 : case 23:
    3928                 : YY_RULE_SETUP
    3929                 : #line 899 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    3930                 : {
    3931                 :         return T_AS;
    3932                 : }
    3933                 :         YY_BREAK
    3934                 : case 24:
    3935                 : YY_RULE_SETUP
    3936                 : #line 903 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    3937                 : {
    3938                 :         return T_SWITCH;
    3939                 : }
    3940                 :         YY_BREAK
    3941                 : case 25:
    3942                 : YY_RULE_SETUP
    3943                 : #line 907 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    3944                 : {
    3945                 :         return T_ENDSWITCH;
    3946                 : }
    3947                 :         YY_BREAK
    3948                 : case 26:
    3949                 : YY_RULE_SETUP
    3950                 : #line 911 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    3951                 : {
    3952                 :         return T_CASE;
    3953                 : }
    3954                 :         YY_BREAK
    3955                 : case 27:
    3956                 : YY_RULE_SETUP
    3957                 : #line 915 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    3958                 : {
    3959                 :         return T_DEFAULT;
    3960                 : }
    3961                 :         YY_BREAK
    3962                 : case 28:
    3963                 : YY_RULE_SETUP
    3964                 : #line 919 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    3965                 : {
    3966                 :         return T_BREAK;
    3967                 : }
    3968                 :         YY_BREAK
    3969                 : case 29:
    3970                 : YY_RULE_SETUP
    3971                 : #line 923 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    3972                 : {
    3973                 :         return T_CONTINUE;
    3974                 : }
    3975                 :         YY_BREAK
    3976                 : case 30:
    3977                 : YY_RULE_SETUP
    3978                 : #line 927 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    3979                 : {
    3980                 :         return T_ECHO;
    3981                 : }
    3982                 :         YY_BREAK
    3983                 : case 31:
    3984                 : YY_RULE_SETUP
    3985                 : #line 931 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    3986                 : {
    3987                 :         return T_PRINT;
    3988                 : }
    3989                 :         YY_BREAK
    3990                 : case 32:
    3991                 : YY_RULE_SETUP
    3992                 : #line 935 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    3993                 : {
    3994                 :         return T_CLASS;
    3995                 : }
    3996                 :         YY_BREAK
    3997                 : case 33:
    3998                 : YY_RULE_SETUP
    3999                 : #line 939 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4000                 : {
    4001                 :         return T_INTERFACE;
    4002                 : }
    4003                 :         YY_BREAK
    4004                 : case 34:
    4005                 : YY_RULE_SETUP
    4006                 : #line 943 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4007                 : {
    4008                 :         return T_EXTENDS;
    4009                 : }
    4010                 :         YY_BREAK
    4011                 : case 35:
    4012                 : YY_RULE_SETUP
    4013                 : #line 947 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4014                 : {
    4015                 :         return T_IMPLEMENTS;
    4016                 : }
    4017                 :         YY_BREAK
    4018                 : case 36:
    4019                 : YY_RULE_SETUP
    4020                 : #line 951 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4021                 : {
    4022                 :         yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
    4023                 :         return T_OBJECT_OPERATOR;
    4024                 : }
    4025                 :         YY_BREAK
    4026                 : case 37:
    4027                 : YY_RULE_SETUP
    4028                 : #line 956 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4029                 : {
    4030                 :         yy_pop_state(TSRMLS_C);
    4031                 :         zend_copy_value(zendlval, yytext, yyleng);
    4032                 :         zendlval->type = IS_STRING;
    4033                 :         return T_STRING;
    4034                 : }
    4035                 :         YY_BREAK
    4036                 : case 38:
    4037                 : YY_RULE_SETUP
    4038                 : #line 963 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4039                 : {
    4040                 :         yyless(0);
    4041                 :         yy_pop_state(TSRMLS_C);
    4042                 : }
    4043                 :         YY_BREAK
    4044                 : case 39:
    4045                 : YY_RULE_SETUP
    4046                 : #line 968 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4047                 : {
    4048                 :         return T_PAAMAYIM_NEKUDOTAYIM;
    4049                 : }
    4050                 :         YY_BREAK
    4051                 : case 40:
    4052                 : YY_RULE_SETUP
    4053                 : #line 972 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4054                 : {
    4055                 :         return T_NEW;
    4056                 : }
    4057                 :         YY_BREAK
    4058                 : case 41:
    4059                 : YY_RULE_SETUP
    4060                 : #line 976 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4061                 : {
    4062                 :         return T_CLONE;
    4063                 : }
    4064                 :         YY_BREAK
    4065                 : case 42:
    4066                 : YY_RULE_SETUP
    4067                 : #line 980 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4068                 : {
    4069                 :         return T_VAR;
    4070                 : }
    4071                 :         YY_BREAK
    4072                 : case 43:
    4073                 : YY_RULE_SETUP
    4074                 : #line 984 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4075                 : {
    4076                 :         return T_INT_CAST;
    4077                 : }
    4078                 :         YY_BREAK
    4079                 : case 44:
    4080                 : YY_RULE_SETUP
    4081                 : #line 988 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4082                 : {
    4083                 :         return T_DOUBLE_CAST;
    4084                 : }
    4085                 :         YY_BREAK
    4086                 : case 45:
    4087                 : YY_RULE_SETUP
    4088                 : #line 992 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4089                 : {
    4090                 :         return T_STRING_CAST;
    4091                 : }
    4092                 :         YY_BREAK
    4093                 : case 46:
    4094                 : YY_RULE_SETUP
    4095                 : #line 996 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4096                 : {
    4097                 :         return T_STRING_CAST;
    4098                 : }
    4099                 :         YY_BREAK
    4100                 : case 47:
    4101                 : YY_RULE_SETUP
    4102                 : #line 1000 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4103                 : {
    4104                 :         return T_ARRAY_CAST;
    4105                 : }
    4106                 :         YY_BREAK
    4107                 : case 48:
    4108                 : YY_RULE_SETUP
    4109                 : #line 1004 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4110                 : {
    4111                 :         return T_OBJECT_CAST;
    4112                 : }
    4113                 :         YY_BREAK
    4114                 : case 49:
    4115                 : YY_RULE_SETUP
    4116                 : #line 1008 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4117                 : {
    4118                 :         return T_BOOL_CAST;
    4119                 : }
    4120                 :         YY_BREAK
    4121                 : case 50:
    4122                 : YY_RULE_SETUP
    4123                 : #line 1012 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4124                 : {
    4125                 :         return T_UNSET_CAST;
    4126                 : }
    4127                 :         YY_BREAK
    4128                 : case 51:
    4129                 : YY_RULE_SETUP
    4130                 : #line 1016 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4131                 : {
    4132                 :         return T_EVAL;
    4133                 : }
    4134                 :         YY_BREAK
    4135                 : case 52:
    4136                 : YY_RULE_SETUP
    4137                 : #line 1020 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4138                 : {
    4139                 :         return T_INCLUDE;
    4140                 : }
    4141                 :         YY_BREAK
    4142                 : case 53:
    4143                 : YY_RULE_SETUP
    4144                 : #line 1024 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4145                 : {
    4146                 :         return T_INCLUDE_ONCE;
    4147                 : }
    4148                 :         YY_BREAK
    4149                 : case 54:
    4150                 : YY_RULE_SETUP
    4151                 : #line 1028 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4152                 : {
    4153                 :         return T_REQUIRE;
    4154                 : }
    4155                 :         YY_BREAK
    4156                 : case 55:
    4157                 : YY_RULE_SETUP
    4158                 : #line 1032 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4159                 : {
    4160                 :         return T_REQUIRE_ONCE;
    4161                 : }
    4162                 :         YY_BREAK
    4163                 : case 56:
    4164                 : YY_RULE_SETUP
    4165                 : #line 1036 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4166                 : {
    4167                 :         return T_USE;
    4168                 : }
    4169                 :         YY_BREAK
    4170                 : case 57:
    4171                 : YY_RULE_SETUP
    4172                 : #line 1040 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4173                 : {
    4174                 :         return T_GLOBAL;
    4175                 : }
    4176                 :         YY_BREAK
    4177                 : case 58:
    4178                 : YY_RULE_SETUP
    4179                 : #line 1044 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4180                 : {
    4181                 :         return T_ISSET;
    4182                 : }
    4183                 :         YY_BREAK
    4184                 : case 59:
    4185                 : YY_RULE_SETUP
    4186                 : #line 1048 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4187                 : {
    4188                 :         return T_EMPTY;
    4189                 : }
    4190                 :         YY_BREAK
    4191                 : case 60:
    4192                 : YY_RULE_SETUP
    4193                 : #line 1052 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4194                 : {
    4195                 :         return T_HALT_COMPILER;
    4196                 : }
    4197                 :         YY_BREAK
    4198                 : case 61:
    4199                 : YY_RULE_SETUP
    4200                 : #line 1056 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4201                 : {
    4202                 :         return T_STATIC;
    4203                 : }
    4204                 :         YY_BREAK
    4205                 : case 62:
    4206                 : YY_RULE_SETUP
    4207                 : #line 1060 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4208                 : {
    4209                 :         return T_ABSTRACT;
    4210                 : }
    4211                 :         YY_BREAK
    4212                 : case 63:
    4213                 : YY_RULE_SETUP
    4214                 : #line 1064 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4215                 : {
    4216                 :         return T_FINAL;
    4217                 : }
    4218                 :         YY_BREAK
    4219                 : case 64:
    4220                 : YY_RULE_SETUP
    4221                 : #line 1068 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4222                 : {
    4223                 :         return T_PRIVATE;
    4224                 : }
    4225                 :         YY_BREAK
    4226                 : case 65:
    4227                 : YY_RULE_SETUP
    4228                 : #line 1072 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4229                 : {
    4230                 :         return T_PROTECTED;
    4231                 : }
    4232                 :         YY_BREAK
    4233                 : case 66:
    4234                 : YY_RULE_SETUP
    4235                 : #line 1076 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4236                 : {
    4237                 :         return T_PUBLIC;
    4238                 : }
    4239                 :         YY_BREAK
    4240                 : case 67:
    4241                 : YY_RULE_SETUP
    4242                 : #line 1080 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4243                 : {
    4244                 :         return T_UNSET;
    4245                 : }
    4246                 :         YY_BREAK
    4247                 : case 68:
    4248                 : YY_RULE_SETUP
    4249                 : #line 1084 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4250                 : {
    4251                 :         return T_DOUBLE_ARROW;
    4252                 : }
    4253                 :         YY_BREAK
    4254                 : case 69:
    4255                 : YY_RULE_SETUP
    4256                 : #line 1088 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4257                 : {
    4258                 :         return T_LIST;
    4259                 : }
    4260                 :         YY_BREAK
    4261                 : case 70:
    4262                 : YY_RULE_SETUP
    4263                 : #line 1092 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4264                 : {
    4265                 :         return T_ARRAY;
    4266                 : }
    4267                 :         YY_BREAK
    4268                 : case 71:
    4269                 : YY_RULE_SETUP
    4270                 : #line 1096 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4271                 : {
    4272                 :         return T_INC;
    4273                 : }
    4274                 :         YY_BREAK
    4275                 : case 72:
    4276                 : YY_RULE_SETUP
    4277                 : #line 1100 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4278                 : {
    4279                 :         return T_DEC;
    4280                 : }
    4281                 :         YY_BREAK
    4282                 : case 73:
    4283                 : YY_RULE_SETUP
    4284                 : #line 1104 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4285                 : {
    4286                 :         return T_IS_IDENTICAL;
    4287                 : }
    4288                 :         YY_BREAK
    4289                 : case 74:
    4290                 : YY_RULE_SETUP
    4291                 : #line 1108 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4292                 : {
    4293                 :         return T_IS_NOT_IDENTICAL;
    4294                 : }
    4295                 :         YY_BREAK
    4296                 : case 75:
    4297                 : YY_RULE_SETUP
    4298                 : #line 1112 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4299                 : {
    4300                 :         return T_IS_EQUAL;
    4301                 : }
    4302                 :         YY_BREAK
    4303                 : case 76:
    4304                 : YY_RULE_SETUP
    4305                 : #line 1116 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4306                 : {
    4307                 :         return T_IS_NOT_EQUAL;
    4308                 : }
    4309                 :         YY_BREAK
    4310                 : case 77:
    4311                 : YY_RULE_SETUP
    4312                 : #line 1120 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4313                 : {
    4314                 :         return T_IS_SMALLER_OR_EQUAL;
    4315                 : }
    4316                 :         YY_BREAK
    4317                 : case 78:
    4318                 : YY_RULE_SETUP
    4319                 : #line 1124 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4320                 : {
    4321                 :         return T_IS_GREATER_OR_EQUAL;
    4322                 : }
    4323                 :         YY_BREAK
    4324                 : case 79:
    4325                 : YY_RULE_SETUP
    4326                 : #line 1128 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4327                 : {
    4328                 :         return T_PLUS_EQUAL;
    4329                 : }
    4330                 :         YY_BREAK
    4331                 : case 80:
    4332                 : YY_RULE_SETUP
    4333                 : #line 1132 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4334                 : {
    4335                 :         return T_MINUS_EQUAL;
    4336                 : }
    4337                 :         YY_BREAK
    4338                 : case 81:
    4339                 : YY_RULE_SETUP
    4340                 : #line 1136 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4341                 : {
    4342                 :         return T_MUL_EQUAL;
    4343                 : }
    4344                 :         YY_BREAK
    4345                 : case 82:
    4346                 : YY_RULE_SETUP
    4347                 : #line 1140 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4348                 : {
    4349                 :         return T_DIV_EQUAL;
    4350                 : }
    4351                 :         YY_BREAK
    4352                 : case 83:
    4353                 : YY_RULE_SETUP
    4354                 : #line 1144 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4355                 : {
    4356                 :         return T_CONCAT_EQUAL;
    4357                 : }
    4358                 :         YY_BREAK
    4359                 : case 84:
    4360                 : YY_RULE_SETUP
    4361                 : #line 1148 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4362                 : {
    4363                 :         return T_MOD_EQUAL;
    4364                 : }
    4365                 :         YY_BREAK
    4366                 : case 85:
    4367                 : YY_RULE_SETUP
    4368                 : #line 1152 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4369                 : {
    4370                 :         return T_SL_EQUAL;
    4371                 : }
    4372                 :         YY_BREAK
    4373                 : case 86:
    4374                 : YY_RULE_SETUP
    4375                 : #line 1156 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4376                 : {
    4377                 :         return T_SR_EQUAL;
    4378                 : }
    4379                 :         YY_BREAK
    4380                 : case 87:
    4381                 : YY_RULE_SETUP
    4382                 : #line 1160 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4383                 : {
    4384                 :         return T_AND_EQUAL;
    4385                 : }
    4386                 :         YY_BREAK
    4387                 : case 88:
    4388                 : YY_RULE_SETUP
    4389                 : #line 1164 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4390                 : {
    4391                 :         return T_OR_EQUAL;
    4392                 : }
    4393                 :         YY_BREAK
    4394                 : case 89:
    4395                 : YY_RULE_SETUP
    4396                 : #line 1168 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4397                 : {
    4398                 :         return T_XOR_EQUAL;
    4399                 : }
    4400                 :         YY_BREAK
    4401                 : case 90:
    4402                 : YY_RULE_SETUP
    4403                 : #line 1172 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4404                 : {
    4405                 :         return T_BOOLEAN_OR;
    4406                 : }
    4407                 :         YY_BREAK
    4408                 : case 91:
    4409                 : YY_RULE_SETUP
    4410                 : #line 1176 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4411                 : {
    4412                 :         return T_BOOLEAN_AND;
    4413                 : }
    4414                 :         YY_BREAK
    4415                 : case 92:
    4416                 : YY_RULE_SETUP
    4417                 : #line 1180 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4418                 : {
    4419                 :         return T_LOGICAL_OR;
    4420                 : }
    4421                 :         YY_BREAK
    4422                 : case 93:
    4423                 : YY_RULE_SETUP
    4424                 : #line 1184 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4425                 : {
    4426                 :         return T_LOGICAL_AND;
    4427                 : }
    4428                 :         YY_BREAK
    4429                 : case 94:
    4430                 : YY_RULE_SETUP
    4431                 : #line 1188 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4432                 : {
    4433                 :         return T_LOGICAL_XOR;
    4434                 : }
    4435                 :         YY_BREAK
    4436                 : case 95:
    4437                 : YY_RULE_SETUP
    4438                 : #line 1192 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4439                 : {
    4440                 :         return T_SL;
    4441                 : }
    4442                 :         YY_BREAK
    4443                 : case 96:
    4444                 : YY_RULE_SETUP
    4445                 : #line 1196 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4446                 : {
    4447                 :         return T_SR;
    4448                 : }
    4449                 :         YY_BREAK
    4450                 : case 97:
    4451                 : YY_RULE_SETUP
    4452                 : #line 1200 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4453                 : {
    4454                 :         return yytext[0];
    4455                 : }
    4456                 :         YY_BREAK
    4457                 : case 98:
    4458                 : YY_RULE_SETUP
    4459                 : #line 1205 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4460                 : {
    4461                 :         yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
    4462                 :         return '{';
    4463                 : }
    4464                 :         YY_BREAK
    4465                 : case 99:
    4466                 : YY_RULE_SETUP
    4467                 : #line 1211 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4468                 : {
    4469                 :         yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
    4470                 :         return T_DOLLAR_OPEN_CURLY_BRACES;
    4471                 : }
    4472                 :         YY_BREAK
    4473                 : case 100:
    4474                 : YY_RULE_SETUP
    4475                 : #line 1217 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4476                 : {
    4477                 :         RESET_DOC_COMMENT();
    4478                 :         /* This is a temporary fix which is dependant on flex and it's implementation */
    4479                 :         if (yy_start_stack_ptr) {
    4480                 :                 yy_pop_state(TSRMLS_C);
    4481                 :         }
    4482                 :         return '}';
    4483                 : }
    4484                 :         YY_BREAK
    4485                 : case 101:
    4486                 : YY_RULE_SETUP
    4487                 : #line 1227 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4488                 : {
    4489                 :         zend_copy_value(zendlval, yytext, yyleng);
    4490                 :         zendlval->type = IS_STRING;
    4491                 :         yy_pop_state(TSRMLS_C);
    4492                 :         yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
    4493                 :         return T_STRING_VARNAME;
    4494                 : }
    4495                 :         YY_BREAK
    4496                 : case 102:
    4497                 : YY_RULE_SETUP
    4498                 : #line 1236 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4499                 : {
    4500                 :         yyless(0);
    4501                 :         yy_pop_state(TSRMLS_C);
    4502                 :         yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
    4503                 : }
    4504                 :         YY_BREAK
    4505                 : case 103:
    4506                 : YY_RULE_SETUP
    4507                 : #line 1243 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4508                 : {
    4509                 :         if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */
    4510                 :                 zendlval->value.lval = strtol(yytext, NULL, 0);
    4511                 :         } else {
    4512                 :                 errno = 0;
    4513                 :                 zendlval->value.lval = strtol(yytext, NULL, 0);
    4514                 :                 if (errno == ERANGE) { /* Overflow */
    4515                 :                         zendlval->value.dval = zend_strtod(yytext, NULL);
    4516                 :                         zendlval->type = IS_DOUBLE;
    4517                 :                         return T_DNUMBER;
    4518                 :                 }
    4519                 :         }
    4520                 : 
    4521                 :         zendlval->type = IS_LONG;
    4522                 :         return T_LNUMBER;
    4523                 : }
    4524                 :         YY_BREAK
    4525                 : case 104:
    4526                 : YY_RULE_SETUP
    4527                 : #line 1260 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4528                 : {
    4529                 :         char *hex = yytext + 2; /* Skip "0x" */
    4530                 :         int len = yyleng - 2;
    4531                 : 
    4532                 :         /* Skip any leading 0s */
    4533                 :         while (*hex == '0') {
    4534                 :                 hex++;
    4535                 :                 len--;
    4536                 :         }
    4537                 : 
    4538                 :         if (len < SIZEOF_LONG * 2 || (len == SIZEOF_LONG * 2 && *hex <= '7')) {
    4539                 :                 zendlval->value.lval = strtol(hex, NULL, 16);
    4540                 :                 zendlval->type = IS_LONG;
    4541                 :                 return T_LNUMBER;
    4542                 :         } else {
    4543                 :                 zendlval->value.dval = zend_hex_strtod(hex, NULL);
    4544                 :                 zendlval->type = IS_DOUBLE;
    4545                 :                 return T_DNUMBER;
    4546                 :         }
    4547                 : }
    4548                 :         YY_BREAK
    4549                 : case 105:
    4550                 : YY_RULE_SETUP
    4551                 : #line 1281 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4552                 : { /* treat numbers (almost) as strings inside encapsulated strings */
    4553                 :         zendlval->value.str.val = (char *)estrndup(yytext, yyleng);
    4554                 :         zendlval->value.str.len = yyleng;
    4555                 :         zendlval->type = IS_STRING;
    4556                 :         return T_NUM_STRING;
    4557                 : }
    4558                 :         YY_BREAK
    4559                 : case 106:
    4560                 : YY_RULE_SETUP
    4561                 : #line 1288 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4562                 : {
    4563                 :         zendlval->value.dval = zend_strtod(yytext, NULL);
    4564                 :         zendlval->type = IS_DOUBLE;
    4565                 :         return T_DNUMBER;
    4566                 : }
    4567                 :         YY_BREAK
    4568                 : case 107:
    4569                 : YY_RULE_SETUP
    4570                 : #line 1294 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4571                 : {
    4572                 :         char *class_name = NULL;
    4573                 : 
    4574                 :         if (CG(active_class_entry)) {
    4575                 :                 class_name = CG(active_class_entry)->name;
    4576                 :         }
    4577                 : 
    4578                 :         if (!class_name) {
    4579                 :                 class_name = "";
    4580                 :         }
    4581                 :         zendlval->value.str.len = strlen(class_name);
    4582                 :         zendlval->value.str.val = estrndup(class_name, zendlval->value.str.len);
    4583                 :         zendlval->type = IS_STRING;
    4584                 :         return T_CLASS_C;
    4585                 : }
    4586                 :         YY_BREAK
    4587                 : case 108:
    4588                 : YY_RULE_SETUP
    4589                 : #line 1310 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4590                 : {
    4591                 :         char *func_name = NULL;
    4592                 : 
    4593                 :         if (CG(active_op_array)) {
    4594                 :                 func_name = CG(active_op_array)->function_name;
    4595                 :         }
    4596                 : 
    4597                 :         if (!func_name) {
    4598                 :                 func_name = "";
    4599                 :         }
    4600                 :         zendlval->value.str.len = strlen(func_name);
    4601                 :         zendlval->value.str.val = estrndup(func_name, zendlval->value.str.len);
    4602                 :         zendlval->type = IS_STRING;
    4603                 :         return T_FUNC_C;
    4604                 : }
    4605                 :         YY_BREAK
    4606                 : case 109:
    4607                 : YY_RULE_SETUP
    4608                 : #line 1326 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4609                 : {
    4610                 :         char *class_name = CG(active_class_entry) ? CG(active_class_entry)->name : NULL;
    4611                 :         char *func_name = CG(active_op_array)? CG(active_op_array)->function_name : NULL;
    4612                 :         size_t len = 0;
    4613                 : 
    4614                 :         if (class_name) {
    4615                 :                 len += strlen(class_name) + 2;
    4616                 :         }
    4617                 :         if (func_name) {
    4618                 :                 len += strlen(func_name);
    4619                 :         }
    4620                 : 
    4621                 :         zendlval->value.str.len = zend_spprintf(&zendlval->value.str.val, 0, "%s%s%s", 
    4622                 :                 class_name ? class_name : "",
    4623                 :                 class_name && func_name ? "::" : "",
    4624                 :                 func_name ? func_name : ""
    4625                 :                 );
    4626                 :         zendlval->type = IS_STRING;
    4627                 :         return T_METHOD_C;
    4628                 : }
    4629                 :         YY_BREAK
    4630                 : case 110:
    4631                 : YY_RULE_SETUP
    4632                 : #line 1347 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4633                 : {
    4634                 :         zendlval->value.lval = CG(zend_lineno);
    4635                 :         zendlval->type = IS_LONG;
    4636                 :         return T_LINE;
    4637                 : }
    4638                 :         YY_BREAK
    4639                 : case 111:
    4640                 : YY_RULE_SETUP
    4641                 : #line 1353 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4642                 : {
    4643                 :         char *filename = zend_get_compiled_filename(TSRMLS_C);
    4644                 : 
    4645                 :         if (!filename) {
    4646                 :                 filename = "";
    4647                 :         }
    4648                 :         zendlval->value.str.len = strlen(filename);
    4649                 :         zendlval->value.str.val = estrndup(filename, zendlval->value.str.len);
    4650                 :         zendlval->type = IS_STRING;
    4651                 :         return T_FILE;
    4652                 : }
    4653                 :         YY_BREAK
    4654                 : case 112:
    4655                 : YY_RULE_SETUP
    4656                 : #line 1365 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4657                 : {
    4658                 : #ifdef ZEND_MULTIBYTE
    4659                 :         if (SCNG(output_filter)) {
    4660                 :                 int readsize;
    4661                 :                 readsize = SCNG(output_filter)(&(zendlval->value.str.val), &(zendlval->value.str.len), yytext, yyleng TSRMLS_CC);
    4662                 :                 if (readsize < yyleng) {
    4663                 :                         yyless(readsize);
    4664                 :                 }
    4665                 :         } else {
    4666                 :                 zendlval->value.str.val = (char *) estrndup(yytext, yyleng);
    4667                 :                 zendlval->value.str.len = yyleng;
    4668                 :         }
    4669                 : #else /* !ZEND_MULTIBYTE */
    4670                 :         zendlval->value.str.val = (char *) estrndup(yytext, yyleng);
    4671                 :         zendlval->value.str.len = yyleng;
    4672                 : #endif /* ZEND_MULTIBYTE */
    4673                 :         zendlval->type = IS_STRING;
    4674                 :         HANDLE_NEWLINES(yytext, yyleng);
    4675                 :         return T_INLINE_HTML;
    4676                 : }
    4677                 :         YY_BREAK
    4678                 : case 113:
    4679                 : YY_RULE_SETUP
    4680                 : #line 1386 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4681                 : {
    4682                 :         HANDLE_NEWLINES(yytext, yyleng);
    4683                 :         if (CG(short_tags) || yyleng>2) { /* yyleng>2 means it's not <? but <script> */
    4684                 :                 zendlval->value.str.val = yytext; /* no copying - intentional */
    4685                 :                 zendlval->value.str.len = yyleng;
    4686                 :                 zendlval->type = IS_STRING;
    4687                 :                 BEGIN(ST_IN_SCRIPTING);
    4688                 :                 return T_OPEN_TAG;
    4689                 :         } else {
    4690                 :                 zendlval->value.str.val = (char *) estrndup(yytext, yyleng);
    4691                 :                 zendlval->value.str.len = yyleng;
    4692                 :                 zendlval->type = IS_STRING;
    4693                 :                 return T_INLINE_HTML;
    4694                 :         }
    4695                 : }
    4696                 :         YY_BREAK
    4697                 : case 114:
    4698                 : YY_RULE_SETUP
    4699                 : #line 1403 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4700                 : {
    4701                 :         if ((yytext[1]=='%' && CG(asp_tags)) || (yytext[1]=='?' && CG(short_tags))) {
    4702                 :                 zendlval->value.str.val = yytext; /* no copying - intentional */
    4703                 :                 zendlval->value.str.len = yyleng;
    4704                 :                 zendlval->type = IS_STRING;
    4705                 :                 BEGIN(ST_IN_SCRIPTING);
    4706                 :                 return T_OPEN_TAG_WITH_ECHO;
    4707                 :         } else {
    4708                 :                 zendlval->value.str.val = (char *) estrndup(yytext, yyleng);
    4709                 :                 zendlval->value.str.len = yyleng;
    4710                 :                 zendlval->type = IS_STRING;
    4711                 :                 return T_INLINE_HTML;
    4712                 :         }
    4713                 : }
    4714                 :         YY_BREAK
    4715                 : case 115:
    4716                 : YY_RULE_SETUP
    4717                 : #line 1419 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4718                 : {
    4719                 :         if (CG(asp_tags)) {
    4720                 :                 zendlval->value.str.val = yytext; /* no copying - intentional */
    4721                 :                 zendlval->value.str.len = yyleng;
    4722                 :                 zendlval->type = IS_STRING;
    4723                 :                 BEGIN(ST_IN_SCRIPTING);
    4724                 :                 return T_OPEN_TAG;
    4725                 :         } else {
    4726                 :                 zendlval->value.str.val = (char *) estrndup(yytext, yyleng);
    4727                 :                 zendlval->value.str.len = yyleng;
    4728                 :                 zendlval->type = IS_STRING;
    4729                 :                 return T_INLINE_HTML;
    4730                 :         }
    4731                 : }
    4732                 :         YY_BREAK
    4733                 : case 116:
    4734                 : YY_RULE_SETUP
    4735                 : #line 1435 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4736                 : {
    4737                 :         zendlval->value.str.val = yytext; /* no copying - intentional */
    4738                 :         zendlval->value.str.len = yyleng;
    4739                 :         zendlval->type = IS_STRING;
    4740                 :         HANDLE_NEWLINE(yytext[yyleng-1]);
    4741                 :         BEGIN(ST_IN_SCRIPTING);
    4742                 :         return T_OPEN_TAG;
    4743                 : }
    4744                 :         YY_BREAK
    4745                 : case 117:
    4746                 : YY_RULE_SETUP
    4747                 : #line 1444 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4748                 : {
    4749                 :         zend_copy_value(zendlval, (yytext+1), (yyleng-1));
    4750                 :         zendlval->type = IS_STRING;
    4751                 :         return T_VARIABLE;
    4752                 : }
    4753                 :         YY_BREAK
    4754                 : case 118:
    4755                 : YY_RULE_SETUP
    4756                 : #line 1450 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4757                 : {
    4758                 :         zend_copy_value(zendlval, yytext, yyleng);
    4759                 :         zendlval->type = IS_STRING;
    4760                 :         return T_STRING;
    4761                 : }
    4762                 :         YY_BREAK
    4763                 : case 119:
    4764                 : YY_RULE_SETUP
    4765                 : #line 1456 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4766                 : {
    4767                 :         zend_copy_value(zendlval, yytext, yyleng);
    4768                 :         zendlval->type = IS_STRING;
    4769                 :         return T_STRING;
    4770                 : }
    4771                 :         YY_BREAK
    4772                 : case 120:
    4773                 : YY_RULE_SETUP
    4774                 : #line 1463 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4775                 : {
    4776                 :         zendlval->value.str.val = yytext; /* no copying - intentional */
    4777                 :         zendlval->value.str.len = yyleng;
    4778                 :         zendlval->type = IS_STRING;
    4779                 :         HANDLE_NEWLINES(yytext, yyleng);
    4780                 :         return T_WHITESPACE;
    4781                 : }
    4782                 :         YY_BREAK
    4783                 : case 121:
    4784                 : YY_RULE_SETUP
    4785                 : #line 1472 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4786                 : {
    4787                 :         BEGIN(ST_ONE_LINE_COMMENT);
    4788                 :         yymore();
    4789                 : }
    4790                 :         YY_BREAK
    4791                 : case 122:
    4792                 : YY_RULE_SETUP
    4793                 : #line 1477 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4794                 : {
    4795                 :         yymore();
    4796                 : }
    4797                 :         YY_BREAK
    4798                 : case 123:
    4799                 : YY_RULE_SETUP
    4800                 : #line 1481 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4801                 : {
    4802                 :         switch (yytext[yyleng-1]) {
    4803                 :                 case '?': case '%': case '>':
    4804                 :                         yyless(yyleng-1);
    4805                 :                         yymore();
    4806                 :                         break;
    4807                 :                 case '\n':
    4808                 :                         CG(zend_lineno)++;
    4809                 :                         /* intentional fall through */
    4810                 :                 default:
    4811                 :                         zendlval->value.str.val = yytext; /* no copying - intentional */
    4812                 :                         zendlval->value.str.len = yyleng;
    4813                 :                         zendlval->type = IS_STRING;
    4814                 :                         BEGIN(ST_IN_SCRIPTING);
    4815                 :                         return T_COMMENT;
    4816                 :         }
    4817                 : }
    4818                 :         YY_BREAK
    4819                 : case 124:
    4820                 : YY_RULE_SETUP
    4821                 : #line 1499 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4822                 : {
    4823                 :         zendlval->value.str.val = yytext; /* no copying - intentional */
    4824                 :         zendlval->value.str.len = yyleng;
    4825                 :         zendlval->type = IS_STRING;
    4826                 :         BEGIN(ST_IN_SCRIPTING);
    4827                 :         CG(zend_lineno)++;
    4828                 :         return T_COMMENT;
    4829                 : }
    4830                 :         YY_BREAK
    4831                 : case 125:
    4832                 : YY_RULE_SETUP
    4833                 : #line 1508 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4834                 : {
    4835                 :     if (CG(asp_tags) || yytext[yyleng-2] != '%') { /* asp comment? */
    4836                 :                 zendlval->value.str.val = yytext; /* no copying - intentional */
    4837                 :                 zendlval->value.str.len = yyleng-2;
    4838                 :                 zendlval->type = IS_STRING;
    4839                 :                 yyless(yyleng-2);
    4840                 :                 BEGIN(ST_IN_SCRIPTING);
    4841                 :                 return T_COMMENT;
    4842                 :         } else {
    4843                 :                 yymore();
    4844                 :         }
    4845                 : }
    4846                 :         YY_BREAK
    4847                 : case 126:
    4848                 : YY_RULE_SETUP
    4849                 : #line 1521 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4850                 : {
    4851                 :         CG(comment_start_line) = CG(zend_lineno);
    4852                 :         RESET_DOC_COMMENT();
    4853                 :         BEGIN(ST_DOC_COMMENT);
    4854                 :         yymore();
    4855                 : }
    4856                 :         YY_BREAK
    4857                 : case 127:
    4858                 : YY_RULE_SETUP
    4859                 : #line 1528 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4860                 : {
    4861                 :         CG(comment_start_line) = CG(zend_lineno);
    4862                 :         BEGIN(ST_COMMENT);
    4863                 :         yymore();
    4864                 : }
    4865                 :         YY_BREAK
    4866                 : case 128:
    4867                 : YY_RULE_SETUP
    4868                 : #line 1535 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4869                 : {
    4870                 :         yymore();
    4871                 : }
    4872                 :         YY_BREAK
    4873                 : case 129:
    4874                 : YY_RULE_SETUP
    4875                 : #line 1539 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4876                 : {
    4877                 :         CG(doc_comment) = estrndup(yytext, yyleng);
    4878                 :         CG(doc_comment_len) = yyleng;
    4879                 :         HANDLE_NEWLINES(yytext, yyleng);
    4880                 :         BEGIN(ST_IN_SCRIPTING);
    4881                 :         return T_DOC_COMMENT;
    4882                 : }
    4883                 :         YY_BREAK
    4884                 : case 130:
    4885                 : YY_RULE_SETUP
    4886                 : #line 1547 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4887                 : {
    4888                 :         HANDLE_NEWLINES(yytext, yyleng);
    4889                 :         BEGIN(ST_IN_SCRIPTING);
    4890                 :         return T_COMMENT;
    4891                 : }
    4892                 :         YY_BREAK
    4893                 : case 131:
    4894                 : YY_RULE_SETUP
    4895                 : #line 1553 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4896                 : {
    4897                 :         yymore();
    4898                 : }
    4899                 :         YY_BREAK
    4900                 : case 132:
    4901                 : YY_RULE_SETUP
    4902                 : #line 1557 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4903                 : {
    4904                 :         zendlval->value.str.val = yytext; /* no copying - intentional */
    4905                 :         zendlval->value.str.len = yyleng;
    4906                 :         zendlval->type = IS_STRING;
    4907                 :         BEGIN(INITIAL);
    4908                 :         return T_CLOSE_TAG;  /* implicit ';' at php-end tag */
    4909                 : }
    4910                 :         YY_BREAK
    4911                 : case 133:
    4912                 : YY_RULE_SETUP
    4913                 : #line 1566 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4914                 : {
    4915                 :         if (CG(asp_tags)) {
    4916                 :                 BEGIN(INITIAL);
    4917                 :                 zendlval->value.str.len = yyleng;
    4918                 :                 zendlval->type = IS_STRING;
    4919                 :                 zendlval->value.str.val = yytext; /* no copying - intentional */
    4920                 :                 return T_CLOSE_TAG;  /* implicit ';' at php-end tag */
    4921                 :         } else {
    4922                 :                 yyless(1);
    4923                 :                 return yytext[0];
    4924                 :         }
    4925                 : }
    4926                 :         YY_BREAK
    4927                 : case 134:
    4928                 : YY_RULE_SETUP
    4929                 : #line 1580 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    4930                 : {
    4931                 :         register char *s, *t;
    4932                 :         char *end;
    4933                 :         int bprefix = (*yytext == 'b') ? 1 : 0;
    4934                 : 
    4935                 :         zendlval->value.str.val = estrndup(yytext+bprefix+1, yyleng-bprefix-2);
    4936                 :         zendlval->value.str.len = yyleng-bprefix-2;
    4937                 :         zendlval->type = IS_STRING;
    4938                 :         HANDLE_NEWLINES(yytext, yyleng);
    4939                 : 
    4940                 :         /* convert escape sequences */
    4941                 :         s = t = zendlval->value.str.val;
    4942                 :         end = s+zendlval->value.str.len;
    4943                 :         while (s<end) {
    4944                 :                 if (*s=='\\') {
    4945                 :                         s++;
    4946                 :                         if (s>=end) {
    4947                 :                                 continue;
    4948                 :                         }
    4949                 :                         switch(*s) {
    4950                 :                                 case 'n':
    4951                 :                                         *t++ = '\n';
    4952                 :                                         zendlval->value.str.len--;
    4953                 :                                         break;
    4954                 :                                 case 'r':
    4955                 :                                         *t++ = '\r';
    4956                 :                                         zendlval->value.str.len--;
    4957                 :                                         break;
    4958                 :                                 case 't':
    4959                 :                                         *t++ = '\t';
    4960                 :                                         zendlval->value.str.len--;
    4961                 :                                         break;
    4962                 :                                 case '\\':
    4963                 :                                 case '$':
    4964                 :                                 case '"':
    4965                 :                                         *t++ = *s;
    4966                 :                                         zendlval->value.str.len--;
    4967                 :                                         break;
    4968                 :                                 default:
    4969                 :                                         /* check for an octal */
    4970                 :                                         if (ZEND_IS_OCT(*s)) {
    4971                 :                                                 char octal_buf[4] = { 0, 0, 0, 0 };
    4972                 : 
    4973                 :                                                 octal_buf[0] = *s;
    4974                 :                                                 zendlval->value.str.len--;
    4975                 :                                                 if ((s+1)<end && ZEND_IS_OCT(*(s+1))) {
    4976                 :                                                         octal_buf[1] = *(++s);
    4977                 :                                                         zendlval->value.str.len--;
    4978                 :                                                         if ((s+1)<end && ZEND_IS_OCT(*(s+1))) {
    4979                 :                                                                 octal_buf[2] = *(++s);
    4980                 :                                                                 zendlval->value.str.len--;
    4981                 :                                                         }
    4982                 :                                                 }
    4983                 :                                                 *t++ = (char) strtol(octal_buf, NULL, 8);
    4984                 :                                         } else if (*s=='x' && (s+1)<end && ZEND_IS_HEX(*(s+1))) {
    4985                 :                                                 char hex_buf[3] = { 0, 0, 0};
    4986                 : 
    4987                 :                                                 zendlval->value.str.len--; /* for the 'x' */
    4988                 : 
    4989                 :                                                 hex_buf[0] = *(++s);
    4990                 :                                                 zendlval->value.str.len--;
    4991                 :                                                 if ((s+1)<end && ZEND_IS_HEX(*(s+1))) {
    4992                 :                                                         hex_buf[1] = *(++s);
    4993                 :                                                         zendlval->value.str.len--;
    4994                 :                                                 }
    4995                 :                                                 *t++ = (char) strtol(hex_buf, NULL, 16);
    4996                 :                                         } else {
    4997                 :                                                 *t++ = '\\';
    4998                 :                                                 *t++ = *s;
    4999                 :                                         }
    5000                 :                                         break;
    5001                 :                         }
    5002                 :                         s++;
    5003                 :                 } else {
    5004                 :                         *t++ = *s++;
    5005                 :                 }
    5006                 :         }
    5007                 :         *t = 0;
    5008                 : 
    5009                 : #ifdef ZEND_MULTIBYTE
    5010                 :         if (SCNG(output_filter)) {
    5011                 :                 s = zendlval->value.str.val;
    5012                 :                 SCNG(output_filter)(&(zendlval->value.str.val), &(zendlval->value.str.len), s, zendlval->value.str.len TSRMLS_CC);
    5013                 :                 efree(s);
    5014                 :         }
    5015                 : #endif /* ZEND_MULTIBYTE */
    5016                 : 
    5017                 :         return T_CONSTANT_ENCAPSED_STRING;
    5018                 : }
    5019                 :         YY_BREAK
    5020                 : case 135:
    5021                 : YY_RULE_SETUP
    5022                 : #line 1671 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    5023                 : {
    5024                 :         register char *s, *t;
    5025                 :         char *end;
    5026                 :         int bprefix = (*yytext == 'b') ? 1 : 0;
    5027                 : 
    5028                 :         zendlval->value.str.val = estrndup(yytext+bprefix+1, yyleng-bprefix-2);
    5029                 :         zendlval->value.str.len = yyleng-bprefix-2;
    5030                 :         zendlval->type = IS_STRING;
    5031                 :         HANDLE_NEWLINES(yytext, yyleng);
    5032                 : 
    5033                 :         /* convert escape sequences */
    5034                 :         s = t = zendlval->value.str.val;
    5035                 :         end = s+zendlval->value.str.len;
    5036                 :         while (s<end) {
    5037                 :                 if (*s=='\\') {
    5038                 :                         s++;
    5039                 :                         if (s>=end) {
    5040                 :                                 continue;
    5041                 :                         }
    5042                 :                         switch(*s) {
    5043                 :                                 case '\\':
    5044                 :                                 case '\'':
    5045                 :                                         *t++ = *s;
    5046                 :                                         zendlval->value.str.len--;
    5047                 :                                         break;
    5048                 :                                 default:
    5049                 :                                         *t++ = '\\';
    5050                 :                                         *t++ = *s;
    5051                 :                                         break;
    5052                 :                         }
    5053                 :                         s++;
    5054                 :                 } else {
    5055                 :                         *t++ = *s++;
    5056                 :                 }
    5057                 :         }
    5058                 :         *t = 0;
    5059                 : 
    5060                 : #ifdef ZEND_MULTIBYTE
    5061                 :         if (SCNG(output_filter)) {
    5062                 :                 s = zendlval->value.str.val;
    5063                 :                 SCNG(output_filter)(&(zendlval->value.str.val), &(zendlval->value.str.len), s, zendlval->value.str.len TSRMLS_CC);
    5064                 :                 efree(s);
    5065                 :         }
    5066                 : #endif /* ZEND_MULTIBYTE */
    5067                 : 
    5068                 :         return T_CONSTANT_ENCAPSED_STRING;
    5069                 : }
    5070                 :         YY_BREAK
    5071                 : case 136:
    5072                 : YY_RULE_SETUP
    5073                 : #line 1720 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    5074                 : {
    5075                 :         BEGIN(ST_DOUBLE_QUOTES);
    5076                 :         return '\"';
    5077                 : }
    5078                 :         YY_BREAK
    5079                 : case 137:
    5080                 : YY_RULE_SETUP
    5081                 : #line 1726 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    5082                 : {
    5083                 :         char *s;
    5084                 :         int bprefix = (*yytext == 'b') ? 1 : 0;
    5085                 : 
    5086                 :         CG(zend_lineno)++;
    5087                 :         CG(heredoc_len) = yyleng-bprefix-3-1-(yytext[yyleng-2]=='\r'?1:0);
    5088                 :         s = yytext+bprefix+3;
    5089                 :         while ((*s == ' ') || (*s == '\t')) {
    5090                 :                 s++;
    5091                 :                 CG(heredoc_len)--;
    5092                 :         }
    5093                 :         CG(heredoc) = estrndup(s, CG(heredoc_len));
    5094                 :         BEGIN(ST_HEREDOC);
    5095                 :         return T_START_HEREDOC;
    5096                 : }
    5097                 :         YY_BREAK
    5098                 : case 138:
    5099                 : YY_RULE_SETUP
    5100                 : #line 1743 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    5101                 : {
    5102                 :         BEGIN(ST_BACKQUOTE);
    5103                 :         return '`';
    5104                 : }
    5105                 :         YY_BREAK
    5106                 : case 139:
    5107                 : YY_RULE_SETUP
    5108                 : #line 1749 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    5109                 : {
    5110                 :         BEGIN(ST_SINGLE_QUOTE);
    5111                 :         return '\'';
    5112                 : }
    5113                 :         YY_BREAK
    5114                 : case 140:
    5115                 : YY_RULE_SETUP
    5116                 : #line 1755 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    5117                 : {
    5118                 :         int label_len;
    5119                 : 
    5120                 :         if (yytext[yyleng-2]=='\r') {
    5121                 :                 label_len = yyleng-2;
    5122                 :         } else {
    5123                 :                 label_len = yyleng-1;
    5124                 :         }
    5125                 : 
    5126                 :         if (yytext[label_len-1]==';') {
    5127                 :                 label_len--;
    5128                 :         }
    5129                 : 
    5130                 :         if (label_len==CG(heredoc_len) && !memcmp(yytext, CG(heredoc), label_len)) {
    5131                 :                 zendlval->value.str.val = estrndup(yytext, label_len); /* unput destroys yytext */
    5132                 :                 zendlval->value.str.len = label_len;
    5133                 :                 yyless(yyleng - (yyleng - label_len));
    5134                 :                 efree(CG(heredoc));
    5135                 :                 CG(heredoc)=NULL;
    5136                 :                 CG(heredoc_len)=0;
    5137                 :                 BEGIN(ST_IN_SCRIPTING);
    5138                 :                 return T_END_HEREDOC;
    5139                 :         } else {
    5140                 :                 CG(zend_lineno)++;
    5141                 :                 zend_copy_value(zendlval, yytext, yyleng);
    5142                 :                 zendlval->type = IS_STRING;
    5143                 :                 return T_STRING;
    5144                 :         }
    5145                 : }
    5146                 :         YY_BREAK
    5147                 : case 141:
    5148                 : YY_RULE_SETUP
    5149                 : #line 1786 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    5150                 : {
    5151                 :         HANDLE_NEWLINES(yytext, yyleng);
    5152                 :         zendlval->value.str.val = (char *) estrndup(yytext, yyleng);
    5153                 :         zendlval->value.str.len = yyleng;
    5154                 :         zendlval->type = IS_STRING;
    5155                 :         return T_ENCAPSED_AND_WHITESPACE;
    5156                 : }
    5157                 :         YY_BREAK
    5158                 : case 142:
    5159                 : YY_RULE_SETUP
    5160                 : #line 1794 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    5161                 : {
    5162                 :         HANDLE_NEWLINES(yytext, yyleng);
    5163                 :         zend_copy_value(zendlval, yytext, yyleng);
    5164                 :         zendlval->type = IS_STRING;
    5165                 :         return T_ENCAPSED_AND_WHITESPACE;
    5166                 : }
    5167                 :         YY_BREAK
    5168                 : case 143:
    5169                 : YY_RULE_SETUP
    5170                 : #line 1802 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    5171                 : {
    5172                 :         zend_copy_value(zendlval, yytext, yyleng);
    5173                 :         zendlval->type = IS_STRING;
    5174                 :         return T_ENCAPSED_AND_WHITESPACE;
    5175                 : }
    5176                 :         YY_BREAK
    5177                 : case 144:
    5178                 : YY_RULE_SETUP
    5179                 : #line 1809 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    5180                 : {
    5181                 :         zend_copy_value(zendlval, yytext, yyleng);
    5182                 :         zendlval->type = IS_STRING;
    5183                 :         return T_ENCAPSED_AND_WHITESPACE;
    5184                 : }
    5185                 :         YY_BREAK
    5186                 : case 145:
    5187                 : YY_RULE_SETUP
    5188                 : #line 1816 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    5189                 : {
    5190                 :         zendlval->value.lval = (long) yytext[0];
    5191                 :         if (yyleng == 2) {
    5192                 :                 yyless(1);
    5193                 :         }
    5194                 :         return T_CHARACTER;
    5195                 : }
    5196                 :         YY_BREAK
    5197                 : case 146:
    5198                 : YY_RULE_SETUP
    5199                 : #line 1825 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    5200                 : {
    5201                 :         zendlval->value.lval = (long) yytext[0];
    5202                 :         return yytext[0];
    5203                 : }
    5204                 :         YY_BREAK
    5205                 : case 147:
    5206                 : YY_RULE_SETUP
    5207                 : #line 1830 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    5208                 : {
    5209                 :         zendlval->value.str.val = estrndup("\\{", sizeof("\\{") - 1);
    5210                 :         zendlval->value.str.len = sizeof("\\{") - 1;
    5211                 :         zendlval->type = IS_STRING;
    5212                 :         return T_STRING;
    5213                 : }
    5214                 :         YY_BREAK
    5215                 : case 148:
    5216                 : YY_RULE_SETUP
    5217                 : #line 1837 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    5218                 : {
    5219                 :         zendlval->value.lval = (long) yytext[0];
    5220                 :         yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
    5221                 :         yyless(1);
    5222                 :         return T_CURLY_OPEN;
    5223                 : }
    5224                 :         YY_BREAK
    5225                 : case 149:
    5226                 : YY_RULE_SETUP
    5227                 : #line 1845 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    5228                 : {
    5229                 :         zendlval->value.lval = (long) '\'';
    5230                 :         return T_CHARACTER;
    5231                 : }
    5232                 :         YY_BREAK
    5233                 : case 150:
    5234                 : YY_RULE_SETUP
    5235                 : #line 1850 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    5236                 : {
    5237                 :         zendlval->value.lval = (long)'\\';
    5238                 :         return T_CHARACTER;
    5239                 : }
    5240                 :         YY_BREAK
    5241                 : case 151:
    5242                 : YY_RULE_SETUP
    5243                 : #line 1855 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    5244                 : {
    5245                 :         zendlval->value.lval = (long) '"';
    5246                 :         return T_CHARACTER;
    5247                 : }
    5248                 :         YY_BREAK
    5249                 : case 152:
    5250                 : YY_RULE_SETUP
    5251                 : #line 1860 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    5252                 : {
    5253                 :         zendlval->value.lval = (long) '`';
    5254                 :         return T_CHARACTER;
    5255                 : }
    5256                 :         YY_BREAK
    5257                 : case 153:
    5258                 : YY_RULE_SETUP
    5259                 : #line 1865 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    5260                 : {
    5261                 :         zendlval->value.lval = strtol(yytext+1, NULL, 8);
    5262                 :         return T_CHARACTER;
    5263                 : }
    5264                 :         YY_BREAK
    5265                 : case 154:
    5266                 : YY_RULE_SETUP
    5267                 : #line 1870 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    5268                 : {
    5269                 :         zendlval->value.lval = strtol (yytext+2, NULL, 16);
    5270                 :         return T_CHARACTER;
    5271                 : }
    5272                 :         YY_BREAK
    5273                 : case 155:
    5274                 : YY_RULE_SETUP
    5275                 : #line 1875 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    5276                 : {
    5277                 :         switch (yytext[1]) {
    5278                 :                 case 'n':
    5279                 :                         zendlval->value.lval = (long) '\n';
    5280                 :                         break;
    5281                 :                 case 't':
    5282                 :                         zendlval->value.lval = (long) '\t';
    5283                 :                         break;
    5284                 :                 case 'r':
    5285                 :                         zendlval->value.lval = (long) '\r';
    5286                 :                         break;
    5287                 :                 case '\\':
    5288                 :                         zendlval->value.lval = (long) '\\';
    5289                 :                         break;
    5290                 :                 case '$':
    5291                 :                         zendlval->value.lval = (long) yytext[1];
    5292                 :                         break;
    5293                 :                 default:
    5294                 :                         zendlval->value.str.val = estrndup(yytext, yyleng);
    5295                 :                         zendlval->value.str.len = yyleng;
    5296                 :                         zendlval->type = IS_STRING;
    5297                 :                         return T_BAD_CHARACTER;
    5298                 :                         break;
    5299                 :         }
    5300                 :         return T_CHARACTER;
    5301                 : }
    5302                 :         YY_BREAK
    5303                 : case 156:
    5304                 : YY_RULE_SETUP
    5305                 : #line 1903 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    5306                 : {
    5307                 :         zendlval->value.str.val = (char *) estrndup(yytext, yyleng);
    5308                 :         zendlval->value.str.len = yyleng;
    5309                 :         zendlval->type = IS_STRING;
    5310                 :         return T_ENCAPSED_AND_WHITESPACE;
    5311                 : }
    5312                 :         YY_BREAK
    5313                 : case 157:
    5314                 : YY_RULE_SETUP
    5315                 : #line 1911 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    5316                 : {
    5317                 :         BEGIN(ST_IN_SCRIPTING);
    5318                 :         return '\"';
    5319                 : }
    5320                 :         YY_BREAK
    5321                 : case 158:
    5322                 : YY_RULE_SETUP
    5323                 : #line 1917 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    5324                 : {
    5325                 :         BEGIN(ST_IN_SCRIPTING);
    5326                 :         return '`';
    5327                 : }
    5328                 :         YY_BREAK
    5329                 : case 159:
    5330                 : YY_RULE_SETUP
    5331                 : #line 1923 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    5332                 : {
    5333                 :         BEGIN(ST_IN_SCRIPTING);
    5334                 :         return '\'';
    5335                 : }
    5336                 :         YY_BREAK
    5337                 : case YY_STATE_EOF(ST_DOUBLE_QUOTES):
    5338                 : case YY_STATE_EOF(ST_BACKQUOTE):
    5339                 : case YY_STATE_EOF(INITIAL):
    5340                 : case YY_STATE_EOF(ST_IN_SCRIPTING):
    5341                 : case YY_STATE_EOF(ST_LOOKING_FOR_PROPERTY):
    5342                 : #line 1929 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    5343                 : {
    5344                 :         return 0;
    5345                 : }
    5346                 :         YY_BREAK
    5347                 : case YY_STATE_EOF(ST_COMMENT):
    5348                 : case YY_STATE_EOF(ST_DOC_COMMENT):
    5349                 : #line 1933 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    5350                 : {
    5351                 :         zend_error(E_COMPILE_WARNING,"Unterminated comment starting line %d", CG(comment_start_line));
    5352                 :         return 0;
    5353                 : }
    5354                 :         YY_BREAK
    5355                 : case 160:
    5356                 : YY_RULE_SETUP
    5357                 : #line 1940 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    5358                 : {
    5359                 :         zend_error(E_COMPILE_WARNING,"Unexpected character in input:  '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE);
    5360                 : }
    5361                 :         YY_BREAK
    5362                 : case 161:
    5363                 : YY_RULE_SETUP
    5364                 : #line 1943 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"
    5365                 : ECHO;
    5366                 :         YY_BREAK
    5367                 : #line 5368 "Zend/zend_language_scanner.c"
    5368                 : case YY_STATE_EOF(ST_SINGLE_QUOTE):
    5369                 : case YY_STATE_EOF(ST_HEREDOC):
    5370                 : case YY_STATE_EOF(ST_LOOKING_FOR_VARNAME):
    5371                 : case YY_STATE_EOF(ST_ONE_LINE_COMMENT):
    5372               0 :         yyterminate();
    5373                 : 
    5374                 :         case YY_END_OF_BUFFER:
    5375                 :                 {
    5376                 :                 /* Amount of text matched not including the EOB char. */
    5377             687 :                 int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
    5378                 : 
    5379                 :                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
    5380             687 :                 *yy_cp = yy_hold_char;
    5381                 : 
    5382             687 :                 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
    5383                 :                         {
    5384                 :                         /* We're scanning a new file or input source.  It's
    5385                 :                          * possible that this happened because the user
    5386                 :                          * just pointed yyin at a new source and called
    5387                 :                          * yylex().  If so, then we have to assure
    5388                 :                          * consistency between yy_current_buffer and our
    5389                 :                          * globals.  Here is the right place to do so, because
    5390                 :                          * this is the first action (other than possibly a
    5391                 :                          * back-up) that will match for the new input source.
    5392                 :                          */
    5393             335 :                         SCNG(yy_n_chars) = yy_current_buffer->yy_n_chars;
    5394             335 :                         yy_current_buffer->yy_input_file = SCNG(yy_in);
    5395             335 :                         yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
    5396                 :                         }
    5397                 : 
    5398                 :                 /* Note that here we test for yy_c_buf_p "<=" to the position
    5399                 :                  * of the first EOB in the buffer, since yy_c_buf_p will
    5400                 :                  * already have been incremented past the NUL character
    5401                 :                  * (since all states make transitions on EOB to the
    5402                 :                  * end-of-buffer state).  Contrast this with the test
    5403                 :                  * in input().
    5404                 :                  */
    5405             687 :                 if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[SCNG(yy_n_chars)] )
    5406                 :                         { /* This was really a NUL. */
    5407                 :                         yy_state_type yy_next_state;
    5408                 : 
    5409               0 :                         yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
    5410                 : 
    5411               0 :                         yy_current_state = yy_get_previous_state(TSRMLS_C);
    5412                 : 
    5413                 :                         /* Okay, we're now positioned to make the NUL
    5414                 :                          * transition.  We couldn't have
    5415                 :                          * yy_get_previous_state() go ahead and do it
    5416                 :                          * for us because it doesn't know how to deal
    5417                 :                          * with the possibility of jamming (and we don't
    5418                 :                          * want to build jamming into it because then it
    5419                 :                          * will run more slowly).
    5420                 :                          */
    5421                 : 
    5422               0 :                         yy_next_state = yy_try_NUL_trans( yy_current_state TSRMLS_CC );
    5423                 : 
    5424               0 :                         yy_bp = yytext_ptr + YY_MORE_ADJ;
    5425                 : 
    5426               0 :                         if ( yy_next_state )
    5427                 :                                 {
    5428                 :                                 /* Consume the NUL. */
    5429               0 :                                 yy_cp = ++yy_c_buf_p;
    5430               0 :                                 yy_current_state = yy_next_state;
    5431               0 :                                 goto yy_match;
    5432                 :                                 }
    5433                 : 
    5434                 :                         else
    5435                 :                                 {
    5436               0 :                                 yy_cp = yy_c_buf_p;
    5437               0 :                                 goto yy_find_action;
    5438                 :                                 }
    5439                 :                         }
    5440                 : 
    5441             687 :                 else switch ( yy_get_next_buffer(TSRMLS_C) )
    5442                 :                         {
    5443                 :                         case EOB_ACT_END_OF_FILE:
    5444                 :                                 {
    5445             335 :                                 yy_did_buffer_switch_on_eof = 0;
    5446                 : 
    5447                 :                                 if ( yywrap() )
    5448                 :                                         {
    5449                 :                                         /* Note: because we've taken care in
    5450                 :                                          * yy_get_next_buffer() to have set up
    5451                 :                                          * yytext, we can now set up
    5452                 :                                          * yy_c_buf_p so that if some total
    5453                 :                                          * hoser (like flex itself) wants to
    5454                 :                                          * call the scanner after we return the
    5455                 :                                          * YY_NULL, it'll still work - another
    5456                 :                                          * YY_NULL will get returned.
    5457                 :                                          */
    5458             335 :                                         yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
    5459                 : 
    5460             335 :                                         yy_act = YY_STATE_EOF(YY_START);
    5461             335 :                                         goto do_action;
    5462                 :                                         }
    5463                 : 
    5464                 :                                 else
    5465                 :                                         {
    5466                 :                                         if ( ! yy_did_buffer_switch_on_eof )
    5467                 :                                                 YY_NEW_FILE;
    5468                 :                                         }
    5469                 :                                 break;
    5470                 :                                 }
    5471                 : 
    5472                 :                         case EOB_ACT_CONTINUE_SCAN:
    5473             341 :                                 yy_c_buf_p =
    5474                 :                                         yytext_ptr + yy_amount_of_matched_text;
    5475                 : 
    5476             341 :                                 yy_current_state = yy_get_previous_state(TSRMLS_C);
    5477                 : 
    5478             341 :                                 yy_cp = yy_c_buf_p;
    5479             341 :                                 yy_bp = yytext_ptr + YY_MORE_ADJ;
    5480             341 :                                 goto yy_match;
    5481                 : 
    5482                 :                         case EOB_ACT_LAST_MATCH:
    5483              11 :                                 yy_c_buf_p =
    5484                 :                                 &yy_current_buffer->yy_ch_buf[SCNG(yy_n_chars)];
    5485                 : 
    5486              11 :                                 yy_current_state = yy_get_previous_state(TSRMLS_C);
    5487                 : 
    5488              11 :                                 yy_cp = yy_c_buf_p;
    5489              11 :                                 yy_bp = yytext_ptr + YY_MORE_ADJ;
    5490              11 :                                 goto yy_find_action;
    5491                 :                         }
    5492               0 :                 break;
    5493                 :                 }
    5494                 : 
    5495                 :         default:
    5496               0 :                 YY_FATAL_ERROR(
    5497                 :                         "fatal flex scanner internal error--no action found" );
    5498                 :         } /* end of action switch */
    5499             143 :                 } /* end of scanning one token */
    5500                 :         } /* end of yylex */
    5501                 : 
    5502                 : 
    5503                 : /* yy_get_next_buffer - try to read in a new buffer
    5504                 :  *
    5505                 :  * Returns a code representing an action:
    5506                 :  *      EOB_ACT_LAST_MATCH -
    5507                 :  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
    5508                 :  *      EOB_ACT_END_OF_FILE - end of file
    5509                 :  */
    5510                 : 
    5511                 : static int yy_get_next_buffer(TSRMLS_D)
    5512             687 :         {
    5513             687 :         register char *dest = yy_current_buffer->yy_ch_buf;
    5514             687 :         register char *source = yytext_ptr;
    5515                 :         register int number_to_move, i;
    5516                 :         int ret_val;
    5517                 : 
    5518             687 :         if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[SCNG(yy_n_chars) + 1] )
    5519               0 :                 YY_FATAL_ERROR(
    5520                 :                 "fatal flex scanner internal error--end of buffer missed" );
    5521                 : 
    5522             687 :         if ( yy_current_buffer->yy_fill_buffer == 0 )
    5523                 :                 { /* Don't try to fill the buffer, so this is an EOF. */
    5524               0 :                 if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
    5525                 :                         {
    5526                 :                         /* We matched a single character, the EOB, so
    5527                 :                          * treat this as a final EOF.
    5528                 :                          */
    5529               0 :                         return EOB_ACT_END_OF_FILE;
    5530                 :                         }
    5531                 : 
    5532                 :                 else
    5533                 :                         {
    5534                 :                         /* We matched some text prior to the EOB, first
    5535                 :                          * process it.
    5536                 :                          */
    5537               0 :                         return EOB_ACT_LAST_MATCH;
    5538                 :                         }
    5539                 :                 }
    5540                 : 
    5541                 :         /* Try to read more data. */
    5542                 : 
    5543                 :         /* First move last chars to start of buffer. */
    5544             687 :         number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
    5545                 : 
    5546             749 :         for ( i = 0; i < number_to_move; ++i )
    5547              62 :                 *(dest++) = *(source++);
    5548                 : 
    5549             687 :         if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
    5550                 :                 /* don't do the read, it's not guaranteed to return an EOF,
    5551                 :                  * just force an EOF
    5552                 :                  */
    5553              11 :                 yy_current_buffer->yy_n_chars = SCNG(yy_n_chars) = 0;
    5554                 : 
    5555                 :         else
    5556                 :                 {
    5557                 :                 int num_to_read =
    5558             676 :                         yy_current_buffer->yy_buf_size - number_to_move - 1;
    5559                 : 
    5560            1352 :                 while ( num_to_read <= 0 )
    5561                 :                         { /* Not enough room in the buffer - grow it. */
    5562                 : #ifdef YY_USES_REJECT
    5563                 :                         YY_FATAL_ERROR(
    5564                 : "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
    5565                 : #else
    5566                 : 
    5567                 :                         /* just a shorter name for the current buffer */
    5568               0 :                         YY_BUFFER_STATE b = yy_current_buffer;
    5569                 : 
    5570                 :                         int yy_c_buf_p_offset =
    5571               0 :                                 (int) (yy_c_buf_p - b->yy_ch_buf);
    5572                 : 
    5573               0 :                         if ( b->yy_is_our_buffer )
    5574                 :                                 {
    5575               0 :                                 int new_size = b->yy_buf_size * 2;
    5576                 : 
    5577               0 :                                 if ( new_size <= 0 )
    5578               0 :                                         b->yy_buf_size += b->yy_buf_size / 8;
    5579                 :                                 else
    5580               0 :                                         b->yy_buf_size *= 2;
    5581                 : 
    5582               0 :                                 b->yy_ch_buf = (char *)
    5583                 :                                         /* Include room in for 2 EOB chars. */
    5584                 :                                         yy_flex_realloc( (void *) b->yy_ch_buf,
    5585                 :                                                          b->yy_buf_size + 2 );
    5586                 :                                 }
    5587                 :                         else
    5588                 :                                 /* Can't grow it, we don't own it. */
    5589               0 :                                 b->yy_ch_buf = 0;
    5590                 : 
    5591               0 :                         if ( ! b->yy_ch_buf )
    5592               0 :                                 YY_FATAL_ERROR(
    5593                 :                                 "fatal error - scanner input buffer overflow" );
    5594                 : 
    5595               0 :                         yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
    5596                 : 
    5597               0 :                         num_to_read = yy_current_buffer->yy_buf_size -
    5598                 :                                                 number_to_move - 1;
    5599                 : #endif
    5600                 :                         }
    5601                 : 
    5602             676 :                 if ( num_to_read > YY_READ_BUF_SIZE )
    5603             676 :                         num_to_read = YY_READ_BUF_SIZE;
    5604                 : 
    5605                 :                 /* Read in more data. */
    5606             676 :                 YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
    5607                 :                         SCNG(yy_n_chars), num_to_read );
    5608                 : 
    5609             676 :                 yy_current_buffer->yy_n_chars = SCNG(yy_n_chars);
    5610                 :                 }
    5611                 : 
    5612             687 :         if ( SCNG(yy_n_chars) == 0 )
    5613                 :                 {
    5614             346 :                 if ( number_to_move == YY_MORE_ADJ )
    5615                 :                         {
    5616             335 :                         ret_val = EOB_ACT_END_OF_FILE;
    5617             335 :                         yyrestart( SCNG(yy_in) TSRMLS_CC );
    5618                 :                         }
    5619                 : 
    5620                 :                 else
    5621                 :                         {
    5622              11 :                         ret_val = EOB_ACT_LAST_MATCH;
    5623              11 :                         yy_current_buffer->yy_buffer_status =
    5624                 :                                 YY_BUFFER_EOF_PENDING;
    5625                 :                         }
    5626                 :                 }
    5627                 : 
    5628                 :         else
    5629             341 :                 ret_val = EOB_ACT_CONTINUE_SCAN;
    5630                 : 
    5631             687 :         SCNG(yy_n_chars) += number_to_move;
    5632             687 :         yy_current_buffer->yy_ch_buf[SCNG(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
    5633             687 :         yy_current_buffer->yy_ch_buf[SCNG(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
    5634                 : 
    5635             687 :         yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
    5636                 : 
    5637             687 :         return ret_val;
    5638                 :         }
    5639                 : 
    5640                 : 
    5641                 : /* yy_get_previous_state - get the state just before the EOB char was reached */
    5642                 : 
    5643                 : static yy_state_type yy_get_previous_state(TSRMLS_D)
    5644             352 :         {
    5645                 :         register yy_state_type yy_current_state;
    5646                 :         register char *yy_cp;
    5647                 : 
    5648             352 :         yy_current_state = yy_start;
    5649             352 :         yy_current_state += YY_AT_BOL();
    5650                 : 
    5651             412 :         for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
    5652                 :                 {
    5653              60 :                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
    5654              60 :                 if ( yy_accept[yy_current_state] )
    5655                 :                         {
    5656              29 :                         yy_last_accepting_state = yy_current_state;
    5657              29 :                         yy_last_accepting_cpos = yy_cp;
    5658                 :                         }
    5659             163 :                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
    5660                 :                         {
    5661              43 :                         yy_current_state = (int) yy_def[yy_current_state];
    5662              43 :                         if ( yy_current_state >= 1422 )
    5663              42 :                                 yy_c = yy_meta[(unsigned int) yy_c];
    5664                 :                         }
    5665              60 :                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
    5666                 :                 }
    5667                 : 
    5668             352 :         return yy_current_state;
    5669                 :         }
    5670                 : 
    5671                 : 
    5672                 : /* yy_try_NUL_trans - try to make a transition on the NUL character
    5673                 :  *
    5674                 :  * synopsis
    5675                 :  *      next_state = yy_try_NUL_trans( current_state );
    5676                 :  */
    5677                 : 
    5678                 : #ifdef YY_USE_PROTOS
    5679                 : static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state TSRMLS_DC )
    5680                 : #else
    5681                 : static yy_state_type yy_try_NUL_trans( yy_current_state TSRMLS_CC )
    5682                 : yy_state_type yy_current_state;
    5683                 : #ifdef ZTS
    5684                 : void ***tsrm_ls;
    5685                 : #endif
    5686                 : #endif
    5687               0 :         {
    5688                 :         register int yy_is_jam;
    5689               0 :         register char *yy_cp = yy_c_buf_p;
    5690                 : 
    5691               0 :         register YY_CHAR yy_c = 1;
    5692               0 :         if ( yy_accept[yy_current_state] )
    5693                 :                 {
    5694               0 :                 yy_last_accepting_state = yy_current_state;
    5695               0 :                 yy_last_accepting_cpos = yy_cp;
    5696                 :                 }
    5697               0 :         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
    5698                 :                 {
    5699               0 :                 yy_current_state = (int) yy_def[yy_current_state];
    5700               0 :                 if ( yy_current_state >= 1422 )
    5701               0 :                         yy_c = yy_meta[(unsigned int) yy_c];
    5702                 :                 }
    5703               0 :         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
    5704               0 :         yy_is_jam = (yy_current_state == 1421);
    5705                 : 
    5706               0 :         return yy_is_jam ? 0 : yy_current_state;
    5707                 :         }
    5708                 : 
    5709                 : 
    5710                 : #ifndef YY_NO_UNPUT
    5711                 : #ifdef YY_USE_PROTOS
    5712                 : static void yyunput( int c, register char *yy_bp TSRMLS_DC )
    5713                 : #else
    5714                 : static void yyunput( c, yy_bp TSRMLS_CC )
    5715                 : int c;
    5716                 : register char *yy_bp;
    5717                 : #ifdef ZTS
    5718                 : void ***tsrm_ls;
    5719                 : #endif
    5720                 : #endif
    5721               0 :         {
    5722               0 :         register char *yy_cp = yy_c_buf_p;
    5723                 : 
    5724                 :         /* undo effects of setting up yytext */
    5725               0 :         *yy_cp = yy_hold_char;
    5726                 : 
    5727               0 :         if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
    5728                 :                 { /* need to shift things up to make room */
    5729                 :                 /* +2 for EOB chars. */
    5730               0 :                 register int number_to_move = SCNG(yy_n_chars) + 2;
    5731                 :                 register char *dest = &yy_current_buffer->yy_ch_buf[
    5732               0 :                                         yy_current_buffer->yy_buf_size + 2];
    5733                 :                 register char *source =
    5734               0 :                                 &yy_current_buffer->yy_ch_buf[number_to_move];
    5735                 : 
    5736               0 :                 while ( source > yy_current_buffer->yy_ch_buf )
    5737               0 :                         *--dest = *--source;
    5738                 : 
    5739               0 :                 yy_cp += (int) (dest - source);
    5740               0 :                 yy_bp += (int) (dest - source);
    5741               0 :                 yy_current_buffer->yy_n_chars =
    5742                 :                         SCNG(yy_n_chars) = yy_current_buffer->yy_buf_size;
    5743                 : 
    5744               0 :                 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
    5745               0 :                         YY_FATAL_ERROR( "flex scanner push-back overflow" );
    5746                 :                 }
    5747                 : 
    5748               0 :         *--yy_cp = (char) c;
    5749                 : 
    5750                 : 
    5751               0 :         yytext_ptr = yy_bp;
    5752               0 :         yy_hold_char = *yy_cp;
    5753               0 :         yy_c_buf_p = yy_cp;
    5754               0 :         }
    5755                 : #endif  /* ifndef YY_NO_UNPUT */
    5756                 : 
    5757                 : 
    5758                 : #ifdef __cplusplus
    5759                 : static int yyinput(TSRMLS_D)
    5760                 : #else
    5761                 : static int input(TSRMLS_C)
    5762                 : #ifdef ZTS
    5763                 : void ***tsrm_ls;
    5764                 : #endif
    5765                 : #endif
    5766               0 :         {
    5767                 :         int c;
    5768                 : 
    5769               0 :         *yy_c_buf_p = yy_hold_char;
    5770                 : 
    5771               0 :         if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
    5772                 :                 {
    5773                 :                 /* yy_c_buf_p now points to the character we want to return.
    5774                 :                  * If this occurs *before* the EOB characters, then it's a
    5775                 :                  * valid NUL; if not, then we've hit the end of the buffer.
    5776                 :                  */
    5777               0 :                 if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[SCNG(yy_n_chars)] )
    5778                 :                         /* This was really a NUL. */
    5779               0 :                         *yy_c_buf_p = '\0';
    5780                 : 
    5781                 :                 else
    5782                 :                         { /* need more input */
    5783               0 :                         int offset = yy_c_buf_p - yytext_ptr;
    5784               0 :                         ++yy_c_buf_p;
    5785                 : 
    5786               0 :                         switch ( yy_get_next_buffer(TSRMLS_C) )
    5787                 :                                 {
    5788                 :                                 case EOB_ACT_LAST_MATCH:
    5789                 :                                         /* This happens because yy_g_n_b()
    5790                 :                                          * sees that we've accumulated a
    5791                 :                                          * token and flags that we need to
    5792                 :                                          * try matching the token before
    5793                 :                                          * proceeding.  But for input(),
    5794                 :                                          * there's no matching to consider.
    5795                 :                                          * So convert the EOB_ACT_LAST_MATCH
    5796                 :                                          * to EOB_ACT_END_OF_FILE.
    5797                 :                                          */
    5798                 : 
    5799                 :                                         /* Reset buffer status. */
    5800               0 :                                         yyrestart( SCNG(yy_in) TSRMLS_CC );
    5801                 : 
    5802                 :                                         /* fall through */
    5803                 : 
    5804                 :                                 case EOB_ACT_END_OF_FILE:
    5805                 :                                         {
    5806                 :                                         if ( yywrap() )
    5807               0 :                                                 return EOF;
    5808                 : 
    5809                 :                                         if ( ! yy_did_buffer_switch_on_eof )
    5810                 :                                                 YY_NEW_FILE;
    5811                 : #ifdef __cplusplus
    5812                 :                                         return yyinput(TSRMLS_C);
    5813                 : #else
    5814                 :                                         return input(TSRMLS_C);
    5815                 : #endif
    5816                 :                                         }
    5817                 : 
    5818                 :                                 case EOB_ACT_CONTINUE_SCAN:
    5819               0 :                                         yy_c_buf_p = yytext_ptr + offset;
    5820                 :                                         break;
    5821                 :                                 }
    5822                 :                         }
    5823                 :                 }
    5824                 : 
    5825               0 :         c = *(unsigned char *) yy_c_buf_p;      /* cast for 8-bit char's */
    5826               0 :         *yy_c_buf_p = '\0';     /* preserve yytext */
    5827               0 :         yy_hold_char = *++yy_c_buf_p;
    5828                 : 
    5829               0 :         yy_current_buffer->yy_at_bol = (c == '\n');
    5830                 : 
    5831               0 :         return c;
    5832                 :         }
    5833                 : 
    5834                 : 
    5835                 : #ifdef YY_USE_PROTOS
    5836                 : void yyrestart( struct _zend_file_handle *input_file TSRMLS_DC )
    5837                 : #else
    5838                 : void yyrestart( input_file TSRMLS_CC )
    5839                 : struct _zend_file_handle *input_file;
    5840                 : #endif
    5841             335 :         {
    5842             335 :         if ( ! yy_current_buffer )
    5843               0 :                 yy_current_buffer = yy_create_buffer( SCNG(yy_in), YY_BUF_SIZE TSRMLS_CC );
    5844                 : 
    5845             335 :         yy_init_buffer( yy_current_buffer, input_file TSRMLS_CC );
    5846             335 :         yy_load_buffer_state(TSRMLS_C);
    5847             335 :         }
    5848                 : 
    5849                 : 
    5850                 : #ifdef YY_USE_PROTOS
    5851                 : void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer TSRMLS_DC)
    5852                 : #else
    5853                 : void yy_switch_to_buffer( new_buffer TSRMLS_CC)
    5854                 : YY_BUFFER_STATE new_buffer;
    5855                 : #ifdef ZTS
    5856                 : void ***tsrm_ls;
    5857                 : #endif
    5858                 : #endif
    5859             335 :         {
    5860             335 :         if ( yy_current_buffer == new_buffer )
    5861               0 :                 return;
    5862                 : 
    5863             335 :         if ( yy_current_buffer )
    5864                 :                 {
    5865                 :                 /* Flush out information for old buffer. */
    5866               0 :                 *yy_c_buf_p = yy_hold_char;
    5867               0 :                 yy_current_buffer->yy_buf_pos = yy_c_buf_p;
    5868               0 :                 yy_current_buffer->yy_n_chars = SCNG(yy_n_chars);
    5869                 :                 }
    5870                 : 
    5871             335 :         yy_current_buffer = new_buffer;
    5872             335 :         yy_load_buffer_state(TSRMLS_C);
    5873                 : 
    5874                 :         /* We don't actually know whether we did this switch during
    5875                 :          * EOF (yywrap()) processing, but the only time this flag
    5876                 :          * is looked at is after yywrap() is called, so it's safe
    5877                 :          * to go ahead and always set it.
    5878                 :          */
    5879             335 :         yy_did_buffer_switch_on_eof = 1;
    5880                 :         }
    5881                 : 
    5882                 : 
    5883                 : #ifdef YY_USE_PROTOS
    5884                 : void yy_load_buffer_state( TSRMLS_D )
    5885                 : #else
    5886                 : void yy_load_buffer_state(TSRMLS_C)
    5887                 : #ifdef ZTS
    5888                 : void ***tsrm_ls;
    5889                 : #endif
    5890                 : #endif
    5891            1224 :         {
    5892            1224 :         SCNG(yy_n_chars) = yy_current_buffer->yy_n_chars;
    5893            1224 :         yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
    5894            1224 :         SCNG(yy_in) = yy_current_buffer->yy_input_file;
    5895            1224 :         yy_hold_char = *yy_c_buf_p;
    5896            1224 :         }
    5897                 : 
    5898                 : 
    5899                 : #ifdef YY_USE_PROTOS
    5900                 : YY_BUFFER_STATE yy_create_buffer( struct _zend_file_handle *file, int size TSRMLS_DC )
    5901                 : #else
    5902                 : YY_BUFFER_STATE yy_create_buffer( file, size TSRMLS_CC )
    5903                 : struct _zend_file_handle *file;
    5904                 : int size;
    5905                 : #ifdef ZTS
    5906                 : void ***tsrm_ls;
    5907                 : #endif
    5908                 : #endif
    5909             335 :         {
    5910                 :         YY_BUFFER_STATE b;
    5911                 : 
    5912             335 :         b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
    5913             335 :         if ( ! b )
    5914               0 :                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
    5915                 : 
    5916             335 :         b->yy_buf_size = size;
    5917                 : 
    5918                 :         /* yy_ch_buf has to be 2 characters longer than the size given because
    5919                 :          * we need to put in 2 end-of-buffer characters.
    5920                 :          */
    5921             335 :         b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
    5922             335 :         if ( ! b->yy_ch_buf )
    5923               0 :                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
    5924                 : 
    5925             335 :         b->yy_is_our_buffer = 1;
    5926                 : 
    5927             335 :         yy_init_buffer( b, file TSRMLS_CC );
    5928                 : 
    5929             335 :         return b;
    5930                 :         }
    5931                 : 
    5932                 : 
    5933                 : #ifdef YY_USE_PROTOS
    5934                 : void yy_delete_buffer( YY_BUFFER_STATE b TSRMLS_DC )
    5935                 : #else
    5936                 : void yy_delete_buffer( b TSRMLS_CC )
    5937                 : YY_BUFFER_STATE b;
    5938                 : #ifdef ZTS
    5939                 : void ***tsrm_ls;
    5940                 : #endif
    5941                 : #endif
    5942             335 :         {
    5943             335 :         if ( ! b )
    5944               0 :                 return;
    5945                 : 
    5946             335 :         if ( b == yy_current_buffer )
    5947               0 :                 yy_current_buffer = (YY_BUFFER_STATE) 0;
    5948                 : 
    5949             335 :         if ( b->yy_is_our_buffer )
    5950             335 :                 yy_flex_free( (void *) b->yy_ch_buf );
    5951                 : 
    5952             335 :         yy_flex_free( (void *) b );
    5953                 :         }
    5954                 : 
    5955                 : 
    5956                 : 
    5957                 : #ifdef YY_USE_PROTOS
    5958                 : void yy_init_buffer( YY_BUFFER_STATE b, struct _zend_file_handle *file TSRMLS_DC )
    5959                 : #else
    5960                 : void yy_init_buffer( b, file TSRMLS_CC )
    5961                 : YY_BUFFER_STATE b;
    5962                 : struct _zend_file_handle *file;
    5963                 : #ifdef ZTS
    5964                 : void ***tsrm_ls;
    5965                 : #endif
    5966                 : #endif
    5967                 : 
    5968                 : 
    5969             670 :         {
    5970             670 :         yy_flush_buffer( b TSRMLS_CC );
    5971                 : 
    5972             670 :         b->yy_input_file = file;
    5973             670 :         b->yy_fill_buffer = 1;
    5974                 : 
    5975                 : #if YY_ALWAYS_INTERACTIVE
    5976                 :         b->yy_is_interactive = 1;
    5977                 : #else
    5978                 : #if YY_NEVER_INTERACTIVE
    5979                 :         b->yy_is_interactive = 0;
    5980                 : #else
    5981             670 :         b->yy_is_interactive = file->handle.stream.interactive;
    5982                 : #endif
    5983                 : #endif
    5984             670 :         }
    5985                 : 
    5986                 : 
    5987                 : #ifdef YY_USE_PROTOS
    5988                 : void yy_flush_buffer( YY_BUFFER_STATE b TSRMLS_DC )
    5989                 : #else
    5990                 : void yy_flush_buffer( b TSRMLS_CC )
    5991                 : YY_BUFFER_STATE b;
    5992                 : #ifdef ZTS
    5993                 : void ***tsrm_ls;
    5994                 : #endif
    5995                 : #endif
    5996                 : 
    5997             670 :         {
    5998             670 :         if ( ! b )
    5999               0 :                 return;
    6000                 : 
    6001             670 :         b->yy_n_chars = 0;
    6002                 : 
    6003                 :         /* We always need two end-of-buffer characters.  The first causes
    6004                 :          * a transition to the end-of-buffer state.  The second causes
    6005                 :          * a jam in that state.
    6006                 :          */
    6007             670 :         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
    6008             670 :         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
    6009                 : 
    6010             670 :         b->yy_buf_pos = &b->yy_ch_buf[0];
    6011                 : 
    6012             670 :         b->yy_at_bol = 1;
    6013             670 :         b->yy_buffer_status = YY_BUFFER_NEW;
    6014                 : 
    6015             670 :         if ( b == yy_current_buffer )
    6016             335 :                 yy_load_buffer_state(TSRMLS_C);
    6017                 :         }
    6018                 : 
    6019                 : 
    6020                 : #ifndef YY_NO_SCAN_BUFFER
    6021                 : #ifdef YY_USE_PROTOS
    6022                 : YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size TSRMLS_DC )
    6023                 : #else
    6024                 : YY_BUFFER_STATE yy_scan_buffer( base, size TSRMLS_CC )
    6025                 : char *base;
    6026                 : yy_size_t size;
    6027                 : #ifdef ZTS
    6028                 : void ***tsrm_ls;
    6029                 : #endif
    6030                 : #endif
    6031               0 :         {
    6032                 :         YY_BUFFER_STATE b;
    6033                 : 
    6034               0 :         if ( size < 2 ||
    6035                 :              base[size-2] != YY_END_OF_BUFFER_CHAR ||
    6036                 :              base[size-1] != YY_END_OF_BUFFER_CHAR )
    6037                 :                 /* They forgot to leave room for the EOB's. */
    6038               0 :                 return 0;
    6039                 : 
    6040               0 :         b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
    6041               0 :         if ( ! b )
    6042               0 :                 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
    6043                 : 
    6044               0 :         b->yy_buf_size = size - 2;   /* "- 2" to take care of EOB's */
    6045               0 :         b->yy_buf_pos = b->yy_ch_buf = base;
    6046               0 :         b->yy_is_our_buffer = 0;
    6047               0 :         b->yy_input_file = 0;
    6048               0 :         b->yy_n_chars = b->yy_buf_size;
    6049               0 :         b->yy_is_interactive = 0;
    6050               0 :         b->yy_at_bol = 1;
    6051               0 :         b->yy_fill_buffer = 0;
    6052               0 :         b->yy_buffer_status = YY_BUFFER_NEW;
    6053                 : 
    6054               0 :         yy_switch_to_buffer( b TSRMLS_CC );
    6055                 : 
    6056               0 :         return b;
    6057                 :         }
    6058                 : #endif
    6059                 : 
    6060                 : 
    6061                 : #ifndef YY_NO_SCAN_STRING
    6062                 : #ifdef YY_USE_PROTOS
    6063                 : YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str TSRMLS_DC )
    6064                 : #else
    6065                 : YY_BUFFER_STATE yy_scan_string( yy_str TSRMLS_CC )
    6066                 : yyconst char *yy_str;
    6067                 : #ifdef ZTS
    6068                 : void ***tsrm_ls;
    6069                 : #endif
    6070                 : #endif
    6071               0 :         {
    6072                 :         int len;
    6073               0 :         for ( len = 0; yy_str[len]; ++len )
    6074                 :                 ;
    6075                 : 
    6076               0 :         return yy_scan_bytes( yy_str, len TSRMLS_CC );
    6077                 :         }
    6078                 : #endif
    6079                 : 
    6080                 : 
    6081                 : #ifndef YY_NO_SCAN_BYTES
    6082                 : #ifdef YY_USE_PROTOS
    6083                 : YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len TSRMLS_DC )
    6084                 : #else
    6085                 : YY_BUFFER_STATE yy_scan_bytes( bytes, len TSRMLS_CC )
    6086                 : yyconst char *bytes;
    6087                 : int len;
    6088                 : #ifdef ZTS
    6089                 : void ***tsrm_ls;
    6090                 : #endif
    6091                 : #endif
    6092               0 :         {
    6093                 :         YY_BUFFER_STATE b;
    6094                 :         char *buf;
    6095                 :         yy_size_t n;
    6096                 :         int i;
    6097                 : 
    6098                 :         /* Get memory for full buffer, including space for trailing EOB's. */
    6099               0 :         n = len + 2;
    6100               0 :         buf = (char *) yy_flex_alloc( n );
    6101               0 :         if ( ! buf )
    6102               0 :                 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
    6103                 : 
    6104               0 :         for ( i = 0; i < len; ++i )
    6105               0 :                 buf[i] = bytes[i];
    6106                 : 
    6107               0 :         buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
    6108                 : 
    6109               0 :         b = yy_scan_buffer( buf, n TSRMLS_CC);
    6110               0 :         if ( ! b )
    6111               0 :                 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
    6112                 : 
    6113                 :         /* It's okay to grow etc. this buffer, and we should throw it
    6114                 :          * away when we're done.
    6115                 :          */
    6116               0 :         b->yy_is_our_buffer = 1;
    6117                 : 
    6118               0 :         return b;
    6119                 :         }
    6120                 : #endif
    6121                 : 
    6122                 : 
    6123                 : #ifndef YY_NO_PUSH_STATE
    6124                 : #ifdef YY_USE_PROTOS
    6125                 : static void yy_push_state( int new_state TSRMLS_DC )
    6126                 : #else
    6127                 : static void yy_push_state( new_state TSRMLS_CC )
    6128                 : int new_state;
    6129                 : #ifdef ZTS
    6130                 : void ***tsrm_ls;
    6131                 : #endif
    6132                 : #endif
    6133            1664 :         {
    6134            1664 :         if ( yy_start_stack_ptr >= yy_start_stack_depth )
    6135                 :                 {
    6136                 :                 yy_size_t new_size;
    6137                 : 
    6138             157 :                 yy_start_stack_depth += YY_START_STACK_INCR;
    6139             157 :                 new_size = yy_start_stack_depth * sizeof( int );
    6140                 : 
    6141             157 :                 if ( ! yy_start_stack )
    6142             157 :                         yy_start_stack = (int *) yy_flex_alloc( new_size );
    6143                 : 
    6144                 :                 else
    6145               0 :                         yy_start_stack = (int *) yy_flex_realloc(
    6146                 :                                         (void *) yy_start_stack, new_size );
    6147                 : 
    6148             157 :                 if ( ! yy_start_stack )
    6149               0 :                         YY_FATAL_ERROR(
    6150                 :                         "out of memory expanding start-condition stack" );
    6151                 :                 }
    6152                 : 
    6153            1664 :         yy_start_stack[yy_start_stack_ptr++] = YY_START;
    6154                 : 
    6155            1664 :         BEGIN(new_state);
    6156            1664 :         }
    6157                 : #endif
    6158                 : 
    6159                 : 
    6160                 : #ifndef YY_NO_POP_STATE
    6161                 : static void yy_pop_state(TSRMLS_D)
    6162            1664 :         {
    6163            1664 :         if ( --yy_start_stack_ptr < 0 )
    6164               0 :                 YY_FATAL_ERROR( "start-condition stack underflow" );
    6165                 : 
    6166            1664 :         BEGIN(yy_start_stack[yy_start_stack_ptr]);
    6167            1664 :         }
    6168                 : #endif
    6169                 : 
    6170                 : 
    6171                 : #ifndef YY_NO_TOP_STATE
    6172                 : static int yy_top_state(TSRMLS_D)
    6173               0 :         {
    6174               0 :         return yy_start_stack[yy_start_stack_ptr - 1];
    6175                 :         }
    6176                 : #endif
    6177                 : 
    6178                 : #ifndef YY_EXIT_FAILURE
    6179                 : #define YY_EXIT_FAILURE 2
    6180                 : #endif
    6181                 : 
    6182                 : #ifdef YY_USE_PROTOS
    6183                 : static void yy_fatal_error( yyconst char msg[] )
    6184                 : #else
    6185                 : static void yy_fatal_error( msg )
    6186                 : char msg[];
    6187                 : #endif
    6188               0 :         {
    6189               0 :         (void) fprintf( stderr, "%s\n", msg );
    6190               0 :         exit( YY_EXIT_FAILURE );
    6191                 :         }
    6192                 : 
    6193                 : 
    6194                 : 
    6195                 : /* Redefine yyless() so it works in section 3 code. */
    6196                 : 
    6197                 : #undef yyless
    6198                 : #define yyless(n) \
    6199                 :         do \
    6200                 :                 { \
    6201                 :                 /* Undo effects of setting up yytext. */ \
    6202                 :                 yytext[yyleng] = yy_hold_char; \
    6203                 :                 yy_c_buf_p = yytext + n; \
    6204                 :                 yy_hold_char = *yy_c_buf_p; \
    6205                 :                 *yy_c_buf_p = '\0'; \
    6206                 :                 yyleng = n; \
    6207                 :                 } \
    6208                 :         while ( 0 )
    6209                 : 
    6210                 : 
    6211                 : /* Internal utility routines. */
    6212                 : 
    6213                 : #ifndef yytext_ptr
    6214                 : #ifdef YY_USE_PROTOS
    6215                 : static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
    6216                 : #else
    6217                 : static void yy_flex_strncpy( s1, s2, n )
    6218                 : char *s1;
    6219                 : yyconst char *s2;
    6220                 : int n;
    6221                 : #endif
    6222                 :         {
    6223                 :         register int i;
    6224                 :         for ( i = 0; i < n; ++i )
    6225                 :                 s1[i] = s2[i];
    6226                 :         }
    6227                 : #endif
    6228                 : 
    6229                 : #ifdef YY_NEED_STRLEN
    6230                 : #ifdef YY_USE_PROTOS
    6231                 : static int yy_flex_strlen( yyconst char *s )
    6232                 : #else
    6233                 : static int yy_flex_strlen( s )
    6234                 : yyconst char *s;
    6235                 : #endif
    6236                 :         {
    6237                 :         register int n;
    6238                 :         for ( n = 0; s[n]; ++n )
    6239                 :                 ;
    6240                 : 
    6241                 :         return n;
    6242                 :         }
    6243                 : #endif
    6244                 : 
    6245                 : 
    6246                 : #ifdef YY_USE_PROTOS
    6247                 : static void *yy_flex_alloc( yy_size_t size )
    6248                 : #else
    6249                 : static void *yy_flex_alloc( size )
    6250                 : yy_size_t size;
    6251                 : #endif
    6252             827 :         {
    6253             827 :         return (void *) malloc( size );
    6254                 :         }
    6255                 : 
    6256                 : #ifdef YY_USE_PROTOS
    6257                 : static void *yy_flex_realloc( void *ptr, yy_size_t size )
    6258                 : #else
    6259                 : static void *yy_flex_realloc( ptr, size )
    6260                 : void *ptr;
    6261                 : yy_size_t size;
    6262                 : #endif
    6263               0 :         {
    6264                 :         /* The cast to (char *) in the following accommodates both
    6265                 :          * implementations that use char* generic pointers, and those
    6266                 :          * that use void* generic pointers.  It works with the latter
    6267                 :          * because both ANSI C and C++ allow castless assignment from
    6268                 :          * any pointer type to void*, and deal with argument conversions
    6269                 :          * as though doing an assignment.
    6270                 :          */
    6271               0 :         return (void *) realloc( (char *) ptr, size );
    6272                 :         }
    6273                 : 
    6274                 : #ifdef YY_USE_PROTOS
    6275                 : static void yy_flex_free( void *ptr )
    6276                 : #else
    6277                 : static void yy_flex_free( ptr )
    6278                 : void *ptr;
    6279                 : #endif
    6280             827 :         {
    6281             827 :         free( ptr );
    6282             827 :         }
    6283                 : 
    6284                 : #if YY_MAIN
    6285                 : int main()
    6286                 :         {
    6287                 :         yylex();
    6288                 :         return 0;
    6289                 :         }
    6290                 : #endif
    6291                 : #line 1943 "/home/mike/cvs/php-5.2/Zend/zend_language_scanner.l"

Generated by: LTP GCOV extension version 1.5