aboutsummaryrefslogtreecommitdiffstats
path: root/libasn1parser
diff options
context:
space:
mode:
authorLev Walkin <vlm@lionet.info>2004-08-18 04:59:12 +0000
committerLev Walkin <vlm@lionet.info>2004-08-18 04:59:12 +0000
commitf59d075daddeadc6b62253f8f3ae872e6b64a743 (patch)
tree99865c276ed37db8d630058b26a8af2945025088 /libasn1parser
parentb2664669bebb17197410e0d1294a6efd5f179904 (diff)
new style constraints implementation support
Diffstat (limited to 'libasn1parser')
-rw-r--r--libasn1parser/Makefile.in4
-rw-r--r--libasn1parser/asn1p_constr.c39
-rw-r--r--libasn1parser/asn1p_constr.h2
-rw-r--r--libasn1parser/asn1p_expr.c3
-rw-r--r--libasn1parser/asn1p_expr.h6
-rw-r--r--libasn1parser/asn1p_l.c3259
-rw-r--r--libasn1parser/asn1p_l.l35
-rw-r--r--libasn1parser/asn1p_module.h13
-rw-r--r--libasn1parser/asn1p_y.c2098
-rw-r--r--libasn1parser/asn1p_y.h126
-rw-r--r--libasn1parser/asn1p_y.y188
11 files changed, 3028 insertions, 2745 deletions
diff --git a/libasn1parser/Makefile.in b/libasn1parser/Makefile.in
index 375d37e2..4af09101 100644
--- a/libasn1parser/Makefile.in
+++ b/libasn1parser/Makefile.in
@@ -546,9 +546,9 @@ distclean-generic:
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
- -rm -f asn1p_y.h
- -rm -f asn1p_y.c
-rm -f asn1p_l.c
+ -rm -f asn1p_y.c
+ -rm -f asn1p_y.h
clean: clean-am
clean-am: clean-checkPROGRAMS clean-generic clean-libtool \
diff --git a/libasn1parser/asn1p_constr.c b/libasn1parser/asn1p_constr.c
index faec6f2e..26f920f4 100644
--- a/libasn1parser/asn1p_constr.c
+++ b/libasn1parser/asn1p_constr.c
@@ -108,3 +108,42 @@ asn1p_constraint_insert(asn1p_constraint_t *into, asn1p_constraint_t *what) {
return 0;
}
+
+
+char *
+asn1p_constraint_type2str(enum asn1p_constraint_type_e type) {
+ switch(type) {
+ case ACT_INVALID:
+ return "INVALID";
+ case ACT_EL_VALUE:
+ return "SingleValue";
+ case ACT_EL_RANGE:
+ case ACT_EL_LLRANGE:
+ case ACT_EL_RLRANGE:
+ case ACT_EL_ULRANGE:
+ return "ValueRange";
+ case ACT_EL_EXT:
+ return "...";
+ case ACT_CT_SIZE:
+ return "SizeConstraint";
+ case ACT_CT_FROM:
+ return "PermittedAlphabet";
+ case ACT_CT_WCOMP:
+ return "SingleTypeConstraint";
+ case ACT_CT_WCOMPS:
+ return "MultipleTypeConstraints";
+ case ACT_CA_SET:
+ return "SET";
+ case ACT_CA_CRC:
+ return "ComponentRelationConstraint";
+ case ACT_CA_CSV:
+ return "CSV";
+ case ACT_CA_UNI:
+ return "UNION";
+ case ACT_CA_INT:
+ return "INTERSECTION";
+ case ACT_CA_EXC:
+ return "EXCEPT";
+ }
+ return "UNKNOWN";
+}
diff --git a/libasn1parser/asn1p_constr.h b/libasn1parser/asn1p_constr.h
index 19099b2f..d3756780 100644
--- a/libasn1parser/asn1p_constr.h
+++ b/libasn1parser/asn1p_constr.h
@@ -59,6 +59,8 @@ typedef struct asn1p_constraint_s {
int _lineno; /* Position in a source file */
} asn1p_constraint_t;
+/* Human-readable constraint type description */
+char *asn1p_constraint_type2str(enum asn1p_constraint_type_e);
/*
* Constructors and a recursive destructor.
diff --git a/libasn1parser/asn1p_expr.c b/libasn1parser/asn1p_expr.c
index 23ab4cb3..be9da773 100644
--- a/libasn1parser/asn1p_expr.c
+++ b/libasn1parser/asn1p_expr.c
@@ -57,6 +57,7 @@ asn1p_expr_clone(asn1p_expr_t *expr) {
CLCLONE(Identifier, strdup);
CLCLONE(reference, asn1p_ref_clone);
CLCLONE(constraints, asn1p_constraint_clone);
+ CLCLONE(combined_constraints, asn1p_constraint_clone);
CLCLONE(params, asn1p_paramlist_clone);
CLCLONE(value, asn1p_value_clone);
CLCLONE(with_syntax, asn1p_wsyntx_clone);
@@ -90,6 +91,8 @@ asn1p_expr_free(asn1p_expr_t *expr) {
asn1p_ref_free(expr->reference);
if(expr->constraints)
asn1p_constraint_free(expr->constraints);
+ if(expr->combined_constraints)
+ asn1p_constraint_free(expr->combined_constraints);
if(expr->params)
asn1p_paramlist_free(expr->params);
if(expr->value)
diff --git a/libasn1parser/asn1p_expr.h b/libasn1parser/asn1p_expr.h
index 331285c7..ef1941b7 100644
--- a/libasn1parser/asn1p_expr.h
+++ b/libasn1parser/asn1p_expr.h
@@ -125,6 +125,12 @@ typedef struct asn1p_expr_s {
asn1p_constraint_t *constraints;
/*
+ * This field is holding the transformed constraints, with all the
+ * parent constraints taken into account.
+ */
+ asn1p_constraint_t *combined_constraints;
+
+ /*
* A list of parameters for parametrized type declaration
* (AMT_PARAMTYPE).
*/
diff --git a/libasn1parser/asn1p_l.c b/libasn1parser/asn1p_l.c
index bbddbcc0..f40f7a38 100644
--- a/libasn1parser/asn1p_l.c
+++ b/libasn1parser/asn1p_l.c
@@ -16,12 +16,11 @@
#define yytext asn1p_text
#define yylineno asn1p_lineno
-#line 20 "lex.yy.c"
+#line 20 "asn1p_l.c"
/* A lexical scanner generated by flex */
/* Scanner skeleton version:
* $Header$
- * $FreeBSD: src/usr.bin/lex/flex.skl,v 1.4 1999/10/27 07:56:44 obrien Exp $
*/
#define FLEX_SCANNER
@@ -313,220 +312,235 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
*yy_cp = '\0'; \
yy_c_buf_p = yy_cp;
-#define YY_NUM_RULES 123
-#define YY_END_OF_BUFFER 124
-static yyconst short int yy_acclist[1196] =
+#define YY_NUM_RULES 132
+#define YY_END_OF_BUFFER 133
+static yyconst short int yy_acclist[1291] =
{ 0,
- 124, 122, 123, 117, 122, 123, 117, 123, 116, 122,
- 123, 15, 122, 123, 116, 122, 123, 122, 123, 116,
- 122, 123, 122, 123, 116, 122, 123, 122, 123, 23,
- 122, 123, 22, 122, 123, 116, 122, 123, 122, 123,
- 111, 112, 122, 123, 111, 112, 122, 123, 111, 112,
- 122, 123, 111, 112, 122, 123, 111, 112, 122, 123,
- 111, 112, 122, 123, 111, 112, 122, 123, 111, 112,
- 122, 123, 111, 112, 122, 123, 111, 112, 122, 123,
- 111, 112, 122, 123, 111, 112, 122, 123, 111, 112,
- 122, 123, 111, 112, 122, 123, 111, 112, 122, 123,
-
- 111, 112, 122, 123, 111, 112, 122, 123, 111, 112,
- 122, 123, 111, 112, 122, 123, 116, 122, 123, 110,
- 122, 123, 5, 122, 123, 2, 123, 2, 122, 123,
- 4, 122, 123, 7, 9, 122, 123, 7, 123, 9,
- 122, 123, 9, 122, 123, 17, 122, 123, 17, 123,
- 18, 122, 123, 12, 122, 123, 12, 123, 14, 122,
- 123, 14, 122, 123, 10, 122, 123, 11, 122, 123,
- 119, 122, 123, 120, 122, 123, 120, 123, 122, 123,
- 121, 122, 123, 117, 15, 15, 108, 109, 1, 21,
- 115, 6, 22, 111, 112, 111, 112, 111, 112, 111,
-
- 112, 111, 112, 111, 112, 112, 111, 112, 111, 112,
- 111, 112, 111, 112, 36, 111, 112, 111, 112, 111,
- 112, 111, 112, 111, 112, 111, 112, 111, 112, 111,
- 112, 111, 112, 111, 112, 112, 112, 111, 112, 111,
- 112, 111, 112, 111, 112, 111, 112, 111, 112, 111,
- 112, 111, 112, 112, 111, 112, 111, 112, 79, 111,
- 112, 111, 112, 112, 111, 112, 111, 112, 111, 112,
- 111, 112, 112, 111, 112, 111, 112, 111, 112, 111,
- 112, 111, 112, 111, 112, 111, 112, 111, 112, 111,
- 112, 112, 111, 112, 111, 112, 112, 112, 111, 112,
-
- 110, 5, 3, 8, 17, 16, 12, 119, 120, 118,
- 108, 109, 21, 114, 113, 111, 112, 28, 111, 112,
- 29, 111, 112, 111, 112, 111, 112, 111, 112, 33,
- 111, 112, 111, 112, 111, 112, 111, 112, 111, 112,
- 111, 112, 111, 112, 111, 112, 111, 112, 111, 112,
- 111, 112, 49, 111, 112, 111, 112, 111, 112, 111,
- 112, 111, 112, 111, 112, 111, 112, 112, 112, 111,
- 112, 111, 112, 111, 112, 111, 112, 111, 112, 111,
- 112, 111, 112, 71, 111, 112, 72, 111, 112, 111,
- 112, 112, 111, 112, 111, 112, 111, 112, 112, 111,
-
- 112, 82, 111, 112, 111, 112, 111, 112, 111, 112,
- 112, 111, 112, 111, 112, 111, 112, 90, 111, 112,
- 111, 112, 111, 112, 111, 112, 111, 112, 111, 112,
- 111, 112, 111, 112, 112, 111, 112, 111, 112, 111,
- 112, 112, 112, 112, 111, 112, 24, 13, 20, 19,
- 111, 112, 111, 112, 111, 112, 111, 112, 111, 112,
- 111, 112, 111, 112, 111, 112, 111, 112, 111, 112,
- 111, 112, 111, 112, 111, 112, 111, 112, 111, 112,
- 111, 112, 111, 112, 111, 112, 111, 112, 111, 112,
- 111, 112, 111, 112, 111, 112, 57, 111, 112, 112,
-
- 112, 111, 112, 111, 112, 111, 112, 111, 112, 111,
- 112, 111, 112, 111, 112, 111, 112, 111, 112, 74,
- 111, 112, 112, 111, 112, 111, 112, 111, 112, 112,
- 111, 112, 111, 112, 111, 112, 111, 112, 112, 87,
- 111, 112, 111, 112, 111, 112, 91, 111, 112, 111,
- 112, 111, 112, 111, 112, 95, 111, 112, 97, 111,
- 112, 111, 112, 112, 111, 112, 111, 112, 111, 112,
- 111, 112, 111, 112, 112, 112, 112, 107, 111, 112,
- 111, 112, 111, 112, 111, 112, 111, 112, 32, 111,
- 112, 112, 111, 112, 111, 112, 111, 112, 39, 111,
-
- 112, 111, 112, 111, 112, 111, 112, 111, 112, 111,
- 112, 111, 112, 111, 112, 111, 112, 111, 112, 111,
- 112, 111, 112, 111, 112, 111, 112, 56, 111, 112,
- 112, 112, 112, 111, 112, 111, 112, 111, 112, 111,
- 112, 111, 112, 111, 112, 111, 112, 111, 112, 111,
- 112, 112, 111, 112, 78, 111, 112, 111, 112, 112,
- 111, 112, 111, 112, 111, 112, 111, 112, 112, 111,
- 112, 111, 112, 111, 112, 111, 112, 112, 111, 112,
- 112, 99, 111, 112, 111, 112, 111, 112, 112, 111,
- 112, 112, 112, 112, 25, 26, 111, 112, 111, 112,
-
- 111, 112, 111, 112, 112, 111, 112, 111, 112, 38,
- 111, 112, 111, 112, 111, 112, 111, 112, 111, 112,
- 111, 112, 111, 112, 111, 112, 111, 112, 111, 112,
- 51, 111, 112, 111, 112, 111, 112, 111, 112, 111,
- 112, 112, 112, 112, 111, 112, 111, 112, 111, 112,
- 111, 112, 111, 112, 111, 112, 111, 112, 111, 112,
- 111, 112, 111, 112, 112, 76, 111, 112, 111, 112,
- 112, 111, 112, 111, 112, 111, 112, 111, 112, 112,
- 111, 112, 111, 112, 92, 111, 112, 93, 111, 112,
- 112, 111, 112, 112, 100, 111, 112, 111, 112, 112,
-
- 112, 112, 112, 112, 111, 112, 111, 112, 111, 112,
- 112, 35, 111, 112, 111, 112, 111, 112, 111, 112,
- 111, 112, 44, 111, 112, 45, 111, 112, 111, 112,
- 111, 112, 48, 111, 112, 111, 112, 111, 112, 53,
- 111, 112, 111, 112, 111, 112, 112, 112, 112, 111,
- 112, 111, 112, 64, 111, 112, 65, 111, 112, 111,
- 112, 111, 112, 68, 111, 112, 111, 112, 111, 112,
- 111, 112, 112, 111, 112, 112, 81, 111, 112, 111,
- 112, 84, 111, 112, 86, 111, 112, 112, 111, 112,
- 111, 112, 112, 111, 112, 112, 111, 112, 103, 112,
-
- 112, 112, 112, 112, 111, 112, 111, 112, 111, 112,
- 112, 111, 112, 111, 112, 111, 112, 111, 112, 111,
- 112, 47, 111, 112, 111, 112, 52, 111, 112, 111,
- 112, 55, 111, 112, 112, 112, 112, 112, 111, 112,
- 63, 111, 112, 66, 111, 112, 67, 111, 112, 111,
- 112, 112, 111, 112, 112, 80, 111, 112, 112, 111,
- 112, 112, 111, 112, 89, 111, 112, 112, 111, 112,
- 112, 111, 112, 112, 112, 112, 112, 111, 112, 111,
- 112, 31, 111, 112, 34, 112, 37, 111, 112, 40,
- 111, 112, 111, 112, 111, 112, 111, 112, 111, 112,
-
- 111, 112, 112, 112, 112, 61, 112, 111, 112, 111,
- 112, 112, 111, 112, 112, 112, 111, 112, 112, 111,
- 112, 94, 112, 111, 112, 112, 101, 111, 112, 112,
- 112, 112, 112, 111, 112, 111, 112, 41, 111, 112,
- 42, 111, 112, 43, 111, 112, 111, 112, 50, 111,
- 112, 111, 112, 112, 112, 112, 62, 111, 112, 111,
- 112, 112, 111, 112, 112, 112, 111, 112, 112, 111,
- 112, 111, 112, 112, 104, 112, 112, 112, 112, 111,
- 112, 30, 111, 112, 46, 111, 112, 111, 112, 112,
- 112, 112, 111, 112, 112, 111, 112, 112, 112, 111,
-
- 112, 112, 111, 112, 111, 112, 112, 112, 112, 112,
- 24, 25, 111, 112, 111, 112, 112, 112, 112, 69,
- 111, 112, 70, 112, 111, 112, 112, 112, 111, 112,
- 112, 88, 111, 112, 111, 112, 112, 112, 112, 112,
- 111, 112, 54, 111, 112, 59, 112, 112, 60, 112,
- 111, 112, 75, 112, 112, 83, 111, 112, 112, 111,
- 112, 96, 112, 112, 112, 106, 112, 111, 112, 112,
- 73, 111, 112, 112, 112, 111, 112, 112, 105, 112,
- 27, 111, 112, 58, 112, 112, 85, 112, 98, 111,
- 112, 102, 112, 77, 112
-
+ 133, 131, 132, 125, 131, 132, 125, 132, 124, 131,
+ 132, 15, 131, 132, 124, 131, 132, 131, 132, 124,
+ 131, 132, 131, 132, 124, 131, 132, 131, 132, 29,
+ 131, 132, 28, 131, 132, 124, 131, 132, 131, 132,
+ 119, 120, 131, 132, 119, 120, 131, 132, 119, 120,
+ 131, 132, 119, 120, 131, 132, 119, 120, 131, 132,
+ 119, 120, 131, 132, 119, 120, 131, 132, 119, 120,
+ 131, 132, 119, 120, 131, 132, 119, 120, 131, 132,
+ 119, 120, 131, 132, 119, 120, 131, 132, 119, 120,
+ 131, 132, 119, 120, 131, 132, 119, 120, 131, 132,
+
+ 119, 120, 131, 132, 119, 120, 131, 132, 119, 120,
+ 131, 132, 119, 120, 131, 132, 124, 131, 132, 130,
+ 131, 132, 118, 131, 132, 124, 130, 131, 132, 5,
+ 131, 132, 2, 132, 2, 131, 132, 4, 131, 132,
+ 7, 9, 131, 132, 7, 132, 9, 131, 132, 9,
+ 131, 132, 17, 131, 132, 17, 132, 18, 131, 132,
+ 12, 131, 132, 12, 132, 14, 131, 132, 14, 131,
+ 132, 10, 131, 132, 11, 131, 132, 21, 23, 131,
+ 132, 23, 131, 132, 24, 132, 21, 22, 23, 131,
+ 132, 21, 22, 23, 131, 132, 127, 131, 132, 128,
+
+ 131, 132, 128, 132, 131, 132, 129, 131, 132, 125,
+ 15, 15, 116, 117, 1, 27, 123, 6, 28, 119,
+ 120, 119, 120, 119, 120, 119, 120, 119, 120, 119,
+ 120, 120, 119, 120, 119, 120, 119, 120, 119, 120,
+ 42, 119, 120, 119, 120, 119, 120, 119, 120, 119,
+ 120, 119, 120, 119, 120, 119, 120, 119, 120, 119,
+ 120, 120, 120, 119, 120, 119, 120, 119, 120, 119,
+ 120, 119, 120, 119, 120, 119, 120, 119, 120, 120,
+ 119, 120, 119, 120, 87, 119, 120, 119, 120, 120,
+ 119, 120, 119, 120, 119, 120, 119, 120, 120, 119,
+
+ 120, 119, 120, 119, 120, 119, 120, 119, 120, 119,
+ 120, 119, 120, 119, 120, 119, 120, 120, 119, 120,
+ 119, 120, 120, 120, 119, 120, 118, 5, 3, 8,
+ 17, 16, 12, 21, 21, 22, 21, 22, 127, 128,
+ 126, 116, 117, 27, 122, 121, 119, 120, 34, 119,
+ 120, 35, 119, 120, 119, 120, 119, 120, 119, 120,
+ 39, 119, 120, 119, 120, 119, 120, 119, 120, 119,
+ 120, 119, 120, 119, 120, 119, 120, 119, 120, 119,
+ 120, 119, 120, 56, 119, 120, 119, 120, 119, 120,
+ 119, 120, 119, 120, 119, 120, 119, 120, 120, 120,
+
+ 119, 120, 119, 120, 119, 120, 119, 120, 119, 120,
+ 119, 120, 119, 120, 79, 119, 120, 80, 119, 120,
+ 119, 120, 120, 119, 120, 119, 120, 119, 120, 120,
+ 119, 120, 90, 119, 120, 119, 120, 119, 120, 119,
+ 120, 120, 119, 120, 119, 120, 119, 120, 98, 119,
+ 120, 119, 120, 119, 120, 119, 120, 119, 120, 119,
+ 120, 119, 120, 119, 120, 120, 119, 120, 119, 120,
+ 119, 120, 120, 120, 120, 119, 120, 30, 13, 21,
+ 22, 20, 21, 22, 26, 25, 119, 120, 119, 120,
+ 119, 120, 119, 120, 119, 120, 119, 120, 119, 120,
+
+ 119, 120, 119, 120, 119, 120, 119, 120, 119, 120,
+ 119, 120, 119, 120, 119, 120, 119, 120, 119, 120,
+ 119, 120, 119, 120, 119, 120, 119, 120, 119, 120,
+ 119, 120, 64, 119, 120, 120, 120, 119, 120, 119,
+ 120, 119, 120, 119, 120, 119, 120, 119, 120, 119,
+ 120, 119, 120, 119, 120, 82, 119, 120, 120, 119,
+ 120, 119, 120, 119, 120, 120, 119, 120, 119, 120,
+ 119, 120, 119, 120, 120, 95, 119, 120, 119, 120,
+ 119, 120, 99, 119, 120, 119, 120, 119, 120, 119,
+ 120, 103, 119, 120, 105, 119, 120, 119, 120, 120,
+
+ 119, 120, 119, 120, 119, 120, 119, 120, 119, 120,
+ 120, 120, 120, 115, 119, 120, 21, 22, 119, 120,
+ 119, 120, 119, 120, 119, 120, 38, 119, 120, 120,
+ 119, 120, 119, 120, 119, 120, 45, 119, 120, 119,
+ 120, 119, 120, 119, 120, 119, 120, 119, 120, 119,
+ 120, 119, 120, 119, 120, 119, 120, 119, 120, 119,
+ 120, 119, 120, 119, 120, 63, 119, 120, 120, 120,
+ 120, 119, 120, 119, 120, 119, 120, 119, 120, 119,
+ 120, 119, 120, 119, 120, 119, 120, 119, 120, 119,
+ 120, 120, 119, 120, 86, 119, 120, 119, 120, 120,
+
+ 119, 120, 119, 120, 119, 120, 119, 120, 120, 119,
+ 120, 119, 120, 119, 120, 119, 120, 120, 119, 120,
+ 120, 107, 119, 120, 119, 120, 119, 120, 120, 119,
+ 120, 120, 120, 120, 31, 21, 22, 32, 119, 120,
+ 119, 120, 119, 120, 119, 120, 120, 119, 120, 119,
+ 120, 44, 119, 120, 119, 120, 119, 120, 119, 120,
+ 119, 120, 119, 120, 119, 120, 119, 120, 119, 120,
+ 119, 120, 119, 120, 58, 119, 120, 119, 120, 119,
+ 120, 119, 120, 119, 120, 120, 120, 120, 119, 120,
+ 119, 120, 119, 120, 119, 120, 119, 120, 119, 120,
+
+ 119, 120, 119, 120, 119, 120, 119, 120, 119, 120,
+ 120, 84, 119, 120, 119, 120, 120, 119, 120, 119,
+ 120, 119, 120, 119, 120, 120, 119, 120, 119, 120,
+ 100, 119, 120, 101, 119, 120, 120, 119, 120, 120,
+ 108, 119, 120, 119, 120, 120, 120, 120, 120, 120,
+ 21, 22, 119, 120, 119, 120, 119, 120, 120, 41,
+ 119, 120, 119, 120, 119, 120, 119, 120, 119, 120,
+ 50, 119, 120, 51, 119, 120, 119, 120, 119, 120,
+ 54, 119, 120, 119, 120, 119, 120, 119, 120, 60,
+ 119, 120, 119, 120, 119, 120, 120, 120, 120, 119,
+
+ 120, 119, 120, 71, 119, 120, 72, 119, 120, 119,
+ 120, 119, 120, 119, 120, 76, 119, 120, 119, 120,
+ 119, 120, 119, 120, 120, 119, 120, 120, 89, 119,
+ 120, 119, 120, 92, 119, 120, 94, 119, 120, 120,
+ 119, 120, 119, 120, 120, 119, 120, 120, 119, 120,
+ 111, 120, 120, 120, 120, 120, 21, 22, 119, 120,
+ 119, 120, 119, 120, 120, 119, 120, 119, 120, 119,
+ 120, 119, 120, 119, 120, 53, 119, 120, 119, 120,
+ 119, 120, 59, 119, 120, 119, 120, 62, 119, 120,
+ 120, 120, 120, 120, 119, 120, 70, 119, 120, 73,
+
+ 119, 120, 74, 119, 120, 119, 120, 119, 120, 120,
+ 119, 120, 120, 88, 119, 120, 120, 119, 120, 120,
+ 119, 120, 97, 119, 120, 120, 119, 120, 120, 119,
+ 120, 120, 120, 120, 120, 21, 22, 119, 120, 119,
+ 120, 37, 119, 120, 40, 120, 43, 119, 120, 46,
+ 119, 120, 119, 120, 119, 120, 119, 120, 119, 120,
+ 119, 120, 119, 120, 120, 120, 120, 68, 120, 119,
+ 120, 119, 120, 119, 120, 120, 119, 120, 120, 120,
+ 119, 120, 120, 119, 120, 102, 120, 119, 120, 120,
+ 109, 119, 120, 120, 120, 120, 120, 21, 119, 120,
+
+ 119, 120, 47, 119, 120, 48, 119, 120, 49, 119,
+ 120, 119, 120, 119, 120, 57, 119, 120, 119, 120,
+ 120, 120, 120, 69, 119, 120, 119, 120, 119, 120,
+ 120, 119, 120, 120, 120, 119, 120, 120, 119, 120,
+ 119, 120, 120, 112, 120, 120, 120, 120, 21, 119,
+ 120, 36, 119, 120, 52, 119, 120, 119, 120, 119,
+ 120, 120, 120, 120, 119, 120, 119, 120, 120, 119,
+ 120, 120, 120, 119, 120, 120, 119, 120, 119, 120,
+ 120, 120, 120, 120, 30, 31, 21, 119, 120, 119,
+ 120, 119, 120, 120, 120, 120, 75, 119, 120, 77,
+
+ 119, 120, 78, 120, 119, 120, 120, 120, 119, 120,
+ 120, 96, 119, 120, 119, 120, 120, 120, 120, 120,
+ 21, 119, 120, 119, 120, 61, 119, 120, 66, 120,
+ 120, 67, 120, 119, 120, 83, 120, 120, 91, 119,
+ 120, 120, 119, 120, 104, 120, 120, 120, 114, 120,
+ 21, 119, 120, 119, 120, 120, 81, 119, 120, 120,
+ 120, 119, 120, 120, 113, 120, 21, 33, 119, 120,
+ 119, 120, 65, 120, 120, 93, 120, 106, 119, 120,
+ 110, 120, 21, 55, 119, 120, 85, 120, 19, 21
} ;
-static yyconst short int yy_accept[676] =
+static yyconst short int yy_accept[722] =
{ 0,
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, 128, 131, 134, 138, 140, 143, 146, 149, 151,
- 154, 157, 159, 162, 165, 168, 171, 174, 177, 179,
- 181, 184, 184, 185, 186, 187, 187, 188, 188, 189,
- 189, 189, 190, 191, 192, 193, 194, 194, 196, 198,
- 200, 202, 204, 206, 207, 209, 211, 213, 215, 218,
-
- 220, 222, 224, 226, 228, 230, 232, 234, 236, 237,
- 238, 240, 242, 244, 246, 248, 250, 252, 254, 255,
- 257, 259, 262, 264, 265, 267, 269, 271, 273, 274,
- 276, 278, 280, 282, 284, 286, 288, 290, 292, 293,
- 295, 297, 298, 299, 301, 301, 301, 301, 301, 301,
- 302, 303, 304, 305, 306, 307, 308, 308, 309, 310,
- 311, 311, 312, 313, 313, 313, 314, 315, 316, 318,
- 321, 324, 326, 328, 330, 333, 335, 337, 339, 341,
- 343, 345, 347, 349, 351, 353, 356, 358, 360, 362,
- 364, 366, 368, 369, 370, 372, 374, 376, 378, 380,
-
- 382, 384, 387, 390, 392, 393, 395, 397, 399, 400,
- 402, 405, 407, 409, 411, 412, 414, 416, 418, 421,
- 423, 425, 427, 429, 431, 433, 435, 436, 438, 440,
- 442, 443, 444, 445, 447, 448, 448, 448, 448, 448,
- 449, 449, 450, 451, 453, 455, 457, 459, 461, 463,
- 465, 467, 469, 471, 473, 475, 477, 479, 481, 483,
- 485, 487, 489, 491, 493, 495, 497, 500, 501, 502,
- 504, 506, 508, 510, 512, 514, 516, 518, 520, 523,
- 524, 526, 528, 530, 531, 533, 535, 537, 539, 540,
- 543, 545, 547, 550, 552, 554, 556, 559, 562, 564,
-
- 565, 567, 569, 571, 573, 575, 576, 577, 578, 581,
- 581, 581, 581, 581, 583, 585, 587, 589, 592, 593,
- 595, 597, 599, 602, 604, 606, 608, 610, 612, 614,
- 616, 618, 620, 622, 624, 626, 628, 631, 632, 633,
- 634, 636, 638, 640, 642, 644, 646, 648, 650, 652,
- 653, 655, 658, 660, 661, 663, 665, 667, 669, 670,
- 672, 674, 676, 678, 679, 681, 682, 685, 687, 689,
- 690, 692, 693, 694, 695, 696, 696, 696, 696, 699,
- 701, 703, 705, 706, 708, 710, 713, 715, 717, 719,
- 721, 723, 725, 727, 729, 731, 734, 736, 738, 740,
-
- 742, 743, 744, 745, 747, 749, 751, 753, 755, 757,
- 759, 761, 763, 765, 766, 769, 771, 772, 774, 776,
- 778, 780, 781, 783, 785, 788, 791, 792, 794, 795,
- 798, 800, 801, 802, 803, 804, 805, 805, 805, 805,
- 807, 809, 811, 812, 815, 817, 819, 821, 823, 826,
- 829, 831, 833, 836, 838, 840, 843, 845, 847, 848,
- 849, 850, 852, 854, 857, 860, 862, 864, 867, 869,
- 871, 873, 874, 876, 877, 880, 882, 885, 888, 889,
- 891, 893, 894, 896, 897, 899, 901, 902, 903, 904,
- 905, 905, 905, 905, 907, 909, 911, 912, 914, 916,
-
- 918, 920, 922, 925, 927, 930, 932, 935, 936, 937,
- 938, 939, 941, 944, 947, 950, 952, 953, 955, 956,
- 959, 960, 962, 963, 965, 968, 969, 971, 972, 974,
- 975, 976, 977, 978, 978, 978, 978, 980, 982, 985,
- 987, 990, 993, 995, 997, 999, 1001, 1003, 1004, 1005,
- 1006, 1008, 1010, 1012, 1013, 1015, 1016, 1017, 1019, 1020,
- 1022, 1024, 1026, 1027, 1030, 1031, 1032, 1033, 1034, 1034,
- 1034, 1034, 1036, 1038, 1041, 1044, 1047, 1049, 1052, 1054,
- 1055, 1056, 1057, 1060, 1062, 1063, 1065, 1066, 1067, 1069,
- 1070, 1072, 1074, 1075, 1077, 1078, 1079, 1080, 1080, 1080,
-
- 1080, 1082, 1085, 1088, 1090, 1091, 1092, 1093, 1095, 1096,
- 1098, 1099, 1100, 1102, 1103, 1105, 1107, 1108, 1109, 1110,
- 1111, 1111, 1113, 1113, 1115, 1117, 1118, 1119, 1120, 1123,
- 1125, 1127, 1128, 1129, 1131, 1132, 1135, 1137, 1138, 1139,
- 1140, 1141, 1141, 1143, 1146, 1148, 1149, 1151, 1153, 1155,
- 1156, 1159, 1160, 1162, 1164, 1165, 1166, 1168, 1168, 1170,
- 1171, 1174, 1175, 1176, 1178, 1179, 1181, 1184, 1186, 1187,
- 1189, 1192, 1194, 1196, 1196
+ 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,
+ 533, 536, 537, 538, 540, 542, 544, 546, 548, 550,
+ 552, 554, 556, 559, 560, 562, 564, 566, 567, 569,
+
+ 571, 573, 575, 576, 579, 581, 583, 586, 588, 590,
+ 592, 595, 598, 600, 601, 603, 605, 607, 609, 611,
+ 612, 613, 614, 617, 617, 617, 617, 617, 619, 621,
+ 623, 625, 627, 630, 631, 633, 635, 637, 640, 642,
+ 644, 646, 648, 650, 652, 654, 656, 658, 660, 662,
+ 664, 666, 669, 670, 671, 672, 674, 676, 678, 680,
+ 682, 684, 686, 688, 690, 692, 693, 695, 698, 700,
+ 701, 703, 705, 707, 709, 710, 712, 714, 716, 718,
+ 719, 721, 722, 725, 727, 729, 730, 732, 733, 734,
+ 735, 736, 736, 736, 736, 738, 741, 743, 745, 747,
+
+ 748, 750, 752, 755, 757, 759, 761, 763, 765, 767,
+ 769, 771, 773, 775, 778, 780, 782, 784, 786, 787,
+ 788, 789, 791, 793, 795, 797, 799, 801, 803, 805,
+ 807, 809, 811, 812, 815, 817, 818, 820, 822, 824,
+ 826, 827, 829, 831, 834, 837, 838, 840, 841, 844,
+ 846, 847, 848, 849, 850, 851, 851, 851, 851, 853,
+ 855, 857, 859, 860, 863, 865, 867, 869, 871, 874,
+ 877, 879, 881, 884, 886, 888, 890, 893, 895, 897,
+ 898, 899, 900, 902, 904, 907, 910, 912, 914, 916,
+ 919, 921, 923, 925, 926, 928, 929, 932, 934, 937,
+
+ 940, 941, 943, 945, 946, 948, 949, 951, 953, 954,
+ 955, 956, 957, 957, 957, 957, 959, 961, 963, 965,
+ 966, 968, 970, 972, 974, 976, 979, 981, 983, 986,
+ 988, 991, 992, 993, 994, 995, 997, 1000, 1003, 1006,
+ 1008, 1010, 1011, 1013, 1014, 1017, 1018, 1020, 1021, 1023,
+ 1026, 1027, 1029, 1030, 1032, 1033, 1034, 1035, 1036, 1036,
+ 1036, 1036, 1038, 1040, 1042, 1045, 1047, 1050, 1053, 1055,
+ 1057, 1059, 1061, 1063, 1065, 1066, 1067, 1068, 1070, 1072,
+ 1074, 1076, 1077, 1079, 1080, 1081, 1083, 1084, 1086, 1088,
+ 1090, 1091, 1094, 1095, 1096, 1097, 1098, 1098, 1098, 1098,
+
+ 1099, 1101, 1103, 1106, 1109, 1112, 1114, 1116, 1119, 1121,
+ 1122, 1123, 1124, 1127, 1129, 1131, 1132, 1134, 1135, 1136,
+ 1138, 1139, 1141, 1143, 1144, 1146, 1147, 1148, 1149, 1149,
+ 1149, 1149, 1150, 1152, 1155, 1158, 1160, 1162, 1163, 1164,
+ 1165, 1167, 1169, 1170, 1172, 1173, 1174, 1176, 1177, 1179,
+ 1181, 1182, 1183, 1184, 1185, 1185, 1187, 1187, 1188, 1190,
+ 1192, 1194, 1195, 1196, 1197, 1200, 1203, 1205, 1207, 1208,
+ 1209, 1211, 1212, 1215, 1217, 1218, 1219, 1220, 1221, 1221,
+ 1222, 1224, 1226, 1229, 1231, 1232, 1234, 1236, 1238, 1239,
+ 1242, 1243, 1245, 1247, 1248, 1249, 1251, 1251, 1252, 1254,
+
+ 1256, 1257, 1260, 1261, 1262, 1264, 1265, 1267, 1268, 1271,
+ 1273, 1275, 1276, 1278, 1281, 1283, 1284, 1287, 1289, 1291,
+ 1291
} ;
static yyconst int yy_ec[256] =
@@ -573,636 +587,683 @@ static yyconst int yy_meta[79] =
11, 11, 11, 11, 11, 12, 1, 12
} ;
-static yyconst short int yy_base[691] =
+static yyconst short int yy_base[740] =
{ 0,
0, 0, 76, 78, 80, 81, 82, 89, 83, 93,
- 96, 106, 844, 833, 116, 119, 822, 821, 177, 126,
- 4166, 127, 816, 123, 4166, 134, 805, 4166, 242, 292,
- 141, 298, 152, 314, 322, 130, 338, 359, 360, 376,
- 382, 397, 410, 437, 440, 462, 463, 495, 0, 0,
- 4166, 4166, 811, 4166, 4166, 807, 807, 0, 0, 809,
- 0, 0, 787, 4166, 4166, 4166, 0, 160, 191, 104,
- 4166, 800, 261, 0, 798, 797, 0, 79, 0, 426,
- 793, 4166, 511, 787, 4166, 527, 771, 512, 513, 528,
- 529, 544, 550, 0, 561, 567, 578, 589, 595, 611,
-
- 617, 628, 641, 644, 664, 661, 672, 685, 727, 737,
- 696, 702, 713, 719, 730, 741, 747, 758, 725, 771,
- 774, 787, 795, 725, 798, 811, 822, 835, 720, 851,
- 857, 868, 874, 885, 900, 901, 916, 917, 716, 932,
- 933, 716, 45, 948, 980, 987, 736, 97, 120, 0,
- 0, 4166, 4166, 0, 4166, 0, 750, 0, 291, 4166,
- 761, 0, 0, 79, 739, 994, 4166, 4166, 990, 1003,
- 1011, 1014, 1027, 1035, 1038, 1051, 1059, 1067, 1075, 1088,
- 1096, 1099, 1120, 1121, 1136, 1142, 1153, 1159, 1170, 1176,
- 1187, 1198, 707, 693, 1211, 1219, 1222, 1237, 1240, 1243,
-
- 1267, 1261, 1264, 1282, 702, 1285, 1300, 1306, 696, 1317,
- 1328, 1334, 1345, 1356, 686, 1367, 1373, 1384, 1390, 1405,
- 1406, 1421, 1432, 1438, 1453, 1459, 692, 1470, 1481, 1492,
- 675, 686, 681, 1503, 4166, 1542, 697, 143, 158, 4166,
- 683, 4166, 4166, 1527, 1528, 1543, 1549, 1564, 1565, 1582,
- 1581, 1597, 1603, 1614, 1625, 1643, 1640, 1646, 1661, 1664,
- 1667, 1682, 1688, 1699, 1710, 1725, 1731, 664, 668, 1742,
- 1748, 1763, 1764, 1779, 1785, 1796, 1809, 1817, 1825, 658,
- 1840, 1843, 1856, 670, 1864, 1880, 1879, 1896, 649, 1897,
- 1912, 1925, 1933, 1936, 1954, 1951, 1957, 1972, 1975, 648,
-
- 1978, 1993, 1999, 2010, 2016, 660, 649, 660, 2031, 2063,
- 283, 280, 305, 2048, 2064, 2072, 2080, 2088, 644, 2096,
- 2104, 2117, 2125, 2128, 2146, 2143, 2149, 2164, 2170, 2185,
- 2186, 2201, 2216, 2222, 2233, 2239, 2254, 653, 641, 627,
- 2255, 2275, 2272, 2293, 2292, 2310, 2309, 2325, 2331, 633,
- 2342, 2353, 2359, 623, 2370, 2381, 2387, 2398, 639, 2411,
- 2414, 2422, 2435, 616, 2446, 625, 2452, 2467, 2468, 613,
- 2483, 607, 604, 610, 4166, 302, 321, 96, 2489, 2504,
- 2507, 2515, 610, 2530, 2536, 2547, 2553, 2564, 2570, 2581,
- 2592, 2598, 2615, 2621, 2637, 2638, 2653, 2654, 2669, 2675,
-
- 605, 607, 599, 2686, 2692, 2707, 2708, 2728, 2729, 2744,
- 2752, 2765, 2773, 604, 2776, 2794, 631, 2791, 2797, 2812,
- 2815, 603, 2823, 2838, 2841, 2844, 590, 2859, 574, 2862,
- 2865, 588, 576, 574, 583, 581, 317, 309, 328, 2880,
- 2883, 2896, 572, 2904, 2917, 2925, 2928, 2941, 2949, 2952,
- 2965, 2976, 2973, 2989, 3000, 3011, 3017, 3028, 54, 589,
- 564, 3034, 3045, 3056, 3062, 3073, 3079, 3094, 3095, 3110,
- 3111, 583, 3126, 566, 3127, 3144, 3147, 3150, 558, 3165,
- 3171, 554, 3186, 576, 3192, 0, 555, 559, 536, 566,
- 347, 226, 339, 3203, 3209, 3224, 548, 3230, 3241, 3254,
-
- 3262, 3265, 3280, 3283, 3291, 3304, 3307, 531, 525, 525,
- 531, 3322, 3328, 3339, 3345, 3356, 516, 3367, 512, 3373,
- 511, 3384, 521, 3395, 3401, 517, 3412, 504, 3418, 506,
- 507, 520, 466, 325, 465, 348, 3429, 3440, 3451, 0,
- 3457, 3468, 3479, 3490, 3496, 3511, 3512, 467, 476, 464,
- 0, 3527, 3528, 470, 3544, 450, 462, 3545, 474, 3560,
- 0, 3566, 447, 3577, 444, 454, 423, 424, 361, 3616,
- 353, 3601, 3602, 3617, 3618, 3633, 3634, 3649, 3650, 430,
- 434, 428, 3665, 3673, 421, 3681, 421, 412, 3689, 403,
- 3697, 3705, 410, 0, 400, 401, 403, 189, 3737, 519,
-
- 3722, 3723, 3738, 3746, 398, 417, 394, 3759, 398, 3767,
- 391, 391, 3770, 383, 3783, 3794, 383, 378, 383, 378,
- 371, 4166, 3833, 3818, 3819, 378, 363, 359, 3834, 0,
- 3840, 357, 347, 3851, 351, 3857, 3868, 330, 315, 305,
- 295, 558, 3884, 3881, 0, 282, 0, 3892, 0, 262,
- 3907, 256, 3910, 0, 188, 141, 0, 3954, 3939, 138,
- 3940, 120, 105, 3955, 95, 0, 3956, 0, 37, 0,
- 3972, 0, 0, 4166, 4017, 4029, 4041, 4053, 4065, 4077,
- 4088, 4089, 4093, 4104, 4116, 4128, 4139, 4144, 4149, 4154
+ 171, 249, 109, 120, 961, 952, 95, 98, 951, 948,
+ 320, 117, 4484, 118, 933, 100, 4484, 125, 923, 4484,
+ 385, 176, 194, 120, 239, 267, 435, 163, 293, 441,
+ 191, 259, 463, 471, 484, 500, 508, 270, 521, 553,
+ 935, 0, 933, 0, 4484, 4484, 926, 4484, 4484, 922,
+ 922, 0, 0, 924, 0, 0, 902, 4484, 4484, 4484,
+ 0, 4484, 4484, 598, 675, 0, 148, 151, 182, 4484,
+ 915, 160, 0, 913, 912, 0, 135, 0, 573, 908,
+ 4484, 226, 902, 4484, 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,
+ 4484, 4484, 0, 4484, 0, 865, 0, 849, 253, 0,
+ 264, 4484, 875, 0, 0, 83, 848, 611, 4484, 4484,
+ 1099, 1100, 1115, 1123, 1126, 1141, 1144, 1147, 1162, 1168,
+ 1179, 1185, 1196, 1207, 1223, 1229, 1240, 1246, 1257, 1263,
+
+ 1274, 1280, 1291, 1302, 818, 807, 1315, 1323, 1326, 1341,
+ 1344, 1347, 1371, 1365, 1368, 1386, 815, 1389, 1404, 1410,
+ 811, 1421, 1432, 1438, 1449, 1460, 802, 1471, 1477, 1488,
+ 1494, 1509, 1510, 1525, 1536, 1542, 1557, 1563, 809, 1574,
+ 1585, 1596, 793, 807, 801, 1607, 4484, 1646, 822, 178,
+ 250, 4484, 109, 820, 802, 4484, 4484, 1631, 1632, 1647,
+ 1653, 1668, 1669, 1686, 1685, 1701, 1707, 1718, 1729, 1747,
+ 1744, 1750, 1765, 1768, 1771, 1786, 1792, 1803, 1814, 1829,
+ 1835, 783, 789, 1846, 1852, 1867, 1868, 1883, 1889, 1904,
+ 1907, 1915, 1928, 774, 1936, 1939, 1952, 786, 1960, 1976,
+
+ 1975, 1992, 770, 1993, 2008, 2021, 2029, 2032, 2050, 2047,
+ 2053, 2068, 2071, 768, 2074, 2089, 2095, 2106, 2112, 778,
+ 768, 775, 2127, 2159, 170, 151, 242, 200, 2144, 2160,
+ 2168, 2176, 2184, 759, 2192, 2200, 2213, 2221, 2224, 2242,
+ 2239, 2245, 2260, 2266, 2281, 2282, 2297, 2312, 2318, 2329,
+ 2335, 2350, 773, 763, 755, 2351, 2371, 2368, 2389, 2388,
+ 2404, 2410, 2421, 2432, 2443, 759, 2449, 2460, 2466, 738,
+ 2477, 2488, 2494, 2505, 753, 2518, 2521, 2529, 2542, 737,
+ 2553, 745, 2559, 2574, 2575, 731, 2590, 725, 721, 727,
+ 4484, 280, 297, 294, 231, 2596, 2611, 2614, 2622, 728,
+
+ 2637, 2643, 2654, 2660, 2671, 2677, 2688, 2699, 2705, 2722,
+ 2728, 2739, 2745, 2756, 2762, 2773, 2779, 2795, 724, 731,
+ 723, 2796, 2811, 2817, 2828, 2834, 2849, 2855, 2866, 2881,
+ 2887, 2898, 720, 2909, 2915, 747, 2926, 2932, 2943, 2956,
+ 716, 2964, 2979, 2982, 2985, 707, 3000, 689, 3003, 3006,
+ 704, 692, 687, 697, 693, 271, 295, 301, 712, 3021,
+ 3024, 3037, 682, 3045, 3058, 3066, 3069, 3082, 3090, 3093,
+ 3106, 3117, 3114, 3130, 3138, 3141, 3154, 3162, 3165, 124,
+ 704, 677, 3178, 3186, 3189, 3202, 3210, 3223, 3231, 3234,
+ 3251, 3254, 3257, 698, 3272, 681, 3275, 3288, 3296, 3304,
+
+ 673, 3317, 3325, 658, 3338, 680, 3346, 0, 660, 667,
+ 643, 672, 438, 368, 366, 286, 3349, 3362, 3370, 654,
+ 3378, 3386, 3399, 3407, 3410, 3425, 3431, 3446, 3428, 3452,
+ 3463, 639, 633, 630, 634, 3469, 3480, 3486, 3497, 3503,
+ 3514, 623, 3525, 620, 3531, 619, 3542, 619, 3553, 3559,
+ 613, 3570, 600, 3576, 603, 604, 623, 594, 300, 466,
+ 447, 360, 3587, 3598, 3609, 0, 3615, 3626, 3637, 3648,
+ 3654, 3669, 3672, 3675, 593, 603, 584, 0, 3690, 3698,
+ 3713, 590, 3714, 579, 591, 3729, 603, 3737, 0, 3745,
+ 572, 3758, 579, 589, 531, 528, 443, 3797, 454, 568,
+
+ 3782, 3783, 3798, 3799, 3814, 3815, 3830, 3836, 3847, 529,
+ 533, 527, 3853, 3864, 3875, 520, 3881, 523, 515, 3892,
+ 512, 3898, 3909, 518, 0, 508, 496, 498, 397, 3941,
+ 560, 517, 3926, 3927, 3942, 3943, 3958, 489, 507, 484,
+ 3969, 3975, 483, 3990, 475, 477, 3993, 468, 3996, 4013,
+ 469, 462, 468, 461, 424, 4484, 4052, 485, 4037, 4048,
+ 4059, 461, 456, 455, 4065, 4076, 0, 4087, 454, 444,
+ 4098, 440, 4104, 4115, 438, 434, 429, 432, 732, 441,
+ 4131, 4128, 4139, 0, 419, 0, 4152, 0, 411, 4155,
+ 399, 4170, 0, 372, 347, 0, 4209, 330, 4194, 4205,
+
+ 258, 4211, 227, 214, 4222, 177, 0, 180, 4233, 4239,
+ 0, 138, 0, 4250, 0, 134, 4256, 0, 0, 4484,
+ 4301, 4313, 4325, 4337, 4349, 4361, 4373, 4384, 4385, 4389,
+ 4400, 4412, 4424, 4435, 4446, 4457, 4462, 4467, 4472
} ;
-static yyconst short int yy_def[691] =
+static yyconst short int yy_def[740] =
{ 0,
- 674, 1, 675, 675, 676, 676, 677, 677, 678, 678,
- 679, 679, 674, 674, 674, 674, 674, 680, 674, 681,
- 674, 674, 674, 674, 674, 674, 674, 674, 674, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 682, 683, 684,
- 674, 674, 674, 674, 674, 674, 674, 685, 685, 674,
- 686, 686, 674, 674, 674, 674, 687, 674, 674, 19,
- 674, 674, 674, 680, 680, 674, 688, 674, 689, 681,
- 681, 674, 674, 674, 674, 674, 674, 29, 29, 29,
- 29, 29, 29, 690, 29, 29, 29, 29, 29, 29,
-
- 29, 29, 29, 29, 29, 29, 29, 29, 690, 690,
- 29, 29, 29, 29, 29, 29, 29, 29, 690, 29,
- 29, 29, 29, 690, 29, 29, 29, 29, 690, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 690, 29,
- 29, 690, 690, 29, 674, 682, 146, 146, 146, 683,
- 684, 674, 674, 685, 674, 686, 674, 687, 674, 674,
- 674, 688, 689, 674, 674, 674, 674, 674, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 690, 690, 29, 29, 29, 29, 29, 29,
-
- 29, 29, 29, 29, 690, 29, 29, 29, 690, 29,
- 29, 29, 29, 29, 690, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 690, 29, 29, 29,
- 690, 690, 690, 29, 674, 674, 146, 146, 146, 674,
- 674, 674, 674, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 690, 690, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 690,
- 29, 29, 29, 690, 29, 29, 29, 29, 690, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 690,
-
- 29, 29, 29, 29, 29, 690, 690, 690, 29, 674,
- 146, 146, 146, 29, 29, 29, 29, 29, 690, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 690, 690, 690,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 690,
- 29, 29, 29, 690, 29, 29, 29, 29, 690, 29,
- 29, 29, 29, 690, 29, 690, 29, 29, 29, 690,
- 29, 690, 690, 690, 674, 146, 146, 146, 29, 29,
- 29, 29, 690, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
-
- 690, 690, 690, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 690, 29, 29, 690, 29, 29, 29,
- 29, 690, 29, 29, 29, 29, 690, 29, 690, 29,
- 29, 690, 690, 690, 690, 690, 146, 146, 146, 29,
- 29, 29, 690, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 690, 690,
- 690, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 690, 29, 690, 29, 29, 29, 29, 690, 29,
- 29, 690, 29, 690, 29, 690, 690, 690, 690, 690,
- 146, 146, 146, 29, 29, 29, 690, 29, 29, 29,
-
- 29, 29, 29, 29, 29, 29, 29, 690, 690, 690,
- 690, 29, 29, 29, 29, 29, 690, 29, 690, 29,
- 690, 29, 690, 29, 29, 690, 29, 690, 29, 690,
- 690, 690, 690, 146, 146, 146, 29, 29, 29, 690,
- 29, 29, 29, 29, 29, 29, 29, 690, 690, 690,
- 690, 29, 29, 690, 29, 690, 690, 29, 690, 29,
- 690, 29, 690, 29, 690, 690, 690, 690, 146, 674,
- 146, 29, 29, 29, 29, 29, 29, 29, 29, 690,
- 690, 690, 29, 29, 690, 29, 690, 690, 29, 690,
- 29, 29, 690, 690, 690, 690, 690, 146, 674, 146,
-
- 29, 29, 29, 29, 690, 690, 690, 29, 690, 29,
- 690, 690, 29, 690, 29, 29, 690, 690, 690, 690,
- 146, 674, 674, 29, 29, 690, 690, 690, 29, 690,
- 29, 690, 690, 29, 690, 29, 29, 690, 690, 690,
- 690, 146, 29, 29, 690, 690, 690, 29, 690, 690,
- 29, 690, 29, 690, 690, 690, 690, 674, 29, 690,
- 29, 690, 690, 29, 690, 690, 29, 690, 690, 690,
- 29, 690, 690, 0, 674, 674, 674, 674, 674, 674,
- 674, 674, 674, 674, 674, 674, 674, 674, 674, 674
+ 720, 1, 721, 721, 722, 722, 723, 723, 724, 724,
+ 725, 725, 726, 726, 720, 720, 720, 720, 720, 727,
+ 720, 728, 720, 720, 720, 720, 720, 720, 720, 720,
+ 720, 31, 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31, 31, 729,
+ 720, 730, 720, 731, 720, 720, 720, 720, 720, 720,
+ 720, 732, 732, 720, 733, 733, 720, 720, 720, 720,
+ 734, 720, 720, 735, 735, 736, 720, 720, 21, 720,
+ 720, 720, 727, 727, 720, 737, 720, 738, 728, 728,
+ 720, 720, 720, 720, 720, 720, 31, 31, 31, 31,
+
+ 31, 31, 739, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 739, 739, 31,
+ 31, 31, 31, 31, 31, 31, 31, 739, 31, 31,
+ 31, 31, 739, 31, 31, 31, 31, 739, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 739, 31, 31,
+ 739, 739, 31, 720, 729, 155, 155, 155, 730, 731,
+ 720, 720, 732, 720, 733, 720, 734, 75, 75, 736,
+ 720, 720, 720, 737, 738, 720, 720, 720, 720, 720,
+ 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
+
+ 31, 31, 31, 31, 739, 739, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 739, 31, 31, 31,
+ 739, 31, 31, 31, 31, 31, 739, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31, 739, 31,
+ 31, 31, 739, 739, 739, 31, 720, 720, 155, 155,
+ 155, 720, 75, 75, 720, 720, 720, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 739, 739, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 739, 31, 31, 31, 739, 31, 31,
+
+ 31, 31, 739, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 739, 31, 31, 31, 31, 31, 739,
+ 739, 739, 31, 720, 155, 155, 155, 75, 31, 31,
+ 31, 31, 31, 739, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 739, 739, 739, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 739, 31, 31, 31, 739,
+ 31, 31, 31, 31, 739, 31, 31, 31, 31, 739,
+ 31, 739, 31, 31, 31, 739, 31, 739, 739, 739,
+ 720, 155, 155, 155, 75, 31, 31, 31, 31, 739,
+
+ 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31, 739, 739,
+ 739, 31, 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 739, 31, 31, 739, 31, 31, 31, 31,
+ 739, 31, 31, 31, 31, 739, 31, 739, 31, 31,
+ 739, 739, 739, 739, 739, 155, 155, 155, 75, 31,
+ 31, 31, 739, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31, 31, 739,
+ 739, 739, 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 739, 31, 739, 31, 31, 31, 31,
+
+ 739, 31, 31, 739, 31, 739, 31, 739, 739, 739,
+ 739, 739, 155, 155, 155, 75, 31, 31, 31, 739,
+ 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 739, 739, 739, 739, 31, 31, 31, 31, 31,
+ 31, 739, 31, 739, 31, 739, 31, 739, 31, 31,
+ 739, 31, 739, 31, 739, 739, 739, 739, 155, 155,
+ 155, 75, 31, 31, 31, 739, 31, 31, 31, 31,
+ 31, 31, 31, 31, 739, 739, 739, 739, 31, 31,
+ 31, 739, 31, 739, 739, 31, 739, 31, 739, 31,
+ 739, 31, 739, 739, 739, 739, 155, 720, 155, 734,
+
+ 31, 31, 31, 31, 31, 31, 31, 31, 31, 739,
+ 739, 739, 31, 31, 31, 739, 31, 739, 739, 31,
+ 739, 31, 31, 739, 739, 739, 739, 739, 155, 720,
+ 155, 734, 31, 31, 31, 31, 31, 739, 739, 739,
+ 31, 31, 739, 31, 739, 739, 31, 739, 31, 31,
+ 739, 739, 739, 739, 155, 720, 720, 734, 31, 31,
+ 31, 739, 739, 739, 31, 31, 739, 31, 739, 739,
+ 31, 739, 31, 31, 739, 739, 739, 739, 155, 734,
+ 31, 31, 31, 739, 739, 739, 31, 739, 739, 31,
+ 739, 31, 739, 739, 739, 739, 720, 734, 31, 31,
+
+ 739, 31, 739, 739, 31, 739, 739, 734, 31, 31,
+ 739, 739, 739, 31, 739, 734, 31, 739, 734, 0,
+ 720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
+ 720, 720, 720, 720, 720, 720, 720, 720, 720
} ;
-static yyconst short int yy_nxt[4245] =
+static yyconst short int yy_nxt[4563] =
{ 0,
- 14, 15, 16, 15, 17, 18, 19, 20, 21, 14,
- 22, 23, 24, 25, 26, 26, 26, 26, 26, 26,
- 27, 17, 28, 28, 29, 30, 31, 32, 33, 34,
- 35, 36, 37, 36, 36, 36, 38, 39, 40, 41,
- 36, 42, 43, 44, 45, 46, 47, 36, 36, 36,
- 48, 17, 14, 49, 49, 49, 49, 49, 49, 49,
- 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
- 49, 49, 49, 49, 49, 21, 17, 21, 51, 52,
- 51, 52, 55, 55, 59, 62, 53, 60, 53, 56,
- 56, 59, 57, 57, 60, 62, 508, 68, 69, 68,
-
- 76, 232, 70, 63, 242, 673, 64, 68, 69, 68,
- 243, 674, 70, 63, 233, 509, 64, 73, 73, 73,
- 73, 73, 73, 72, 439, 674, 72, 80, 80, 80,
- 72, 78, 85, 72, 72, 147, 147, 82, 238, 80,
- 80, 83, 83, 83, 83, 83, 83, 86, 86, 86,
- 86, 86, 86, 86, 672, 88, 674, 239, 65, 147,
- 66, 159, 159, 159, 670, 88, 88, 88, 65, 88,
- 66, 28, 100, 71, 88, 312, 101, 88, 88, 102,
- 88, 28, 147, 71, 72, 88, 669, 88, 104, 105,
- 313, 88, 159, 159, 159, 668, 88, 147, 76, 106,
-
- 666, 77, 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 621, 147, 78,
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
- 79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
- 79, 79, 88, 665, 535, 88, 88, 88, 88, 88,
- 88, 88, 73, 73, 73, 147, 88, 89, 88, 88,
- 88, 88, 88, 88, 88, 88, 88, 90, 88, 91,
- 88, 92, 88, 88, 88, 88, 93, 88, 88, 88,
- 88, 88, 159, 159, 159, 94, 94, 94, 94, 94,
-
- 94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
- 94, 94, 94, 94, 94, 94, 94, 88, 376, 147,
- 95, 663, 147, 88, 96, 377, 103, 88, 97, 88,
- 98, 88, 662, 88, 437, 88, 88, 88, 107, 88,
- 99, 147, 88, 491, 147, 438, 660, 88, 147, 88,
- 378, 88, 492, 88, 657, 108, 147, 88, 88, 88,
- 147, 88, 111, 88, 147, 112, 88, 147, 569, 493,
- 656, 534, 571, 88, 113, 114, 655, 88, 147, 109,
- 115, 536, 88, 116, 88, 88, 147, 147, 600, 654,
- 110, 117, 147, 598, 88, 88, 88, 88, 88, 88,
-
- 147, 120, 121, 88, 118, 122, 125, 88, 642, 126,
- 147, 88, 652, 88, 650, 123, 649, 127, 647, 88,
- 88, 88, 88, 128, 646, 130, 88, 80, 80, 80,
- 124, 119, 88, 164, 88, 88, 88, 645, 131, 80,
- 80, 88, 132, 641, 640, 88, 639, 88, 638, 88,
- 129, 635, 633, 133, 88, 135, 632, 630, 134, 628,
- 627, 136, 88, 626, 620, 88, 570, 570, 570, 619,
- 618, 617, 88, 614, 88, 88, 88, 140, 137, 88,
- 612, 88, 611, 141, 88, 138, 609, 88, 88, 607,
- 606, 605, 597, 596, 139, 144, 595, 88, 88, 88,
-
- 88, 88, 88, 594, 147, 142, 88, 88, 145, 145,
- 145, 145, 145, 145, 145, 593, 590, 588, 587, 146,
- 623, 623, 623, 143, 166, 166, 166, 166, 166, 166,
- 166, 585, 582, 581, 148, 580, 568, 88, 88, 149,
- 86, 86, 86, 86, 86, 86, 86, 88, 88, 88,
- 88, 88, 88, 88, 88, 169, 88, 88, 147, 658,
- 658, 658, 567, 170, 88, 88, 88, 88, 88, 88,
- 566, 565, 88, 88, 563, 88, 561, 171, 559, 88,
- 557, 88, 556, 172, 554, 88, 88, 88, 88, 88,
- 551, 174, 88, 173, 88, 550, 88, 147, 88, 549,
-
- 88, 548, 88, 88, 88, 88, 88, 540, 533, 532,
- 175, 88, 531, 88, 88, 88, 530, 176, 528, 526,
- 88, 523, 88, 521, 88, 519, 88, 177, 88, 511,
- 88, 510, 88, 88, 88, 178, 88, 497, 490, 88,
- 489, 180, 88, 488, 487, 486, 88, 484, 88, 179,
- 88, 482, 88, 88, 88, 88, 88, 479, 474, 472,
- 461, 88, 460, 88, 181, 182, 88, 88, 459, 184,
- 183, 443, 88, 436, 435, 434, 88, 432, 88, 88,
- 88, 88, 429, 88, 427, 88, 88, 188, 88, 88,
- 185, 186, 422, 417, 414, 403, 88, 88, 88, 88,
-
- 189, 88, 402, 88, 190, 88, 401, 191, 187, 88,
- 88, 88, 383, 195, 374, 373, 88, 372, 366, 359,
- 88, 88, 88, 192, 88, 354, 350, 88, 339, 88,
- 196, 88, 338, 88, 160, 88, 311, 88, 88, 88,
- 88, 88, 308, 307, 88, 198, 88, 306, 88, 300,
- 88, 289, 197, 284, 88, 88, 88, 88, 88, 280,
- 269, 199, 200, 88, 268, 88, 88, 88, 201, 88,
- 243, 241, 88, 240, 88, 147, 88, 231, 88, 227,
- 88, 215, 88, 88, 203, 88, 88, 209, 202, 205,
- 194, 88, 193, 204, 168, 88, 88, 88, 167, 88,
-
- 165, 161, 88, 160, 206, 160, 88, 157, 88, 88,
- 88, 88, 88, 88, 155, 88, 85, 207, 88, 153,
- 88, 152, 88, 88, 88, 87, 88, 84, 75, 72,
- 88, 88, 88, 88, 88, 88, 88, 88, 208, 88,
- 72, 210, 88, 674, 674, 674, 88, 88, 88, 674,
- 88, 674, 674, 674, 674, 88, 211, 88, 674, 88,
- 88, 88, 674, 213, 674, 674, 212, 214, 674, 674,
- 88, 674, 88, 674, 88, 216, 88, 674, 674, 88,
- 674, 674, 88, 674, 674, 674, 217, 674, 88, 674,
- 88, 674, 88, 88, 88, 88, 88, 218, 674, 88,
-
- 219, 88, 674, 88, 674, 88, 674, 88, 674, 88,
- 88, 88, 88, 88, 223, 221, 674, 220, 88, 674,
- 88, 674, 222, 674, 88, 88, 88, 674, 674, 88,
- 674, 224, 674, 674, 674, 88, 88, 88, 88, 88,
- 88, 88, 88, 674, 88, 88, 674, 674, 674, 674,
- 674, 88, 88, 88, 88, 88, 226, 88, 88, 229,
- 225, 88, 230, 674, 228, 674, 674, 88, 88, 88,
- 88, 88, 88, 88, 674, 674, 88, 88, 674, 674,
- 674, 674, 674, 88, 674, 88, 674, 88, 236, 236,
- 236, 234, 88, 145, 145, 145, 145, 145, 145, 145,
-
- 674, 674, 674, 674, 674, 674, 674, 166, 166, 166,
- 166, 166, 166, 166, 674, 88, 674, 674, 244, 674,
- 674, 674, 674, 674, 674, 88, 237, 88, 88, 88,
- 674, 235, 674, 245, 88, 674, 88, 674, 88, 88,
- 88, 674, 88, 674, 674, 674, 88, 88, 88, 246,
- 88, 88, 88, 88, 674, 88, 674, 674, 88, 674,
- 88, 674, 88, 88, 88, 247, 88, 248, 674, 674,
- 88, 88, 88, 88, 88, 88, 88, 88, 674, 88,
- 674, 674, 88, 674, 88, 674, 88, 674, 88, 674,
- 88, 674, 88, 249, 250, 88, 88, 674, 88, 674,
-
- 88, 674, 88, 88, 88, 674, 88, 252, 251, 674,
- 88, 88, 88, 88, 88, 674, 674, 674, 674, 88,
- 674, 88, 674, 88, 88, 88, 674, 88, 674, 674,
- 253, 88, 88, 88, 88, 254, 88, 674, 88, 674,
- 88, 255, 256, 88, 257, 88, 88, 674, 674, 259,
- 674, 674, 258, 674, 674, 88, 88, 88, 88, 88,
- 88, 88, 674, 674, 88, 88, 674, 88, 674, 674,
- 674, 88, 674, 88, 260, 88, 674, 88, 88, 88,
- 88, 88, 674, 674, 88, 674, 88, 262, 88, 261,
- 88, 674, 88, 674, 88, 88, 88, 88, 88, 674,
-
- 674, 88, 674, 88, 265, 263, 674, 88, 264, 88,
- 674, 88, 88, 88, 88, 88, 674, 674, 674, 674,
- 88, 674, 88, 88, 88, 674, 88, 674, 674, 266,
- 674, 88, 674, 88, 267, 88, 88, 88, 674, 674,
- 674, 674, 88, 674, 88, 674, 88, 88, 88, 674,
- 88, 674, 674, 270, 88, 88, 271, 272, 88, 88,
- 273, 88, 88, 88, 674, 88, 88, 674, 88, 674,
- 674, 276, 274, 674, 88, 88, 88, 88, 88, 88,
- 88, 88, 88, 275, 88, 277, 88, 88, 674, 88,
- 674, 674, 88, 674, 674, 674, 88, 674, 88, 88,
-
- 88, 88, 88, 88, 88, 88, 88, 88, 278, 674,
- 88, 88, 674, 281, 674, 674, 674, 279, 674, 88,
- 88, 88, 88, 674, 88, 88, 88, 674, 282, 88,
- 674, 88, 674, 674, 674, 88, 674, 88, 283, 88,
- 674, 88, 88, 88, 88, 88, 674, 674, 674, 674,
- 88, 674, 88, 88, 88, 674, 88, 674, 674, 88,
- 285, 88, 674, 88, 674, 88, 674, 88, 674, 88,
- 88, 88, 88, 88, 674, 674, 286, 674, 88, 674,
- 88, 88, 88, 674, 88, 674, 674, 287, 674, 88,
- 674, 88, 88, 88, 674, 88, 674, 291, 88, 674,
-
- 88, 288, 290, 674, 88, 674, 88, 674, 88, 88,
- 88, 88, 88, 674, 674, 88, 674, 88, 674, 88,
- 674, 88, 674, 88, 674, 88, 674, 88, 292, 88,
- 88, 88, 674, 293, 88, 674, 674, 674, 294, 674,
- 88, 88, 88, 88, 88, 88, 88, 674, 674, 88,
- 88, 674, 674, 674, 674, 674, 88, 88, 88, 674,
- 88, 674, 674, 88, 295, 88, 674, 88, 674, 88,
- 674, 88, 674, 88, 296, 88, 88, 88, 88, 674,
- 297, 298, 88, 674, 88, 674, 674, 299, 88, 674,
- 88, 674, 88, 674, 88, 88, 88, 88, 88, 674,
-
- 674, 674, 674, 88, 674, 88, 88, 88, 301, 88,
- 302, 305, 674, 674, 88, 303, 88, 88, 88, 674,
- 88, 674, 674, 674, 304, 88, 674, 88, 88, 88,
- 674, 88, 674, 674, 309, 674, 88, 674, 88, 674,
- 88, 674, 88, 236, 236, 236, 674, 88, 674, 674,
- 674, 674, 88, 88, 674, 310, 310, 310, 310, 310,
- 310, 310, 88, 88, 314, 88, 88, 88, 88, 315,
- 674, 88, 88, 674, 88, 316, 674, 674, 88, 674,
- 88, 674, 88, 674, 88, 317, 88, 88, 88, 88,
- 88, 674, 674, 88, 674, 674, 674, 674, 674, 88,
-
- 88, 318, 88, 88, 88, 321, 88, 88, 88, 88,
- 320, 674, 674, 674, 674, 674, 88, 88, 88, 88,
- 88, 88, 88, 322, 674, 88, 88, 674, 88, 674,
- 674, 674, 88, 674, 88, 319, 88, 674, 88, 88,
- 88, 88, 88, 674, 674, 323, 674, 88, 674, 88,
- 88, 88, 324, 88, 674, 674, 674, 674, 88, 674,
- 88, 674, 88, 674, 88, 88, 325, 326, 88, 88,
- 674, 88, 674, 674, 674, 88, 674, 88, 88, 88,
- 88, 88, 88, 328, 327, 88, 88, 88, 329, 88,
- 88, 330, 88, 674, 674, 331, 88, 674, 88, 88,
-
- 88, 88, 88, 88, 88, 88, 88, 88, 88, 674,
- 674, 88, 674, 88, 674, 674, 674, 88, 674, 88,
- 333, 332, 674, 88, 88, 88, 88, 88, 674, 674,
- 674, 674, 88, 674, 88, 88, 88, 674, 88, 674,
- 334, 674, 674, 88, 674, 88, 674, 335, 674, 88,
- 88, 336, 674, 337, 88, 674, 88, 674, 674, 674,
- 88, 674, 88, 674, 88, 674, 88, 88, 88, 88,
- 88, 674, 674, 88, 674, 88, 674, 88, 674, 88,
- 674, 88, 674, 88, 674, 88, 88, 88, 88, 88,
- 674, 341, 88, 674, 674, 342, 674, 674, 88, 88,
-
- 88, 88, 88, 88, 88, 343, 674, 88, 88, 345,
- 88, 674, 340, 674, 88, 674, 88, 674, 88, 674,
- 88, 88, 88, 344, 88, 348, 346, 674, 674, 88,
- 674, 88, 674, 88, 88, 88, 674, 347, 674, 674,
- 88, 674, 88, 674, 88, 674, 88, 674, 88, 674,
- 88, 674, 88, 88, 88, 674, 88, 674, 674, 349,
- 88, 88, 88, 674, 88, 88, 351, 674, 88, 88,
- 674, 674, 674, 674, 674, 88, 674, 88, 88, 88,
- 88, 88, 88, 674, 88, 674, 352, 88, 674, 88,
- 356, 88, 355, 88, 353, 88, 674, 674, 674, 88,
-
- 88, 88, 674, 88, 88, 88, 674, 357, 88, 674,
- 674, 674, 674, 674, 88, 88, 88, 88, 88, 88,
- 358, 88, 88, 88, 88, 674, 674, 674, 674, 674,
- 674, 88, 88, 88, 88, 88, 88, 88, 674, 674,
- 88, 88, 674, 674, 674, 674, 674, 88, 674, 88,
- 88, 88, 674, 361, 674, 360, 88, 674, 88, 674,
- 88, 88, 88, 674, 88, 674, 674, 674, 88, 88,
- 88, 88, 88, 362, 674, 88, 88, 88, 363, 88,
- 88, 674, 88, 674, 674, 365, 88, 674, 88, 88,
- 88, 88, 88, 88, 88, 88, 88, 88, 88, 674,
-
- 88, 88, 674, 88, 674, 674, 674, 88, 674, 88,
- 88, 88, 88, 88, 88, 367, 88, 88, 88, 88,
- 674, 364, 88, 674, 88, 674, 674, 369, 88, 674,
- 88, 674, 88, 674, 88, 88, 88, 368, 88, 674,
- 674, 88, 674, 88, 674, 88, 674, 88, 674, 88,
- 674, 88, 674, 88, 88, 88, 88, 674, 371, 674,
- 88, 674, 674, 674, 674, 674, 88, 674, 88, 674,
- 88, 370, 674, 88, 674, 88, 310, 310, 310, 310,
- 310, 310, 310, 88, 674, 88, 674, 88, 380, 88,
- 674, 379, 88, 674, 674, 674, 674, 88, 381, 88,
-
- 674, 88, 674, 88, 382, 88, 674, 88, 88, 88,
- 674, 88, 674, 88, 375, 88, 88, 88, 674, 88,
- 384, 88, 674, 88, 88, 88, 674, 88, 674, 88,
- 385, 88, 88, 88, 674, 88, 674, 674, 674, 88,
- 88, 88, 88, 88, 674, 386, 674, 674, 88, 674,
- 88, 674, 88, 88, 88, 674, 88, 674, 674, 674,
- 88, 88, 88, 88, 88, 387, 674, 88, 88, 88,
- 388, 88, 88, 674, 88, 389, 674, 674, 88, 674,
- 88, 88, 88, 88, 390, 88, 88, 88, 88, 88,
- 88, 674, 391, 88, 674, 88, 392, 393, 674, 88,
-
- 674, 88, 674, 88, 674, 88, 674, 88, 88, 88,
- 88, 88, 674, 394, 88, 674, 674, 674, 674, 674,
- 88, 88, 88, 88, 88, 88, 88, 395, 674, 88,
- 88, 674, 674, 674, 674, 674, 88, 674, 88, 674,
- 88, 88, 397, 674, 396, 88, 674, 88, 674, 674,
- 674, 88, 674, 88, 674, 88, 674, 88, 88, 88,
- 88, 88, 674, 674, 88, 398, 88, 674, 88, 674,
- 88, 674, 88, 674, 88, 399, 400, 88, 88, 88,
- 88, 674, 674, 88, 674, 674, 674, 404, 674, 88,
- 88, 88, 88, 88, 88, 674, 674, 88, 88, 88,
-
- 88, 405, 674, 406, 674, 674, 674, 88, 674, 88,
- 88, 88, 88, 674, 88, 407, 88, 88, 88, 88,
- 408, 674, 674, 674, 674, 674, 674, 88, 88, 409,
- 88, 88, 88, 674, 88, 88, 88, 88, 410, 674,
- 674, 413, 674, 412, 88, 88, 88, 88, 88, 88,
- 88, 411, 674, 88, 88, 674, 88, 674, 674, 674,
- 88, 674, 88, 674, 88, 674, 88, 88, 88, 88,
- 88, 674, 674, 674, 674, 88, 674, 88, 88, 88,
- 674, 88, 674, 674, 88, 415, 88, 674, 88, 674,
- 88, 674, 88, 674, 88, 88, 416, 88, 88, 674,
-
- 674, 674, 674, 88, 674, 88, 88, 88, 674, 88,
- 674, 418, 88, 419, 88, 674, 88, 674, 88, 674,
- 88, 674, 88, 88, 420, 88, 88, 674, 674, 674,
- 674, 88, 674, 88, 674, 88, 88, 88, 674, 88,
- 674, 421, 88, 423, 674, 674, 88, 88, 88, 88,
- 88, 424, 425, 88, 674, 88, 674, 88, 88, 88,
- 88, 88, 674, 674, 674, 674, 88, 674, 674, 674,
- 88, 88, 88, 674, 88, 674, 674, 88, 428, 88,
- 674, 88, 426, 88, 674, 88, 674, 88, 674, 88,
- 88, 88, 88, 88, 674, 430, 88, 674, 674, 674,
-
- 674, 674, 88, 88, 88, 88, 88, 88, 88, 431,
- 674, 88, 88, 674, 88, 674, 674, 674, 88, 674,
- 88, 674, 88, 674, 88, 674, 88, 88, 88, 88,
- 440, 441, 88, 88, 674, 674, 674, 674, 674, 88,
- 88, 88, 88, 88, 88, 674, 88, 674, 88, 674,
- 88, 88, 88, 433, 88, 88, 674, 674, 442, 88,
- 674, 88, 674, 674, 674, 88, 674, 444, 674, 88,
- 674, 88, 88, 88, 88, 88, 674, 674, 88, 445,
- 88, 446, 88, 674, 88, 674, 88, 674, 88, 88,
- 88, 88, 88, 674, 674, 88, 447, 88, 674, 88,
-
- 674, 88, 674, 88, 674, 88, 88, 448, 88, 88,
- 674, 674, 674, 674, 88, 674, 88, 88, 88, 450,
- 88, 674, 674, 88, 449, 88, 674, 88, 674, 88,
- 674, 88, 674, 88, 674, 88, 88, 88, 674, 674,
- 88, 451, 88, 452, 674, 674, 88, 674, 453, 674,
- 88, 674, 88, 674, 88, 674, 88, 674, 88, 88,
- 88, 454, 88, 88, 674, 88, 674, 674, 674, 674,
- 674, 674, 88, 88, 88, 88, 88, 88, 88, 88,
- 674, 88, 88, 674, 674, 455, 674, 674, 88, 88,
- 88, 88, 88, 88, 88, 674, 456, 88, 88, 458,
-
- 88, 457, 674, 674, 88, 674, 88, 674, 88, 674,
- 88, 88, 88, 88, 88, 462, 674, 88, 674, 88,
- 674, 88, 674, 88, 463, 88, 674, 88, 674, 88,
- 88, 88, 88, 88, 464, 674, 88, 674, 674, 674,
- 674, 674, 88, 88, 88, 88, 88, 88, 674, 674,
- 465, 88, 88, 88, 88, 467, 466, 674, 674, 674,
- 674, 674, 674, 88, 88, 88, 88, 88, 88, 88,
- 674, 674, 88, 88, 674, 674, 674, 88, 674, 88,
- 469, 88, 674, 88, 674, 468, 674, 88, 88, 88,
- 88, 88, 674, 674, 674, 674, 88, 674, 88, 674,
-
- 88, 88, 88, 674, 88, 471, 674, 470, 88, 88,
- 88, 88, 88, 88, 674, 88, 88, 88, 473, 88,
- 88, 674, 88, 674, 674, 674, 88, 674, 475, 88,
- 88, 88, 88, 88, 476, 88, 88, 88, 88, 674,
- 88, 88, 674, 478, 674, 674, 674, 88, 88, 88,
- 88, 88, 88, 674, 88, 477, 88, 674, 88, 88,
- 88, 674, 88, 88, 481, 674, 88, 88, 480, 88,
- 674, 674, 674, 88, 674, 88, 88, 88, 88, 88,
- 88, 88, 88, 88, 88, 88, 483, 88, 88, 674,
- 88, 674, 674, 674, 88, 674, 88, 88, 88, 88,
-
- 88, 88, 88, 88, 88, 88, 88, 485, 88, 88,
- 674, 674, 674, 674, 674, 88, 674, 88, 88, 88,
- 88, 88, 88, 494, 88, 674, 495, 88, 496, 88,
- 674, 88, 674, 88, 674, 88, 674, 674, 674, 88,
- 88, 88, 88, 88, 674, 498, 674, 674, 88, 674,
- 88, 674, 88, 88, 88, 674, 88, 674, 674, 674,
- 88, 88, 499, 88, 88, 500, 88, 88, 674, 88,
- 674, 674, 88, 501, 88, 674, 88, 88, 88, 674,
- 88, 674, 674, 674, 88, 88, 88, 88, 88, 88,
- 88, 88, 674, 88, 674, 674, 88, 502, 88, 674,
-
- 88, 88, 88, 503, 88, 674, 674, 674, 88, 88,
- 88, 88, 88, 88, 88, 88, 674, 88, 674, 674,
- 88, 674, 674, 674, 88, 88, 88, 674, 88, 674,
- 674, 674, 504, 88, 674, 88, 88, 88, 674, 88,
- 674, 674, 506, 505, 88, 674, 88, 674, 88, 674,
- 88, 674, 88, 88, 88, 88, 88, 674, 674, 88,
- 674, 88, 674, 507, 674, 88, 512, 88, 674, 88,
- 88, 88, 88, 88, 674, 674, 674, 674, 88, 674,
- 88, 88, 88, 674, 88, 674, 674, 88, 513, 88,
- 674, 88, 674, 88, 674, 88, 674, 88, 88, 88,
-
- 88, 88, 674, 674, 88, 674, 88, 515, 88, 674,
- 88, 674, 88, 674, 88, 514, 88, 88, 88, 88,
- 88, 516, 674, 88, 674, 674, 674, 674, 674, 88,
- 88, 88, 88, 88, 88, 88, 88, 674, 88, 88,
- 674, 674, 674, 674, 674, 88, 88, 88, 518, 88,
- 88, 88, 88, 674, 88, 88, 674, 674, 674, 674,
- 674, 520, 88, 88, 88, 88, 88, 674, 674, 88,
- 88, 88, 88, 522, 674, 88, 674, 674, 674, 88,
- 517, 88, 88, 88, 88, 88, 88, 88, 88, 88,
- 88, 88, 674, 524, 88, 674, 88, 674, 674, 525,
-
- 88, 674, 88, 674, 88, 674, 88, 674, 88, 88,
- 88, 88, 674, 537, 527, 88, 529, 88, 674, 674,
- 674, 88, 674, 88, 674, 88, 674, 88, 88, 88,
- 88, 88, 674, 674, 88, 674, 88, 674, 88, 674,
- 88, 538, 88, 674, 88, 674, 88, 88, 88, 88,
- 539, 674, 674, 88, 674, 88, 674, 674, 674, 88,
- 674, 88, 674, 88, 674, 88, 88, 88, 88, 88,
- 674, 541, 674, 674, 88, 674, 88, 674, 88, 88,
- 88, 674, 543, 674, 542, 88, 674, 88, 674, 88,
- 88, 88, 674, 88, 674, 674, 674, 88, 88, 544,
-
- 88, 88, 88, 545, 88, 88, 88, 674, 88, 88,
- 674, 546, 674, 674, 674, 88, 88, 88, 88, 88,
- 88, 674, 88, 674, 88, 674, 88, 88, 88, 88,
- 88, 674, 88, 674, 674, 88, 547, 674, 674, 88,
- 674, 88, 88, 88, 88, 674, 88, 88, 88, 674,
- 552, 88, 674, 88, 674, 674, 674, 88, 674, 88,
- 674, 88, 674, 88, 88, 88, 88, 88, 674, 674,
- 88, 674, 88, 674, 88, 674, 88, 674, 88, 674,
- 88, 88, 88, 88, 88, 674, 674, 674, 674, 88,
- 674, 88, 88, 88, 674, 88, 555, 674, 88, 553,
-
- 88, 674, 88, 674, 88, 560, 88, 674, 88, 88,
- 88, 88, 88, 674, 674, 674, 558, 88, 674, 88,
- 88, 88, 674, 88, 674, 674, 88, 674, 88, 674,
- 88, 674, 88, 674, 88, 674, 88, 88, 88, 88,
- 88, 674, 674, 88, 674, 88, 674, 88, 674, 562,
- 674, 88, 674, 564, 88, 88, 88, 88, 674, 674,
- 674, 674, 88, 674, 88, 88, 88, 674, 88, 674,
- 674, 572, 674, 88, 674, 88, 88, 88, 573, 88,
- 674, 674, 88, 674, 88, 674, 88, 674, 88, 674,
- 88, 674, 88, 88, 88, 88, 88, 674, 674, 674,
-
- 674, 88, 674, 88, 88, 88, 575, 88, 674, 674,
- 574, 674, 88, 674, 88, 88, 88, 674, 88, 674,
- 576, 88, 674, 88, 674, 88, 674, 88, 674, 88,
- 674, 88, 674, 577, 88, 88, 88, 88, 578, 674,
- 88, 674, 674, 674, 674, 674, 88, 579, 88, 88,
- 88, 88, 88, 88, 674, 88, 88, 674, 674, 674,
- 584, 674, 88, 88, 88, 88, 88, 88, 583, 88,
- 88, 88, 88, 674, 674, 674, 586, 674, 674, 88,
- 88, 88, 589, 88, 88, 88, 674, 674, 88, 88,
- 674, 88, 674, 674, 674, 88, 674, 88, 591, 88,
-
- 674, 88, 88, 88, 88, 88, 674, 674, 674, 592,
- 88, 674, 88, 674, 88, 674, 88, 570, 570, 570,
- 674, 88, 674, 674, 674, 674, 88, 88, 674, 599,
- 599, 599, 599, 599, 599, 599, 88, 88, 88, 602,
- 88, 88, 88, 88, 674, 88, 88, 674, 674, 601,
- 674, 674, 88, 88, 88, 88, 88, 88, 88, 88,
- 674, 88, 88, 674, 674, 674, 674, 674, 88, 88,
- 88, 88, 88, 88, 88, 88, 603, 88, 88, 674,
- 674, 674, 604, 674, 88, 88, 88, 88, 88, 88,
- 88, 674, 674, 88, 88, 674, 674, 674, 88, 674,
-
- 88, 674, 88, 674, 88, 674, 88, 674, 88, 88,
- 88, 608, 88, 674, 88, 674, 88, 88, 610, 674,
- 88, 613, 88, 674, 88, 88, 88, 674, 88, 615,
- 88, 674, 88, 88, 88, 674, 88, 616, 674, 674,
- 88, 88, 88, 674, 88, 674, 674, 88, 88, 88,
- 599, 599, 599, 599, 599, 599, 599, 88, 88, 624,
- 88, 88, 88, 88, 674, 674, 88, 88, 674, 674,
- 674, 88, 674, 88, 674, 88, 674, 88, 674, 674,
- 674, 88, 88, 88, 88, 88, 674, 674, 622, 625,
- 88, 674, 88, 674, 88, 88, 629, 674, 88, 631,
-
- 674, 674, 88, 88, 88, 88, 88, 88, 88, 88,
- 636, 88, 674, 634, 88, 674, 674, 674, 88, 88,
- 88, 674, 88, 637, 674, 674, 674, 88, 674, 88,
- 674, 88, 674, 88, 623, 623, 623, 674, 88, 674,
- 674, 674, 674, 88, 88, 674, 599, 599, 599, 599,
- 599, 599, 599, 88, 88, 88, 88, 88, 88, 88,
- 674, 643, 88, 88, 674, 88, 674, 644, 674, 88,
- 674, 88, 674, 88, 674, 88, 88, 88, 88, 88,
- 674, 674, 88, 648, 88, 674, 88, 674, 88, 674,
- 88, 674, 88, 88, 88, 88, 88, 674, 674, 651,
-
- 653, 88, 674, 88, 674, 88, 88, 88, 659, 88,
- 674, 674, 88, 674, 674, 674, 88, 88, 88, 88,
- 88, 88, 674, 88, 674, 88, 674, 88, 88, 88,
- 674, 88, 88, 674, 674, 88, 88, 674, 664, 674,
- 661, 674, 88, 674, 88, 88, 88, 88, 674, 88,
- 674, 88, 674, 674, 88, 658, 658, 658, 674, 674,
- 674, 674, 674, 674, 88, 88, 674, 599, 599, 599,
- 599, 599, 599, 599, 88, 88, 88, 88, 88, 88,
- 88, 88, 674, 88, 88, 674, 667, 674, 674, 674,
- 88, 88, 88, 88, 88, 88, 671, 88, 674, 88,
-
- 88, 674, 674, 674, 674, 674, 674, 88, 674, 88,
- 674, 88, 674, 674, 674, 674, 88, 50, 50, 50,
- 50, 50, 50, 50, 50, 50, 50, 50, 50, 54,
- 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
- 54, 58, 58, 58, 58, 58, 58, 58, 58, 58,
- 58, 58, 58, 61, 61, 61, 61, 61, 61, 61,
- 61, 61, 61, 61, 61, 67, 67, 67, 67, 67,
- 67, 67, 67, 67, 67, 67, 67, 74, 74, 74,
- 674, 74, 74, 74, 74, 74, 74, 74, 74, 81,
- 81, 674, 674, 81, 674, 81, 147, 674, 147, 150,
-
- 150, 674, 150, 150, 151, 151, 674, 151, 151, 151,
- 674, 151, 151, 151, 151, 151, 154, 154, 154, 674,
- 154, 154, 154, 154, 154, 154, 154, 154, 156, 156,
- 156, 156, 156, 156, 156, 156, 674, 156, 156, 158,
- 674, 674, 158, 674, 158, 158, 158, 158, 158, 158,
- 162, 162, 674, 162, 162, 163, 163, 674, 163, 163,
- 94, 94, 674, 94, 94, 13, 674, 674, 674, 674,
- 674, 674, 674, 674, 674, 674, 674, 674, 674, 674,
- 674, 674, 674, 674, 674, 674, 674, 674, 674, 674,
- 674, 674, 674, 674, 674, 674, 674, 674, 674, 674,
-
- 674, 674, 674, 674, 674, 674, 674, 674, 674, 674,
- 674, 674, 674, 674, 674, 674, 674, 674, 674, 674,
- 674, 674, 674, 674, 674, 674, 674, 674, 674, 674,
- 674, 674, 674, 674, 674, 674, 674, 674, 674, 674,
- 674, 674, 674, 674
+ 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, 328, 112, 171,
+ 171, 171, 171, 171, 171, 97, 85, 97, 69, 97,
+ 70, 82, 82, 82, 97, 251, 532, 156, 69, 719,
+ 70, 71, 72, 73, 72, 71, 71, 71, 71, 71,
+ 71, 71, 71, 71, 30, 533, 80, 87, 97, 720,
+ 156, 71, 71, 71, 71, 30, 393, 80, 97, 75,
+
+ 97, 97, 97, 720, 104, 392, 718, 97, 105, 156,
+ 326, 97, 106, 97, 107, 97, 97, 156, 716, 97,
+ 97, 71, 71, 71, 108, 109, 97, 395, 97, 110,
+ 97, 97, 111, 97, 720, 127, 715, 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, 459, 97, 171, 171, 171, 168, 71,
+ 71, 71, 71, 713, 97, 113, 114, 75, 97, 253,
+ 254, 156, 327, 97, 129, 130, 115, 394, 131, 156,
+ 168, 116, 97, 712, 97, 97, 97, 513, 132, 71,
+
+ 71, 71, 97, 97, 97, 97, 97, 97, 117, 97,
+ 156, 97, 456, 133, 97, 711, 562, 120, 97, 156,
+ 121, 457, 458, 168, 72, 71, 72, 81, 97, 122,
+ 123, 152, 97, 156, 156, 124, 156, 97, 514, 156,
+ 156, 85, 515, 597, 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,
+ 600, 708, 87, 88, 88, 88, 88, 88, 88, 88,
+ 88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
+ 88, 88, 88, 88, 88, 97, 560, 168, 97, 97,
+
+ 97, 97, 97, 97, 97, 156, 707, 156, 561, 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, 655, 156, 706, 103, 103,
+ 103, 103, 103, 103, 103, 103, 103, 103, 103, 103,
+ 103, 103, 103, 103, 103, 103, 103, 103, 103, 103,
+ 97, 679, 559, 156, 704, 125, 97, 598, 598, 598,
+ 97, 599, 97, 126, 97, 629, 97, 156, 97, 97,
+ 97, 703, 156, 701, 698, 97, 156, 134, 97, 631,
+ 135, 696, 118, 156, 695, 694, 97, 693, 136, 139,
+
+ 97, 691, 97, 119, 137, 156, 97, 97, 97, 97,
+ 97, 689, 140, 688, 686, 97, 141, 685, 144, 97,
+ 684, 97, 680, 97, 145, 97, 678, 142, 97, 677,
+ 676, 138, 143, 97, 675, 97, 672, 97, 670, 97,
+ 669, 146, 667, 97, 97, 149, 97, 97, 147, 664,
+ 663, 150, 97, 153, 662, 658, 97, 148, 97, 654,
+ 97, 657, 657, 657, 653, 97, 154, 154, 154, 154,
+ 154, 154, 154, 151, 89, 89, 89, 155, 652, 651,
+ 176, 97, 648, 646, 645, 643, 89, 89, 640, 639,
+ 638, 97, 157, 97, 632, 97, 628, 158, 167, 156,
+
+ 97, 627, 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, 626, 97, 182, 97, 97, 97, 97, 625, 181,
+ 624, 97, 97, 97, 97, 621, 619, 618, 167, 167,
+ 167, 616, 612, 97, 97, 97, 97, 97, 184, 97,
+ 611, 610, 97, 97, 596, 595, 183, 594, 593, 97,
+ 591, 97, 589, 97, 167, 167, 587, 185, 97, 167,
+ 167, 167, 167, 167, 167, 167, 167, 167, 585, 97,
+ 584, 582, 97, 578, 186, 167, 167, 167, 167, 97,
+
+ 577, 97, 97, 97, 97, 97, 97, 576, 97, 575,
+ 187, 97, 169, 566, 558, 97, 557, 97, 97, 188,
+ 556, 555, 553, 551, 97, 167, 167, 167, 97, 97,
+ 97, 189, 97, 697, 697, 697, 548, 97, 546, 97,
+ 544, 97, 535, 97, 190, 97, 534, 520, 97, 516,
+ 512, 167, 192, 97, 511, 97, 510, 97, 191, 97,
+ 509, 508, 506, 97, 97, 97, 97, 97, 504, 97,
+ 501, 156, 97, 195, 496, 494, 97, 193, 194, 97,
+ 97, 97, 196, 97, 482, 97, 481, 480, 97, 463,
+ 455, 454, 97, 453, 97, 451, 97, 97, 197, 198,
+
+ 97, 97, 448, 97, 200, 446, 441, 97, 436, 97,
+ 203, 97, 97, 97, 97, 97, 199, 201, 97, 97,
+ 433, 202, 97, 421, 420, 207, 419, 400, 97, 390,
+ 97, 204, 97, 97, 389, 388, 97, 97, 382, 208,
+ 375, 370, 366, 97, 97, 97, 97, 97, 97, 354,
+ 97, 353, 97, 172, 97, 97, 97, 168, 209, 97,
+ 210, 325, 322, 97, 321, 320, 314, 303, 298, 97,
+ 97, 97, 294, 97, 283, 282, 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,
+ 720, 97, 97, 97, 720, 97, 720, 720, 720, 720,
+ 97, 223, 97, 720, 97, 97, 97, 720, 225, 720,
+ 720, 224, 226, 720, 720, 97, 720, 97, 720, 97,
+ 228, 97, 720, 720, 97, 720, 720, 97, 720, 720,
+
+ 720, 229, 720, 97, 720, 97, 720, 97, 97, 97,
+ 97, 97, 230, 720, 97, 231, 97, 720, 97, 720,
+ 97, 720, 97, 720, 97, 97, 97, 97, 97, 235,
+ 233, 720, 232, 97, 720, 97, 720, 234, 720, 97,
+ 97, 97, 720, 720, 97, 720, 236, 720, 720, 720,
+ 97, 97, 97, 97, 97, 97, 97, 97, 720, 97,
+ 97, 720, 720, 720, 720, 720, 97, 97, 97, 97,
+ 97, 238, 97, 97, 241, 237, 97, 242, 720, 240,
+ 720, 720, 97, 97, 97, 97, 97, 97, 97, 720,
+ 720, 97, 97, 720, 720, 720, 720, 720, 97, 720,
+
+ 97, 720, 97, 248, 248, 248, 246, 97, 154, 154,
+ 154, 154, 154, 154, 154, 720, 720, 720, 720, 720,
+ 720, 720, 720, 720, 97, 97, 720, 258, 720, 720,
+ 720, 720, 720, 720, 97, 97, 97, 97, 97, 97,
+ 97, 249, 259, 97, 97, 720, 247, 720, 97, 720,
+ 97, 97, 97, 720, 97, 720, 720, 720, 260, 97,
+ 97, 97, 97, 97, 261, 97, 97, 97, 720, 97,
+ 97, 720, 97, 262, 720, 720, 97, 720, 97, 97,
+ 97, 97, 97, 97, 97, 97, 97, 97, 97, 263,
+ 720, 97, 720, 97, 720, 720, 720, 264, 720, 97,
+
+ 720, 97, 720, 97, 97, 97, 97, 97, 720, 265,
+ 97, 266, 97, 720, 97, 720, 97, 720, 97, 720,
+ 97, 97, 97, 97, 97, 720, 720, 267, 720, 97,
+ 720, 97, 97, 97, 720, 268, 720, 720, 720, 720,
+ 97, 720, 97, 720, 97, 720, 97, 271, 97, 269,
+ 270, 97, 720, 720, 97, 272, 720, 273, 97, 720,
+ 97, 720, 97, 720, 97, 97, 97, 97, 97, 720,
+ 720, 97, 720, 97, 720, 97, 720, 97, 274, 97,
+ 720, 97, 97, 97, 97, 97, 720, 720, 97, 720,
+ 97, 276, 97, 275, 97, 720, 97, 720, 97, 97,
+
+ 97, 97, 97, 720, 720, 97, 720, 97, 279, 277,
+ 720, 97, 278, 97, 720, 97, 97, 97, 97, 97,
+ 720, 720, 720, 720, 97, 720, 97, 97, 97, 720,
+ 97, 720, 720, 280, 720, 97, 720, 97, 281, 97,
+ 97, 97, 720, 720, 720, 720, 97, 720, 97, 720,
+ 97, 97, 97, 720, 97, 720, 720, 284, 97, 97,
+ 285, 286, 97, 97, 287, 97, 97, 97, 720, 97,
+ 97, 720, 97, 720, 720, 290, 288, 720, 97, 97,
+ 97, 97, 97, 97, 97, 97, 97, 289, 97, 291,
+ 97, 97, 720, 97, 720, 720, 97, 720, 720, 720,
+
+ 97, 720, 97, 97, 97, 97, 97, 97, 97, 97,
+ 97, 97, 292, 720, 97, 97, 720, 295, 720, 720,
+ 720, 293, 720, 97, 97, 97, 97, 720, 97, 97,
+ 97, 720, 296, 97, 720, 97, 720, 720, 720, 97,
+ 720, 97, 297, 97, 720, 97, 97, 97, 97, 97,
+ 720, 720, 720, 720, 97, 720, 97, 97, 97, 720,
+ 97, 720, 720, 97, 299, 97, 720, 97, 720, 97,
+ 720, 97, 720, 97, 97, 97, 97, 97, 720, 720,
+ 300, 720, 97, 720, 97, 97, 97, 720, 97, 720,
+ 720, 301, 720, 97, 720, 97, 97, 97, 720, 97,
+
+ 720, 305, 97, 720, 97, 302, 304, 720, 97, 720,
+ 97, 720, 97, 97, 97, 97, 97, 720, 720, 97,
+ 720, 97, 720, 97, 720, 97, 720, 97, 720, 97,
+ 720, 97, 306, 97, 97, 97, 720, 307, 97, 720,
+ 720, 720, 308, 720, 97, 97, 97, 97, 97, 97,
+ 97, 720, 720, 97, 97, 720, 720, 720, 720, 720,
+ 97, 97, 97, 720, 97, 720, 720, 97, 309, 97,
+ 720, 97, 720, 97, 720, 97, 720, 97, 310, 97,
+ 97, 97, 97, 720, 311, 312, 97, 720, 97, 720,
+ 720, 313, 97, 720, 97, 720, 97, 720, 97, 97,
+
+ 97, 97, 97, 720, 720, 720, 720, 97, 720, 97,
+ 97, 97, 315, 97, 316, 319, 720, 720, 97, 317,
+ 97, 97, 97, 720, 97, 720, 720, 720, 318, 97,
+ 720, 97, 97, 97, 720, 97, 720, 720, 323, 720,
+ 97, 720, 97, 720, 97, 720, 97, 248, 248, 248,
+ 720, 97, 720, 720, 720, 720, 97, 97, 720, 324,
+ 324, 324, 324, 324, 324, 324, 97, 97, 329, 97,
+ 97, 97, 97, 330, 720, 97, 97, 720, 97, 331,
+ 720, 720, 97, 720, 97, 720, 97, 720, 97, 332,
+ 97, 97, 97, 97, 97, 720, 720, 97, 720, 720,
+
+ 720, 720, 720, 97, 97, 333, 97, 97, 97, 336,
+ 97, 97, 97, 97, 335, 720, 720, 720, 720, 720,
+ 97, 97, 97, 97, 97, 97, 97, 337, 720, 97,
+ 97, 720, 97, 720, 720, 720, 97, 720, 97, 334,
+ 97, 720, 97, 97, 97, 97, 97, 720, 720, 338,
+ 720, 97, 720, 97, 97, 97, 339, 97, 720, 720,
+ 720, 720, 97, 720, 97, 720, 97, 720, 97, 97,
+ 340, 341, 97, 97, 720, 97, 720, 720, 720, 97,
+ 720, 97, 97, 97, 97, 97, 97, 343, 342, 97,
+ 97, 97, 344, 97, 97, 345, 97, 720, 720, 346,
+
+ 97, 720, 97, 97, 97, 97, 97, 97, 97, 97,
+ 97, 97, 97, 720, 720, 97, 720, 97, 720, 720,
+ 720, 97, 720, 97, 348, 347, 720, 97, 97, 97,
+ 97, 97, 720, 720, 720, 720, 97, 720, 97, 97,
+ 97, 720, 97, 720, 349, 720, 720, 97, 720, 97,
+ 720, 350, 720, 97, 97, 351, 720, 352, 97, 720,
+ 97, 720, 720, 720, 97, 720, 97, 720, 97, 720,
+ 97, 97, 97, 97, 97, 720, 720, 97, 720, 97,
+ 720, 97, 720, 97, 720, 97, 720, 97, 720, 97,
+ 97, 97, 97, 97, 720, 356, 97, 720, 720, 357,
+
+ 720, 720, 97, 97, 97, 97, 97, 97, 97, 358,
+ 720, 97, 97, 360, 97, 720, 355, 720, 97, 720,
+ 97, 720, 97, 364, 97, 720, 97, 359, 97, 97,
+ 361, 720, 97, 97, 362, 720, 720, 720, 720, 97,
+ 97, 97, 97, 97, 97, 363, 97, 720, 97, 720,
+ 97, 97, 97, 97, 97, 720, 720, 365, 720, 97,
+ 720, 97, 367, 97, 97, 97, 720, 97, 720, 720,
+ 720, 97, 97, 97, 97, 97, 97, 97, 97, 720,
+ 97, 720, 368, 97, 720, 97, 372, 97, 371, 97,
+ 369, 97, 720, 720, 720, 97, 97, 97, 720, 97,
+
+ 97, 97, 720, 373, 97, 720, 720, 720, 720, 720,
+ 97, 97, 97, 97, 97, 97, 374, 97, 97, 97,
+ 97, 720, 720, 720, 720, 720, 720, 97, 97, 97,
+ 97, 97, 97, 97, 720, 720, 97, 97, 720, 720,
+ 720, 720, 720, 97, 720, 97, 97, 97, 720, 377,
+ 720, 376, 97, 720, 97, 720, 97, 97, 97, 720,
+ 97, 720, 720, 720, 97, 97, 97, 97, 97, 378,
+ 720, 97, 97, 97, 379, 97, 97, 720, 97, 720,
+ 720, 381, 97, 720, 97, 97, 97, 97, 97, 97,
+ 97, 97, 97, 97, 97, 720, 97, 97, 720, 97,
+
+ 720, 720, 720, 97, 720, 97, 97, 97, 97, 97,
+ 97, 383, 97, 97, 97, 97, 720, 380, 97, 720,
+ 97, 720, 720, 385, 97, 720, 97, 720, 97, 720,
+ 97, 97, 97, 384, 97, 720, 720, 97, 720, 97,
+ 720, 97, 720, 97, 720, 97, 720, 97, 720, 97,
+ 97, 97, 97, 720, 387, 720, 97, 720, 720, 720,
+ 720, 720, 97, 720, 97, 720, 97, 386, 720, 97,
+ 720, 97, 324, 324, 324, 324, 324, 324, 324, 97,
+ 720, 97, 720, 97, 397, 97, 720, 396, 97, 720,
+ 720, 720, 720, 97, 398, 97, 720, 97, 720, 97,
+
+ 399, 97, 720, 97, 97, 97, 720, 97, 720, 97,
+ 391, 97, 97, 97, 720, 97, 401, 97, 720, 97,
+ 97, 97, 720, 97, 720, 97, 402, 97, 97, 97,
+ 720, 97, 720, 720, 720, 97, 97, 97, 97, 97,
+ 720, 403, 720, 720, 97, 720, 97, 720, 97, 97,
+ 97, 720, 97, 720, 720, 720, 97, 97, 97, 97,
+ 97, 404, 720, 97, 97, 97, 405, 97, 97, 720,
+ 97, 406, 720, 720, 97, 720, 97, 97, 97, 97,
+ 407, 97, 97, 97, 97, 97, 97, 720, 408, 97,
+ 720, 97, 409, 410, 720, 97, 720, 97, 720, 97,
+
+ 720, 97, 720, 97, 97, 97, 97, 97, 720, 411,
+ 97, 720, 720, 412, 720, 720, 97, 97, 97, 97,
+ 97, 97, 97, 413, 720, 97, 97, 720, 720, 720,
+ 720, 720, 97, 720, 97, 720, 97, 97, 415, 720,
+ 414, 97, 720, 97, 720, 720, 720, 97, 720, 97,
+ 720, 97, 720, 97, 97, 97, 97, 97, 720, 720,
+ 97, 416, 97, 720, 97, 720, 97, 720, 97, 720,
+ 97, 417, 418, 97, 97, 97, 97, 720, 720, 97,
+ 720, 720, 720, 422, 720, 97, 97, 97, 97, 97,
+ 97, 720, 720, 97, 97, 97, 97, 423, 720, 424,
+
+ 720, 720, 720, 97, 720, 97, 97, 97, 97, 720,
+ 97, 425, 97, 97, 97, 97, 426, 720, 720, 720,
+ 720, 720, 720, 97, 97, 427, 97, 97, 97, 97,
+ 720, 720, 97, 97, 720, 97, 720, 720, 429, 97,
+ 720, 97, 720, 97, 720, 97, 97, 97, 428, 97,
+ 431, 720, 720, 432, 97, 720, 97, 97, 97, 720,
+ 97, 720, 720, 430, 720, 97, 720, 97, 97, 97,
+ 720, 97, 720, 720, 97, 720, 97, 720, 97, 720,
+ 97, 720, 97, 720, 97, 97, 97, 97, 97, 720,
+ 720, 97, 434, 97, 720, 97, 720, 97, 720, 97,
+
+ 720, 97, 97, 435, 97, 97, 720, 720, 720, 720,
+ 97, 720, 97, 97, 97, 720, 97, 720, 437, 97,
+ 438, 97, 720, 97, 720, 97, 720, 97, 720, 97,
+ 97, 439, 97, 97, 720, 720, 720, 720, 97, 720,
+ 97, 720, 97, 97, 97, 720, 97, 720, 440, 97,
+ 442, 720, 720, 97, 97, 97, 97, 97, 443, 444,
+ 97, 720, 97, 720, 97, 97, 97, 97, 97, 720,
+ 720, 720, 720, 97, 720, 720, 720, 97, 97, 97,
+ 720, 97, 720, 720, 97, 447, 97, 720, 97, 445,
+ 97, 720, 97, 720, 97, 720, 97, 97, 97, 97,
+
+ 97, 720, 449, 97, 720, 720, 720, 720, 720, 97,
+ 97, 97, 97, 97, 97, 97, 450, 720, 97, 97,
+ 720, 97, 720, 720, 720, 97, 720, 97, 720, 97,
+ 720, 97, 720, 97, 97, 97, 97, 460, 461, 97,
+ 97, 720, 720, 720, 720, 720, 97, 97, 97, 97,
+ 97, 97, 720, 97, 720, 97, 720, 97, 97, 97,
+ 452, 97, 97, 720, 720, 462, 97, 720, 97, 720,
+ 720, 720, 97, 720, 464, 720, 97, 720, 97, 97,
+ 97, 97, 97, 720, 720, 97, 465, 97, 466, 97,
+ 720, 97, 720, 97, 720, 97, 97, 97, 97, 97,
+
+ 720, 720, 97, 467, 97, 720, 97, 720, 97, 720,
+ 97, 720, 97, 97, 468, 97, 97, 720, 720, 720,
+ 720, 97, 720, 97, 97, 97, 470, 97, 720, 720,
+ 97, 469, 97, 720, 97, 720, 97, 720, 97, 720,
+ 97, 720, 97, 97, 97, 720, 720, 97, 471, 97,
+ 472, 720, 720, 97, 720, 473, 720, 97, 720, 97,
+ 720, 97, 720, 97, 97, 97, 97, 97, 720, 475,
+ 97, 720, 97, 720, 97, 720, 474, 720, 97, 720,
+ 97, 97, 97, 97, 97, 720, 720, 97, 720, 97,
+ 720, 97, 720, 97, 476, 97, 720, 97, 97, 97,
+
+ 97, 97, 720, 720, 97, 720, 97, 720, 97, 720,
+ 97, 478, 97, 720, 97, 477, 97, 97, 97, 479,
+ 97, 97, 720, 97, 720, 483, 720, 720, 720, 720,
+ 97, 97, 97, 97, 97, 97, 97, 720, 720, 97,
+ 97, 720, 97, 484, 485, 720, 97, 720, 97, 720,
+ 97, 720, 97, 97, 97, 97, 97, 720, 720, 97,
+ 720, 97, 487, 97, 720, 97, 720, 97, 720, 97,
+ 486, 97, 97, 97, 97, 488, 720, 720, 97, 720,
+ 97, 489, 720, 720, 97, 720, 97, 720, 97, 720,
+ 97, 97, 97, 97, 97, 720, 720, 720, 720, 97,
+
+ 720, 97, 720, 97, 720, 97, 97, 490, 720, 491,
+ 97, 720, 97, 720, 720, 720, 97, 720, 97, 720,
+ 97, 720, 97, 97, 97, 97, 97, 720, 720, 492,
+ 493, 97, 720, 97, 97, 97, 720, 97, 720, 495,
+ 97, 720, 97, 720, 97, 720, 97, 720, 97, 720,
+ 97, 97, 97, 97, 97, 720, 720, 97, 720, 97,
+ 720, 97, 720, 497, 720, 97, 720, 97, 97, 498,
+ 97, 97, 720, 720, 720, 720, 97, 720, 97, 720,
+ 97, 97, 97, 720, 500, 720, 499, 97, 720, 97,
+ 720, 97, 720, 97, 720, 97, 720, 720, 720, 97,
+
+ 97, 97, 720, 97, 97, 503, 720, 97, 97, 502,
+ 97, 720, 720, 720, 97, 720, 97, 97, 97, 97,
+ 97, 97, 97, 97, 97, 97, 97, 505, 97, 97,
+ 720, 97, 720, 720, 720, 97, 720, 97, 97, 97,
+ 97, 97, 97, 97, 97, 97, 97, 97, 507, 97,
+ 97, 720, 720, 720, 720, 720, 97, 720, 97, 97,
+ 97, 97, 97, 97, 517, 97, 720, 518, 97, 519,
+ 97, 720, 97, 720, 97, 720, 97, 720, 720, 720,
+ 97, 97, 97, 97, 97, 720, 521, 720, 720, 97,
+ 720, 97, 720, 97, 97, 97, 720, 97, 720, 720,
+
+ 720, 97, 97, 522, 97, 97, 523, 97, 97, 720,
+ 97, 720, 720, 97, 524, 97, 720, 97, 97, 97,
+ 720, 97, 720, 720, 720, 97, 97, 97, 97, 97,
+ 97, 97, 97, 720, 97, 720, 720, 97, 525, 97,
+ 720, 97, 97, 97, 526, 97, 720, 720, 720, 97,
+ 97, 97, 97, 97, 97, 97, 97, 720, 97, 720,
+ 527, 97, 720, 97, 720, 97, 97, 97, 720, 97,
+ 720, 720, 720, 97, 97, 97, 97, 97, 97, 97,
+ 97, 528, 97, 720, 529, 97, 720, 530, 720, 97,
+ 97, 97, 720, 97, 720, 720, 720, 97, 97, 97,
+
+ 531, 97, 97, 97, 97, 720, 97, 720, 720, 97,
+ 536, 97, 720, 97, 97, 97, 720, 97, 720, 720,
+ 720, 97, 97, 97, 97, 97, 97, 97, 97, 537,
+ 97, 720, 720, 97, 720, 97, 720, 97, 720, 97,
+ 720, 97, 720, 720, 720, 97, 97, 97, 97, 97,
+ 720, 539, 538, 720, 97, 720, 97, 720, 97, 97,
+ 97, 720, 97, 720, 720, 720, 97, 97, 97, 97,
+ 97, 97, 720, 97, 540, 97, 97, 541, 97, 97,
+ 720, 720, 97, 720, 720, 720, 97, 720, 97, 97,
+ 97, 97, 97, 97, 543, 97, 97, 97, 97, 720,
+
+ 97, 97, 720, 720, 720, 720, 720, 545, 720, 97,
+ 97, 97, 97, 97, 97, 720, 97, 547, 720, 97,
+ 720, 97, 720, 97, 542, 97, 720, 97, 720, 97,
+ 720, 97, 97, 97, 720, 97, 720, 720, 720, 97,
+ 97, 97, 97, 97, 720, 549, 720, 720, 97, 720,
+ 97, 720, 97, 550, 97, 720, 97, 720, 720, 563,
+ 97, 97, 97, 97, 97, 720, 552, 720, 720, 97,
+ 554, 97, 720, 97, 97, 97, 720, 97, 720, 720,
+ 720, 97, 97, 97, 97, 97, 97, 97, 97, 720,
+ 97, 720, 720, 97, 564, 97, 565, 97, 720, 97,
+
+ 720, 97, 720, 97, 720, 97, 97, 97, 720, 97,
+ 720, 97, 720, 97, 97, 97, 720, 97, 720, 567,
+ 720, 97, 97, 97, 97, 97, 720, 569, 720, 568,
+ 97, 720, 97, 720, 97, 97, 97, 720, 97, 720,
+ 720, 572, 97, 97, 570, 97, 97, 97, 571, 97,
+ 97, 97, 720, 97, 97, 720, 97, 720, 720, 720,
+ 97, 720, 97, 97, 97, 97, 97, 97, 97, 97,
+ 97, 97, 97, 720, 573, 97, 720, 97, 720, 720,
+ 720, 97, 720, 97, 574, 97, 720, 97, 97, 97,
+ 97, 97, 720, 720, 97, 720, 97, 579, 97, 720,
+
+ 97, 720, 97, 720, 97, 97, 97, 97, 97, 720,
+ 720, 97, 720, 97, 720, 97, 720, 97, 720, 97,
+ 720, 97, 97, 97, 97, 97, 720, 720, 97, 720,
+ 97, 720, 97, 720, 97, 580, 97, 720, 97, 97,
+ 97, 97, 97, 720, 720, 720, 720, 97, 720, 97,
+ 97, 97, 720, 97, 583, 720, 97, 581, 97, 720,
+ 97, 720, 97, 588, 97, 720, 97, 97, 97, 97,
+ 97, 720, 720, 720, 586, 97, 720, 97, 97, 97,
+ 720, 97, 720, 720, 97, 720, 97, 720, 97, 720,
+ 97, 720, 97, 720, 97, 97, 97, 97, 97, 720,
+
+ 720, 97, 720, 97, 720, 97, 720, 590, 720, 97,
+ 720, 592, 97, 97, 97, 97, 720, 720, 720, 720,
+ 97, 720, 97, 97, 97, 720, 97, 720, 720, 601,
+ 720, 97, 720, 97, 97, 97, 602, 97, 720, 720,
+ 97, 720, 97, 720, 97, 720, 97, 720, 97, 720,
+ 97, 97, 97, 97, 97, 720, 720, 720, 720, 97,
+ 720, 97, 97, 97, 604, 97, 720, 720, 603, 720,
+ 97, 720, 97, 97, 97, 720, 97, 720, 605, 97,
+ 720, 97, 720, 97, 720, 97, 720, 97, 720, 97,
+ 720, 606, 97, 97, 97, 607, 720, 97, 97, 608,
+
+ 97, 720, 720, 720, 97, 720, 97, 97, 97, 97,
+ 609, 97, 97, 97, 97, 97, 97, 720, 720, 97,
+ 720, 720, 720, 97, 720, 97, 720, 97, 720, 97,
+ 720, 613, 720, 97, 97, 97, 614, 97, 97, 97,
+ 720, 720, 97, 720, 720, 615, 617, 720, 97, 97,
+ 97, 97, 97, 97, 97, 720, 720, 97, 97, 720,
+ 720, 720, 97, 720, 97, 720, 620, 720, 97, 720,
+ 97, 720, 97, 97, 97, 622, 97, 720, 720, 720,
+ 97, 97, 97, 97, 97, 720, 720, 720, 623, 97,
+ 720, 720, 720, 97, 720, 97, 720, 97, 598, 598,
+
+ 598, 720, 97, 720, 720, 720, 720, 97, 97, 720,
+ 630, 630, 630, 630, 630, 630, 630, 97, 97, 97,
+ 634, 97, 97, 97, 97, 720, 97, 97, 720, 720,
+ 633, 720, 720, 97, 97, 97, 97, 97, 97, 97,
+ 97, 720, 97, 97, 720, 720, 720, 720, 720, 97,
+ 97, 97, 97, 97, 97, 97, 720, 635, 97, 97,
+ 720, 97, 720, 720, 720, 97, 720, 97, 636, 97,
+ 720, 97, 97, 97, 97, 97, 720, 720, 97, 637,
+ 97, 720, 97, 720, 97, 720, 97, 720, 97, 97,
+ 97, 97, 97, 720, 720, 720, 720, 97, 720, 97,
+
+ 97, 641, 720, 97, 720, 720, 97, 720, 97, 720,
+ 97, 720, 97, 642, 97, 720, 97, 97, 644, 97,
+ 97, 720, 720, 97, 647, 97, 720, 97, 720, 97,
+ 649, 97, 720, 97, 97, 97, 97, 97, 720, 720,
+ 720, 650, 97, 720, 97, 720, 97, 720, 97, 720,
+ 720, 97, 97, 97, 630, 630, 630, 630, 630, 630,
+ 630, 97, 97, 659, 97, 97, 97, 97, 97, 720,
+ 97, 97, 720, 720, 720, 720, 720, 97, 97, 97,
+ 660, 97, 97, 97, 720, 720, 97, 97, 720, 720,
+ 720, 720, 656, 97, 97, 97, 720, 97, 720, 720,
+
+ 97, 661, 97, 720, 97, 720, 97, 720, 97, 720,
+ 97, 665, 666, 97, 97, 97, 720, 720, 97, 97,
+ 720, 97, 668, 673, 720, 97, 720, 97, 97, 97,
+ 97, 97, 97, 97, 97, 97, 671, 97, 97, 720,
+ 97, 720, 674, 720, 720, 720, 720, 720, 97, 720,
+ 97, 720, 97, 657, 657, 657, 720, 97, 720, 720,
+ 720, 720, 97, 720, 720, 630, 630, 630, 630, 630,
+ 630, 630, 97, 97, 97, 720, 97, 720, 720, 720,
+ 681, 97, 720, 97, 97, 97, 720, 97, 720, 720,
+ 97, 682, 97, 720, 97, 720, 97, 720, 97, 720,
+
+ 97, 97, 97, 97, 97, 720, 720, 683, 720, 97,
+ 720, 97, 97, 97, 720, 97, 720, 720, 720, 720,
+ 97, 720, 97, 97, 97, 720, 97, 720, 720, 97,
+ 687, 97, 720, 97, 720, 97, 720, 97, 720, 97,
+ 97, 97, 97, 97, 720, 720, 690, 692, 97, 720,
+ 97, 720, 97, 97, 97, 699, 97, 720, 720, 97,
+ 720, 720, 720, 97, 97, 97, 97, 97, 97, 700,
+ 97, 720, 97, 720, 97, 97, 97, 97, 97, 720,
+ 97, 720, 720, 97, 720, 720, 720, 97, 720, 97,
+ 97, 97, 97, 720, 97, 97, 97, 720, 705, 97,
+
+ 702, 720, 720, 720, 720, 97, 720, 97, 720, 97,
+ 697, 697, 697, 720, 97, 720, 720, 720, 720, 97,
+ 720, 720, 630, 630, 630, 630, 630, 630, 630, 97,
+ 97, 97, 720, 97, 720, 720, 97, 720, 97, 720,
+ 97, 709, 97, 710, 97, 720, 97, 97, 97, 97,
+ 97, 720, 720, 720, 720, 97, 720, 97, 97, 97,
+ 720, 97, 720, 714, 97, 720, 97, 720, 97, 720,
+ 97, 720, 97, 720, 717, 97, 97, 97, 97, 720,
+ 720, 97, 720, 97, 720, 97, 720, 97, 720, 97,
+ 720, 97, 720, 97, 97, 97, 720, 720, 720, 720,
+
+ 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, 720, 83, 83, 83,
+ 83, 83, 83, 83, 83, 90, 90, 720, 720, 90,
+ 720, 90, 156, 720, 156, 159, 159, 720, 159, 159,
+
+ 160, 160, 720, 160, 160, 160, 720, 160, 160, 160,
+ 160, 160, 163, 163, 163, 720, 163, 163, 163, 163,
+ 163, 163, 163, 163, 165, 165, 165, 165, 165, 165,
+ 165, 165, 720, 165, 165, 167, 720, 720, 167, 167,
+ 167, 167, 167, 167, 167, 167, 168, 720, 720, 168,
+ 168, 168, 168, 168, 168, 168, 168, 170, 720, 720,
+ 170, 720, 170, 170, 170, 170, 170, 170, 174, 174,
+ 720, 174, 174, 175, 175, 720, 175, 175, 103, 103,
+ 720, 103, 103, 15, 720, 720, 720, 720, 720, 720,
+ 720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
+
+ 720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
+ 720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
+ 720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
+ 720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
+ 720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
+ 720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
+ 720, 720
} ;
-static yyconst short int yy_chk[4245] =
+static yyconst short int yy_chk[4563] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -1213,485 +1274,521 @@ static yyconst short int yy_chk[4245] =
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, 459, 11, 11, 11,
-
- 78, 143, 11, 9, 164, 669, 9, 12, 12, 12,
- 164, 70, 12, 10, 143, 459, 10, 15, 15, 15,
- 16, 16, 16, 15, 378, 70, 16, 20, 20, 20,
- 24, 78, 24, 20, 22, 378, 148, 22, 148, 20,
- 20, 22, 22, 22, 22, 22, 22, 26, 26, 26,
- 26, 26, 26, 26, 665, 36, 70, 149, 9, 149,
- 9, 68, 68, 68, 663, 36, 31, 36, 10, 36,
- 10, 11, 31, 11, 36, 238, 31, 33, 31, 31,
- 31, 12, 238, 12, 19, 31, 662, 33, 33, 33,
- 239, 33, 69, 69, 69, 660, 33, 239, 19, 33,
-
- 656, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 598, 598, 19,
- 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 29, 655, 492, 29, 29, 29, 29, 29,
- 29, 29, 73, 73, 73, 492, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 159, 159, 159, 29, 29, 29, 29, 29,
-
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 30, 311, 312,
- 30, 652, 311, 32, 30, 312, 32, 30, 30, 30,
- 30, 30, 650, 32, 376, 32, 30, 32, 34, 34,
- 30, 376, 32, 437, 313, 377, 646, 35, 438, 34,
- 313, 34, 438, 34, 641, 34, 437, 35, 34, 35,
- 377, 35, 37, 37, 534, 37, 35, 439, 534, 439,
- 640, 491, 536, 37, 37, 37, 639, 37, 493, 35,
- 37, 493, 37, 38, 38, 39, 491, 536, 571, 638,
- 35, 38, 571, 569, 38, 39, 38, 39, 38, 39,
-
- 569, 40, 40, 38, 39, 40, 41, 41, 621, 41,
- 621, 40, 635, 40, 633, 40, 632, 41, 628, 41,
- 40, 41, 42, 41, 627, 42, 41, 80, 80, 80,
- 40, 39, 42, 80, 42, 43, 42, 626, 43, 80,
- 80, 42, 43, 620, 619, 43, 618, 43, 617, 43,
- 41, 614, 612, 43, 43, 44, 611, 609, 43, 607,
- 606, 44, 44, 605, 597, 45, 535, 535, 535, 596,
- 595, 593, 44, 590, 44, 45, 44, 45, 44, 45,
- 588, 44, 587, 45, 45, 44, 585, 46, 47, 582,
- 581, 580, 568, 567, 44, 47, 566, 46, 47, 46,
-
- 47, 46, 47, 565, 535, 45, 46, 47, 48, 48,
- 48, 48, 48, 48, 48, 563, 559, 557, 556, 48,
- 600, 600, 600, 46, 83, 83, 83, 83, 83, 83,
- 83, 554, 550, 549, 48, 548, 533, 88, 89, 48,
- 86, 86, 86, 86, 86, 86, 86, 88, 89, 88,
- 89, 88, 89, 90, 91, 89, 88, 89, 600, 642,
- 642, 642, 532, 90, 91, 90, 91, 90, 91, 92,
- 531, 530, 90, 91, 528, 93, 526, 91, 523, 92,
- 521, 92, 519, 92, 517, 93, 95, 93, 92, 93,
- 511, 95, 96, 93, 93, 510, 95, 642, 95, 509,
-
- 95, 508, 96, 97, 96, 95, 96, 497, 490, 489,
- 96, 96, 488, 97, 98, 97, 487, 97, 484, 482,
- 99, 479, 97, 474, 98, 472, 98, 98, 98, 461,
- 99, 460, 99, 98, 99, 100, 100, 443, 436, 99,
- 435, 101, 101, 434, 433, 432, 100, 429, 100, 100,
- 100, 427, 101, 102, 101, 100, 101, 422, 417, 414,
- 403, 101, 402, 102, 102, 102, 103, 102, 401, 104,
- 103, 383, 102, 374, 373, 372, 103, 370, 103, 104,
- 103, 104, 366, 104, 364, 103, 106, 106, 104, 105,
- 105, 105, 359, 354, 350, 340, 106, 107, 106, 105,
-
- 106, 105, 339, 105, 106, 106, 338, 107, 105, 107,
- 108, 107, 319, 111, 308, 307, 107, 306, 300, 289,
- 108, 111, 108, 108, 108, 284, 280, 112, 269, 108,
- 112, 111, 268, 111, 241, 111, 237, 112, 113, 112,
- 111, 112, 233, 232, 114, 114, 112, 231, 113, 227,
- 113, 215, 113, 209, 114, 115, 114, 113, 114, 205,
- 194, 114, 114, 114, 193, 115, 116, 115, 115, 115,
- 165, 161, 117, 157, 115, 147, 116, 142, 116, 139,
- 116, 129, 117, 118, 117, 116, 117, 124, 116, 119,
- 110, 117, 109, 118, 87, 118, 120, 118, 84, 121,
-
- 81, 76, 118, 75, 120, 72, 120, 63, 120, 121,
- 120, 121, 122, 121, 60, 120, 57, 121, 121, 56,
- 123, 53, 122, 125, 122, 27, 122, 23, 18, 17,
- 123, 122, 123, 125, 123, 125, 126, 125, 123, 123,
- 14, 125, 125, 13, 0, 0, 126, 127, 126, 0,
- 126, 0, 0, 0, 0, 126, 126, 127, 0, 127,
- 128, 127, 0, 128, 0, 0, 127, 128, 0, 0,
- 128, 0, 128, 0, 128, 130, 130, 0, 0, 128,
- 0, 0, 131, 0, 0, 0, 130, 0, 130, 0,
- 130, 0, 131, 132, 131, 130, 131, 131, 0, 133,
-
- 131, 131, 0, 132, 0, 132, 0, 132, 0, 133,
- 134, 133, 132, 133, 135, 133, 0, 132, 133, 0,
- 134, 0, 134, 0, 134, 135, 136, 0, 0, 134,
- 0, 136, 0, 0, 0, 135, 136, 135, 136, 135,
- 136, 137, 138, 0, 135, 136, 0, 0, 0, 0,
- 0, 137, 138, 137, 138, 137, 138, 140, 141, 141,
- 137, 138, 141, 0, 140, 0, 0, 140, 141, 140,
- 141, 140, 141, 144, 0, 0, 140, 141, 0, 0,
- 0, 0, 0, 144, 0, 144, 0, 144, 146, 146,
- 146, 144, 144, 145, 145, 145, 145, 145, 145, 145,
-
- 146, 146, 146, 146, 146, 146, 146, 166, 166, 166,
- 166, 166, 166, 166, 0, 169, 0, 0, 169, 0,
- 0, 0, 0, 0, 0, 169, 146, 169, 170, 169,
- 0, 145, 0, 169, 169, 0, 171, 0, 170, 172,
- 170, 0, 170, 0, 0, 0, 171, 170, 171, 172,
- 171, 172, 173, 172, 0, 171, 0, 0, 172, 0,
- 174, 0, 173, 175, 173, 173, 173, 174, 0, 0,
- 174, 173, 174, 175, 174, 175, 176, 175, 0, 174,
- 0, 0, 175, 0, 177, 0, 176, 0, 176, 0,
- 176, 0, 178, 176, 177, 176, 177, 0, 177, 0,
-
- 179, 0, 178, 177, 178, 0, 178, 179, 178, 0,
- 179, 178, 179, 180, 179, 0, 0, 0, 0, 179,
- 0, 181, 0, 180, 182, 180, 0, 180, 0, 0,
- 180, 181, 180, 181, 182, 181, 182, 0, 182, 0,
- 181, 182, 182, 182, 183, 183, 184, 0, 0, 184,
- 0, 0, 183, 0, 0, 183, 184, 183, 184, 183,
- 184, 185, 0, 0, 183, 184, 0, 186, 0, 0,
- 0, 185, 0, 185, 185, 185, 0, 186, 187, 186,
- 185, 186, 0, 0, 188, 0, 186, 188, 187, 187,
- 187, 0, 187, 0, 188, 189, 188, 187, 188, 0,
-
- 0, 190, 0, 188, 190, 189, 0, 189, 189, 189,
- 0, 190, 191, 190, 189, 190, 0, 0, 0, 0,
- 190, 0, 191, 192, 191, 0, 191, 0, 0, 191,
- 0, 191, 0, 192, 192, 192, 195, 192, 0, 0,
- 0, 0, 192, 0, 196, 0, 195, 197, 195, 0,
- 195, 0, 0, 195, 196, 195, 196, 197, 196, 197,
- 197, 197, 198, 196, 0, 199, 197, 0, 200, 0,
- 0, 200, 198, 0, 198, 199, 198, 199, 200, 199,
- 200, 198, 200, 199, 199, 201, 202, 200, 0, 203,
- 0, 0, 201, 0, 0, 0, 202, 0, 202, 203,
-
- 202, 203, 201, 203, 201, 202, 201, 204, 203, 0,
- 206, 201, 0, 206, 0, 0, 0, 204, 0, 204,
- 206, 204, 206, 0, 206, 207, 204, 0, 207, 206,
- 0, 208, 0, 0, 0, 207, 0, 207, 208, 207,
- 0, 208, 210, 208, 207, 208, 0, 0, 0, 0,
- 208, 0, 210, 211, 210, 0, 210, 0, 0, 212,
- 210, 210, 0, 211, 0, 211, 0, 211, 0, 212,
- 213, 212, 211, 212, 0, 0, 212, 0, 212, 0,
- 213, 214, 213, 0, 213, 0, 0, 213, 0, 213,
- 0, 214, 216, 214, 0, 214, 0, 217, 217, 0,
-
- 214, 214, 216, 0, 216, 0, 216, 0, 217, 218,
- 217, 216, 217, 0, 0, 219, 0, 217, 0, 218,
- 0, 218, 0, 218, 0, 219, 0, 219, 218, 219,
- 220, 221, 0, 220, 219, 0, 0, 0, 221, 0,
- 220, 221, 220, 221, 220, 221, 222, 0, 0, 220,
- 221, 0, 0, 0, 0, 0, 222, 223, 222, 0,
+ 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, 480, 158, 10, 716,
+ 10, 11, 11, 11, 11, 11, 11, 11, 11, 11,
+ 11, 11, 11, 11, 13, 480, 13, 87, 38, 79,
+ 326, 11, 11, 11, 11, 14, 326, 14, 38, 11,
+
+ 38, 32, 38, 79, 32, 325, 712, 38, 32, 325,
+ 250, 32, 32, 32, 32, 32, 41, 250, 708, 33,
+ 32, 11, 11, 11, 32, 33, 41, 328, 41, 33,
+ 41, 33, 33, 33, 79, 41, 706, 328, 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, 395, 35, 171, 171, 171, 395, 12,
+ 12, 12, 12, 704, 35, 35, 35, 12, 35, 169,
+ 169, 327, 251, 35, 42, 42, 35, 327, 42, 251,
+ 169, 36, 36, 703, 42, 48, 42, 456, 42, 12,
+
+ 12, 12, 36, 42, 36, 48, 36, 48, 36, 48,
+ 456, 36, 392, 42, 48, 701, 516, 39, 39, 392,
+ 39, 393, 394, 516, 12, 12, 12, 21, 39, 39,
+ 39, 48, 39, 394, 457, 39, 393, 39, 457, 559,
+ 458, 21, 458, 559, 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,
+ 562, 698, 21, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 31, 514, 562, 31, 31,
+
+ 31, 31, 31, 31, 31, 515, 695, 514, 515, 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, 629, 629, 694, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
+ 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
+ 37, 655, 513, 655, 691, 40, 40, 560, 560, 560,
+ 37, 561, 37, 40, 37, 597, 40, 513, 40, 37,
+ 40, 689, 597, 685, 680, 40, 561, 43, 43, 599,
+ 43, 678, 37, 599, 677, 676, 44, 675, 43, 44,
+
+ 43, 672, 43, 37, 43, 560, 44, 43, 44, 45,
+ 44, 670, 45, 669, 664, 44, 45, 663, 46, 45,
+ 662, 45, 658, 45, 46, 46, 654, 45, 45, 653,
+ 652, 43, 45, 47, 651, 46, 648, 46, 646, 46,
+ 645, 46, 643, 47, 46, 47, 49, 47, 46, 640,
+ 639, 47, 47, 49, 638, 632, 49, 46, 49, 628,
+ 49, 631, 631, 631, 627, 49, 50, 50, 50, 50,
+ 50, 50, 50, 47, 89, 89, 89, 50, 626, 624,
+ 89, 97, 621, 619, 618, 616, 89, 89, 612, 611,
+ 610, 97, 50, 97, 600, 97, 596, 50, 74, 631,
+
+ 97, 595, 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, 594, 98, 99, 98, 99, 98, 99, 593, 98,
+ 591, 98, 99, 100, 101, 587, 585, 584, 74, 74,
+ 74, 582, 577, 100, 101, 100, 101, 100, 101, 102,
+ 576, 575, 100, 101, 558, 557, 100, 556, 555, 102,
+ 553, 102, 551, 102, 74, 75, 548, 102, 102, 75,
+ 75, 75, 75, 75, 75, 75, 75, 75, 546, 104,
+ 544, 542, 105, 535, 104, 75, 75, 75, 75, 104,
+
+ 534, 104, 105, 104, 105, 106, 105, 533, 104, 532,
+ 105, 105, 75, 520, 512, 106, 511, 106, 107, 106,
+ 510, 509, 506, 504, 106, 75, 75, 75, 107, 108,
+ 107, 107, 107, 679, 679, 679, 501, 107, 496, 108,
+ 494, 108, 482, 108, 109, 109, 481, 463, 108, 459,
+ 455, 75, 110, 110, 454, 109, 453, 109, 109, 109,
+ 452, 451, 448, 110, 109, 110, 111, 110, 446, 112,
+ 441, 679, 110, 112, 436, 433, 111, 111, 111, 112,
+ 111, 112, 113, 112, 421, 111, 420, 419, 112, 400,
+ 390, 389, 113, 388, 113, 386, 113, 114, 114, 114,
+
+ 116, 113, 382, 115, 115, 380, 375, 114, 370, 114,
+ 116, 114, 116, 115, 116, 115, 114, 115, 117, 116,
+ 366, 115, 115, 355, 354, 120, 353, 334, 117, 322,
+ 117, 117, 117, 120, 321, 320, 121, 117, 314, 121,
+ 303, 298, 294, 120, 122, 120, 121, 120, 121, 283,
+ 121, 282, 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, 0, 181, 182, 0, 181, 0, 0,
+ 0, 0, 0, 0, 181, 182, 181, 182, 181, 182,
+ 183, 155, 181, 181, 182, 0, 154, 0, 184, 0,
+ 183, 185, 183, 0, 183, 0, 0, 0, 184, 183,
+ 184, 185, 184, 185, 185, 185, 186, 184, 0, 187,
+ 185, 0, 188, 186, 0, 0, 186, 0, 186, 187,
+ 186, 187, 188, 187, 188, 186, 188, 189, 187, 188,
+ 0, 188, 0, 190, 0, 0, 0, 189, 0, 189,
+
+ 0, 189, 0, 190, 191, 190, 189, 190, 0, 190,
+ 192, 191, 190, 0, 191, 0, 191, 0, 191, 0,
+ 192, 193, 192, 191, 192, 0, 0, 192, 0, 192,
+ 0, 193, 194, 193, 0, 193, 0, 0, 0, 0,
+ 193, 0, 194, 0, 194, 0, 194, 195, 195, 194,
+ 194, 194, 0, 0, 196, 195, 0, 196, 195, 0,
+ 195, 0, 195, 0, 196, 197, 196, 195, 196, 0,
+ 0, 198, 0, 196, 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, 223, 224, 223, 224, 225, 0,
- 224, 225, 224, 0, 226, 0, 0, 226, 225, 0,
- 225, 0, 225, 0, 226, 228, 226, 225, 226, 0,
-
- 0, 0, 0, 226, 0, 228, 229, 228, 228, 228,
- 228, 230, 0, 0, 228, 228, 229, 230, 229, 0,
- 229, 0, 0, 0, 229, 229, 0, 230, 234, 230,
- 0, 230, 0, 0, 234, 0, 230, 0, 234, 0,
- 234, 0, 234, 236, 236, 236, 0, 234, 0, 0,
- 0, 0, 244, 245, 0, 236, 236, 236, 236, 236,
- 236, 236, 244, 245, 244, 245, 244, 245, 246, 245,
- 0, 244, 245, 0, 247, 246, 0, 0, 246, 0,
- 246, 0, 246, 0, 247, 247, 247, 246, 247, 248,
- 249, 0, 0, 247, 0, 0, 0, 0, 0, 248,
-
- 249, 248, 249, 248, 249, 251, 251, 250, 248, 249,
- 250, 0, 0, 0, 0, 0, 251, 250, 251, 250,
- 251, 250, 252, 252, 0, 251, 250, 0, 253, 0,
- 0, 0, 252, 0, 252, 249, 252, 0, 253, 254,
- 253, 252, 253, 0, 0, 253, 0, 253, 0, 254,
- 255, 254, 254, 254, 0, 0, 0, 0, 254, 0,
- 255, 0, 255, 0, 255, 257, 255, 256, 256, 255,
- 0, 258, 0, 0, 0, 257, 0, 257, 256, 257,
- 256, 258, 256, 258, 257, 258, 259, 256, 259, 260,
- 258, 260, 261, 0, 0, 261, 259, 0, 259, 260,
-
- 259, 260, 261, 260, 261, 259, 261, 262, 260, 0,
- 0, 261, 0, 263, 0, 0, 0, 262, 0, 262,
- 263, 262, 0, 263, 264, 263, 262, 263, 0, 0,
- 0, 0, 263, 0, 264, 265, 264, 0, 264, 0,
- 264, 0, 0, 264, 0, 265, 0, 265, 0, 265,
- 266, 265, 0, 266, 265, 0, 267, 0, 0, 0,
- 266, 0, 266, 0, 266, 0, 267, 270, 267, 266,
- 267, 0, 0, 271, 0, 267, 0, 270, 0, 270,
- 0, 270, 0, 271, 0, 271, 270, 271, 272, 273,
- 0, 271, 271, 0, 0, 272, 0, 0, 272, 273,
-
- 272, 273, 272, 273, 274, 273, 0, 272, 273, 275,
- 275, 0, 270, 0, 274, 0, 274, 0, 274, 0,
- 275, 276, 275, 274, 275, 277, 276, 0, 0, 275,
- 0, 276, 0, 276, 277, 276, 0, 276, 0, 0,
- 276, 0, 278, 0, 277, 0, 277, 0, 277, 0,
- 279, 0, 278, 277, 278, 0, 278, 0, 0, 278,
- 279, 278, 279, 0, 279, 281, 281, 0, 282, 279,
- 0, 0, 0, 0, 0, 281, 0, 281, 282, 281,
- 282, 283, 282, 0, 281, 0, 282, 282, 0, 285,
- 286, 283, 285, 283, 283, 283, 0, 0, 0, 285,
-
- 283, 285, 0, 285, 287, 286, 0, 287, 285, 0,
- 0, 0, 0, 0, 287, 286, 287, 286, 287, 286,
- 288, 288, 290, 287, 286, 0, 0, 0, 0, 0,
- 0, 288, 290, 288, 290, 288, 290, 291, 0, 0,
- 288, 290, 0, 0, 0, 0, 0, 291, 0, 291,
- 292, 291, 0, 292, 0, 291, 291, 0, 293, 0,
- 292, 294, 292, 0, 292, 0, 0, 0, 293, 292,
- 293, 294, 293, 294, 0, 294, 296, 293, 295, 295,
- 294, 0, 297, 0, 0, 299, 296, 0, 296, 295,
- 296, 295, 297, 295, 297, 296, 297, 298, 295, 0,
-
- 299, 297, 0, 301, 0, 0, 0, 298, 0, 298,
- 299, 298, 299, 301, 299, 301, 298, 301, 302, 299,
- 0, 296, 301, 0, 303, 0, 0, 303, 302, 0,
- 302, 0, 302, 0, 303, 304, 303, 302, 303, 0,
- 0, 305, 0, 303, 0, 304, 0, 304, 0, 304,
- 0, 305, 0, 305, 304, 305, 309, 0, 305, 0,
- 305, 0, 0, 0, 0, 0, 309, 0, 309, 0,
- 309, 304, 0, 314, 0, 309, 310, 310, 310, 310,
- 310, 310, 310, 314, 0, 314, 0, 314, 315, 315,
- 0, 314, 314, 0, 0, 0, 0, 316, 316, 315,
-
- 0, 315, 0, 315, 317, 317, 0, 316, 315, 316,
- 0, 316, 0, 318, 310, 317, 316, 317, 0, 317,
- 320, 320, 0, 318, 317, 318, 0, 318, 0, 321,
- 321, 320, 318, 320, 0, 320, 0, 0, 0, 321,
- 320, 321, 322, 321, 0, 322, 0, 0, 321, 0,
- 323, 0, 322, 324, 322, 0, 322, 0, 0, 0,
- 323, 322, 323, 324, 323, 324, 0, 324, 326, 323,
- 325, 325, 324, 0, 327, 326, 0, 0, 326, 0,
- 326, 325, 326, 325, 327, 325, 327, 326, 327, 328,
- 325, 0, 328, 327, 0, 329, 328, 329, 0, 328,
-
- 0, 328, 0, 328, 0, 329, 0, 329, 328, 329,
- 330, 331, 0, 330, 329, 0, 0, 0, 0, 0,
- 330, 331, 330, 331, 330, 331, 332, 331, 0, 330,
- 331, 0, 0, 0, 0, 0, 332, 0, 332, 0,
- 332, 333, 333, 0, 332, 332, 0, 334, 0, 0,
- 0, 333, 0, 333, 0, 333, 0, 334, 335, 334,
- 333, 334, 0, 0, 336, 334, 334, 0, 335, 0,
- 335, 0, 335, 0, 336, 335, 336, 335, 336, 337,
- 341, 0, 0, 336, 0, 0, 0, 341, 0, 337,
- 341, 337, 341, 337, 341, 0, 0, 343, 337, 341,
-
- 342, 342, 0, 342, 0, 0, 0, 343, 0, 343,
- 342, 343, 342, 0, 342, 343, 343, 345, 344, 342,
- 344, 0, 0, 0, 0, 0, 0, 345, 344, 345,
- 344, 345, 344, 0, 347, 346, 345, 344, 346, 0,
- 0, 349, 0, 348, 347, 346, 347, 346, 347, 346,
- 348, 347, 0, 347, 346, 0, 349, 0, 0, 0,
- 348, 0, 348, 0, 348, 0, 349, 351, 349, 348,
- 349, 0, 0, 0, 0, 349, 0, 351, 352, 351,
- 0, 351, 0, 0, 353, 351, 351, 0, 352, 0,
- 352, 0, 352, 0, 353, 355, 353, 352, 353, 0,
-
- 0, 0, 0, 353, 0, 355, 356, 355, 0, 355,
- 0, 355, 357, 356, 355, 0, 356, 0, 356, 0,
- 356, 0, 357, 358, 357, 356, 357, 0, 0, 0,
- 0, 357, 0, 358, 0, 358, 360, 358, 0, 361,
- 0, 358, 358, 360, 0, 0, 360, 362, 360, 361,
- 360, 361, 362, 361, 0, 360, 0, 362, 361, 362,
- 363, 362, 0, 0, 0, 0, 362, 0, 0, 0,
- 363, 365, 363, 0, 363, 0, 0, 367, 365, 363,
- 0, 365, 363, 365, 0, 365, 0, 367, 0, 367,
- 365, 367, 368, 369, 0, 368, 367, 0, 0, 0,
-
- 0, 0, 368, 369, 368, 369, 368, 369, 371, 369,
- 0, 368, 369, 0, 379, 0, 0, 0, 371, 0,
- 371, 0, 371, 0, 379, 0, 379, 371, 379, 380,
- 380, 381, 381, 379, 0, 0, 0, 0, 0, 380,
- 382, 380, 381, 380, 381, 0, 381, 0, 380, 0,
- 382, 381, 382, 371, 382, 384, 0, 0, 382, 382,
- 0, 385, 0, 0, 0, 384, 0, 384, 0, 384,
- 0, 385, 386, 385, 384, 385, 0, 0, 387, 385,
- 385, 387, 386, 0, 386, 0, 386, 0, 387, 388,
- 387, 386, 387, 0, 0, 389, 388, 387, 0, 388,
-
- 0, 388, 0, 388, 0, 389, 390, 389, 388, 389,
- 0, 0, 0, 0, 389, 0, 390, 391, 390, 391,
- 390, 0, 0, 392, 390, 390, 0, 391, 0, 391,
- 0, 391, 0, 392, 0, 392, 391, 392, 0, 0,
- 393, 392, 392, 393, 0, 0, 394, 0, 394, 0,
- 393, 0, 393, 0, 393, 0, 394, 0, 394, 393,
- 394, 395, 395, 396, 0, 394, 0, 0, 0, 0,
- 0, 0, 395, 396, 395, 396, 395, 396, 397, 398,
- 0, 395, 396, 0, 0, 397, 0, 0, 397, 398,
- 397, 398, 397, 398, 399, 0, 398, 397, 398, 400,
-
- 400, 399, 0, 0, 399, 0, 399, 0, 399, 0,
- 400, 404, 400, 399, 400, 404, 0, 405, 0, 400,
- 0, 404, 0, 404, 405, 404, 0, 405, 0, 405,
- 404, 405, 406, 407, 406, 0, 405, 0, 0, 0,
- 0, 0, 406, 407, 406, 407, 406, 407, 0, 0,
- 407, 406, 407, 408, 409, 409, 408, 0, 0, 0,
- 0, 0, 0, 408, 409, 408, 409, 408, 409, 410,
- 0, 0, 408, 409, 0, 0, 0, 411, 0, 410,
- 411, 410, 0, 410, 0, 410, 0, 411, 410, 411,
- 412, 411, 0, 0, 0, 0, 411, 0, 413, 0,
-
- 412, 415, 412, 0, 412, 413, 0, 412, 413, 412,
- 413, 415, 413, 415, 0, 415, 418, 413, 416, 416,
- 415, 0, 419, 0, 0, 0, 418, 0, 418, 416,
- 418, 416, 419, 416, 419, 418, 419, 420, 416, 0,
- 421, 419, 0, 421, 0, 0, 0, 420, 423, 420,
- 421, 420, 421, 0, 421, 420, 420, 0, 423, 421,
- 423, 0, 423, 424, 424, 0, 425, 423, 423, 426,
- 0, 0, 0, 424, 0, 424, 425, 424, 425, 426,
- 425, 426, 424, 426, 428, 425, 428, 430, 426, 0,
- 431, 0, 0, 0, 428, 0, 428, 430, 428, 430,
-
- 431, 430, 431, 428, 431, 440, 430, 431, 441, 431,
- 0, 0, 0, 0, 0, 440, 0, 440, 441, 440,
- 441, 442, 441, 440, 440, 0, 441, 441, 442, 444,
- 0, 442, 0, 442, 0, 442, 0, 0, 0, 444,
- 442, 444, 445, 444, 0, 445, 0, 0, 444, 0,
- 446, 0, 445, 447, 445, 0, 445, 0, 0, 0,
- 446, 445, 446, 447, 446, 447, 448, 447, 0, 446,
- 0, 0, 447, 448, 449, 0, 448, 450, 448, 0,
- 448, 0, 0, 0, 449, 448, 449, 450, 449, 450,
- 451, 450, 0, 449, 0, 0, 450, 451, 453, 0,
-
- 451, 452, 451, 452, 451, 0, 0, 0, 453, 451,
- 453, 452, 453, 452, 454, 452, 0, 453, 0, 0,
- 452, 0, 0, 0, 454, 455, 454, 0, 454, 0,
- 0, 0, 454, 454, 0, 455, 456, 455, 0, 455,
- 0, 0, 457, 455, 455, 0, 456, 0, 456, 0,
- 456, 0, 457, 458, 457, 456, 457, 0, 0, 462,
- 0, 457, 0, 458, 0, 458, 462, 458, 0, 462,
- 463, 462, 458, 462, 0, 0, 0, 0, 462, 0,
- 463, 464, 463, 0, 463, 0, 0, 465, 463, 463,
- 0, 464, 0, 464, 0, 464, 0, 465, 466, 465,
-
- 464, 465, 0, 0, 467, 0, 465, 467, 466, 0,
- 466, 0, 466, 0, 467, 466, 467, 466, 467, 468,
- 469, 469, 0, 467, 0, 0, 0, 0, 0, 468,
- 469, 468, 469, 468, 469, 470, 471, 0, 468, 469,
- 0, 0, 0, 0, 0, 470, 471, 470, 471, 470,
- 471, 473, 475, 0, 470, 471, 0, 0, 0, 0,
- 0, 473, 475, 473, 475, 473, 475, 0, 0, 476,
- 473, 475, 477, 476, 0, 478, 0, 0, 0, 476,
- 470, 476, 477, 476, 477, 478, 477, 478, 476, 478,
- 480, 477, 0, 480, 478, 0, 481, 0, 0, 481,
-
- 480, 0, 480, 0, 480, 0, 481, 0, 481, 480,
- 481, 483, 0, 494, 483, 481, 485, 485, 0, 0,
- 0, 483, 0, 483, 0, 483, 0, 485, 494, 485,
- 483, 485, 0, 0, 495, 0, 485, 0, 494, 0,
- 494, 495, 494, 0, 495, 0, 495, 494, 495, 496,
- 496, 0, 0, 495, 0, 498, 0, 0, 0, 496,
- 0, 496, 0, 496, 0, 498, 499, 498, 496, 498,
- 0, 498, 0, 0, 498, 0, 499, 0, 499, 500,
- 499, 0, 500, 0, 499, 499, 0, 501, 0, 500,
- 502, 500, 0, 500, 0, 0, 0, 501, 500, 501,
-
- 502, 501, 502, 502, 502, 503, 501, 0, 504, 502,
- 0, 504, 0, 0, 0, 503, 505, 503, 504, 503,
- 504, 0, 504, 0, 503, 0, 505, 504, 505, 506,
- 505, 0, 507, 0, 0, 505, 506, 0, 0, 506,
- 0, 506, 507, 506, 507, 0, 507, 512, 506, 0,
- 512, 507, 0, 513, 0, 0, 0, 512, 0, 512,
- 0, 512, 0, 513, 514, 513, 512, 513, 0, 0,
- 515, 0, 513, 0, 514, 0, 514, 0, 514, 0,
- 515, 516, 515, 514, 515, 0, 0, 0, 0, 515,
- 0, 516, 518, 516, 0, 516, 518, 0, 520, 516,
-
- 516, 0, 518, 0, 518, 524, 518, 0, 520, 522,
- 520, 518, 520, 0, 0, 0, 522, 520, 0, 522,
- 524, 522, 0, 522, 0, 0, 525, 0, 522, 0,
- 524, 0, 524, 0, 524, 0, 525, 527, 525, 524,
- 525, 0, 0, 529, 0, 525, 0, 527, 0, 527,
- 0, 527, 0, 529, 537, 529, 527, 529, 0, 0,
- 0, 0, 529, 0, 537, 538, 537, 0, 537, 0,
- 0, 537, 0, 537, 0, 538, 539, 538, 538, 538,
- 0, 0, 541, 0, 538, 0, 539, 0, 539, 0,
- 539, 0, 541, 542, 541, 539, 541, 0, 0, 0,
-
- 0, 541, 0, 542, 543, 542, 543, 542, 0, 0,
- 542, 0, 542, 0, 543, 544, 543, 0, 543, 0,
- 544, 545, 0, 543, 0, 544, 0, 544, 0, 544,
- 0, 545, 0, 545, 544, 545, 546, 547, 546, 0,
- 545, 0, 0, 0, 0, 0, 546, 547, 546, 547,
- 546, 547, 552, 553, 0, 546, 547, 0, 0, 0,
- 553, 0, 552, 553, 552, 553, 552, 553, 552, 555,
- 558, 552, 553, 0, 0, 0, 555, 0, 0, 555,
- 558, 555, 558, 555, 558, 560, 0, 0, 555, 558,
- 0, 562, 0, 0, 0, 560, 0, 560, 560, 560,
-
- 0, 562, 564, 562, 560, 562, 0, 0, 0, 562,
- 562, 0, 564, 0, 564, 0, 564, 570, 570, 570,
- 0, 564, 0, 0, 0, 0, 572, 573, 0, 570,
- 570, 570, 570, 570, 570, 570, 572, 573, 572, 573,
- 572, 573, 574, 575, 0, 572, 573, 0, 0, 572,
- 0, 0, 574, 575, 574, 575, 574, 575, 576, 577,
- 0, 574, 575, 0, 0, 0, 0, 0, 576, 577,
- 576, 577, 576, 577, 578, 579, 577, 576, 577, 0,
- 0, 0, 579, 0, 578, 579, 578, 579, 578, 579,
- 583, 0, 0, 578, 579, 0, 0, 0, 584, 0,
-
- 583, 0, 583, 0, 583, 0, 586, 0, 584, 583,
- 584, 584, 584, 0, 589, 0, 586, 584, 586, 0,
- 586, 589, 591, 0, 589, 586, 589, 0, 589, 591,
- 592, 0, 591, 589, 591, 0, 591, 592, 0, 0,
- 592, 591, 592, 0, 592, 0, 0, 601, 602, 592,
- 599, 599, 599, 599, 599, 599, 599, 601, 602, 601,
- 602, 601, 602, 603, 0, 0, 601, 602, 0, 0,
- 0, 604, 0, 603, 0, 603, 0, 603, 0, 0,
- 0, 604, 603, 604, 608, 604, 0, 0, 599, 604,
- 604, 0, 610, 0, 608, 613, 608, 0, 608, 610,
-
- 0, 0, 610, 608, 610, 613, 610, 613, 615, 613,
- 615, 610, 0, 613, 613, 0, 0, 0, 615, 616,
- 615, 0, 615, 616, 0, 0, 0, 615, 0, 616,
- 0, 616, 0, 616, 623, 623, 623, 0, 616, 0,
- 0, 0, 0, 624, 625, 0, 623, 623, 623, 623,
- 623, 623, 623, 624, 625, 624, 625, 624, 625, 629,
- 0, 624, 624, 625, 0, 631, 0, 625, 0, 629,
- 0, 629, 0, 629, 0, 631, 634, 631, 629, 631,
- 0, 0, 636, 631, 631, 0, 634, 0, 634, 0,
- 634, 0, 636, 637, 636, 634, 636, 0, 0, 634,
-
- 637, 636, 0, 637, 0, 637, 644, 637, 643, 643,
- 0, 0, 637, 0, 0, 0, 644, 648, 644, 643,
- 644, 643, 0, 643, 0, 644, 0, 648, 643, 648,
- 0, 648, 651, 0, 0, 653, 648, 0, 653, 0,
- 648, 0, 651, 0, 651, 653, 651, 653, 0, 653,
- 0, 651, 0, 0, 653, 658, 658, 658, 0, 0,
- 0, 0, 0, 0, 659, 661, 0, 658, 658, 658,
- 658, 658, 658, 658, 659, 661, 659, 661, 659, 661,
- 664, 667, 0, 659, 661, 0, 659, 0, 0, 0,
- 664, 667, 664, 667, 664, 667, 664, 671, 0, 664,
-
- 667, 0, 0, 0, 0, 0, 0, 671, 0, 671,
- 0, 671, 0, 0, 0, 0, 671, 675, 675, 675,
- 675, 675, 675, 675, 675, 675, 675, 675, 675, 676,
- 676, 676, 676, 676, 676, 676, 676, 676, 676, 676,
- 676, 677, 677, 677, 677, 677, 677, 677, 677, 677,
- 677, 677, 677, 678, 678, 678, 678, 678, 678, 678,
- 678, 678, 678, 678, 678, 679, 679, 679, 679, 679,
- 679, 679, 679, 679, 679, 679, 679, 680, 680, 680,
- 0, 680, 680, 680, 680, 680, 680, 680, 680, 681,
- 681, 0, 0, 681, 0, 681, 682, 0, 682, 683,
-
- 683, 0, 683, 683, 684, 684, 0, 684, 684, 684,
- 0, 684, 684, 684, 684, 684, 685, 685, 685, 0,
- 685, 685, 685, 685, 685, 685, 685, 685, 686, 686,
- 686, 686, 686, 686, 686, 686, 0, 686, 686, 687,
- 0, 0, 687, 0, 687, 687, 687, 687, 687, 687,
- 688, 688, 0, 688, 688, 689, 689, 0, 689, 689,
- 690, 690, 0, 690, 690, 674, 674, 674, 674, 674,
- 674, 674, 674, 674, 674, 674, 674, 674, 674, 674,
- 674, 674, 674, 674, 674, 674, 674, 674, 674, 674,
- 674, 674, 674, 674, 674, 674, 674, 674, 674, 674,
-
- 674, 674, 674, 674, 674, 674, 674, 674, 674, 674,
- 674, 674, 674, 674, 674, 674, 674, 674, 674, 674,
- 674, 674, 674, 674, 674, 674, 674, 674, 674, 674,
- 674, 674, 674, 674, 674, 674, 674, 674, 674, 674,
- 674, 674, 674, 674
+ 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, 259, 0, 248,
+ 248, 248, 248, 248, 248, 248, 258, 259, 258, 259,
+ 258, 259, 260, 259, 0, 258, 259, 0, 261, 260,
+ 0, 0, 260, 0, 260, 0, 260, 0, 261, 261,
+ 261, 260, 261, 262, 263, 0, 0, 261, 0, 0,
+
+ 0, 0, 0, 262, 263, 262, 263, 262, 263, 265,
+ 265, 264, 262, 263, 264, 0, 0, 0, 0, 0,
+ 265, 264, 265, 264, 265, 264, 266, 266, 0, 265,
+ 264, 0, 267, 0, 0, 0, 266, 0, 266, 263,
+ 266, 0, 267, 268, 267, 266, 267, 0, 0, 267,
+ 0, 267, 0, 268, 269, 268, 268, 268, 0, 0,
+ 0, 0, 268, 0, 269, 0, 269, 0, 269, 271,
+ 269, 270, 270, 269, 0, 272, 0, 0, 0, 271,
+ 0, 271, 270, 271, 270, 272, 270, 272, 271, 272,
+ 273, 270, 273, 274, 272, 274, 275, 0, 0, 275,
+
+ 273, 0, 273, 274, 273, 274, 275, 274, 275, 273,
+ 275, 276, 274, 0, 0, 275, 0, 277, 0, 0,
+ 0, 276, 0, 276, 277, 276, 0, 277, 278, 277,
+ 276, 277, 0, 0, 0, 0, 277, 0, 278, 279,
+ 278, 0, 278, 0, 278, 0, 0, 278, 0, 279,
+ 0, 279, 0, 279, 280, 279, 0, 280, 279, 0,
+ 281, 0, 0, 0, 280, 0, 280, 0, 280, 0,
+ 281, 284, 281, 280, 281, 0, 0, 285, 0, 281,
+ 0, 284, 0, 284, 0, 284, 0, 285, 0, 285,
+ 284, 285, 286, 287, 0, 285, 285, 0, 0, 286,
+
+ 0, 0, 286, 287, 286, 287, 286, 287, 288, 287,
+ 0, 286, 287, 289, 289, 0, 284, 0, 288, 0,
+ 288, 0, 288, 291, 289, 0, 289, 288, 289, 290,
+ 289, 0, 291, 289, 290, 0, 0, 0, 0, 290,
+ 292, 290, 291, 290, 291, 290, 291, 0, 290, 0,
+ 292, 291, 292, 293, 292, 0, 0, 292, 0, 292,
+ 0, 295, 295, 293, 296, 293, 0, 293, 0, 0,
+ 0, 295, 293, 295, 296, 295, 296, 297, 296, 0,
+ 295, 0, 296, 296, 0, 299, 300, 297, 299, 297,
+ 297, 297, 0, 0, 0, 299, 297, 299, 0, 299,
+
+ 301, 300, 0, 301, 299, 0, 0, 0, 0, 0,
+ 301, 300, 301, 300, 301, 300, 302, 302, 304, 301,
+ 300, 0, 0, 0, 0, 0, 0, 302, 304, 302,
+ 304, 302, 304, 305, 0, 0, 302, 304, 0, 0,
+ 0, 0, 0, 305, 0, 305, 306, 305, 0, 306,
+ 0, 305, 305, 0, 307, 0, 306, 308, 306, 0,
+ 306, 0, 0, 0, 307, 306, 307, 308, 307, 308,
+ 0, 308, 310, 307, 309, 309, 308, 0, 311, 0,
+ 0, 313, 310, 0, 310, 309, 310, 309, 311, 309,
+ 311, 310, 311, 312, 309, 0, 313, 311, 0, 315,
+
+ 0, 0, 0, 312, 0, 312, 313, 312, 313, 315,
+ 313, 315, 312, 315, 316, 313, 0, 310, 315, 0,
+ 317, 0, 0, 317, 316, 0, 316, 0, 316, 0,
+ 317, 318, 317, 316, 317, 0, 0, 319, 0, 317,
+ 0, 318, 0, 318, 0, 318, 0, 319, 0, 319,
+ 318, 319, 323, 0, 319, 0, 319, 0, 0, 0,
+ 0, 0, 323, 0, 323, 0, 323, 318, 0, 329,
+ 0, 323, 324, 324, 324, 324, 324, 324, 324, 329,
+ 0, 329, 0, 329, 330, 330, 0, 329, 329, 0,
+ 0, 0, 0, 331, 331, 330, 0, 330, 0, 330,
+
+ 332, 332, 0, 331, 330, 331, 0, 331, 0, 333,
+ 324, 332, 331, 332, 0, 332, 335, 335, 0, 333,
+ 332, 333, 0, 333, 0, 336, 336, 335, 333, 335,
+ 0, 335, 0, 0, 0, 336, 335, 336, 337, 336,
+ 0, 337, 0, 0, 336, 0, 338, 0, 337, 339,
+ 337, 0, 337, 0, 0, 0, 338, 337, 338, 339,
+ 338, 339, 0, 339, 341, 338, 340, 340, 339, 0,
+ 342, 341, 0, 0, 341, 0, 341, 340, 341, 340,
+ 342, 340, 342, 341, 342, 343, 340, 0, 343, 342,
+ 0, 344, 343, 344, 0, 343, 0, 343, 0, 343,
+
+ 0, 344, 0, 344, 343, 344, 345, 346, 0, 345,
+ 344, 0, 0, 345, 0, 0, 345, 346, 345, 346,
+ 345, 346, 347, 346, 0, 345, 346, 0, 0, 0,
+ 0, 0, 347, 0, 347, 0, 347, 348, 348, 0,
+ 347, 347, 0, 349, 0, 0, 0, 348, 0, 348,
+ 0, 348, 0, 349, 350, 349, 348, 349, 0, 0,
+ 351, 349, 349, 0, 350, 0, 350, 0, 350, 0,
+ 351, 350, 351, 350, 351, 352, 356, 0, 0, 351,
+ 0, 0, 0, 356, 0, 352, 356, 352, 356, 352,
+ 356, 0, 0, 358, 352, 356, 357, 357, 0, 357,
+
+ 0, 0, 0, 358, 0, 358, 357, 358, 357, 0,
+ 357, 358, 358, 360, 359, 357, 359, 0, 0, 0,
+ 0, 0, 0, 360, 359, 360, 359, 360, 359, 361,
+ 0, 0, 360, 359, 0, 362, 0, 0, 362, 361,
+ 0, 361, 0, 361, 0, 362, 363, 362, 361, 362,
+ 364, 0, 0, 365, 362, 0, 363, 364, 363, 0,
+ 363, 0, 0, 363, 0, 363, 0, 364, 365, 364,
+ 0, 364, 0, 0, 367, 0, 364, 0, 365, 0,
+ 365, 0, 365, 0, 367, 368, 367, 365, 367, 0,
+ 0, 369, 367, 367, 0, 368, 0, 368, 0, 368,
+
+ 0, 369, 371, 369, 368, 369, 0, 0, 0, 0,
+ 369, 0, 371, 372, 371, 0, 371, 0, 371, 373,
+ 372, 371, 0, 372, 0, 372, 0, 372, 0, 373,
+ 374, 373, 372, 373, 0, 0, 0, 0, 373, 0,
+ 374, 0, 374, 376, 374, 0, 377, 0, 374, 374,
+ 376, 0, 0, 376, 378, 376, 377, 376, 377, 378,
+ 377, 0, 376, 0, 378, 377, 378, 379, 378, 0,
+ 0, 0, 0, 378, 0, 0, 0, 379, 381, 379,
+ 0, 379, 0, 0, 383, 381, 379, 0, 381, 379,
+ 381, 0, 381, 0, 383, 0, 383, 381, 383, 384,
+
+ 385, 0, 384, 383, 0, 0, 0, 0, 0, 384,
+ 385, 384, 385, 384, 385, 387, 385, 0, 384, 385,
+ 0, 396, 0, 0, 0, 387, 0, 387, 0, 387,
+ 0, 396, 0, 396, 387, 396, 397, 397, 398, 398,
+ 396, 0, 0, 0, 0, 0, 397, 399, 397, 398,
+ 397, 398, 0, 398, 0, 397, 0, 399, 398, 399,
+ 387, 399, 401, 0, 0, 399, 399, 0, 402, 0,
+ 0, 0, 401, 0, 401, 0, 401, 0, 402, 403,
+ 402, 401, 402, 0, 0, 404, 402, 402, 404, 403,
+ 0, 403, 0, 403, 0, 404, 405, 404, 403, 404,
+
+ 0, 0, 406, 405, 404, 0, 405, 0, 405, 0,
+ 405, 0, 406, 407, 406, 405, 406, 0, 0, 0,
+ 0, 406, 0, 407, 408, 407, 408, 407, 0, 0,
+ 409, 407, 407, 0, 408, 0, 408, 0, 408, 0,
+ 409, 0, 409, 408, 409, 0, 0, 410, 409, 409,
+ 410, 0, 0, 411, 0, 411, 0, 410, 0, 410,
+ 0, 410, 0, 411, 412, 411, 410, 411, 0, 413,
+ 413, 0, 411, 0, 412, 0, 412, 0, 412, 0,
+ 413, 414, 413, 412, 413, 0, 0, 415, 0, 413,
+ 0, 414, 0, 414, 415, 414, 0, 415, 416, 415,
+
+ 414, 415, 0, 0, 417, 0, 415, 0, 416, 0,
+ 416, 417, 416, 0, 417, 416, 417, 416, 417, 418,
+ 418, 422, 0, 417, 0, 422, 0, 0, 0, 0,
+ 418, 422, 418, 422, 418, 422, 423, 0, 0, 418,
+ 422, 0, 424, 423, 424, 0, 423, 0, 423, 0,
+ 423, 0, 424, 425, 424, 423, 424, 0, 0, 426,
+ 0, 424, 426, 425, 0, 425, 0, 425, 0, 426,
+ 425, 426, 425, 426, 427, 427, 0, 0, 426, 0,
+ 428, 428, 0, 0, 427, 0, 427, 0, 427, 0,
+ 428, 429, 428, 427, 428, 0, 0, 0, 0, 428,
+
+ 0, 429, 0, 429, 0, 429, 430, 429, 0, 430,
+ 429, 0, 431, 0, 0, 0, 430, 0, 430, 0,
+ 430, 0, 431, 432, 431, 430, 431, 0, 0, 431,
+ 432, 431, 0, 432, 434, 432, 0, 432, 0, 435,
+ 435, 0, 432, 0, 434, 0, 434, 0, 434, 0,
+ 435, 437, 435, 434, 435, 0, 0, 438, 0, 435,
+ 0, 437, 0, 437, 0, 437, 0, 438, 439, 438,
+ 437, 438, 0, 0, 0, 0, 438, 0, 439, 0,
+ 439, 440, 439, 0, 440, 0, 439, 439, 0, 442,
+ 0, 440, 0, 440, 0, 440, 0, 0, 0, 442,
+
+ 440, 442, 0, 442, 443, 443, 0, 444, 442, 442,
+ 445, 0, 0, 0, 443, 0, 443, 444, 443, 444,
+ 445, 444, 445, 443, 445, 447, 444, 447, 449, 445,
+ 0, 450, 0, 0, 0, 447, 0, 447, 449, 447,
+ 449, 450, 449, 450, 447, 450, 460, 449, 450, 461,
+ 450, 0, 0, 0, 0, 0, 460, 0, 460, 461,
+ 460, 461, 462, 461, 460, 460, 0, 461, 461, 462,
+ 464, 0, 462, 0, 462, 0, 462, 0, 0, 0,
+ 464, 462, 464, 465, 464, 0, 465, 0, 0, 464,
+ 0, 466, 0, 465, 467, 465, 0, 465, 0, 0,
+
+ 0, 466, 465, 466, 467, 466, 467, 468, 467, 0,
+ 466, 0, 0, 467, 468, 469, 0, 468, 470, 468,
+ 0, 468, 0, 0, 0, 469, 468, 469, 470, 469,
+ 470, 471, 470, 0, 469, 0, 0, 470, 471, 473,
+ 0, 471, 472, 471, 472, 471, 0, 0, 0, 473,
+ 471, 473, 472, 473, 472, 474, 472, 0, 473, 0,
+ 474, 472, 0, 475, 0, 474, 476, 474, 0, 474,
+ 0, 0, 0, 475, 474, 475, 476, 475, 476, 477,
+ 476, 475, 475, 0, 476, 476, 0, 478, 0, 477,
+ 479, 477, 0, 477, 0, 0, 0, 478, 477, 478,
+
+ 479, 478, 479, 483, 479, 0, 478, 0, 0, 479,
+ 483, 484, 0, 483, 485, 483, 0, 483, 0, 0,
+ 0, 484, 483, 484, 485, 484, 485, 486, 485, 484,
+ 484, 0, 0, 485, 0, 487, 0, 486, 0, 486,
+ 0, 486, 0, 0, 0, 487, 486, 487, 488, 487,
+ 0, 488, 487, 0, 487, 0, 489, 0, 488, 490,
+ 488, 0, 488, 0, 0, 0, 489, 488, 489, 490,
+ 489, 490, 0, 490, 489, 489, 491, 491, 490, 492,
+ 0, 0, 493, 0, 0, 0, 491, 0, 491, 492,
+ 491, 492, 493, 492, 493, 491, 493, 495, 492, 0,
+
+ 497, 493, 0, 0, 0, 0, 0, 495, 0, 495,
+ 497, 495, 497, 498, 497, 0, 495, 498, 0, 497,
+ 0, 499, 0, 498, 492, 498, 0, 498, 0, 500,
+ 0, 499, 498, 499, 0, 499, 0, 0, 0, 500,
+ 499, 500, 502, 500, 0, 502, 0, 0, 500, 0,
+ 503, 0, 502, 503, 502, 0, 502, 0, 0, 517,
+ 503, 502, 503, 505, 503, 0, 505, 0, 0, 503,
+ 507, 507, 0, 505, 517, 505, 0, 505, 0, 0,
+ 0, 507, 505, 507, 517, 507, 517, 518, 517, 0,
+ 507, 0, 0, 517, 518, 519, 519, 518, 0, 518,
+
+ 0, 518, 0, 521, 0, 519, 518, 519, 0, 519,
+ 0, 522, 0, 521, 519, 521, 0, 521, 0, 521,
+ 0, 522, 521, 522, 523, 522, 0, 523, 0, 522,
+ 522, 0, 524, 0, 523, 525, 523, 0, 523, 0,
+ 0, 527, 524, 523, 524, 525, 524, 525, 525, 525,
+ 526, 524, 0, 529, 525, 0, 527, 0, 0, 0,
+ 526, 0, 526, 529, 526, 529, 527, 529, 527, 526,
+ 527, 528, 529, 0, 528, 527, 0, 530, 0, 0,
+ 0, 528, 0, 528, 530, 528, 0, 530, 531, 530,
+ 528, 530, 0, 0, 536, 0, 530, 536, 531, 0,
+
+ 531, 0, 531, 0, 536, 537, 536, 531, 536, 0,
+ 0, 538, 0, 536, 0, 537, 0, 537, 0, 537,
+ 0, 538, 539, 538, 537, 538, 0, 0, 540, 0,
+ 538, 0, 539, 0, 539, 540, 539, 0, 540, 541,
+ 540, 539, 540, 0, 0, 0, 0, 540, 0, 541,
+ 543, 541, 0, 541, 543, 0, 545, 541, 541, 0,
+ 543, 0, 543, 549, 543, 0, 545, 547, 545, 543,
+ 545, 0, 0, 0, 547, 545, 0, 547, 549, 547,
+ 0, 547, 0, 0, 550, 0, 547, 0, 549, 0,
+ 549, 0, 549, 0, 550, 552, 550, 549, 550, 0,
+
+ 0, 554, 0, 550, 0, 552, 0, 552, 0, 552,
+ 0, 554, 563, 554, 552, 554, 0, 0, 0, 0,
+ 554, 0, 563, 564, 563, 0, 563, 0, 0, 563,
+ 0, 563, 0, 564, 565, 564, 564, 564, 0, 0,
+ 567, 0, 564, 0, 565, 0, 565, 0, 565, 0,
+ 567, 568, 567, 565, 567, 0, 0, 0, 0, 567,
+ 0, 568, 569, 568, 569, 568, 0, 0, 568, 0,
+ 568, 0, 569, 570, 569, 0, 569, 0, 570, 571,
+ 0, 569, 0, 570, 0, 570, 0, 570, 0, 571,
+ 0, 571, 570, 571, 572, 572, 0, 573, 571, 573,
+
+ 574, 0, 0, 0, 572, 0, 572, 573, 572, 573,
+ 574, 573, 574, 572, 574, 579, 573, 0, 0, 574,
+ 0, 0, 0, 580, 0, 579, 0, 579, 0, 579,
+ 0, 579, 0, 580, 579, 580, 580, 580, 581, 583,
+ 0, 0, 580, 0, 0, 581, 583, 0, 581, 583,
+ 581, 583, 581, 583, 586, 0, 0, 581, 583, 0,
+ 0, 0, 588, 0, 586, 0, 586, 0, 586, 0,
+ 590, 0, 588, 586, 588, 588, 588, 0, 0, 0,
+ 590, 588, 590, 592, 590, 0, 0, 0, 590, 590,
+ 0, 0, 0, 592, 0, 592, 0, 592, 598, 598,
+
+ 598, 0, 592, 0, 0, 0, 0, 601, 602, 0,
+ 598, 598, 598, 598, 598, 598, 598, 601, 602, 601,
+ 602, 601, 602, 603, 604, 0, 601, 602, 0, 0,
+ 601, 0, 0, 603, 604, 603, 604, 603, 604, 605,
+ 606, 0, 603, 604, 0, 0, 0, 0, 0, 605,
+ 606, 605, 606, 605, 606, 607, 0, 606, 605, 606,
+ 0, 608, 0, 0, 0, 607, 0, 607, 607, 607,
+ 0, 608, 609, 608, 607, 608, 0, 0, 613, 609,
+ 608, 0, 609, 0, 609, 0, 609, 0, 613, 614,
+ 613, 609, 613, 0, 0, 0, 0, 613, 0, 614,
+
+ 615, 614, 0, 614, 0, 0, 617, 0, 614, 0,
+ 615, 0, 615, 615, 615, 0, 617, 620, 617, 615,
+ 617, 0, 0, 622, 620, 617, 0, 620, 0, 620,
+ 622, 620, 0, 622, 623, 622, 620, 622, 0, 0,
+ 0, 623, 622, 0, 623, 0, 623, 0, 623, 0,
+ 0, 633, 634, 623, 630, 630, 630, 630, 630, 630,
+ 630, 633, 634, 633, 634, 633, 634, 635, 636, 0,
+ 633, 634, 0, 0, 0, 0, 0, 635, 636, 635,
+ 636, 635, 636, 637, 0, 0, 635, 636, 0, 0,
+ 0, 0, 630, 637, 641, 637, 0, 637, 0, 0,
+
+ 642, 637, 637, 0, 641, 0, 641, 0, 641, 0,
+ 642, 641, 642, 641, 642, 644, 0, 0, 647, 642,
+ 0, 649, 644, 649, 0, 644, 0, 644, 647, 644,
+ 647, 649, 647, 649, 644, 649, 647, 647, 650, 0,
+ 649, 0, 650, 0, 0, 0, 0, 0, 650, 0,
+ 650, 0, 650, 657, 657, 657, 0, 650, 0, 0,
+ 0, 0, 659, 0, 0, 657, 657, 657, 657, 657,
+ 657, 657, 659, 660, 659, 0, 659, 0, 0, 0,
+ 659, 659, 0, 660, 661, 660, 0, 660, 0, 0,
+ 665, 660, 660, 0, 661, 0, 661, 0, 661, 0,
+
+ 665, 666, 665, 661, 665, 0, 0, 661, 0, 665,
+ 0, 666, 668, 666, 0, 666, 0, 0, 0, 0,
+ 666, 0, 668, 671, 668, 0, 668, 0, 0, 673,
+ 668, 668, 0, 671, 0, 671, 0, 671, 0, 673,
+ 674, 673, 671, 673, 0, 0, 671, 674, 673, 0,
+ 674, 0, 674, 682, 674, 681, 681, 0, 0, 674,
+ 0, 0, 0, 682, 683, 682, 681, 682, 681, 682,
+ 681, 0, 682, 0, 683, 681, 683, 687, 683, 0,
+ 690, 0, 0, 683, 0, 0, 0, 687, 0, 687,
+ 690, 687, 690, 0, 690, 692, 687, 0, 692, 690,
+
+ 687, 0, 0, 0, 0, 692, 0, 692, 0, 692,
+ 697, 697, 697, 0, 692, 0, 0, 0, 0, 699,
+ 0, 0, 697, 697, 697, 697, 697, 697, 697, 699,
+ 700, 699, 0, 699, 0, 0, 702, 0, 699, 0,
+ 700, 699, 700, 700, 700, 0, 702, 705, 702, 700,
+ 702, 0, 0, 0, 0, 702, 0, 705, 709, 705,
+ 0, 705, 0, 705, 710, 0, 705, 0, 709, 0,
+ 709, 0, 709, 0, 710, 714, 710, 709, 710, 0,
+ 0, 717, 0, 710, 0, 714, 0, 714, 0, 714,
+ 0, 717, 0, 717, 714, 717, 0, 0, 0, 0,
+
+ 717, 721, 721, 721, 721, 721, 721, 721, 721, 721,
+ 721, 721, 721, 722, 722, 722, 722, 722, 722, 722,
+ 722, 722, 722, 722, 722, 723, 723, 723, 723, 723,
+ 723, 723, 723, 723, 723, 723, 723, 724, 724, 724,
+ 724, 724, 724, 724, 724, 724, 724, 724, 724, 725,
+ 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
+ 725, 726, 726, 726, 726, 726, 726, 726, 726, 726,
+ 726, 726, 726, 727, 727, 727, 0, 727, 727, 727,
+ 727, 727, 727, 727, 727, 728, 728, 0, 0, 728,
+ 0, 728, 729, 0, 729, 730, 730, 0, 730, 730,
+
+ 731, 731, 0, 731, 731, 731, 0, 731, 731, 731,
+ 731, 731, 732, 732, 732, 0, 732, 732, 732, 732,
+ 732, 732, 732, 732, 733, 733, 733, 733, 733, 733,
+ 733, 733, 0, 733, 733, 734, 0, 0, 734, 734,
+ 734, 734, 734, 734, 734, 734, 735, 0, 0, 735,
+ 735, 735, 735, 735, 735, 735, 735, 736, 0, 0,
+ 736, 0, 736, 736, 736, 736, 736, 736, 737, 737,
+ 0, 737, 737, 738, 738, 0, 738, 738, 739, 739,
+ 0, 739, 739, 720, 720, 720, 720, 720, 720, 720,
+ 720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
+
+ 720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
+ 720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
+ 720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
+ 720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
+ 720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
+ 720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
+ 720, 720
} ;
extern int yy_flex_debug;
int yy_flex_debug = 1;
-static yyconst short int yy_rule_linenum[123] =
+static yyconst short int yy_rule_linenum[132] =
{ 0,
- 101, 104, 106, 107, 108, 111, 113, 114, 115, 127,
- 134, 141, 147, 156, 164, 172, 173, 175, 194, 200,
- 207, 214, 221, 231, 265, 272, 273, 274, 275, 283,
- 284, 285, 286, 287, 292, 293, 294, 295, 296, 297,
- 298, 299, 300, 301, 302, 311, 312, 313, 314, 315,
- 316, 317, 318, 319, 320, 321, 322, 323, 324, 325,
- 326, 327, 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, 372, 373, 378, 379, 380, 383, 389, 396,
- 405, 416, 422, 424, 425, 427, 429, 431, 444, 450,
- 456, 464
+ 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, 288, 289, 290, 298, 299, 300, 301, 302,
+ 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
+ 317, 326, 327, 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,
+ 389, 390, 395, 396, 397, 400, 406, 413, 422, 433,
+ 439, 441, 442, 444, 446, 448, 461, 467, 473, 480,
+ 482
} ;
static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr;
@@ -1722,6 +1819,7 @@ char *yytext;
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, \
@@ -1787,7 +1885,6 @@ static asn1_integer_t asn1p_atoi(char *ptr); /* errno is either 0 or ERANGE */
#define YY_NEVER_INTERACTIVE 1
#define YY_NO_INPUT 1
-#define YY_NO_UNPUT 1
#define YY_STACK_USED 1
/* Performance penalty is OK */
/* Controlled from within application */
@@ -1799,11 +1896,13 @@ static asn1_integer_t asn1p_atoi(char *ptr); /* errno is either 0 or ERANGE */
#define opaque 4
-#define with_syntax 5
+#define encoding_control 5
+
+#define with_syntax 6
/* Newline */
/* White-space */
-#line 1807 "lex.yy.c"
+#line 1906 "asn1p_l.c"
/* Macros after this point can all be overridden by user definitions in
* section 1.
@@ -1954,10 +2053,10 @@ YY_DECL
register char *yy_cp, *yy_bp;
register int yy_act;
-#line 99 "asn1p_l.l"
+#line 101 "asn1p_l.l"
-#line 1961 "lex.yy.c"
+#line 2060 "asn1p_l.c"
if ( yy_init )
{
@@ -2005,14 +2104,14 @@ yy_match:
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 >= 675 )
+ if ( yy_current_state >= 721 )
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] != 4166 );
+ while ( yy_base[yy_current_state] != 4484 );
yy_find_action:
yy_current_state = *--yy_state_ptr;
@@ -2049,13 +2148,13 @@ do_action: /* This label is used only to access EOF actions. */
{
if ( yy_act == 0 )
fprintf( stderr, "--scanner backing up\n" );
- else if ( yy_act < 123 )
+ else if ( yy_act < 132 )
fprintf( stderr, "--accepting rule at line %d (\"%s\")\n",
yy_rule_linenum[yy_act], yytext );
- else if ( yy_act == 123 )
+ else if ( yy_act == 132 )
fprintf( stderr, "--accepting default rule (\"%s\")\n",
yytext );
- else if ( yy_act == 124 )
+ else if ( yy_act == 133 )
fprintf( stderr, "--(end of buffer or a NUL)\n" );
else
fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
@@ -2065,50 +2164,50 @@ do_action: /* This label is used only to access EOF actions. */
{ /* beginning of action switch */
case 1:
YY_RULE_SETUP
-#line 101 "asn1p_l.l"
+#line 103 "asn1p_l.l"
yy_push_state(dash_comment);
YY_BREAK
case 2:
YY_RULE_SETUP
-#line 104 "asn1p_l.l"
+#line 106 "asn1p_l.l"
yy_pop_state();
YY_BREAK
case 3:
YY_RULE_SETUP
-#line 106 "asn1p_l.l"
+#line 108 "asn1p_l.l"
yy_pop_state(); /* End of comment */
YY_BREAK
case 4:
YY_RULE_SETUP
-#line 107 "asn1p_l.l"
+#line 109 "asn1p_l.l"
/* Eat single dash */
YY_BREAK
case 5:
YY_RULE_SETUP
-#line 108 "asn1p_l.l"
+#line 110 "asn1p_l.l"
/* Eat */
YY_BREAK
case 6:
YY_RULE_SETUP
-#line 111 "asn1p_l.l"
+#line 113 "asn1p_l.l"
yy_push_state(cpp_comment);
YY_BREAK
case 7:
YY_RULE_SETUP
-#line 113 "asn1p_l.l"
+#line 115 "asn1p_l.l"
/* Eat */
YY_BREAK
case 8:
YY_RULE_SETUP
-#line 114 "asn1p_l.l"
+#line 116 "asn1p_l.l"
yy_pop_state();
YY_BREAK
case 9:
YY_RULE_SETUP
-#line 115 "asn1p_l.l"
+#line 117 "asn1p_l.l"
/* Eat */
YY_BREAK
@@ -2121,7 +2220,7 @@ YY_RULE_SETUP
case 10:
YY_RULE_SETUP
-#line 127 "asn1p_l.l"
+#line 129 "asn1p_l.l"
{
yy_push_state(opaque);
asn1p_lval.tv_opaque.buf = strdup(yytext);
@@ -2131,7 +2230,7 @@ YY_RULE_SETUP
YY_BREAK
case 11:
YY_RULE_SETUP
-#line 134 "asn1p_l.l"
+#line 136 "asn1p_l.l"
{
yy_pop_state();
asn1p_lval.tv_opaque.buf = strdup(yytext);
@@ -2141,7 +2240,7 @@ YY_RULE_SETUP
YY_BREAK
case 12:
YY_RULE_SETUP
-#line 141 "asn1p_l.l"
+#line 143 "asn1p_l.l"
{
asn1p_lval.tv_opaque.buf = strdup(yytext);
asn1p_lval.tv_opaque.len = yyleng;
@@ -2150,7 +2249,7 @@ YY_RULE_SETUP
YY_BREAK
case 13:
YY_RULE_SETUP
-#line 147 "asn1p_l.l"
+#line 149 "asn1p_l.l"
{
fprintf(stderr,
"ASN.1 Parser syncronization failure: "
@@ -2162,7 +2261,7 @@ YY_RULE_SETUP
YY_BREAK
case 14:
YY_RULE_SETUP
-#line 156 "asn1p_l.l"
+#line 158 "asn1p_l.l"
{
asn1p_lval.tv_opaque.buf = strdup(yytext);
asn1p_lval.tv_opaque.len = yyleng;
@@ -2172,7 +2271,7 @@ YY_RULE_SETUP
case 15:
YY_RULE_SETUP
-#line 164 "asn1p_l.l"
+#line 166 "asn1p_l.l"
{
asn1p_lval.tv_opaque.buf = 0;
asn1p_lval.tv_opaque.len = 0;
@@ -2183,17 +2282,17 @@ YY_RULE_SETUP
case 16:
YY_RULE_SETUP
-#line 172 "asn1p_l.l"
+#line 174 "asn1p_l.l"
{ QAPPEND(yytext, yyleng-1); } /* Add a single quote */
YY_BREAK
case 17:
YY_RULE_SETUP
-#line 173 "asn1p_l.l"
+#line 175 "asn1p_l.l"
{ QAPPEND(yytext, yyleng); }
YY_BREAK
case 18:
YY_RULE_SETUP
-#line 175 "asn1p_l.l"
+#line 177 "asn1p_l.l"
{
yy_pop_state();
/* Do not append last quote:
@@ -2211,27 +2310,64 @@ YY_RULE_SETUP
}
YY_BREAK
+
case 19:
YY_RULE_SETUP
-#line 194 "asn1p_l.l"
+#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 20:
+case 26:
YY_RULE_SETUP
-#line 200 "asn1p_l.l"
+#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 21:
+case 27:
YY_RULE_SETUP
-#line 207 "asn1p_l.l"
+#line 222 "asn1p_l.l"
{
asn1p_lval.a_int = asn1p_atoi(yytext);
if(errno == ERANGE)
@@ -2239,9 +2375,9 @@ YY_RULE_SETUP
return TOK_number_negative;
}
YY_BREAK
-case 22:
+case 28:
YY_RULE_SETUP
-#line 214 "asn1p_l.l"
+#line 229 "asn1p_l.l"
{
asn1p_lval.a_int = asn1p_atoi(yytext);
if(errno == ERANGE)
@@ -2249,9 +2385,9 @@ YY_RULE_SETUP
return TOK_number;
}
YY_BREAK
-case 23:
+case 29:
YY_RULE_SETUP
-#line 221 "asn1p_l.l"
+#line 236 "asn1p_l.l"
{
asn1p_lval.a_int = asn1p_atoi(yytext);
if(errno == ERANGE)
@@ -2262,9 +2398,9 @@ YY_RULE_SETUP
/*
* Tags
*/
-case 24:
+case 30:
YY_RULE_SETUP
-#line 231 "asn1p_l.l"
+#line 246 "asn1p_l.l"
{
char *p;
memset(&asn1p_lval.a_tag, 0, sizeof(asn1p_lval.a_tag));
@@ -2299,9 +2435,9 @@ YY_RULE_SETUP
return TOK_tag;
}
YY_BREAK
-case 25:
+case 31:
YY_RULE_SETUP
-#line 265 "asn1p_l.l"
+#line 280 "asn1p_l.l"
{
fprintf(stderr,
"Unsupported tag syntax at line %d: \"%s\"\n",
@@ -2309,24 +2445,24 @@ YY_RULE_SETUP
return -1;
}
YY_BREAK
-case 26:
+case 32:
YY_RULE_SETUP
-#line 272 "asn1p_l.l"
+#line 287 "asn1p_l.l"
return TOK_ABSENT;
YY_BREAK
-case 27:
+case 33:
YY_RULE_SETUP
-#line 273 "asn1p_l.l"
+#line 288 "asn1p_l.l"
return TOK_ABSTRACT_SYNTAX;
YY_BREAK
-case 28:
+case 34:
YY_RULE_SETUP
-#line 274 "asn1p_l.l"
+#line 289 "asn1p_l.l"
return TOK_ALL;
YY_BREAK
-case 29:
+case 35:
YY_RULE_SETUP
-#line 275 "asn1p_l.l"
+#line 290 "asn1p_l.l"
{
/* Appeared in 1990, removed in 1997 */
if(TYPE_LIFETIME(1990, 1997))
@@ -2336,88 +2472,88 @@ YY_RULE_SETUP
REJECT;
}
YY_BREAK
-case 30:
+case 36:
YY_RULE_SETUP
-#line 283 "asn1p_l.l"
+#line 298 "asn1p_l.l"
return TOK_APPLICATION;
YY_BREAK
-case 31:
+case 37:
YY_RULE_SETUP
-#line 284 "asn1p_l.l"
+#line 299 "asn1p_l.l"
return TOK_AUTOMATIC;
YY_BREAK
-case 32:
+case 38:
YY_RULE_SETUP
-#line 285 "asn1p_l.l"
+#line 300 "asn1p_l.l"
return TOK_BEGIN;
YY_BREAK
-case 33:
+case 39:
YY_RULE_SETUP
-#line 286 "asn1p_l.l"
+#line 301 "asn1p_l.l"
return TOK_BIT;
YY_BREAK
-case 34:
+case 40:
YY_RULE_SETUP
-#line 287 "asn1p_l.l"
+#line 302 "asn1p_l.l"
{
if(TYPE_LIFETIME(1994, 0))
return TOK_BMPString;
REJECT;
}
YY_BREAK
-case 35:
+case 41:
YY_RULE_SETUP
-#line 292 "asn1p_l.l"
+#line 307 "asn1p_l.l"
return TOK_BOOLEAN;
YY_BREAK
-case 36:
+case 42:
YY_RULE_SETUP
-#line 293 "asn1p_l.l"
+#line 308 "asn1p_l.l"
return TOK_BY;
YY_BREAK
-case 37:
+case 43:
YY_RULE_SETUP
-#line 294 "asn1p_l.l"
+#line 309 "asn1p_l.l"
return TOK_CHARACTER;
YY_BREAK
-case 38:
+case 44:
YY_RULE_SETUP
-#line 295 "asn1p_l.l"
+#line 310 "asn1p_l.l"
return TOK_CHOICE;
YY_BREAK
-case 39:
+case 45:
YY_RULE_SETUP
-#line 296 "asn1p_l.l"
+#line 311 "asn1p_l.l"
return TOK_CLASS;
YY_BREAK
-case 40:
+case 46:
YY_RULE_SETUP
-#line 297 "asn1p_l.l"
+#line 312 "asn1p_l.l"
return TOK_COMPONENT;
YY_BREAK
-case 41:
+case 47:
YY_RULE_SETUP
-#line 298 "asn1p_l.l"
+#line 313 "asn1p_l.l"
return TOK_COMPONENTS;
YY_BREAK
-case 42:
+case 48:
YY_RULE_SETUP
-#line 299 "asn1p_l.l"
+#line 314 "asn1p_l.l"
return TOK_CONSTRAINED;
YY_BREAK
-case 43:
+case 49:
YY_RULE_SETUP
-#line 300 "asn1p_l.l"
+#line 315 "asn1p_l.l"
return TOK_CONTAINING;
YY_BREAK
-case 44:
+case 50:
YY_RULE_SETUP
-#line 301 "asn1p_l.l"
+#line 316 "asn1p_l.l"
return TOK_DEFAULT;
YY_BREAK
-case 45:
+case 51:
YY_RULE_SETUP
-#line 302 "asn1p_l.l"
+#line 317 "asn1p_l.l"
{
/* Appeared in 1990, removed in 1997 */
if(TYPE_LIFETIME(1990, 1997))
@@ -2428,345 +2564,355 @@ YY_RULE_SETUP
REJECT;
}
YY_BREAK
-case 46:
+case 52:
YY_RULE_SETUP
-#line 311 "asn1p_l.l"
+#line 326 "asn1p_l.l"
return TOK_DEFINITIONS;
YY_BREAK
-case 47:
+case 53:
YY_RULE_SETUP
-#line 312 "asn1p_l.l"
+#line 327 "asn1p_l.l"
return TOK_EMBEDDED;
YY_BREAK
-case 48:
+case 54:
YY_RULE_SETUP
-#line 313 "asn1p_l.l"
+#line 328 "asn1p_l.l"
return TOK_ENCODED;
YY_BREAK
-case 49:
+case 55:
YY_RULE_SETUP
-#line 314 "asn1p_l.l"
+#line 329 "asn1p_l.l"
+return TOK_ENCODING_CONTROL;
+ YY_BREAK
+case 56:
+YY_RULE_SETUP
+#line 330 "asn1p_l.l"
return TOK_END;
YY_BREAK
-case 50:
+case 57:
YY_RULE_SETUP
-#line 315 "asn1p_l.l"
+#line 331 "asn1p_l.l"
return TOK_ENUMERATED;
YY_BREAK
-case 51:
+case 58:
YY_RULE_SETUP
-#line 316 "asn1p_l.l"
+#line 332 "asn1p_l.l"
return TOK_EXCEPT;
YY_BREAK
-case 52:
+case 59:
YY_RULE_SETUP
-#line 317 "asn1p_l.l"
+#line 333 "asn1p_l.l"
return TOK_EXPLICIT;
YY_BREAK
-case 53:
+case 60:
YY_RULE_SETUP
-#line 318 "asn1p_l.l"
+#line 334 "asn1p_l.l"
return TOK_EXPORTS;
YY_BREAK
-case 54:
+case 61:
YY_RULE_SETUP
-#line 319 "asn1p_l.l"
+#line 335 "asn1p_l.l"
return TOK_EXTENSIBILITY;
YY_BREAK
-case 55:
+case 62:
YY_RULE_SETUP
-#line 320 "asn1p_l.l"
+#line 336 "asn1p_l.l"
return TOK_EXTERNAL;
YY_BREAK
-case 56:
+case 63:
YY_RULE_SETUP
-#line 321 "asn1p_l.l"
+#line 337 "asn1p_l.l"
return TOK_FALSE;
YY_BREAK
-case 57:
+case 64:
YY_RULE_SETUP
-#line 322 "asn1p_l.l"
+#line 338 "asn1p_l.l"
return TOK_FROM;
YY_BREAK
-case 58:
+case 65:
YY_RULE_SETUP
-#line 323 "asn1p_l.l"
+#line 339 "asn1p_l.l"
return TOK_GeneralizedTime;
YY_BREAK
-case 59:
+case 66:
YY_RULE_SETUP
-#line 324 "asn1p_l.l"
+#line 340 "asn1p_l.l"
return TOK_GeneralString;
YY_BREAK
-case 60:
+case 67:
YY_RULE_SETUP
-#line 325 "asn1p_l.l"
+#line 341 "asn1p_l.l"
return TOK_GraphicString;
YY_BREAK
-case 61:
+case 68:
YY_RULE_SETUP
-#line 326 "asn1p_l.l"
+#line 342 "asn1p_l.l"
return TOK_IA5String;
YY_BREAK
-case 62:
+case 69:
YY_RULE_SETUP
-#line 327 "asn1p_l.l"
+#line 343 "asn1p_l.l"
return TOK_IDENTIFIER;
YY_BREAK
-case 63:
+case 70:
YY_RULE_SETUP
-#line 328 "asn1p_l.l"
+#line 344 "asn1p_l.l"
return TOK_IMPLICIT;
YY_BREAK
-case 64:
+case 71:
YY_RULE_SETUP
-#line 329 "asn1p_l.l"
+#line 345 "asn1p_l.l"
return TOK_IMPLIED;
YY_BREAK
-case 65:
+case 72:
YY_RULE_SETUP
-#line 330 "asn1p_l.l"
+#line 346 "asn1p_l.l"
return TOK_IMPORTS;
YY_BREAK
-case 66:
+case 73:
YY_RULE_SETUP
-#line 331 "asn1p_l.l"
+#line 347 "asn1p_l.l"
return TOK_INCLUDES;
YY_BREAK
-case 67:
+case 74:
YY_RULE_SETUP
-#line 332 "asn1p_l.l"
+#line 348 "asn1p_l.l"
return TOK_INSTANCE;
YY_BREAK
-case 68:
+case 75:
YY_RULE_SETUP
-#line 333 "asn1p_l.l"
+#line 349 "asn1p_l.l"
+return TOK_INSTRUCTIONS;
+ YY_BREAK
+case 76:
+YY_RULE_SETUP
+#line 350 "asn1p_l.l"
return TOK_INTEGER;
YY_BREAK
-case 69:
+case 77:
YY_RULE_SETUP
-#line 334 "asn1p_l.l"
+#line 351 "asn1p_l.l"
return TOK_INTERSECTION;
YY_BREAK
-case 70:
+case 78:
YY_RULE_SETUP
-#line 335 "asn1p_l.l"
+#line 352 "asn1p_l.l"
return TOK_ISO646String;
YY_BREAK
-case 71:
+case 79:
YY_RULE_SETUP
-#line 336 "asn1p_l.l"
+#line 353 "asn1p_l.l"
return TOK_MAX;
YY_BREAK
-case 72:
+case 80:
YY_RULE_SETUP
-#line 337 "asn1p_l.l"
+#line 354 "asn1p_l.l"
return TOK_MIN;
YY_BREAK
-case 73:
+case 81:
YY_RULE_SETUP
-#line 338 "asn1p_l.l"
+#line 355 "asn1p_l.l"
return TOK_MINUS_INFINITY;
YY_BREAK
-case 74:
+case 82:
YY_RULE_SETUP
-#line 339 "asn1p_l.l"
+#line 356 "asn1p_l.l"
return TOK_NULL;
YY_BREAK
-case 75:
+case 83:
YY_RULE_SETUP
-#line 340 "asn1p_l.l"
+#line 357 "asn1p_l.l"
return TOK_NumericString;
YY_BREAK
-case 76:
+case 84:
YY_RULE_SETUP
-#line 341 "asn1p_l.l"
+#line 358 "asn1p_l.l"
return TOK_OBJECT;
YY_BREAK
-case 77:
+case 85:
YY_RULE_SETUP
-#line 342 "asn1p_l.l"
+#line 359 "asn1p_l.l"
return TOK_ObjectDescriptor;
YY_BREAK
-case 78:
+case 86:
YY_RULE_SETUP
-#line 343 "asn1p_l.l"
+#line 360 "asn1p_l.l"
return TOK_OCTET;
YY_BREAK
-case 79:
+case 87:
YY_RULE_SETUP
-#line 344 "asn1p_l.l"
+#line 361 "asn1p_l.l"
return TOK_OF;
YY_BREAK
-case 80:
+case 88:
YY_RULE_SETUP
-#line 345 "asn1p_l.l"
+#line 362 "asn1p_l.l"
return TOK_OPTIONAL;
YY_BREAK
-case 81:
+case 89:
YY_RULE_SETUP
-#line 346 "asn1p_l.l"
+#line 363 "asn1p_l.l"
return TOK_PATTERN;
YY_BREAK
-case 82:
+case 90:
YY_RULE_SETUP
-#line 347 "asn1p_l.l"
+#line 364 "asn1p_l.l"
return TOK_PDV;
YY_BREAK
-case 83:
+case 91:
YY_RULE_SETUP
-#line 348 "asn1p_l.l"
+#line 365 "asn1p_l.l"
return TOK_PLUS_INFINITY;
YY_BREAK
-case 84:
+case 92:
YY_RULE_SETUP
-#line 349 "asn1p_l.l"
+#line 366 "asn1p_l.l"
return TOK_PRESENT;
YY_BREAK
-case 85:
+case 93:
YY_RULE_SETUP
-#line 350 "asn1p_l.l"
+#line 367 "asn1p_l.l"
return TOK_PrintableString;
YY_BREAK
-case 86:
+case 94:
YY_RULE_SETUP
-#line 351 "asn1p_l.l"
+#line 368 "asn1p_l.l"
return TOK_PRIVATE;
YY_BREAK
-case 87:
+case 95:
YY_RULE_SETUP
-#line 352 "asn1p_l.l"
+#line 369 "asn1p_l.l"
return TOK_REAL;
YY_BREAK
-case 88:
+case 96:
YY_RULE_SETUP
-#line 353 "asn1p_l.l"
+#line 370 "asn1p_l.l"
return TOK_RELATIVE_OID;
YY_BREAK
-case 89:
+case 97:
YY_RULE_SETUP
-#line 354 "asn1p_l.l"
+#line 371 "asn1p_l.l"
return TOK_SEQUENCE;
YY_BREAK
-case 90:
+case 98:
YY_RULE_SETUP
-#line 355 "asn1p_l.l"
+#line 372 "asn1p_l.l"
return TOK_SET;
YY_BREAK
-case 91:
+case 99:
YY_RULE_SETUP
-#line 356 "asn1p_l.l"
+#line 373 "asn1p_l.l"
return TOK_SIZE;
YY_BREAK
-case 92:
+case 100:
YY_RULE_SETUP
-#line 357 "asn1p_l.l"
+#line 374 "asn1p_l.l"
return TOK_STRING;
YY_BREAK
-case 93:
+case 101:
YY_RULE_SETUP
-#line 358 "asn1p_l.l"
+#line 375 "asn1p_l.l"
return TOK_SYNTAX;
YY_BREAK
-case 94:
+case 102:
YY_RULE_SETUP
-#line 359 "asn1p_l.l"
+#line 376 "asn1p_l.l"
return TOK_T61String;
YY_BREAK
-case 95:
+case 103:
YY_RULE_SETUP
-#line 360 "asn1p_l.l"
+#line 377 "asn1p_l.l"
return TOK_TAGS;
YY_BREAK
-case 96:
+case 104:
YY_RULE_SETUP
-#line 361 "asn1p_l.l"
+#line 378 "asn1p_l.l"
return TOK_TeletexString;
YY_BREAK
-case 97:
+case 105:
YY_RULE_SETUP
-#line 362 "asn1p_l.l"
+#line 379 "asn1p_l.l"
return TOK_TRUE;
YY_BREAK
-case 98:
+case 106:
YY_RULE_SETUP
-#line 363 "asn1p_l.l"
+#line 380 "asn1p_l.l"
return TOK_TYPE_IDENTIFIER;
YY_BREAK
-case 99:
+case 107:
YY_RULE_SETUP
-#line 364 "asn1p_l.l"
+#line 381 "asn1p_l.l"
return TOK_UNION;
YY_BREAK
-case 100:
+case 108:
YY_RULE_SETUP
-#line 365 "asn1p_l.l"
+#line 382 "asn1p_l.l"
return TOK_UNIQUE;
YY_BREAK
-case 101:
+case 109:
YY_RULE_SETUP
-#line 366 "asn1p_l.l"
+#line 383 "asn1p_l.l"
return TOK_UNIVERSAL;
YY_BREAK
-case 102:
+case 110:
YY_RULE_SETUP
-#line 367 "asn1p_l.l"
+#line 384 "asn1p_l.l"
{
if(TYPE_LIFETIME(1994, 0))
return TOK_UniversalString;
REJECT;
}
YY_BREAK
-case 103:
+case 111:
YY_RULE_SETUP
-#line 372 "asn1p_l.l"
+#line 389 "asn1p_l.l"
return TOK_UTCTime;
YY_BREAK
-case 104:
+case 112:
YY_RULE_SETUP
-#line 373 "asn1p_l.l"
+#line 390 "asn1p_l.l"
{
if(TYPE_LIFETIME(1994, 0))
return TOK_UTF8String;
REJECT;
}
YY_BREAK
-case 105:
+case 113:
YY_RULE_SETUP
-#line 378 "asn1p_l.l"
+#line 395 "asn1p_l.l"
return TOK_VideotexString;
YY_BREAK
-case 106:
+case 114:
YY_RULE_SETUP
-#line 379 "asn1p_l.l"
+#line 396 "asn1p_l.l"
return TOK_VisibleString;
YY_BREAK
-case 107:
+case 115:
YY_RULE_SETUP
-#line 380 "asn1p_l.l"
+#line 397 "asn1p_l.l"
return TOK_WITH;
YY_BREAK
-case 108:
+case 116:
YY_RULE_SETUP
-#line 383 "asn1p_l.l"
+#line 400 "asn1p_l.l"
{
CHECK_DASHES;
asn1p_lval.tv_str = strdup(yytext);
return TOK_typefieldreference;
}
YY_BREAK
-case 109:
+case 117:
YY_RULE_SETUP
-#line 389 "asn1p_l.l"
+#line 406 "asn1p_l.l"
{
CHECK_DASHES;
asn1p_lval.tv_str = strdup(yytext);
return TOK_valuefieldreference;
}
YY_BREAK
-case 110:
+case 118:
YY_RULE_SETUP
-#line 396 "asn1p_l.l"
+#line 413 "asn1p_l.l"
{
CHECK_DASHES;
asn1p_lval.tv_str = strdup(yytext);
@@ -2776,13 +2922,13 @@ YY_RULE_SETUP
/*
* objectclassreference
*/
-case 111:
+case 119:
YY_RULE_SETUP
-#line 405 "asn1p_l.l"
+#line 422 "asn1p_l.l"
{
CHECK_DASHES;
asn1p_lval.tv_str = strdup(yytext);
- return TOK_objectclassreference;
+ return TOK_capitalreference;
}
YY_BREAK
/*
@@ -2790,43 +2936,43 @@ YY_RULE_SETUP
* NOTE: TOK_objectclassreference must be combined
* with this token to produce true typereference.
*/
-case 112:
+case 120:
YY_RULE_SETUP
-#line 416 "asn1p_l.l"
+#line 433 "asn1p_l.l"
{
CHECK_DASHES;
asn1p_lval.tv_str = strdup(yytext);
return TOK_typereference;
}
YY_BREAK
-case 113:
+case 121:
YY_RULE_SETUP
-#line 422 "asn1p_l.l"
+#line 439 "asn1p_l.l"
return TOK_PPEQ;
YY_BREAK
-case 114:
+case 122:
YY_RULE_SETUP
-#line 424 "asn1p_l.l"
+#line 441 "asn1p_l.l"
return TOK_ThreeDots;
YY_BREAK
-case 115:
+case 123:
YY_RULE_SETUP
-#line 425 "asn1p_l.l"
+#line 442 "asn1p_l.l"
return TOK_TwoDots;
YY_BREAK
-case 116:
+case 124:
YY_RULE_SETUP
-#line 427 "asn1p_l.l"
+#line 444 "asn1p_l.l"
return yytext[0];
YY_BREAK
-case 117:
+case 125:
YY_RULE_SETUP
-#line 429 "asn1p_l.l"
+#line 446 "asn1p_l.l"
/* Ignore whitespace */
YY_BREAK
-case 118:
+case 126:
YY_RULE_SETUP
-#line 431 "asn1p_l.l"
+#line 448 "asn1p_l.l"
{
if(TYPE_LIFETIME(1994, 0))
fprintf(stderr, "ERROR: ");
@@ -2839,36 +2985,41 @@ YY_RULE_SETUP
}
YY_BREAK
-case 119:
+case 127:
YY_RULE_SETUP
-#line 444 "asn1p_l.l"
+#line 461 "asn1p_l.l"
{
asn1p_lval.tv_opaque.buf = strdup(yytext);
asn1p_lval.tv_opaque.len = yyleng;
return TOK_opaque;
}
YY_BREAK
-case 120:
+case 128:
YY_RULE_SETUP
-#line 450 "asn1p_l.l"
+#line 467 "asn1p_l.l"
{
asn1p_lval.tv_opaque.buf = strdup(yytext);
asn1p_lval.tv_opaque.len = yyleng;
return TOK_opaque;
}
YY_BREAK
-case 121:
+case 129:
YY_RULE_SETUP
-#line 456 "asn1p_l.l"
+#line 473 "asn1p_l.l"
{
yy_pop_state();
return '}';
}
YY_BREAK
-case 122:
+case 130:
YY_RULE_SETUP
-#line 464 "asn1p_l.l"
+#line 480 "asn1p_l.l"
+return yytext[0]; /* Union, Intersection */
+ YY_BREAK
+case 131:
+YY_RULE_SETUP
+#line 482 "asn1p_l.l"
{
fprintf(stderr,
"Unexpected token at line %d: \"%s\"\n",
@@ -2886,20 +3037,21 @@ 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 476 "asn1p_l.l"
+#line 494 "asn1p_l.l"
{
while(YYSTATE != INITIAL)
yy_pop_state();
yyterminate();
}
YY_BREAK
-case 123:
+case 132:
YY_RULE_SETUP
-#line 483 "asn1p_l.l"
+#line 501 "asn1p_l.l"
YY_FATAL_ERROR( "flex scanner jammed" );
YY_BREAK
-#line 2903 "lex.yy.c"
+#line 3055 "asn1p_l.c"
case YY_END_OF_BUFFER:
{
@@ -3186,7 +3338,7 @@ static yy_state_type yy_get_previous_state()
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 >= 675 )
+ if ( yy_current_state >= 721 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -3216,11 +3368,11 @@ yy_state_type yy_current_state;
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 >= 675 )
+ if ( yy_current_state >= 721 )
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 == 674);
+ yy_is_jam = (yy_current_state == 720);
if ( ! yy_is_jam )
*yy_state_ptr++ = yy_current_state;
@@ -3781,23 +3933,22 @@ int main()
return 0;
}
#endif
-#line 483 "asn1p_l.l"
+#line 501 "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);
-}
+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);
+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);
}
/*
diff --git a/libasn1parser/asn1p_l.l b/libasn1parser/asn1p_l.l
index 0d86cb74..6a2a0cc7 100644
--- a/libasn1parser/asn1p_l.l
+++ b/libasn1parser/asn1p_l.l
@@ -10,6 +10,7 @@
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, \
@@ -76,7 +77,7 @@ static asn1_integer_t asn1p_atoi(char *ptr); /* errno is either 0 or ERANGE */
%}
%option never-interactive
-%option noinput nounput
+%option noinput
%option noyywrap stack
/* Performance penalty is OK */
%option yylineno
@@ -89,6 +90,7 @@ static asn1_integer_t asn1p_atoi(char *ptr); /* errno is either 0 or ERANGE */
%x cpp_comment
%x quoted
%x opaque
+%x encoding_control
%x with_syntax
/* Newline */
@@ -190,6 +192,19 @@ WSP [\t\r\v\f\n ]
}
+<encoding_control>{
+ ENCODING-CONTROL {
+ const char *s = "ENCODING-CONTROL";
+ const char *p = s + sizeof("ENCODING-CONTROL") - 2;
+ for(; p >= s; p--) unput(*p);
+ yy_pop_state();
+ }
+ END unput('D'); unput('N'); unput('E'); yy_pop_state();
+ [^{} \t\r\v\f\n]+
+ [[:alnum:]]+
+ . /* Eat everything else */
+ "\n"
+ }
'[0-9A-F \t\r\v\f\n]+'H {
/* " \t\r\n" weren't allowed in ASN.1:1990. */
@@ -311,6 +326,7 @@ DEFINED {
DEFINITIONS return TOK_DEFINITIONS;
EMBEDDED return TOK_EMBEDDED;
ENCODED return TOK_ENCODED;
+ENCODING-CONTROL return TOK_ENCODING_CONTROL;
END return TOK_END;
ENUMERATED return TOK_ENUMERATED;
EXCEPT return TOK_EXCEPT;
@@ -330,6 +346,7 @@ IMPLIED return TOK_IMPLIED;
IMPORTS return TOK_IMPORTS;
INCLUDES return TOK_INCLUDES;
INSTANCE return TOK_INSTANCE;
+INSTRUCTIONS return TOK_INSTRUCTIONS;
INTEGER return TOK_INTEGER;
INTERSECTION return TOK_INTERSECTION;
ISO646String return TOK_ISO646String;
@@ -405,7 +422,7 @@ WITH return TOK_WITH;
[A-Z][A-Z0-9-]* {
CHECK_DASHES;
asn1p_lval.tv_str = strdup(yytext);
- return TOK_objectclassreference;
+ return TOK_capitalreference;
}
/*
@@ -460,6 +477,7 @@ WITH return TOK_WITH;
}
+[|^] return yytext[0]; /* Union, Intersection */
<*>. {
fprintf(stderr,
@@ -485,17 +503,16 @@ WITH return TOK_WITH;
/*
* Very dirty but wonderful hack allowing to rule states from within .y file.
*/
-void
-asn1p_lexer_hack_push_opaque_state() {
- yy_push_state(opaque);
-}
+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);
+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);
}
/*
diff --git a/libasn1parser/asn1p_module.h b/libasn1parser/asn1p_module.h
index 906c784a..7d8bcc62 100644
--- a/libasn1parser/asn1p_module.h
+++ b/libasn1parser/asn1p_module.h
@@ -9,11 +9,16 @@
*/
typedef enum asn1p_module_flags {
MSF_NOFLAGS,
- MSF_EXPLICIT_TAGS = 0x1,
- MSF_IMPLICIT_TAGS = 0x2,
- MSF_AUTOMATIC_TAGS = 0x4,
- MSF_EXTENSIBILITY_IMPLIED = 0x8,
+ MSF_unk_INSTRUCTIONS = 0x001,
+ MSF_TAG_INSTRUCTIONS = 0x002,
+ MSF_XER_INSTRUCTIONS = 0x004,
+ MSF_EXPLICIT_TAGS = 0x010,
+ MSF_IMPLICIT_TAGS = 0x020,
+ MSF_AUTOMATIC_TAGS = 0x040,
+ MSF_EXTENSIBILITY_IMPLIED = 0x100,
} asn1p_module_flags_e;
+#define MSF_MASK_INSTRUCTIONS 0x0f
+#define MSF_MASK_TAGS 0xf0
/*
* === EXAMPLE ===
diff --git a/libasn1parser/asn1p_y.c b/libasn1parser/asn1p_y.c
index 68a94fea..9aa7e749 100644
--- a/libasn1parser/asn1p_y.c
+++ b/libasn1parser/asn1p_y.c
@@ -20,7 +20,7 @@
#define TOK_number 263
#define TOK_number_negative 264
#define TOK_typereference 265
-#define TOK_objectclassreference 266
+#define TOK_capitalreference 266
#define TOK_typefieldreference 267
#define TOK_valuefieldreference 268
#define TOK_ABSENT 269
@@ -46,68 +46,70 @@
#define TOK_DEFINED 289
#define TOK_EMBEDDED 290
#define TOK_ENCODED 291
-#define TOK_END 292
-#define TOK_ENUMERATED 293
-#define TOK_EXPLICIT 294
-#define TOK_EXPORTS 295
-#define TOK_EXTENSIBILITY 296
-#define TOK_EXTERNAL 297
-#define TOK_FALSE 298
-#define TOK_FROM 299
-#define TOK_GeneralizedTime 300
-#define TOK_GeneralString 301
-#define TOK_GraphicString 302
-#define TOK_IA5String 303
-#define TOK_IDENTIFIER 304
-#define TOK_IMPLICIT 305
-#define TOK_IMPLIED 306
-#define TOK_IMPORTS 307
-#define TOK_INCLUDES 308
-#define TOK_INSTANCE 309
-#define TOK_INTEGER 310
-#define TOK_ISO646String 311
-#define TOK_MAX 312
-#define TOK_MIN 313
-#define TOK_MINUS_INFINITY 314
-#define TOK_NULL 315
-#define TOK_NumericString 316
-#define TOK_OBJECT 317
-#define TOK_ObjectDescriptor 318
-#define TOK_OCTET 319
-#define TOK_OF 320
-#define TOK_OPTIONAL 321
-#define TOK_PATTERN 322
-#define TOK_PDV 323
-#define TOK_PLUS_INFINITY 324
-#define TOK_PRESENT 325
-#define TOK_PrintableString 326
-#define TOK_PRIVATE 327
-#define TOK_REAL 328
-#define TOK_RELATIVE_OID 329
-#define TOK_SEQUENCE 330
-#define TOK_SET 331
-#define TOK_SIZE 332
-#define TOK_STRING 333
-#define TOK_SYNTAX 334
-#define TOK_T61String 335
-#define TOK_TAGS 336
-#define TOK_TeletexString 337
-#define TOK_TRUE 338
-#define TOK_TYPE_IDENTIFIER 339
-#define TOK_UNIQUE 340
-#define TOK_UNIVERSAL 341
-#define TOK_UniversalString 342
-#define TOK_UTCTime 343
-#define TOK_UTF8String 344
-#define TOK_VideotexString 345
-#define TOK_VisibleString 346
-#define TOK_WITH 347
-#define TOK_UNION 348
-#define TOK_INTERSECTION 349
+#define TOK_ENCODING_CONTROL 292
+#define TOK_END 293
+#define TOK_ENUMERATED 294
+#define TOK_EXPLICIT 295
+#define TOK_EXPORTS 296
+#define TOK_EXTENSIBILITY 297
+#define TOK_EXTERNAL 298
+#define TOK_FALSE 299
+#define TOK_FROM 300
+#define TOK_GeneralizedTime 301
+#define TOK_GeneralString 302
+#define TOK_GraphicString 303
+#define TOK_IA5String 304
+#define TOK_IDENTIFIER 305
+#define TOK_IMPLICIT 306
+#define TOK_IMPLIED 307
+#define TOK_IMPORTS 308
+#define TOK_INCLUDES 309
+#define TOK_INSTANCE 310
+#define TOK_INSTRUCTIONS 311
+#define TOK_INTEGER 312
+#define TOK_ISO646String 313
+#define TOK_MAX 314
+#define TOK_MIN 315
+#define TOK_MINUS_INFINITY 316
+#define TOK_NULL 317
+#define TOK_NumericString 318
+#define TOK_OBJECT 319
+#define TOK_ObjectDescriptor 320
+#define TOK_OCTET 321
+#define TOK_OF 322
+#define TOK_OPTIONAL 323
+#define TOK_PATTERN 324
+#define TOK_PDV 325
+#define TOK_PLUS_INFINITY 326
+#define TOK_PRESENT 327
+#define TOK_PrintableString 328
+#define TOK_PRIVATE 329
+#define TOK_REAL 330
+#define TOK_RELATIVE_OID 331
+#define TOK_SEQUENCE 332
+#define TOK_SET 333
+#define TOK_SIZE 334
+#define TOK_STRING 335
+#define TOK_SYNTAX 336
+#define TOK_T61String 337
+#define TOK_TAGS 338
+#define TOK_TeletexString 339
+#define TOK_TRUE 340
+#define TOK_TYPE_IDENTIFIER 341
+#define TOK_UNIQUE 342
+#define TOK_UNIVERSAL 343
+#define TOK_UniversalString 344
+#define TOK_UTCTime 345
+#define TOK_UTF8String 346
+#define TOK_VideotexString 347
+#define TOK_VisibleString 348
+#define TOK_WITH 349
#define TOK_EXCEPT 350
-#define TOK_TwoDots 351
-#define TOK_ThreeDots 352
-#define TOK_tag 353
+#define TOK_INTERSECTION 351
+#define TOK_UNION 352
+#define TOK_TwoDots 353
+#define TOK_ThreeDots 354
+#define TOK_tag 355
#line 1 "asn1p_y.y"
@@ -127,6 +129,7 @@ int yylex(void);
int yyerror(const char *msg);
void asn1p_lexer_hack_push_opaque_state(void);
void asn1p_lexer_hack_enable_with_syntax(void);
+void asn1p_lexer_hack_push_encoding_control(void);
#define yylineno asn1p_lineno
extern int asn1p_lineno;
@@ -159,7 +162,7 @@ static asn1p_value_t *
} while(0)
-#line 57 "asn1p_y.y"
+#line 58 "asn1p_y.y"
typedef union {
asn1p_t *a_grammar;
asn1p_module_flags_e a_module_flags;
@@ -202,26 +205,26 @@ typedef union {
-#define YYFINAL 375
+#define YYFINAL 381
#define YYFLAG -32768
-#define YYNTBASE 113
+#define YYNTBASE 115
-#define YYTRANSLATE(x) ((unsigned)(x) <= 353 ? yytranslate[x] : 211)
+#define YYTRANSLATE(x) ((unsigned)(x) <= 355 ? yytranslate[x] : 210)
static const char yytranslate[] = { 0,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 109, 2, 2, 2, 2, 2, 2, 104,
- 105, 2, 2, 107, 2, 110, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 108, 106, 111,
- 2, 2, 2, 112, 2, 2, 2, 2, 2, 2,
+ 2, 2, 111, 2, 2, 2, 2, 2, 2, 106,
+ 107, 2, 2, 109, 2, 112, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 110, 108, 113,
+ 2, 2, 2, 114, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 96, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 97, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 102, 94, 103, 2, 2, 2, 2, 2,
+ 2, 2, 104, 99, 105, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -243,140 +246,140 @@ static const char yytranslate[] = { 0,
57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
- 87, 88, 89, 90, 91, 92, 93, 95, 97, 98,
- 99, 100, 101
+ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
+ 98, 100, 101, 102, 103
};
#if YYDEBUG != 0
static const short yyprhs[] = { 0,
0, 2, 4, 7, 16, 17, 19, 23, 26, 28,
31, 33, 38, 40, 41, 43, 45, 48, 51, 54,
- 57, 60, 61, 63, 65, 68, 70, 72, 74, 76,
- 78, 80, 84, 87, 89, 92, 97, 99, 103, 105,
- 107, 111, 115, 118, 120, 124, 126, 128, 135, 137,
- 139, 140, 142, 147, 152, 156, 163, 165, 169, 171,
- 175, 179, 181, 185, 187, 189, 191, 195, 201, 202,
- 204, 206, 210, 213, 217, 222, 223, 225, 226, 233,
- 235, 238, 240, 242, 245, 247, 251, 253, 257, 261,
- 263, 265, 267, 272, 274, 278, 280, 284, 288, 290,
- 294, 296, 300, 302, 304, 306, 308, 313, 314, 318,
- 320, 322, 324, 326, 328, 330, 334, 336, 339, 341,
- 343, 345, 347, 350, 353, 355, 357, 360, 363, 365,
- 367, 369, 371, 374, 376, 379, 381, 383, 385, 387,
- 389, 391, 393, 395, 397, 399, 401, 403, 405, 407,
- 412, 417, 422, 427, 432, 434, 439, 440, 442, 444,
- 446, 448, 450, 452, 457, 459, 462, 466, 468, 472,
- 478, 480, 484, 486, 488, 492, 494, 498, 500, 504,
- 506, 510, 515, 517, 519, 521, 524, 527, 531, 533,
- 535, 537, 539, 541, 543, 545, 547, 549, 555, 557,
- 561, 563, 567, 568, 570, 572, 574, 576, 578, 580,
- 584, 589, 591, 595, 598, 602, 604, 608, 609, 611,
- 613, 616, 618, 620, 621, 625, 628, 632, 634, 638,
- 640, 645, 650, 652, 654, 656, 658, 659, 661, 663,
- 666, 669, 671, 673, 675, 677, 679
+ 57, 60, 63, 64, 66, 68, 71, 73, 75, 77,
+ 79, 81, 82, 86, 88, 92, 95, 97, 100, 105,
+ 107, 111, 113, 115, 119, 123, 126, 128, 132, 134,
+ 136, 143, 145, 147, 148, 150, 155, 160, 164, 171,
+ 173, 177, 179, 183, 187, 189, 193, 195, 197, 199,
+ 203, 209, 210, 212, 214, 218, 221, 225, 230, 231,
+ 233, 234, 241, 243, 246, 248, 250, 253, 255, 259,
+ 261, 265, 269, 271, 273, 275, 280, 282, 286, 288,
+ 292, 296, 298, 302, 304, 308, 310, 312, 314, 316,
+ 321, 322, 326, 328, 330, 332, 334, 336, 338, 342,
+ 344, 347, 349, 351, 353, 355, 358, 361, 363, 365,
+ 368, 371, 373, 375, 377, 379, 382, 384, 387, 389,
+ 391, 393, 395, 397, 399, 401, 403, 405, 407, 409,
+ 411, 413, 415, 420, 425, 430, 435, 440, 442, 447,
+ 449, 451, 453, 455, 457, 458, 460, 465, 469, 474,
+ 476, 480, 486, 488, 492, 496, 500, 505, 509, 511,
+ 515, 519, 523, 527, 529, 531, 533, 536, 539, 543,
+ 545, 547, 549, 551, 553, 555, 557, 563, 565, 569,
+ 571, 575, 576, 578, 580, 582, 584, 586, 588, 592,
+ 597, 599, 603, 606, 610, 612, 616, 617, 619, 621,
+ 624, 626, 628, 629, 633, 636, 640, 642, 646, 648,
+ 653, 658, 660, 662, 664, 666, 667, 669, 671, 674,
+ 677, 679, 681, 683, 685, 687
};
-static const short yyrhs[] = { 114,
- 0, 115, 0, 114, 115, 0, 207, 116, 34, 120,
- 3, 21, 123, 38, 0, 0, 117, 0, 102, 118,
- 103, 0, 102, 103, 0, 119, 0, 118, 119, 0,
- 209, 0, 209, 104, 9, 105, 0, 9, 0, 0,
- 121, 0, 122, 0, 121, 122, 0, 40, 82, 0,
- 51, 82, 0, 20, 82, 0, 42, 52, 0, 0,
- 124, 0, 125, 0, 124, 125, 0, 126, 0, 131,
- 0, 137, 0, 161, 0, 134, 0, 169, 0, 53,
- 127, 106, 0, 53, 45, 0, 128, 0, 127, 128,
- 0, 129, 45, 207, 116, 0, 130, 0, 129, 107,
- 130, 0, 207, 0, 209, 0, 41, 132, 106, 0,
- 41, 17, 106, 0, 41, 106, 0, 133, 0, 132,
- 107, 133, 0, 207, 0, 209, 0, 207, 135, 3,
- 102, 136, 103, 0, 156, 0, 166, 0, 0, 177,
- 0, 207, 3, 205, 85, 0, 207, 3, 205, 153,
- 0, 207, 3, 143, 0, 207, 102, 138, 103, 3,
- 153, 0, 139, 0, 138, 107, 139, 0, 207, 0,
- 207, 108, 209, 0, 166, 108, 209, 0, 141, 0,
- 140, 107, 141, 0, 155, 0, 209, 0, 152, 0,
- 142, 107, 152, 0, 28, 102, 145, 103, 147, 0,
- 0, 86, 0, 146, 0, 145, 107, 146, 0, 159,
- 197, 0, 159, 153, 144, 0, 159, 159, 197, 144,
- 0, 0, 148, 0, 0, 93, 80, 102, 149, 150,
- 103, 0, 151, 0, 150, 151, 0, 4, 0, 159,
- 0, 210, 153, 0, 154, 0, 155, 171, 197, 0,
- 100, 0, 100, 109, 164, 0, 100, 109, 204, 0,
- 168, 0, 169, 0, 170, 0, 207, 102, 140, 103,
- 0, 156, 0, 55, 66, 156, 0, 11, 0, 11,
- 110, 207, 0, 11, 110, 209, 0, 208, 0, 208,
- 110, 157, 0, 158, 0, 157, 110, 158, 0, 160,
- 0, 160, 0, 13, 0, 14, 0, 209, 135, 3,
- 162, 0, 0, 102, 163, 165, 0, 5, 0, 7,
- 0, 6, 0, 204, 0, 164, 0, 209, 0, 207,
- 110, 209, 0, 4, 0, 165, 4, 0, 24, 0,
- 61, 0, 74, 0, 167, 0, 65, 79, 0, 63,
- 50, 0, 75, 0, 43, 0, 36, 69, 0, 26,
- 79, 0, 89, 0, 46, 0, 56, 0, 39, 0,
- 22, 79, 0, 166, 0, 167, 201, 0, 23, 0,
- 47, 0, 48, 0, 49, 0, 57, 0, 62, 0,
- 72, 0, 81, 0, 83, 0, 88, 0, 90, 0,
- 91, 0, 92, 0, 64, 0, 27, 102, 142, 103,
- 0, 76, 102, 142, 103, 0, 77, 102, 142, 103,
- 0, 76, 171, 66, 155, 0, 77, 171, 66, 155,
- 0, 18, 0, 18, 35, 25, 209, 0, 0, 175,
- 0, 94, 0, 95, 0, 96, 0, 97, 0, 98,
- 0, 78, 104, 177, 105, 0, 176, 0, 175, 176,
- 0, 104, 177, 105, 0, 178, 0, 178, 107, 100,
- 0, 178, 107, 100, 107, 178, 0, 100, 0, 100,
- 107, 178, 0, 179, 0, 180, 0, 179, 172, 180,
- 0, 181, 0, 180, 173, 181, 0, 182, 0, 181,
- 174, 182, 0, 185, 0, 185, 183, 185, 0, 184,
- 104, 177, 105, 0, 191, 0, 186, 0, 99, 0,
- 99, 111, 0, 111, 99, 0, 111, 99, 111, 0,
- 78, 0, 45, 0, 204, 0, 209, 0, 6, 0,
- 59, 0, 58, 0, 44, 0, 84, 0, 93, 30,
- 102, 187, 103, 0, 188, 0, 187, 107, 188, 0,
- 100, 0, 209, 171, 189, 0, 0, 190, 0, 71,
- 0, 15, 0, 67, 0, 192, 0, 193, 0, 102,
- 207, 103, 0, 192, 102, 194, 103, 0, 195, 0,
- 194, 107, 195, 0, 112, 196, 0, 112, 110, 196,
- 0, 209, 0, 196, 110, 209, 0, 0, 198, 0,
- 67, 0, 33, 199, 0, 185, 0, 166, 0, 0,
- 102, 200, 165, 0, 102, 103, 0, 102, 202, 103,
- 0, 203, 0, 202, 107, 203, 0, 209, 0, 209,
- 104, 204, 105, 0, 209, 104, 164, 105, 0, 204,
- 0, 100, 0, 9, 0, 10, 0, 0, 206, 0,
- 101, 0, 101, 51, 0, 101, 40, 0, 11, 0,
- 12, 0, 12, 0, 8, 0, 209, 0, 209, 206,
- 0
+static const short yyrhs[] = { 116,
+ 0, 117, 0, 116, 117, 0, 206, 118, 34, 122,
+ 3, 21, 125, 39, 0, 0, 119, 0, 104, 120,
+ 105, 0, 104, 105, 0, 121, 0, 120, 121, 0,
+ 208, 0, 208, 106, 9, 107, 0, 9, 0, 0,
+ 123, 0, 124, 0, 123, 124, 0, 41, 84, 0,
+ 52, 84, 0, 20, 84, 0, 43, 53, 0, 12,
+ 57, 0, 0, 126, 0, 127, 0, 126, 127, 0,
+ 129, 0, 134, 0, 140, 0, 164, 0, 137, 0,
+ 0, 38, 12, 128, 0, 172, 0, 54, 130, 108,
+ 0, 54, 46, 0, 131, 0, 130, 131, 0, 132,
+ 46, 206, 118, 0, 133, 0, 132, 109, 133, 0,
+ 206, 0, 208, 0, 42, 135, 108, 0, 42, 17,
+ 108, 0, 42, 108, 0, 136, 0, 135, 109, 136,
+ 0, 206, 0, 208, 0, 206, 138, 3, 104, 139,
+ 105, 0, 159, 0, 169, 0, 0, 179, 0, 206,
+ 3, 204, 87, 0, 206, 3, 204, 156, 0, 206,
+ 3, 146, 0, 206, 104, 141, 105, 3, 156, 0,
+ 142, 0, 141, 109, 142, 0, 206, 0, 206, 110,
+ 208, 0, 169, 110, 208, 0, 144, 0, 143, 109,
+ 144, 0, 158, 0, 208, 0, 155, 0, 145, 109,
+ 155, 0, 28, 104, 148, 105, 150, 0, 0, 88,
+ 0, 149, 0, 148, 109, 149, 0, 162, 196, 0,
+ 162, 156, 147, 0, 162, 162, 196, 147, 0, 0,
+ 151, 0, 0, 95, 82, 104, 152, 153, 105, 0,
+ 154, 0, 153, 154, 0, 4, 0, 162, 0, 209,
+ 156, 0, 157, 0, 158, 177, 196, 0, 102, 0,
+ 102, 111, 167, 0, 102, 111, 203, 0, 171, 0,
+ 172, 0, 173, 0, 206, 104, 143, 105, 0, 159,
+ 0, 56, 68, 159, 0, 11, 0, 11, 112, 206,
+ 0, 11, 112, 208, 0, 207, 0, 207, 112, 160,
+ 0, 161, 0, 160, 112, 161, 0, 163, 0, 163,
+ 0, 13, 0, 14, 0, 208, 138, 3, 165, 0,
+ 0, 104, 166, 168, 0, 5, 0, 7, 0, 6,
+ 0, 203, 0, 167, 0, 208, 0, 206, 112, 208,
+ 0, 4, 0, 168, 4, 0, 24, 0, 63, 0,
+ 76, 0, 170, 0, 67, 81, 0, 65, 51, 0,
+ 77, 0, 44, 0, 36, 71, 0, 26, 81, 0,
+ 91, 0, 47, 0, 58, 0, 40, 0, 22, 81,
+ 0, 169, 0, 170, 200, 0, 23, 0, 48, 0,
+ 49, 0, 50, 0, 59, 0, 64, 0, 74, 0,
+ 83, 0, 85, 0, 90, 0, 92, 0, 93, 0,
+ 94, 0, 66, 0, 27, 104, 145, 105, 0, 78,
+ 104, 145, 105, 0, 79, 104, 145, 105, 0, 78,
+ 177, 68, 158, 0, 79, 177, 68, 158, 0, 18,
+ 0, 18, 35, 25, 208, 0, 99, 0, 100, 0,
+ 97, 0, 98, 0, 96, 0, 0, 178, 0, 80,
+ 106, 179, 107, 0, 106, 179, 107, 0, 178, 106,
+ 179, 107, 0, 180, 0, 180, 109, 102, 0, 180,
+ 109, 102, 109, 180, 0, 181, 0, 180, 174, 181,
+ 0, 180, 175, 181, 0, 181, 176, 181, 0, 183,
+ 106, 179, 107, 0, 106, 179, 107, 0, 184, 0,
+ 184, 182, 184, 0, 61, 182, 184, 0, 184, 182,
+ 60, 0, 61, 182, 60, 0, 190, 0, 185, 0,
+ 101, 0, 101, 113, 0, 113, 101, 0, 113, 101,
+ 113, 0, 80, 0, 46, 0, 203, 0, 208, 0,
+ 6, 0, 45, 0, 86, 0, 95, 30, 104, 186,
+ 105, 0, 187, 0, 186, 109, 187, 0, 102, 0,
+ 208, 177, 188, 0, 0, 189, 0, 73, 0, 15,
+ 0, 69, 0, 191, 0, 192, 0, 104, 206, 105,
+ 0, 191, 104, 193, 105, 0, 194, 0, 193, 109,
+ 194, 0, 114, 195, 0, 114, 112, 195, 0, 208,
+ 0, 195, 112, 208, 0, 0, 197, 0, 69, 0,
+ 33, 198, 0, 184, 0, 169, 0, 0, 104, 199,
+ 168, 0, 104, 105, 0, 104, 201, 105, 0, 202,
+ 0, 201, 109, 202, 0, 208, 0, 208, 106, 203,
+ 107, 0, 208, 106, 167, 107, 0, 203, 0, 102,
+ 0, 9, 0, 10, 0, 0, 205, 0, 103, 0,
+ 103, 52, 0, 103, 41, 0, 11, 0, 12, 0,
+ 12, 0, 8, 0, 208, 0, 208, 205, 0
};
#endif
#if YYDEBUG != 0
static const short yyrline[] = { 0,
- 297, 303, 309, 325, 350, 352, 355, 359, 364, 371,
- 379, 384, 388, 397, 399, 407, 411, 419, 423, 426,
- 429, 437, 439, 448, 452, 478, 482, 491, 498, 511,
- 522, 535, 542, 547, 553, 559, 568, 574, 580, 587,
- 595, 599, 602, 609, 615, 621, 628, 637, 647, 655,
- 663, 665, 677, 689, 696, 712, 722, 732, 742, 747,
- 754, 764, 770, 776, 780, 792, 798, 804, 814, 816,
- 819, 827, 833, 842, 847, 864, 866, 871, 875, 880,
- 885, 891, 895, 920, 927, 932, 940, 949, 958, 969,
- 973, 979, 987, 1011, 1018, 1032, 1041, 1051, 1061, 1069,
- 1090, 1099, 1108, 1109, 1111, 1118, 1130, 1140, 1142, 1147,
- 1151, 1155, 1159, 1162, 1167, 1179, 1195, 1206, 1220, 1222,
- 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232,
- 1238, 1240, 1241, 1244, 1251, 1263, 1265, 1269, 1273, 1274,
- 1275, 1276, 1277, 1281, 1282, 1283, 1284, 1288, 1289, 1292,
- 1299, 1305, 1311, 1319, 1327, 1333, 1349, 1351, 1354, 1354,
- 1355, 1355, 1356, 1358, 1371, 1374, 1379, 1385, 1389, 1396,
- 1405, 1410, 1419, 1421, 1423, 1428, 1430, 1436, 1438, 1443,
- 1450, 1457, 1465, 1468, 1473, 1475, 1476, 1477, 1480, 1484,
- 1489, 1493, 1504, 1508, 1513, 1518, 1523, 1530, 1536, 1540,
- 1545, 1551, 1563, 1565, 1568, 1572, 1575, 1580, 1584, 1592,
- 1607, 1613, 1620, 1633, 1645, 1660, 1664, 1681, 1683, 1686,
- 1690, 1696, 1699, 1701, 1701, 1721, 1726, 1731, 1737, 1743,
- 1751, 1759, 1767, 1774, 1784, 1789, 1819, 1821, 1824, 1829,
- 1833, 1839, 1844, 1850, 1857, 1864, 1869
+ 296, 302, 308, 324, 349, 351, 354, 358, 363, 370,
+ 378, 383, 387, 396, 398, 406, 410, 418, 422, 425,
+ 428, 432, 452, 454, 462, 466, 498, 502, 511, 518,
+ 531, 538, 540, 552, 565, 572, 577, 583, 589, 598,
+ 604, 610, 617, 625, 629, 632, 639, 645, 651, 658,
+ 667, 677, 685, 693, 695, 707, 719, 726, 742, 752,
+ 762, 772, 777, 784, 794, 800, 806, 810, 822, 828,
+ 834, 844, 846, 849, 857, 863, 872, 877, 894, 896,
+ 901, 905, 910, 915, 921, 925, 950, 957, 962, 970,
+ 979, 988, 999, 1003, 1009, 1017, 1041, 1048, 1062, 1071,
+ 1081, 1091, 1099, 1120, 1129, 1138, 1139, 1141, 1148, 1160,
+ 1170, 1172, 1177, 1181, 1185, 1189, 1192, 1197, 1209, 1225,
+ 1236, 1250, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259,
+ 1260, 1261, 1262, 1268, 1270, 1271, 1274, 1281, 1293, 1295,
+ 1299, 1303, 1304, 1305, 1306, 1307, 1311, 1312, 1313, 1314,
+ 1318, 1319, 1322, 1329, 1335, 1341, 1349, 1357, 1363, 1379,
+ 1379, 1380, 1380, 1381, 1383, 1385, 1388, 1402, 1406, 1411,
+ 1415, 1421, 1431, 1435, 1438, 1441, 1446, 1455, 1463, 1469,
+ 1476, 1484, 1492, 1501, 1504, 1509, 1511, 1512, 1513, 1516,
+ 1520, 1525, 1529, 1540, 1545, 1550, 1557, 1563, 1567, 1572,
+ 1578, 1590, 1592, 1595, 1599, 1602, 1607, 1611, 1619, 1634,
+ 1640, 1647, 1660, 1672, 1687, 1691, 1708, 1710, 1713, 1717,
+ 1723, 1726, 1728, 1728, 1748, 1753, 1758, 1764, 1770, 1778,
+ 1786, 1794, 1801, 1811, 1816, 1846, 1848, 1851, 1856, 1860,
+ 1866, 1871, 1878, 1885, 1892, 1897
};
#endif
@@ -385,390 +388,384 @@ static const short yyrline[] = { 0,
static const char * const yytname[] = { "$","error","$undefined.","TOK_PPEQ",
"TOK_opaque","TOK_bstring","TOK_cstring","TOK_hstring","TOK_identifier","TOK_number",
-"TOK_number_negative","TOK_typereference","TOK_objectclassreference","TOK_typefieldreference",
+"TOK_number_negative","TOK_typereference","TOK_capitalreference","TOK_typefieldreference",
"TOK_valuefieldreference","TOK_ABSENT","TOK_ABSTRACT_SYNTAX","TOK_ALL","TOK_ANY",
"TOK_APPLICATION","TOK_AUTOMATIC","TOK_BEGIN","TOK_BIT","TOK_BMPString","TOK_BOOLEAN",
"TOK_BY","TOK_CHARACTER","TOK_CHOICE","TOK_CLASS","TOK_COMPONENT","TOK_COMPONENTS",
"TOK_CONSTRAINED","TOK_CONTAINING","TOK_DEFAULT","TOK_DEFINITIONS","TOK_DEFINED",
-"TOK_EMBEDDED","TOK_ENCODED","TOK_END","TOK_ENUMERATED","TOK_EXPLICIT","TOK_EXPORTS",
-"TOK_EXTENSIBILITY","TOK_EXTERNAL","TOK_FALSE","TOK_FROM","TOK_GeneralizedTime",
-"TOK_GeneralString","TOK_GraphicString","TOK_IA5String","TOK_IDENTIFIER","TOK_IMPLICIT",
-"TOK_IMPLIED","TOK_IMPORTS","TOK_INCLUDES","TOK_INSTANCE","TOK_INTEGER","TOK_ISO646String",
-"TOK_MAX","TOK_MIN","TOK_MINUS_INFINITY","TOK_NULL","TOK_NumericString","TOK_OBJECT",
-"TOK_ObjectDescriptor","TOK_OCTET","TOK_OF","TOK_OPTIONAL","TOK_PATTERN","TOK_PDV",
-"TOK_PLUS_INFINITY","TOK_PRESENT","TOK_PrintableString","TOK_PRIVATE","TOK_REAL",
-"TOK_RELATIVE_OID","TOK_SEQUENCE","TOK_SET","TOK_SIZE","TOK_STRING","TOK_SYNTAX",
-"TOK_T61String","TOK_TAGS","TOK_TeletexString","TOK_TRUE","TOK_TYPE_IDENTIFIER",
-"TOK_UNIQUE","TOK_UNIVERSAL","TOK_UniversalString","TOK_UTCTime","TOK_UTF8String",
-"TOK_VideotexString","TOK_VisibleString","TOK_WITH","'|'","TOK_UNION","'^'",
-"TOK_INTERSECTION","TOK_EXCEPT","TOK_TwoDots","TOK_ThreeDots","TOK_tag","'{'",
-"'}'","'('","')'","';'","','","':'","'!'","'.'","'<'","'@'","ParsedGrammar",
-"ModuleList","ModuleSpecification","optObjectIdentifier","ObjectIdentifier",
+"TOK_EMBEDDED","TOK_ENCODED","TOK_ENCODING_CONTROL","TOK_END","TOK_ENUMERATED",
+"TOK_EXPLICIT","TOK_EXPORTS","TOK_EXTENSIBILITY","TOK_EXTERNAL","TOK_FALSE",
+"TOK_FROM","TOK_GeneralizedTime","TOK_GeneralString","TOK_GraphicString","TOK_IA5String",
+"TOK_IDENTIFIER","TOK_IMPLICIT","TOK_IMPLIED","TOK_IMPORTS","TOK_INCLUDES","TOK_INSTANCE",
+"TOK_INSTRUCTIONS","TOK_INTEGER","TOK_ISO646String","TOK_MAX","TOK_MIN","TOK_MINUS_INFINITY",
+"TOK_NULL","TOK_NumericString","TOK_OBJECT","TOK_ObjectDescriptor","TOK_OCTET",
+"TOK_OF","TOK_OPTIONAL","TOK_PATTERN","TOK_PDV","TOK_PLUS_INFINITY","TOK_PRESENT",
+"TOK_PrintableString","TOK_PRIVATE","TOK_REAL","TOK_RELATIVE_OID","TOK_SEQUENCE",
+"TOK_SET","TOK_SIZE","TOK_STRING","TOK_SYNTAX","TOK_T61String","TOK_TAGS","TOK_TeletexString",
+"TOK_TRUE","TOK_TYPE_IDENTIFIER","TOK_UNIQUE","TOK_UNIVERSAL","TOK_UniversalString",
+"TOK_UTCTime","TOK_UTF8String","TOK_VideotexString","TOK_VisibleString","TOK_WITH",
+"TOK_EXCEPT","'^'","TOK_INTERSECTION","'|'","TOK_UNION","TOK_TwoDots","TOK_ThreeDots",
+"TOK_tag","'{'","'}'","'('","')'","';'","','","':'","'!'","'.'","'<'","'@'",
+"ParsedGrammar","ModuleList","ModuleSpecification","optObjectIdentifier","ObjectIdentifier",
"ObjectIdentifierBody","ObjectIdentifierElement","optModuleSpecificationFlags",
"ModuleSpecificationFlags","ModuleSpecificationFlag","optModuleSpecificationBody",
-"ModuleSpecificationBody","ModuleSpecificationElement","ImportsDefinition","ImportsBundleSet",
-"ImportsBundle","ImportsList","ImportsElement","ExportsDefinition","ExportsBody",
-"ExportsElement","ValueSetDefinition","DefinedTypeRef","optValueSetBody","DataTypeReference",
-"ParameterArgumentList","ParameterArgumentName","ActualParameterList","ActualParameter",
-"ConstructedDataTypeDefinition","ClassDeclaration","optUnique","ClassFieldList",
-"ClassField","optWithSyntax","WithSyntax","@1","WithSyntaxFormat","WithSyntaxFormatToken",
-"DataTypeMember","ConstrainedTypeDeclaration","ExtensionAndException","TypeDeclaration",
-"ComplexTypeReference","ComplexTypeReferenceAmpList","ComplexTypeReferenceElement",
+"ModuleSpecificationBody","ModuleSpecificationElement","@1","ImportsDefinition",
+"ImportsBundleSet","ImportsBundle","ImportsList","ImportsElement","ExportsDefinition",
+"ExportsBody","ExportsElement","ValueSetDefinition","DefinedTypeRef","optValueSetBody",
+"DataTypeReference","ParameterArgumentList","ParameterArgumentName","ActualParameterList",
+"ActualParameter","ConstructedDataTypeDefinition","ClassDeclaration","optUnique",
+"ClassFieldList","ClassField","optWithSyntax","WithSyntax","@2","WithSyntaxFormat",
+"WithSyntaxFormatToken","DataTypeMember","ConstrainedTypeDeclaration","ExtensionAndException",
+"TypeDeclaration","ComplexTypeReference","ComplexTypeReferenceAmpList","ComplexTypeReferenceElement",
"ClassFieldIdentifier","ClassFieldName","ValueDefinition","InlineOrDefinedValue",
-"@2","DefinedValue","Opaque","BasicTypeId","BasicTypeId_UniverationCompatible",
-"BasicType","BasicString","ConstructedType","optConstraints","Union","Intersection",
-"Except","Constraints","SingleConstraint","ConstraintElementSet","ConstraintElement",
-"ConstraintElementUnion","ConstraintElementIntersection","ConstraintElementException",
-"ConstraintSubtypeElement","ConstraintRangeSpec","ConstraintSpec","ConstraintValue",
-"WithComponents","WithComponentsList","WithComponentsElement","optPresenceConstraint",
-"PresenceConstraint","TableConstraint","SimpleTableConstraint","ComponentRelationConstraint",
-"AtNotationList","AtNotationElement","ComponentIdList","optMarker","Marker",
-"DefaultValue","@3","UniverationDefinition","UniverationList","UniverationElement",
-"SignedNumber","optTag","Tag","TypeRefName","ObjectClassReference","Identifier",
-"TaggedIdentifier", NULL
+"@3","DefinedValue","Opaque","BasicTypeId","BasicTypeId_UniverationCompatible",
+"BasicType","BasicString","ConstructedType","Union","Intersection","Except",
+"optConstraints","SetOfConstraints","ElementSetSpecs","ElementSetSpec","ConstraintSubtypeElement",
+"ConstraintRangeSpec","ConstraintSpec","ConstraintValue","WithComponents","WithComponentsList",
+"WithComponentsElement","optPresenceConstraint","PresenceConstraint","TableConstraint",
+"SimpleTableConstraint","ComponentRelationConstraint","AtNotationList","AtNotationElement",
+"ComponentIdList","optMarker","Marker","DefaultValue","@4","UniverationDefinition",
+"UniverationList","UniverationElement","SignedNumber","optTag","Tag","TypeRefName",
+"ObjectClassReference","Identifier","TaggedIdentifier", NULL
};
#endif
static const short yyr1[] = { 0,
- 113, 114, 114, 115, 116, 116, 117, 117, 118, 118,
- 119, 119, 119, 120, 120, 121, 121, 122, 122, 122,
- 122, 123, 123, 124, 124, 125, 125, 125, 125, 125,
- 125, 126, 126, 127, 127, 128, 129, 129, 130, 130,
- 131, 131, 131, 132, 132, 133, 133, 134, 135, 135,
- 136, 136, 137, 137, 137, 137, 138, 138, 139, 139,
- 139, 140, 140, 141, 141, 142, 142, 143, 144, 144,
- 145, 145, 146, 146, 146, 147, 147, 149, 148, 150,
- 150, 151, 151, 152, 152, 153, 154, 154, 154, 155,
- 155, 155, 155, 155, 155, 156, 156, 156, 156, 156,
- 157, 157, 158, 159, 160, 160, 161, 163, 162, 162,
- 162, 162, 162, 162, 164, 164, 165, 165, 166, 166,
- 166, 166, 166, 166, 166, 166, 166, 166, 166, 166,
- 167, 167, 167, 168, 168, 169, 169, 169, 169, 169,
- 169, 169, 169, 169, 169, 169, 169, 169, 169, 170,
- 170, 170, 170, 170, 170, 170, 171, 171, 172, 172,
- 173, 173, 174, 175, 175, 175, 176, 177, 177, 177,
- 177, 177, 178, 179, 179, 180, 180, 181, 181, 182,
- 182, 182, 182, 182, 183, 183, 183, 183, 184, 184,
- 185, 185, 185, 185, 185, 185, 185, 186, 187, 187,
- 188, 188, 189, 189, 190, 190, 190, 191, 191, 192,
- 193, 194, 194, 195, 195, 196, 196, 197, 197, 198,
- 198, 199, 199, 200, 199, 201, 201, 202, 202, 203,
- 203, 203, 203, 203, 204, 204, 205, 205, 206, 206,
- 206, 207, 207, 208, 209, 210, 210
+ 115, 116, 116, 117, 118, 118, 119, 119, 120, 120,
+ 121, 121, 121, 122, 122, 123, 123, 124, 124, 124,
+ 124, 124, 125, 125, 126, 126, 127, 127, 127, 127,
+ 127, 128, 127, 127, 129, 129, 130, 130, 131, 132,
+ 132, 133, 133, 134, 134, 134, 135, 135, 136, 136,
+ 137, 138, 138, 139, 139, 140, 140, 140, 140, 141,
+ 141, 142, 142, 142, 143, 143, 144, 144, 145, 145,
+ 146, 147, 147, 148, 148, 149, 149, 149, 150, 150,
+ 152, 151, 153, 153, 154, 154, 155, 155, 156, 157,
+ 157, 157, 158, 158, 158, 158, 158, 158, 159, 159,
+ 159, 159, 159, 160, 160, 161, 162, 163, 163, 164,
+ 166, 165, 165, 165, 165, 165, 165, 167, 167, 168,
+ 168, 169, 169, 169, 169, 169, 169, 169, 169, 169,
+ 169, 169, 169, 170, 170, 170, 171, 171, 172, 172,
+ 172, 172, 172, 172, 172, 172, 172, 172, 172, 172,
+ 172, 172, 173, 173, 173, 173, 173, 173, 173, 174,
+ 174, 175, 175, 176, 177, 177, 177, 178, 178, 179,
+ 179, 179, 180, 180, 180, 180, 181, 181, 181, 181,
+ 181, 181, 181, 181, 181, 182, 182, 182, 182, 183,
+ 183, 184, 184, 184, 184, 184, 185, 186, 186, 187,
+ 187, 188, 188, 189, 189, 189, 190, 190, 191, 192,
+ 193, 193, 194, 194, 195, 195, 196, 196, 197, 197,
+ 198, 198, 199, 198, 200, 200, 201, 201, 202, 202,
+ 202, 202, 202, 203, 203, 204, 204, 205, 205, 205,
+ 206, 206, 207, 208, 209, 209
};
static const short yyr2[] = { 0,
1, 1, 2, 8, 0, 1, 3, 2, 1, 2,
1, 4, 1, 0, 1, 1, 2, 2, 2, 2,
- 2, 0, 1, 1, 2, 1, 1, 1, 1, 1,
- 1, 3, 2, 1, 2, 4, 1, 3, 1, 1,
- 3, 3, 2, 1, 3, 1, 1, 6, 1, 1,
- 0, 1, 4, 4, 3, 6, 1, 3, 1, 3,
- 3, 1, 3, 1, 1, 1, 3, 5, 0, 1,
- 1, 3, 2, 3, 4, 0, 1, 0, 6, 1,
- 2, 1, 1, 2, 1, 3, 1, 3, 3, 1,
- 1, 1, 4, 1, 3, 1, 3, 3, 1, 3,
- 1, 3, 1, 1, 1, 1, 4, 0, 3, 1,
- 1, 1, 1, 1, 1, 3, 1, 2, 1, 1,
- 1, 1, 2, 2, 1, 1, 2, 2, 1, 1,
- 1, 1, 2, 1, 2, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 4,
- 4, 4, 4, 4, 1, 4, 0, 1, 1, 1,
- 1, 1, 1, 4, 1, 2, 3, 1, 3, 5,
- 1, 3, 1, 1, 3, 1, 3, 1, 3, 1,
- 3, 4, 1, 1, 1, 2, 2, 3, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 5, 1, 3,
- 1, 3, 0, 1, 1, 1, 1, 1, 1, 3,
- 4, 1, 3, 2, 3, 1, 3, 0, 1, 1,
- 2, 1, 1, 0, 3, 2, 3, 1, 3, 1,
- 4, 4, 1, 1, 1, 1, 0, 1, 1, 2,
- 2, 1, 1, 1, 1, 1, 2
+ 2, 2, 0, 1, 1, 2, 1, 1, 1, 1,
+ 1, 0, 3, 1, 3, 2, 1, 2, 4, 1,
+ 3, 1, 1, 3, 3, 2, 1, 3, 1, 1,
+ 6, 1, 1, 0, 1, 4, 4, 3, 6, 1,
+ 3, 1, 3, 3, 1, 3, 1, 1, 1, 3,
+ 5, 0, 1, 1, 3, 2, 3, 4, 0, 1,
+ 0, 6, 1, 2, 1, 1, 2, 1, 3, 1,
+ 3, 3, 1, 1, 1, 4, 1, 3, 1, 3,
+ 3, 1, 3, 1, 3, 1, 1, 1, 1, 4,
+ 0, 3, 1, 1, 1, 1, 1, 1, 3, 1,
+ 2, 1, 1, 1, 1, 2, 2, 1, 1, 2,
+ 2, 1, 1, 1, 1, 2, 1, 2, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 4, 4, 4, 4, 4, 1, 4, 1,
+ 1, 1, 1, 1, 0, 1, 4, 3, 4, 1,
+ 3, 5, 1, 3, 3, 3, 4, 3, 1, 3,
+ 3, 3, 3, 1, 1, 1, 2, 2, 3, 1,
+ 1, 1, 1, 1, 1, 1, 5, 1, 3, 1,
+ 3, 0, 1, 1, 1, 1, 1, 1, 3, 4,
+ 1, 3, 2, 3, 1, 3, 0, 1, 1, 2,
+ 1, 1, 0, 3, 2, 3, 1, 3, 1, 4,
+ 4, 1, 1, 1, 1, 0, 1, 1, 2, 2,
+ 1, 1, 1, 1, 1, 2
};
static const short yydefact[] = { 0,
- 242, 243, 1, 2, 5, 3, 0, 0, 6, 245,
+ 241, 242, 1, 2, 5, 3, 0, 0, 6, 244,
13, 8, 0, 9, 11, 14, 7, 10, 0, 0,
- 0, 0, 0, 0, 15, 16, 0, 20, 18, 21,
- 19, 0, 17, 12, 22, 136, 0, 137, 138, 139,
- 0, 140, 141, 149, 142, 143, 144, 145, 146, 147,
- 148, 0, 23, 24, 26, 27, 30, 28, 29, 31,
- 0, 0, 0, 43, 0, 44, 46, 47, 33, 0,
- 34, 0, 37, 39, 40, 4, 25, 237, 96, 244,
- 0, 119, 0, 0, 132, 126, 130, 131, 120, 0,
- 0, 121, 125, 129, 0, 0, 49, 50, 122, 99,
- 0, 42, 41, 0, 32, 35, 0, 0, 0, 239,
- 55, 0, 238, 0, 133, 128, 127, 124, 123, 0,
- 57, 0, 59, 0, 0, 0, 45, 5, 38, 0,
- 241, 240, 96, 244, 155, 0, 0, 157, 157, 53,
- 54, 157, 94, 134, 122, 90, 91, 92, 0, 97,
- 98, 0, 0, 0, 0, 51, 105, 106, 100, 101,
- 103, 110, 112, 111, 235, 236, 108, 107, 114, 113,
- 0, 115, 36, 0, 71, 218, 104, 0, 0, 0,
- 0, 0, 0, 0, 158, 165, 0, 0, 218, 0,
- 135, 0, 0, 58, 61, 60, 193, 196, 190, 195,
- 194, 189, 197, 0, 171, 0, 0, 52, 168, 173,
- 174, 176, 178, 0, 180, 184, 183, 208, 209, 191,
- 192, 0, 0, 0, 76, 0, 0, 220, 69, 218,
- 73, 219, 0, 87, 0, 66, 85, 246, 0, 95,
- 0, 0, 0, 0, 166, 0, 0, 86, 234, 226,
- 0, 228, 233, 230, 0, 62, 64, 65, 56, 0,
- 0, 0, 48, 0, 159, 160, 0, 161, 162, 0,
- 163, 0, 0, 185, 0, 0, 0, 102, 117, 109,
- 116, 0, 68, 77, 72, 224, 223, 222, 221, 70,
- 74, 69, 156, 0, 150, 0, 247, 84, 0, 151,
- 167, 153, 152, 154, 227, 0, 0, 93, 0, 0,
- 172, 210, 169, 175, 177, 179, 0, 186, 187, 181,
- 0, 0, 212, 118, 0, 0, 75, 88, 89, 67,
- 164, 229, 0, 0, 63, 201, 0, 199, 157, 0,
- 182, 188, 0, 214, 216, 211, 0, 78, 225, 232,
- 231, 198, 0, 203, 170, 215, 0, 213, 0, 200,
- 206, 207, 205, 202, 204, 217, 82, 0, 80, 83,
- 79, 81, 0, 0, 0
+ 0, 0, 0, 0, 0, 15, 16, 0, 22, 20,
+ 18, 21, 19, 0, 17, 12, 23, 139, 0, 0,
+ 140, 141, 142, 0, 143, 144, 152, 145, 146, 147,
+ 148, 149, 150, 151, 0, 24, 25, 27, 28, 31,
+ 29, 30, 34, 0, 0, 32, 0, 46, 0, 47,
+ 49, 50, 36, 0, 37, 0, 40, 42, 43, 4,
+ 26, 236, 99, 243, 0, 122, 0, 0, 135, 129,
+ 133, 134, 123, 0, 0, 124, 128, 132, 0, 0,
+ 52, 53, 125, 102, 0, 33, 45, 44, 0, 35,
+ 38, 0, 0, 0, 238, 58, 0, 237, 0, 136,
+ 131, 130, 127, 126, 0, 60, 0, 62, 0, 0,
+ 0, 48, 5, 41, 0, 240, 239, 99, 243, 158,
+ 0, 0, 165, 165, 56, 57, 165, 97, 137, 125,
+ 93, 94, 95, 0, 100, 101, 0, 0, 0, 0,
+ 54, 108, 109, 103, 104, 106, 113, 115, 114, 234,
+ 235, 111, 110, 117, 116, 0, 118, 39, 0, 74,
+ 217, 107, 0, 0, 0, 0, 0, 0, 0, 166,
+ 0, 0, 217, 0, 138, 0, 0, 61, 64, 63,
+ 194, 195, 191, 0, 190, 196, 0, 0, 0, 0,
+ 55, 170, 173, 0, 179, 185, 184, 207, 208, 192,
+ 193, 0, 0, 0, 79, 0, 0, 219, 72, 217,
+ 76, 218, 0, 90, 0, 69, 88, 245, 0, 98,
+ 0, 0, 0, 0, 0, 0, 0, 89, 233, 225,
+ 0, 227, 232, 229, 0, 65, 67, 68, 59, 186,
+ 0, 0, 0, 0, 0, 51, 162, 163, 160, 161,
+ 0, 0, 0, 164, 0, 0, 0, 0, 105, 120,
+ 112, 119, 0, 71, 80, 75, 223, 222, 221, 220,
+ 73, 77, 72, 159, 0, 153, 0, 246, 87, 0,
+ 154, 168, 156, 0, 155, 157, 226, 0, 0, 96,
+ 0, 187, 188, 183, 181, 0, 209, 178, 171, 174,
+ 175, 176, 0, 182, 180, 0, 0, 211, 121, 0,
+ 0, 78, 91, 92, 70, 167, 169, 228, 0, 0,
+ 66, 189, 200, 0, 198, 165, 0, 177, 0, 213,
+ 215, 210, 0, 81, 224, 231, 230, 197, 0, 202,
+ 172, 214, 0, 212, 0, 199, 205, 206, 204, 201,
+ 203, 216, 85, 0, 83, 86, 82, 84, 0, 0,
+ 0
};
-static const short yydefgoto[] = { 373,
- 3, 4, 8, 9, 13, 14, 24, 25, 26, 52,
- 53, 54, 55, 70, 71, 72, 73, 56, 65, 66,
- 57, 96, 207, 58, 120, 121, 255, 256, 235, 111,
- 291, 174, 175, 283, 284, 359, 368, 369, 236, 141,
- 237, 142, 143, 159, 160, 176, 177, 59, 168, 223,
- 169, 280, 144, 145, 146, 147, 148, 184, 267, 270,
- 272, 185, 186, 208, 209, 210, 211, 212, 213, 276,
- 214, 215, 216, 337, 338, 364, 365, 217, 218, 219,
- 322, 323, 344, 231, 232, 289, 326, 191, 251, 252,
- 220, 112, 113, 149, 100, 221, 239
+static const short yydefgoto[] = { 379,
+ 3, 4, 8, 9, 13, 14, 25, 26, 27, 55,
+ 56, 57, 106, 58, 74, 75, 76, 77, 59, 69,
+ 70, 60, 100, 210, 61, 125, 126, 255, 256, 235,
+ 116, 292, 179, 180, 284, 285, 365, 374, 375, 236,
+ 146, 237, 147, 148, 164, 165, 181, 182, 62, 173,
+ 223, 174, 281, 149, 150, 151, 152, 153, 272, 273,
+ 275, 189, 190, 211, 212, 213, 262, 214, 215, 216,
+ 344, 345, 370, 371, 217, 218, 219, 327, 328, 350,
+ 231, 232, 290, 331, 195, 251, 252, 220, 117, 118,
+ 154, 104, 221, 239
};
-static const short yypact[] = { 81,
--32768,-32768, 81,-32768, -45,-32768, 23, 70,-32768,-32768,
--32768,-32768, 47,-32768, 31, 190,-32768,-32768, 132, 61,
- 69, 108, 86, 176, 190,-32768, 76,-32768,-32768,-32768,
--32768, 166,-32768,-32768, 442,-32768, 32,-32768,-32768,-32768,
- 121,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768, 168, 442,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
- 179, 732, 103,-32768, 52,-32768,-32768,-32768,-32768, 39,
--32768, 16,-32768,-32768,-32768,-32768,-32768, -11, 111,-32768,
- 150,-32768, 152, 142,-32768,-32768,-32768,-32768,-32768, 184,
- 159,-32768,-32768,-32768, 748, 240,-32768,-32768,-32768, 135,
- 243,-32768,-32768, 141,-32768,-32768, 81, 141, 145, 60,
--32768, 599,-32768, 141,-32768,-32768,-32768,-32768,-32768, -1,
--32768, 143, 144, 147, 206, 68,-32768, -45,-32768, 206,
--32768,-32768, -42, 148, 221, 161, 198, 40, 53,-32768,
--32768, -37,-32768,-32768, 163,-32768,-32768,-32768, 164,-32768,
--32768, 264, 748, 261, 261, 155,-32768,-32768, 160,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
- 162,-32768,-32768, 64,-32768, 524,-32768, 246, 21, 212,
- 169, 21, 155, 208, 171,-32768, 21, 210, 2, 17,
--32768, 383, 674,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768, 247, 172, 81, 175,-32768, 173, 133,
- 140, 185,-32768, 178, 35,-32768,-32768, 182,-32768,-32768,
--32768, 206, 281, 261, 193, 206, 301,-32768, 202, 2,
--32768,-32768, 261, 181, 66,-32768,-32768, 191, 674,-32768,
- 155, 71, 186, 674,-32768, 89, 674,-32768,-32768,-32768,
- 90,-32768,-32768, 189, 91,-32768,-32768,-32768,-32768, 192,
- 309, 194,-32768, 196,-32768,-32768, 309,-32768,-32768, 309,
--32768, 309, 155, 187, 205, 78, 200,-32768,-32768, 297,
--32768, 225,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768, 202,-32768, 250,-32768, 21,-32768,-32768, 201,-32768,
--32768,-32768,-32768,-32768,-32768, 56, 250,-32768, 383, 25,
--32768,-32768, 209, 140, 185,-32768, 215,-32768, 211,-32768,
- 6, 101,-32768,-32768, 219, 281,-32768,-32768,-32768,-32768,
--32768,-32768, 223, 224,-32768,-32768, 109,-32768, -37, 309,
--32768,-32768, 261, 203,-32768,-32768, 200,-32768, 297,-32768,
--32768,-32768, 25, 24,-32768, 203, 261,-32768, 126,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768, 9,-32768,-32768,
--32768,-32768, 324, 326,-32768
+static const short yypact[] = { 41,
+-32768,-32768, 41,-32768, -62,-32768, 10, 54,-32768,-32768,
+-32768,-32768, 20,-32768, -20, 44,-32768,-32768, 95, 78,
+ 72, 83, 45, 112, 187, 44,-32768, 94,-32768,-32768,
+-32768,-32768,-32768, 189,-32768,-32768, 398,-32768, 223, 23,
+-32768,-32768,-32768, 57,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768, 201, 398,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768, 194, 696,-32768, 140,-32768, 53,-32768,
+-32768,-32768,-32768, 47,-32768, -25,-32768,-32768,-32768,-32768,
+-32768, -8, 138,-32768, 173,-32768, 185, 196,-32768,-32768,
+-32768,-32768,-32768, 209, 188,-32768,-32768,-32768, 713, 265,
+-32768,-32768,-32768, 160, 271,-32768,-32768,-32768, 157,-32768,
+-32768, 41, 157, 174, 108,-32768, 559,-32768, 157,-32768,
+-32768,-32768,-32768,-32768, 90,-32768, 169, 171, 176, 137,
+ 71,-32768, -62,-32768, 137,-32768,-32768, 59, 178, 248,
+ 180, 218, 42, 60,-32768,-32768, -33,-32768,-32768, 183,
+-32768,-32768,-32768, 190,-32768,-32768, 289, 713, 287, 287,
+ 133,-32768,-32768, 193,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768, 203,-32768,-32768, 93,-32768,
+ 482,-32768, 272, 9, 170, 200, 9, 133, 231, 202,
+ 9, 232, 30, 52,-32768, 337, 636,-32768,-32768,-32768,
+-32768,-32768,-32768, -69,-32768,-32768, 283, 41, 133, 211,
+-32768, 124, 221, 212, -69,-32768,-32768, 216,-32768,-32768,
+-32768, 137, 317, 287, 227, 137, 267,-32768, 235, 30,
+-32768,-32768, 287, 213, 98,-32768,-32768, 224, 636,-32768,
+ 133, 103, 219, 636, 133, 106, 636,-32768,-32768,-32768,
+ 120,-32768,-32768, 222, 122,-32768,-32768,-32768,-32768, 220,
+ 228, 84, 233, 226, 229,-32768,-32768,-32768,-32768,-32768,
+ 236, 133, 133,-32768, 133, 133, 128, 225,-32768,-32768,
+ 331,-32768, 258,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768, 235,-32768, 234,-32768, 9,-32768,-32768, 239,
+-32768,-32768,-32768, 240,-32768,-32768,-32768, 14, 234,-32768,
+ 337,-32768, 237,-32768,-32768, 19,-32768,-32768, 242,-32768,
+-32768,-32768, 247,-32768,-32768, 7, 127,-32768,-32768, 253,
+ 317,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 255, 259,
+-32768,-32768,-32768, 142,-32768, -33, 133,-32768, 287, 256,
+-32768,-32768, 225,-32768, 331,-32768,-32768,-32768, 19, 28,
+ 165, 256, 287,-32768, 179,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768, 12,-32768,-32768,-32768,-32768, 341, 365,
+-32768
};
static const short yypgoto[] = {-32768,
--32768, 327, 204,-32768,-32768, 318,-32768,-32768, 308,-32768,
--32768, 282,-32768,-32768, 268,-32768, 226,-32768,-32768, 235,
--32768, 279,-32768,-32768,-32768, 195,-32768, 33, -129,-32768,
- 51,-32768, 123,-32768,-32768,-32768,-32768, -17, 59, -156,
--32768, -185, -52,-32768, 130, -173, -109,-32768,-32768,-32768,
- -209, 30, -50, -43,-32768, 46,-32768, -137,-32768,-32768,
--32768,-32768, 180, -159, -246,-32768, 94, 88, 97,-32768,
--32768, -206,-32768,-32768, 10,-32768,-32768,-32768,-32768,-32768,
--32768, 26, 27, -141,-32768,-32768,-32768,-32768,-32768, 65,
- -118,-32768, 134, 1,-32768, -7,-32768
+-32768, 364, 241,-32768,-32768, 356,-32768,-32768, 344,-32768,
+-32768, 316,-32768,-32768,-32768, 301,-32768, 263,-32768,-32768,
+ 269,-32768, 314,-32768,-32768,-32768, 230,-32768, 69, 62,
+-32768, 96,-32768, 156,-32768,-32768,-32768,-32768, 16, 86,
+ -131,-32768, -193, -55,-32768, 172, -174, -94,-32768,-32768,
+-32768, -162, 61, -53, -51,-32768, 89,-32768,-32768,-32768,
+-32768, -142,-32768, -118, 50, -17, 184,-32768, -188,-32768,
+-32768, 32,-32768,-32768,-32768,-32768,-32768,-32768, 55, 49,
+ -121,-32768,-32768,-32768,-32768,-32768, 97, -123,-32768, 181,
+ 1,-32768, -7,-32768
};
-#define YYLAST 837
+#define YYLAST 804
static const short yytable[] = { 15,
- 5, 188, 230, 5, 189, 15, 257, 170, 97, 97,
- 98, 98, 367, 10, 311, 161, 109, 99, 99, 229,
- 288, 157, 158, 243, 10, 165, 166, 62, 10, 68,
- 10, 11, 10, 75, 227, 61, 259, 67, 361, 10,
- 181, 74, 1, 2, 122, 62, 10, 248, 63, 1,
- 2, 99, 242, 61, 10, 11, 7, 246, 302, -242,
- 107, 304, 75, 10, 165, 166, 183, 114, 228, 320,
- 74, 253, 162, 163, 164, 10, 165, 166, 1, 2,
- 60, 299, 298, 197, 328, 10, 165, 166, 292, 110,
- 362, 1, 2, 355, 363, 123, 68, 333, 60, 131,
- 75, 152, 122, 16, 67, 153, 151, 128, 74, 99,
- 132, 371, 161, 317, 150, 343, 249, 181, 172, 250,
- 234, 198, 108, 257, 336, 12, 171, 240, 10, 367,
- 181, 1, 2, 274, 19, 200, 201, 64, 157, 158,
- 27, 182, 28, 183, 105, 275, 195, 196, 10, 17,
- 29, 1, 2, 123, 187, 249, 183, 103, 104, 30,
- 197, 203, 10, 165, 166, 69, 225, 31, 295, 167,
- 226, 238, 296, 300, 238, 329, 287, 296, 32, 238,
- 34, 78, 254, 99, 258, 370, 35, 253, 334, 79,
- 80, 303, 305, 308, 370, 296, 306, 309, 198, 199,
- 81, 354, 82, 346, 83, 76, 262, 347, 102, 20,
- 117, 352, 200, 201, 84, 353, 281, 85, 157, 158,
- 114, 86, 79, 80, 87, 293, 265, 266, 115, 21,
- 116, 22, 202, 118, 88, 268, 269, 119, 203, 89,
- 23, 90, 124, 91, 125, 126, 130, 204, 156, -243,
- 154, 155, 92, 93, 205, 178, 206, 10, 165, 166,
- 1, 2, 179, 180, 190, 192, 193, 94, 10, 222,
- 233, 224, 241, 244, 183, 247, 260, 263, 261, 264,
- 95, 273, 271, 277, 279, 282, 172, 290, 238, 294,
- 301, 110, 307, 310, 171, 313, 312, 318, 254, 172,
- 324, 258, 339, 319, 325, 331, 197, 171, 10, 165,
- 166, 321, 357, 345, 197, 340, 10, 165, 166, 341,
- 348, 342, 81, 374, 82, 375, 83, 350, 351, 6,
- 18, 173, 33, 129, 77, 345, 84, 106, 127, 85,
- 101, 335, 327, 86, 198, 339, 87, 194, 285, 366,
- 372, 278, 198, 199, 330, 349, 88, 315, 200, 201,
- 314, 89, 360, 90, 245, 91, 200, 201, 316, 356,
- 332, 297, 358, 0, 92, 93, 0, 0, 0, 0,
- 0, 0, 0, 0, 203, 0, 202, 0, 0, 94,
- 10, 0, 203, 133, 134, 0, 0, 0, 0, 0,
- 135, 204, 286, 0, 81, 36, 82, 0, 83, 136,
- 206, 0, 0, 0, 0, 0, 0, 0, 84, 0,
- 0, 85, 0, 0, 0, 86, 0, 0, 87, 38,
- 39, 40, 0, 0, 0, 0, 0, 137, 88, 42,
- 0, 0, 0, 89, 43, 90, 44, 91, 0, 10,
- 0, 0, 1, 2, 45, 0, 92, 93, 138, 139,
- 0, 0, 0, 46, 36, 47, 0, 0, 0, 0,
- 48, 94, 49, 50, 51, 0, 0, 0, 0, 0,
- 0, 0, 37, 0, 0, 0, 0, 0, 38, 39,
- 40, 0, 0, 0, 41, 0, 0, 0, 42, 0,
- 0, 0, 0, 43, 0, 44, 0, 0, 0, 0,
- 0, 0, 0, 45, 0, 0, 0, 0, 0, 0,
- 0, 0, 46, 0, 47, 0, 0, 0, 0, 48,
- 0, 49, 50, 51, 133, 134, 157, 158, 0, 0,
- 0, 135, 0, 0, 0, 81, 36, 82, 0, 83,
- 136, 0, 0, 0, 0, 0, 227, 0, 0, 84,
- 0, 0, 85, 0, 0, 0, 86, 0, 0, 87,
- 38, 39, 40, 0, 0, 0, 0, 0, 137, 88,
- 42, 0, 0, 0, 89, 43, 90, 44, 91, 0,
- 228, 0, 0, 0, 0, 45, 0, 92, 93, 138,
- 139, 0, 0, 0, 46, 0, 47, 0, 0, 133,
- 134, 48, 94, 49, 50, 51, 135, 0, 0, 0,
- 81, 36, 82, 0, 83, 136, 0, 0, 0, 0,
- 0, 0, 0, 0, 84, 0, 0, 85, 0, 0,
- 0, 86, 0, 0, 87, 38, 39, 40, 0, 0,
- 0, 0, 0, 137, 88, 42, 0, 0, 0, 89,
- 43, 90, 44, 91, 0, 0, 0, 0, 0, 0,
- 45, 0, 92, 93, 138, 139, 0, 0, 0, 46,
- 0, 47, 0, 140, 133, 134, 48, 94, 49, 50,
- 51, 135, 0, 0, 0, 81, 36, 82, 0, 83,
- 136, 0, 0, 0, 0, 0, 0, 0, 0, 84,
- 0, 0, 85, 0, 0, 0, 86, 0, 0, 87,
- 38, 39, 40, 0, 0, 0, 0, 0, 137, 88,
- 42, 0, 0, 0, 89, 43, 90, 44, 91, 0,
- 0, 0, 79, 80, 0, 45, 0, 92, 93, 138,
- 139, 0, 0, 81, 46, 82, 47, 83, 1, 2,
- 0, 48, 94, 49, 50, 51, 0, 84, 0, 81,
- 85, 82, 0, 83, 86, 0, 0, 87, 0, 0,
- 0, 0, 0, 84, 0, 0, 85, 88, 0, 0,
- 86, 0, 89, 87, 90, 0, 91, 0, 0, 0,
- 0, 0, 0, 88, 0, 92, 93, 0, 89, 0,
- 90, 0, 91, 0, 0, 0, 0, 0, 0, 0,
- 94, 92, 93, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 94
+ 5, 192, 257, 5, 193, 15, 230, 175, 101, 101,
+ 102, 102, 103, 103, 10, 373, 10, 10, 11, 114,
+ 112, 10, 170, 171, 162, 163, 10, 10, 11, 65,
+ 10, 260, 72, 1, 2, 166, 79, 64, 289, 67,
+ 71, 7, 367, 261, 78, 127, 186, 103, 65, 229,
+ 303, 1, 2, 306, 10, 20, 64, 1, 2, 10,
+ 170, 171, 227, 21, 10, 259, 79, 1, 2, 243,
+ 253, 248, 188, 315, 78, 167, 168, 169, 10, 170,
+ 171, 1, 2, 113, 22, 19, 23, 16, 325, 201,
+ 265, 10, 170, 171, 115, 24, 368, 32, 228, 128,
+ 369, 72, 73, 28, 127, 79, 103, 299, 293, 71,
+ 234, 156, 133, 78, 12, 249, 377, 257, 349, 155,
+ 343, 186, 300, 177, 17, 63, 304, 166, 202, 240,
+ 68, 176, 333, 201, 29, 10, 170, 171, 201, 186,
+ 10, 170, 171, 314, 63, 187, 339, 188, 136, 162,
+ 163, 199, 200, 249, 110, 30, 250, 323, 128, 137,
+ 108, 109, -241, 191, 10, 188, 31, 1, 2, 206,
+ 119, 334, 202, 288, 172, 103, 238, 202, 203, 238,
+ 83, 84, 373, 238, 253, 340, 254, 324, 258, 34,
+ 376, 162, 163, 204, 157, 33, 82, 225, 158, 376,
+ 36, 226, 296, 360, 83, 84, 297, 301, 264, 37,
+ 305, 297, 205, 206, 297, 85, 282, 86, 206, 87,
+ 267, 268, 269, 270, 307, 294, 310, 207, 308, 88,
+ 311, 352, 271, 89, 66, 353, 208, 90, 209, 80,
+ 91, 10, 170, 171, 1, 2, 358, 107, 242, 119,
+ 359, 92, 246, 120, 320, 321, 93, 322, 94, 123,
+ 95, 267, 268, 269, 270, 121, 122, 129, 124, 96,
+ 97, 130, 201, 131, 10, 170, 171, 135, 159, 161,
+ 160, -242, 183, 184, 98, 185, 194, 177, 85, 238,
+ 86, 197, 87, 196, 10, 176, 233, 99, 244, 247,
+ 254, 177, 88, 258, 222, 241, 89, 245, 346, 176,
+ 90, 202, 263, 91, 224, 266, 274, 276, 351, 278,
+ 280, 283, 291, 295, 92, 302, 115, 309, 313, 93,
+ 317, 94, 312, 95, 329, 318, 316, 319, 326, 330,
+ 380, 351, 96, 97, 10, 336, 337, 138, 139, 342,
+ 347, 346, 206, 348, 140, 372, 354, 98, 85, 38,
+ 86, 356, 87, 141, 381, 357, 6, 363, 18, 35,
+ 287, 81, 88, 178, 111, 134, 89, 132, 105, 341,
+ 90, 286, 335, 91, 41, 42, 43, 198, 332, 378,
+ 366, 355, 142, 279, 92, 45, 361, 362, 277, 93,
+ 46, 94, 47, 95, 338, 10, 0, 364, 1, 2,
+ 48, 0, 96, 97, 143, 144, 0, 0, 298, 49,
+ 38, 50, 0, 0, 0, 0, 51, 98, 52, 53,
+ 54, 0, 0, 0, 0, 39, 0, 0, 0, 40,
+ 0, 0, 0, 0, 0, 41, 42, 43, 0, 0,
+ 0, 44, 0, 0, 0, 0, 45, 0, 0, 0,
+ 0, 46, 0, 47, 0, 0, 0, 0, 0, 0,
+ 0, 48, 0, 0, 0, 0, 0, 0, 0, 0,
+ 49, 0, 50, 0, 0, 0, 0, 51, 0, 52,
+ 53, 54, 138, 139, 162, 163, 0, 0, 0, 140,
+ 0, 0, 0, 85, 38, 86, 0, 87, 141, 0,
+ 0, 0, 0, 0, 227, 0, 0, 88, 0, 0,
+ 0, 89, 0, 0, 0, 90, 0, 0, 91, 41,
+ 42, 43, 0, 0, 0, 0, 0, 142, 0, 92,
+ 45, 0, 0, 0, 93, 46, 94, 47, 95, 0,
+ 228, 0, 0, 0, 0, 48, 0, 96, 97, 143,
+ 144, 0, 0, 0, 49, 0, 50, 0, 0, 138,
+ 139, 51, 98, 52, 53, 54, 140, 0, 0, 0,
+ 85, 38, 86, 0, 87, 141, 0, 0, 0, 0,
+ 0, 0, 0, 0, 88, 0, 0, 0, 89, 0,
+ 0, 0, 90, 0, 0, 91, 41, 42, 43, 0,
+ 0, 0, 0, 0, 142, 0, 92, 45, 0, 0,
+ 0, 93, 46, 94, 47, 95, 0, 0, 0, 0,
+ 0, 0, 48, 0, 96, 97, 143, 144, 0, 0,
+ 0, 49, 0, 50, 0, 145, 138, 139, 51, 98,
+ 52, 53, 54, 140, 0, 0, 0, 85, 38, 86,
+ 0, 87, 141, 0, 0, 0, 0, 0, 0, 0,
+ 0, 88, 0, 0, 0, 89, 0, 0, 0, 90,
+ 0, 0, 91, 41, 42, 43, 0, 0, 0, 0,
+ 0, 142, 0, 92, 45, 0, 0, 0, 93, 46,
+ 94, 47, 95, 0, 0, 0, 83, 84, 0, 48,
+ 0, 96, 97, 143, 144, 0, 0, 85, 49, 86,
+ 50, 87, 0, 1, 2, 51, 98, 52, 53, 54,
+ 0, 88, 0, 0, 85, 89, 86, 0, 87, 90,
+ 0, 0, 91, 0, 0, 0, 0, 0, 88, 0,
+ 0, 0, 89, 92, 0, 0, 90, 0, 93, 91,
+ 94, 0, 95, 0, 0, 0, 0, 0, 0, 0,
+ 92, 96, 97, 0, 0, 93, 0, 94, 0, 95,
+ 0, 0, 0, 0, 0, 0, 98, 0, 96, 97,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 98
};
static const short yycheck[] = { 7,
- 0, 139, 176, 3, 142, 13, 192, 126, 61, 62,
- 61, 62, 4, 8, 261, 125, 28, 61, 62, 176,
- 227, 13, 14, 183, 8, 9, 10, 35, 8, 37,
- 8, 9, 8, 41, 33, 35, 193, 37, 15, 8,
- 78, 41, 11, 12, 95, 53, 8, 189, 17, 11,
- 12, 95, 182, 53, 8, 9, 102, 187, 244, 102,
- 45, 247, 70, 8, 9, 10, 104, 110, 67, 276,
- 70, 190, 5, 6, 7, 8, 9, 10, 11, 12,
- 35, 241, 239, 6, 294, 8, 9, 10, 230, 101,
- 67, 11, 12, 340, 71, 95, 104, 307, 53, 40,
- 108, 103, 153, 34, 104, 107, 114, 107, 108, 153,
- 51, 103, 222, 273, 114, 110, 100, 78, 126, 103,
- 100, 44, 107, 309, 100, 103, 126, 180, 8, 4,
- 78, 11, 12, 99, 104, 58, 59, 106, 13, 14,
- 9, 102, 82, 104, 106, 111, 154, 155, 8, 103,
- 82, 11, 12, 153, 102, 100, 104, 106, 107, 52,
- 6, 84, 8, 9, 10, 45, 103, 82, 103, 102,
- 107, 179, 107, 103, 182, 294, 227, 107, 3, 187,
- 105, 3, 190, 227, 192, 359, 21, 306, 307, 11,
- 12, 103, 103, 103, 368, 107, 107, 107, 44, 45,
- 22, 339, 24, 103, 26, 38, 206, 107, 106, 20,
- 69, 103, 58, 59, 36, 107, 224, 39, 13, 14,
- 110, 43, 11, 12, 46, 233, 94, 95, 79, 40,
- 79, 42, 78, 50, 56, 96, 97, 79, 84, 61,
- 51, 63, 3, 65, 110, 3, 102, 93, 102, 102,
- 108, 108, 74, 75, 100, 35, 102, 8, 9, 10,
- 11, 12, 102, 66, 102, 102, 3, 89, 8, 110,
- 25, 110, 104, 66, 104, 66, 30, 103, 107, 107,
- 102, 104, 98, 102, 4, 93, 294, 86, 296, 109,
- 105, 101, 104, 102, 294, 100, 103, 111, 306, 307,
- 4, 309, 310, 99, 80, 105, 6, 307, 8, 9,
- 10, 112, 110, 321, 6, 107, 8, 9, 10, 105,
- 102, 111, 22, 0, 24, 0, 26, 105, 105, 3,
- 13, 128, 25, 108, 53, 343, 36, 70, 104, 39,
- 62, 309, 292, 43, 44, 353, 46, 153, 226, 357,
- 368, 222, 44, 45, 296, 326, 56, 270, 58, 59,
- 267, 61, 353, 63, 185, 65, 58, 59, 272, 343,
- 306, 238, 347, -1, 74, 75, -1, -1, -1, -1,
- -1, -1, -1, -1, 84, -1, 78, -1, -1, 89,
- 8, -1, 84, 11, 12, -1, -1, -1, -1, -1,
- 18, 93, 102, -1, 22, 23, 24, -1, 26, 27,
- 102, -1, -1, -1, -1, -1, -1, -1, 36, -1,
- -1, 39, -1, -1, -1, 43, -1, -1, 46, 47,
- 48, 49, -1, -1, -1, -1, -1, 55, 56, 57,
- -1, -1, -1, 61, 62, 63, 64, 65, -1, 8,
- -1, -1, 11, 12, 72, -1, 74, 75, 76, 77,
- -1, -1, -1, 81, 23, 83, -1, -1, -1, -1,
- 88, 89, 90, 91, 92, -1, -1, -1, -1, -1,
- -1, -1, 41, -1, -1, -1, -1, -1, 47, 48,
- 49, -1, -1, -1, 53, -1, -1, -1, 57, -1,
- -1, -1, -1, 62, -1, 64, -1, -1, -1, -1,
- -1, -1, -1, 72, -1, -1, -1, -1, -1, -1,
- -1, -1, 81, -1, 83, -1, -1, -1, -1, 88,
- -1, 90, 91, 92, 11, 12, 13, 14, -1, -1,
- -1, 18, -1, -1, -1, 22, 23, 24, -1, 26,
- 27, -1, -1, -1, -1, -1, 33, -1, -1, 36,
- -1, -1, 39, -1, -1, -1, 43, -1, -1, 46,
- 47, 48, 49, -1, -1, -1, -1, -1, 55, 56,
- 57, -1, -1, -1, 61, 62, 63, 64, 65, -1,
- 67, -1, -1, -1, -1, 72, -1, 74, 75, 76,
- 77, -1, -1, -1, 81, -1, 83, -1, -1, 11,
- 12, 88, 89, 90, 91, 92, 18, -1, -1, -1,
+ 0, 144, 196, 3, 147, 13, 181, 131, 64, 65,
+ 64, 65, 64, 65, 8, 4, 8, 8, 9, 28,
+ 46, 8, 9, 10, 13, 14, 8, 8, 9, 37,
+ 8, 101, 40, 11, 12, 130, 44, 37, 227, 17,
+ 40, 104, 15, 113, 44, 99, 80, 99, 56, 181,
+ 244, 11, 12, 247, 8, 12, 56, 11, 12, 8,
+ 9, 10, 33, 20, 8, 197, 74, 11, 12, 188,
+ 194, 193, 106, 262, 74, 5, 6, 7, 8, 9,
+ 10, 11, 12, 109, 41, 106, 43, 34, 277, 6,
+ 209, 8, 9, 10, 103, 52, 69, 53, 69, 99,
+ 73, 109, 46, 9, 158, 113, 158, 239, 230, 109,
+ 102, 119, 112, 113, 105, 102, 105, 311, 112, 119,
+ 102, 80, 241, 131, 105, 37, 245, 222, 45, 185,
+ 108, 131, 295, 6, 57, 8, 9, 10, 6, 80,
+ 8, 9, 10, 60, 56, 104, 309, 106, 41, 13,
+ 14, 159, 160, 102, 108, 84, 105, 276, 158, 52,
+ 108, 109, 104, 104, 8, 106, 84, 11, 12, 86,
+ 112, 295, 45, 227, 104, 227, 184, 45, 46, 187,
+ 11, 12, 4, 191, 308, 309, 194, 60, 196, 3,
+ 365, 13, 14, 61, 105, 84, 3, 105, 109, 374,
+ 107, 109, 105, 346, 11, 12, 109, 105, 208, 21,
+ 105, 109, 80, 86, 109, 22, 224, 24, 86, 26,
+ 97, 98, 99, 100, 105, 233, 105, 95, 109, 36,
+ 109, 105, 109, 40, 12, 109, 104, 44, 106, 39,
+ 47, 8, 9, 10, 11, 12, 105, 108, 187, 112,
+ 109, 58, 191, 81, 272, 273, 63, 275, 65, 51,
+ 67, 97, 98, 99, 100, 81, 71, 3, 81, 76,
+ 77, 112, 6, 3, 8, 9, 10, 104, 110, 104,
+ 110, 104, 35, 104, 91, 68, 104, 295, 22, 297,
+ 24, 3, 26, 104, 8, 295, 25, 104, 68, 68,
+ 308, 309, 36, 311, 112, 106, 40, 106, 316, 309,
+ 44, 45, 30, 47, 112, 105, 96, 106, 326, 104,
+ 4, 95, 88, 111, 58, 107, 103, 106, 101, 63,
+ 105, 65, 113, 67, 4, 107, 104, 102, 114, 82,
+ 0, 349, 76, 77, 8, 107, 107, 11, 12, 113,
+ 109, 359, 86, 107, 18, 363, 104, 91, 22, 23,
+ 24, 107, 26, 27, 0, 107, 3, 112, 13, 26,
+ 104, 56, 36, 133, 74, 113, 40, 109, 65, 311,
+ 44, 226, 297, 47, 48, 49, 50, 158, 293, 374,
+ 359, 331, 56, 222, 58, 59, 347, 349, 215, 63,
+ 64, 65, 66, 67, 308, 8, -1, 353, 11, 12,
+ 74, -1, 76, 77, 78, 79, -1, -1, 238, 83,
+ 23, 85, -1, -1, -1, -1, 90, 91, 92, 93,
+ 94, -1, -1, -1, -1, 38, -1, -1, -1, 42,
+ -1, -1, -1, -1, -1, 48, 49, 50, -1, -1,
+ -1, 54, -1, -1, -1, -1, 59, -1, -1, -1,
+ -1, 64, -1, 66, -1, -1, -1, -1, -1, -1,
+ -1, 74, -1, -1, -1, -1, -1, -1, -1, -1,
+ 83, -1, 85, -1, -1, -1, -1, 90, -1, 92,
+ 93, 94, 11, 12, 13, 14, -1, -1, -1, 18,
+ -1, -1, -1, 22, 23, 24, -1, 26, 27, -1,
+ -1, -1, -1, -1, 33, -1, -1, 36, -1, -1,
+ -1, 40, -1, -1, -1, 44, -1, -1, 47, 48,
+ 49, 50, -1, -1, -1, -1, -1, 56, -1, 58,
+ 59, -1, -1, -1, 63, 64, 65, 66, 67, -1,
+ 69, -1, -1, -1, -1, 74, -1, 76, 77, 78,
+ 79, -1, -1, -1, 83, -1, 85, -1, -1, 11,
+ 12, 90, 91, 92, 93, 94, 18, -1, -1, -1,
22, 23, 24, -1, 26, 27, -1, -1, -1, -1,
- -1, -1, -1, -1, 36, -1, -1, 39, -1, -1,
- -1, 43, -1, -1, 46, 47, 48, 49, -1, -1,
- -1, -1, -1, 55, 56, 57, -1, -1, -1, 61,
- 62, 63, 64, 65, -1, -1, -1, -1, -1, -1,
- 72, -1, 74, 75, 76, 77, -1, -1, -1, 81,
- -1, 83, -1, 85, 11, 12, 88, 89, 90, 91,
- 92, 18, -1, -1, -1, 22, 23, 24, -1, 26,
- 27, -1, -1, -1, -1, -1, -1, -1, -1, 36,
- -1, -1, 39, -1, -1, -1, 43, -1, -1, 46,
- 47, 48, 49, -1, -1, -1, -1, -1, 55, 56,
- 57, -1, -1, -1, 61, 62, 63, 64, 65, -1,
- -1, -1, 11, 12, -1, 72, -1, 74, 75, 76,
- 77, -1, -1, 22, 81, 24, 83, 26, 11, 12,
- -1, 88, 89, 90, 91, 92, -1, 36, -1, 22,
- 39, 24, -1, 26, 43, -1, -1, 46, -1, -1,
- -1, -1, -1, 36, -1, -1, 39, 56, -1, -1,
- 43, -1, 61, 46, 63, -1, 65, -1, -1, -1,
- -1, -1, -1, 56, -1, 74, 75, -1, 61, -1,
- 63, -1, 65, -1, -1, -1, -1, -1, -1, -1,
- 89, 74, 75, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 89
+ -1, -1, -1, -1, 36, -1, -1, -1, 40, -1,
+ -1, -1, 44, -1, -1, 47, 48, 49, 50, -1,
+ -1, -1, -1, -1, 56, -1, 58, 59, -1, -1,
+ -1, 63, 64, 65, 66, 67, -1, -1, -1, -1,
+ -1, -1, 74, -1, 76, 77, 78, 79, -1, -1,
+ -1, 83, -1, 85, -1, 87, 11, 12, 90, 91,
+ 92, 93, 94, 18, -1, -1, -1, 22, 23, 24,
+ -1, 26, 27, -1, -1, -1, -1, -1, -1, -1,
+ -1, 36, -1, -1, -1, 40, -1, -1, -1, 44,
+ -1, -1, 47, 48, 49, 50, -1, -1, -1, -1,
+ -1, 56, -1, 58, 59, -1, -1, -1, 63, 64,
+ 65, 66, 67, -1, -1, -1, 11, 12, -1, 74,
+ -1, 76, 77, 78, 79, -1, -1, 22, 83, 24,
+ 85, 26, -1, 11, 12, 90, 91, 92, 93, 94,
+ -1, 36, -1, -1, 22, 40, 24, -1, 26, 44,
+ -1, -1, 47, -1, -1, -1, -1, -1, 36, -1,
+ -1, -1, 40, 58, -1, -1, 44, -1, 63, 47,
+ 65, -1, 67, -1, -1, -1, -1, -1, -1, -1,
+ 58, 76, 77, -1, -1, 63, -1, 65, -1, 67,
+ -1, -1, -1, -1, -1, -1, 91, -1, 76, 77,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 91
};
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
#line 3 "/usr/share/bison.simple"
@@ -1314,13 +1311,13 @@ yyreduce:
switch (yyn) {
case 1:
-#line 298 "asn1p_y.y"
+#line 297 "asn1p_y.y"
{
*(void **)param = yyvsp[0].a_grammar;
;
break;}
case 2:
-#line 304 "asn1p_y.y"
+#line 303 "asn1p_y.y"
{
yyval.a_grammar = asn1p_new();
checkmem(yyval.a_grammar);
@@ -1328,14 +1325,14 @@ case 2:
;
break;}
case 3:
-#line 309 "asn1p_y.y"
+#line 308 "asn1p_y.y"
{
yyval.a_grammar = yyvsp[-1].a_grammar;
TQ_ADD(&(yyval.a_grammar->modules), yyvsp[0].a_module, mod_next);
;
break;}
case 4:
-#line 330 "asn1p_y.y"
+#line 329 "asn1p_y.y"
{
if(yyvsp[-1].a_module) {
@@ -1352,27 +1349,27 @@ case 4:
;
break;}
case 5:
-#line 351 "asn1p_y.y"
+#line 350 "asn1p_y.y"
{ yyval.a_oid = 0; ;
break;}
case 6:
-#line 352 "asn1p_y.y"
+#line 351 "asn1p_y.y"
{ yyval.a_oid = yyvsp[0].a_oid; ;
break;}
case 7:
-#line 356 "asn1p_y.y"
+#line 355 "asn1p_y.y"
{
yyval.a_oid = yyvsp[-1].a_oid;
;
break;}
case 8:
-#line 359 "asn1p_y.y"
+#line 358 "asn1p_y.y"
{
yyval.a_oid = 0;
;
break;}
case 9:
-#line 365 "asn1p_y.y"
+#line 364 "asn1p_y.y"
{
yyval.a_oid = asn1p_oid_new();
asn1p_oid_add_arc(yyval.a_oid, &yyvsp[0].a_oid_arc);
@@ -1381,7 +1378,7 @@ case 9:
;
break;}
case 10:
-#line 371 "asn1p_y.y"
+#line 370 "asn1p_y.y"
{
yyval.a_oid = yyvsp[-1].a_oid;
asn1p_oid_add_arc(yyval.a_oid, &yyvsp[0].a_oid_arc);
@@ -1390,94 +1387,117 @@ case 10:
;
break;}
case 11:
-#line 380 "asn1p_y.y"
+#line 379 "asn1p_y.y"
{ /* iso */
yyval.a_oid_arc.name = yyvsp[0].tv_str;
yyval.a_oid_arc.number = -1;
;
break;}
case 12:
-#line 384 "asn1p_y.y"
+#line 383 "asn1p_y.y"
{ /* iso(1) */
yyval.a_oid_arc.name = yyvsp[-3].tv_str;
yyval.a_oid_arc.number = yyvsp[-1].a_int;
;
break;}
case 13:
-#line 388 "asn1p_y.y"
+#line 387 "asn1p_y.y"
{ /* 1 */
yyval.a_oid_arc.name = 0;
yyval.a_oid_arc.number = yyvsp[0].a_int;
;
break;}
case 14:
-#line 398 "asn1p_y.y"
+#line 397 "asn1p_y.y"
{ yyval.a_module_flags = MSF_NOFLAGS; ;
break;}
case 15:
-#line 399 "asn1p_y.y"
+#line 398 "asn1p_y.y"
{
yyval.a_module_flags = yyvsp[0].a_module_flags;
;
break;}
case 16:
-#line 408 "asn1p_y.y"
+#line 407 "asn1p_y.y"
{
yyval.a_module_flags = yyvsp[0].a_module_flags;
;
break;}
case 17:
-#line 411 "asn1p_y.y"
+#line 410 "asn1p_y.y"
{
yyval.a_module_flags = yyvsp[-1].a_module_flags | yyvsp[0].a_module_flags;
;
break;}
case 18:
-#line 420 "asn1p_y.y"
+#line 419 "asn1p_y.y"
{
yyval.a_module_flags = MSF_EXPLICIT_TAGS;
;
break;}
case 19:
-#line 423 "asn1p_y.y"
+#line 422 "asn1p_y.y"
{
yyval.a_module_flags = MSF_IMPLICIT_TAGS;
;
break;}
case 20:
-#line 426 "asn1p_y.y"
+#line 425 "asn1p_y.y"
{
yyval.a_module_flags = MSF_AUTOMATIC_TAGS;
;
break;}
case 21:
-#line 429 "asn1p_y.y"
+#line 428 "asn1p_y.y"
{
yyval.a_module_flags = MSF_EXTENSIBILITY_IMPLIED;
;
break;}
case 22:
-#line 438 "asn1p_y.y"
-{ yyval.a_module = 0; ;
+#line 432 "asn1p_y.y"
+{
+ /* X.680Amd1 specifies TAG and XER */
+ if(strcmp(yyvsp[-1].tv_str, "TAG") == 0) {
+ yyval.a_module_flags = MSF_TAG_INSTRUCTIONS;
+ } else if(strcmp(yyvsp[-1].tv_str, "XER") == 0) {
+ yyval.a_module_flags = MSF_XER_INSTRUCTIONS;
+ } else {
+ fprintf(stderr,
+ "WARNING: %s INSTRUCTIONS at line %d: "
+ "Unrecognized encoding reference\n",
+ yyvsp[-1].tv_str, yylineno);
+ yyval.a_module_flags = MSF_unk_INSTRUCTIONS;
+ }
+ free(yyvsp[-1].tv_str);
+ ;
break;}
case 23:
-#line 439 "asn1p_y.y"
+#line 453 "asn1p_y.y"
+{ yyval.a_module = 0; ;
+ break;}
+case 24:
+#line 454 "asn1p_y.y"
{
- assert(yyvsp[0].a_module);
yyval.a_module = yyvsp[0].a_module;
;
break;}
-case 24:
-#line 449 "asn1p_y.y"
+case 25:
+#line 463 "asn1p_y.y"
{
yyval.a_module = yyvsp[0].a_module;
;
break;}
-case 25:
-#line 452 "asn1p_y.y"
+case 26:
+#line 466 "asn1p_y.y"
{
yyval.a_module = yyvsp[-1].a_module;
+ /* Behave well when one of them is skipped. */
+ if(!(yyvsp[-1].a_module)) {
+ if(yyvsp[0].a_module) yyval.a_module = yyvsp[0].a_module;
+ break;
+ }
+
#ifdef MY_IMPORT
#error MY_IMPORT DEFINED ELSEWHERE!
#endif
@@ -1497,14 +1517,14 @@ case 25:
;
break;}
-case 26:
-#line 479 "asn1p_y.y"
+case 27:
+#line 499 "asn1p_y.y"
{
yyval.a_module = yyvsp[0].a_module;
;
break;}
-case 27:
-#line 482 "asn1p_y.y"
+case 28:
+#line 502 "asn1p_y.y"
{
yyval.a_module = asn1p_module_new();
checkmem(yyval.a_module);
@@ -1515,8 +1535,8 @@ case 27:
}
;
break;}
-case 28:
-#line 491 "asn1p_y.y"
+case 29:
+#line 511 "asn1p_y.y"
{
yyval.a_module = asn1p_module_new();
checkmem(yyval.a_module);
@@ -1525,8 +1545,8 @@ case 28:
TQ_ADD(&(yyval.a_module->members), yyvsp[0].a_expr, next);
;
break;}
-case 29:
-#line 498 "asn1p_y.y"
+case 30:
+#line 518 "asn1p_y.y"
{
yyval.a_module = asn1p_module_new();
checkmem(yyval.a_module);
@@ -1535,8 +1555,8 @@ case 29:
TQ_ADD(&(yyval.a_module->members), yyvsp[0].a_expr, next);
;
break;}
-case 30:
-#line 511 "asn1p_y.y"
+case 31:
+#line 531 "asn1p_y.y"
{
yyval.a_module = asn1p_module_new();
checkmem(yyval.a_module);
@@ -1545,8 +1565,23 @@ case 30:
TQ_ADD(&(yyval.a_module->members), yyvsp[0].a_expr, next);
;
break;}
-case 31:
-#line 522 "asn1p_y.y"
+case 32:
+#line 539 "asn1p_y.y"
+{ asn1p_lexer_hack_push_encoding_control(); ;
+ break;}
+case 33:
+#line 540 "asn1p_y.y"
+{
+ fprintf(stderr,
+ "WARNING: ENCODING-CONTROL %s "
+ "specification at line %d ignored\n",
+ yyvsp[-1].tv_str, yylineno);
+ free(yyvsp[-1].tv_str);
+ yyval.a_module = 0;
+ ;
+ break;}
+case 34:
+#line 552 "asn1p_y.y"
{
return yyerror(
"Attempt to redefine a standard basic type, "
@@ -1554,35 +1589,35 @@ case 31:
"to older version of ASN.1 standard");
;
break;}
-case 32:
-#line 536 "asn1p_y.y"
+case 35:
+#line 566 "asn1p_y.y"
{
yyval.a_module = yyvsp[-1].a_module;
;
break;}
-case 33:
-#line 542 "asn1p_y.y"
+case 36:
+#line 572 "asn1p_y.y"
{
return yyerror("Empty IMPORTS list");
;
break;}
-case 34:
-#line 548 "asn1p_y.y"
+case 37:
+#line 578 "asn1p_y.y"
{
yyval.a_module = asn1p_module_new();
checkmem(yyval.a_module);
TQ_ADD(&(yyval.a_module->imports), yyvsp[0].a_xports, xp_next);
;
break;}
-case 35:
-#line 553 "asn1p_y.y"
+case 38:
+#line 583 "asn1p_y.y"
{
yyval.a_module = yyvsp[-1].a_module;
TQ_ADD(&(yyval.a_module->imports), yyvsp[0].a_xports, xp_next);
;
break;}
-case 36:
-#line 560 "asn1p_y.y"
+case 39:
+#line 590 "asn1p_y.y"
{
yyval.a_xports = yyvsp[-3].a_xports;
yyval.a_xports->from = yyvsp[-1].tv_str;
@@ -1590,23 +1625,23 @@ case 36:
checkmem(yyval.a_xports);
;
break;}
-case 37:
-#line 569 "asn1p_y.y"
+case 40:
+#line 599 "asn1p_y.y"
{
yyval.a_xports = asn1p_xports_new();
checkmem(yyval.a_xports);
TQ_ADD(&(yyval.a_xports->members), yyvsp[0].a_expr, next);
;
break;}
-case 38:
-#line 574 "asn1p_y.y"
+case 41:
+#line 604 "asn1p_y.y"
{
yyval.a_xports = yyvsp[-2].a_xports;
TQ_ADD(&(yyval.a_xports->members), yyvsp[0].a_expr, next);
;
break;}
-case 39:
-#line 581 "asn1p_y.y"
+case 42:
+#line 611 "asn1p_y.y"
{
yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr);
@@ -1614,8 +1649,8 @@ case 39:
yyval.a_expr->expr_type = A1TC_REFERENCE;
;
break;}
-case 40:
-#line 587 "asn1p_y.y"
+case 43:
+#line 617 "asn1p_y.y"
{
yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr);
@@ -1623,43 +1658,43 @@ case 40:
yyval.a_expr->expr_type = A1TC_REFERENCE;
;
break;}
-case 41:
-#line 596 "asn1p_y.y"
+case 44:
+#line 626 "asn1p_y.y"
{
yyval.a_xports = yyvsp[-1].a_xports;
;
break;}
-case 42:
-#line 599 "asn1p_y.y"
+case 45:
+#line 629 "asn1p_y.y"
{
yyval.a_xports = 0;
;
break;}
-case 43:
-#line 602 "asn1p_y.y"
+case 46:
+#line 632 "asn1p_y.y"
{
/* Empty EXPORTS clause effectively prohibits export. */
yyval.a_xports = asn1p_xports_new();
checkmem(yyval.a_xports);
;
break;}
-case 44:
-#line 610 "asn1p_y.y"
+case 47:
+#line 640 "asn1p_y.y"
{
yyval.a_xports = asn1p_xports_new();
assert(yyval.a_xports);
TQ_ADD(&(yyval.a_xports->members), yyvsp[0].a_expr, next);
;
break;}
-case 45:
-#line 615 "asn1p_y.y"
+case 48:
+#line 645 "asn1p_y.y"
{
yyval.a_xports = yyvsp[-2].a_xports;
TQ_ADD(&(yyval.a_xports->members), yyvsp[0].a_expr, next);
;
break;}
-case 46:
-#line 622 "asn1p_y.y"
+case 49:
+#line 652 "asn1p_y.y"
{
yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr);
@@ -1667,8 +1702,8 @@ case 46:
yyval.a_expr->expr_type = A1TC_EXPORTVAR;
;
break;}
-case 47:
-#line 628 "asn1p_y.y"
+case 50:
+#line 658 "asn1p_y.y"
{
yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr);
@@ -1676,8 +1711,8 @@ case 47:
yyval.a_expr->expr_type = A1TC_EXPORTVAR;
;
break;}
-case 48:
-#line 638 "asn1p_y.y"
+case 51:
+#line 668 "asn1p_y.y"
{
yyval.a_expr = yyvsp[-4].a_expr;
assert(yyval.a_expr->Identifier == 0);
@@ -1686,8 +1721,8 @@ case 48:
// take care of optValueSetBody
;
break;}
-case 49:
-#line 648 "asn1p_y.y"
+case 52:
+#line 678 "asn1p_y.y"
{
yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr);
@@ -1696,8 +1731,8 @@ case 49:
yyval.a_expr->meta_type = AMT_TYPEREF;
;
break;}
-case 50:
-#line 655 "asn1p_y.y"
+case 53:
+#line 685 "asn1p_y.y"
{
yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr);
@@ -1705,17 +1740,17 @@ case 50:
yyval.a_expr->meta_type = AMT_TYPE;
;
break;}
-case 51:
-#line 664 "asn1p_y.y"
+case 54:
+#line 694 "asn1p_y.y"
{ ;
break;}
-case 52:
-#line 665 "asn1p_y.y"
+case 55:
+#line 695 "asn1p_y.y"
{
;
break;}
-case 53:
-#line 681 "asn1p_y.y"
+case 56:
+#line 711 "asn1p_y.y"
{
yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr);
@@ -1725,8 +1760,8 @@ case 53:
yyval.a_expr->meta_type = AMT_TYPE;
;
break;}
-case 54:
-#line 689 "asn1p_y.y"
+case 57:
+#line 719 "asn1p_y.y"
{
yyval.a_expr = yyvsp[0].a_expr;
yyval.a_expr->Identifier = yyvsp[-3].tv_str;
@@ -1735,8 +1770,8 @@ case 54:
assert(yyval.a_expr->meta_type);
;
break;}
-case 55:
-#line 696 "asn1p_y.y"
+case 58:
+#line 726 "asn1p_y.y"
{
yyval.a_expr = yyvsp[0].a_expr;
yyval.a_expr->Identifier = yyvsp[-2].tv_str;
@@ -1744,8 +1779,8 @@ case 55:
assert(yyval.a_expr->meta_type == AMT_OBJECT);
;
break;}
-case 56:
-#line 713 "asn1p_y.y"
+case 59:
+#line 743 "asn1p_y.y"
{
yyval.a_expr = yyvsp[0].a_expr;
assert(yyval.a_expr->Identifier == 0);
@@ -1754,8 +1789,8 @@ case 56:
yyval.a_expr->meta_type = AMT_PARAMTYPE;
;
break;}
-case 57:
-#line 723 "asn1p_y.y"
+case 60:
+#line 753 "asn1p_y.y"
{
int ret;
yyval.a_plist = asn1p_paramlist_new(yylineno);
@@ -1766,8 +1801,8 @@ case 57:
if(yyvsp[0].a_parg.argument) free(yyvsp[0].a_parg.argument);
;
break;}
-case 58:
-#line 732 "asn1p_y.y"
+case 61:
+#line 762 "asn1p_y.y"
{
int ret;
yyval.a_plist = yyvsp[-2].a_plist;
@@ -1777,15 +1812,15 @@ case 58:
if(yyvsp[0].a_parg.argument) free(yyvsp[0].a_parg.argument);
;
break;}
-case 59:
-#line 743 "asn1p_y.y"
+case 62:
+#line 773 "asn1p_y.y"
{
yyval.a_parg.governor = NULL;
yyval.a_parg.argument = yyvsp[0].tv_str;
;
break;}
-case 60:
-#line 747 "asn1p_y.y"
+case 63:
+#line 777 "asn1p_y.y"
{
int ret;
yyval.a_parg.governor = asn1p_ref_new(yylineno);
@@ -1794,8 +1829,8 @@ case 60:
yyval.a_parg.argument = yyvsp[0].tv_str;
;
break;}
-case 61:
-#line 754 "asn1p_y.y"
+case 64:
+#line 784 "asn1p_y.y"
{
int ret;
yyval.a_parg.governor = asn1p_ref_new(yylineno);
@@ -1805,29 +1840,29 @@ case 61:
yyval.a_parg.argument = yyvsp[0].tv_str;
;
break;}
-case 62:
-#line 765 "asn1p_y.y"
+case 65:
+#line 795 "asn1p_y.y"
{
yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr);
TQ_ADD(&(yyval.a_expr->members), yyvsp[0].a_expr, next);
;
break;}
-case 63:
-#line 770 "asn1p_y.y"
+case 66:
+#line 800 "asn1p_y.y"
{
yyval.a_expr = yyvsp[-2].a_expr;
TQ_ADD(&(yyval.a_expr->members), yyvsp[0].a_expr, next);
;
break;}
-case 64:
-#line 777 "asn1p_y.y"
+case 67:
+#line 807 "asn1p_y.y"
{
yyval.a_expr = yyvsp[0].a_expr;
;
break;}
-case 65:
-#line 780 "asn1p_y.y"
+case 68:
+#line 810 "asn1p_y.y"
{
yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr);
@@ -1836,23 +1871,23 @@ case 65:
yyval.a_expr->meta_type = AMT_VALUE;
;
break;}
-case 66:
-#line 793 "asn1p_y.y"
+case 69:
+#line 823 "asn1p_y.y"
{
yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr);
TQ_ADD(&(yyval.a_expr->members), yyvsp[0].a_expr, next);
;
break;}
-case 67:
-#line 798 "asn1p_y.y"
+case 70:
+#line 828 "asn1p_y.y"
{
yyval.a_expr = yyvsp[-2].a_expr;
TQ_ADD(&(yyval.a_expr->members), yyvsp[0].a_expr, next);
;
break;}
-case 68:
-#line 805 "asn1p_y.y"
+case 71:
+#line 835 "asn1p_y.y"
{
yyval.a_expr = yyvsp[-2].a_expr;
checkmem(yyval.a_expr);
@@ -1861,16 +1896,16 @@ case 68:
assert(yyval.a_expr->meta_type == AMT_OBJECT);
;
break;}
-case 69:
-#line 815 "asn1p_y.y"
+case 72:
+#line 845 "asn1p_y.y"
{ yyval.a_int = 0; ;
break;}
-case 70:
-#line 816 "asn1p_y.y"
+case 73:
+#line 846 "asn1p_y.y"
{ yyval.a_int = 1; ;
break;}
-case 71:
-#line 820 "asn1p_y.y"
+case 74:
+#line 850 "asn1p_y.y"
{
yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr);
@@ -1879,15 +1914,15 @@ case 71:
TQ_ADD(&(yyval.a_expr->members), yyvsp[0].a_expr, next);
;
break;}
-case 72:
-#line 827 "asn1p_y.y"
+case 75:
+#line 857 "asn1p_y.y"
{
yyval.a_expr = yyvsp[-2].a_expr;
TQ_ADD(&(yyval.a_expr->members), yyvsp[0].a_expr, next);
;
break;}
-case 73:
-#line 834 "asn1p_y.y"
+case 76:
+#line 864 "asn1p_y.y"
{
yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr);
@@ -1897,16 +1932,16 @@ case 73:
yyval.a_expr->marker = yyvsp[0].a_marker;
;
break;}
-case 74:
-#line 842 "asn1p_y.y"
+case 77:
+#line 872 "asn1p_y.y"
{
yyval.a_expr = yyvsp[-1].a_expr;
yyval.a_expr->Identifier = yyvsp[-2].a_refcomp.name;
yyval.a_expr->unique = yyvsp[0].a_int;
;
break;}
-case 75:
-#line 847 "asn1p_y.y"
+case 78:
+#line 877 "asn1p_y.y"
{
int ret;
yyval.a_expr = asn1p_expr_new(yylineno);
@@ -1923,48 +1958,48 @@ case 75:
yyval.a_expr->unique = yyvsp[0].a_int;
;
break;}
-case 76:
-#line 865 "asn1p_y.y"
+case 79:
+#line 895 "asn1p_y.y"
{ yyval.a_wsynt = 0; ;
break;}
-case 77:
-#line 866 "asn1p_y.y"
+case 80:
+#line 896 "asn1p_y.y"
{
yyval.a_wsynt = yyvsp[0].a_wsynt;
;
break;}
-case 78:
-#line 873 "asn1p_y.y"
+case 81:
+#line 903 "asn1p_y.y"
{ asn1p_lexer_hack_enable_with_syntax(); ;
break;}
-case 79:
-#line 875 "asn1p_y.y"
+case 82:
+#line 905 "asn1p_y.y"
{
yyval.a_wsynt = yyvsp[-1].a_wsynt;
;
break;}
-case 80:
-#line 881 "asn1p_y.y"
+case 83:
+#line 911 "asn1p_y.y"
{
yyval.a_wsynt = asn1p_wsyntx_new();
TQ_ADD(&(yyval.a_wsynt->chunks), yyvsp[0].a_wchunk, next);
;
break;}
-case 81:
-#line 885 "asn1p_y.y"
+case 84:
+#line 915 "asn1p_y.y"
{
yyval.a_wsynt = yyvsp[-1].a_wsynt;
TQ_ADD(&(yyval.a_wsynt->chunks), yyvsp[0].a_wchunk, next);
;
break;}
-case 82:
-#line 892 "asn1p_y.y"
+case 85:
+#line 922 "asn1p_y.y"
{
yyval.a_wchunk = asn1p_wsyntx_chunk_frombuf(yyvsp[0].tv_opaque.buf, yyvsp[0].tv_opaque.len, 0);
;
break;}
-case 83:
-#line 895 "asn1p_y.y"
+case 86:
+#line 925 "asn1p_y.y"
{
asn1p_ref_t *ref;
int ret;
@@ -1975,8 +2010,8 @@ case 83:
yyval.a_wchunk = asn1p_wsyntx_chunk_fromref(ref, 0);
;
break;}
-case 84:
-#line 921 "asn1p_y.y"
+case 87:
+#line 951 "asn1p_y.y"
{
yyval.a_expr = yyvsp[0].a_expr;
assert(yyval.a_expr->Identifier == 0);
@@ -1984,22 +2019,22 @@ case 84:
yyval.a_expr->tag = yyvsp[-1].tv_nametag.tag;
;
break;}
-case 85:
-#line 927 "asn1p_y.y"
+case 88:
+#line 957 "asn1p_y.y"
{
yyval.a_expr = yyvsp[0].a_expr;
;
break;}
-case 86:
-#line 933 "asn1p_y.y"
+case 89:
+#line 963 "asn1p_y.y"
{
yyval.a_expr = yyvsp[-2].a_expr;
yyval.a_expr->constraints = yyvsp[-1].a_constr;
yyval.a_expr->marker = yyvsp[0].a_marker;
;
break;}
-case 87:
-#line 941 "asn1p_y.y"
+case 90:
+#line 971 "asn1p_y.y"
{
yyval.a_expr = asn1p_expr_new(asn1p_lineno);
checkmem(yyval.a_expr);
@@ -2009,8 +2044,8 @@ case 87:
yyval.a_expr->meta_type = AMT_TYPE;
;
break;}
-case 88:
-#line 949 "asn1p_y.y"
+case 91:
+#line 979 "asn1p_y.y"
{
yyval.a_expr = asn1p_expr_new(asn1p_lineno);
checkmem(yyval.a_expr);
@@ -2021,8 +2056,8 @@ case 88:
yyval.a_expr->meta_type = AMT_TYPE;
;
break;}
-case 89:
-#line 958 "asn1p_y.y"
+case 92:
+#line 988 "asn1p_y.y"
{
yyval.a_expr = asn1p_expr_new(asn1p_lineno);
checkmem(yyval.a_expr);
@@ -2033,14 +2068,14 @@ case 89:
yyval.a_expr->meta_type = AMT_TYPE;
;
break;}
-case 90:
-#line 970 "asn1p_y.y"
+case 93:
+#line 1000 "asn1p_y.y"
{
yyval.a_expr = yyvsp[0].a_expr;
;
break;}
-case 91:
-#line 973 "asn1p_y.y"
+case 94:
+#line 1003 "asn1p_y.y"
{
yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr);
@@ -2048,16 +2083,16 @@ case 91:
yyval.a_expr->meta_type = AMT_TYPE;
;
break;}
-case 92:
-#line 979 "asn1p_y.y"
+case 95:
+#line 1009 "asn1p_y.y"
{
yyval.a_expr = yyvsp[0].a_expr;
checkmem(yyval.a_expr);
assert(yyval.a_expr->meta_type);
;
break;}
-case 93:
-#line 987 "asn1p_y.y"
+case 96:
+#line 1017 "asn1p_y.y"
{
int ret;
yyval.a_expr = yyvsp[-1].a_expr;
@@ -2073,8 +2108,8 @@ case 93:
yyval.a_expr->meta_type = AMT_TYPE;
;
break;}
-case 94:
-#line 1011 "asn1p_y.y"
+case 97:
+#line 1041 "asn1p_y.y"
{
yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr);
@@ -2083,8 +2118,8 @@ case 94:
yyval.a_expr->meta_type = AMT_TYPEREF;
;
break;}
-case 95:
-#line 1018 "asn1p_y.y"
+case 98:
+#line 1048 "asn1p_y.y"
{
yyval.a_expr = asn1p_expr_new(yylineno);
checkmem(yyval.a_expr);
@@ -2093,8 +2128,8 @@ case 95:
yyval.a_expr->meta_type = AMT_TYPE;
;
break;}
-case 96:
-#line 1033 "asn1p_y.y"
+case 99:
+#line 1063 "asn1p_y.y"
{
int ret;
yyval.a_ref = asn1p_ref_new(yylineno);
@@ -2104,8 +2139,8 @@ case 96:
free(yyvsp[0].tv_str);
;
break;}
-case 97:
-#line 1041 "asn1p_y.y"
+case 100:
+#line 1071 "asn1p_y.y"
{
int ret;
yyval.a_ref = asn1p_ref_new(yylineno);
@@ -2117,8 +2152,8 @@ case 97:
free(yyvsp[-2].tv_str);
;
break;}
-case 98:
-#line 1051 "asn1p_y.y"
+case 101:
+#line 1081 "asn1p_y.y"
{
int ret;
yyval.a_ref = asn1p_ref_new(yylineno);
@@ -2130,8 +2165,8 @@ case 98:
free(yyvsp[-2].tv_str);
;
break;}
-case 99:
-#line 1061 "asn1p_y.y"
+case 102:
+#line 1091 "asn1p_y.y"
{
int ret;
yyval.a_ref = asn1p_ref_new(yylineno);
@@ -2141,8 +2176,8 @@ case 99:
checkmem(ret == 0);
;
break;}
-case 100:
-#line 1069 "asn1p_y.y"
+case 103:
+#line 1099 "asn1p_y.y"
{
int ret;
yyval.a_ref = yyvsp[0].a_ref;
@@ -2163,8 +2198,8 @@ case 100:
}
;
break;}
-case 101:
-#line 1091 "asn1p_y.y"
+case 104:
+#line 1121 "asn1p_y.y"
{
int ret;
yyval.a_ref = asn1p_ref_new(yylineno);
@@ -2174,8 +2209,8 @@ case 101:
checkmem(ret == 0);
;
break;}
-case 102:
-#line 1099 "asn1p_y.y"
+case 105:
+#line 1129 "asn1p_y.y"
{
int ret;
yyval.a_ref = yyvsp[-2].a_ref;
@@ -2184,22 +2219,22 @@ case 102:
checkmem(ret == 0);
;
break;}
-case 105:
-#line 1113 "asn1p_y.y"
+case 108:
+#line 1143 "asn1p_y.y"
{
yyval.a_refcomp.lex_type = RLT_AmpUppercase;
yyval.a_refcomp.name = yyvsp[0].tv_str;
;
break;}
-case 106:
-#line 1118 "asn1p_y.y"
+case 109:
+#line 1148 "asn1p_y.y"
{
yyval.a_refcomp.lex_type = RLT_Amplowercase;
yyval.a_refcomp.name = yyvsp[0].tv_str;
;
break;}
-case 107:
-#line 1131 "asn1p_y.y"
+case 110:
+#line 1161 "asn1p_y.y"
{
yyval.a_expr = yyvsp[-2].a_expr;
assert(yyval.a_expr->Identifier == NULL);
@@ -2208,53 +2243,53 @@ case 107:
yyval.a_expr->value = yyvsp[0].a_value;
;
break;}
-case 108:
-#line 1141 "asn1p_y.y"
+case 111:
+#line 1171 "asn1p_y.y"
{ asn1p_lexer_hack_push_opaque_state(); ;
break;}
-case 109:
-#line 1142 "asn1p_y.y"
+case 112:
+#line 1172 "asn1p_y.y"
{
yyval.a_value = asn1p_value_frombuf(yyvsp[0].tv_opaque.buf, yyvsp[0].tv_opaque.len, 0);
checkmem(yyval.a_value);
yyval.a_value->type = ATV_UNPARSED;
;
break;}
-case 110:
-#line 1147 "asn1p_y.y"
+case 113:
+#line 1177 "asn1p_y.y"
{
yyval.a_value = _convert_bitstring2binary(yyvsp[0].tv_str, 'B');
checkmem(yyval.a_value);
;
break;}
-case 111:
-#line 1151 "asn1p_y.y"
+case 114:
+#line 1181 "asn1p_y.y"
{
yyval.a_value = _convert_bitstring2binary(yyvsp[0].tv_str, 'H');
checkmem(yyval.a_value);
;
break;}
-case 112:
-#line 1155 "asn1p_y.y"
+case 115:
+#line 1185 "asn1p_y.y"
{
yyval.a_value = asn1p_value_frombuf(yyvsp[0].tv_opaque.buf, yyvsp[0].tv_opaque.len, 0);
checkmem(yyval.a_value);
;
break;}
-case 113:
-#line 1159 "asn1p_y.y"
+case 116:
+#line 1189 "asn1p_y.y"
{
yyval.a_value = yyvsp[0].a_value;
;
break;}
-case 114:
-#line 1162 "asn1p_y.y"
+case 117:
+#line 1192 "asn1p_y.y"
{
yyval.a_value = yyvsp[0].a_value;
;
break;}
-case 115:
-#line 1168 "asn1p_y.y"
+case 118:
+#line 1198 "asn1p_y.y"
{
asn1p_ref_t *ref;
int ret;
@@ -2267,8 +2302,8 @@ case 115:
free(yyvsp[0].tv_str);
;
break;}
-case 116:
-#line 1179 "asn1p_y.y"
+case 119:
+#line 1209 "asn1p_y.y"
{
asn1p_ref_t *ref;
int ret;
@@ -2284,8 +2319,8 @@ case 116:
free(yyvsp[0].tv_str);
;
break;}
-case 117:
-#line 1196 "asn1p_y.y"
+case 120:
+#line 1226 "asn1p_y.y"
{
yyval.tv_opaque.len = yyvsp[0].tv_opaque.len + 2;
yyval.tv_opaque.buf = malloc(yyval.tv_opaque.len + 1);
@@ -2297,8 +2332,8 @@ case 117:
free(yyvsp[0].tv_opaque.buf);
;
break;}
-case 118:
-#line 1206 "asn1p_y.y"
+case 121:
+#line 1236 "asn1p_y.y"
{
int newsize = yyvsp[-1].tv_opaque.len + yyvsp[0].tv_opaque.len;
char *p = malloc(newsize + 1);
@@ -2312,68 +2347,68 @@ case 118:
yyval.tv_opaque.len = newsize;
;
break;}
-case 119:
-#line 1221 "asn1p_y.y"
+case 122:
+#line 1251 "asn1p_y.y"
{ yyval.a_type = ASN_BASIC_BOOLEAN; ;
break;}
-case 120:
-#line 1222 "asn1p_y.y"
+case 123:
+#line 1252 "asn1p_y.y"
{ yyval.a_type = ASN_BASIC_NULL; ;
break;}
-case 121:
-#line 1223 "asn1p_y.y"
+case 124:
+#line 1253 "asn1p_y.y"
{ yyval.a_type = ASN_BASIC_REAL; ;
break;}
-case 122:
-#line 1224 "asn1p_y.y"
+case 125:
+#line 1254 "asn1p_y.y"
{ yyval.a_type = yyvsp[0].a_type; ;
break;}
-case 123:
-#line 1225 "asn1p_y.y"
+case 126:
+#line 1255 "asn1p_y.y"
{ yyval.a_type = ASN_BASIC_OCTET_STRING; ;
break;}
-case 124:
-#line 1226 "asn1p_y.y"
+case 127:
+#line 1256 "asn1p_y.y"
{ yyval.a_type = ASN_BASIC_OBJECT_IDENTIFIER; ;
break;}
-case 125:
-#line 1227 "asn1p_y.y"
+case 128:
+#line 1257 "asn1p_y.y"
{ yyval.a_type = ASN_BASIC_RELATIVE_OID; ;
break;}
-case 126:
-#line 1228 "asn1p_y.y"
+case 129:
+#line 1258 "asn1p_y.y"
{ yyval.a_type = ASN_BASIC_EXTERNAL; ;
break;}
-case 127:
-#line 1229 "asn1p_y.y"
+case 130:
+#line 1259 "asn1p_y.y"
{ yyval.a_type = ASN_BASIC_EMBEDDED_PDV; ;
break;}
-case 128:
-#line 1230 "asn1p_y.y"
+case 131:
+#line 1260 "asn1p_y.y"
{ yyval.a_type = ASN_BASIC_CHARACTER_STRING; ;
break;}
-case 129:
-#line 1231 "asn1p_y.y"
+case 132:
+#line 1261 "asn1p_y.y"
{ yyval.a_type = ASN_BASIC_UTCTime; ;
break;}
-case 130:
-#line 1232 "asn1p_y.y"
+case 133:
+#line 1262 "asn1p_y.y"
{ yyval.a_type = ASN_BASIC_GeneralizedTime; ;
break;}
-case 131:
-#line 1239 "asn1p_y.y"
+case 134:
+#line 1269 "asn1p_y.y"
{ yyval.a_type = ASN_BASIC_INTEGER; ;
break;}
-case 132:
-#line 1240 "asn1p_y.y"
+case 135:
+#line 1270 "asn1p_y.y"
{ yyval.a_type = ASN_BASIC_ENUMERATED; ;
break;}
-case 133:
-#line 1241 "asn1p_y.y"
+case 136:
+#line 1271 "asn1p_y.y"
{ yyval.a_type = ASN_BASIC_BIT_STRING; ;
break;}
-case 134:
-#line 1245 "asn1p_y.y"
+case 137:
+#line 1275 "asn1p_y.y"
{
yyval.a_expr = asn1p_expr_new(asn1p_lineno);
checkmem(yyval.a_expr);
@@ -2381,8 +2416,8 @@ case 134:
yyval.a_expr->meta_type = AMT_TYPE;
;
break;}
-case 135:
-#line 1251 "asn1p_y.y"
+case 138:
+#line 1281 "asn1p_y.y"
{
if(yyvsp[0].a_expr) {
yyval.a_expr = yyvsp[0].a_expr;
@@ -2394,76 +2429,76 @@ case 135:
yyval.a_expr->meta_type = AMT_TYPE;
;
break;}
-case 136:
-#line 1264 "asn1p_y.y"
+case 139:
+#line 1294 "asn1p_y.y"
{ yyval.a_type = ASN_STRING_BMPString; ;
break;}
-case 137:
-#line 1265 "asn1p_y.y"
+case 140:
+#line 1295 "asn1p_y.y"
{
yyval.a_type = ASN_STRING_GeneralString;
return yyerror("GeneralString is not supported");
;
break;}
-case 138:
-#line 1269 "asn1p_y.y"
+case 141:
+#line 1299 "asn1p_y.y"
{
yyval.a_type = ASN_STRING_GraphicString;
return yyerror("GraphicString is not supported");
;
break;}
-case 139:
-#line 1273 "asn1p_y.y"
+case 142:
+#line 1303 "asn1p_y.y"
{ yyval.a_type = ASN_STRING_IA5String; ;
break;}
-case 140:
-#line 1274 "asn1p_y.y"
+case 143:
+#line 1304 "asn1p_y.y"
{ yyval.a_type = ASN_STRING_ISO646String; ;
break;}
-case 141:
-#line 1275 "asn1p_y.y"
+case 144:
+#line 1305 "asn1p_y.y"
{ yyval.a_type = ASN_STRING_NumericString; ;
break;}
-case 142:
-#line 1276 "asn1p_y.y"
+case 145:
+#line 1306 "asn1p_y.y"
{ yyval.a_type = ASN_STRING_PrintableString; ;
break;}
-case 143:
-#line 1277 "asn1p_y.y"
+case 146:
+#line 1307 "asn1p_y.y"
{
yyval.a_type = ASN_STRING_T61String;
return yyerror("T61String not implemented yet");
;
break;}
-case 144:
-#line 1281 "asn1p_y.y"
+case 147:
+#line 1311 "asn1p_y.y"
{ yyval.a_type = ASN_STRING_TeletexString; ;
break;}
-case 145:
-#line 1282 "asn1p_y.y"
+case 148:
+#line 1312 "asn1p_y.y"
{ yyval.a_type = ASN_STRING_UniversalString; ;
break;}
-case 146:
-#line 1283 "asn1p_y.y"
+case 149:
+#line 1313 "asn1p_y.y"
{ yyval.a_type = ASN_STRING_UTF8String; ;
break;}
-case 147:
-#line 1284 "asn1p_y.y"
+case 150:
+#line 1314 "asn1p_y.y"
{
yyval.a_type = ASN_STRING_VideotexString;
return yyerror("VideotexString is no longer supported");
;
break;}
-case 148:
-#line 1288 "asn1p_y.y"
+case 151:
+#line 1318 "asn1p_y.y"
{ yyval.a_type = ASN_STRING_VisibleString; ;
break;}
-case 149:
-#line 1289 "asn1p_y.y"
+case 152:
+#line 1319 "asn1p_y.y"
{ yyval.a_type = ASN_STRING_ObjectDescriptor; ;
break;}
-case 150:
-#line 1293 "asn1p_y.y"
+case 153:
+#line 1323 "asn1p_y.y"
{
yyval.a_expr = yyvsp[-1].a_expr;
assert(yyval.a_expr->expr_type == A1TC_INVALID);
@@ -2471,8 +2506,8 @@ case 150:
yyval.a_expr->meta_type = AMT_TYPE;
;
break;}
-case 151:
-#line 1299 "asn1p_y.y"
+case 154:
+#line 1329 "asn1p_y.y"
{
yyval.a_expr = yyvsp[-1].a_expr;
assert(yyval.a_expr->expr_type == A1TC_INVALID);
@@ -2480,8 +2515,8 @@ case 151:
yyval.a_expr->meta_type = AMT_TYPE;
;
break;}
-case 152:
-#line 1305 "asn1p_y.y"
+case 155:
+#line 1335 "asn1p_y.y"
{
yyval.a_expr = yyvsp[-1].a_expr;
assert(yyval.a_expr->expr_type == A1TC_INVALID);
@@ -2489,8 +2524,8 @@ case 152:
yyval.a_expr->meta_type = AMT_TYPE;
;
break;}
-case 153:
-#line 1311 "asn1p_y.y"
+case 156:
+#line 1341 "asn1p_y.y"
{
yyval.a_expr = asn1p_expr_new(asn1p_lineno);
checkmem(yyval.a_expr);
@@ -2500,8 +2535,8 @@ case 153:
TQ_ADD(&(yyval.a_expr->members), yyvsp[0].a_expr, next);
;
break;}
-case 154:
-#line 1319 "asn1p_y.y"
+case 157:
+#line 1349 "asn1p_y.y"
{
yyval.a_expr = asn1p_expr_new(asn1p_lineno);
checkmem(yyval.a_expr);
@@ -2511,8 +2546,8 @@ case 154:
TQ_ADD(&(yyval.a_expr->members), yyvsp[0].a_expr, next);
;
break;}
-case 155:
-#line 1327 "asn1p_y.y"
+case 158:
+#line 1357 "asn1p_y.y"
{
yyval.a_expr = asn1p_expr_new(asn1p_lineno);
checkmem(yyval.a_expr);
@@ -2520,8 +2555,8 @@ case 155:
yyval.a_expr->meta_type = AMT_TYPE;
;
break;}
-case 156:
-#line 1333 "asn1p_y.y"
+case 159:
+#line 1363 "asn1p_y.y"
{
int ret;
yyval.a_expr = asn1p_expr_new(asn1p_lineno);
@@ -2534,20 +2569,22 @@ case 156:
yyval.a_expr->meta_type = AMT_TYPE;
;
break;}
-case 157:
-#line 1350 "asn1p_y.y"
+case 165:
+#line 1384 "asn1p_y.y"
{ yyval.a_constr = 0; ;
break;}
-case 158:
-#line 1351 "asn1p_y.y"
-{ yyval.a_constr = yyvsp[0].a_constr; ;
+case 166:
+#line 1385 "asn1p_y.y"
+{
+ CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_SET, yyvsp[0].a_constr, 0);
+ ;
break;}
-case 164:
-#line 1359 "asn1p_y.y"
+case 167:
+#line 1388 "asn1p_y.y"
{
/*
* This is a special case, for compatibility purposes.
- * It goes without parenthesis.
+ * It goes without parentheses.
*/
int ret;
yyval.a_constr = asn1p_constraint_new(yylineno);
@@ -2557,182 +2594,191 @@ case 164:
checkmem(ret == 0);
;
break;}
-case 165:
-#line 1371 "asn1p_y.y"
-{
- CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_SET, yyvsp[0].a_constr, 0);
- ;
- break;}
-case 166:
-#line 1374 "asn1p_y.y"
+case 168:
+#line 1403 "asn1p_y.y"
{
- CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_SET, yyvsp[-1].a_constr, yyvsp[0].a_constr);
+ yyval.a_constr = yyvsp[-1].a_constr;
;
break;}
-case 167:
-#line 1380 "asn1p_y.y"
+case 169:
+#line 1406 "asn1p_y.y"
{
- yyval.a_constr = yyvsp[-1].a_constr;
+ CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_SET, yyvsp[-3].a_constr, yyvsp[-1].a_constr);
;
break;}
-case 168:
-#line 1386 "asn1p_y.y"
+case 170:
+#line 1412 "asn1p_y.y"
{
yyval.a_constr = yyvsp[0].a_constr;
;
break;}
-case 169:
-#line 1389 "asn1p_y.y"
+case 171:
+#line 1415 "asn1p_y.y"
{
asn1p_constraint_t *ct;
ct = asn1p_constraint_new(yylineno);
- checkmem(ct);
ct->type = ACT_EL_EXT;
CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CSV, yyvsp[-2].a_constr, ct);
;
break;}
-case 170:
-#line 1396 "asn1p_y.y"
+case 172:
+#line 1421 "asn1p_y.y"
{
asn1p_constraint_t *ct;
ct = asn1p_constraint_new(yylineno);
- checkmem(ct);
ct->type = ACT_EL_EXT;
CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CSV, yyvsp[-4].a_constr, ct);
ct = yyval.a_constr;
CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CSV, ct, yyvsp[0].a_constr);
;
break;}
-case 171:
-#line 1405 "asn1p_y.y"
+case 173:
+#line 1432 "asn1p_y.y"
{
- yyval.a_constr = asn1p_constraint_new(yylineno);
- checkmem(yyval.a_constr);
- yyval.a_constr->type = ACT_EL_EXT;
+ yyval.a_constr = yyvsp[0].a_constr;
;
break;}
-case 172:
-#line 1410 "asn1p_y.y"
+case 174:
+#line 1435 "asn1p_y.y"
{
- asn1p_constraint_t *ct;
- ct = asn1p_constraint_new(yylineno);
- checkmem(ct);
- ct->type = ACT_EL_EXT;
- CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CSV, ct, yyvsp[0].a_constr);
+ CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_UNI, yyvsp[-2].a_constr, yyvsp[0].a_constr);
;
break;}
-case 173:
-#line 1419 "asn1p_y.y"
-{ yyval.a_constr = yyvsp[0].a_constr; ;
- break;}
-case 174:
-#line 1422 "asn1p_y.y"
-{ yyval.a_constr = yyvsp[0].a_constr; ;
- break;}
case 175:
-#line 1423 "asn1p_y.y"
+#line 1438 "asn1p_y.y"
{
- CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_UNI, yyvsp[-2].a_constr, yyvsp[0].a_constr);
+ CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_INT, yyvsp[-2].a_constr, yyvsp[0].a_constr);
;
break;}
case 176:
-#line 1429 "asn1p_y.y"
-{ yyval.a_constr = yyvsp[0].a_constr; ;
+#line 1441 "asn1p_y.y"
+{
+ CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_EXC, yyvsp[-2].a_constr, yyvsp[0].a_constr);
+ ;
break;}
case 177:
-#line 1431 "asn1p_y.y"
+#line 1447 "asn1p_y.y"
{
- CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_INT, yyvsp[-2].a_constr, yyvsp[0].a_constr);
+ int ret;
+ yyval.a_constr = asn1p_constraint_new(yylineno);
+ checkmem(yyval.a_constr);
+ yyval.a_constr->type = yyvsp[-3].a_ctype;
+ ret = asn1p_constraint_insert(yyval.a_constr, yyvsp[-1].a_constr);
+ checkmem(ret == 0);
;
break;}
case 178:
-#line 1437 "asn1p_y.y"
-{ yyval.a_constr = yyvsp[0].a_constr; ;
+#line 1455 "asn1p_y.y"
+{
+ int ret;
+ yyval.a_constr = asn1p_constraint_new(yylineno);
+ checkmem(yyval.a_constr);
+ yyval.a_constr->type = ACT_CA_SET;
+ ret = asn1p_constraint_insert(yyval.a_constr, yyvsp[-1].a_constr);
+ checkmem(ret == 0);
+ ;
break;}
case 179:
-#line 1438 "asn1p_y.y"
+#line 1463 "asn1p_y.y"
{
- CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_EXC, yyvsp[-2].a_constr, yyvsp[0].a_constr);
+ yyval.a_constr = asn1p_constraint_new(yylineno);
+ checkmem(yyval.a_constr);
+ yyval.a_constr->type = ACT_EL_VALUE;
+ yyval.a_constr->value = yyvsp[0].a_value;
;
break;}
case 180:
-#line 1444 "asn1p_y.y"
+#line 1469 "asn1p_y.y"
{
yyval.a_constr = asn1p_constraint_new(yylineno);
checkmem(yyval.a_constr);
- yyval.a_constr->type = ACT_EL_VALUE;
- yyval.a_constr->value = yyvsp[0].a_value;
+ yyval.a_constr->type = yyvsp[-1].a_ctype;
+ yyval.a_constr->range_start = yyvsp[-2].a_value;
+ yyval.a_constr->range_stop = yyvsp[0].a_value;
;
break;}
case 181:
-#line 1450 "asn1p_y.y"
+#line 1476 "asn1p_y.y"
{
yyval.a_constr = asn1p_constraint_new(yylineno);
checkmem(yyval.a_constr);
yyval.a_constr->type = yyvsp[-1].a_ctype;
- yyval.a_constr->range_start = yyvsp[-2].a_value;
+ yyval.a_constr->range_start = asn1p_value_fromint(-123);
yyval.a_constr->range_stop = yyvsp[0].a_value;
+ yyval.a_constr->range_start->type = ATV_MIN;
;
break;}
case 182:
-#line 1457 "asn1p_y.y"
+#line 1484 "asn1p_y.y"
{
- int ret;
yyval.a_constr = asn1p_constraint_new(yylineno);
checkmem(yyval.a_constr);
- yyval.a_constr->type = yyvsp[-3].a_ctype;
- ret = asn1p_constraint_insert(yyval.a_constr, yyvsp[-1].a_constr);
- checkmem(ret == 0);
+ yyval.a_constr->type = yyvsp[-1].a_ctype;
+ yyval.a_constr->range_start = yyvsp[-2].a_value;
+ yyval.a_constr->range_stop = asn1p_value_fromint(321);
+ yyval.a_constr->range_stop->type = ATV_MAX;
;
break;}
case 183:
-#line 1465 "asn1p_y.y"
+#line 1492 "asn1p_y.y"
{
- yyval.a_constr = yyvsp[0].a_constr;
+ yyval.a_constr = asn1p_constraint_new(yylineno);
+ checkmem(yyval.a_constr);
+ yyval.a_constr->type = yyvsp[-1].a_ctype;
+ yyval.a_constr->range_start = asn1p_value_fromint(-123);
+ yyval.a_constr->range_stop = asn1p_value_fromint(321);
+ yyval.a_constr->range_start->type = ATV_MIN;
+ yyval.a_constr->range_stop->type = ATV_MAX;
;
break;}
case 184:
-#line 1468 "asn1p_y.y"
+#line 1501 "asn1p_y.y"
{
yyval.a_constr = yyvsp[0].a_constr;
;
break;}
case 185:
-#line 1474 "asn1p_y.y"
-{ yyval.a_ctype = ACT_EL_RANGE; ;
+#line 1504 "asn1p_y.y"
+{
+ yyval.a_constr = yyvsp[0].a_constr;
+ ;
break;}
case 186:
-#line 1475 "asn1p_y.y"
-{ yyval.a_ctype = ACT_EL_RLRANGE; ;
+#line 1510 "asn1p_y.y"
+{ yyval.a_ctype = ACT_EL_RANGE; ;
break;}
case 187:
-#line 1476 "asn1p_y.y"
-{ yyval.a_ctype = ACT_EL_LLRANGE; ;
+#line 1511 "asn1p_y.y"
+{ yyval.a_ctype = ACT_EL_RLRANGE; ;
break;}
case 188:
-#line 1477 "asn1p_y.y"
-{ yyval.a_ctype = ACT_EL_ULRANGE; ;
+#line 1512 "asn1p_y.y"
+{ yyval.a_ctype = ACT_EL_LLRANGE; ;
break;}
case 189:
-#line 1481 "asn1p_y.y"
+#line 1513 "asn1p_y.y"
+{ yyval.a_ctype = ACT_EL_ULRANGE; ;
+ break;}
+case 190:
+#line 1517 "asn1p_y.y"
{
yyval.a_ctype = ACT_CT_SIZE;
;
break;}
-case 190:
-#line 1484 "asn1p_y.y"
+case 191:
+#line 1520 "asn1p_y.y"
{
yyval.a_ctype = ACT_CT_FROM;
;
break;}
-case 191:
-#line 1490 "asn1p_y.y"
+case 192:
+#line 1526 "asn1p_y.y"
{
yyval.a_value = yyvsp[0].a_value;
;
break;}
-case 192:
-#line 1493 "asn1p_y.y"
+case 193:
+#line 1529 "asn1p_y.y"
{
asn1p_ref_t *ref;
int ret;
@@ -2745,73 +2791,57 @@ case 192:
free(yyvsp[0].tv_str);
;
break;}
-case 193:
-#line 1504 "asn1p_y.y"
-{
- yyval.a_value = asn1p_value_frombuf(yyvsp[0].tv_opaque.buf, yyvsp[0].tv_opaque.len, 0);
- checkmem(yyval.a_value);
- ;
- break;}
case 194:
-#line 1508 "asn1p_y.y"
+#line 1540 "asn1p_y.y"
{
- yyval.a_value = asn1p_value_fromint(123);
+ yyval.a_value = asn1p_value_frombuf(yyvsp[0].tv_opaque.buf, yyvsp[0].tv_opaque.len, 0);
checkmem(yyval.a_value);
- yyval.a_value->type = ATV_MIN;
;
break;}
case 195:
-#line 1513 "asn1p_y.y"
-{
- yyval.a_value = asn1p_value_fromint(321);
- checkmem(yyval.a_value);
- yyval.a_value->type = ATV_MAX;
- ;
- break;}
-case 196:
-#line 1518 "asn1p_y.y"
+#line 1545 "asn1p_y.y"
{
yyval.a_value = asn1p_value_fromint(0);
checkmem(yyval.a_value);
yyval.a_value->type = ATV_FALSE;
;
break;}
-case 197:
-#line 1523 "asn1p_y.y"
+case 196:
+#line 1550 "asn1p_y.y"
{
yyval.a_value = asn1p_value_fromint(1);
checkmem(yyval.a_value);
yyval.a_value->type = ATV_TRUE;
;
break;}
-case 198:
-#line 1531 "asn1p_y.y"
+case 197:
+#line 1558 "asn1p_y.y"
{
CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_WCOMPS, yyvsp[-1].a_constr, 0);
;
break;}
-case 199:
-#line 1537 "asn1p_y.y"
+case 198:
+#line 1564 "asn1p_y.y"
{
yyval.a_constr = yyvsp[0].a_constr;
;
break;}
-case 200:
-#line 1540 "asn1p_y.y"
+case 199:
+#line 1567 "asn1p_y.y"
{
CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_WCOMPS, yyvsp[-2].a_constr, yyvsp[0].a_constr);
;
break;}
-case 201:
-#line 1546 "asn1p_y.y"
+case 200:
+#line 1573 "asn1p_y.y"
{
yyval.a_constr = asn1p_constraint_new(yylineno);
checkmem(yyval.a_constr);
yyval.a_constr->type = ACT_EL_EXT;
;
break;}
-case 202:
-#line 1551 "asn1p_y.y"
+case 201:
+#line 1578 "asn1p_y.y"
{
yyval.a_constr = asn1p_constraint_new(yylineno);
checkmem(yyval.a_constr);
@@ -2820,46 +2850,46 @@ case 202:
yyval.a_constr->presence = yyvsp[0].a_pres;
;
break;}
-case 203:
-#line 1564 "asn1p_y.y"
+case 202:
+#line 1591 "asn1p_y.y"
{ yyval.a_pres = ACPRES_DEFAULT; ;
break;}
-case 204:
-#line 1565 "asn1p_y.y"
+case 203:
+#line 1592 "asn1p_y.y"
{ yyval.a_pres = yyvsp[0].a_pres; ;
break;}
-case 205:
-#line 1569 "asn1p_y.y"
+case 204:
+#line 1596 "asn1p_y.y"
{
yyval.a_pres = ACPRES_PRESENT;
;
break;}
-case 206:
-#line 1572 "asn1p_y.y"
+case 205:
+#line 1599 "asn1p_y.y"
{
yyval.a_pres = ACPRES_ABSENT;
;
break;}
-case 207:
-#line 1575 "asn1p_y.y"
+case 206:
+#line 1602 "asn1p_y.y"
{
yyval.a_pres = ACPRES_OPTIONAL;
;
break;}
-case 208:
-#line 1581 "asn1p_y.y"
+case 207:
+#line 1608 "asn1p_y.y"
{
yyval.a_constr = yyvsp[0].a_constr;
;
break;}
-case 209:
-#line 1584 "asn1p_y.y"
+case 208:
+#line 1611 "asn1p_y.y"
{
yyval.a_constr = yyvsp[0].a_constr;
;
break;}
-case 210:
-#line 1593 "asn1p_y.y"
+case 209:
+#line 1620 "asn1p_y.y"
{
asn1p_ref_t *ref = asn1p_ref_new(yylineno);
asn1p_constraint_t *ct;
@@ -2873,14 +2903,14 @@ case 210:
CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CRC, ct, 0);
;
break;}
-case 211:
-#line 1608 "asn1p_y.y"
+case 210:
+#line 1635 "asn1p_y.y"
{
CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CRC, yyvsp[-3].a_constr, yyvsp[-1].a_constr);
;
break;}
-case 212:
-#line 1614 "asn1p_y.y"
+case 211:
+#line 1641 "asn1p_y.y"
{
yyval.a_constr = asn1p_constraint_new(yylineno);
checkmem(yyval.a_constr);
@@ -2888,8 +2918,8 @@ case 212:
yyval.a_constr->value = asn1p_value_fromref(yyvsp[0].a_ref, 0);
;
break;}
-case 213:
-#line 1620 "asn1p_y.y"
+case 212:
+#line 1647 "asn1p_y.y"
{
asn1p_constraint_t *ct;
ct = asn1p_constraint_new(yylineno);
@@ -2899,8 +2929,8 @@ case 213:
CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CSV, yyvsp[-2].a_constr, ct);
;
break;}
-case 214:
-#line 1634 "asn1p_y.y"
+case 213:
+#line 1661 "asn1p_y.y"
{
char *p = malloc(strlen(yyvsp[0].tv_str) + 2);
int ret;
@@ -2913,8 +2943,8 @@ case 214:
free(yyvsp[0].tv_str);
;
break;}
-case 215:
-#line 1645 "asn1p_y.y"
+case 214:
+#line 1672 "asn1p_y.y"
{
char *p = malloc(strlen(yyvsp[0].tv_str) + 3);
int ret;
@@ -2928,14 +2958,14 @@ case 215:
free(yyvsp[0].tv_str);
;
break;}
-case 216:
-#line 1661 "asn1p_y.y"
+case 215:
+#line 1688 "asn1p_y.y"
{
yyval.tv_str = yyvsp[0].tv_str;
;
break;}
-case 217:
-#line 1664 "asn1p_y.y"
+case 216:
+#line 1691 "asn1p_y.y"
{
int l1 = strlen(yyvsp[-2].tv_str);
int l3 = strlen(yyvsp[0].tv_str);
@@ -2946,76 +2976,76 @@ case 217:
yyval.tv_str[l1 + 1 + l3] = '\0';
;
break;}
-case 218:
-#line 1682 "asn1p_y.y"
+case 217:
+#line 1709 "asn1p_y.y"
{ yyval.a_marker = EM_NOMARK; ;
break;}
-case 219:
-#line 1683 "asn1p_y.y"
+case 218:
+#line 1710 "asn1p_y.y"
{ yyval.a_marker = yyvsp[0].a_marker; ;
break;}
-case 220:
-#line 1687 "asn1p_y.y"
+case 219:
+#line 1714 "asn1p_y.y"
{
yyval.a_marker = EM_OPTIONAL;
;
break;}
-case 221:
-#line 1690 "asn1p_y.y"
+case 220:
+#line 1717 "asn1p_y.y"
{
yyval.a_marker = EM_DEFAULT;
/* FIXME: store DefaultValue somewhere */
;
break;}
-case 222:
-#line 1697 "asn1p_y.y"
+case 221:
+#line 1724 "asn1p_y.y"
{
;
break;}
-case 223:
-#line 1699 "asn1p_y.y"
+case 222:
+#line 1726 "asn1p_y.y"
{
;
break;}
-case 224:
-#line 1701 "asn1p_y.y"
+case 223:
+#line 1728 "asn1p_y.y"
{ asn1p_lexer_hack_push_opaque_state(); ;
break;}
-case 225:
-#line 1701 "asn1p_y.y"
+case 224:
+#line 1728 "asn1p_y.y"
{
;
break;}
-case 226:
-#line 1722 "asn1p_y.y"
+case 225:
+#line 1749 "asn1p_y.y"
{
yyval.a_expr = asn1p_expr_new(asn1p_lineno);
checkmem(yyval.a_expr);
;
break;}
-case 227:
-#line 1726 "asn1p_y.y"
+case 226:
+#line 1753 "asn1p_y.y"
{
yyval.a_expr = yyvsp[-1].a_expr;
;
break;}
-case 228:
-#line 1732 "asn1p_y.y"
+case 227:
+#line 1759 "asn1p_y.y"
{
yyval.a_expr = asn1p_expr_new(asn1p_lineno);
checkmem(yyval.a_expr);
TQ_ADD(&(yyval.a_expr->members), yyvsp[0].a_expr, next);
;
break;}
-case 229:
-#line 1737 "asn1p_y.y"
+case 228:
+#line 1764 "asn1p_y.y"
{
yyval.a_expr = yyvsp[-2].a_expr;
TQ_ADD(&(yyval.a_expr->members), yyvsp[0].a_expr, next);
;
break;}
-case 230:
-#line 1744 "asn1p_y.y"
+case 229:
+#line 1771 "asn1p_y.y"
{
yyval.a_expr = asn1p_expr_new(asn1p_lineno);
checkmem(yyval.a_expr);
@@ -3024,8 +3054,8 @@ case 230:
yyval.a_expr->Identifier = yyvsp[0].tv_str;
;
break;}
-case 231:
-#line 1751 "asn1p_y.y"
+case 230:
+#line 1778 "asn1p_y.y"
{
yyval.a_expr = asn1p_expr_new(asn1p_lineno);
checkmem(yyval.a_expr);
@@ -3035,8 +3065,8 @@ case 231:
yyval.a_expr->value = yyvsp[-1].a_value;
;
break;}
-case 232:
-#line 1759 "asn1p_y.y"
+case 231:
+#line 1786 "asn1p_y.y"
{
yyval.a_expr = asn1p_expr_new(asn1p_lineno);
checkmem(yyval.a_expr);
@@ -3046,8 +3076,8 @@ case 232:
yyval.a_expr->value = yyvsp[-1].a_value;
;
break;}
-case 233:
-#line 1767 "asn1p_y.y"
+case 232:
+#line 1794 "asn1p_y.y"
{
yyval.a_expr = asn1p_expr_new(asn1p_lineno);
checkmem(yyval.a_expr);
@@ -3056,8 +3086,8 @@ case 233:
yyval.a_expr->value = yyvsp[0].a_value;
;
break;}
-case 234:
-#line 1774 "asn1p_y.y"
+case 233:
+#line 1801 "asn1p_y.y"
{
yyval.a_expr = asn1p_expr_new(asn1p_lineno);
checkmem(yyval.a_expr);
@@ -3067,86 +3097,86 @@ case 234:
yyval.a_expr->meta_type = AMT_VALUE;
;
break;}
-case 235:
-#line 1785 "asn1p_y.y"
+case 234:
+#line 1812 "asn1p_y.y"
{
yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int);
checkmem(yyval.a_value);
;
break;}
-case 236:
-#line 1789 "asn1p_y.y"
+case 235:
+#line 1816 "asn1p_y.y"
{
yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int);
checkmem(yyval.a_value);
;
break;}
-case 237:
-#line 1820 "asn1p_y.y"
+case 236:
+#line 1847 "asn1p_y.y"
{ memset(&yyval.a_tag, 0, sizeof(yyval.a_tag)); ;
break;}
-case 238:
-#line 1821 "asn1p_y.y"
+case 237:
+#line 1848 "asn1p_y.y"
{ yyval.a_tag = yyvsp[0].a_tag; ;
break;}
-case 239:
-#line 1825 "asn1p_y.y"
+case 238:
+#line 1852 "asn1p_y.y"
{
yyval.a_tag = yyvsp[0].a_tag;
yyval.a_tag.tag_mode = TM_DEFAULT;
;
break;}
-case 240:
-#line 1829 "asn1p_y.y"
+case 239:
+#line 1856 "asn1p_y.y"
{
yyval.a_tag = yyvsp[-1].a_tag;
yyval.a_tag.tag_mode = TM_IMPLICIT;
;
break;}
-case 241:
-#line 1833 "asn1p_y.y"
+case 240:
+#line 1860 "asn1p_y.y"
{
yyval.a_tag = yyvsp[-1].a_tag;
yyval.a_tag.tag_mode = TM_EXPLICIT;
;
break;}
-case 242:
-#line 1840 "asn1p_y.y"
+case 241:
+#line 1867 "asn1p_y.y"
{
checkmem(yyvsp[0].tv_str);
yyval.tv_str = yyvsp[0].tv_str;
;
break;}
-case 243:
-#line 1844 "asn1p_y.y"
+case 242:
+#line 1871 "asn1p_y.y"
{
checkmem(yyvsp[0].tv_str);
yyval.tv_str = yyvsp[0].tv_str;
;
break;}
-case 244:
-#line 1851 "asn1p_y.y"
+case 243:
+#line 1879 "asn1p_y.y"
{
checkmem(yyvsp[0].tv_str);
yyval.tv_str = yyvsp[0].tv_str;
;
break;}
-case 245:
-#line 1858 "asn1p_y.y"
+case 244:
+#line 1886 "asn1p_y.y"
{
checkmem(yyvsp[0].tv_str);
yyval.tv_str = yyvsp[0].tv_str;
;
break;}
-case 246:
-#line 1865 "asn1p_y.y"
+case 245:
+#line 1893 "asn1p_y.y"
{
memset(&yyval.tv_nametag, 0, sizeof(yyval.tv_nametag));
yyval.tv_nametag.name = yyvsp[0].tv_str;
;
break;}
-case 247:
-#line 1869 "asn1p_y.y"
+case 246:
+#line 1897 "asn1p_y.y"
{
yyval.tv_nametag.name = yyvsp[-1].tv_str;
yyval.tv_nametag.tag = yyvsp[0].a_tag;
@@ -3374,7 +3404,7 @@ yyerrhandle:
}
return 1;
}
-#line 1876 "asn1p_y.y"
+#line 1904 "asn1p_y.y"
diff --git a/libasn1parser/asn1p_y.h b/libasn1parser/asn1p_y.h
index 61679e3d..375b845f 100644
--- a/libasn1parser/asn1p_y.h
+++ b/libasn1parser/asn1p_y.h
@@ -39,7 +39,7 @@ typedef union {
#define TOK_number 263
#define TOK_number_negative 264
#define TOK_typereference 265
-#define TOK_objectclassreference 266
+#define TOK_capitalreference 266
#define TOK_typefieldreference 267
#define TOK_valuefieldreference 268
#define TOK_ABSENT 269
@@ -65,68 +65,70 @@ typedef union {
#define TOK_DEFINED 289
#define TOK_EMBEDDED 290
#define TOK_ENCODED 291
-#define TOK_END 292
-#define TOK_ENUMERATED 293
-#define TOK_EXPLICIT 294
-#define TOK_EXPORTS 295
-#define TOK_EXTENSIBILITY 296
-#define TOK_EXTERNAL 297
-#define TOK_FALSE 298
-#define TOK_FROM 299
-#define TOK_GeneralizedTime 300
-#define TOK_GeneralString 301
-#define TOK_GraphicString 302
-#define TOK_IA5String 303
-#define TOK_IDENTIFIER 304
-#define TOK_IMPLICIT 305
-#define TOK_IMPLIED 306
-#define TOK_IMPORTS 307
-#define TOK_INCLUDES 308
-#define TOK_INSTANCE 309
-#define TOK_INTEGER 310
-#define TOK_ISO646String 311
-#define TOK_MAX 312
-#define TOK_MIN 313
-#define TOK_MINUS_INFINITY 314
-#define TOK_NULL 315
-#define TOK_NumericString 316
-#define TOK_OBJECT 317
-#define TOK_ObjectDescriptor 318
-#define TOK_OCTET 319
-#define TOK_OF 320
-#define TOK_OPTIONAL 321
-#define TOK_PATTERN 322
-#define TOK_PDV 323
-#define TOK_PLUS_INFINITY 324
-#define TOK_PRESENT 325
-#define TOK_PrintableString 326
-#define TOK_PRIVATE 327
-#define TOK_REAL 328
-#define TOK_RELATIVE_OID 329
-#define TOK_SEQUENCE 330
-#define TOK_SET 331
-#define TOK_SIZE 332
-#define TOK_STRING 333
-#define TOK_SYNTAX 334
-#define TOK_T61String 335
-#define TOK_TAGS 336
-#define TOK_TeletexString 337
-#define TOK_TRUE 338
-#define TOK_TYPE_IDENTIFIER 339
-#define TOK_UNIQUE 340
-#define TOK_UNIVERSAL 341
-#define TOK_UniversalString 342
-#define TOK_UTCTime 343
-#define TOK_UTF8String 344
-#define TOK_VideotexString 345
-#define TOK_VisibleString 346
-#define TOK_WITH 347
-#define TOK_UNION 348
-#define TOK_INTERSECTION 349
+#define TOK_ENCODING_CONTROL 292
+#define TOK_END 293
+#define TOK_ENUMERATED 294
+#define TOK_EXPLICIT 295
+#define TOK_EXPORTS 296
+#define TOK_EXTENSIBILITY 297
+#define TOK_EXTERNAL 298
+#define TOK_FALSE 299
+#define TOK_FROM 300
+#define TOK_GeneralizedTime 301
+#define TOK_GeneralString 302
+#define TOK_GraphicString 303
+#define TOK_IA5String 304
+#define TOK_IDENTIFIER 305
+#define TOK_IMPLICIT 306
+#define TOK_IMPLIED 307
+#define TOK_IMPORTS 308
+#define TOK_INCLUDES 309
+#define TOK_INSTANCE 310
+#define TOK_INSTRUCTIONS 311
+#define TOK_INTEGER 312
+#define TOK_ISO646String 313
+#define TOK_MAX 314
+#define TOK_MIN 315
+#define TOK_MINUS_INFINITY 316
+#define TOK_NULL 317
+#define TOK_NumericString 318
+#define TOK_OBJECT 319
+#define TOK_ObjectDescriptor 320
+#define TOK_OCTET 321
+#define TOK_OF 322
+#define TOK_OPTIONAL 323
+#define TOK_PATTERN 324
+#define TOK_PDV 325
+#define TOK_PLUS_INFINITY 326
+#define TOK_PRESENT 327
+#define TOK_PrintableString 328
+#define TOK_PRIVATE 329
+#define TOK_REAL 330
+#define TOK_RELATIVE_OID 331
+#define TOK_SEQUENCE 332
+#define TOK_SET 333
+#define TOK_SIZE 334
+#define TOK_STRING 335
+#define TOK_SYNTAX 336
+#define TOK_T61String 337
+#define TOK_TAGS 338
+#define TOK_TeletexString 339
+#define TOK_TRUE 340
+#define TOK_TYPE_IDENTIFIER 341
+#define TOK_UNIQUE 342
+#define TOK_UNIVERSAL 343
+#define TOK_UniversalString 344
+#define TOK_UTCTime 345
+#define TOK_UTF8String 346
+#define TOK_VideotexString 347
+#define TOK_VisibleString 348
+#define TOK_WITH 349
#define TOK_EXCEPT 350
-#define TOK_TwoDots 351
-#define TOK_ThreeDots 352
-#define TOK_tag 353
+#define TOK_INTERSECTION 351
+#define TOK_UNION 352
+#define TOK_TwoDots 353
+#define TOK_ThreeDots 354
+#define TOK_tag 355
extern YYSTYPE asn1p_lval;
diff --git a/libasn1parser/asn1p_y.y b/libasn1parser/asn1p_y.y
index 7b2c1366..452086f5 100644
--- a/libasn1parser/asn1p_y.y
+++ b/libasn1parser/asn1p_y.y
@@ -15,6 +15,7 @@ int yylex(void);
int yyerror(const char *msg);
void asn1p_lexer_hack_push_opaque_state(void);
void asn1p_lexer_hack_enable_with_syntax(void);
+void asn1p_lexer_hack_push_encoding_control(void);
#define yylineno asn1p_lineno
extern int asn1p_lineno;
@@ -99,7 +100,7 @@ static asn1p_value_t *
%token <a_int> TOK_number
%token <a_int> TOK_number_negative
%token <tv_str> TOK_typereference
-%token <tv_str> TOK_objectclassreference /* "CLASS1" */
+%token <tv_str> TOK_capitalreference /* "CLASS1" */
%token <tv_str> TOK_typefieldreference /* "&Pork" */
%token <tv_str> TOK_valuefieldreference /* "&id" */
@@ -129,6 +130,7 @@ static asn1p_value_t *
%token TOK_DEFINED
%token TOK_EMBEDDED
%token TOK_ENCODED
+%token TOK_ENCODING_CONTROL
%token TOK_END
%token TOK_ENUMERATED
%token TOK_EXPLICIT
@@ -147,6 +149,7 @@ static asn1p_value_t *
%token TOK_IMPORTS
%token TOK_INCLUDES
%token TOK_INSTANCE
+%token TOK_INSTRUCTIONS
%token TOK_INTEGER
%token TOK_ISO646String
%token TOK_MAX
@@ -186,9 +189,9 @@ static asn1p_value_t *
%token TOK_VisibleString
%token TOK_WITH
-%left '|' TOK_UNION
-%left '^' TOK_INTERSECTION
%left TOK_EXCEPT
+%left '^' TOK_INTERSECTION
+%left '|' TOK_UNION
/* Misc tags */
%token TOK_TwoDots /* .. */
@@ -262,14 +265,10 @@ static asn1p_value_t *
%type <a_tag> Tag /* [UNIVERSAL 0] IMPLICIT */
%type <a_tag> optTag /* [UNIVERSAL 0] IMPLICIT */
%type <a_constr> optConstraints
-%type <a_constr> Constraints
-%type <a_constr> SingleConstraint /* (SIZE(2)) */
-%type <a_constr> ConstraintElementSet /* 1..2,...,3 */
+%type <a_constr> SetOfConstraints
+%type <a_constr> ElementSetSpecs /* 1..2,...,3 */
+%type <a_constr> ElementSetSpec /* 1..2,...,3 */
%type <a_constr> ConstraintSubtypeElement /* 1..2 */
-%type <a_constr> ConstraintElementIntersection
-%type <a_constr> ConstraintElementException
-%type <a_constr> ConstraintElementUnion
-%type <a_constr> ConstraintElement
%type <a_constr> SimpleTableConstraint
%type <a_constr> TableConstraint
%type <a_constr> WithComponents
@@ -429,6 +428,22 @@ ModuleSpecificationFlag:
| TOK_EXTENSIBILITY TOK_IMPLIED {
$$ = MSF_EXTENSIBILITY_IMPLIED;
}
+ /* EncodingReferenceDefault */
+ | TOK_capitalreference TOK_INSTRUCTIONS {
+ /* X.680Amd1 specifies TAG and XER */
+ if(strcmp($1, "TAG") == 0) {
+ $$ = MSF_TAG_INSTRUCTIONS;
+ } else if(strcmp($1, "XER") == 0) {
+ $$ = MSF_XER_INSTRUCTIONS;
+ } else {
+ fprintf(stderr,
+ "WARNING: %s INSTRUCTIONS at line %d: "
+ "Unrecognized encoding reference\n",
+ $1, yylineno);
+ $$ = MSF_unk_INSTRUCTIONS;
+ }
+ free($1);
+ }
;
/*
@@ -437,7 +452,6 @@ ModuleSpecificationFlag:
optModuleSpecificationBody:
{ $$ = 0; }
| ModuleSpecificationBody {
- assert($1);
$$ = $1;
}
;
@@ -452,6 +466,12 @@ ModuleSpecificationBody:
| ModuleSpecificationBody ModuleSpecificationElement {
$$ = $1;
+ /* Behave well when one of them is skipped. */
+ if(!($1)) {
+ if($2) $$ = $2;
+ break;
+ }
+
#ifdef MY_IMPORT
#error MY_IMPORT DEFINED ELSEWHERE!
#endif
@@ -515,6 +535,16 @@ ModuleSpecificationElement:
assert($1->meta_type != AMT_INVALID);
TQ_ADD(&($$->members), $1, next);
}
+ | TOK_ENCODING_CONTROL TOK_capitalreference
+ { asn1p_lexer_hack_push_encoding_control(); }
+ {
+ fprintf(stderr,
+ "WARNING: ENCODING-CONTROL %s "
+ "specification at line %d ignored\n",
+ $2, yylineno);
+ free($2);
+ $$ = 0;
+ }
/*
* Erroneous attemps
@@ -662,7 +692,7 @@ DefinedTypeRef:
optValueSetBody:
{ }
- | ConstraintElementSet {
+ | ElementSetSpecs {
}
;
@@ -1346,20 +1376,19 @@ ConstructedType:
/*
* Data type constraints.
*/
-optConstraints:
- { $$ = 0; }
- | Constraints { $$ = $1; }
- ;
-
Union: '|' | TOK_UNION;
Intersection: '^' | TOK_INTERSECTION;
Except: TOK_EXCEPT;
-Constraints:
- TOK_SIZE '(' ConstraintElementSet ')' {
+optConstraints:
+ { $$ = 0; }
+ | SetOfConstraints {
+ CONSTRAINT_INSERT($$, ACT_CA_SET, $1, 0);
+ }
+ | TOK_SIZE '(' ElementSetSpecs ')' {
/*
* This is a special case, for compatibility purposes.
- * It goes without parenthesis.
+ * It goes without parentheses.
*/
int ret;
$$ = asn1p_constraint_new(yylineno);
@@ -1368,80 +1397,70 @@ Constraints:
ret = asn1p_constraint_insert($$, $3);
checkmem(ret == 0);
}
- | SingleConstraint {
- CONSTRAINT_INSERT($$, ACT_CA_SET, $1, 0);
- }
- | Constraints SingleConstraint {
- CONSTRAINT_INSERT($$, ACT_CA_SET, $1, $2);
- }
;
-SingleConstraint:
- '(' ConstraintElementSet ')' {
+SetOfConstraints:
+ '(' ElementSetSpecs ')' {
$$ = $2;
}
+ | SetOfConstraints '(' ElementSetSpecs ')' {
+ CONSTRAINT_INSERT($$, ACT_CA_SET, $1, $3);
+ }
;
-ConstraintElementSet:
- ConstraintElement {
+ElementSetSpecs:
+ ElementSetSpec {
$$ = $1;
}
- | ConstraintElement ',' TOK_ThreeDots {
+ | ElementSetSpec ',' TOK_ThreeDots {
asn1p_constraint_t *ct;
ct = asn1p_constraint_new(yylineno);
- checkmem(ct);
ct->type = ACT_EL_EXT;
CONSTRAINT_INSERT($$, ACT_CA_CSV, $1, ct);
}
- | ConstraintElement ',' TOK_ThreeDots ',' ConstraintElement {
+ | ElementSetSpec ',' TOK_ThreeDots ',' ElementSetSpec {
asn1p_constraint_t *ct;
ct = asn1p_constraint_new(yylineno);
- checkmem(ct);
ct->type = ACT_EL_EXT;
CONSTRAINT_INSERT($$, ACT_CA_CSV, $1, ct);
ct = $$;
CONSTRAINT_INSERT($$, ACT_CA_CSV, ct, $5);
}
- | TOK_ThreeDots {
- $$ = asn1p_constraint_new(yylineno);
- checkmem($$);
- $$->type = ACT_EL_EXT;
- }
- | TOK_ThreeDots ',' ConstraintElement {
- asn1p_constraint_t *ct;
- ct = asn1p_constraint_new(yylineno);
- checkmem(ct);
- ct->type = ACT_EL_EXT;
- CONSTRAINT_INSERT($$, ACT_CA_CSV, ct, $3);
- }
;
-ConstraintElement: ConstraintElementUnion { $$ = $1; } ;
-
-ConstraintElementUnion:
- ConstraintElementIntersection { $$ = $1; }
- | ConstraintElementUnion Union ConstraintElementIntersection {
+ElementSetSpec:
+ ConstraintSubtypeElement {
+ $$ = $1;
+ }
+ | ElementSetSpec Union ConstraintSubtypeElement {
CONSTRAINT_INSERT($$, ACT_CA_UNI, $1, $3);
}
- ;
-
-ConstraintElementIntersection:
- ConstraintElementException { $$ = $1; }
- | ConstraintElementIntersection Intersection
- ConstraintElementException {
+ | ElementSetSpec Intersection ConstraintSubtypeElement {
CONSTRAINT_INSERT($$, ACT_CA_INT, $1, $3);
}
- ;
-
-ConstraintElementException:
- ConstraintSubtypeElement { $$ = $1; }
- | ConstraintElementException Except ConstraintSubtypeElement {
+ | ConstraintSubtypeElement Except ConstraintSubtypeElement {
CONSTRAINT_INSERT($$, ACT_CA_EXC, $1, $3);
}
;
ConstraintSubtypeElement:
- ConstraintValue {
+ ConstraintSpec '(' ElementSetSpecs ')' {
+ int ret;
+ $$ = asn1p_constraint_new(yylineno);
+ checkmem($$);
+ $$->type = $1;
+ ret = asn1p_constraint_insert($$, $3);
+ checkmem(ret == 0);
+ }
+ | '(' ElementSetSpecs ')' {
+ int ret;
+ $$ = asn1p_constraint_new(yylineno);
+ checkmem($$);
+ $$->type = ACT_CA_SET;
+ ret = asn1p_constraint_insert($$, $2);
+ checkmem(ret == 0);
+ }
+ | ConstraintValue {
$$ = asn1p_constraint_new(yylineno);
checkmem($$);
$$->type = ACT_EL_VALUE;
@@ -1454,13 +1473,30 @@ ConstraintSubtypeElement:
$$->range_start = $1;
$$->range_stop = $3;
}
- | ConstraintSpec '(' ConstraintElementSet ')' {
- int ret;
+ | TOK_MIN ConstraintRangeSpec ConstraintValue {
$$ = asn1p_constraint_new(yylineno);
checkmem($$);
- $$->type = $1;
- ret = asn1p_constraint_insert($$, $3);
- checkmem(ret == 0);
+ $$->type = $2;
+ $$->range_start = asn1p_value_fromint(-123);
+ $$->range_stop = $3;
+ $$->range_start->type = ATV_MIN;
+ }
+ | ConstraintValue ConstraintRangeSpec TOK_MAX {
+ $$ = asn1p_constraint_new(yylineno);
+ checkmem($$);
+ $$->type = $2;
+ $$->range_start = $1;
+ $$->range_stop = asn1p_value_fromint(321);
+ $$->range_stop->type = ATV_MAX;
+ }
+ | TOK_MIN ConstraintRangeSpec TOK_MAX {
+ $$ = asn1p_constraint_new(yylineno);
+ checkmem($$);
+ $$->type = $2;
+ $$->range_start = asn1p_value_fromint(-123);
+ $$->range_stop = asn1p_value_fromint(321);
+ $$->range_start->type = ATV_MIN;
+ $$->range_stop->type = ATV_MAX;
}
| TableConstraint {
$$ = $1;
@@ -1505,16 +1541,7 @@ ConstraintValue:
$$ = asn1p_value_frombuf($1.buf, $1.len, 0);
checkmem($$);
}
- | TOK_MIN {
- $$ = asn1p_value_fromint(123);
- checkmem($$);
- $$->type = ATV_MIN;
- }
- | TOK_MAX {
- $$ = asn1p_value_fromint(321);
- checkmem($$);
- $$->type = ATV_MAX;
- }
+
| TOK_FALSE {
$$ = asn1p_value_fromint(0);
checkmem($$);
@@ -1841,14 +1868,15 @@ TypeRefName:
checkmem($1);
$$ = $1;
}
- | TOK_objectclassreference {
+ | TOK_capitalreference {
checkmem($1);
$$ = $1;
}
;
+
ObjectClassReference:
- TOK_objectclassreference {
+ TOK_capitalreference {
checkmem($1);
$$ = $1;
}