Logo Search packages:      
Sourcecode: dante version File versions

config_scan.c

#define yy_create_buffer socks_yy_create_buffer
#define yy_delete_buffer socks_yy_delete_buffer
#define yy_scan_buffer socks_yy_scan_buffer
#define yy_scan_string socks_yy_scan_string
#define yy_scan_bytes socks_yy_scan_bytes
#define yy_flex_debug socks_yy_flex_debug
#define yy_init_buffer socks_yy_init_buffer
#define yy_flush_buffer socks_yy_flush_buffer
#define yy_load_buffer_state socks_yy_load_buffer_state
#define yy_switch_to_buffer socks_yy_switch_to_buffer
#define yyin socks_yyin
#define yyleng socks_yyleng
#define yylex socks_yylex
#define yyout socks_yyout
#define yyrestart socks_yyrestart
#define yytext socks_yytext
#define yylineno socks_yylineno

#line 20 "lex.yy.c"
/*    $OpenBSD: flex.skl,v 1.6 2001/01/05 18:26:23 millert Exp $  */

/* A lexical scanner generated by flex */

/* Scanner skeleton version:
 * $Header: /cvs/src/usr.bin/lex/flex.skl,v 1.6 2001/01/05 18:26:23 millert Exp $
 */

#define FLEX_SCANNER
#define YY_FLEX_MAJOR_VERSION 2
#define YY_FLEX_MINOR_VERSION 5

#include <stdio.h>
#include <errno.h>


/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
#ifdef c_plusplus
#ifndef __cplusplus
#define __cplusplus
#endif
#endif


#ifdef __cplusplus

#include <stdlib.h>
#include <unistd.h>

/* Use prototypes in function declarations. */
#define YY_USE_PROTOS

/* The "const" storage-class-modifier is valid. */
#define YY_USE_CONST

#else /* ! __cplusplus */

#ifdef __STDC__

#define YY_USE_PROTOS
#define YY_USE_CONST

#endif      /* __STDC__ */
#endif      /* ! __cplusplus */

#ifdef __TURBOC__
 #pragma warn -rch
 #pragma warn -use
#include <io.h>
#include <stdlib.h>
#define YY_USE_CONST
#define YY_USE_PROTOS
#endif

#ifdef YY_USE_CONST
#define yyconst const
#else
#define yyconst
#endif


#ifdef YY_USE_PROTOS
#define YY_PROTO(proto) proto
#else
#define YY_PROTO(proto) ()
#endif

/* Returned upon end-of-file. */
#define YY_NULL 0

/* Promotes a possibly negative, possibly signed char to an unsigned
 * integer for use as an array index.  If the signed char is negative,
 * we want to instead treat it as an 8-bit unsigned char, hence the
 * double cast.
 */
#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)

/* Enter a start condition.  This macro really ought to take a parameter,
 * but we do it the disgusting crufty way forced on us by the ()-less
 * definition of BEGIN.
 */
#define BEGIN yy_start = 1 + 2 *

/* Translate the current start state into a value that can be later handed
 * to BEGIN to return to the state.  The YYSTATE alias is for lex
 * compatibility.
 */
#define YY_START ((yy_start - 1) / 2)
#define YYSTATE YY_START

/* Action number for EOF rule of a given start state. */
#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)

/* Special action meaning "start processing a new file". */
#define YY_NEW_FILE yyrestart( yyin )

#define YY_END_OF_BUFFER_CHAR 0

/* Size of default input buffer. */
#define YY_BUF_SIZE 16384

typedef struct yy_buffer_state *YY_BUFFER_STATE;

extern int yyleng;
extern FILE *yyin, *yyout;

#define EOB_ACT_CONTINUE_SCAN 0
#define EOB_ACT_END_OF_FILE 1
#define EOB_ACT_LAST_MATCH 2

/* The funky do-while in the following #define is used to turn the definition
 * int a single C statement (which needs a semi-colon terminator).  This
 * avoids problems with code like:
 *
 *    if ( condition_holds )
 *          yyless( 5 );
 *    else
 *          do_something_else();
 *
 * Prior to using the do-while the compiler would get upset at the
 * "else" because it interpreted the "if" statement as being all
 * done when it reached the ';' after the yyless() call.
 */

/* Return all but the first 'n' matched characters back to the input stream. */

#define yyless(n) \
      do \
            { \
            /* Undo effects of setting up yytext. */ \
            *yy_cp = yy_hold_char; \
            YY_RESTORE_YY_MORE_OFFSET \
            yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
            YY_DO_BEFORE_ACTION; /* set up yytext again */ \
            } \
      while ( 0 )

#define unput(c) yyunput( c, yytext_ptr )

/* The following is because we cannot portably get our hands on size_t
 * (without autoconf's help, which isn't available because we want
 * flex-generated scanners to compile on their own).
 */
typedef unsigned int yy_size_t;


struct yy_buffer_state
      {
      FILE *yy_input_file;

      char *yy_ch_buf;        /* input buffer */
      char *yy_buf_pos;       /* current position in input buffer */

      /* Size of input buffer in bytes, not including room for EOB
       * characters.
       */
      yy_size_t yy_buf_size;

      /* Number of characters read into yy_ch_buf, not including EOB
       * characters.
       */
      int yy_n_chars;

      /* Whether we "own" the buffer - i.e., we know we created it,
       * and can realloc() it to grow it, and should free() it to
       * delete it.
       */
      int yy_is_our_buffer;

      /* Whether this is an "interactive" input source; if so, and
       * if we're using stdio for input, then we want to use getc()
       * instead of fread(), to make sure we stop fetching input after
       * each newline.
       */
      int yy_is_interactive;

      /* Whether we're considered to be at the beginning of a line.
       * If so, '^' rules will be active on the next match, otherwise
       * not.
       */
      int yy_at_bol;

      /* Whether to try to fill the input buffer when we reach the
       * end of it.
       */
      int yy_fill_buffer;

      int yy_buffer_status;
#define YY_BUFFER_NEW 0
#define YY_BUFFER_NORMAL 1
      /* When an EOF's been seen but there's still some text to process
       * then we mark the buffer as YY_EOF_PENDING, to indicate that we
       * shouldn't try reading from the input source any more.  We might
       * still have a bunch of tokens to match, though, because of
       * possible backing-up.
       *
       * When we actually see the EOF, we change the status to "new"
       * (via yyrestart()), so that the user can continue scanning by
       * just pointing yyin at a new input file.
       */
#define YY_BUFFER_EOF_PENDING 2
      };

static YY_BUFFER_STATE yy_current_buffer = 0;

/* We provide macros for accessing buffer states in case in the
 * future we want to put the buffer states in a more general
 * "scanner state".
 */
#define YY_CURRENT_BUFFER yy_current_buffer


/* yy_hold_char holds the character lost when yytext is formed. */
static char yy_hold_char;

static int yy_n_chars;        /* number of characters read into yy_ch_buf */


int yyleng;

/* Points to current character in buffer. */
static char *yy_c_buf_p = (char *) 0;
static int yy_init = 1;       /* whether we need to initialize */
static int yy_start = 0;      /* start state number */

/* Flag which is used to allow yywrap()'s to do buffer switches
 * instead of setting up a fresh yyin.  A bit of a hack ...
 */
static int yy_did_buffer_switch_on_eof;

void yyrestart YY_PROTO(( FILE *input_file ));

void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
void yy_load_buffer_state YY_PROTO(( void ));
YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )

YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));

static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
static void yy_flex_free YY_PROTO(( void * ));

#define yy_new_buffer yy_create_buffer

#define yy_set_interactive(is_interactive) \
      { \
      if ( ! yy_current_buffer ) \
            yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
      yy_current_buffer->yy_is_interactive = is_interactive; \
      }

#define yy_set_bol(at_bol) \
      { \
      if ( ! yy_current_buffer ) \
            yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
      yy_current_buffer->yy_at_bol = at_bol; \
      }

#define YY_AT_BOL() (yy_current_buffer->yy_at_bol)


#define YY_USES_REJECT

#define yywrap() 1
#define YY_SKIP_YYWRAP
typedef unsigned char YY_CHAR;
FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
typedef int yy_state_type;
extern int yylineno;
int yylineno = 1;
extern char *yytext;
#define yytext_ptr yytext

static yy_state_type yy_get_previous_state YY_PROTO(( void ));
static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
static int yy_get_next_buffer YY_PROTO(( void ));
static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));

/* Done after the current pattern has been matched and before the
 * corresponding action - sets up yytext.
 */
#define YY_DO_BEFORE_ACTION \
      yytext_ptr = yy_bp; \
      yyleng = (int) (yy_cp - yy_bp); \
      yy_hold_char = *yy_cp; \
      *yy_cp = '\0'; \
      yy_c_buf_p = yy_cp;

#define YY_NUM_RULES 83
#define YY_END_OF_BUFFER 84
static yyconst short int yy_acclist[507] =
    {   0,
       26,   26,   84,   82,   83,   78,   82,   83,   80,   83,
       79,   82,   83,   77,   82,   83,   82,   83,   82,   83,
       82,   83,   82,   83,   82,   83,   82,   83,   82,   83,
       82,   83,   82,   83,   82,   83,   82,   83,   82,   83,
       82,   83,   82,   83,   82,   83,   82,   83,   82,   83,
       21,   82,   83,   77,   82,   83,   82,   83,   82,   83,
       82,   83,   82,   83,   82,   83,   82,   83,   82,   83,
       82,   83,   82,   83,   82,   83,   82,   83,   82,   83,
       82,   83,   82,   83,   82,   83,   82,   83,   82,   83,
       25,   82,   83,   82,   83,   82,   83,   82,   83,   26,

       82,   83,   26,   78,   82,   83,   26,   79,   82,   83,
       26,   77,   82,   83,   26,   82,   83,   82,   83,   82,
       83,   82,   83,   82,   83,   23,   82,   83,   23,   79,
       82,   83,   23,   77,   82,   83,   23,   82,   83,   82,
       83,   82,   83,   82,   83,   82,   83,   82,   83,   82,
       83,   19,   77,   82,   83,   12,   82,   83,   12,   82,
       83,   12,   82,   83,   82,   83,   82,   83,   82,   83,
       82,   83,   82,   83,   82,   83,   82,   83,   24,   82,
       83,   24,   79,   82,   83,   24,   77,   82,   83,   24,
       82,   83,   20,   77,   82,   83,   18,   82,   83,   82,

       83,   82,   83,   82,   83,   82,   83,   78,   79,   79,
       77,   81,   43,   21,   77,   22,   22,   43,   26,   26,
       78,   26,   79,   26,   79,   26,   26,   77,   23,   23,
       79,   23,   23,   77,   12,   19,   77,   24,   24,   79,
       24,   24,   77,   20,   77,   18,   18,   77,   72,   44,
       21,   21,   21,   77,   72,   44,   26,   26,   77,   23,
       23,   77,   69,   19,   77,   24,   24,   77,   20,   77,
       29,   30,   77,   61,   42,   48,   71,   51,   21,   21,
       77,   61,   42,   48,   71,   51,   11,    5,   26,   26,
       26,   77,   14,   23,   23,   23,   77,   65,   19,   77,

       24,   24,   24,   77,   20,   77,   31,   70,   32,   33,
       47,   21,   70,   32,   21,   33,   47,   26,   26,   16,
       23,   23,   19,   77,   24,   24,   20,   77,   62,   63,
       62,   10,   63,   21,   21,   21,   21,   26,   26,   23,
       23,   66,   68,   24,   24,   76,   39,   73,   35,   21,
       39,   73,   21,   35,   21,   21,   21,    6,   26,   76,
       26,   13,   23,   76,   23,   24,   76,   24,   76,   49,
       45,   38,   40,   58,   21,   49,   45,   21,   38,   40,
       58,   21,   21,   21,    9,   26,   76,   23,   76,   67,
        1,    2,   24,   76,   76,   41,   60,   55,   37,   57,

       41,   21,   60,   22,   22,   55,   37,   21,   57,   21,
       21,   21,    8,   26,   76,   23,   76,    4,   24,   76,
       28,   21,   21,   21,   21,   21,   21,   15,    3,   27,
       21,   21,   21,   21,   21,   21,   17,   64,   75,   54,
       21,   64,   21,   22,   22,   75,   21,   21,   54,   21,
       21,    7,   56,   75,   75,   36,   21,   56,   21,   21,
       22,   75,   22,   75,   21,   36,   21,   21,   59,   74,
       21,   59,   21,   21,   21,   21,   74,   21,   21,   34,
       52,   21,   21,   21,   74,   34,   21,   21,   52,   21,
       21,   21,   46,   21,   46,   21,   46,   46,   21,   53,

       21,   21,   53,   50,   21,   50
    } ;

static yyconst short int yy_accept[940] =
    {   0,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    2,    3,    3,    3,    3,    3,    3,
        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
        3,    3,    3,    3,    3,    3,    3,    4,    6,    9,
       11,   14,   17,   19,   21,   23,   25,   27,   29,   31,
       33,   35,   37,   39,   41,   43,   45,   47,   49,   51,
       54,   57,   59,   61,   63,   65,   67,   69,   71,   73,
       75,   77,   79,   81,   83,   85,   87,   89,   91,   94,
       96,   98,  100,  103,  107,  111,  115,  118,  120,  122,
      124,  126,  129,  133,  137,  140,  142,  144,  146,  148,

      150,  152,  156,  159,  162,  165,  167,  169,  171,  173,
      175,  177,  179,  182,  186,  190,  193,  197,  200,  202,
      204,  206,  208,  209,  210,  211,  211,  212,  213,  213,
      213,  213,  213,  213,  213,  213,  213,  213,  213,  213,
      213,  213,  213,  213,  213,  213,  213,  213,  213,  213,
      214,  214,  214,  214,  214,  215,  215,  216,  217,  218,
      218,  218,  218,  218,  218,  218,  218,  218,  218,  218,
      218,  218,  218,  218,  218,  218,  218,  218,  218,  218,
      218,  218,  218,  219,  219,  219,  219,  219,  219,  219,
      220,  222,  224,  226,  227,  229,  229,  229,  229,  229,

      229,  230,  232,  233,  235,  235,  235,  235,  235,  235,
      236,  238,  238,  238,  238,  238,  239,  241,  242,  244,
      246,  247,  248,  248,  248,  248,  248,  248,  249,  249,
      249,  249,  249,  249,  249,  249,  249,  249,  249,  249,
      249,  249,  249,  250,  250,  250,  250,  250,  250,  250,
      250,  250,  250,  250,  250,  250,  251,  252,  253,  254,
      255,  255,  255,  255,  255,  255,  255,  255,  255,  255,
      255,  255,  255,  255,  255,  255,  256,  256,  256,  256,
      256,  256,  256,  256,  256,  256,  256,  256,  256,  257,
      257,  257,  257,  257,  258,  260,  260,  260,  260,  260,

      260,  261,  263,  263,  263,  264,  264,  264,  266,  266,
      266,  266,  267,  269,  271,  271,  271,  271,  272,  273,
      273,  273,  274,  274,  275,  275,  275,  275,  275,  275,
      275,  275,  275,  276,  276,  276,  276,  276,  276,  276,
      277,  277,  277,  278,  278,  278,  278,  278,  278,  278,
      278,  278,  279,  280,  281,  282,  282,  283,  283,  283,
      283,  283,  283,  283,  283,  283,  283,  284,  284,  284,
      284,  284,  284,  284,  285,  285,  285,  286,  286,  286,
      286,  286,  286,  286,  286,  286,  287,  288,  289,  289,
      289,  289,  290,  291,  293,  293,  294,  294,  294,  294,

      295,  296,  298,  298,  299,  299,  299,  301,  301,  301,
      301,  302,  303,  305,  307,  307,  307,  308,  308,  308,
      308,  309,  309,  309,  309,  309,  309,  310,  310,  310,
      310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
      310,  310,  310,  312,  312,  312,  312,  313,  313,  314,
      314,  314,  314,  314,  314,  315,  315,  315,  315,  315,
      315,  315,  315,  315,  315,  316,  316,  316,  316,  316,
      316,  316,  318,  318,  318,  318,  318,  318,  318,  318,
      319,  320,  320,  320,  321,  321,  322,  323,  323,  323,
      323,  325,  325,  325,  325,  326,  327,  329,  329,  329,

      329,  329,  329,  329,  330,  330,  330,  330,  330,  330,
      330,  330,  330,  330,  330,  331,  331,  331,  331,  331,
      331,  331,  331,  331,  331,  331,  331,  331,  331,  331,
      332,  332,  332,  332,  333,  333,  333,  333,  333,  333,
      333,  333,  334,  335,  335,  335,  335,  335,  335,  335,
      335,  335,  336,  337,  338,  338,  338,  338,  338,  339,
      340,  340,  340,  340,  341,  342,  343,  344,  344,  344,
      344,  344,  345,  346,  346,  346,  347,  347,  347,  347,
      347,  348,  348,  348,  348,  348,  348,  348,  349,  349,
      349,  349,  349,  349,  349,  349,  349,  349,  349,  350,

      350,  350,  350,  350,  351,  351,  352,  352,  352,  352,
      352,  352,  352,  353,  353,  353,  354,  354,  354,  354,
      354,  354,  354,  354,  355,  356,  357,  358,  358,  359,
      359,  359,  361,  362,  363,  363,  363,  365,  366,  366,
      366,  366,  366,  368,  369,  369,  369,  370,  370,  370,
      370,  370,  370,  370,  371,  372,  372,  372,  372,  372,
      372,  373,  373,  374,  374,  374,  375,  375,  375,  375,
      375,  376,  376,  376,  376,  376,  377,  378,  378,  378,
      378,  379,  379,  380,  380,  381,  381,  381,  382,  383,
      384,  385,  385,  385,  386,  388,  388,  388,  390,  391,

      391,  391,  392,  393,  395,  395,  395,  396,  397,  397,
      397,  397,  397,  398,  398,  399,  399,  400,  400,  400,
      400,  400,  401,  401,  401,  401,  402,  403,  403,  403,
      403,  404,  404,  404,  405,  406,  406,  407,  407,  408,
      409,  409,  409,  409,  410,  411,  412,  413,  414,  414,
      416,  416,  416,  418,  419,  419,  421,  421,  422,  422,
      422,  422,  422,  422,  422,  422,  422,  422,  422,  422,
      422,  422,  423,  423,  423,  423,  423,  424,  424,  424,
      425,  425,  425,  425,  426,  427,  428,  428,  429,  429,
      430,  431,  431,  431,  431,  431,  431,  431,  431,  431,

      431,  431,  431,  431,  431,  432,  432,  432,  432,  432,
      433,  433,  433,  434,  434,  434,  434,  435,  436,  437,
      437,  438,  438,  439,  439,  439,  439,  439,  440,  440,
      440,  440,  440,  441,  441,  441,  442,  443,  443,  443,
      443,  444,  444,  444,  444,  445,  447,  447,  448,  448,
      448,  448,  450,  451,  452,  453,  453,  454,  454,  454,
      455,  456,  456,  456,  457,  457,  457,  457,  458,  459,
      459,  459,  460,  460,  461,  463,  465,  466,  466,  467,
      467,  468,  469,  469,  470,  470,  470,  471,  471,  471,
      471,  472,  473,  473,  474,  474,  475,  476,  477,  478,

      478,  479,  480,  480,  480,  481,  481,  482,  483,  483,
      484,  484,  486,  487,  488,  490,  490,  490,  490,  491,
      491,  492,  492,  493,  493,  494,  494,  495,  496,  498,
      499,  500,  500,  501,  502,  504,  505,  507,  507
    } ;

static yyconst int yy_ec[256] =
    {   0,
        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    2,    4,    1,    5,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    6,    7,    8,    9,   10,   11,
       12,   13,   14,   15,   15,   15,   16,   17,    1,   18,
       19,   20,    1,    1,   21,   21,   21,   21,   21,   21,
       21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
       21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
        1,   22,    1,    1,   23,    1,   24,   25,   26,   27,

       28,   29,   30,   31,   32,   21,   33,   34,   35,   36,
       37,   38,   39,   40,   41,   42,   43,   44,   45,   46,
       47,   21,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,

        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1
    } ;

static yyconst int yy_meta[48] =
    {   0,
        1,    2,    3,    1,    1,    4,    5,    6,    7,    7,
        7,    7,    7,    7,    7,    7,    8,    1,    1,    1,
        4,    1,    1,    4,    4,    4,    4,    4,    4,    4,
        4,    4,    4,    4,    4,    4,    4,    4,    4,    9,
        4,    4,    4,    4,    4,    4,    4
    } ;

static yyconst short int yy_base[983] =
    {   0,
        0,    0,   47,    0, 2649, 2648,   78,    0,   83,   98,
     2668, 2667,  140,  161,  108,  152,  183,  204,  193,  194,
      234,    0, 2666, 2665,  224,  225,  269,  290,  312,    0,
       81,   94,  115,  246,  351,  359, 2681, 2688,   94, 2688,
        0, 2673, 2676,  105,  191, 2650, 2631, 2636,   65,   96,
     2647, 2637,  107,  131,  141, 2636, 2631, 2639, 2663,    0,
      369,  380,  392,  386,  387,  114,  398,  403,  409,  420,
      421,  425,  432,  438,  439,  443,  455,  388, 2688, 2637,
     2631, 2640,    0,  185,    0,  483, 2663, 2628,  180, 2624,
     2626,    0,  165,  493, 2659, 2620, 2623, 2635, 2629, 2616,

     2637, 2648, 2635, 2688, 2634, 2613,  161,  245, 2623, 2608,
     2608, 2611,    0,  259,  503, 2644, 2639,  519, 2608, 2620,
     2617, 2615,  292,    0,    0,    0, 2634, 2688, 2604, 2603,
     2601, 2605, 2604,  166, 2610, 2592, 2596, 2590, 2589, 2605,
      209, 2587, 2592,  255, 2590,  540, 2583, 2590, 2598, 2688,
     2595, 2598, 2614,    0,  577,  585,  593,  603,    0,  544,
      597,  598,  545,  603,  604,  615,  620,  624,  629,  633,
      642,  645,  648,  659,  654,  666,  671,  677,  683,  684,
      696,  708,  689,  701,  712, 2580, 2583, 2582, 2579,    0,
      306,    0,    0,  738,  748, 2580, 2573, 2573, 2573, 2575,

        0,  412,  756,  764, 2570, 2574, 2574, 2582, 2579, 2688,
     2599, 2566, 2562, 2565, 2576,    0,  434,  772,  780, 2594,
        0,    0,  234, 2567, 2561, 2560, 2590, 2589, 2568, 2567,
     2567, 2558, 2563,  396, 2554, 2546, 2560, 2552, 2558, 2553,
     2539, 2559, 2545, 2550, 2552,  120, 2538,  439, 2546, 2540,
     2535, 2533, 2546, 2542, 2532, 2688,  790,    0,  800,  808,
      801,  802,  806,  807,  818,  813,  825,  830,  842,  843,
      848,  857,  831,  854,  860,  863,  872,  877,  883,  878,
      884,  889,  901,  905,  908,  917,  923,  924,  928, 2529,
     2543, 2533,  487,  958,  968, 2532, 2543, 2540, 2528, 2526,

      978,  986, 2539, 2534, 2688, 2545, 2520, 2552, 2520, 2517,
     2523,  996, 1004, 2548, 2522, 2517, 2524, 2688, 2688,    0,
     2544, 2543, 2504, 2688, 2515, 2520, 2510, 2521, 2520, 2515,
     2512,  446, 2688, 2501, 2505, 2499, 2504, 2494, 2499, 2688,
     2494, 2506, 2688, 2496, 2485, 2491, 2496, 2501, 2500, 2489,
     2489, 2518, 1012, 1020, 2517, 1013,  929, 1016, 1019, 1020,
     1031, 1035, 1036, 1042, 1047, 1051, 1054, 1058, 1065, 1069,
     1070, 1081, 1082, 1086, 2482, 1093, 1098, 1099, 1105, 1110,
     1111, 1123, 1130, 1129, 1136, 1142, 2688, 2476, 2479, 2457,
     2461, 1168, 1178, 1186, 2449, 2688, 2431, 2424, 2433, 1194,

     1202, 1210, 2420, 2688, 2443, 2416,    0, 2426, 2411, 2406,
     1218, 1226, 1234,    0, 2402, 2407, 2688, 2430, 2428, 2400,
     2688, 2424, 2386, 2389, 2378, 2392, 2688, 2373, 2375, 2367,
     2371, 2370, 2366, 2348, 2355, 2350, 2333, 2346, 2326, 2327,
     2305, 2321, 2688, 2306, 2301,  536, 2332, 1114, 1227, 1245,
     1230, 1231, 1234, 1249, 1246, 1250, 1261, 1262, 1265, 1276,
     1279, 1282, 1283, 1294, 2309, 1295, 1298, 1299, 1310, 1315,
     1316, 1319, 1328, 1322,  537, 2305, 2299, 2250, 2251, 1359,
     2281, 2261, 2250, 2688, 2244, 1369, 2266, 2240, 2259, 2244,
     2214, 2167, 2164, 2186, 1379, 2200, 2199, 2106, 2101,    0,

     2129, 2107, 2098, 2097, 2096, 2090, 2077, 2072, 2065, 2062,
     2044, 2037, 2035, 2031, 2688, 2018, 2009, 2015, 2009, 2021,
     2018, 2016, 1994, 1989, 1997, 1990, 1984, 1372, 1977, 1373,
     1385, 1379, 1386, 1390, 1391, 1397, 1402, 1403, 1409, 1414,
     1418, 1421, 1971, 1425, 1430, 1434, 1439, 1448, 1451, 1455,
     1460, 1978, 1972, 1968, 1923, 1915, 1915, 1915, 1494, 1504,
     1897, 1899, 1902, 1512, 1520, 2688, 2688, 1880, 1900, 1860,
     1862, 1528, 1536, 1879, 1859,    0, 1887, 1850, 1856, 1851,
     2688, 1851, 1833, 1825, 1827, 1826, 1816, 2688, 1823, 1814,
     1803, 1814, 1809, 1805, 1789, 1790, 1799, 1783, 2688, 1799,

     1781, 1790, 1529, 1788, 1530, 1464, 1535, 1541, 1542, 1467,
     1546, 1553, 1557, 1558, 1570, 1767, 1571, 1574, 1575, 1586,
     1587, 1590, 1599, 1602, 1784, 1766, 1739, 1733, 2688, 1740,
     1707, 1633, 1732, 2688, 1710, 1693, 1641, 1727, 1659,    0,
     1659,  244, 1649, 1666, 1630, 1624,    0, 1637, 1593, 1593,
     1600, 1597, 1591,    0, 2688, 1574, 1591, 1559, 1568, 1571,
     2688, 1546, 2688, 1546, 1544, 2688, 1527, 1530, 1513, 1606,
     1510, 1642, 1643, 1646, 1647, 1684, 1708, 1709, 1712, 1713,
     1523, 1724, 1725, 1728, 1729, 1740, 1741, 1744, 1467, 1462,
     1453, 1446, 1458, 2688, 1773, 1460, 1449, 1781, 2688, 1468,

     1426, 2688, 2688, 1789, 1435, 1424, 2688, 2688, 1412, 1408,
     1398, 1395, 2688, 1376, 2688, 1370, 2688, 1375, 1372, 1361,
     1350, 2688, 1337, 1327, 1332, 1745, 1329, 1782, 1783, 1786,
     1795, 1823, 1318, 1855, 1317, 1816, 1817, 1820, 1821, 1329,
     1849, 1850, 1854, 1861, 1305, 1301, 1304, 2688, 1296,    0,
     1270, 1268,    0, 2688, 1280,    0, 1259, 2688, 1261, 1250,
     1239, 1232, 1220, 1220, 1225, 1150, 1149, 1130, 1147, 1137,
     1131, 1132, 1865, 1866, 1877,  410, 1119, 1880, 1884, 1113,
     1889, 1898, 1895, 1116, 1096, 1092, 1070, 2688, 1075, 2688,
     2688, 1074, 1080, 1054, 1058, 1042, 1063, 1041, 1038, 1024,

     1020, 1004,  997, 1011, 1004, 1904, 1909, 1910,  583,  962,
     1916, 1958,  950, 1921, 1982, 1983,  938,  922,  931,  916,
     2688,  915, 2688,  889,  891,  907,  911,  910,  898,  885,
      880,  872, 2688,  861,  849,  841, 1922, 1989, 1994,  600,
      844, 1998, 2037, 2060, 2083, 2098,    0,  836, 2016, 2001,
     2092,    0,  826,  826, 2688,  817, 2688,  802,  801,  810,
      791,  763,  728, 2688,  708,  709,  713,  703, 2039, 2093,
      601,  696, 2096, 2138, 2177, 2186,  702, 2042, 2097, 2180,
      688,  691,  661, 2688,  667,  669, 2688,  660,  664,  654,
      632, 2181,  448,  636, 2184,    0, 2218,  632, 2242, 2243,

      627,  599,  576,  548, 2688,  550, 2688,  501,  622,  485,
     2246,    0, 2247,  491,    0,  476,  455,  455,  449,  606,
      432, 2258,  433,  414, 2688,  386,  372,  348,    0, 2261,
      350,  270, 2688,  269,    0, 2688,    0, 2688, 2295, 2304,
     2313, 2322, 2327, 2331, 2337, 2343, 2352, 2361, 2370, 2379,
     2384, 2391, 2400, 2405,  291, 2408, 2412, 2415, 2419, 2422,
     2429, 2434, 2437, 2441, 2446, 2449,  260, 2452,  233,  220,
     2455,  201, 2458,  184, 2465,   90, 2474, 2477, 2486, 2495,
     2504, 2513
    } ;

static yyconst short int yy_def[983] =
    {   0,
      938,    1,  938,    3,    1,    1,    1,    7,    7,    7,
        7,    7,  939,  939,    7,    7,  940,  940,    7,    7,
        7,   21,    7,    7,    7,    7,  941,  941,  938,   29,
        7,    7,    7,    7,   29,   29,  938,  938,  938,  938,
      942,  943,  938,  938,  938,  938,  938,  938,  938,  938,
      938,  938,  938,  938,  938,  938,  938,  938,  944,  945,
      944,  946,  946,   63,   63,   63,   63,   63,   63,   63,
       63,   63,   63,   63,   63,   63,   63,  938,  938,  938,
      938,  938,  947,  947,  948,  947,  947,  938,  938,  938,
      938,  949,  950,  949,  949,  938,  938,  938,  938,  938,

      938,  951,  938,  938,  938,  938,  938,  938,  938,  938,
      938,  938,  952,  953,  952,  952,  954,  938,  938,  938,
      938,  938,  938,  942,  942,  955,  956,  938,  938,  938,
      938,  938,  938,  938,  938,  938,  938,  938,  938,  938,
      938,  938,  938,  938,  938,  938,  938,  938,  938,  938,
      938,  938,  944,  945,  957,  945,   61,   61,  958,   63,
       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
       63,   63,   63,   63,   63,  938,  938,  938,  938,  947,
      947,  948,  948,  947,  947,  938,  938,  938,  938,  938,

      949,  950,  949,   94,  938,  938,  938,  938,  938,  938,
      959,  938,  938,  938,  938,  952,  953,  952,  115,  960,
      961,  118,  938,  938,  938,  938,  962,  963,  938,  938,
      938,  938,  938,  938,  938,  938,  938,  938,  938,  938,
      938,  938,  938,  938,  938,  938,  938,  938,  938,  938,
      938,  938,  938,  938,  938,  938,  957,  964,  957,   61,
       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
       63,   63,   63,   63,   63,   63,   63,   63,   63,  938,
      938,  938,  938,  947,  947,  938,  938,  938,  938,  938,

       94,   94,  938,  938,  938,  938,  938,  965,  938,  938,
      938,  115,  115,  966,  938,  938,  938,  938,  938,  967,
      968,  963,  938,  938,  938,  938,  938,  938,  938,  938,
      938,  938,  938,  938,  938,  938,  938,  938,  938,  938,
      938,  938,  938,  938,  938,  938,  938,  938,  938,  938,
      938,  938,  964,  259,  260,   63,   63,   63,   63,   63,
       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
       63,   63,   63,   63,  945,   63,   63,   63,   63,   63,
       63,   63,   63,   63,   63,   63,  938,  938,  938,  938,
      938,  947,  947,  947,  938,  938,  938,  938,  938,  949,

      301,  949,  938,  938,  938,  938,  969,  938,  938,  938,
      952,  312,  952,  970,  938,  938,  938,  971,  938,  938,
      938,  938,  938,  938,  938,  938,  938,  938,  938,  938,
      938,  938,  938,  938,  938,  938,  938,  938,  938,  938,
      938,  938,  938,  938,  938,  938,  257,   63,   63,   63,
       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
       63,   63,   63,   63,  257,   63,   63,   63,   63,   63,
       63,   63,   63,   63,  945,  938,  938,  938,  938,  947,
      947,  938,  938,  938,  938,  949,  949,  938,  938,  938,
      963,  938,  938,  938,  952,  952,  963,  938,  938,  972,

      973,  938,  938,  938,  938,  938,  938,  938,  938,  938,
      938,  938,  938,  938,  938,  938,  938,  938,  938,  938,
      938,  938,  938,  938,  938,  938,  938,   63,  945,   63,
       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
       63,   63,  257,   63,   63,   63,   63,   63,   63,   63,
       63,  257,  257,  257,  938,  938,  938,  938,  947,  947,
      938,  938,  938,  949,  486,  938,  938,  938,  938,  938,
      938,  952,  495,  938,  938,  974,  938,  938,  938,  938,
      938,  938,  938,  938,  938,  938,  938,  938,  938,  938,
      938,  938,  938,  938,  938,  938,  938,  938,  938,  938,

      938,  938,   63,  257,   63,   63,   63,   63,   63,   63,
       63,   63,   63,   63,   63,  257,   63,   63,   63,   63,
       63,   63,   63,   63,  257,  257,  257,  938,  938,  938,
      938,  947,  947,  938,  938,  938,  949,  949,  938,  975,
      938,  938,  952,  952,  938,  938,  976,  938,  938,  938,
      938,  938,  938,  977,  938,  938,  938,  938,  938,  938,
      938,  938,  938,  938,  938,  938,  938,  938,  938,   63,
      257,   63,   63,   63,   63,  938,   63,   63,   63,   63,
      257,   63,   63,   63,   63,   63,   63,   63,  257,  257,
      257,  938,  938,  938,  947,  938,  938,  949,  938,  938,

      938,  938,  938,  952,  938,  938,  938,  938,  938,  938,
      938,  938,  938,  938,  938,  938,  938,  938,  938,  938,
      938,  938,  938,  938,  938,   63,  257,   63,   63,   63,
       63,  260,  945,  732,  978,   63,   63,   63,   63,  257,
       63,   63,   63,   63,  257,  257,  257,  938,  938,  947,
      938,  938,  949,  938,  938,  952,  938,  938,  938,  938,
      938,  938,  938,  938,  938,  938,  938,  938,  938,  938,
      938,  257,   63,   63,   63,  732,  257,   63,   63,  257,
       63,   63,   63,  257,  257,  257,  938,  938,  938,  938,
      938,  938,  938,  938,  938,  938,  979,  938,  938,  938,

      938,  938,  938,  938,  257,   63,   63,   63,  732,  257,
       63,  938,  257,   63,   63,   63,  257,  257,  257,  938,
      938,  938,  938,  938,  938,  938,  979,  980,  938,  938,
      938,  938,  938,  938,  938,  257,   63,   63,   63,  732,
      257,   63,  981,  982,  981,  980,  812,  257,   63,   63,
       63,  257,  257,  257,  938,  938,  938,  938,  938,  980,
      980,  938,  938,  938,  938,  938,  938,  257,   63,   63,
      732,  257,   63,  938,  980,  980,  257,   63,   63,   63,
      257,  257,  938,  938,  938,  938,  938,  938,  938,  938,
      257,   63,  732,  257,   63,  874,  938,  257,   63,   63,

      257,  257,  938,  938,  938,  938,  938,  257,  732,  257,
       63,  257,   63,  257,  257,  938,  938,  938,  257,  732,
      257,   63,  257,  938,  938,  938,  257,  732,  257,   63,
      257,  938,  938,  257,  257,  938,  257,    0,  938,  938,
      938,  938,  938,  938,  938,  938,  938,  938,  938,  938,
      938,  938,  938,  938,  938,  938,  938,  938,  938,  938,
      938,  938,  938,  938,  938,  938,  938,  938,  938,  938,
      938,  938,  938,  938,  938,  938,  938,  938,  938,  938,
      938,  938
    } ;

static yyconst short int yy_nxt[2736] =
    {   0,
       38,   39,   40,   38,   41,   38,   38,   38,   42,   42,
       42,   42,   42,   42,   42,   42,   38,   38,   38,   38,
       38,   43,   38,   38,   44,   45,   46,   47,   48,   38,
       38,   49,   38,   50,   51,   52,   38,   53,   38,   54,
       55,   56,   57,   58,   38,   38,   38,   38,   39,   40,
       38,   41,   59,   60,   38,   61,   61,   61,   61,   61,
       61,   61,   61,   38,   38,   38,   38,   62,   43,   38,
       62,   63,   64,   65,   66,   67,   62,   62,   68,   62,
       69,   70,   71,   62,   72,   62,   73,   74,   75,   76,
       77,   62,   62,   62,   79,  123,  707,   38,  124,   38,

      138,  139,   38,   38,   38,   38,   38,   80,   81,   38,
       38,   38,   38,   38,   38,   38,  119,   38,   38,   38,
       38,   38,   80,   81,   38,   82,  341,  140,  129,  119,
      144,   38,  141,   88,   89,   90,  130,  160,  131,   91,
       82,   84,   40,  120,   85,  160,  145,  160,   86,   86,
       86,   86,   86,   86,   86,   86,  121,  122,  146,  169,
      342,   87,   84,   40,  148,   85,  125,  147,   38,   86,
       86,   86,   86,   86,   86,   86,   86,   88,   89,   90,
      149,  125,   87,   91,   39,   40,  191,   93,  210,  192,
      647,   94,   94,   94,   94,   94,   94,   94,   94,   38,

      234,  235,  210,  197,   95,   39,   40,  576,   93,   38,
       38,  198,   94,   94,   94,   94,   94,   94,   94,   94,
       38,  132,   96,   96,  133,   95,  497,  134,   97,   97,
       98,   98,   99,   99,  242,  100,  100,  101,  243,  491,
       38,   38,  102,  102,  102,  102,  102,  102,  102,  102,
       38,  103,  104,  105,  110,  110,  702,  703,  111,  111,
      125,  106,   38,  107,  112,  112,  418,  108,  315,  109,
       39,   40,  210,  114,  120,  125,  316,  115,  115,  115,
      115,  115,  115,  115,  115,   38,  210,  121,  122,  246,
      116,   39,   40,  123,  114,  247,  124,  227,  115,  115,

      115,  115,  115,  115,  115,  115,   38,  191,  937,  936,
      192,  116,   38,   39,   40,   38,   41,   38,   38,   38,
      117,  117,  117,  117,  117,  117,  117,  117,   38,   38,
       38,   38,  118,   43,   38,  118,  118,  118,  118,  118,
      118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
      118,  118,  118,  118,  118,  118,  118,  118,  118,   42,
       42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
       42,   42,   42,   42,   42,  156,  935,  157,  157,  157,
      157,  157,  157,  157,  157,  153,  154,  153,  158,  158,
      158,  158,  158,  158,  158,  158,  159,  153,  154,  934,

      158,  158,  158,  158,  158,  158,  158,  158,  159,  160,
      160,  144,  933,  125,  167,  161,  164,  160,  168,  165,
      160,  160,  166,  162,  186,  163,  160,  145,  125,  160,
      328,  160,  160,  329,  160,  125,  160,  170,  171,  172,
      173,  932,  160,  160,  160,  174,  809,  175,  177,  153,
      125,  160,  160,  160,  160,  160,  160,  176,  160,  179,
      931,  181,  160,  160,  178,  160,  160,  929,  180,  160,
      160,  160,  160,  927,  160,  183,  160,  182,  160,  909,
      344,  428,  926,  184,  345,  429,  185,  153,  160,  194,
      925,  195,  195,  195,  195,  195,  195,  195,  195,  203,

      924,  204,  204,  204,  204,  204,  204,  204,  204,  218,
      390,  219,  219,  219,  219,  219,  219,  219,  219,  221,
      923,  921,  221,  221,  221,  221,  391,  221,  221,  221,
      221,  221,  221,  221,  221,  919,  221,  221,  221,  222,
      221,  221,  222,  222,  222,  222,  222,  222,  222,  222,
      222,  222,  222,  222,  222,  222,  222,  222,  222,  222,
      222,  222,  222,  222,  222,  222,  249,  160,  160,  525,
      552,  526,  553,  527,  554,  160,  160,  160,  160,  918,
      250,  263,  251,  258,  917,  155,  155,  155,  155,  155,
      155,  155,  155,  259,  259,  259,  259,  259,  259,  259,

      259,  260,  260,  260,  260,  260,  260,  260,  260,  154,
      916,  158,  158,  158,  158,  158,  158,  158,  158,  159,
      160,  160,  153,  871,  840,  915,  160,  160,  160,  160,
      160,  160,  261,  262,  264,  265,  160,  160,  160,  153,
      153,  928,  893,  160,  268,  153,  160,  160,  160,  266,
      267,  160,  160,  160,  914,  160,  160,  160,  920,  912,
      160,  153,  160,  269,  160,  160,  160,  910,  160,  271,
      270,  160,  274,  160,  908,  160,  160,  160,  160,  160,
      907,  160,  160,  272,  275,  160,  273,  160,  276,  160,
      160,  906,  160,  905,  160,  277,  887,  160,  904,  160,

      160,  278,  160,  903,  160,  279,  160,  160,  160,  282,
      160,  280,  160,  281,  160,  160,  160,  160,  902,  160,
      160,  901,  160,  283,  160,  284,  285,  160,  288,  160,
      286,  160,  160,  287,  160,  289,  898,  894,  891,  160,
      890,  160,  889,  160,  888,  160,  294,  294,  294,  294,
      294,  294,  294,  294,  194,  887,  295,  295,  295,  295,
      295,  295,  295,  295,  301,  301,  301,  301,  301,  301,
      301,  301,  302,  302,  302,  302,  302,  302,  302,  302,
      312,  312,  312,  312,  312,  312,  312,  312,  313,  313,
      313,  313,  313,  313,  313,  313,  258,  886,  155,  155,

      155,  155,  155,  155,  155,  155,  353,  861,  354,  354,
      354,  354,  354,  354,  354,  354,  355,  355,  355,  355,
      355,  355,  355,  355,  160,  160,  861,  356,  357,  160,
      160,  358,  160,  160,  160,  160,  160,  160,  160,  160,
      359,  160,  885,  884,  160,  360,  160,  361,  160,  160,
      362,  160,  883,  160,  160,  882,  160,  881,  160,  877,
      363,  160,  369,  160,  160,  160,  160,  872,  868,  365,
      366,  160,  364,  160,  160,  160,  160,  160,  867,  160,
      160,  160,  367,  371,  368,  160,  160,  160,  160,  375,
      160,  160,  866,  160,  160,  160,  160,  865,  370,  372,

      160,  160,  373,  160,  374,  160,  160,  160,  160,  160,
      160,  160,  160,  864,  160,  160,  160,  160,  377,  863,
      380,  862,  160,  376,  160,  378,  861,  828,  160,  379,
      859,  160,  160,  858,  160,  857,  160,  381,  160,  160,
      160,  160,  856,  855,  384,  382,  160,  160,  160,  383,
      160,  160,  160,  385,  160,  160,  160,  160,  854,  160,
      160,  160,  160,  386,  392,  853,  393,  393,  393,  393,
      393,  393,  393,  393,  194,  852,  394,  394,  394,  394,
      394,  394,  394,  394,  400,  848,  401,  401,  401,  401,
      401,  401,  401,  401,  402,  402,  402,  402,  402,  402,

      402,  402,  411,  841,  412,  412,  412,  412,  412,  412,
      412,  412,  413,  413,  413,  413,  413,  413,  413,  413,
      418,  418,  418,  418,  418,  418,  418,  418,  447,  447,
      447,  447,  447,  447,  447,  447,  160,  836,  835,  160,
      834,  833,  160,  160,  160,  450,  160,  160,  449,  160,
      160,  160,  160,  160,  452,  451,  832,  448,  453,  160,
      831,  830,  160,  454,  160,  160,  160,  160,  160,  160,
      160,  455,  456,  160,  160,  160,  829,  160,  160,  828,
      160,  160,  160,  826,  160,  160,  457,  160,  160,  160,
      458,  160,  160,  160,  825,  824,  160,  459,  160,  460,

      160,  160,  160,  462,  160,  160,  823,  822,  461,  160,
      821,  820,  160,  160,  160,  160,  160,  160,  464,  160,
      466,  160,  160,  463,  160,  819,  160,  818,  160,  160,
      160,  160,  160,  160,  160,  467,  160,  160,  160,  817,
      813,  160,  160,  160,  470,  528,  160,  160,  475,  469,
      471,  468,  160,  160,  160,  810,  160,  472,  805,  160,
      160,  160,  160,  160,  804,  160,  473,  160,  803,  160,
      802,  801,  474,  160,  800,  160,  480,  480,  480,  480,
      480,  480,  480,  480,  392,  799,  481,  481,  481,  481,
      481,  481,  481,  481,  394,  394,  394,  394,  394,  394,

      394,  394,  486,  486,  486,  486,  486,  486,  486,  486,
      487,  487,  487,  487,  487,  487,  487,  487,  402,  402,
      402,  402,  402,  402,  402,  402,  495,  495,  495,  495,
      495,  495,  495,  495,  496,  496,  496,  496,  496,  496,
      496,  496,  413,  413,  413,  413,  413,  413,  413,  413,
      160,  529,  798,  160,  160,  797,  796,  160,  160,  795,
      160,  160,  160,  160,  160,  160,  531,  160,  160,  160,
      794,  530,  160,  160,  533,  532,  160,  160,  160,  160,
      160,  160,  160,  160,  160,  160,  793,  792,  160,  791,
      790,  534,  160,  160,  160,  160,  160,  536,  160,  160,

      537,  535,  539,  538,  789,  160,  160,  160,  540,  160,
      160,  788,  160,  160,  160,  160,  160,  160,  160,  787,
      542,  160,  160,  545,  541,  160,  160,  160,  160,  160,
      160,  160,  160,  160,  544,  786,  546,  547,  160,  549,
      785,  160,  160,  160,  784,  160,  160,  160,  160,  160,
      160,  160,  160,  160,  780,  160,  763,  777,  548,  160,
      772,  160,  551,  771,  550,  559,  770,  560,  560,  560,
      560,  560,  560,  560,  560,  564,  769,  565,  565,  565,
      565,  565,  565,  565,  565,  572,  768,  573,  573,  573,
      573,  573,  573,  573,  573,  160,  160,  767,  603,  766,

      765,  764,  160,  160,  160,  160,  160,  605,  160,  160,
      607,  606,  160,  160,  160,  763,  160,  160,  160,  160,
      610,  160,  609,  160,  160,  611,  160,  608,  160,  762,
      160,  761,  160,  160,  160,  160,  160,  160,  760,  612,
      160,  160,  160,  759,  160,  160,  613,  160,  160,  160,
      614,  160,  160,  160,  160,  615,  160,  160,  160,  758,
      757,  160,  160,  160,  620,  160,  618,  160,  617,  755,
      160,  160,  160,  619,  160,  621,  754,  622,  160,  160,
      752,  160,  160,  160,  160,  751,  160,  160,  160,  749,
      160,  160,  748,  160,  623,  160,  747,  160,  160,  746,

      676,  624,  632,  632,  632,  632,  632,  632,  632,  632,
      559,  745,  633,  633,  633,  633,  633,  633,  633,  633,
      637,  637,  637,  637,  637,  637,  637,  637,  638,  638,
      638,  638,  638,  638,  638,  638,  643,  643,  643,  643,
      643,  643,  643,  643,  644,  644,  644,  644,  644,  644,
      644,  644,  160,  160,  740,  727,  725,  672,  160,  673,
      160,  160,  160,  160,  160,  160,  160,  724,  160,  160,
      670,  723,  160,  160,  160,  160,  160,  160,  675,  677,
      160,  160,  674,  722,  160,  721,  160,  720,  160,  160,
      160,  160,  679,  160,  160,  678,  719,  160,  160,  718,

      717,  160,  682,  160,  160,  160,  160,  683,  160,  160,
      160,  684,  680,  160,  716,  715,  687,  160,  160,  160,
      160,  160,  160,  160,  686,  160,  713,  685,  712,  160,
      160,  711,  160,  160,  710,  160,  726,  160,  709,  160,
      688,  695,  695,  695,  695,  695,  695,  695,  695,  698,
      698,  698,  698,  698,  698,  698,  698,  704,  704,  704,
      704,  704,  704,  704,  704,  160,  160,  708,  706,  160,
      160,  705,  572,  160,  729,  160,  160,  730,  160,  160,
      160,  701,  731,  728,  714,  714,  699,  714,  714,  732,
      733,  714,  734,  734,  734,  734,  734,  734,  734,  734,

      735,  714,  714,  714,  736,  714,  714,  736,  736,  736,
      736,  736,  736,  736,  736,  736,  736,  736,  736,  736,
      736,  736,  736,  736,  736,  736,  736,  736,  736,  736,
      736,  160,  160,  564,  697,  738,  160,  696,  559,  160,
      160,  160,  160,  160,  160,  160,  160,  160,  160,  741,
      737,  160,  160,  694,  739,  160,  160,  160,  160,  160,
      160,  160,  160,  160,  160,  693,  692,  160,  160,  742,
      691,  160,  160,  160,  160,  160,  160,  160,  160,  743,
      744,  750,  750,  750,  750,  750,  750,  750,  750,  753,
      753,  753,  753,  753,  753,  753,  753,  756,  756,  756,

      756,  756,  756,  756,  756,  160,  160,  690,  689,  160,
      681,  671,  773,  160,  160,  160,  774,  160,  160,  160,
      775,  669,  668,  667,  666,  665,  160,  664,  160,  154,
      663,  153,  153,  153,  153,  153,  153,  153,  153,  160,
      160,  662,  661,  160,  160,  660,  659,  160,  160,  160,
      160,  779,  160,  160,  160,  778,  658,  657,  656,  655,
      654,  653,  776,  158,  158,  158,  158,  158,  158,  158,
      158,  159,  160,  160,  652,  651,  781,  160,  650,  649,
      160,  160,  160,  160,  160,  160,  782,  160,  160,  160,
      783,  648,  160,  500,  160,  646,  160,  807,  160,  160,

      160,  806,  645,  160,  808,  642,  641,  160,  160,  640,
      160,  160,  160,  160,  639,  160,  811,  160,  160,  812,
      160,  160,  160,  815,  814,  636,  160,  160,  160,  160,
      837,  160,  160,  160,  635,  160,  816,  160,  634,  160,
      160,  160,  160,  160,  849,  160,  839,  160,  631,  160,
      838,  630,  160,  160,  160,  160,  629,  842,  827,  827,
      628,  827,  827,  843,  844,  827,  845,  845,  845,  845,
      845,  845,  845,  845,  846,  827,  827,  827,  847,  827,
      827,  847,  847,  847,  847,  847,  847,  847,  847,  847,
      847,  847,  847,  847,  847,  847,  847,  847,  847,  847,

      847,  847,  847,  847,  847,  160,  160,  627,  626,  625,
      616,  604,  160,  160,  160,  160,  160,  160,  850,  851,
      160,  873,  160,  602,  160,  160,  601,  160,  600,  160,
      599,  160,  160,  598,  879,  869,  870,  827,  827,  160,
      827,  827,  597,  844,  827,  596,  595,  160,  594,  160,
      878,  593,  592,  828,  827,  827,  827,  591,  827,  827,
      827,  827,  160,  827,  827,  160,  827,  827,  590,  899,
      160,  589,  160,  160,  588,  160,  828,  827,  827,  827,
      587,  827,  827,  827,  827,  586,  827,  827,  585,  844,
      827,  845,  845,  845,  845,  845,  845,  845,  845,  846,

      827,  827,  827,  584,  827,  827,  875,  875,  875,  875,
      875,  875,  875,  875,  876,  160,  160,  880,  583,  160,
      160,  582,  581,  160,  160,  160,  160,  160,  160,  160,
      160,  580,  579,  578,  892,  500,  575,  895,  827,  827,
      574,  827,  827,  896,  897,  827,  874,  874,  874,  874,
      874,  874,  874,  874,  828,  827,  827,  827,  896,  827,
      827,  896,  896,  896,  896,  896,  896,  896,  896,  896,
      896,  896,  896,  896,  896,  896,  896,  896,  896,  896,
      896,  896,  896,  896,  896,  875,  875,  875,  875,  875,
      875,  875,  875,  876,  875,  875,  875,  875,  875,  875,

      875,  875,  876,  160,  160,  938,  411,  160,  571,  570,
      569,  160,  160,  160,  160,  911,  900,  160,  827,  827,
      938,  827,  827,  897,  897,  827,  827,  827,  827,  827,
      827,  827,  827,  827,  828,  827,  827,  827,  897,  827,
      827,  897,  897,  897,  897,  897,  897,  897,  897,  897,
      897,  897,  897,  897,  897,  897,  897,  897,  897,  897,
      897,  897,  897,  897,  897,  160,  160,  568,  567,  160,
      160,  566,  400,  160,  160,  160,  913,  160,  160,  160,
      160,  160,  922,  563,  160,  562,  561,  392,  558,  160,
      557,  160,  160,  930,  160,   83,   83,   83,   83,   83,

       83,   83,   83,   83,   92,   92,   92,   92,   92,   92,
       92,   92,   92,  113,  113,  113,  113,  113,  113,  113,
      113,  113,  125,  125,  556,  125,  125,  125,  125,  125,
      125,  127,  555,  127,  153,  153,  543,  153,  353,  153,
      155,  524,  523,  155,  522,  155,  160,  160,  521,  160,
      160,  160,  190,  190,  520,  190,  190,  190,  190,  190,
      190,  193,  193,  519,  193,  193,  193,  193,  193,  193,
      201,  518,  517,  201,  201,  201,  201,  516,  201,  202,
      202,  515,  202,  202,  202,  202,  202,  202,  211,  514,
      211,  216,  513,  512,  216,  216,  216,  216,  511,  216,

      217,  217,  510,  217,  217,  217,  217,  217,  217,  220,
      509,  220,  228,  508,  228,  257,  257,  507,  257,  506,
      257,  159,  159,  308,  505,  308,  314,  504,  314,  221,
      503,  502,  221,  221,  320,  221,  500,  221,  321,  499,
      321,  322,  498,  322,  258,  258,  494,  493,  492,  258,
      407,  490,  407,  414,  489,  414,  419,  488,  419,  501,
      485,  501,  577,  484,  577,  700,  700,  483,  700,  700,
      700,  700,  700,  700,  714,  714,  482,  714,  714,  714,
      714,  714,  714,  159,  159,  159,  827,  827,  479,  827,
      827,  827,  827,  827,  827,  860,  860,  478,  860,  860,

      860,  860,  860,  860,  843,  843,  477,  843,  843,  843,
      843,  843,  843,  874,  874,  476,  874,  874,  874,  874,
      874,  874,  465,  154,  446,  445,  444,  443,  442,  441,
      440,  439,  438,  437,  436,  435,  434,  433,  432,  431,
      430,  427,  426,  425,  424,  423,  422,  421,  420,  938,
      320,  417,  416,  415,  126,  410,  409,  408,  126,  406,
      405,  404,  403,  399,  398,  397,  396,  395,  389,  388,
      387,  352,  351,  350,  349,  348,  347,  346,  343,  340,
      339,  338,  337,  336,  335,  334,  333,  332,  331,  330,
      327,  326,  325,  324,  323,  126,  320,  319,  318,  317,

      126,  311,  310,  309,  210,  126,  307,  306,  305,  304,
      303,  300,  299,  298,  297,  296,  293,  292,  291,  290,
      154,  256,  255,  254,  253,  252,  248,  245,  244,  241,
      240,  239,  238,  237,  236,  233,  232,  231,  230,  229,
      126,  226,  225,  224,  223,  126,  128,  215,  214,  213,
      212,  210,  210,  210,  126,  210,  209,  208,  207,  206,
      205,  128,  200,  199,  196,  128,  189,  188,  187,  154,
      152,  151,  150,  143,  142,  137,  136,  135,  128,  126,
      938,   38,   38,   38,   38,   78,   78,   37,  938,  938,
      938,  938,  938,  938,  938,  938,  938,  938,  938,  938,

      938,  938,  938,  938,  938,  938,  938,  938,  938,  938,
      938,  938,  938,  938,  938,  938,  938,  938,  938,  938,
      938,  938,  938,  938,  938,  938,  938,  938,  938,  938,
      938,  938,  938,  938,  938
    } ;

static yyconst short int yy_chk[2736] =
    {   0,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    3,    3,    3,
        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
        3,    3,    3,    3,    7,   39,  976,   31,   39,    9,

       49,   49,    7,    7,    7,    7,    7,    9,    9,    7,
       32,    7,    7,    7,   10,    7,   31,    7,    7,    7,
        7,    7,   10,   10,   15,    9,  246,   50,   44,   32,
       53,   33,   50,   15,   15,   15,   44,   66,   44,   15,
       10,   13,   13,   33,   13,   66,   53,   66,   13,   13,
       13,   13,   13,   13,   13,   13,   33,   33,   54,   66,
      246,   13,   14,   14,   55,   14,   93,   54,   16,   14,
       14,   14,   14,   14,   14,   14,   14,   16,   16,   16,
       55,   93,   14,   16,   17,   17,   84,   17,  107,   84,
      974,   17,   17,   17,   17,   17,   17,   17,   17,   17,

      134,  134,  107,   89,   17,   18,   18,  972,   18,   19,
       20,   89,   18,   18,   18,   18,   18,   18,   18,   18,
       18,   45,   19,   20,   45,   18,  970,   45,   19,   20,
       19,   20,   19,   20,  141,   19,   20,   21,  141,  969,
       25,   26,   21,   21,   21,   21,   21,   21,   21,   21,
       21,   21,   21,   21,   25,   26,  642,  642,   25,   26,
      114,   21,   34,   21,   25,   26,  967,   21,  223,   21,
       27,   27,  108,   27,   34,  114,  223,   27,   27,   27,
       27,   27,   27,   27,   27,   27,  108,   34,   34,  144,
       27,   28,   28,  123,   28,  144,  123,  955,   28,   28,

       28,   28,   28,   28,   28,   28,   28,  191,  934,  932,
      191,   28,   29,   29,   29,   29,   29,   29,   29,   29,
       29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
       29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
       29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
       29,   29,   29,   29,   29,   29,   29,   29,   29,   35,
       35,   35,   35,   35,   35,   35,   35,   36,   36,   36,
       36,   36,   36,   36,   36,   61,  931,   61,   61,   61,
       61,   61,   61,   61,   61,   62,   62,  928,   62,   62,
       62,   62,   62,   62,   62,   62,   62,   63,   63,  927,

       63,   63,   63,   63,   63,   63,   63,   63,   63,   64,
       65,   78,  926,  202,   65,   63,   64,   64,   65,   64,
       65,   67,   64,   63,   78,   63,   68,   78,  202,   67,
      234,   67,   69,  234,   68,  217,   68,   67,   68,   68,
       69,  924,   69,   70,   71,   69,  776,   70,   72,  776,
      217,   70,   71,   70,   71,   73,   72,   71,   72,   73,
      923,   74,   75,   73,   72,   73,   76,  921,   73,   74,
       75,   74,   75,  919,   76,   75,   76,   74,   77,  893,
      248,  332,  918,   76,  248,  332,   77,  893,   77,   86,
      917,   86,   86,   86,   86,   86,   86,   86,   86,   94,

      916,   94,   94,   94,   94,   94,   94,   94,   94,  115,
      293,  115,  115,  115,  115,  115,  115,  115,  115,  118,
      914,  910,  118,  118,  118,  118,  293,  118,  118,  118,
      118,  118,  118,  118,  118,  908,  118,  118,  118,  118,
      118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
      118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
      118,  118,  118,  118,  118,  118,  146,  160,  163,  446,
      475,  446,  475,  446,  475,  160,  163,  160,  163,  906,
      146,  163,  146,  155,  904,  155,  155,  155,  155,  155,
      155,  155,  155,  156,  156,  156,  156,  156,  156,  156,

      156,  157,  157,  157,  157,  157,  157,  157,  157,  158,
      903,  158,  158,  158,  158,  158,  158,  158,  158,  158,
      161,  162,  809,  840,  809,  902,  164,  165,  161,  162,
      161,  162,  161,  162,  164,  165,  164,  165,  166,  840,
      871,  920,  871,  167,  167,  920,  166,  168,  166,  166,
      166,  167,  169,  167,  901,  168,  170,  168,  909,  898,
      169,  909,  169,  168,  170,  171,  170,  894,  172,  170,
      169,  173,  173,  171,  891,  171,  172,  175,  172,  173,
      890,  173,  174,  171,  174,  175,  172,  175,  174,  176,
      174,  889,  174,  888,  177,  175,  886,  176,  885,  176,

      178,  176,  177,  883,  177,  177,  179,  180,  178,  179,
      178,  177,  183,  178,  179,  180,  179,  180,  882,  181,
      183,  881,  183,  179,  184,  179,  180,  181,  184,  181,
      181,  182,  184,  182,  184,  185,  877,  872,  868,  182,
      867,  182,  866,  185,  865,  185,  194,  194,  194,  194,
      194,  194,  194,  194,  195,  863,  195,  195,  195,  195,
      195,  195,  195,  195,  203,  203,  203,  203,  203,  203,
      203,  203,  204,  204,  204,  204,  204,  204,  204,  204,
      218,  218,  218,  218,  218,  218,  218,  218,  219,  219,
      219,  219,  219,  219,  219,  219,  257,  862,  257,  257,

      257,  257,  257,  257,  257,  257,  259,  861,  259,  259,
      259,  259,  259,  259,  259,  259,  260,  260,  260,  260,
      260,  260,  260,  260,  261,  262,  860,  261,  262,  263,
      264,  263,  261,  262,  261,  262,  266,  263,  264,  263,
      264,  265,  859,  858,  266,  265,  266,  266,  267,  265,
      266,  265,  856,  268,  273,  854,  267,  853,  267,  848,
      267,  268,  273,  268,  273,  269,  270,  841,  836,  269,
      270,  271,  268,  269,  270,  269,  270,  274,  835,  271,
      272,  271,  271,  275,  272,  274,  276,  274,  272,  279,
      272,  275,  834,  275,  276,  277,  276,  832,  274,  276,

      278,  280,  277,  277,  278,  277,  279,  281,  278,  280,
      278,  280,  282,  831,  279,  281,  279,  281,  280,  830,
      282,  829,  282,  279,  283,  281,  828,  827,  284,  281,
      826,  285,  283,  825,  283,  824,  284,  283,  284,  285,
      286,  285,  822,  820,  286,  284,  287,  288,  286,  285,
      286,  289,  357,  287,  287,  288,  287,  288,  819,  289,
      357,  289,  357,  288,  294,  818,  294,  294,  294,  294,
      294,  294,  294,  294,  295,  817,  295,  295,  295,  295,
      295,  295,  295,  295,  301,  813,  301,  301,  301,  301,
      301,  301,  301,  301,  302,  302,  302,  302,  302,  302,

      302,  302,  312,  810,  312,  312,  312,  312,  312,  312,
      312,  312,  313,  313,  313,  313,  313,  313,  313,  313,
      353,  353,  353,  353,  353,  353,  353,  353,  354,  354,
      354,  354,  354,  354,  354,  354,  356,  805,  804,  358,
      803,  802,  359,  360,  356,  359,  356,  358,  358,  358,
      359,  360,  359,  360,  361,  360,  801,  356,  362,  363,
      800,  799,  361,  363,  361,  364,  362,  363,  362,  363,
      365,  364,  365,  364,  366,  364,  798,  367,  365,  797,
      365,  368,  366,  796,  366,  367,  366,  367,  369,  368,
      366,  368,  370,  371,  795,  794,  369,  368,  369,  369,

      370,  371,  370,  371,  372,  373,  793,  792,  370,  374,
      789,  787,  372,  373,  372,  373,  376,  374,  373,  374,
      376,  377,  378,  372,  376,  786,  376,  785,  379,  377,
      378,  377,  378,  380,  381,  378,  379,  448,  379,  784,
      780,  380,  381,  380,  381,  448,  382,  448,  386,  380,
      382,  379,  384,  383,  382,  777,  382,  383,  772,  385,
      384,  383,  384,  383,  771,  386,  384,  385,  770,  385,
      769,  768,  385,  386,  767,  386,  392,  392,  392,  392,
      392,  392,  392,  392,  393,  766,  393,  393,  393,  393,
      393,  393,  393,  393,  394,  394,  394,  394,  394,  394,

      394,  394,  400,  400,  400,  400,  400,  400,  400,  400,
      401,  401,  401,  401,  401,  401,  401,  401,  402,  402,
      402,  402,  402,  402,  402,  402,  411,  411,  411,  411,
      411,  411,  411,  411,  412,  412,  412,  412,  412,  412,
      412,  412,  413,  413,  413,  413,  413,  413,  413,  413,
      449,  450,  765,  451,  452,  764,  763,  453,  449,  762,
      449,  451,  452,  451,  452,  453,  452,  453,  450,  455,
      761,  451,  454,  456,  454,  453,  450,  455,  450,  455,
      454,  456,  454,  456,  457,  458,  760,  759,  459,  757,
      755,  456,  457,  458,  457,  458,  459,  458,  459,  460,

      459,  457,  461,  460,  752,  462,  463,  460,  462,  460,
      461,  751,  461,  462,  463,  462,  463,  464,  466,  749,
      464,  467,  468,  467,  463,  464,  466,  464,  466,  467,
      468,  467,  468,  469,  466,  747,  468,  469,  470,  471,
      746,  469,  472,  469,  745,  474,  470,  471,  470,  471,
      472,  473,  472,  474,  740,  474,  735,  733,  470,  473,
      727,  473,  474,  725,  473,  480,  724,  480,  480,  480,
      480,  480,  480,  480,  480,  486,  723,  486,  486,  486,
      486,  486,  486,  486,  486,  495,  721,  495,  495,  495,
      495,  495,  495,  495,  495,  528,  530,  720,  528,  719,

      718,  716,  532,  528,  530,  528,  530,  530,  531,  533,
      532,  531,  532,  534,  535,  714,  531,  533,  531,  533,
      536,  534,  535,  534,  535,  537,  538,  533,  536,  712,
      536,  711,  539,  537,  538,  537,  538,  540,  710,  538,
      539,  541,  539,  709,  542,  540,  539,  540,  544,  541,
      540,  541,  542,  545,  542,  541,  544,  546,  544,  706,
      705,  545,  547,  545,  547,  546,  545,  546,  544,  701,
      547,  548,  547,  546,  549,  548,  700,  549,  550,  548,
      697,  548,  549,  551,  549,  696,  550,  606,  550,  693,
      610,  551,  692,  551,  550,  606,  691,  606,  610,  690,

      610,  551,  559,  559,  559,  559,  559,  559,  559,  559,
      560,  689,  560,  560,  560,  560,  560,  560,  560,  560,
      564,  564,  564,  564,  564,  564,  564,  564,  565,  565,
      565,  565,  565,  565,  565,  565,  572,  572,  572,  572,
      572,  572,  572,  572,  573,  573,  573,  573,  573,  573,
      573,  573,  603,  605,  681,  671,  669,  605,  607,  607,
      603,  605,  603,  605,  608,  609,  607,  668,  607,  611,
      603,  667,  608,  609,  608,  609,  612,  611,  609,  611,
      613,  614,  608,  665,  612,  664,  612,  662,  613,  614,
      613,  614,  614,  615,  617,  612,  660,  618,  619,  659,

      658,  615,  617,  615,  617,  618,  619,  618,  619,  620,
      621,  619,  615,  622,  657,  656,  622,  620,  621,  620,
      621,  622,  623,  622,  621,  624,  653,  620,  652,  670,
      623,  651,  623,  624,  650,  624,  670,  670,  649,  670,
      623,  632,  632,  632,  632,  632,  632,  632,  632,  637,
      637,  637,  637,  637,  637,  637,  637,  643,  643,  643,
      643,  643,  643,  643,  643,  672,  673,  648,  646,  674,
      675,  645,  644,  672,  673,  672,  673,  674,  675,  674,
      675,  641,  675,  672,  676,  676,  639,  676,  676,  676,
      676,  676,  676,  676,  676,  676,  676,  676,  676,  676,

      676,  676,  676,  676,  676,  676,  676,  676,  676,  676,
      676,  676,  676,  676,  676,  676,  676,  676,  676,  676,
      676,  676,  676,  676,  676,  676,  676,  676,  676,  676,
      676,  677,  678,  638,  636,  679,  680,  635,  633,  677,
      678,  677,  678,  679,  680,  679,  680,  682,  683,  682,
      678,  684,  685,  631,  680,  682,  683,  682,  683,  684,
      685,  684,  685,  686,  687,  630,  628,  688,  726,  684,
      627,  686,  687,  686,  687,  688,  726,  688,  726,  686,
      687,  695,  695,  695,  695,  695,  695,  695,  695,  698,
      698,  698,  698,  698,  698,  698,  698,  704,  704,  704,

      704,  704,  704,  704,  704,  728,  729,  626,  625,  730,
      616,  604,  728,  728,  729,  728,  729,  730,  731,  730,
      730,  602,  601,  600,  598,  597,  731,  596,  731,  732,
      595,  732,  732,  732,  732,  732,  732,  732,  732,  736,
      737,  594,  593,  738,  739,  592,  591,  736,  737,  736,
      737,  738,  739,  738,  739,  736,  590,  589,  587,  586,
      585,  584,  732,  734,  734,  734,  734,  734,  734,  734,
      734,  734,  741,  742,  583,  582,  741,  743,  580,  579,
      741,  742,  741,  742,  744,  743,  742,  743,  773,  774,
      743,  578,  744,  577,  744,  575,  773,  774,  773,  774,

      775,  773,  574,  778,  775,  571,  570,  779,  775,  569,
      775,  778,  781,  778,  568,  779,  778,  779,  783,  779,
      781,  782,  781,  782,  781,  563,  783,  806,  783,  782,
      806,  782,  807,  808,  562,  806,  783,  806,  561,  811,
      807,  808,  807,  808,  814,  837,  808,  811,  558,  811,
      807,  557,  814,  837,  814,  837,  556,  811,  812,  812,
      555,  812,  812,  812,  812,  812,  812,  812,  812,  812,
      812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
      812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
      812,  812,  812,  812,  812,  812,  812,  812,  812,  812,

      812,  812,  812,  812,  812,  815,  816,  554,  553,  552,
      543,  529,  838,  815,  816,  815,  816,  839,  815,  816,
      838,  842,  838,  527,  850,  839,  526,  839,  525,  842,
      524,  842,  850,  523,  850,  838,  839,  843,  843,  849,
      843,  843,  522,  843,  843,  521,  520,  849,  519,  849,
      849,  518,  517,  843,  843,  843,  843,  516,  843,  843,
      844,  844,  869,  844,  844,  878,  844,  844,  514,  878,
      869,  513,  869,  878,  512,  878,  844,  844,  844,  844,
      511,  844,  844,  845,  845,  510,  845,  845,  509,  845,
      845,  845,  845,  845,  845,  845,  845,  845,  845,  845,

      845,  845,  845,  508,  845,  845,  846,  846,  846,  846,
      846,  846,  846,  846,  846,  851,  870,  851,  507,  873,
      879,  506,  505,  851,  870,  851,  870,  873,  879,  873,
      879,  504,  503,  502,  870,  501,  499,  873,  874,  874,
      498,  874,  874,  874,  874,  874,  874,  874,  874,  874,
      874,  874,  874,  874,  874,  874,  874,  874,  874,  874,
      874,  874,  874,  874,  874,  874,  874,  874,  874,  874,
      874,  874,  874,  874,  874,  874,  874,  874,  874,  874,
      874,  874,  874,  874,  874,  875,  875,  875,  875,  875,
      875,  875,  875,  875,  876,  876,  876,  876,  876,  876,

      876,  876,  876,  880,  892,  497,  496,  895,  494,  493,
      492,  880,  892,  880,  892,  895,  880,  895,  897,  897,
      491,  897,  897,  897,  897,  897,  897,  897,  897,  897,
      897,  897,  897,  897,  897,  897,  897,  897,  897,  897,
      897,  897,  897,  897,  897,  897,  897,  897,  897,  897,
      897,  897,  897,  897,  897,  897,  897,  897,  897,  897,
      897,  897,  897,  897,  897,  899,  900,  490,  489,  911,
      913,  488,  487,  899,  900,  899,  900,  911,  913,  911,
      913,  922,  911,  485,  930,  483,  482,  481,  479,  922,
      478,  922,  930,  922,  930,  939,  939,  939,  939,  939,

      939,  939,  939,  939,  940,  940,  940,  940,  940,  940,
      940,  940,  940,  941,  941,  941,  941,  941,  941,  941,
      941,  941,  942,  942,  477,  942,  942,  942,  942,  942,
      942,  943,  476,  943,  944,  944,  465,  944,  447,  944,
      945,  445,  444,  945,  442,  945,  946,  946,  441,  946,
      946,  946,  947,  947,  440,  947,  947,  947,  947,  947,
      947,  948,  948,  439,  948,  948,  948,  948,  948,  948,
      949,  438,  437,  949,  949,  949,  949,  436,  949,  950,
      950,  435,  950,  950,  950,  950,  950,  950,  951,  434,
      951,  952,  433,  432,  952,  952,  952,  952,  431,  952,

      953,  953,  430,  953,  953,  953,  953,  953,  953,  954,
      429,  954,  956,  428,  956,  957,  957,  426,  957,  425,
      957,  958,  958,  959,  424,  959,  960,  423,  960,  961,
      422,  420,  961,  961,  419,  961,  418,  961,  962,  416,
      962,  963,  415,  963,  964,  964,  410,  409,  408,  964,
      965,  406,  965,  966,  405,  966,  968,  403,  968,  971,
      399,  971,  973,  398,  973,  975,  975,  397,  975,  975,
      975,  975,  975,  975,  977,  977,  395,  977,  977,  977,
      977,  977,  977,  978,  978,  978,  979,  979,  391,  979,
      979,  979,  979,  979,  979,  980,  980,  390,  980,  980,

      980,  980,  980,  980,  981,  981,  389,  981,  981,  981,
      981,  981,  981,  982,  982,  388,  982,  982,  982,  982,
      982,  982,  375,  355,  352,  351,  350,  349,  348,  347,
      346,  345,  344,  342,  341,  339,  338,  337,  336,  335,
      334,  331,  330,  329,  328,  327,  326,  325,  323,  322,
      321,  317,  316,  315,  314,  311,  310,  309,  308,  307,
      306,  304,  303,  300,  299,  298,  297,  296,  292,  291,
      290,  255,  254,  253,  252,  251,  250,  249,  247,  245,
      244,  243,  242,  241,  240,  239,  238,  237,  236,  235,
      233,  232,  231,  230,  229,  228,  227,  226,  225,  224,

      220,  215,  214,  213,  212,  211,  209,  208,  207,  206,
      205,  200,  199,  198,  197,  196,  189,  188,  187,  186,
      153,  152,  151,  149,  148,  147,  145,  143,  142,  140,
      139,  138,  137,  136,  135,  133,  132,  131,  130,  129,
      127,  122,  121,  120,  119,  117,  116,  112,  111,  110,
      109,  106,  105,  103,  102,  101,  100,   99,   98,   97,
       96,   95,   91,   90,   88,   87,   82,   81,   80,   59,
       58,   57,   56,   52,   51,   48,   47,   46,   43,   42,
       37,   24,   23,   12,   11,    6,    5,  938,  938,  938,
      938,  938,  938,  938,  938,  938,  938,  938,  938,  938,

      938,  938,  938,  938,  938,  938,  938,  938,  938,  938,
      938,  938,  938,  938,  938,  938,  938,  938,  938,  938,
      938,  938,  938,  938,  938,  938,  938,  938,  938,  938,
      938,  938,  938,  938,  938
    } ;

static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr;
static char *yy_full_match;
static int yy_lp;
#define REJECT \
{ \
*yy_cp = yy_hold_char; /* undo effects of setting up yytext */ \
yy_cp = yy_full_match; /* restore poss. backed-over text */ \
++yy_lp; \
goto find_rule; \
}
#define yymore() yymore_used_but_not_detected
#define YY_MORE_ADJ 0
#define YY_RESTORE_YY_MORE_OFFSET
char *yytext;
#line 1 "config_scan.l"
#define INITIAL 0
/*
 * Copyright (c) 1997, 1998, 1999, 2000, 2001
 *      Inferno Nettverk A/S, Norway.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. The above copyright notice, this list of conditions and the following
 *    disclaimer must appear in all copies of the software, derivative works
 *    or modified versions, and any portions thereof, aswell as in all
 *    supporting documentation.
 * 2. All advertising materials mentioning features or use of this software
 *    must display the following acknowledgement:
 *      This product includes software developed by
 *      Inferno Nettverk A/S, Norway.
 * 3. The name of the author may not be used to endorse or promote products
 *    derived from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * Inferno Nettverk A/S requests users of this software to return to
 *
 *  Software Distribution Coordinator  or  sdc@inet.no
 *  Inferno Nettverk A/S
 *  Oslo Research Park
 *  Gaustadalléen 21
 *  NO-0349 Oslo
 *  Norway
 *
 * any improvements or extensions that they make and grant Inferno Nettverk A/S
 * the rights to redistribute these changes.
 *
 */
#line 45 "config_scan.l"

#include "common.h"

#include "yacconfig.h"
#include "config_parse.h"

extern int socks_parseinit;
extern const int socks_configtype;

static const char rcsid[] =
"$Id: config_scan.l,v 1.70 2002/03/25 10:33:15 michaels Exp $";

/*%option debug             */
/* non-exclusive startconditions. */
#define start_address 1

#define start_port 2

/* exclusive startconditions */
#define lineprefix 3

#define start_command 4

#define start_compatibility 5

#define start_line 6

#define start_log 7

#define start_logoutput 8

#define start_method 9

#define start_operator 10

#define start_option 11

#define start_proxyprotocol 12

#define start_username 13

#define start_portnumber 14

#define start_srchost 15

#define start_protocol 16

#define start_servicename 17

#line 1467 "lex.yy.c"

/* Macros after this point can all be overridden by user definitions in
 * section 1.
 */

#ifndef YY_SKIP_YYWRAP
#ifdef __cplusplus
extern "C" int yywrap YY_PROTO(( void ));
#else
extern int yywrap YY_PROTO(( void ));
#endif
#endif

#ifndef YY_NO_UNPUT
static void yyunput YY_PROTO(( int c, char *buf_ptr ));
#endif

#ifndef yytext_ptr
static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
#endif

#ifdef YY_NEED_STRLEN
static int yy_flex_strlen YY_PROTO(( yyconst char * ));
#endif

#ifndef YY_NO_INPUT
#ifdef __cplusplus
static int yyinput YY_PROTO(( void ));
#else
static int input YY_PROTO(( void ));
#endif
#endif

#if YY_STACK_USED
static int yy_start_stack_ptr = 0;
static int yy_start_stack_depth = 0;
static int *yy_start_stack = 0;
#ifndef YY_NO_PUSH_STATE
static void yy_push_state YY_PROTO(( int new_state ));
#endif
#ifndef YY_NO_POP_STATE
static void yy_pop_state YY_PROTO(( void ));
#endif
#ifndef YY_NO_TOP_STATE
static int yy_top_state YY_PROTO(( void ));
#endif

#else
#define YY_NO_PUSH_STATE 1
#define YY_NO_POP_STATE 1
#define YY_NO_TOP_STATE 1
#endif

#ifdef YY_MALLOC_DECL
YY_MALLOC_DECL
#else
#ifdef __STDC__
#ifndef __cplusplus
#include <stdlib.h>
#endif
#else
/* Just try to get by without declaring the routines.  This will fail
 * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
 * or sizeof(void*) != sizeof(int).
 */
#endif
#endif

/* Amount of stuff to slurp up with each read. */
#ifndef YY_READ_BUF_SIZE
#define YY_READ_BUF_SIZE 8192
#endif

/* Copy whatever the last rule matched to the standard output. */

#ifndef ECHO
/* This used to be an fputs(), but since the string might contain NUL's,
 * we now use fwrite().
 */
#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
#endif

/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
 * is returned in "result".
 */
#ifndef YY_INPUT
#define YY_INPUT(buf,result,max_size) \
      if ( yy_current_buffer->yy_is_interactive ) \
            { \
            int c = '*', n; \
            for ( n = 0; n < max_size && \
                       (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
                  buf[n] = (char) c; \
            if ( c == '\n' ) \
                  buf[n++] = (char) c; \
            if ( c == EOF && ferror( yyin ) ) \
                  YY_FATAL_ERROR( "input in flex scanner failed" ); \
            result = n; \
            } \
      else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
              && ferror( yyin ) ) \
            YY_FATAL_ERROR( "input in flex scanner failed" );
#endif

/* No semi-colon after return; correct usage is to write "yyterminate();" -
 * we don't want an extra ';' after the "return" because that will cause
 * some compilers to complain about unreachable statements.
 */
#ifndef yyterminate
#define yyterminate() return YY_NULL
#endif

/* Number of entries by which start-condition stack grows. */
#ifndef YY_START_STACK_INCR
#define YY_START_STACK_INCR 25
#endif

/* Report a fatal error. */
#ifndef YY_FATAL_ERROR
#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
#endif

/* Default declaration of generated scanner - a define so the user can
 * easily add parameters.
 */
#ifndef YY_DECL
#define YY_DECL int yylex YY_PROTO(( void ))
#endif

/* Code executed at the beginning of each rule, after yytext and yyleng
 * have been set up.
 */
#ifndef YY_USER_ACTION
#define YY_USER_ACTION
#endif

/* Code executed at the end of each rule. */
#ifndef YY_BREAK
#define YY_BREAK break;
#endif

#define YY_RULE_SETUP \
      YY_USER_ACTION

YY_DECL
      {
      register yy_state_type yy_current_state;
      register char *yy_cp, *yy_bp;
      register int yy_act;

#line 86 "config_scan.l"



      /*
       * we can operate in more than one mode, find out which it is and
       * let the parser know.
       */



      if (!socks_parseinit) {
            socks_parseinit = 1;

            switch (socks_configtype) {
                  case CONFIGTYPE_SERVER:
                        return SERVERCONFIG;

                  case CONFIGTYPE_CLIENT:
                        return CLIENTCONFIG;

                  default:
                        SERRX(socks_configtype);
            }
      }


      /* start-condition dependent stuff. */


#line 1648 "lex.yy.c"

      if ( yy_init )
            {
            yy_init = 0;

#ifdef YY_USER_INIT
            YY_USER_INIT;
#endif

            if ( ! yy_start )
                  yy_start = 1;     /* first start state */

            if ( ! yyin )
                  yyin = stdin;

            if ( ! yyout )
                  yyout = stdout;

            if ( ! yy_current_buffer )
                  yy_current_buffer =
                        yy_create_buffer( yyin, YY_BUF_SIZE );

            yy_load_buffer_state();
            }

      while ( 1 )       /* loops until end-of-file is reached */
            {
            yy_cp = yy_c_buf_p;

            /* Support of yytext. */
            *yy_cp = yy_hold_char;

            /* yy_bp points to the position in yy_ch_buf of the start of
             * the current run.
             */
            yy_bp = yy_cp;

            yy_current_state = yy_start;
            yy_state_ptr = yy_state_buf;
            *yy_state_ptr++ = yy_current_state;
yy_match:
            do
                  {
                  register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
                  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                        {
                        yy_current_state = (int) yy_def[yy_current_state];
                        if ( yy_current_state >= 939 )
                              yy_c = yy_meta[(unsigned int) yy_c];
                        }
                  yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
                  *yy_state_ptr++ = yy_current_state;
                  ++yy_cp;
                  }
            while ( yy_base[yy_current_state] != 2688 );

yy_find_action:
            yy_current_state = *--yy_state_ptr;
            yy_lp = yy_accept[yy_current_state];
find_rule: /* we branch to this label when backing up */
            for ( ; ; ) /* until we find what rule we matched */
                  {
                  if ( yy_lp && yy_lp < yy_accept[yy_current_state + 1] )
                        {
                        yy_act = yy_acclist[yy_lp];
                              {
                              yy_full_match = yy_cp;
                              break;
                              }
                        }
                  --yy_cp;
                  yy_current_state = *--yy_state_ptr;
                  yy_lp = yy_accept[yy_current_state];
                  }

            YY_DO_BEFORE_ACTION;

            if ( yy_act != YY_END_OF_BUFFER )
                  {
                  int yyl;
                  for ( yyl = 0; yyl < yyleng; ++yyl )
                        if ( yytext[yyl] == '\n' )
                              ++yylineno;
                  }

do_action:  /* This label is used only to access EOF actions. */


            switch ( yy_act )
      { /* beginning of action switch */
case 1:
YY_RULE_SETUP
#line 115 "config_scan.l"
{
      yylval.string = yytext;
      return PROXYPROTOCOL_SOCKS_V4;
}
      YY_BREAK
case 2:
YY_RULE_SETUP
#line 120 "config_scan.l"
{
      yylval.string = yytext;
      return PROXYPROTOCOL_SOCKS_V5;
}
      YY_BREAK
case 3:
YY_RULE_SETUP
#line 125 "config_scan.l"
{
      yylval.string = yytext;
      return PROXYPROTOCOL_MSPROXY_V2;
}
      YY_BREAK
case 4:
YY_RULE_SETUP
#line 130 "config_scan.l"
{
      yylval.string = yytext;
      return PROXYPROTOCOL_HTTP_V1_0;
}
      YY_BREAK
case 5:
YY_RULE_SETUP
#line 135 "config_scan.l"
{
      yylval.string = yytext;
      return COMMAND_BIND;
}
      YY_BREAK
case 6:
YY_RULE_SETUP
#line 140 "config_scan.l"
{
      yylval.string = yytext;
      return COMMAND_CONNECT;
}
      YY_BREAK
case 7:
YY_RULE_SETUP
#line 145 "config_scan.l"
{
      yylval.string = yytext;
      return COMMAND_UDPASSOCIATE;
}
      YY_BREAK
case 8:
YY_RULE_SETUP
#line 150 "config_scan.l"
{
      yylval.string = yytext;
      return COMMAND_BINDREPLY;
}
      YY_BREAK
case 9:
YY_RULE_SETUP
#line 155 "config_scan.l"
{
      yylval.string = yytext;
      return COMMAND_UDPREPLY;
}
      YY_BREAK
case 10:
YY_RULE_SETUP
#line 161 "config_scan.l"
{
      yylval.string = yytext;
      return DIRECT;
}
      YY_BREAK
case 11:
YY_RULE_SETUP
#line 167 "config_scan.l"
{
      BEGIN(start_operator);

      yylval.string = yytext;
      return PORT;
}
      YY_BREAK
case 12:
YY_RULE_SETUP
#line 174 "config_scan.l"
{
      BEGIN(start_portnumber);

      yylval.string = yytext;
      return OPERATOR;
}
      YY_BREAK
case 13:
YY_RULE_SETUP
#line 182 "config_scan.l"
{
      yylval.string = yytext;
      return LOG_CONNECT;
}
      YY_BREAK
case 14:
YY_RULE_SETUP
#line 187 "config_scan.l"
{
      yylval.string = yytext;
      return LOG_DATA;
}
      YY_BREAK
case 15:
YY_RULE_SETUP
#line 192 "config_scan.l"
{
      yylval.string = yytext;
      return LOG_DISCONNECT;
}
      YY_BREAK
case 16:
YY_RULE_SETUP
#line 197 "config_scan.l"
{
      yylval.string = yytext;
      return LOG_ERROR;
}
      YY_BREAK
case 17:
YY_RULE_SETUP
#line 202 "config_scan.l"
{
      yylval.string = yytext;
      return LOG_IOOPERATION;
}
      YY_BREAK
case 18:
YY_RULE_SETUP
#line 207 "config_scan.l"
{
      BEGIN(INITIAL);

      yylval.string = yytext;
      return SERVICENAME;
}
      YY_BREAK
case 19:
YY_RULE_SETUP
#line 214 "config_scan.l"
{
      BEGIN(start_portnumber); /* no operator, first port in range then. */

      yylval.string = yytext;
      return PORTNUMBER;
}
      YY_BREAK
case 20:
YY_RULE_SETUP
#line 221 "config_scan.l"
{
      BEGIN(INITIAL);

      yylval.string = yytext;
      return PORTNUMBER;
}
      YY_BREAK
case 21:
YY_RULE_SETUP
#line 228 "config_scan.l"
{
      BEGIN(start_port);

      yylval.string = yytext;
      return DOMAINNAME;
}
      YY_BREAK
case 22:
YY_RULE_SETUP
#line 235 "config_scan.l"
{
      BEGIN(start_port);

      yylval.string = yytext;
      return IFNAME;
}
      YY_BREAK
case 23:
YY_RULE_SETUP
#line 242 "config_scan.l"
{
      yylval.string = yytext;
      return LOGFILE;
}
      YY_BREAK
case 24:
YY_RULE_SETUP
#line 247 "config_scan.l"
{
      yylval.string = yytext;
      return USERNAME;
}
      YY_BREAK
case 25:
YY_RULE_SETUP
#line 252 "config_scan.l"
{
      BEGIN(start_line);

      yylval.string = yytext;
      return *yytext;
}
      YY_BREAK
case 26:
YY_RULE_SETUP
#line 259 "config_scan.l"
{
      BEGIN(INITIAL);

      yylval.string = yytext;
      return LINE;
}
      YY_BREAK
case 27:
YY_RULE_SETUP
#line 266 "config_scan.l"
{
      yylval.string = yytext;
      return NOMISMATCH;
}
      YY_BREAK
case 28:
YY_RULE_SETUP
#line 271 "config_scan.l"
{
      yylval.string = yytext;
      return NOUNKNOWN;
}
      YY_BREAK
case 29:
YY_RULE_SETUP
#line 276 "config_scan.l"
{
      yylval.string = yytext;
      return PROTOCOL_TCP;
}
      YY_BREAK
case 30:
YY_RULE_SETUP
#line 281 "config_scan.l"
{
      yylval.string = yytext;
      return PROTOCOL_UDP;
}
      YY_BREAK
case 31:
YY_RULE_SETUP
#line 286 "config_scan.l"
{
      yylval.string = yytext;
      return PROTOCOL_FAKE;
}
      YY_BREAK
/* non-startcondition dependents. */
case 32:
YY_RULE_SETUP
#line 294 "config_scan.l"
{
      yylval.string = yytext;
      return DEBUGING;
}
      YY_BREAK
case 33:
YY_RULE_SETUP
#line 299 "config_scan.l"
{
      yylval.string = yytext;
      return ROUTE;
}
      YY_BREAK
case 34:
YY_RULE_SETUP
#line 304 "config_scan.l"
{
      BEGIN(start_protocol);

      yylval.string = yytext;
      return RESOLVEPROTOCOL;
}
      YY_BREAK
case 35:
YY_RULE_SETUP
#line 311 "config_scan.l"
{
      BEGIN(start_srchost);

      yylval.string = yytext;
      return SRCHOST;
}
      YY_BREAK
case 36:
YY_RULE_SETUP
#line 318 "config_scan.l"
{
      BEGIN(start_proxyprotocol);

      yylval.string = yytext;
      return PROXYPROTOCOL;
}
      YY_BREAK
case 37:
YY_RULE_SETUP
#line 325 "config_scan.l"
{
      BEGIN(start_logoutput);

      yylval.string = yytext;
      return LOGOUTPUT;
}
      YY_BREAK
case 38:
YY_RULE_SETUP
#line 332 "config_scan.l"
{
      BEGIN(start_protocol);

      yylval.string = yytext;
      return PROTOCOL;
}
      YY_BREAK
case 39:
YY_RULE_SETUP
#line 339 "config_scan.l"
{
      BEGIN(start_command);

      yylval.string = yytext;
      return COMMAND;
}
      YY_BREAK
case 40:
YY_RULE_SETUP
#line 346 "config_scan.l"
{
      yylval.string = yytext;
      return REDIRECT;
}
      YY_BREAK
case 41:
YY_RULE_SETUP
#line 351 "config_scan.l"
{
      yylval.string = yytext;
      return BANDWIDTH;
}
      YY_BREAK
case 42:
YY_RULE_SETUP
#line 356 "config_scan.l"
{
      BEGIN(start_address);

      yylval.string = yytext;
      return FROM;
}
      YY_BREAK
case 43:
YY_RULE_SETUP
#line 363 "config_scan.l"
{
      BEGIN(start_address);

      yylval.string = yytext;
      return TO;
}
      YY_BREAK
case 44:
YY_RULE_SETUP
#line 370 "config_scan.l"
{
      BEGIN(start_address);

      yylval.string = yytext;
      return VIA;
}
      YY_BREAK
/* server configstuff */
case 45:
YY_RULE_SETUP
#line 378 "config_scan.l"
{
      BEGIN(start_address);

      yylval.string = yytext;
      return INTERNAL;
}
      YY_BREAK
case 46:
YY_RULE_SETUP
#line 385 "config_scan.l"
{
      yylval.string = yytext;
      return EXTERNAL_ROTATION;
}
      YY_BREAK
case 47:
YY_RULE_SETUP
#line 390 "config_scan.l"
{
      yylval.string = yytext;
      return ROUTE;
}
      YY_BREAK
case 48:
YY_RULE_SETUP
#line 395 "config_scan.l"
{
      yylval.string = yytext;
      return NONE;
}
      YY_BREAK
case 49:
YY_RULE_SETUP
#line 401 "config_scan.l"
{
      BEGIN(start_address);

      yylval.string = yytext;
      return EXTERNAL;
}
      YY_BREAK
case 50:
YY_RULE_SETUP
#line 408 "config_scan.l"
{
      yylval.string = yytext;
      return CHILD_MAXIDLENUMBER;
}
      YY_BREAK
case 51:
YY_RULE_SETUP
#line 413 "config_scan.l"
{
      BEGIN(start_username);

      yylval.string = yytext;
      return USER;
}
      YY_BREAK
case 52:
YY_RULE_SETUP
#line 420 "config_scan.l"
{
      BEGIN(start_username);

      yylval.string = yytext;
      return USER_PRIVILEGED;
}
      YY_BREAK
case 53:
YY_RULE_SETUP
#line 427 "config_scan.l"
{
      BEGIN(start_username);

      yylval.string = yytext;
      return USER_UNPRIVILEGED;
}
      YY_BREAK
case 54:
YY_RULE_SETUP
#line 434 "config_scan.l"
{
      BEGIN(start_username);

      yylval.string = yytext;
      return USER_LIBWRAP;
}
      YY_BREAK
case 55:
YY_RULE_SETUP
#line 441 "config_scan.l"
{
      yylval.string = yytext;
      return IOTIMEOUT;
}
      YY_BREAK
case 56:
YY_RULE_SETUP
#line 446 "config_scan.l"
{
      yylval.string = yytext;
      return COMPATIBILITY;
}
      YY_BREAK
case 57:
YY_RULE_SETUP
#line 451 "config_scan.l"
{
      yylval.string = yytext;
      return REUSEADDR;
}
      YY_BREAK
case 58:
YY_RULE_SETUP
#line 456 "config_scan.l"
{
      yylval.string = yytext;
      return SAMEPORT;
}
      YY_BREAK
case 59:
YY_RULE_SETUP
#line 462 "config_scan.l"
{
      yylval.string = yytext;
      return CONNECTTIMEOUT;
}
      YY_BREAK
case 60:
YY_RULE_SETUP
#line 467 "config_scan.l"
{
      yylval.string = yytext;
      return EXTENSION;
}
      YY_BREAK
case 61:
YY_RULE_SETUP
#line 472 "config_scan.l"
{
      yylval.string = yytext;
      return BIND;
}
      YY_BREAK
case 62:
YY_RULE_SETUP
#line 479 "config_scan.l"
{
      yylval.string = yytext;
      return CLIENTRULE;
}
      YY_BREAK
case 63:
YY_RULE_SETUP
#line 485 "config_scan.l"
{
      BEGIN(start_method);

      yylval.string = yytext;
      return METHOD;
}
      YY_BREAK
case 64:
YY_RULE_SETUP
#line 492 "config_scan.l"
{
      BEGIN(start_method);

      yylval.string = yytext;
      return CLIENTMETHOD;
}
      YY_BREAK
case 65:
YY_RULE_SETUP
#line 499 "config_scan.l"
{
      yylval.string = yytext;
      return NONE;
}
      YY_BREAK
case 66:
YY_RULE_SETUP
#line 504 "config_scan.l"
{
      yylval.string = yytext;
      return GSSAPI;
}
      YY_BREAK
case 67:
YY_RULE_SETUP
#line 509 "config_scan.l"
{
      yylval.string = yytext;
      return UNAME;
}
      YY_BREAK
case 68:
YY_RULE_SETUP
#line 514 "config_scan.l"
{
      yylval.string = yytext;
      return RFC931;
}
      YY_BREAK
case 69:
YY_RULE_SETUP
#line 519 "config_scan.l"
{
      yylval.string = yytext;
      return PAM;
}
      YY_BREAK
/* filterrules */
/*
       * verdicts
       */
case 70:
YY_RULE_SETUP
#line 531 "config_scan.l"
{
      yylval.string = yytext;
      return VERDICT_BLOCK;
}
      YY_BREAK
case 71:
YY_RULE_SETUP
#line 536 "config_scan.l"
{
      yylval.string = yytext;
      return VERDICT_PASS;
}
      YY_BREAK
/*
       * logging
       */
case 72:
YY_RULE_SETUP
#line 547 "config_scan.l"
{
      BEGIN(start_log);

      yylval.string = yytext;
      return LOG;
}
      YY_BREAK
case 73:
YY_RULE_SETUP
#line 555 "config_scan.l"
{
      BEGIN(lineprefix);

      yylval.string = yytext;
      return LIBWRAPSTART;
}
      YY_BREAK
case 74:
YY_RULE_SETUP
#line 562 "config_scan.l"
{
      BEGIN(start_servicename);

      yylval.string = yytext;
      return PAMSERVICENAME;
}
      YY_BREAK
/*
  * Old keywords that are no longer used.
  */
case 75:
YY_RULE_SETUP
#line 574 "config_scan.l"
{
      yylval.string = yytext;
      return DEPRECATED;
}
      YY_BREAK
/* misc. generic stuff. */
case 76:
YY_RULE_SETUP
#line 583 "config_scan.l"
{
      BEGIN(start_port);

      yylval.string = yytext;
      return IPADDRESS;
}
      YY_BREAK
case 77:
YY_RULE_SETUP
#line 591 "config_scan.l"
{
      yylval.string = yytext;
      return NUMBER;
}
      YY_BREAK
/* ignored */
case 78:
YY_RULE_SETUP
#line 598 "config_scan.l"
{
      ;
}
      YY_BREAK
/* shell style comment */
case 79:
YY_RULE_SETUP
#line 603 "config_scan.l"
{
      ;
}
      YY_BREAK
/* state always ends at eol. */
case 80:
YY_RULE_SETUP
#line 608 "config_scan.l"
{
      BEGIN(INITIAL);
}
      YY_BREAK
/* unless it's escaped. */
case 81:
YY_RULE_SETUP
#line 613 "config_scan.l"
{
      ;
}
      YY_BREAK
case 82:
YY_RULE_SETUP
#line 617 "config_scan.l"
{
      return *yytext;
}
      YY_BREAK
case 83:
YY_RULE_SETUP
#line 620 "config_scan.l"
ECHO;
      YY_BREAK
#line 2472 "lex.yy.c"
                  case YY_STATE_EOF(INITIAL):
                  case YY_STATE_EOF(start_address):
                  case YY_STATE_EOF(start_port):
                  case YY_STATE_EOF(lineprefix):
                  case YY_STATE_EOF(start_command):
                  case YY_STATE_EOF(start_compatibility):
                  case YY_STATE_EOF(start_line):
                  case YY_STATE_EOF(start_log):
                  case YY_STATE_EOF(start_logoutput):
                  case YY_STATE_EOF(start_method):
                  case YY_STATE_EOF(start_operator):
                  case YY_STATE_EOF(start_option):
                  case YY_STATE_EOF(start_proxyprotocol):
                  case YY_STATE_EOF(start_username):
                  case YY_STATE_EOF(start_portnumber):
                  case YY_STATE_EOF(start_srchost):
                  case YY_STATE_EOF(start_protocol):
                  case YY_STATE_EOF(start_servicename):
                        yyterminate();

      case YY_END_OF_BUFFER:
            {
            /* Amount of text matched not including the EOB char. */
            int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;

            /* Undo the effects of YY_DO_BEFORE_ACTION. */
            *yy_cp = yy_hold_char;
            YY_RESTORE_YY_MORE_OFFSET

            if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
                  {
                  /* We're scanning a new file or input source.  It's
                   * possible that this happened because the user
                   * just pointed yyin at a new source and called
                   * yylex().  If so, then we have to assure
                   * consistency between yy_current_buffer and our
                   * globals.  Here is the right place to do so, because
                   * this is the first action (other than possibly a
                   * back-up) that will match for the new input source.
                   */
                  yy_n_chars = yy_current_buffer->yy_n_chars;
                  yy_current_buffer->yy_input_file = yyin;
                  yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
                  }

            /* Note that here we test for yy_c_buf_p "<=" to the position
             * of the first EOB in the buffer, since yy_c_buf_p will
             * already have been incremented past the NUL character
             * (since all states make transitions on EOB to the
             * end-of-buffer state).  Contrast this with the test
             * in input().
             */
            if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
                  { /* This was really a NUL. */
                  yy_state_type yy_next_state;

                  yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;

                  yy_current_state = yy_get_previous_state();

                  /* Okay, we're now positioned to make the NUL
                   * transition.  We couldn't have
                   * yy_get_previous_state() go ahead and do it
                   * for us because it doesn't know how to deal
                   * with the possibility of jamming (and we don't
                   * want to build jamming into it because then it
                   * will run more slowly).
                   */

                  yy_next_state = yy_try_NUL_trans( yy_current_state );

                  yy_bp = yytext_ptr + YY_MORE_ADJ;

                  if ( yy_next_state )
                        {
                        /* Consume the NUL. */
                        yy_cp = ++yy_c_buf_p;
                        yy_current_state = yy_next_state;
                        goto yy_match;
                        }

                  else
                        {
                        yy_cp = yy_c_buf_p;
                        goto yy_find_action;
                        }
                  }

            else switch ( yy_get_next_buffer() )
                  {
                  case EOB_ACT_END_OF_FILE:
                        {
                        yy_did_buffer_switch_on_eof = 0;

                        if ( yywrap() )
                              {
                              /* Note: because we've taken care in
                               * yy_get_next_buffer() to have set up
                               * yytext, we can now set up
                               * yy_c_buf_p so that if some total
                               * hoser (like flex itself) wants to
                               * call the scanner after we return the
                               * YY_NULL, it'll still work - another
                               * YY_NULL will get returned.
                               */
                              yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;

                              yy_act = YY_STATE_EOF(YY_START);
                              goto do_action;
                              }

                        else
                              {
                              if ( ! yy_did_buffer_switch_on_eof )
                                    YY_NEW_FILE;
                              }
                        break;
                        }

                  case EOB_ACT_CONTINUE_SCAN:
                        yy_c_buf_p =
                              yytext_ptr + yy_amount_of_matched_text;

                        yy_current_state = yy_get_previous_state();

                        yy_cp = yy_c_buf_p;
                        yy_bp = yytext_ptr + YY_MORE_ADJ;
                        goto yy_match;

                  case EOB_ACT_LAST_MATCH:
                        yy_c_buf_p =
                        &yy_current_buffer->yy_ch_buf[yy_n_chars];

                        yy_current_state = yy_get_previous_state();

                        yy_cp = yy_c_buf_p;
                        yy_bp = yytext_ptr + YY_MORE_ADJ;
                        goto yy_find_action;
                  }
            break;
            }

      default:
            YY_FATAL_ERROR(
                  "fatal flex scanner internal error--no action found" );
      } /* end of action switch */
            } /* end of scanning one token */
      } /* end of yylex */


/* yy_get_next_buffer - try to read in a new buffer
 *
 * Returns a code representing an action:
 *    EOB_ACT_LAST_MATCH -
 *    EOB_ACT_CONTINUE_SCAN - continue scanning from current position
 *    EOB_ACT_END_OF_FILE - end of file
 */

static int yy_get_next_buffer()
      {
      register char *dest = yy_current_buffer->yy_ch_buf;
      register char *source = yytext_ptr;
      register int number_to_move, i;
      int ret_val;

      if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
            YY_FATAL_ERROR(
            "fatal flex scanner internal error--end of buffer missed" );

      if ( yy_current_buffer->yy_fill_buffer == 0 )
            { /* Don't try to fill the buffer, so this is an EOF. */
            if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
                  {
                  /* We matched a single character, the EOB, so
                   * treat this as a final EOF.
                   */
                  return EOB_ACT_END_OF_FILE;
                  }

            else
                  {
                  /* We matched some text prior to the EOB, first
                   * process it.
                   */
                  return EOB_ACT_LAST_MATCH;
                  }
            }

      /* Try to read more data. */

      /* First move last chars to start of buffer. */
      number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;

      for ( i = 0; i < number_to_move; ++i )
            *(dest++) = *(source++);

      if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
            /* don't do the read, it's not guaranteed to return an EOF,
             * just force an EOF
             */
            yy_current_buffer->yy_n_chars = yy_n_chars = 0;

      else
            {
            int num_to_read =
                  yy_current_buffer->yy_buf_size - number_to_move - 1;

            while ( num_to_read <= 0 )
                  { /* Not enough room in the buffer - grow it. */
#ifdef YY_USES_REJECT
                  YY_FATAL_ERROR(
"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
#else

                  /* just a shorter name for the current buffer */
                  YY_BUFFER_STATE b = yy_current_buffer;

                  int yy_c_buf_p_offset =
                        (int) (yy_c_buf_p - b->yy_ch_buf);

                  if ( b->yy_is_our_buffer )
                        {
                        int new_size = b->yy_buf_size * 2;

                        if ( new_size <= 0 )
                              b->yy_buf_size += b->yy_buf_size / 8;
                        else
                              b->yy_buf_size *= 2;

                        b->yy_ch_buf = (char *)
                              /* Include room in for 2 EOB chars. */
                              yy_flex_realloc( (void *) b->yy_ch_buf,
                                           b->yy_buf_size + 2 );
                        }
                  else
                        /* Can't grow it, we don't own it. */
                        b->yy_ch_buf = 0;

                  if ( ! b->yy_ch_buf )
                        YY_FATAL_ERROR(
                        "fatal error - scanner input buffer overflow" );

                  yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];

                  num_to_read = yy_current_buffer->yy_buf_size -
                                    number_to_move - 1;
#endif
                  }

            if ( num_to_read > YY_READ_BUF_SIZE )
                  num_to_read = YY_READ_BUF_SIZE;

            /* Read in more data. */
            YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
                  yy_n_chars, num_to_read );

            yy_current_buffer->yy_n_chars = yy_n_chars;
            }

      if ( yy_n_chars == 0 )
            {
            if ( number_to_move == YY_MORE_ADJ )
                  {
                  ret_val = EOB_ACT_END_OF_FILE;
                  yyrestart( yyin );
                  }

            else
                  {
                  ret_val = EOB_ACT_LAST_MATCH;
                  yy_current_buffer->yy_buffer_status =
                        YY_BUFFER_EOF_PENDING;
                  }
            }

      else
            ret_val = EOB_ACT_CONTINUE_SCAN;

      yy_n_chars += number_to_move;
      yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
      yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;

      yytext_ptr = &yy_current_buffer->yy_ch_buf[0];

      return ret_val;
      }


/* yy_get_previous_state - get the state just before the EOB char was reached */

static yy_state_type yy_get_previous_state()
      {
      register yy_state_type yy_current_state;
      register char *yy_cp;

      yy_current_state = yy_start;
      yy_state_ptr = yy_state_buf;
      *yy_state_ptr++ = yy_current_state;

      for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
            {
            register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
            while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                  {
                  yy_current_state = (int) yy_def[yy_current_state];
                  if ( yy_current_state >= 939 )
                        yy_c = yy_meta[(unsigned int) yy_c];
                  }
            yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
            *yy_state_ptr++ = yy_current_state;
            }

      return yy_current_state;
      }


/* yy_try_NUL_trans - try to make a transition on the NUL character
 *
 * synopsis
 *    next_state = yy_try_NUL_trans( current_state );
 */

#ifdef YY_USE_PROTOS
static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
#else
static yy_state_type yy_try_NUL_trans( yy_current_state )
yy_state_type yy_current_state;
#endif
      {
      register int yy_is_jam;

      register YY_CHAR yy_c = 1;
      while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
            {
            yy_current_state = (int) yy_def[yy_current_state];
            if ( yy_current_state >= 939 )
                  yy_c = yy_meta[(unsigned int) yy_c];
            }
      yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
      yy_is_jam = (yy_current_state == 938);
      if ( ! yy_is_jam )
            *yy_state_ptr++ = yy_current_state;

      return yy_is_jam ? 0 : yy_current_state;
      }


#ifndef YY_NO_UNPUT
#ifdef YY_USE_PROTOS
static void yyunput( int c, register char *yy_bp )
#else
static void yyunput( c, yy_bp )
int c;
register char *yy_bp;
#endif
      {
      register char *yy_cp = yy_c_buf_p;

      /* undo effects of setting up yytext */
      *yy_cp = yy_hold_char;

      if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
            { /* need to shift things up to make room */
            /* +2 for EOB chars. */
            register int number_to_move = yy_n_chars + 2;
            register char *dest = &yy_current_buffer->yy_ch_buf[
                              yy_current_buffer->yy_buf_size + 2];
            register char *source =
                        &yy_current_buffer->yy_ch_buf[number_to_move];

            while ( source > yy_current_buffer->yy_ch_buf )
                  *--dest = *--source;

            yy_cp += (int) (dest - source);
            yy_bp += (int) (dest - source);
            yy_current_buffer->yy_n_chars =
                  yy_n_chars = yy_current_buffer->yy_buf_size;

            if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
                  YY_FATAL_ERROR( "flex scanner push-back overflow" );
            }

      *--yy_cp = (char) c;

      if ( c == '\n' )
            --yylineno;

      yytext_ptr = yy_bp;
      yy_hold_char = *yy_cp;
      yy_c_buf_p = yy_cp;
      }
#endif      /* ifndef YY_NO_UNPUT */


#ifdef __cplusplus
static int yyinput()
#else
static int input()
#endif
      {
      int c;

      *yy_c_buf_p = yy_hold_char;

      if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
            {
            /* yy_c_buf_p now points to the character we want to return.
             * If this occurs *before* the EOB characters, then it's a
             * valid NUL; if not, then we've hit the end of the buffer.
             */
            if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
                  /* This was really a NUL. */
                  *yy_c_buf_p = '\0';

            else
                  { /* need more input */
                  int offset = yy_c_buf_p - yytext_ptr;
                  ++yy_c_buf_p;

                  switch ( yy_get_next_buffer() )
                        {
                        case EOB_ACT_LAST_MATCH:
                              /* This happens because yy_g_n_b()
                               * sees that we've accumulated a
                               * token and flags that we need to
                               * try matching the token before
                               * proceeding.  But for input(),
                               * there's no matching to consider.
                               * So convert the EOB_ACT_LAST_MATCH
                               * to EOB_ACT_END_OF_FILE.
                               */

                              /* Reset buffer status. */
                              yyrestart( yyin );

                              /* fall through */

                        case EOB_ACT_END_OF_FILE:
                              {
                              if ( yywrap() )
                                    return EOF;

                              if ( ! yy_did_buffer_switch_on_eof )
                                    YY_NEW_FILE;
#ifdef __cplusplus
                              return yyinput();
#else
                              return input();
#endif
                              }

                        case EOB_ACT_CONTINUE_SCAN:
                              yy_c_buf_p = yytext_ptr + offset;
                              break;
                        }
                  }
            }

      c = *(unsigned char *) yy_c_buf_p;  /* cast for 8-bit char's */
      *yy_c_buf_p = '\0';     /* preserve yytext */
      yy_hold_char = *++yy_c_buf_p;

      if ( c == '\n' )
            ++yylineno;

      return c;
      }


#ifdef YY_USE_PROTOS
void yyrestart( FILE *input_file )
#else
void yyrestart( input_file )
FILE *input_file;
#endif
      {
      if ( ! yy_current_buffer )
            yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );

      yy_init_buffer( yy_current_buffer, input_file );
      yy_load_buffer_state();
      }


#ifdef YY_USE_PROTOS
void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
#else
void yy_switch_to_buffer( new_buffer )
YY_BUFFER_STATE new_buffer;
#endif
      {
      if ( yy_current_buffer == new_buffer )
            return;

      if ( yy_current_buffer )
            {
            /* Flush out information for old buffer. */
            *yy_c_buf_p = yy_hold_char;
            yy_current_buffer->yy_buf_pos = yy_c_buf_p;
            yy_current_buffer->yy_n_chars = yy_n_chars;
            }

      yy_current_buffer = new_buffer;
      yy_load_buffer_state();

      /* We don't actually know whether we did this switch during
       * EOF (yywrap()) processing, but the only time this flag
       * is looked at is after yywrap() is called, so it's safe
       * to go ahead and always set it.
       */
      yy_did_buffer_switch_on_eof = 1;
      }


#ifdef YY_USE_PROTOS
void yy_load_buffer_state( void )
#else
void yy_load_buffer_state()
#endif
      {
      yy_n_chars = yy_current_buffer->yy_n_chars;
      yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
      yyin = yy_current_buffer->yy_input_file;
      yy_hold_char = *yy_c_buf_p;
      }


#ifdef YY_USE_PROTOS
YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
#else
YY_BUFFER_STATE yy_create_buffer( file, size )
FILE *file;
int size;
#endif
      {
      YY_BUFFER_STATE b;

      b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
      if ( ! b )
            YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );

      b->yy_buf_size = size;

      /* yy_ch_buf has to be 2 characters longer than the size given because
       * we need to put in 2 end-of-buffer characters.
       */
      b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
      if ( ! b->yy_ch_buf )
            YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );

      b->yy_is_our_buffer = 1;

      yy_init_buffer( b, file );

      return b;
      }


#ifdef YY_USE_PROTOS
void yy_delete_buffer( YY_BUFFER_STATE b )
#else
void yy_delete_buffer( b )
YY_BUFFER_STATE b;
#endif
      {
      if ( ! b )
            return;

      if ( b == yy_current_buffer )
            yy_current_buffer = (YY_BUFFER_STATE) 0;

      if ( b->yy_is_our_buffer )
            yy_flex_free( (void *) b->yy_ch_buf );

      yy_flex_free( (void *) b );
      }


#ifndef YY_ALWAYS_INTERACTIVE
#ifndef YY_NEVER_INTERACTIVE
extern int isatty YY_PROTO(( int ));
#endif
#endif

#ifdef YY_USE_PROTOS
void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
#else
void yy_init_buffer( b, file )
YY_BUFFER_STATE b;
FILE *file;
#endif


      {
      int oerrno = errno;

      yy_flush_buffer( b );

      b->yy_input_file = file;
      b->yy_fill_buffer = 1;

#if YY_ALWAYS_INTERACTIVE
      b->yy_is_interactive = 1;
#else
#if YY_NEVER_INTERACTIVE
      b->yy_is_interactive = 0;
#else
      b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
#endif
#endif
      errno = oerrno;
      }


#ifdef YY_USE_PROTOS
void yy_flush_buffer( YY_BUFFER_STATE b )
#else
void yy_flush_buffer( b )
YY_BUFFER_STATE b;
#endif

      {
      if ( ! b )
            return;

      b->yy_n_chars = 0;

      /* We always need two end-of-buffer characters.  The first causes
       * a transition to the end-of-buffer state.  The second causes
       * a jam in that state.
       */
      b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
      b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;

      b->yy_buf_pos = &b->yy_ch_buf[0];

      b->yy_at_bol = 1;
      b->yy_buffer_status = YY_BUFFER_NEW;

      if ( b == yy_current_buffer )
            yy_load_buffer_state();
      }


#ifndef YY_NO_SCAN_BUFFER
#ifdef YY_USE_PROTOS
YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
#else
YY_BUFFER_STATE yy_scan_buffer( base, size )
char *base;
yy_size_t size;
#endif
      {
      YY_BUFFER_STATE b;

      if ( size < 2 ||
           base[size-2] != YY_END_OF_BUFFER_CHAR ||
           base[size-1] != YY_END_OF_BUFFER_CHAR )
            /* They forgot to leave room for the EOB's. */
            return 0;

      b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
      if ( ! b )
            YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );

      b->yy_buf_size = size - 2;    /* "- 2" to take care of EOB's */
      b->yy_buf_pos = b->yy_ch_buf = base;
      b->yy_is_our_buffer = 0;
      b->yy_input_file = 0;
      b->yy_n_chars = b->yy_buf_size;
      b->yy_is_interactive = 0;
      b->yy_at_bol = 1;
      b->yy_fill_buffer = 0;
      b->yy_buffer_status = YY_BUFFER_NEW;

      yy_switch_to_buffer( b );

      return b;
      }
#endif


#ifndef YY_NO_SCAN_STRING
#ifdef YY_USE_PROTOS
YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
#else
YY_BUFFER_STATE yy_scan_string( yy_str )
yyconst char *yy_str;
#endif
      {
      int len;
      for ( len = 0; yy_str[len]; ++len )
            ;

      return yy_scan_bytes( yy_str, len );
      }
#endif


#ifndef YY_NO_SCAN_BYTES
#ifdef YY_USE_PROTOS
YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
#else
YY_BUFFER_STATE yy_scan_bytes( bytes, len )
yyconst char *bytes;
int len;
#endif
      {
      YY_BUFFER_STATE b;
      char *buf;
      yy_size_t n;
      int i;

      /* Get memory for full buffer, including space for trailing EOB's. */
      n = len + 2;
      buf = (char *) yy_flex_alloc( n );
      if ( ! buf )
            YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );

      for ( i = 0; i < len; ++i )
            buf[i] = bytes[i];

      buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;

      b = yy_scan_buffer( buf, n );
      if ( ! b )
            YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );

      /* It's okay to grow etc. this buffer, and we should throw it
       * away when we're done.
       */
      b->yy_is_our_buffer = 1;

      return b;
      }
#endif


#ifndef YY_NO_PUSH_STATE
#ifdef YY_USE_PROTOS
static void yy_push_state( int new_state )
#else
static void yy_push_state( new_state )
int new_state;
#endif
      {
      if ( yy_start_stack_ptr >= yy_start_stack_depth )
            {
            yy_size_t new_size;

            yy_start_stack_depth += YY_START_STACK_INCR;
            new_size = yy_start_stack_depth * sizeof( int );

            if ( ! yy_start_stack )
                  yy_start_stack = (int *) yy_flex_alloc( new_size );

            else
                  yy_start_stack = (int *) yy_flex_realloc(
                              (void *) yy_start_stack, new_size );

            if ( ! yy_start_stack )
                  YY_FATAL_ERROR(
                  "out of memory expanding start-condition stack" );
            }

      yy_start_stack[yy_start_stack_ptr++] = YY_START;

      BEGIN(new_state);
      }
#endif


#ifndef YY_NO_POP_STATE
static void yy_pop_state()
      {
      if ( --yy_start_stack_ptr < 0 )
            YY_FATAL_ERROR( "start-condition stack underflow" );

      BEGIN(yy_start_stack[yy_start_stack_ptr]);
      }
#endif


#ifndef YY_NO_TOP_STATE
static int yy_top_state()
      {
      return yy_start_stack[yy_start_stack_ptr - 1];
      }
#endif

#ifndef YY_EXIT_FAILURE
#define YY_EXIT_FAILURE 2
#endif

#ifdef YY_USE_PROTOS
static void yy_fatal_error( yyconst char msg[] )
#else
static void yy_fatal_error( msg )
char msg[];
#endif
      {
      (void) fprintf( stderr, "%s\n", msg );
      exit( YY_EXIT_FAILURE );
      }



/* Redefine yyless() so it works in section 3 code. */

#undef yyless
#define yyless(n) \
      do \
            { \
            /* Undo effects of setting up yytext. */ \
            yytext[yyleng] = yy_hold_char; \
            yy_c_buf_p = yytext + n; \
            yy_hold_char = *yy_c_buf_p; \
            *yy_c_buf_p = '\0'; \
            yyleng = n; \
            } \
      while ( 0 )


/* Internal utility routines. */

#ifndef yytext_ptr
#ifdef YY_USE_PROTOS
static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
#else
static void yy_flex_strncpy( s1, s2, n )
char *s1;
yyconst char *s2;
int n;
#endif
      {
      register int i;
      for ( i = 0; i < n; ++i )
            s1[i] = s2[i];
      }
#endif

#ifdef YY_NEED_STRLEN
#ifdef YY_USE_PROTOS
static int yy_flex_strlen( yyconst char *s )
#else
static int yy_flex_strlen( s )
yyconst char *s;
#endif
      {
      register int n;
      for ( n = 0; s[n]; ++n )
            ;

      return n;
      }
#endif


#ifdef YY_USE_PROTOS
static void *yy_flex_alloc( yy_size_t size )
#else
static void *yy_flex_alloc( size )
yy_size_t size;
#endif
      {
      return (void *) malloc( size );
      }

#ifdef YY_USE_PROTOS
static void *yy_flex_realloc( void *ptr, yy_size_t size )
#else
static void *yy_flex_realloc( ptr, size )
void *ptr;
yy_size_t size;
#endif
      {
      /* The cast to (char *) in the following accommodates both
       * implementations that use char* generic pointers, and those
       * that use void* generic pointers.  It works with the latter
       * because both ANSI C and C++ allow castless assignment from
       * any pointer type to void*, and deal with argument conversions
       * as though doing an assignment.
       */
      return (void *) realloc( (char *) ptr, size );
      }

#ifdef YY_USE_PROTOS
static void yy_flex_free( void *ptr )
#else
static void yy_flex_free( ptr )
void *ptr;
#endif
      {
      free( ptr );
      }

#if YY_MAIN
int main()
      {
      yylex();
      return 0;
      }
#endif
#line 620 "config_scan.l"

Generated by  Doxygen 1.6.0   Back to index