#define yy_create_buffer asn1p__create_buffer
#define yy_delete_buffer asn1p__delete_buffer
#define yy_scan_buffer asn1p__scan_buffer
#define yy_scan_string asn1p__scan_string
#define yy_scan_bytes asn1p__scan_bytes
#define yy_flex_debug asn1p__flex_debug
#define yy_init_buffer asn1p__init_buffer
#define yy_flush_buffer asn1p__flush_buffer
#define yy_load_buffer_state asn1p__load_buffer_state
#define yy_switch_to_buffer asn1p__switch_to_buffer
#define yyin asn1p_in
#define yyleng asn1p_leng
#define yylex asn1p_lex
#define yyout asn1p_out
#define yyrestart asn1p_restart
#define yytext asn1p_text
#define yylineno asn1p_lineno

#line 20 "asn1p_l.c"
/* A lexical scanner generated by flex */

/* Scanner skeleton version:
 * $Header$
 */

#define FLEX_SCANNER
#define YY_FLEX_MAJOR_VERSION 2
#define YY_FLEX_MINOR_VERSION 5

#include <stdio.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 */

#if __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

#define FLEX_DEBUG
typedef unsigned char YY_CHAR;
FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
typedef int yy_state_type;

#define FLEX_DEBUG
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 131
#define YY_END_OF_BUFFER 132
static yyconst short int yy_acclist[1266] =
    {   0,
      132,  130,  131,  124,  130,  131,  124,  131,  123,  130,
      131,   15,  130,  131,  123,  130,  131,  130,  131,  123,
      130,  131,  130,  131,  123,  130,  131,  130,  131,   29,
      130,  131,   28,  130,  131,  123,  130,  131,  130,  131,
      118,  119,  130,  131,  118,  119,  130,  131,  118,  119,
      130,  131,  118,  119,  130,  131,  118,  119,  130,  131,
      118,  119,  130,  131,  118,  119,  130,  131,  118,  119,
      130,  131,  118,  119,  130,  131,  118,  119,  130,  131,
      118,  119,  130,  131,  118,  119,  130,  131,  118,  119,
      130,  131,  118,  119,  130,  131,  118,  119,  130,  131,

      118,  119,  130,  131,  118,  119,  130,  131,  118,  119,
      130,  131,  118,  119,  130,  131,  123,  130,  131,  129,
      130,  131,  117,  130,  131,  123,  129,  130,  131,    5,
      130,  131,    2,  131,    2,  130,  131,    4,  130,  131,
        7,    9,  130,  131,    7,  131,    9,  130,  131,    9,
      130,  131,   17,  130,  131,   17,  131,   18,  130,  131,
       12,  130,  131,   12,  131,   14,  130,  131,   14,  130,
      131,   10,  130,  131,   11,  130,  131,   21,   23,  130,
      131,   23,  130,  131,   24,  131,   21,   22,   23,  130,
      131,   21,   22,   23,  130,  131,  126,  130,  131,  127,

      130,  131,  127,  131,  130,  131,  128,  130,  131,  124,
       15,   15,  115,  116,    1,   27,  122,    6,   28,  118,
      119,  118,  119,  118,  119,  118,  119,  118,  119,  118,
      119,  119,  118,  119,  118,  119,  118,  119,  118,  119,
       41,  118,  119,  118,  119,  118,  119,  118,  119,  118,
      119,  118,  119,  118,  119,  118,  119,  118,  119,  118,
      119,  119,  119,  118,  119,  118,  119,  118,  119,  118,
      119,  118,  119,  118,  119,  118,  119,  118,  119,  119,
      118,  119,  118,  119,   86,  118,  119,  118,  119,  119,
      118,  119,  118,  119,  118,  119,  118,  119,  119,  118,

      119,  118,  119,  118,  119,  118,  119,  118,  119,  118,
      119,  118,  119,  118,  119,  118,  119,  119,  118,  119,
      118,  119,  119,  119,  118,  119,  117,    5,    3,    8,
       17,   16,   12,   21,   21,   22,   21,   22,  126,  127,
      125,  115,  116,   27,  121,  120,  118,  119,   33,  118,
      119,   34,  118,  119,  118,  119,  118,  119,  118,  119,
       38,  118,  119,  118,  119,  118,  119,  118,  119,  118,
      119,  118,  119,  118,  119,  118,  119,  118,  119,  118,
      119,  118,  119,   55,  118,  119,  118,  119,  118,  119,
      118,  119,  118,  119,  118,  119,  118,  119,  119,  119,

      118,  119,  118,  119,  118,  119,  118,  119,  118,  119,
      118,  119,  118,  119,   78,  118,  119,   79,  118,  119,
      118,  119,  119,  118,  119,  118,  119,  118,  119,  119,
      118,  119,   89,  118,  119,  118,  119,  118,  119,  118,
      119,  119,  118,  119,  118,  119,  118,  119,   97,  118,
      119,  118,  119,  118,  119,  118,  119,  118,  119,  118,
      119,  118,  119,  118,  119,  119,  118,  119,  118,  119,
      118,  119,  119,  119,  119,  118,  119,   30,   13,   21,
       22,   20,   21,   22,   26,   25,  118,  119,  118,  119,
      118,  119,  118,  119,  118,  119,  118,  119,  118,  119,

      118,  119,  118,  119,  118,  119,  118,  119,  118,  119,
      118,  119,  118,  119,  118,  119,  118,  119,  118,  119,
      118,  119,  118,  119,  118,  119,  118,  119,  118,  119,
       63,  118,  119,  119,  119,  118,  119,  118,  119,  118,
      119,  118,  119,  118,  119,  118,  119,  118,  119,  118,
      119,  118,  119,   81,  118,  119,  119,  118,  119,  118,
      119,  118,  119,  119,  118,  119,  118,  119,  118,  119,
      118,  119,  119,   94,  118,  119,  118,  119,  118,  119,
       98,  118,  119,  118,  119,  118,  119,  118,  119,  102,
      118,  119,  104,  118,  119,  118,  119,  119,  118,  119,

      118,  119,  118,  119,  118,  119,  118,  119,  119,  119,
      119,  114,  118,  119,   21,   22,  118,  119,  118,  119,
      118,  119,   37,  118,  119,  119,  118,  119,  118,  119,
      118,  119,   44,  118,  119,  118,  119,  118,  119,  118,
      119,  118,  119,  118,  119,  118,  119,  118,  119,  118,
      119,  118,  119,  118,  119,  118,  119,  118,  119,  118,
      119,   62,  118,  119,  119,  119,  119,  118,  119,  118,
      119,  118,  119,  118,  119,  118,  119,  118,  119,  118,
      119,  118,  119,  118,  119,  118,  119,  119,  118,  119,
       85,  118,  119,  118,  119,  119,  118,  119,  118,  119,

      118,  119,  118,  119,  119,  118,  119,  118,  119,  118,
      119,  118,  119,  119,  118,  119,  119,  106,  118,  119,
      118,  119,  118,  119,  119,  118,  119,  119,  119,  119,
       31,   21,   22,   32,  118,  119,  118,  119,  118,  119,
      119,  118,  119,  118,  119,   43,  118,  119,  118,  119,
      118,  119,  118,  119,  118,  119,  118,  119,  118,  119,
      118,  119,  118,  119,  118,  119,  118,  119,   57,  118,
      119,  118,  119,  118,  119,  118,  119,  118,  119,  119,
      119,  119,  118,  119,  118,  119,  118,  119,  118,  119,
      118,  119,  118,  119,  118,  119,  118,  119,  118,  119,

      118,  119,  118,  119,  119,   83,  118,  119,  118,  119,
      119,  118,  119,  118,  119,  118,  119,  118,  119,  119,
      118,  119,  118,  119,   99,  118,  119,  100,  118,  119,
      119,  118,  119,  119,  107,  118,  119,  118,  119,  119,
      119,  119,  119,  119,   21,   22,  118,  119,  118,  119,
      119,   40,  118,  119,  118,  119,  118,  119,  118,  119,
      118,  119,   49,  118,  119,   50,  118,  119,  118,  119,
      118,  119,   53,  118,  119,  118,  119,  118,  119,  118,
      119,   59,  118,  119,  118,  119,  118,  119,  119,  119,
      119,  118,  119,  118,  119,   70,  118,  119,   71,  118,

      119,  118,  119,  118,  119,  118,  119,   75,  118,  119,
      118,  119,  118,  119,  118,  119,  119,  118,  119,  119,
       88,  118,  119,  118,  119,   91,  118,  119,   93,  118,
      119,  119,  118,  119,  118,  119,  119,  118,  119,  119,
      118,  119,  110,  119,  119,  119,  119,  119,   21,   22,
      118,  119,  118,  119,  119,  118,  119,  118,  119,  118,
      119,  118,  119,  118,  119,   52,  118,  119,  118,  119,
      118,  119,   58,  118,  119,  118,  119,   61,  118,  119,
      119,  119,  119,  119,  118,  119,   69,  118,  119,   72,
      118,  119,   73,  118,  119,  118,  119,  118,  119,  119,

      118,  119,  119,   87,  118,  119,  119,  118,  119,  119,
      118,  119,   96,  118,  119,  119,  118,  119,  119,  118,
      119,  119,  119,  119,  119,   21,   22,  118,  119,   36,
      118,  119,   39,  119,   42,  118,  119,   45,  118,  119,
      118,  119,  118,  119,  118,  119,  118,  119,  118,  119,
      118,  119,  119,  119,  119,   67,  119,  118,  119,  118,
      119,  118,  119,  119,  118,  119,  119,  119,  118,  119,
      119,  118,  119,  101,  119,  118,  119,  119,  108,  118,
      119,  119,  119,  119,  119,   21,  118,  119,   46,  118,
      119,   47,  118,  119,   48,  118,  119,  118,  119,  118,

      119,   56,  118,  119,  118,  119,  119,  119,  119,   68,
      118,  119,  118,  119,  118,  119,  119,  118,  119,  119,
      119,  118,  119,  119,  118,  119,  118,  119,  119,  111,
      119,  119,  119,  119,   21,   35,  118,  119,   51,  118,
      119,  118,  119,  118,  119,  119,  119,  119,  118,  119,
      118,  119,  119,  118,  119,  119,  119,  118,  119,  119,
      118,  119,  118,  119,  119,  119,  119,  119,   30,   31,
       21,  118,  119,  118,  119,  119,  119,  119,   74,  118,
      119,   76,  118,  119,   77,  119,  118,  119,  119,  119,
      118,  119,  119,   95,  118,  119,  118,  119,  119,  119,

      119,  119,   21,  118,  119,   60,  118,  119,   65,  119,
      119,   66,  119,  118,  119,   82,  119,  119,   90,  118,
      119,  119,  118,  119,  103,  119,  119,  119,  113,  119,
       21,  118,  119,  119,   80,  118,  119,  119,  119,  118,
      119,  119,  112,  119,   21,  118,  119,   64,  119,  119,
       92,  119,  105,  118,  119,  109,  119,   21,   54,  118,
      119,   84,  119,   19,   21
    } ;

static yyconst short int yy_accept[710] =
    {   0,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    2,    4,    7,    9,   12,
       15,   18,   20,   23,   25,   28,   30,   33,   36,   39,
       41,   45,   49,   53,   57,   61,   65,   69,   73,   77,
       81,   85,   89,   93,   97,  101,  105,  109,  113,  117,
      120,  123,  126,  130,  133,  135,  138,  141,  145,  147,
      150,  153,  156,  158,  161,  164,  166,  169,  172,  175,
      178,  182,  185,  187,  192,  197,  200,  203,  205,  207,
      210,  210,  211,  212,  213,  213,  214,  214,  215,  215,
      215,  216,  217,  218,  219,  220,  220,  222,  224,  226,

      228,  230,  232,  233,  235,  237,  239,  241,  244,  246,
      248,  250,  252,  254,  256,  258,  260,  262,  263,  264,
      266,  268,  270,  272,  274,  276,  278,  280,  281,  283,
      285,  288,  290,  291,  293,  295,  297,  299,  300,  302,
      304,  306,  308,  310,  312,  314,  316,  318,  319,  321,
      323,  324,  325,  327,  327,  327,  327,  327,  327,  328,
      329,  330,  331,  332,  333,  334,  334,  335,  337,  339,
      340,  341,  342,  342,  343,  344,  344,  344,  345,  346,
      347,  349,  352,  355,  357,  359,  361,  364,  366,  368,
      370,  372,  374,  376,  378,  380,  382,  384,  387,  389,

      391,  393,  395,  397,  399,  400,  401,  403,  405,  407,
      409,  411,  413,  415,  418,  421,  423,  424,  426,  428,
      430,  431,  433,  436,  438,  440,  442,  443,  445,  447,
      449,  452,  454,  456,  458,  460,  462,  464,  466,  467,
      469,  471,  473,  474,  475,  476,  478,  479,  479,  479,
      479,  479,  480,  482,  485,  485,  486,  487,  489,  491,
      493,  495,  497,  499,  501,  503,  505,  507,  509,  511,
      513,  515,  517,  519,  521,  523,  525,  527,  529,  531,
      534,  535,  536,  538,  540,  542,  544,  546,  548,  550,
      552,  554,  557,  558,  560,  562,  564,  565,  567,  569,

      571,  573,  574,  577,  579,  581,  584,  586,  588,  590,
      593,  596,  598,  599,  601,  603,  605,  607,  609,  610,
      611,  612,  615,  615,  615,  615,  615,  617,  619,  621,
      623,  626,  627,  629,  631,  633,  636,  638,  640,  642,
      644,  646,  648,  650,  652,  654,  656,  658,  660,  662,
      665,  666,  667,  668,  670,  672,  674,  676,  678,  680,
      682,  684,  686,  688,  689,  691,  694,  696,  697,  699,
      701,  703,  705,  706,  708,  710,  712,  714,  715,  717,
      718,  721,  723,  725,  726,  728,  729,  730,  731,  732,
      732,  732,  732,  734,  737,  739,  741,  742,  744,  746,

      749,  751,  753,  755,  757,  759,  761,  763,  765,  767,
      769,  772,  774,  776,  778,  780,  781,  782,  783,  785,
      787,  789,  791,  793,  795,  797,  799,  801,  803,  805,
      806,  809,  811,  812,  814,  816,  818,  820,  821,  823,
      825,  828,  831,  832,  834,  835,  838,  840,  841,  842,
      843,  844,  845,  845,  845,  845,  847,  849,  851,  852,
      855,  857,  859,  861,  863,  866,  869,  871,  873,  876,
      878,  880,  882,  885,  887,  889,  890,  891,  892,  894,
      896,  899,  902,  904,  906,  908,  911,  913,  915,  917,
      918,  920,  921,  924,  926,  929,  932,  933,  935,  937,

      938,  940,  941,  943,  945,  946,  947,  948,  949,  949,
      949,  949,  951,  953,  955,  956,  958,  960,  962,  964,
      966,  969,  971,  973,  976,  978,  981,  982,  983,  984,
      985,  987,  990,  993,  996,  998, 1000, 1001, 1003, 1004,
     1007, 1008, 1010, 1011, 1013, 1016, 1017, 1019, 1020, 1022,
     1023, 1024, 1025, 1026, 1026, 1026, 1026, 1028, 1030, 1033,
     1035, 1038, 1041, 1043, 1045, 1047, 1049, 1051, 1053, 1054,
     1055, 1056, 1058, 1060, 1062, 1064, 1065, 1067, 1068, 1069,
     1071, 1072, 1074, 1076, 1078, 1079, 1082, 1083, 1084, 1085,
     1086, 1086, 1086, 1086, 1087, 1089, 1092, 1095, 1098, 1100,

     1102, 1105, 1107, 1108, 1109, 1110, 1113, 1115, 1117, 1118,
     1120, 1121, 1122, 1124, 1125, 1127, 1129, 1130, 1132, 1133,
     1134, 1135, 1135, 1135, 1135, 1136, 1139, 1142, 1144, 1146,
     1147, 1148, 1149, 1151, 1153, 1154, 1156, 1157, 1158, 1160,
     1161, 1163, 1165, 1166, 1167, 1168, 1169, 1169, 1171, 1171,
     1172, 1174, 1176, 1177, 1178, 1179, 1182, 1185, 1187, 1189,
     1190, 1191, 1193, 1194, 1197, 1199, 1200, 1201, 1202, 1203,
     1203, 1204, 1206, 1209, 1211, 1212, 1214, 1216, 1218, 1219,
     1222, 1223, 1225, 1227, 1228, 1229, 1231, 1231, 1232, 1234,
     1235, 1238, 1239, 1240, 1242, 1243, 1245, 1246, 1248, 1250,

     1251, 1253, 1256, 1258, 1259, 1262, 1264, 1266, 1266
    } ;

static yyconst int yy_ec[256] =
    {   0,
        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
        4,    4,    4,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    2,    5,    6,    1,    1,    1,    7,    8,    9,
        9,   10,    1,    9,   11,   12,   13,   14,   15,   16,
       16,   17,   18,   19,   16,   20,   16,   21,   22,   23,
       24,    1,    1,    9,   25,   26,   27,   28,   29,   30,
       31,   32,   33,   34,   35,   36,   37,   38,   39,   40,
       41,   42,   43,   44,   45,   46,   47,   48,   49,   50,
       51,    1,   52,   53,    1,    1,   54,   55,   56,   57,

       58,   59,   60,   61,   62,   63,   59,   64,   65,   66,
       67,   68,   59,   69,   70,   71,   72,   73,   59,   74,
       59,   75,   76,   77,   78,    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[79] =
    {   0,
        1,    2,    3,    3,    1,    4,    5,    6,    1,    1,
        7,    1,    1,    8,    8,    8,    8,    8,    8,    8,
        9,    1,    1,    9,    8,    8,    8,    8,    8,    8,
       10,   10,   10,   10,   10,   10,   10,   10,   10,   10,
       10,   10,   10,   10,   10,   10,   10,   10,   10,   10,
        1,    1,    1,   11,   11,   11,   11,   11,   11,   11,
       11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
       11,   11,   11,   11,   11,   12,    1,   12
    } ;

static yyconst short int yy_base[728] =
    {   0,
        0,    0,   76,   78,   80,   81,   82,   89,   83,   93,
      171,  249,  109,  120,  961,  952,   95,   98,  951,  948,
      320,  117, 4405,  118,  933,  100, 4405,  125,  923, 4405,
      385,  176,  194,  120,  239,  267,  435,  163,  293,  441,
      191,  259,  463,  471,  484,  500,  508,  270,  521,  553,
      935,    0,  933,    0, 4405, 4405,  926, 4405, 4405,  922,
      922,    0,    0,  924,    0,    0,  902, 4405, 4405, 4405,
        0, 4405, 4405,  598,  675,    0,  148,  151,  182, 4405,
      915,  160,    0,  913,  912,    0,  135,    0,  573,  908,
     4405,  226,  902, 4405,  598,  886,  556,  597,  598,  618,

      619,  634,    0,  664,  667,  680,  693,  704,  720,  728,
      741,  744,  757,  772,  778,  775,  793,  842,  852,  808,
      811,  819,  834,  845,  856,  862,  873,  840,  886,  889,
      902,  910,  840,  913,  926,  937,  950,  835,  966,  972,
      983,  989, 1000, 1015, 1016, 1031, 1032,  831, 1047, 1048,
      831,   48, 1063, 1095, 1102,  851,   88,  128,    0,    0,
     4405, 4405,    0, 4405,    0,  865,    0,  849,  253,    0,
      264, 4405,  875,    0,    0,   83,  848,  611, 4405, 4405,
     1098, 1099, 1114, 1115, 1130, 1138, 1141, 1154, 1162, 1170,
     1178, 1191, 1199, 1202, 1223, 1224, 1239, 1245, 1256, 1262,

     1273, 1279, 1290, 1301,  818,  807, 1314, 1322, 1325, 1340,
     1343, 1346, 1370, 1364, 1367, 1385,  815, 1388, 1403, 1409,
      811, 1420, 1431, 1437, 1448, 1459,  802, 1470, 1476, 1487,
     1493, 1508, 1509, 1524, 1535, 1541, 1556, 1562,  809, 1573,
     1584, 1595,  793,  807,  801, 1606, 4405, 1645,  822,  178,
      250, 4405,  109,  820,  802, 4405, 4405, 1630, 1641, 1647,
     1662, 1663, 1680, 1679, 1695, 1701, 1712, 1723, 1741, 1738,
     1744, 1759, 1762, 1765, 1780, 1786, 1797, 1808, 1823, 1829,
      783,  789, 1840, 1846, 1861, 1862, 1877, 1883, 1898, 1901,
     1909, 1922,  774, 1930, 1933, 1946,  786, 1954, 1970, 1969,

     1986,  770, 1987, 2002, 2015, 2023, 2026, 2044, 2041, 2047,
     2062, 2065,  768, 2068, 2083, 2089, 2100, 2106,  778,  768,
      775, 2121, 2153,  170,  151,  242,  200, 2138, 2153, 2159,
     2170,  759, 2176, 2191, 2194, 2202, 2215, 2218, 2226, 2239,
     2247, 2260, 2268, 2276, 2284, 2299, 2305, 2316, 2322, 2337,
      773,  763,  755, 2338, 2358, 2355, 2376, 2375, 2391, 2397,
     2408, 2419, 2430,  759, 2436, 2447, 2453,  738, 2464, 2475,
     2481, 2492,  753, 2505, 2508, 2516, 2529,  737, 2540,  745,
     2546, 2561, 2562,  731, 2577,  725,  721,  727, 4405,  280,
      297,  294,  231, 2583, 2599, 2605,  728, 2616, 2627, 2638,

     2644, 2655, 2661, 2672, 2683, 2689, 2706, 2712, 2723, 2729,
     2740, 2746, 2757, 2763, 2779,  724,  731,  723, 2780, 2795,
     2801, 2812, 2818, 2833, 2839, 2850, 2865, 2871, 2882,  720,
     2893, 2899,  747, 2910, 2916, 2927, 2940,  716, 2948, 2963,
     2966, 2969,  707, 2984,  689, 2987, 2990,  704,  692,  687,
      697,  693,  271,  295,  301,  712, 3005, 3018,  682, 3021,
     3036, 3042, 3053, 3059, 3070, 3076, 3087, 3098, 3104, 3115,
     3121, 3132, 3143, 3149, 3160,  124,  704,  677, 3166, 3177,
     3188, 3194, 3205, 3211, 3226, 3227, 3242, 3248, 3259,  698,
     3265,  681, 3276, 3287, 3298, 3304,  673, 3319, 3325,  658,

     3340,  680, 3346,    0,  660,  667,  643,  672,  438,  368,
      366,  286, 3357, 3372,  654, 3378, 3389, 3402, 3410, 3413,
     3428, 3434, 3449, 3431, 3455, 3466,  639,  633,  630,  634,
     3472, 3483, 3489, 3500, 3506, 3517,  623, 3528,  620, 3534,
      619, 3545,  619, 3556, 3562,  613, 3573,  600, 3579,  603,
      604,  623,  594,  300,  466,  447,  360, 3590, 3596,    0,
     3607, 3613, 3629, 3628, 3644, 3645, 3660, 3661,  593,  603,
      584,    0, 3676, 3684, 3699,  590, 3700,  579,  591, 3715,
      603, 3723,    0, 3731,  572, 3744,  579,  589,  531,  528,
      443, 3783,  454,  568, 3768, 3769, 3784, 3785, 3800, 3808,

     3816, 3824,  529,  533,  527, 3832, 3840, 3848,  520, 3856,
      523,  515, 3864,  512, 3872, 3880,  518,    0,  508,  496,
      498,  397, 3912,  560,  517, 3897, 3898, 3913, 3921,  489,
      507,  484, 3934, 3942,  483, 3950,  475,  477, 3958,  468,
     3971, 3974,  469,  462,  468,  461,  424, 4405, 4018,  485,
     4003, 4004,  461,  456,  455, 4019, 4020,    0, 4035,  454,
      444, 4036,  440, 4051, 4057,  438,  434,  429,  432,  732,
      441, 4068, 4079,    0,  419,    0, 4085,    0,  411, 4100,
      399, 4103,    0,  372,  347,    0, 4147,  330, 4132,  258,
     4143,  227,  214, 4149,  177,    0,  180, 4160,    0,  138,

        0, 4166,    0,  134, 4177,    0,    0, 4405, 4222, 4234,
     4246, 4258, 4270, 4282, 4294, 4305, 4306, 4310, 4321, 4333,
     4345, 4356, 4367, 4378, 4383, 4388, 4393
    } ;

static yyconst short int yy_def[728] =
    {   0,
      708,    1,  709,  709,  710,  710,  711,  711,  712,  712,
      713,  713,  714,  714,  708,  708,  708,  708,  708,  715,
      708,  716,  708,  708,  708,  708,  708,  708,  708,  708,
      708,   31,   31,   31,   31,   31,   31,   31,   31,   31,
       31,   31,   31,   31,   31,   31,   31,   31,   31,  717,
      708,  718,  708,  719,  708,  708,  708,  708,  708,  708,
      708,  720,  720,  708,  721,  721,  708,  708,  708,  708,
      722,  708,  708,  723,  723,  724,  708,  708,   21,  708,
      708,  708,  715,  715,  708,  725,  708,  726,  716,  716,
      708,  708,  708,  708,  708,  708,   31,   31,   31,   31,

       31,   31,  727,   31,   31,   31,   31,   31,   31,   31,
       31,   31,   31,   31,   31,   31,   31,  727,  727,   31,
       31,   31,   31,   31,   31,   31,   31,  727,   31,   31,
       31,   31,  727,   31,   31,   31,   31,  727,   31,   31,
       31,   31,   31,   31,   31,   31,   31,  727,   31,   31,
      727,  727,   31,  708,  717,  155,  155,  155,  718,  719,
      708,  708,  720,  708,  721,  708,  722,   75,   75,  724,
      708,  708,  708,  725,  726,  708,  708,  708,  708,  708,
       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,

       31,   31,   31,   31,  727,  727,   31,   31,   31,   31,
       31,   31,   31,   31,   31,   31,  727,   31,   31,   31,
      727,   31,   31,   31,   31,   31,  727,   31,   31,   31,
       31,   31,   31,   31,   31,   31,   31,   31,  727,   31,
       31,   31,  727,  727,  727,   31,  708,  708,  155,  155,
      155,  708,   75,   75,  708,  708,  708,   31,   31,   31,
       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
      727,  727,   31,   31,   31,   31,   31,   31,   31,   31,
       31,   31,  727,   31,   31,   31,  727,   31,   31,   31,

       31,  727,   31,   31,   31,   31,   31,   31,   31,   31,
       31,   31,  727,   31,   31,   31,   31,   31,  727,  727,
      727,   31,  708,  155,  155,  155,   75,   31,   31,   31,
       31,  727,   31,   31,   31,   31,   31,   31,   31,   31,
       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
      727,  727,  727,   31,   31,   31,   31,   31,   31,   31,
       31,   31,   31,  727,   31,   31,   31,  727,   31,   31,
       31,   31,  727,   31,   31,   31,   31,  727,   31,  727,
       31,   31,   31,  727,   31,  727,  727,  727,  708,  155,
      155,  155,   75,   31,   31,   31,  727,   31,   31,   31,

       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
       31,   31,   31,   31,   31,  727,  727,  727,   31,   31,
       31,   31,   31,   31,   31,   31,   31,   31,   31,  727,
       31,   31,  727,   31,   31,   31,   31,  727,   31,   31,
       31,   31,  727,   31,  727,   31,   31,  727,  727,  727,
      727,  727,  155,  155,  155,   75,   31,   31,  727,   31,
       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
       31,   31,   31,   31,   31,  727,  727,  727,   31,   31,
       31,   31,   31,   31,   31,   31,   31,   31,   31,  727,
       31,  727,   31,   31,   31,   31,  727,   31,   31,  727,

       31,  727,   31,  727,  727,  727,  727,  727,  155,  155,
      155,   75,   31,   31,  727,   31,   31,   31,   31,   31,
       31,   31,   31,   31,   31,   31,  727,  727,  727,  727,
       31,   31,   31,   31,   31,   31,  727,   31,  727,   31,
      727,   31,  727,   31,   31,  727,   31,  727,   31,  727,
      727,  727,  727,  155,  155,  155,   75,   31,   31,  727,
       31,   31,   31,   31,   31,   31,   31,   31,  727,  727,
      727,  727,   31,   31,   31,  727,   31,  727,  727,   31,
      727,   31,  727,   31,  727,   31,  727,  727,  727,  727,
      155,  708,  155,  722,   31,   31,   31,   31,   31,   31,

       31,   31,  727,  727,  727,   31,   31,   31,  727,   31,
      727,  727,   31,  727,   31,   31,  727,  727,  727,  727,
      727,  155,  708,  155,  722,   31,   31,   31,   31,  727,
      727,  727,   31,   31,  727,   31,  727,  727,   31,  727,
       31,   31,  727,  727,  727,  727,  155,  708,  708,  722,
       31,   31,  727,  727,  727,   31,   31,  727,   31,  727,
      727,   31,  727,   31,   31,  727,  727,  727,  727,  155,
      722,   31,   31,  727,  727,  727,   31,  727,  727,   31,
      727,   31,  727,  727,  727,  727,  708,  722,   31,  727,
       31,  727,  727,   31,  727,  727,  722,   31,  727,  727,

      727,   31,  727,  722,   31,  727,  722,    0,  708,  708,
      708,  708,  708,  708,  708,  708,  708,  708,  708,  708,
      708,  708,  708,  708,  708,  708,  708
    } ;

static yyconst short int yy_nxt[4484] =
    {   0,
       16,   17,   18,   17,   19,   20,   21,   22,   23,   16,
       24,   25,   26,   27,   28,   28,   28,   28,   28,   28,
       29,   19,   30,   30,   31,   32,   33,   34,   35,   36,
       37,   38,   39,   38,   38,   38,   40,   41,   42,   43,
       38,   44,   45,   46,   47,   48,   49,   38,   38,   38,
       50,   19,   51,   52,   52,   52,   52,   52,   52,   52,
       52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
       52,   52,   52,   52,   52,   23,   53,   23,   55,   56,
       55,   56,   59,   59,   63,   66,   57,   64,   57,   60,
       60,   63,   61,   61,   64,   66,   82,   82,   82,   82,

       82,   82,   81,   67,  244,   81,   68,   81,  256,   94,
       77,   78,   77,   67,  257,   79,   68,  245,   89,   89,
       89,   77,   78,   77,   81,   81,   79,  156,   91,  250,
       89,   89,   92,   92,   92,   92,   92,   92,   95,   95,
       95,   95,   95,   95,   95,   97,  168,  327,  112,  171,
      171,  171,  171,  171,  171,   97,   85,   97,   69,   97,
       70,   82,   82,   82,   97,  251,  527,  156,   69,  707,
       70,   71,   72,   73,   72,   71,   71,   71,   71,   71,
       71,   71,   71,   71,   30,  528,   80,   87,   97,  708,
      156,   71,   71,   71,   71,   30,  391,   80,   97,   75,

       97,   97,   97,  708,  104,  390,  706,   97,  105,  156,
      325,   97,  106,   97,  107,   97,   97,  156,  704,   97,
       97,   71,   71,   71,  108,  109,   97,  393,   97,  110,
       97,   97,  111,   97,  708,  127,  703,  168,   97,  178,
      178,  178,  178,  178,  178,  178,   72,   71,   72,   71,
       72,   73,   72,   71,   71,   71,   71,   71,   71,   71,
       71,   71,  128,  456,   97,  171,  171,  171,  168,   71,
       71,   71,   71,  701,   97,  113,  114,   75,   97,  253,
      254,  156,  326,   97,  129,  130,  115,  392,  131,  156,
      168,  116,   97,  700,   97,   97,   97,  509,  132,   71,

       71,   71,   97,   97,   97,   97,   97,   97,  117,   97,
      156,   97,  453,  133,   97,  699,  557,  120,   97,  156,
      121,  454,  455,  168,   72,   71,   72,   81,   97,  122,
      123,  152,   97,  156,  156,  124,  156,   97,  510,  156,
      156,   85,  511,  591,   86,   86,   86,   86,   86,   86,
       86,   86,   86,   86,   86,   86,   86,   86,   86,   86,
       86,   86,   86,   86,   86,   86,   86,   86,   86,   86,
      594,  697,   87,   88,   88,   88,   88,   88,   88,   88,
       88,   88,   88,   88,   88,   88,   88,   88,   88,   88,
       88,   88,   88,   88,   88,   97,  555,  168,   97,   97,

       97,   97,   97,   97,   97,  156,  696,  156,  556,   97,
       98,   97,   97,   97,   97,   97,   97,   97,   97,   97,
       99,   97,  100,   97,  101,   97,   97,   97,   97,  102,
       97,   97,   97,   97,   97,  647,  156,  695,  103,  103,
      103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
      103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
       97,  670,  554,  156,  693,  125,   97,  592,  592,  592,
       97,  593,   97,  126,   97,  622,   97,  156,   97,   97,
       97,  692,  156,  690,  688,   97,  156,  134,   97,  624,
      135,  686,  118,  156,  685,  684,   97,  683,  136,  139,

       97,  681,   97,  119,  137,  156,   97,   97,   97,   97,
       97,  679,  140,  678,  676,   97,  141,  675,  144,   97,
      674,   97,  671,   97,  145,   97,  669,  142,   97,  668,
      667,  138,  143,   97,  666,   97,  663,   97,  661,   97,
      660,  146,  658,   97,   97,  149,   97,   97,  147,  655,
      654,  150,   97,  153,  653,  650,   97,  148,   97,  646,
       97,  649,  649,  649,  645,   97,  154,  154,  154,  154,
      154,  154,  154,  151,   89,   89,   89,  155,  644,  643,
      176,   97,  640,  638,  637,  635,   89,   89,  632,  631,
      630,   97,  157,   97,  625,   97,  621,  158,  167,  156,

       97,  620,  167,  167,  167,  167,  167,  167,  167,  167,
      167,   95,   95,   95,   95,   95,   95,   95,  167,  167,
      167,  167,   97,   97,  178,  178,  178,  178,  178,  178,
      178,  619,   97,  182,   97,   97,   97,   97,  618,  181,
      617,   97,   97,   97,   97,  614,  612,  611,  167,  167,
      167,  609,  605,   97,   97,   97,   97,   97,  184,   97,
      604,  603,   97,   97,  590,  589,  183,  588,  587,   97,
      585,   97,  583,   97,  167,  167,  581,  185,   97,  167,
      167,  167,  167,  167,  167,  167,  167,  167,  579,   97,
      578,  576,   97,  572,  186,  167,  167,  167,  167,   97,

      571,   97,   97,   97,   97,   97,   97,  570,   97,  569,
      187,   97,  169,  560,  553,   97,  552,   97,   97,  188,
      551,  550,  548,  546,   97,  167,  167,  167,   97,   97,
       97,  189,   97,  687,  687,  687,  543,   97,  541,   97,
      539,   97,  530,   97,  190,   97,  529,  515,   97,  512,
      508,  167,  192,   97,  507,   97,  506,   97,  191,   97,
      505,  504,  502,   97,   97,   97,   97,   97,  500,   97,
      497,  156,   97,  195,  492,  490,   97,  193,  194,   97,
       97,   97,  196,   97,  478,   97,  477,  476,   97,  459,
      452,  451,   97,  450,   97,  448,   97,   97,  197,  198,

       97,   97,  445,   97,  200,  443,  438,   97,  433,   97,
      203,   97,   97,   97,   97,   97,  199,  201,   97,   97,
      430,  202,   97,  418,  417,  207,  416,  397,   97,  388,
       97,  204,   97,   97,  387,  386,   97,   97,  380,  208,
      373,  368,  364,   97,   97,   97,   97,   97,   97,  352,
       97,  351,   97,  172,   97,   97,   97,  168,  209,   97,
      210,  324,  321,   97,  320,  319,  313,  302,  297,   97,
       97,   97,  293,   97,  282,  281,  211,  212,   97,  257,
       97,   97,   97,  213,   97,  255,  168,   97,  252,   97,
      156,   97,  243,   97,  239,   97,  227,   97,   97,  215,

       97,   97,  221,  214,  217,  206,   97,  205,  216,  180,
       97,   97,   97,  179,   97,  177,  173,   97,  172,  218,
      172,   97,  166,   97,   97,   97,   97,   97,   97,  164,
       97,   94,  219,   97,  162,   97,  161,   97,   97,   97,
       81,   97,   81,   96,   93,   97,   97,   97,   97,   97,
       97,   97,   97,  220,   97,   84,  222,   97,   81,   81,
      708,   97,   97,   97,  708,   97,  708,  708,  708,  708,
       97,  223,   97,  708,   97,   97,   97,  708,  225,  708,
      708,  224,  226,  708,  708,   97,  708,   97,  708,   97,
      228,   97,  708,  708,   97,  708,  708,   97,  708,  708,

      708,  229,  708,   97,  708,   97,  708,   97,   97,   97,
       97,   97,  230,  708,   97,  231,   97,  708,   97,  708,
       97,  708,   97,  708,   97,   97,   97,   97,   97,  235,
      233,  708,  232,   97,  708,   97,  708,  234,  708,   97,
       97,   97,  708,  708,   97,  708,  236,  708,  708,  708,
       97,   97,   97,   97,   97,   97,   97,   97,  708,   97,
       97,  708,  708,  708,  708,  708,   97,   97,   97,   97,
       97,  238,   97,   97,  241,  237,   97,  242,  708,  240,
      708,  708,   97,   97,   97,   97,   97,   97,   97,  708,
      708,   97,   97,  708,  708,  708,  708,  708,   97,  708,

       97,  708,   97,  248,  248,  248,  246,   97,  154,  154,
      154,  154,  154,  154,  154,  708,  708,  708,  708,  708,
      708,  708,  708,   97,   97,  708,  258,  708,  708,  708,
      708,  708,  708,   97,   97,   97,   97,   97,   97,   97,
       97,  249,   97,   97,  708,  708,  247,  708,  708,   97,
      259,   97,   97,   97,   97,   97,  708,  708,   97,   97,
      708,  708,  708,   97,  708,   97,   97,   97,  260,   97,
      261,  708,  708,   97,   97,   97,   97,   97,   97,   97,
       97,  708,   97,  708,  708,   97,  708,   97,  708,   97,
      708,   97,  708,   97,  708,   97,  262,  263,   97,   97,

      708,   97,  708,   97,  708,   97,   97,   97,  708,   97,
      265,  264,  708,   97,   97,   97,   97,   97,  708,  708,
      708,  708,   97,  708,   97,  708,   97,   97,   97,  708,
       97,  708,  708,  266,   97,   97,   97,   97,  267,   97,
      708,   97,  708,   97,  268,  269,   97,  270,   97,   97,
      708,  708,  272,  708,  708,  271,  708,  708,   97,   97,
       97,   97,   97,   97,   97,  708,  708,   97,   97,  708,
       97,  708,  708,  708,   97,  708,   97,  273,   97,  708,
       97,   97,   97,   97,   97,  708,  708,   97,  708,   97,
      275,   97,  274,   97,  708,   97,  708,   97,   97,   97,

       97,   97,  708,  708,   97,  708,   97,  278,  276,  708,
       97,  277,   97,  708,   97,   97,   97,   97,   97,  708,
      708,  708,  708,   97,  708,   97,   97,   97,  708,   97,
      708,  708,  279,  708,   97,  708,   97,  280,   97,   97,
       97,  708,  708,  708,  708,   97,  708,   97,  708,   97,
       97,   97,  708,   97,  708,  708,  283,   97,   97,  284,
      285,   97,   97,  286,   97,   97,   97,  708,   97,   97,
      708,   97,  708,  708,  289,  287,  708,   97,   97,   97,
       97,   97,   97,   97,   97,   97,  288,   97,  290,   97,
       97,  708,   97,  708,  708,   97,  708,  708,  708,   97,

      708,   97,   97,   97,   97,   97,   97,   97,   97,   97,
       97,  291,  708,   97,   97,  708,  294,  708,  708,  708,
      292,  708,   97,   97,   97,   97,  708,   97,   97,   97,
      708,  295,   97,  708,   97,  708,  708,  708,   97,  708,
       97,  296,   97,  708,   97,   97,   97,   97,   97,  708,
      708,  708,  708,   97,  708,   97,   97,   97,  708,   97,
      708,  708,   97,  298,   97,  708,   97,  708,   97,  708,
       97,  708,   97,   97,   97,   97,   97,  708,  708,  299,
      708,   97,  708,   97,   97,   97,  708,   97,  708,  708,
      300,  708,   97,  708,   97,   97,   97,  708,   97,  708,

      304,   97,  708,   97,  301,  303,  708,   97,  708,   97,
      708,   97,   97,   97,   97,   97,  708,  708,   97,  708,
       97,  708,   97,  708,   97,  708,   97,  708,   97,  708,
       97,  305,   97,   97,   97,  708,  306,   97,  708,  708,
      708,  307,  708,   97,   97,   97,   97,   97,   97,   97,
      708,  708,   97,   97,  708,  708,  708,  708,  708,   97,
       97,   97,  708,   97,  708,  708,   97,  308,   97,  708,
       97,  708,   97,  708,   97,  708,   97,  309,   97,   97,
       97,   97,  708,  310,  311,   97,  708,   97,  708,  708,
      312,   97,  708,   97,  708,   97,  708,   97,   97,   97,

       97,   97,  708,  708,  708,  708,   97,  708,   97,   97,
       97,  314,   97,  315,  318,  708,  708,   97,  316,   97,
       97,   97,  708,   97,  708,  708,  708,  317,   97,  708,
       97,   97,   97,  708,   97,  708,  708,  322,  708,   97,
      708,   97,  708,   97,  708,   97,  248,  248,  248,  708,
       97,  708,  708,  708,  708,   97,  708,  708,  323,  323,
      323,  323,  323,  323,  323,   97,   97,  328,  708,   97,
      708,  708,   97,  329,   97,  708,   97,  708,   97,  708,
       97,  708,   97,  330,   97,   97,   97,   97,   97,  708,
      708,   97,  708,  708,  708,  708,  708,   97,   97,  331,

       97,   97,   97,  334,   97,   97,   97,   97,  333,  708,
      708,  708,  708,  708,   97,   97,   97,   97,   97,   97,
       97,  335,  708,   97,   97,  708,   97,  708,  708,  708,
       97,  708,   97,  332,   97,  708,   97,   97,   97,   97,
       97,  708,  708,  336,  708,   97,  708,   97,   97,   97,
      337,   97,  708,  708,  708,  708,   97,  708,   97,  708,
       97,  708,   97,   97,  338,  339,   97,   97,  708,   97,
      708,  708,  708,   97,  708,   97,   97,   97,   97,   97,
       97,  341,  340,   97,   97,   97,  342,   97,   97,  343,
       97,  708,  708,  344,   97,  708,   97,   97,   97,   97,

       97,   97,   97,   97,   97,   97,   97,  708,  708,   97,
      708,   97,  708,  708,  708,   97,  708,   97,  346,  345,
      708,   97,   97,   97,   97,   97,  708,  708,  708,  708,
       97,  708,   97,   97,   97,  708,   97,  708,  347,  708,
      708,   97,  708,   97,  708,  348,  708,   97,   97,  349,
      708,  350,   97,  708,   97,  708,  708,  708,   97,  708,
       97,  708,   97,  708,   97,   97,   97,   97,   97,  708,
      708,   97,  708,   97,  708,   97,  708,   97,  708,   97,
      708,   97,  708,   97,   97,   97,   97,   97,  708,  354,
       97,  708,  708,  355,  708,  708,   97,   97,   97,   97,

       97,   97,   97,  356,  708,   97,   97,  358,   97,  708,
      353,  708,   97,  708,   97,  708,   97,  362,   97,  708,
       97,  357,   97,   97,  359,  708,   97,   97,  360,  708,
      708,  708,  708,   97,   97,   97,   97,   97,   97,  361,
       97,  708,   97,  708,   97,   97,   97,   97,   97,  708,
      708,  363,  708,   97,  708,   97,  365,   97,   97,   97,
      708,   97,  708,  708,  708,   97,   97,   97,   97,   97,
       97,   97,   97,  708,   97,  708,  366,   97,  708,   97,
      370,   97,  369,   97,  367,   97,  708,  708,  708,   97,
       97,   97,  708,   97,   97,   97,  708,  371,   97,  708,

      708,  708,  708,  708,   97,   97,   97,   97,   97,   97,
      372,   97,   97,   97,   97,  708,  708,  708,  708,  708,
      708,   97,   97,   97,   97,   97,   97,   97,  708,  708,
       97,   97,  708,  708,  708,  708,  708,   97,  708,   97,
       97,   97,  708,  375,  708,  374,   97,  708,   97,  708,
       97,   97,   97,  708,   97,  708,  708,  708,   97,   97,
       97,   97,   97,  376,  708,   97,   97,   97,  377,   97,
       97,  708,   97,  708,  708,  379,   97,  708,   97,   97,
       97,   97,   97,   97,   97,   97,   97,   97,   97,  708,
       97,   97,  708,   97,  708,  708,  708,   97,  708,   97,

       97,   97,   97,   97,   97,  381,   97,   97,   97,   97,
      708,  378,   97,  708,   97,  708,  708,  383,   97,  708,
       97,  708,   97,  708,   97,   97,   97,  382,   97,  708,
      708,   97,  708,   97,  708,   97,  708,   97,  708,   97,
      708,   97,  708,   97,   97,   97,   97,  708,  385,  708,
       97,  708,  708,  708,  708,  708,   97,  708,   97,  708,
       97,  384,  708,   97,  708,   97,  323,  323,  323,  323,
      323,  323,  323,   97,  708,   97,  708,   97,   97,  395,
      708,  394,   97,  396,   97,  708,  708,  708,   97,  708,
       97,  708,   97,  708,   97,   97,   97,   97,   97,  708,

      398,   97,  708,   97,  389,   97,  708,   97,  708,   97,
      708,   97,  708,   97,   97,   97,   97,  399,  708,   97,
       97,  708,  400,  708,  708,  708,   97,   97,   97,   97,
       97,   97,  708,   97,  708,   97,  708,   97,   97,   97,
       97,   97,  402,   97,  708,  708,   97,  708,  708,  708,
       97,   97,  401,   97,   97,   97,  708,   97,  403,   97,
      708,   97,   97,   97,   97,   97,  708,  708,  708,  708,
       97,  708,   97,  708,  404,  405,   97,  708,   97,  406,
      708,  708,   97,   97,   97,   97,   97,  407,  708,  708,
      708,   97,  708,   97,  708,   97,  408,   97,  708,   97,

      409,   97,  708,   97,   97,   97,  708,   97,  708,   97,
      708,   97,   97,   97,  708,   97,  708,  410,  708,   97,
       97,   97,  708,   97,   97,  412,  708,  411,   97,  708,
       97,  708,  708,  708,   97,  708,   97,  708,   97,  708,
       97,   97,   97,   97,   97,  708,  708,   97,  413,   97,
      708,   97,  708,   97,  708,   97,  708,   97,  414,  415,
       97,   97,   97,   97,  708,  708,   97,  708,  708,  708,
      419,  708,   97,   97,   97,   97,   97,   97,  708,  708,
       97,   97,   97,   97,  420,  708,  421,  708,  708,  708,
       97,  708,   97,   97,   97,   97,  708,   97,  422,   97,

       97,   97,   97,  423,  708,  708,  708,  708,  708,  708,
       97,   97,  424,   97,   97,   97,   97,  708,  708,   97,
       97,  708,   97,  708,  708,  426,   97,  708,   97,  708,
       97,  708,   97,   97,   97,  425,   97,  428,  708,  708,
      429,   97,  708,   97,   97,   97,  708,   97,  708,  708,
      427,  708,   97,  708,   97,   97,   97,  708,   97,  708,
      708,   97,  708,   97,  708,   97,  708,   97,  708,   97,
      708,   97,   97,   97,   97,   97,  708,  708,   97,  431,
       97,  708,   97,  708,   97,  708,   97,  708,   97,   97,
      432,   97,   97,  708,  708,  708,  708,   97,  708,   97,

       97,   97,  708,   97,  708,  434,   97,  435,   97,  708,
       97,  708,   97,  708,   97,  708,   97,   97,  436,   97,
       97,  708,  708,  708,  708,   97,  708,   97,  708,   97,
       97,   97,  708,   97,  708,  437,   97,  439,  708,  708,
       97,   97,   97,   97,   97,  440,  441,   97,  708,   97,
      708,   97,   97,   97,   97,   97,  708,  708,  708,  708,
       97,  708,  708,  708,   97,   97,   97,  708,   97,  708,
      708,   97,  444,   97,  708,   97,  442,   97,  708,   97,
      708,   97,  708,   97,   97,   97,   97,   97,  708,  446,
       97,  708,  708,  708,  708,  708,   97,   97,   97,   97,

       97,   97,   97,  447,  708,   97,   97,  708,   97,  708,
      708,  708,   97,  708,   97,  708,   97,  708,   97,  708,
       97,   97,   97,  457,   97,  708,  708,   97,  708,  708,
       97,  708,  708,  708,   97,  708,   97,  708,   97,  708,
       97,   97,   97,   97,   97,  708,  708,  449,  458,   97,
      708,   97,   97,  460,  708,   97,  708,  708,  708,  708,
       97,  708,   97,   97,   97,  708,   97,  708,  708,   97,
      461,   97,  462,   97,  708,   97,  708,   97,  708,   97,
       97,   97,   97,   97,  708,  708,   97,  463,   97,  708,
       97,  708,   97,  708,   97,  708,   97,   97,  464,   97,

       97,  708,  708,  708,  708,   97,  708,   97,   97,   97,
      466,   97,  708,  708,   97,  465,   97,  708,   97,  708,
       97,  708,   97,  708,   97,  708,   97,   97,   97,  708,
      708,   97,  467,   97,  468,  708,  708,   97,  708,  469,
      708,   97,  708,   97,  708,   97,  708,   97,   97,   97,
       97,   97,  708,  471,   97,  708,   97,  708,   97,  708,
      470,  708,   97,  708,   97,   97,   97,   97,   97,  708,
      708,   97,  708,   97,  708,   97,  708,   97,  472,   97,
      708,   97,   97,   97,   97,   97,  708,  708,   97,  708,
       97,  708,   97,  708,   97,  474,   97,  708,   97,  473,

       97,   97,   97,  475,   97,   97,  708,   97,  708,  479,
      708,  708,  708,  708,   97,   97,   97,   97,   97,   97,
       97,  708,  708,   97,   97,  708,   97,  480,  481,  708,
       97,  708,   97,  708,   97,  708,   97,   97,   97,   97,
       97,  708,  708,   97,  708,   97,  483,   97,  708,   97,
      708,   97,  708,   97,  482,   97,   97,   97,   97,  484,
      708,  708,   97,  708,   97,  485,  708,  708,   97,  708,
       97,  708,   97,  708,   97,   97,   97,   97,   97,  708,
      708,  708,  708,   97,  708,   97,  708,   97,  708,   97,
       97,  486,  708,  487,   97,  708,   97,  708,  708,  708,

       97,  708,   97,  708,   97,  708,   97,   97,   97,   97,
       97,  708,  708,  488,  489,   97,  708,   97,   97,   97,
      708,   97,  708,  491,   97,  708,   97,  708,   97,  708,
       97,  708,   97,  708,   97,   97,   97,   97,   97,  708,
      708,   97,  708,   97,  708,   97,  708,  493,  708,   97,
      708,   97,   97,  494,   97,   97,  708,  708,  708,  708,
       97,  708,   97,  708,   97,   97,   97,  708,  496,  708,
      495,   97,  708,   97,  708,   97,  708,   97,  708,   97,
      708,  708,  708,   97,   97,   97,  708,   97,   97,  499,
      708,   97,   97,  498,   97,  708,  708,  708,   97,  708,

       97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
       97,  501,   97,   97,  708,   97,  708,  708,  708,   97,
      708,   97,   97,   97,   97,   97,   97,   97,   97,   97,
       97,   97,  503,  708,   97,  708,  708,  708,  708,  708,
       97,  708,   97,   97,   97,  708,   97,  708,  513,   97,
      514,  708,  708,   97,  708,   97,   97,   97,   97,  708,
       97,   97,   97,  708,  516,   97,  708,   97,  708,  708,
      708,   97,  708,   97,  708,   97,  708,   97,   97,  517,
       97,   97,  708,  708,   97,  708,   97,  708,   97,  708,
      518,  519,   97,  708,   97,   97,   97,   97,   97,  708,

      708,   97,  708,   97,  708,   97,  708,   97,  708,   97,
      708,   97,   97,   97,   97,   97,  708,  708,  708,  520,
       97,  708,   97,   97,   97,  521,   97,  708,  708,   97,
      708,   97,  708,   97,  708,   97,  708,   97,  708,   97,
       97,   97,   97,   97,  708,  522,   97,  708,   97,  708,
       97,  708,   97,  708,   97,  708,   97,   97,   97,   97,
       97,  708,  708,  708,  523,   97,  708,   97,   97,   97,
      708,   97,  708,  708,  525,  524,   97,  708,   97,  708,
       97,  708,   97,  708,   97,   97,   97,   97,   97,  708,
      708,   97,  708,   97,  708,  526,  708,   97,  531,   97,

      708,   97,   97,   97,   97,   97,  708,  708,  708,  708,
       97,  708,   97,   97,   97,  708,   97,  708,  708,   97,
      532,   97,  708,   97,  708,   97,  708,   97,  708,   97,
       97,   97,   97,   97,  708,  708,   97,  708,   97,  534,
       97,  708,   97,  708,   97,  708,   97,  533,   97,   97,
       97,   97,   97,  708,  708,   97,  708,  708,  708,  708,
      708,   97,   97,   97,   97,   97,   97,   97,  536,  535,
       97,   97,  708,   97,  708,  708,  708,   97,  708,   97,
      708,   97,  708,   97,   97,   97,   97,   97,  708,  708,
       97,  708,   97,  708,   97,  708,  538,  708,   97,  708,

      540,   97,   97,   97,   97,  708,  708,  708,  708,   97,
      708,   97,   97,   97,  708,   97,  542,  708,  537,  708,
       97,  708,   97,   97,   97,  708,   97,  708,  708,   97,
      708,   97,  708,   97,  708,   97,  708,   97,  708,   97,
      708,   97,   97,   97,   97,  708,  708,  544,   97,  708,
       97,  708,  708,  545,   97,  708,   97,  708,   97,  708,
       97,  708,   97,   97,   97,   97,  708,  708,  547,   97,
      549,   97,  708,  708,  708,   97,  708,   97,  708,   97,
      708,   97,   97,   97,   97,   97,  708,  708,  708,  558,
       97,  708,   97,  708,   97,  708,   97,   97,  559,  708,

      708,   97,  708,   97,  708,  708,  708,   97,  708,   97,
      708,   97,  708,   97,   97,   97,   97,   97,  708,  561,
      708,  708,   97,  708,   97,  708,   97,   97,   97,  708,
      563,  708,  562,   97,  708,   97,  708,   97,   97,   97,
      708,   97,  708,  708,  566,   97,   97,  564,   97,   97,
       97,  565,   97,   97,   97,  708,   97,   97,  708,   97,
      708,  708,  708,   97,  708,   97,   97,   97,   97,   97,
       97,   97,   97,   97,   97,   97,  708,  567,   97,  708,
       97,  708,  708,  708,   97,  708,   97,  568,   97,  708,
       97,   97,   97,   97,   97,  708,  708,   97,  708,   97,

      573,   97,  708,   97,  708,   97,  708,   97,   97,   97,
       97,   97,  708,  708,   97,  708,   97,  708,   97,  708,
       97,  708,   97,  708,   97,   97,   97,   97,   97,  708,
      708,   97,  708,   97,  708,   97,  708,   97,  574,   97,
      708,   97,   97,   97,   97,   97,  708,  708,  708,  708,
       97,  708,   97,   97,   97,  708,   97,  577,  708,   97,
      575,   97,  708,   97,  708,   97,  582,   97,  708,   97,
       97,   97,   97,   97,  708,  708,  708,  580,   97,  708,
       97,   97,   97,  708,   97,  708,  708,   97,  708,   97,
      708,   97,  708,   97,  708,   97,  708,   97,   97,   97,

       97,   97,  708,  708,   97,  708,   97,  708,   97,  708,
      584,  708,   97,  708,  586,   97,   97,   97,   97,  708,
      708,   97,  708,   97,  708,   97,  708,   97,  595,   97,
      708,   97,   97,   97,   97,   97,  708,  708,   97,  708,
       97,  708,   97,  708,   97,  708,   97,  708,   97,  708,
       97,   97,   97,   97,   97,  596,  597,   97,  598,  708,
      708,  708,  708,   97,   97,   97,   97,   97,   97,   97,
       97,  600,   97,   97,  708,  708,  708,  708,  708,   97,
       97,  599,   97,   97,   97,   97,   97,  601,   97,   97,
      708,  708,  708,  708,  708,   97,  602,   97,   97,   97,

       97,   97,  708,  708,   97,   97,  708,  708,  708,   97,
      708,   97,  708,   97,  708,   97,  708,  606,  708,   97,
       97,   97,  607,   97,   97,   97,  708,  708,   97,  708,
      708,  608,  610,  708,   97,   97,   97,   97,   97,   97,
       97,  708,  708,   97,   97,  708,  708,  708,   97,  708,
       97,  708,  613,  708,   97,  708,   97,  708,   97,   97,
       97,  615,   97,  708,  708,  708,   97,   97,   97,   97,
       97,  708,  708,  708,  616,   97,  708,  708,  708,   97,
      708,   97,  708,   97,  592,  592,  592,  708,   97,  708,
      708,  708,  708,   97,   97,  708,  623,  623,  623,  623,

      623,  623,  623,   97,   97,  626,   97,   97,   97,   97,
       97,  708,   97,   97,  708,  708,  708,  708,  708,   97,
       97,   97,   97,   97,   97,   97,  708,  708,   97,   97,
      708,  708,  708,   97,  708,   97,  708,   97,  708,   97,
      708,   97,  627,   97,   97,   97,  628,   97,  708,   97,
      708,   97,   97,   97,  708,   97,  629,   97,  708,   97,
       97,   97,  708,   97,  708,   97,  708,   97,   97,   97,
      708,   97,  708,   97,  708,   97,   97,  633,  708,   97,
      708,   97,  708,   97,   97,   97,  634,   97,  708,   97,
      708,   97,   97,  636,  708,   97,  639,   97,  708,   97,

       97,   97,  708,   97,  641,   97,  708,   97,   97,   97,
      708,   97,  642,  708,  708,   97,   97,   97,  708,   97,
      708,  708,   97,   97,   97,  623,  623,  623,  623,  623,
      623,  623,   97,   97,   97,   97,   97,   97,   97,  708,
      708,   97,   97,  708,  708,  708,   97,  708,   97,  708,
      651,  708,   97,  708,  708,  708,   97,   97,   97,   97,
       97,  708,  708,  648,  652,   97,  708,   97,  708,   97,
      708,   97,  708,   97,  708,   97,  656,   97,   97,  657,
      708,   97,  659,   97,  708,   97,   97,   97,  708,   97,
      708,  708,  708,   97,   97,   97,   97,   97,  664,   97,

      708,  662,   97,  665,  708,  708,   97,  708,   97,   97,
       97,   97,  708,   97,  708,   97,  708,  708,   97,  649,
      649,  649,  708,  708,  708,  708,  708,  708,   97,   97,
      708,  623,  623,  623,  623,  623,  623,  623,   97,   97,
       97,   97,   97,   97,   97,   97,  672,   97,   97,  708,
      708,  708,  673,  708,   97,   97,   97,   97,   97,   97,
       97,   97,  708,   97,   97,  708,  708,  708,  708,  708,
       97,   97,   97,   97,   97,   97,   97,  708,  677,   97,
       97,  708,   97,  708,  680,  708,   97,  708,   97,  682,
       97,  708,   97,   97,   97,   97,   97,  708,  708,  708,

      708,   97,  708,   97,   97,   97,  708,   97,  708,  689,
       97,  708,   97,  708,   97,  708,   97,  708,   97,  708,
       97,  708,   97,   97,   97,   97,  708,  708,   97,   97,
      708,  694,  708,  691,  708,   97,  708,   97,   97,   97,
       97,  708,   97,  708,   97,  708,  708,   97,  687,  687,
      687,  708,  708,  708,  708,  708,  708,   97,  708,  708,
      623,  623,  623,  623,  623,  623,  623,   97,   97,   97,
      698,   97,  708,  708,   97,  708,   97,  708,   97,  708,
       97,  708,   97,  708,   97,   97,   97,   97,   97,  708,
      702,   97,  708,   97,  708,  705,  708,   97,  708,   97,

      708,   97,   97,   97,   97,   97,  708,  708,  708,  708,
       97,  708,   97,  708,   97,  708,   97,  708,  708,  708,
      708,   97,   54,   54,   54,   54,   54,   54,   54,   54,
       54,   54,   54,   54,   58,   58,   58,   58,   58,   58,
       58,   58,   58,   58,   58,   58,   62,   62,   62,   62,
       62,   62,   62,   62,   62,   62,   62,   62,   65,   65,
       65,   65,   65,   65,   65,   65,   65,   65,   65,   65,
       74,   74,   74,   74,   74,   74,   74,   74,   74,   74,
       74,   74,   76,   76,   76,   76,   76,   76,   76,   76,
       76,   76,   76,   76,   83,   83,   83,  708,   83,   83,

       83,   83,   83,   83,   83,   83,   90,   90,  708,  708,
       90,  708,   90,  156,  708,  156,  159,  159,  708,  159,
      159,  160,  160,  708,  160,  160,  160,  708,  160,  160,
      160,  160,  160,  163,  163,  163,  708,  163,  163,  163,
      163,  163,  163,  163,  163,  165,  165,  165,  165,  165,
      165,  165,  165,  708,  165,  165,  167,  708,  708,  167,
      167,  167,  167,  167,  167,  167,  167,  168,  708,  708,
      168,  168,  168,  168,  168,  168,  168,  168,  170,  708,
      708,  170,  708,  170,  170,  170,  170,  170,  170,  174,
      174,  708,  174,  174,  175,  175,  708,  175,  175,  103,

      103,  708,  103,  103,   15,  708,  708,  708,  708,  708,
      708,  708,  708,  708,  708,  708,  708,  708,  708,  708,
      708,  708,  708,  708,  708,  708,  708,  708,  708,  708,
      708,  708,  708,  708,  708,  708,  708,  708,  708,  708,
      708,  708,  708,  708,  708,  708,  708,  708,  708,  708,
      708,  708,  708,  708,  708,  708,  708,  708,  708,  708,
      708,  708,  708,  708,  708,  708,  708,  708,  708,  708,
      708,  708,  708,  708,  708,  708,  708,  708,  708,  708,
      708,  708,  708
    } ;

static yyconst short int yy_chk[4484] =
    {   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,    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,
        4,    4,    5,    6,    7,    9,    3,    7,    4,    5,
        6,    8,    5,    6,    8,   10,   17,   17,   17,   18,

       18,   18,   17,    9,  152,   18,    9,   26,  176,   26,
       13,   13,   13,   10,  176,   13,   10,  152,   22,   22,
       22,   14,   14,   14,   22,   24,   14,  157,   24,  157,
       22,   22,   24,   24,   24,   24,   24,   24,   28,   28,
       28,   28,   28,   28,   28,   34,  253,  253,   34,   77,
       77,   77,   78,   78,   78,   34,   87,   34,    9,   34,
        9,   82,   82,   82,   34,  158,  476,  158,   10,  704,
       10,   11,   11,   11,   11,   11,   11,   11,   11,   11,
       11,   11,   11,   11,   13,  476,   13,   87,   38,   79,
      325,   11,   11,   11,   11,   14,  325,   14,   38,   11,

       38,   32,   38,   79,   32,  324,  700,   38,   32,  324,
      250,   32,   32,   32,   32,   32,   41,  250,  697,   33,
       32,   11,   11,   11,   32,   33,   41,  327,   41,   33,
       41,   33,   33,   33,   79,   41,  695,  327,   33,   92,
       92,   92,   92,   92,   92,   92,   11,   11,   11,   12,
       12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
       12,   12,   41,  393,   35,  171,  171,  171,  393,   12,
       12,   12,   12,  693,   35,   35,   35,   12,   35,  169,
      169,  326,  251,   35,   42,   42,   35,  326,   42,  251,
      169,   36,   36,  692,   42,   48,   42,  453,   42,   12,

       12,   12,   36,   42,   36,   48,   36,   48,   36,   48,
      453,   36,  390,   42,   48,  690,  512,   39,   39,  390,
       39,  391,  392,  512,   12,   12,   12,   21,   39,   39,
       39,   48,   39,  392,  454,   39,  391,   39,  454,  554,
      455,   21,  455,  554,   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,
      557,  688,   21,   21,   21,   21,   21,   21,   21,   21,
       21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
       21,   21,   21,   21,   21,   31,  510,  557,   31,   31,

       31,   31,   31,   31,   31,  511,  685,  510,  511,   31,
       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
       31,   31,   31,   31,   31,  622,  622,  684,   31,   31,
       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
       37,  647,  509,  647,  681,   40,   40,  555,  555,  555,
       37,  556,   37,   40,   37,  591,   40,  509,   40,   37,
       40,  679,  591,  675,  671,   40,  556,   43,   43,  593,
       43,  669,   37,  593,  668,  667,   44,  666,   43,   44,

       43,  663,   43,   37,   43,  555,   44,   43,   44,   45,
       44,  661,   45,  660,  655,   44,   45,  654,   46,   45,
      653,   45,  650,   45,   46,   46,  646,   45,   45,  645,
      644,   43,   45,   47,  643,   46,  640,   46,  638,   46,
      637,   46,  635,   47,   46,   47,   49,   47,   46,  632,
      631,   47,   47,   49,  630,  625,   49,   46,   49,  621,
       49,  624,  624,  624,  620,   49,   50,   50,   50,   50,
       50,   50,   50,   47,   89,   89,   89,   50,  619,  617,
       89,   97,  614,  612,  611,  609,   89,   89,  605,  604,
      603,   97,   50,   97,  594,   97,  590,   50,   74,  624,

       97,  589,   74,   74,   74,   74,   74,   74,   74,   74,
       74,   95,   95,   95,   95,   95,   95,   95,   74,   74,
       74,   74,   98,   99,  178,  178,  178,  178,  178,  178,
      178,  588,   98,   99,   98,   99,   98,   99,  587,   98,
      585,   98,   99,  100,  101,  581,  579,  578,   74,   74,
       74,  576,  571,  100,  101,  100,  101,  100,  101,  102,
      570,  569,  100,  101,  553,  552,  100,  551,  550,  102,
      548,  102,  546,  102,   74,   75,  543,  102,  102,   75,
       75,   75,   75,   75,   75,   75,   75,   75,  541,  104,
      539,  537,  105,  530,  104,   75,   75,   75,   75,  104,

      529,  104,  105,  104,  105,  106,  105,  528,  104,  527,
      105,  105,   75,  515,  508,  106,  507,  106,  107,  106,
      506,  505,  502,  500,  106,   75,   75,   75,  107,  108,
      107,  107,  107,  670,  670,  670,  497,  107,  492,  108,
      490,  108,  478,  108,  109,  109,  477,  459,  108,  456,
      452,   75,  110,  110,  451,  109,  450,  109,  109,  109,
      449,  448,  445,  110,  109,  110,  111,  110,  443,  112,
      438,  670,  110,  112,  433,  430,  111,  111,  111,  112,
      111,  112,  113,  112,  418,  111,  417,  416,  112,  397,
      388,  387,  113,  386,  113,  384,  113,  114,  114,  114,

      116,  113,  380,  115,  115,  378,  373,  114,  368,  114,
      116,  114,  116,  115,  116,  115,  114,  115,  117,  116,
      364,  115,  115,  353,  352,  120,  351,  332,  117,  321,
      117,  117,  117,  120,  320,  319,  121,  117,  313,  121,
      302,  297,  293,  120,  122,  120,  121,  120,  121,  282,
      121,  281,  120,  255,  122,  121,  122,  254,  122,  123,
      123,  249,  245,  122,  244,  243,  239,  227,  221,  123,
      124,  123,  217,  123,  206,  205,  123,  123,  123,  177,
      124,  125,  124,  124,  124,  173,  168,  126,  166,  124,
      156,  125,  151,  125,  148,  125,  138,  126,  127,  126,

      125,  126,  133,  125,  128,  119,  126,  118,  127,   96,
      127,  129,  127,   93,  130,   90,   85,  127,   84,  129,
       81,  129,   67,  129,  130,  129,  130,  131,  130,   64,
      129,   61,  130,  130,   60,  132,   57,  131,  134,  131,
       53,  131,   51,   29,   25,  132,  131,  132,  134,  132,
      134,  135,  134,  132,  132,   20,  134,  134,   19,   16,
       15,  135,  136,  135,    0,  135,    0,    0,    0,    0,
      135,  135,  136,    0,  136,  137,  136,    0,  137,    0,
        0,  136,  137,    0,    0,  137,    0,  137,    0,  137,
      139,  139,    0,    0,  137,    0,    0,  140,    0,    0,

        0,  139,    0,  139,    0,  139,    0,  140,  141,  140,
      139,  140,  140,    0,  142,  140,  140,    0,  141,    0,
      141,    0,  141,    0,  142,  143,  142,  141,  142,  144,
      142,    0,  141,  142,    0,  143,    0,  143,    0,  143,
      144,  145,    0,    0,  143,    0,  145,    0,    0,    0,
      144,  145,  144,  145,  144,  145,  146,  147,    0,  144,
      145,    0,    0,    0,    0,    0,  146,  147,  146,  147,
      146,  147,  149,  150,  150,  146,  147,  150,    0,  149,
        0,    0,  149,  150,  149,  150,  149,  150,  153,    0,
        0,  149,  150,    0,    0,    0,    0,    0,  153,    0,

      153,    0,  153,  155,  155,  155,  153,  153,  154,  154,
      154,  154,  154,  154,  154,  155,  155,  155,  155,  155,
      155,  155,    0,  181,  182,    0,  181,    0,    0,    0,
        0,    0,    0,  181,  182,  181,  182,  181,  182,  183,
      184,  155,  181,  182,    0,    0,  154,    0,    0,  183,
      184,  183,  184,  183,  184,  185,    0,    0,  183,  184,
        0,    0,    0,  186,    0,  185,  187,  185,  185,  185,
      186,    0,    0,  186,  185,  186,  187,  186,  187,  188,
      187,    0,  186,    0,    0,  187,    0,  189,    0,  188,
        0,  188,    0,  188,    0,  190,  188,  189,  188,  189,

        0,  189,    0,  191,    0,  190,  189,  190,    0,  190,
      191,  190,    0,  191,  190,  191,  192,  191,    0,    0,
        0,    0,  191,    0,  193,    0,  192,  194,  192,    0,
      192,    0,    0,  192,  193,  192,  193,  194,  193,  194,
        0,  194,    0,  193,  194,  194,  194,  195,  195,  196,
        0,    0,  196,    0,    0,  195,    0,    0,  195,  196,
      195,  196,  195,  196,  197,    0,    0,  195,  196,    0,
      198,    0,    0,    0,  197,    0,  197,  197,  197,    0,
      198,  199,  198,  197,  198,    0,    0,  200,    0,  198,
      200,  199,  199,  199,    0,  199,    0,  200,  201,  200,

      199,  200,    0,    0,  202,    0,  200,  202,  201,    0,
      201,  201,  201,    0,  202,  203,  202,  201,  202,    0,
        0,    0,    0,  202,    0,  203,  204,  203,    0,  203,
        0,    0,  203,    0,  203,    0,  204,  204,  204,  207,
      204,    0,    0,    0,    0,  204,    0,  208,    0,  207,
      209,  207,    0,  207,    0,    0,  207,  208,  207,  208,
      209,  208,  209,  209,  209,  210,  208,    0,  211,  209,
        0,  212,    0,    0,  212,  210,    0,  210,  211,  210,
      211,  212,  211,  212,  210,  212,  211,  211,  213,  214,
      212,    0,  215,    0,    0,  213,    0,    0,    0,  214,

        0,  214,  215,  214,  215,  213,  215,  213,  214,  213,
      216,  215,    0,  218,  213,    0,  218,    0,    0,    0,
      216,    0,  216,  218,  216,  218,    0,  218,  219,  216,
        0,  219,  218,    0,  220,    0,    0,    0,  219,    0,
      219,  220,  219,    0,  220,  222,  220,  219,  220,    0,
        0,    0,    0,  220,    0,  222,  223,  222,    0,  222,
        0,    0,  224,  222,  222,    0,  223,    0,  223,    0,
      223,    0,  224,  225,  224,  223,  224,    0,    0,  224,
        0,  224,    0,  225,  226,  225,    0,  225,    0,    0,
      225,    0,  225,    0,  226,  228,  226,    0,  226,    0,

      229,  229,    0,  226,  226,  228,    0,  228,    0,  228,
        0,  229,  230,  229,  228,  229,    0,    0,  231,    0,
      229,    0,  230,    0,  230,    0,  230,    0,  231,    0,
      231,  230,  231,  232,  233,    0,  232,  231,    0,    0,
        0,  233,    0,  232,  233,  232,  233,  232,  233,  234,
        0,    0,  232,  233,    0,    0,    0,    0,    0,  234,
      235,  234,    0,  234,    0,    0,  236,  234,  234,    0,
      235,    0,  235,    0,  235,    0,  236,  235,  236,  235,
      236,  237,    0,  236,  237,  236,    0,  238,    0,    0,
      238,  237,    0,  237,    0,  237,    0,  238,  240,  238,

      237,  238,    0,    0,    0,    0,  238,    0,  240,  241,
      240,  240,  240,  240,  242,    0,    0,  240,  240,  241,
      242,  241,    0,  241,    0,    0,    0,  241,  241,    0,
      242,  246,  242,    0,  242,    0,    0,  246,    0,  242,
        0,  246,    0,  246,    0,  246,  248,  248,  248,    0,
      246,    0,    0,    0,    0,  258,    0,    0,  248,  248,
      248,  248,  248,  248,  248,  258,  259,  258,    0,  258,
        0,    0,  260,  259,  258,    0,  259,    0,  259,    0,
      259,    0,  260,  260,  260,  259,  260,  261,  262,    0,
        0,  260,    0,    0,    0,    0,    0,  261,  262,  261,

      262,  261,  262,  264,  264,  263,  261,  262,  263,    0,
        0,    0,    0,    0,  264,  263,  264,  263,  264,  263,
      265,  265,    0,  264,  263,    0,  266,    0,    0,    0,
      265,    0,  265,  262,  265,    0,  266,  267,  266,  265,
      266,    0,    0,  266,    0,  266,    0,  267,  268,  267,
      267,  267,    0,    0,    0,    0,  267,    0,  268,    0,
      268,    0,  268,  270,  268,  269,  269,  268,    0,  271,
        0,    0,    0,  270,    0,  270,  269,  270,  269,  271,
      269,  271,  270,  271,  272,  269,  272,  273,  271,  273,
      274,    0,    0,  274,  272,    0,  272,  273,  272,  273,

      274,  273,  274,  272,  274,  275,  273,    0,    0,  274,
        0,  276,    0,    0,    0,  275,    0,  275,  276,  275,
        0,  276,  277,  276,  275,  276,    0,    0,    0,    0,
      276,    0,  277,  278,  277,    0,  277,    0,  277,    0,
        0,  277,    0,  278,    0,  278,    0,  278,  279,  278,
        0,  279,  278,    0,  280,    0,    0,    0,  279,    0,
      279,    0,  279,    0,  280,  283,  280,  279,  280,    0,
        0,  284,    0,  280,    0,  283,    0,  283,    0,  283,
        0,  284,    0,  284,  283,  284,  285,  286,    0,  284,
      284,    0,    0,  285,    0,    0,  285,  286,  285,  286,

      285,  286,  287,  286,    0,  285,  286,  288,  288,    0,
      283,    0,  287,    0,  287,    0,  287,  290,  288,    0,
      288,  287,  288,  289,  288,    0,  290,  288,  289,    0,
        0,    0,    0,  289,  291,  289,  290,  289,  290,  289,
      290,    0,  289,    0,  291,  290,  291,  292,  291,    0,
        0,  291,    0,  291,    0,  294,  294,  292,  295,  292,
        0,  292,    0,    0,    0,  294,  292,  294,  295,  294,
      295,  296,  295,    0,  294,    0,  295,  295,    0,  298,
      299,  296,  298,  296,  296,  296,    0,    0,    0,  298,
      296,  298,    0,  298,  300,  299,    0,  300,  298,    0,

        0,    0,    0,    0,  300,  299,  300,  299,  300,  299,
      301,  301,  303,  300,  299,    0,    0,    0,    0,    0,
        0,  301,  303,  301,  303,  301,  303,  304,    0,    0,
      301,  303,    0,    0,    0,    0,    0,  304,    0,  304,
      305,  304,    0,  305,    0,  304,  304,    0,  306,    0,
      305,  307,  305,    0,  305,    0,    0,    0,  306,  305,
      306,  307,  306,  307,    0,  307,  309,  306,  308,  308,
      307,    0,  310,    0,    0,  312,  309,    0,  309,  308,
      309,  308,  310,  308,  310,  309,  310,  311,  308,    0,
      312,  310,    0,  314,    0,    0,    0,  311,    0,  311,

      312,  311,  312,  314,  312,  314,  311,  314,  315,  312,
        0,  309,  314,    0,  316,    0,    0,  316,  315,    0,
      315,    0,  315,    0,  316,  317,  316,  315,  316,    0,
        0,  318,    0,  316,    0,  317,    0,  317,    0,  317,
        0,  318,    0,  318,  317,  318,  322,    0,  318,    0,
      318,    0,    0,    0,    0,    0,  322,    0,  322,    0,
      322,  317,    0,  328,    0,  322,  323,  323,  323,  323,
      323,  323,  323,  328,    0,  328,    0,  328,  329,  329,
        0,  328,  328,  330,  330,    0,    0,    0,  329,    0,
      329,    0,  329,    0,  330,  331,  330,  329,  330,    0,

      333,  333,    0,  330,  323,  331,    0,  331,    0,  331,
        0,  333,    0,  333,  331,  333,  334,  334,    0,  335,
      333,    0,  335,    0,    0,    0,  334,  336,  334,  335,
      334,  335,    0,  335,    0,  334,    0,  336,  335,  336,
      337,  336,  338,  338,    0,    0,  336,    0,    0,    0,
      337,  339,  337,  338,  337,  338,    0,  338,  339,  337,
        0,  339,  338,  339,  340,  339,    0,    0,    0,    0,
      339,    0,  341,    0,  340,  341,  340,    0,  340,  341,
        0,    0,  341,  340,  341,  342,  341,  342,    0,    0,
        0,  341,    0,  343,    0,  342,  343,  342,    0,  342,

      343,  344,    0,  343,  342,  343,    0,  343,    0,  345,
        0,  344,  343,  344,    0,  344,    0,  344,    0,  345,
      344,  345,    0,  345,  346,  346,    0,  345,  345,    0,
      347,    0,    0,    0,  346,    0,  346,    0,  346,    0,
      347,  348,  347,  346,  347,    0,    0,  349,  347,  347,
        0,  348,    0,  348,    0,  348,    0,  349,  348,  349,
      348,  349,  350,  354,    0,    0,  349,    0,    0,    0,
      354,    0,  350,  354,  350,  354,  350,  354,    0,    0,
      356,  350,  354,  355,  355,    0,  355,    0,    0,    0,
      356,    0,  356,  355,  356,  355,    0,  355,  356,  356,

      358,  357,  355,  357,    0,    0,    0,    0,    0,    0,
      358,  357,  358,  357,  358,  357,  359,    0,    0,  358,
      357,    0,  360,    0,    0,  360,  359,    0,  359,    0,
      359,    0,  360,  361,  360,  359,  360,  362,    0,    0,
      363,  360,    0,  361,  362,  361,    0,  361,    0,    0,
      361,    0,  361,    0,  362,  363,  362,    0,  362,    0,
        0,  365,    0,  362,    0,  363,    0,  363,    0,  363,
        0,  365,  366,  365,  363,  365,    0,    0,  367,  365,
      365,    0,  366,    0,  366,    0,  366,    0,  367,  369,
      367,  366,  367,    0,    0,    0,    0,  367,    0,  369,

      370,  369,    0,  369,    0,  369,  371,  370,  369,    0,
      370,    0,  370,    0,  370,    0,  371,  372,  371,  370,
      371,    0,    0,    0,    0,  371,    0,  372,    0,  372,
      374,  372,    0,  375,    0,  372,  372,  374,    0,    0,
      374,  376,  374,  375,  374,  375,  376,  375,    0,  374,
        0,  376,  375,  376,  377,  376,    0,    0,    0,    0,
      376,    0,    0,    0,  377,  379,  377,    0,  377,    0,
        0,  381,  379,  377,    0,  379,  377,  379,    0,  379,
        0,  381,    0,  381,  379,  381,  382,  383,    0,  382,
      381,    0,    0,    0,    0,    0,  382,  383,  382,  383,

      382,  383,  385,  383,    0,  382,  383,    0,  394,    0,
        0,    0,  385,    0,  385,    0,  385,    0,  394,    0,
      394,  385,  394,  395,  395,    0,    0,  394,    0,    0,
      396,    0,    0,    0,  395,    0,  395,    0,  395,    0,
      396,  398,  396,  395,  396,    0,    0,  385,  396,  396,
        0,  398,  399,  398,    0,  398,    0,    0,    0,    0,
      398,    0,  399,  400,  399,    0,  399,    0,    0,  401,
      399,  399,  401,  400,    0,  400,    0,  400,    0,  401,
      402,  401,  400,  401,    0,    0,  403,  402,  401,    0,
      402,    0,  402,    0,  402,    0,  403,  404,  403,  402,

      403,    0,    0,    0,    0,  403,    0,  404,  405,  404,
      405,  404,    0,    0,  406,  404,  404,    0,  405,    0,
      405,    0,  405,    0,  406,    0,  406,  405,  406,    0,
        0,  407,  406,  406,  407,    0,    0,  408,    0,  408,
        0,  407,    0,  407,    0,  407,    0,  408,  409,  408,
      407,  408,    0,  410,  410,    0,  408,    0,  409,    0,
      409,    0,  409,    0,  410,  411,  410,  409,  410,    0,
        0,  412,    0,  410,    0,  411,    0,  411,  412,  411,
        0,  412,  413,  412,  411,  412,    0,    0,  414,    0,
      412,    0,  413,    0,  413,  414,  413,    0,  414,  413,

      414,  413,  414,  415,  415,  419,    0,  414,    0,  419,
        0,    0,    0,    0,  415,  419,  415,  419,  415,  419,
      420,    0,    0,  415,  419,    0,  421,  420,  421,    0,
      420,    0,  420,    0,  420,    0,  421,  422,  421,  420,
      421,    0,    0,  423,    0,  421,  423,  422,    0,  422,
        0,  422,    0,  423,  422,  423,  422,  423,  424,  424,
        0,    0,  423,    0,  425,  425,    0,    0,  424,    0,
      424,    0,  424,    0,  425,  426,  425,  424,  425,    0,
        0,    0,    0,  425,    0,  426,    0,  426,    0,  426,
      427,  426,    0,  427,  426,    0,  428,    0,    0,    0,

      427,    0,  427,    0,  427,    0,  428,  429,  428,  427,
      428,    0,    0,  428,  429,  428,    0,  429,  431,  429,
        0,  429,    0,  432,  432,    0,  429,    0,  431,    0,
      431,    0,  431,    0,  432,  434,  432,  431,  432,    0,
        0,  435,    0,  432,    0,  434,    0,  434,    0,  434,
        0,  435,  436,  435,  434,  435,    0,    0,    0,    0,
      435,    0,  436,    0,  436,  437,  436,    0,  437,    0,
      436,  436,    0,  439,    0,  437,    0,  437,    0,  437,
        0,    0,    0,  439,  437,  439,    0,  439,  440,  440,
        0,  441,  439,  439,  442,    0,    0,    0,  440,    0,

      440,  441,  440,  441,  442,  441,  442,  440,  442,  444,
      441,  444,  446,  442,    0,  447,    0,    0,    0,  444,
        0,  444,  446,  444,  446,  447,  446,  447,  444,  447,
      457,  446,  447,    0,  447,    0,    0,    0,    0,    0,
      457,    0,  457,  458,  457,    0,  460,    0,  457,  457,
      458,    0,    0,  458,    0,  458,  460,  458,  460,    0,
      460,  461,  458,    0,  461,  460,    0,  462,    0,    0,
        0,  461,    0,  461,    0,  461,    0,  462,  463,  462,
      461,  462,    0,    0,  464,    0,  462,    0,  463,    0,
      463,  464,  463,    0,  464,  465,  464,  463,  464,    0,

        0,  466,    0,  464,    0,  465,    0,  465,    0,  465,
        0,  466,  467,  466,  465,  466,    0,    0,    0,  467,
      466,    0,  467,  468,  467,  468,  467,    0,    0,  469,
        0,  467,    0,  468,    0,  468,    0,  468,    0,  469,
      470,  469,  468,  469,    0,  470,  471,    0,  469,    0,
      470,    0,  470,    0,  470,    0,  471,  472,  471,  470,
      471,    0,    0,    0,  471,  471,    0,  472,  473,  472,
        0,  472,    0,    0,  474,  472,  472,    0,  473,    0,
      473,    0,  473,    0,  474,  475,  474,  473,  474,    0,
        0,  479,    0,  474,    0,  475,    0,  475,  479,  475,

        0,  479,  480,  479,  475,  479,    0,    0,    0,    0,
      479,    0,  480,  481,  480,    0,  480,    0,    0,  482,
      480,  480,    0,  481,    0,  481,    0,  481,    0,  482,
      483,  482,  481,  482,    0,    0,  484,    0,  482,  484,
      483,    0,  483,    0,  483,    0,  484,  483,  484,  483,
      484,  485,  486,    0,    0,  484,    0,    0,    0,    0,
        0,  485,  486,  485,  486,  485,  486,  487,  487,  485,
      485,  486,    0,  488,    0,    0,    0,  487,    0,  487,
        0,  487,    0,  488,  489,  488,  487,  488,    0,    0,
      491,    0,  488,    0,  489,    0,  489,    0,  489,    0,

      491,  493,  491,  489,  491,    0,    0,    0,    0,  491,
        0,  493,  494,  493,    0,  493,  494,    0,  488,    0,
      493,    0,  494,  495,  494,    0,  494,    0,    0,  496,
        0,  494,    0,  495,    0,  495,    0,  495,    0,  496,
        0,  496,  495,  496,  498,    0,    0,  498,  496,    0,
      499,    0,    0,  499,  498,    0,  498,    0,  498,    0,
      499,    0,  499,  498,  499,  501,    0,    0,  501,  499,
      503,  503,    0,    0,    0,  501,    0,  501,    0,  501,
        0,  503,  513,  503,  501,  503,    0,    0,    0,  513,
      503,    0,  513,    0,  513,    0,  513,  514,  514,    0,

        0,  513,    0,  516,    0,    0,    0,  514,    0,  514,
        0,  514,    0,  516,  517,  516,  514,  516,    0,  516,
        0,    0,  516,    0,  517,    0,  517,  518,  517,    0,
      518,    0,  517,  517,    0,  519,    0,  518,  520,  518,
        0,  518,    0,    0,  522,  519,  518,  519,  520,  519,
      520,  520,  520,  521,  519,    0,  524,  520,    0,  522,
        0,    0,    0,  521,    0,  521,  524,  521,  524,  522,
      524,  522,  521,  522,  523,  524,    0,  523,  522,    0,
      525,    0,    0,    0,  523,    0,  523,  525,  523,    0,
      525,  526,  525,  523,  525,    0,    0,  531,    0,  525,

      531,  526,    0,  526,    0,  526,    0,  531,  532,  531,
      526,  531,    0,    0,  533,    0,  531,    0,  532,    0,
      532,    0,  532,    0,  533,  534,  533,  532,  533,    0,
        0,  535,    0,  533,    0,  534,    0,  534,  535,  534,
        0,  535,  536,  535,  534,  535,    0,    0,    0,    0,
      535,    0,  536,  538,  536,    0,  536,  538,    0,  540,
      536,  536,    0,  538,    0,  538,  544,  538,    0,  540,
      542,  540,  538,  540,    0,    0,    0,  542,  540,    0,
      542,  544,  542,    0,  542,    0,    0,  545,    0,  542,
        0,  544,    0,  544,    0,  544,    0,  545,  547,  545,

      544,  545,    0,    0,  549,    0,  545,    0,  547,    0,
      547,    0,  547,    0,  549,  558,  549,  547,  549,    0,
        0,  559,    0,  549,    0,  558,    0,  558,  558,  558,
        0,  559,  561,  559,  558,  559,    0,    0,  562,    0,
      559,    0,  561,    0,  561,    0,  561,    0,  562,    0,
      562,  561,  562,  564,  563,  562,  563,  562,  564,    0,
        0,    0,    0,  564,  563,  564,  563,  564,  563,  565,
      566,  566,  564,  563,    0,    0,    0,    0,    0,  565,
      566,  565,  566,  565,  566,  567,  568,  567,  565,  566,
        0,    0,    0,    0,    0,  567,  568,  567,  568,  567,

      568,  573,    0,    0,  567,  568,    0,    0,    0,  574,
        0,  573,    0,  573,    0,  573,    0,  573,    0,  574,
      573,  574,  574,  574,  575,  577,    0,    0,  574,    0,
        0,  575,  577,    0,  575,  577,  575,  577,  575,  577,
      580,    0,    0,  575,  577,    0,    0,    0,  582,    0,
      580,    0,  580,    0,  580,    0,  584,    0,  582,  580,
      582,  582,  582,    0,    0,    0,  584,  582,  584,  586,
      584,    0,    0,    0,  584,  584,    0,    0,    0,  586,
        0,  586,    0,  586,  592,  592,  592,    0,  586,    0,
        0,    0,    0,  595,  596,    0,  592,  592,  592,  592,

      592,  592,  592,  595,  596,  595,  596,  595,  596,  597,
      598,    0,  595,  596,    0,    0,    0,    0,    0,  597,
      598,  597,  598,  597,  598,  599,    0,    0,  597,  598,
        0,    0,    0,  600,    0,  599,    0,  599,    0,  599,
        0,  601,  599,  600,  599,  600,  600,  600,    0,  602,
        0,  601,  600,  601,    0,  601,  602,  606,    0,  602,
      601,  602,    0,  602,    0,  607,    0,  606,  602,  606,
        0,  606,    0,  608,    0,  607,  606,  607,    0,  607,
        0,  610,    0,  608,  607,  608,  608,  608,    0,  613,
        0,  610,  608,  610,    0,  610,  613,  615,    0,  613,

      610,  613,    0,  613,  615,  616,    0,  615,  613,  615,
        0,  615,  616,    0,    0,  616,  615,  616,    0,  616,
        0,    0,  626,  627,  616,  623,  623,  623,  623,  623,
      623,  623,  626,  627,  626,  627,  626,  627,  628,    0,
        0,  626,  627,    0,    0,    0,  629,    0,  628,    0,
      628,    0,  628,    0,    0,    0,  629,  628,  629,  633,
      629,    0,    0,  623,  629,  629,    0,  634,    0,  633,
        0,  633,    0,  633,    0,  636,  633,  634,  633,  634,
        0,  634,  636,  639,    0,  636,  634,  636,    0,  636,
        0,    0,    0,  639,  636,  639,  641,  639,  641,  642,

        0,  639,  639,  642,    0,    0,  641,    0,  641,  642,
      641,  642,    0,  642,    0,  641,    0,    0,  642,  649,
      649,  649,    0,    0,    0,    0,    0,    0,  651,  652,
        0,  649,  649,  649,  649,  649,  649,  649,  651,  652,
      651,  652,  651,  652,  656,  657,  651,  651,  652,    0,
        0,    0,  652,    0,  656,  657,  656,  657,  656,  657,
      659,  662,    0,  656,  657,    0,    0,    0,    0,    0,
      659,  662,  659,  662,  659,  662,  664,    0,  659,  659,
      662,    0,  665,    0,  662,    0,  664,    0,  664,  665,
      664,    0,  665,  672,  665,  664,  665,    0,    0,    0,

        0,  665,    0,  672,  673,  672,    0,  672,    0,  672,
      677,    0,  672,    0,  673,    0,  673,    0,  673,    0,
      677,    0,  677,  673,  677,  680,    0,    0,  682,  677,
        0,  682,    0,  677,    0,  680,    0,  680,  682,  680,
      682,    0,  682,    0,  680,    0,    0,  682,  687,  687,
      687,    0,    0,    0,    0,    0,    0,  689,    0,    0,
      687,  687,  687,  687,  687,  687,  687,  689,  691,  689,
      689,  689,    0,    0,  694,    0,  689,    0,  691,    0,
      691,    0,  691,    0,  694,  698,  694,  691,  694,    0,
      694,  702,    0,  694,    0,  698,    0,  698,    0,  698,

        0,  702,  705,  702,  698,  702,    0,    0,    0,    0,
      702,    0,  705,    0,  705,    0,  705,    0,    0,    0,
        0,  705,  709,  709,  709,  709,  709,  709,  709,  709,
      709,  709,  709,  709,  710,  710,  710,  710,  710,  710,
      710,  710,  710,  710,  710,  710,  711,  711,  711,  711,
      711,  711,  711,  711,  711,  711,  711,  711,  712,  712,
      712,  712,  712,  712,  712,  712,  712,  712,  712,  712,
      713,  713,  713,  713,  713,  713,  713,  713,  713,  713,
      713,  713,  714,  714,  714,  714,  714,  714,  714,  714,
      714,  714,  714,  714,  715,  715,  715,    0,  715,  715,

      715,  715,  715,  715,  715,  715,  716,  716,    0,    0,
      716,    0,  716,  717,    0,  717,  718,  718,    0,  718,
      718,  719,  719,    0,  719,  719,  719,    0,  719,  719,
      719,  719,  719,  720,  720,  720,    0,  720,  720,  720,
      720,  720,  720,  720,  720,  721,  721,  721,  721,  721,
      721,  721,  721,    0,  721,  721,  722,    0,    0,  722,
      722,  722,  722,  722,  722,  722,  722,  723,    0,    0,
      723,  723,  723,  723,  723,  723,  723,  723,  724,    0,
        0,  724,    0,  724,  724,  724,  724,  724,  724,  725,
      725,    0,  725,  725,  726,  726,    0,  726,  726,  727,

      727,    0,  727,  727,  708,  708,  708,  708,  708,  708,
      708,  708,  708,  708,  708,  708,  708,  708,  708,  708,
      708,  708,  708,  708,  708,  708,  708,  708,  708,  708,
      708,  708,  708,  708,  708,  708,  708,  708,  708,  708,
      708,  708,  708,  708,  708,  708,  708,  708,  708,  708,
      708,  708,  708,  708,  708,  708,  708,  708,  708,  708,
      708,  708,  708,  708,  708,  708,  708,  708,  708,  708,
      708,  708,  708,  708,  708,  708,  708,  708,  708,  708,
      708,  708,  708
    } ;

extern int yy_flex_debug;
int yy_flex_debug = 1;

static yyconst short int yy_rule_linenum[131] =
    {   0,
      103,  106,  108,  109,  110,  113,  115,  116,  117,  129,
      136,  143,  149,  158,  166,  174,  175,  177,  196,  202,
      203,  204,  205,  206,  209,  215,  222,  229,  236,  246,
      280,  287,  291,  292,  300,  301,  302,  303,  304,  309,
      310,  311,  312,  313,  314,  315,  316,  317,  318,  319,
      328,  329,  330,  331,  332,  333,  334,  335,  336,  337,
      338,  339,  340,  341,  342,  343,  344,  345,  346,  347,
      348,  349,  350,  351,  352,  353,  354,  355,  356,  357,
      358,  359,  360,  361,  362,  363,  364,  365,  366,  367,
      368,  369,  370,  371,  372,  373,  374,  375,  376,  377,

      378,  379,  380,  381,  382,  383,  384,  385,  386,  391,
      392,  397,  398,  399,  402,  408,  415,  424,  435,  441,
      443,  444,  446,  448,  450,  463,  469,  475,  482,  484
    } ;

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 "asn1p_l.l"
#define INITIAL 0
#line 2 "asn1p_l.l"

#include <string.h>
#include <errno.h>
#include <assert.h>

#include "asn1parser.h"
#include "asn1p_y.h"

int asn1p_lex(void);
void asn1p_lexer_hack_push_opaque_state(void);		/* Used in .y */
void asn1p_lexer_hack_enable_with_syntax(void);		/* Used in .y */
void asn1p_lexer_hack_push_encoding_control(void);	/* Used in .y */

#define	YY_FATAL_ERROR(msg)	do {			\
		fprintf(stderr,				\
			"lexer error at line %d, "	\
			"text \"%s\"\n",		\
			yylineno, yytext);		\
		exit(1);				\
	} while(0)

int asn1p_lexer_pedantic_1990 = 0;
int asn1p_lexer_types_year = 0;
int asn1p_lexer_constructs_year = 0;
static int _check_dashes(char *ptr);
static asn1_integer_t asn1p_atoi(char *ptr); /* errno is either 0 or ERANGE */

/*
 * Check that the type is defined in the year of the standard choosen.
 */
#define	TYPE_LIFETIME(fyr, lyr)				\
	(!asn1p_lexer_types_year			\
	|| (fyr && fyr <= asn1p_lexer_types_year)	\
	|| (lyr && lyr  > asn1p_lexer_types_year))

/*
 * Check the the construction (or concept, i.e. CLASS) is defined in
 * a given year.
 */
#define	CONSTRUCT_LIFETIME(fyr, lyr)			\
	(!asn1p_lexer_constructs_year			\
	|| (fyr && fyr <= asn1p_lexer_constructs_year)	\
	|| (lyr && lyr  > asn1p_lexer_constructs_year))

/*
 * Make sure that the label is compliant with the naming rules.
 */
#define	CHECK_DASHES	do {				\
	if(_check_dashes(yytext)) {			\
		fprintf(stderr,				\
		"%s: Identifier format invalid: "	\
		"Improper dash location\n", yytext);	\
		return -1;				\
	} } while(0)

/*
 * Append quoted string.
 */
#define	QAPPEND(text, tlen)	do {				\
		char *prev_text = asn1p_lval.tv_opaque.buf;	\
		int prev_len = asn1p_lval.tv_opaque.len;	\
		char *p;					\
								\
		p = malloc((tlen) + prev_len + 1);		\
		if(p == NULL) return -1;			\
								\
		if(prev_text) memcpy(p, prev_text, prev_len);	\
		memcpy(p + prev_len, text, tlen);		\
		p[prev_len + (tlen)] = '\0';			\
								\
		free(asn1p_lval.tv_opaque.buf);			\
		asn1p_lval.tv_opaque.buf = p;			\
		asn1p_lval.tv_opaque.len = (tlen) + prev_len;	\
	} while(0)

#define YY_NEVER_INTERACTIVE 1
#define YY_NO_INPUT 1
#define YY_STACK_USED 1
/* Performance penalty is OK */
/* Controlled from within application */
#define dash_comment 1

#define cpp_comment 2

#define quoted 3

#define opaque 4

#define encoding_control 5

#define with_syntax 6

/* Newline */
/* White-space */
#line 1881 "asn1p_l.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
#if __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 101 "asn1p_l.l"


#line 2035 "asn1p_l.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 >= 709 )
					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] != 4405 );

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. */

		if ( yy_flex_debug )
			{
			if ( yy_act == 0 )
				fprintf( stderr, "--scanner backing up\n" );
			else if ( yy_act < 131 )
				fprintf( stderr, "--accepting rule at line %d (\"%s\")\n",
				         yy_rule_linenum[yy_act], yytext );
			else if ( yy_act == 131 )
				fprintf( stderr, "--accepting default rule (\"%s\")\n",
				         yytext );
			else if ( yy_act == 132 )
				fprintf( stderr, "--(end of buffer or a NUL)\n" );
			else
				fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
			}

		switch ( yy_act )
	{ /* beginning of action switch */
case 1:
YY_RULE_SETUP
#line 103 "asn1p_l.l"
yy_push_state(dash_comment);
	YY_BREAK

case 2:
YY_RULE_SETUP
#line 106 "asn1p_l.l"
yy_pop_state();
	YY_BREAK
case 3:
YY_RULE_SETUP
#line 108 "asn1p_l.l"
yy_pop_state();	/* End of comment */
	YY_BREAK
case 4:
YY_RULE_SETUP
#line 109 "asn1p_l.l"
/* Eat single dash */
	YY_BREAK
case 5:
YY_RULE_SETUP
#line 110 "asn1p_l.l"
/* Eat */
	YY_BREAK

case 6:
YY_RULE_SETUP
#line 113 "asn1p_l.l"
yy_push_state(cpp_comment);
	YY_BREAK

case 7:
YY_RULE_SETUP
#line 115 "asn1p_l.l"
/* Eat */
	YY_BREAK
case 8:
YY_RULE_SETUP
#line 116 "asn1p_l.l"
yy_pop_state();
	YY_BREAK
case 9:
YY_RULE_SETUP
#line 117 "asn1p_l.l"
/* Eat */
	YY_BREAK

/*
	 * This is state is being set from corresponding .y module when
	 * higher-level data is necessary to make proper parsing of the
	 * underlying data. Thus, we enter the <opaque> state and save
	 * everything for later processing.
	 */

case 10:
YY_RULE_SETUP
#line 129 "asn1p_l.l"
{
			yy_push_state(opaque);
			asn1p_lval.tv_opaque.buf = strdup(yytext);
			asn1p_lval.tv_opaque.len = yyleng;
			return TOK_opaque;
		}
	YY_BREAK
case 11:
YY_RULE_SETUP
#line 136 "asn1p_l.l"
{
			yy_pop_state();
			asn1p_lval.tv_opaque.buf = strdup(yytext);
			asn1p_lval.tv_opaque.len = yyleng;
			return TOK_opaque;
		}
	YY_BREAK
case 12:
YY_RULE_SETUP
#line 143 "asn1p_l.l"
{
			asn1p_lval.tv_opaque.buf = strdup(yytext);
			asn1p_lval.tv_opaque.len = yyleng;
			return TOK_opaque;
		}
	YY_BREAK
case 13:
YY_RULE_SETUP
#line 149 "asn1p_l.l"
{
			fprintf(stderr,
				"ASN.1 Parser syncronization failure: "
				"\"%s\" at line %d must not appear "
				"inside value definition\n",
				yytext, yylineno);
			return -1;
		}
	YY_BREAK
case 14:
YY_RULE_SETUP
#line 158 "asn1p_l.l"
{
			asn1p_lval.tv_opaque.buf = strdup(yytext);
			asn1p_lval.tv_opaque.len = yyleng;
			return TOK_opaque;
		}
	YY_BREAK

case 15:
YY_RULE_SETUP
#line 166 "asn1p_l.l"
{
			asn1p_lval.tv_opaque.buf = 0;
			asn1p_lval.tv_opaque.len = 0;
			QAPPEND(yytext+1, yyleng-1);
			yy_push_state(quoted);
		}
	YY_BREAK

case 16:
YY_RULE_SETUP
#line 174 "asn1p_l.l"
{ QAPPEND(yytext, yyleng-1); }	/* Add a single quote */
	YY_BREAK
case 17:
YY_RULE_SETUP
#line 175 "asn1p_l.l"
{ QAPPEND(yytext, yyleng); }
	YY_BREAK
case 18:
YY_RULE_SETUP
#line 177 "asn1p_l.l"
{
			yy_pop_state();
			/* Do not append last quote:
			// QAPPEND(yytext, yyleng); */

			if(asn1p_lexer_pedantic_1990
			&& strchr(yytext, '\n')) {
				fprintf(stderr, "%s: "
				"Newlines are prohibited by ASN.1:1990\n",
				asn1p_lval.tv_opaque.buf);
				return -1;
			}

			return TOK_cstring;
		}
	YY_BREAK


case 19:
YY_RULE_SETUP
#line 196 "asn1p_l.l"
{
			const char *s = "ENCODING-CONTROL";
			const char *p = s + sizeof("ENCODING-CONTROL") - 2;
			for(; p >= s; p--) unput(*p);
			yy_pop_state();
		}
	YY_BREAK
case 20:
YY_RULE_SETUP
#line 202 "asn1p_l.l"
unput('D'); unput('N'); unput('E'); yy_pop_state();
	YY_BREAK
case 21:
YY_RULE_SETUP
#line 203 "asn1p_l.l"

	YY_BREAK
case 22:
YY_RULE_SETUP
#line 204 "asn1p_l.l"

	YY_BREAK
case 23:
YY_RULE_SETUP
#line 205 "asn1p_l.l"
/* Eat everything else */
	YY_BREAK
case 24:
YY_RULE_SETUP
#line 206 "asn1p_l.l"

	YY_BREAK

case 25:
YY_RULE_SETUP
#line 209 "asn1p_l.l"
{
		/* " \t\r\n" weren't allowed in ASN.1:1990. */
		asn1p_lval.tv_str = yytext;
		return TOK_hstring;
	}
	YY_BREAK
case 26:
YY_RULE_SETUP
#line 215 "asn1p_l.l"
{
		/* " \t\r\n" weren't allowed in ASN.1:1990. */
		asn1p_lval.tv_str = strdup(yytext);
		return TOK_bstring;
	}
	YY_BREAK
case 27:
YY_RULE_SETUP
#line 222 "asn1p_l.l"
{
		asn1p_lval.a_int = asn1p_atoi(yytext);
		if(errno == ERANGE)
			return -1;
		return TOK_number_negative;
	}
	YY_BREAK
case 28:
YY_RULE_SETUP
#line 229 "asn1p_l.l"
{
		asn1p_lval.a_int = asn1p_atoi(yytext);
		if(errno == ERANGE)
			return -1;
		return TOK_number;
	}
	YY_BREAK
case 29:
YY_RULE_SETUP
#line 236 "asn1p_l.l"
{
		asn1p_lval.a_int = asn1p_atoi(yytext);
		if(errno == ERANGE)
			return -1;
		return TOK_number;
	}
	YY_BREAK
/*
	 * Tags
	 */
case 30:
YY_RULE_SETUP
#line 246 "asn1p_l.l"
{
		char *p;
		memset(&asn1p_lval.a_tag, 0, sizeof(asn1p_lval.a_tag));
		switch(yytext[1]) {
		case 'U':
			asn1p_lval.a_tag.tag_class = TC_UNIVERSAL;
			p = yytext + sizeof("UNIVERSAL") + 1;
			break;
		case 'A':
			asn1p_lval.a_tag.tag_class = TC_APPLICATION;
			p = yytext + sizeof("APPLICATION") + 1;
			break;
		case 'P':
			asn1p_lval.a_tag.tag_class = TC_PRIVATE;
			p = yytext + sizeof("PRIVATE") + 1;
			break;
		default:
			assert(yytext[1] >= '0' && yytext[1] <= '9');
			asn1p_lval.a_tag.tag_class = TC_CONTEXT_SPECIFIC;
			p = yytext + 1;
			break;
		}
		asn1p_lval.a_tag.tag_value = asn1p_atoi(p);
		if(*p == '0' && asn1p_lval.a_tag.tag_value) {
			fprintf(stderr,
			"Tag value at line %d "
			"cannot start with zero "
			"and have multiple digits: \"%s\"\n",
			yylineno, yytext);
			return -1;
		}
		return TOK_tag;
	}
	YY_BREAK
case 31:
YY_RULE_SETUP
#line 280 "asn1p_l.l"
{
		fprintf(stderr,
			"Unsupported tag syntax at line %d: \"%s\"\n",
			yylineno, yytext);
		return -1;
	}
	YY_BREAK
case 32:
YY_RULE_SETUP
#line 287 "asn1p_l.l"
return TOK_ABSENT;
	YY_BREAK
/*
ABSTRACT-SYNTAX		return TOK_ABSTRACT_SYNTAX;
	*/
case 33:
YY_RULE_SETUP
#line 291 "asn1p_l.l"
return TOK_ALL;
	YY_BREAK
case 34:
YY_RULE_SETUP
#line 292 "asn1p_l.l"
{
				/* Appeared in 1990, removed in 1997 */
				if(TYPE_LIFETIME(1990, 1997))
					return TOK_ANY;	
				fprintf(stderr, "Keyword \"%s\" at line %d "
					"is obsolete\n", yytext, yylineno);
				REJECT;
			}
	YY_BREAK
case 35:
YY_RULE_SETUP
#line 300 "asn1p_l.l"
return TOK_APPLICATION;
	YY_BREAK
case 36:
YY_RULE_SETUP
#line 301 "asn1p_l.l"
return TOK_AUTOMATIC;
	YY_BREAK
case 37:
YY_RULE_SETUP
#line 302 "asn1p_l.l"
return TOK_BEGIN;
	YY_BREAK
case 38:
YY_RULE_SETUP
#line 303 "asn1p_l.l"
return TOK_BIT;
	YY_BREAK
case 39:
YY_RULE_SETUP
#line 304 "asn1p_l.l"
{
				if(TYPE_LIFETIME(1994, 0))
					return TOK_BMPString;
				REJECT;
			}
	YY_BREAK
case 40:
YY_RULE_SETUP
#line 309 "asn1p_l.l"
return TOK_BOOLEAN;
	YY_BREAK
case 41:
YY_RULE_SETUP
#line 310 "asn1p_l.l"
return TOK_BY;
	YY_BREAK
case 42:
YY_RULE_SETUP
#line 311 "asn1p_l.l"
return TOK_CHARACTER;
	YY_BREAK
case 43:
YY_RULE_SETUP
#line 312 "asn1p_l.l"
return TOK_CHOICE;
	YY_BREAK
case 44:
YY_RULE_SETUP
#line 313 "asn1p_l.l"
return TOK_CLASS;
	YY_BREAK
case 45:
YY_RULE_SETUP
#line 314 "asn1p_l.l"
return TOK_COMPONENT;
	YY_BREAK
case 46:
YY_RULE_SETUP
#line 315 "asn1p_l.l"
return TOK_COMPONENTS;
	YY_BREAK
case 47:
YY_RULE_SETUP
#line 316 "asn1p_l.l"
return TOK_CONSTRAINED;
	YY_BREAK
case 48:
YY_RULE_SETUP
#line 317 "asn1p_l.l"
return TOK_CONTAINING;
	YY_BREAK
case 49:
YY_RULE_SETUP
#line 318 "asn1p_l.l"
return TOK_DEFAULT;
	YY_BREAK
case 50:
YY_RULE_SETUP
#line 319 "asn1p_l.l"
{
				/* Appeared in 1990, removed in 1997 */
				if(TYPE_LIFETIME(1990, 1997))
					return TOK_DEFINED;
				fprintf(stderr, "Keyword \"%s\" at line %d "
					"is obsolete\n", yytext, yylineno);
				/* Deprecated since */
				REJECT;
			}
	YY_BREAK
case 51:
YY_RULE_SETUP
#line 328 "asn1p_l.l"
return TOK_DEFINITIONS;
	YY_BREAK
case 52:
YY_RULE_SETUP
#line 329 "asn1p_l.l"
return TOK_EMBEDDED;
	YY_BREAK
case 53:
YY_RULE_SETUP
#line 330 "asn1p_l.l"
return TOK_ENCODED;
	YY_BREAK
case 54:
YY_RULE_SETUP
#line 331 "asn1p_l.l"
return TOK_ENCODING_CONTROL;
	YY_BREAK
case 55:
YY_RULE_SETUP
#line 332 "asn1p_l.l"
return TOK_END;
	YY_BREAK
case 56:
YY_RULE_SETUP
#line 333 "asn1p_l.l"
return TOK_ENUMERATED;
	YY_BREAK
case 57:
YY_RULE_SETUP
#line 334 "asn1p_l.l"
return TOK_EXCEPT;
	YY_BREAK
case 58:
YY_RULE_SETUP
#line 335 "asn1p_l.l"
return TOK_EXPLICIT;
	YY_BREAK
case 59:
YY_RULE_SETUP
#line 336 "asn1p_l.l"
return TOK_EXPORTS;
	YY_BREAK
case 60:
YY_RULE_SETUP
#line 337 "asn1p_l.l"
return TOK_EXTENSIBILITY;
	YY_BREAK
case 61:
YY_RULE_SETUP
#line 338 "asn1p_l.l"
return TOK_EXTERNAL;
	YY_BREAK
case 62:
YY_RULE_SETUP
#line 339 "asn1p_l.l"
return TOK_FALSE;
	YY_BREAK
case 63:
YY_RULE_SETUP
#line 340 "asn1p_l.l"
return TOK_FROM;
	YY_BREAK
case 64:
YY_RULE_SETUP
#line 341 "asn1p_l.l"
return TOK_GeneralizedTime;
	YY_BREAK
case 65:
YY_RULE_SETUP
#line 342 "asn1p_l.l"
return TOK_GeneralString;
	YY_BREAK
case 66:
YY_RULE_SETUP
#line 343 "asn1p_l.l"
return TOK_GraphicString;
	YY_BREAK
case 67:
YY_RULE_SETUP
#line 344 "asn1p_l.l"
return TOK_IA5String;
	YY_BREAK
case 68:
YY_RULE_SETUP
#line 345 "asn1p_l.l"
return TOK_IDENTIFIER;
	YY_BREAK
case 69:
YY_RULE_SETUP
#line 346 "asn1p_l.l"
return TOK_IMPLICIT;
	YY_BREAK
case 70:
YY_RULE_SETUP
#line 347 "asn1p_l.l"
return TOK_IMPLIED;
	YY_BREAK
case 71:
YY_RULE_SETUP
#line 348 "asn1p_l.l"
return TOK_IMPORTS;
	YY_BREAK
case 72:
YY_RULE_SETUP
#line 349 "asn1p_l.l"
return TOK_INCLUDES;
	YY_BREAK
case 73:
YY_RULE_SETUP
#line 350 "asn1p_l.l"
return TOK_INSTANCE;
	YY_BREAK
case 74:
YY_RULE_SETUP
#line 351 "asn1p_l.l"
return TOK_INSTRUCTIONS;
	YY_BREAK
case 75:
YY_RULE_SETUP
#line 352 "asn1p_l.l"
return TOK_INTEGER;
	YY_BREAK
case 76:
YY_RULE_SETUP
#line 353 "asn1p_l.l"
return TOK_INTERSECTION;
	YY_BREAK
case 77:
YY_RULE_SETUP
#line 354 "asn1p_l.l"
return TOK_ISO646String;
	YY_BREAK
case 78:
YY_RULE_SETUP
#line 355 "asn1p_l.l"
return TOK_MAX;
	YY_BREAK
case 79:
YY_RULE_SETUP
#line 356 "asn1p_l.l"
return TOK_MIN;
	YY_BREAK
case 80:
YY_RULE_SETUP
#line 357 "asn1p_l.l"
return TOK_MINUS_INFINITY;
	YY_BREAK
case 81:
YY_RULE_SETUP
#line 358 "asn1p_l.l"
return TOK_NULL;
	YY_BREAK
case 82:
YY_RULE_SETUP
#line 359 "asn1p_l.l"
return TOK_NumericString;
	YY_BREAK
case 83:
YY_RULE_SETUP
#line 360 "asn1p_l.l"
return TOK_OBJECT;
	YY_BREAK
case 84:
YY_RULE_SETUP
#line 361 "asn1p_l.l"
return TOK_ObjectDescriptor;
	YY_BREAK
case 85:
YY_RULE_SETUP
#line 362 "asn1p_l.l"
return TOK_OCTET;
	YY_BREAK
case 86:
YY_RULE_SETUP
#line 363 "asn1p_l.l"
return TOK_OF;
	YY_BREAK
case 87:
YY_RULE_SETUP
#line 364 "asn1p_l.l"
return TOK_OPTIONAL;
	YY_BREAK
case 88:
YY_RULE_SETUP
#line 365 "asn1p_l.l"
return TOK_PATTERN;
	YY_BREAK
case 89:
YY_RULE_SETUP
#line 366 "asn1p_l.l"
return TOK_PDV;
	YY_BREAK
case 90:
YY_RULE_SETUP
#line 367 "asn1p_l.l"
return TOK_PLUS_INFINITY;
	YY_BREAK
case 91:
YY_RULE_SETUP
#line 368 "asn1p_l.l"
return TOK_PRESENT;
	YY_BREAK
case 92:
YY_RULE_SETUP
#line 369 "asn1p_l.l"
return TOK_PrintableString;
	YY_BREAK
case 93:
YY_RULE_SETUP
#line 370 "asn1p_l.l"
return TOK_PRIVATE;
	YY_BREAK
case 94:
YY_RULE_SETUP
#line 371 "asn1p_l.l"
return TOK_REAL;
	YY_BREAK
case 95:
YY_RULE_SETUP
#line 372 "asn1p_l.l"
return TOK_RELATIVE_OID;
	YY_BREAK
case 96:
YY_RULE_SETUP
#line 373 "asn1p_l.l"
return TOK_SEQUENCE;
	YY_BREAK
case 97:
YY_RULE_SETUP
#line 374 "asn1p_l.l"
return TOK_SET;
	YY_BREAK
case 98:
YY_RULE_SETUP
#line 375 "asn1p_l.l"
return TOK_SIZE;
	YY_BREAK
case 99:
YY_RULE_SETUP
#line 376 "asn1p_l.l"
return TOK_STRING;
	YY_BREAK
case 100:
YY_RULE_SETUP
#line 377 "asn1p_l.l"
return TOK_SYNTAX;
	YY_BREAK
case 101:
YY_RULE_SETUP
#line 378 "asn1p_l.l"
return TOK_T61String;
	YY_BREAK
case 102:
YY_RULE_SETUP
#line 379 "asn1p_l.l"
return TOK_TAGS;
	YY_BREAK
case 103:
YY_RULE_SETUP
#line 380 "asn1p_l.l"
return TOK_TeletexString;
	YY_BREAK
case 104:
YY_RULE_SETUP
#line 381 "asn1p_l.l"
return TOK_TRUE;
	YY_BREAK
case 105:
YY_RULE_SETUP
#line 382 "asn1p_l.l"
return TOK_TYPE_IDENTIFIER;
	YY_BREAK
case 106:
YY_RULE_SETUP
#line 383 "asn1p_l.l"
return TOK_UNION;
	YY_BREAK
case 107:
YY_RULE_SETUP
#line 384 "asn1p_l.l"
return TOK_UNIQUE;
	YY_BREAK
case 108:
YY_RULE_SETUP
#line 385 "asn1p_l.l"
return TOK_UNIVERSAL;
	YY_BREAK
case 109:
YY_RULE_SETUP
#line 386 "asn1p_l.l"
{
				if(TYPE_LIFETIME(1994, 0))
					return TOK_UniversalString;
				REJECT;
			}
	YY_BREAK
case 110:
YY_RULE_SETUP
#line 391 "asn1p_l.l"
return TOK_UTCTime;
	YY_BREAK
case 111:
YY_RULE_SETUP
#line 392 "asn1p_l.l"
{
				if(TYPE_LIFETIME(1994, 0))
					return TOK_UTF8String;
				REJECT;
			}
	YY_BREAK
case 112:
YY_RULE_SETUP
#line 397 "asn1p_l.l"
return TOK_VideotexString;
	YY_BREAK
case 113:
YY_RULE_SETUP
#line 398 "asn1p_l.l"
return TOK_VisibleString;
	YY_BREAK
case 114:
YY_RULE_SETUP
#line 399 "asn1p_l.l"
return TOK_WITH;
	YY_BREAK
case 115:
YY_RULE_SETUP
#line 402 "asn1p_l.l"
{
		CHECK_DASHES;
		asn1p_lval.tv_str = strdup(yytext);
		return TOK_typefieldreference;
	}
	YY_BREAK
case 116:
YY_RULE_SETUP
#line 408 "asn1p_l.l"
{
		CHECK_DASHES;
		asn1p_lval.tv_str = strdup(yytext);
		return TOK_valuefieldreference;
	}
	YY_BREAK
case 117:
YY_RULE_SETUP
#line 415 "asn1p_l.l"
{
		CHECK_DASHES;
		asn1p_lval.tv_str = strdup(yytext);
		return TOK_identifier;
	}
	YY_BREAK
/*
	 * objectclassreference
	 */
case 118:
YY_RULE_SETUP
#line 424 "asn1p_l.l"
{
		CHECK_DASHES;
		asn1p_lval.tv_str = strdup(yytext);
		return TOK_capitalreference;
	}
	YY_BREAK
/*
	 * typereference, modulereference
	 * NOTE: TOK_objectclassreference must be combined
	 * with this token to produce true typereference.
	 */
case 119:
YY_RULE_SETUP
#line 435 "asn1p_l.l"
{
		CHECK_DASHES;
		asn1p_lval.tv_str = strdup(yytext);
		return TOK_typereference;
	}
	YY_BREAK
case 120:
YY_RULE_SETUP
#line 441 "asn1p_l.l"
return TOK_PPEQ;
	YY_BREAK
case 121:
YY_RULE_SETUP
#line 443 "asn1p_l.l"
return TOK_ThreeDots;
	YY_BREAK
case 122:
YY_RULE_SETUP
#line 444 "asn1p_l.l"
return TOK_TwoDots;
	YY_BREAK
case 123:
YY_RULE_SETUP
#line 446 "asn1p_l.l"
return yytext[0];
	YY_BREAK
case 124:
YY_RULE_SETUP
#line 448 "asn1p_l.l"
/* Ignore whitespace */
	YY_BREAK
case 125:
YY_RULE_SETUP
#line 450 "asn1p_l.l"
{
		if(TYPE_LIFETIME(1994, 0))
			fprintf(stderr, "ERROR: ");
		fprintf(stderr,
		"Symbol '%c' at line %d is prohibited "
		"by ASN.1:1994 and ASN.1:1997\n",
			yytext[0], yylineno);
		if(TYPE_LIFETIME(1994, 0))
			return -1;
	}
	YY_BREAK

case 126:
YY_RULE_SETUP
#line 463 "asn1p_l.l"
{
			asn1p_lval.tv_opaque.buf = strdup(yytext);
			asn1p_lval.tv_opaque.len = yyleng;
			return TOK_opaque;
			}
	YY_BREAK
case 127:
YY_RULE_SETUP
#line 469 "asn1p_l.l"
{
			asn1p_lval.tv_opaque.buf = strdup(yytext);
			asn1p_lval.tv_opaque.len = yyleng;
			return TOK_opaque;
			}
	YY_BREAK
case 128:
YY_RULE_SETUP
#line 475 "asn1p_l.l"
{
				yy_pop_state();
				return '}';
			}
	YY_BREAK

case 129:
YY_RULE_SETUP
#line 482 "asn1p_l.l"
return yytext[0];	/* Union, Intersection */
	YY_BREAK
case 130:
YY_RULE_SETUP
#line 484 "asn1p_l.l"
{
		fprintf(stderr,
			"Unexpected token at line %d: \"%s\"\n",
			yylineno, yytext);
		while(YYSTATE != INITIAL)
			yy_pop_state();
		if(0) {
			yy_top_state();	/* Just to use this function. */
			yy_fatal_error("Parse error");
		}
		return -1;
}
	YY_BREAK
case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(dash_comment):
case YY_STATE_EOF(cpp_comment):
case YY_STATE_EOF(quoted):
case YY_STATE_EOF(opaque):
case YY_STATE_EOF(encoding_control):
case YY_STATE_EOF(with_syntax):
#line 497 "asn1p_l.l"
{
		while(YYSTATE != INITIAL)
			yy_pop_state();
		yyterminate();
	}
	YY_BREAK
case 131:
YY_RULE_SETUP
#line 504 "asn1p_l.l"
YY_FATAL_ERROR( "flex scanner jammed" );
	YY_BREAK
#line 3029 "asn1p_l.c"

	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 >= 709 )
				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 >= 709 )
			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 == 708);
	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


	{
	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
	}


#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 504 "asn1p_l.l"


/*
 * Very dirty but wonderful hack allowing to rule states from within .y file.
 */
void asn1p_lexer_hack_push_opaque_state() { yy_push_state(opaque); }

/*
 * Another hack which disables recognizing some tokens when inside WITH SYNTAX.
 */
void asn1p_lexer_hack_enable_with_syntax() { yy_push_state(with_syntax); }

/* Yet another */
void asn1p_lexer_hack_push_encoding_control() {
	yy_push_state(encoding_control);
}

/*
 * Check that a token does not end with dash and does not contain
 * several dashes in succession.
 * "Name", "Type-Id", "T-y-p-e-i-d" are OK
 * "end-", "vustom--value" are INVALID
 */
static int
_check_dashes(char *ptr) {
	int prev_dash = 0;

	assert(*ptr != '-');

	for(;; ptr++) {
		switch(*ptr) {
		case '-':
			if(prev_dash++)	/* No double dashes */
				return -1;
			continue;
		case '\0':
			if(prev_dash)	/* No dashes at the end */
				return -1;
			break;
		default:
			prev_dash = 0;
			continue;
		}
		break;
	}

	return 0;
}

static asn1_integer_t
asn1p_atoi(char *ptr) {
	asn1_integer_t value;
	errno = 0;	/* Clear the error code */

	if(sizeof(value) <= sizeof(int)) {
		value = strtol(ptr, 0, 10);
	} else {
#ifdef	HAVE_STRTOIMAX
		value = strtoimax(ptr, 0, 10);
#elif	HAVE_STRTOLL
		value = strtoll(ptr, 0, 10);
#else
		value = strtol(ptr, 0, 10);
#endif
	}

	if(errno == ERANGE) {
		fprintf(stderr,
			"Value \"%s\" at line %d is too large "
			"for this compiler! Please contact the vendor.",
			ptr, yylineno);
		errno = ERANGE;	/* Restore potentially clobbered errno */
	}

	return value;
}

