#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 asn1c_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 asn1c_integer_t
asn1p_atoi(char *ptr) {
	asn1c_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;
}

