OSDN Git Service

* decl2.c (finish_objects): Don't use .?tors.* if we don't have
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 16 May 1999 20:40:00 +0000 (20:40 +0000)
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 16 May 1999 20:40:00 +0000 (20:40 +0000)
ASM_OUTPUT_CONSTRUCTOR.
* friend.c (do_friend): Add attrlist arg.  Remove support for
getting a non-decl as 'decl'.
* decl.c (grokfndecl): Remove attrlist arg.  Don't set attrs or
rtl.
(grokdeclarator): Adjust.
* cp-tree.h: Adjust.
* parse.y (direct_new_declarator): Make the first one a
nonmomentary_expr, too.
* init.c (build_new): suspend_momentary while we're calculating
the size.
(build_new_1): Don't copy size.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@26952 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/cp/ChangeLog
gcc/cp/cp-tree.h
gcc/cp/decl.c
gcc/cp/decl2.c
gcc/cp/friend.c
gcc/cp/init.c
gcc/cp/parse.c
gcc/cp/parse.y

index 2a16a39..f0429a1 100644 (file)
@@ -1,3 +1,21 @@
+1999-05-16  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * decl2.c (finish_objects): Don't use .?tors.* if we don't have
+       ASM_OUTPUT_CONSTRUCTOR.
+
+       * friend.c (do_friend): Add attrlist arg.  Remove support for
+       getting a non-decl as 'decl'.
+       * decl.c (grokfndecl): Remove attrlist arg.  Don't set attrs or
+       rtl.
+       (grokdeclarator): Adjust.
+       * cp-tree.h: Adjust.
+
+       * parse.y (direct_new_declarator): Make the first one a
+       nonmomentary_expr, too.
+       * init.c (build_new): suspend_momentary while we're calculating
+       the size.
+       (build_new_1): Don't copy size.
+
 1999-05-16  Mark Mitchell  <mark@codesourcery.com>
 
        * cp-tree.h (permanent_p): New function.
@@ -209,7 +227,7 @@ Wed Apr 28 11:42:22 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
        * cp-tree.h (lang_decl_flags): Remove returns_first_arg and
        preserves_first_arg.  Enlarge dummy accordingly.
        (DECL_TINFO_FN_P): New macro.
-       (SET_DECL_TINO_FN_P): Likeiwse.
+       (SET_DECL_TINFO_FN_P): Likeiwse.
        (DECL_RETURNS_FIRST_ARG): Remove.
        (DECL_PRESERVES_THIS): Likewise.
        (DECL_INIT_PRIORITY): New macro.
index 7c517c0..2498089 100644 (file)
@@ -3016,7 +3016,7 @@ extern int is_friend                              PROTO((tree, tree));
 extern void make_friend_class                  PROTO((tree, tree));
 extern void add_friend                          PROTO((tree, tree));
 extern void add_friends                         PROTO((tree, tree, tree));
-extern tree do_friend                          PROTO((tree, tree, tree, tree, enum overload_flags, tree, int));
+extern tree do_friend                          PROTO((tree, tree, tree, tree, tree, enum overload_flags, tree, int));
 
 /* in init.c */
 extern void init_init_processing               PROTO((void));
index 74d7343..9df5474 100644 (file)
@@ -161,7 +161,7 @@ static void warn_extern_redeclared_static PROTO((tree, tree));
 static void grok_reference_init PROTO((tree, tree, tree));
 static tree grokfndecl PROTO((tree, tree, tree, tree, int,
                              enum overload_flags, tree,
-                             tree, tree, int, int, int, int, int, int, tree));
+                             tree, int, int, int, int, int, int, tree));
 static tree grokvardecl PROTO((tree, tree, RID_BIT_TYPE *, int, int, tree));
 static tree lookup_tag PROTO((enum tree_code, tree,
                              struct binding_level *, int));
@@ -8697,14 +8697,14 @@ bad_specifiers (object, type, virtualp, quals, inlinep, friendp, raises)
 
 static tree
 grokfndecl (ctype, type, declarator, orig_declarator, virtualp, flags, quals,
-           raises, attrlist, check, friendp, publicp, inlinep, funcdef_flag,
+           raises, check, friendp, publicp, inlinep, funcdef_flag,
            template_count, in_namespace)
      tree ctype, type;
      tree declarator;
      tree orig_declarator;
      int virtualp;
      enum overload_flags flags;
-     tree quals, raises, attrlist;
+     tree quals, raises;
      int check, friendp, publicp, inlinep, funcdef_flag, template_count;
      tree in_namespace;
 {
@@ -8868,10 +8868,6 @@ grokfndecl (ctype, type, declarator, orig_declarator, virtualp, flags, quals,
        tentative.  error_mark_node is replaced later with the BLOCK.  */
     DECL_INITIAL (decl) = error_mark_node;
 
-  if (attrlist)
-    cplus_decl_attributes (decl, TREE_PURPOSE (attrlist), 
-                          TREE_VALUE (attrlist));
-
   /* Caller will do the rest of this.  */
   if (check < 0)
     return decl;
@@ -8964,8 +8960,6 @@ grokfndecl (ctype, type, declarator, orig_declarator, virtualp, flags, quals,
       if (ctype == NULL_TREE || check)
        return decl;
 
-      make_decl_rtl (decl, NULL_PTR, 1);
-
       if (virtualp)
        {
          DECL_VIRTUAL_P (decl) = 1;
@@ -11306,7 +11300,7 @@ grokdeclarator (declarator, declspecs, decl_context, initialized, attrlist)
                               TREE_CODE (declarator) != TEMPLATE_ID_EXPR
                               ? declarator : dname,
                               declarator,
-                              virtualp, flags, quals, raises, attrlist,
+                              virtualp, flags, quals, raises,
                               friendp ? -1 : 0, friendp, publicp, inlinep,
                               funcdef_flag, template_count, in_namespace);
            if (decl == NULL_TREE)
@@ -11356,7 +11350,7 @@ grokdeclarator (declarator, declspecs, decl_context, initialized, attrlist)
            /* All method decls are public, so tell grokfndecl to set
               TREE_PUBLIC, also.  */
            decl = grokfndecl (ctype, type, declarator, declarator,
-                              virtualp, flags, quals, raises, attrlist,
+                              virtualp, flags, quals, raises,
                               friendp ? -1 : 0, friendp, 1, 0, funcdef_flag,
                               template_count, in_namespace);
            if (decl == NULL_TREE)
@@ -11416,7 +11410,7 @@ grokdeclarator (declarator, declspecs, decl_context, initialized, attrlist)
                      }
 
                    t = do_friend (ctype, declarator, decl,
-                                  last_function_parms, flags, quals,
+                                  last_function_parms, attrlist, flags, quals,
                                   funcdef_flag);
                  }
                if (t && funcdef_flag)
@@ -11549,7 +11543,7 @@ grokdeclarator (declarator, declspecs, decl_context, initialized, attrlist)
                   || !RIDBIT_SETP (RID_STATIC, specbits));
 
        decl = grokfndecl (ctype, type, original_name, declarator,
-                          virtualp, flags, quals, raises, attrlist,
+                          virtualp, flags, quals, raises,
                           1, friendp,
                           publicp, inlinep, funcdef_flag, 
                           template_count, in_namespace);
index 3e68c60..6a7e14f 100644 (file)
@@ -2950,7 +2950,7 @@ finish_objects (method_type, initp)
        assemble_destructor (fnname);
     }
 
-#ifdef ASM_OUTPUT_SECTION_NAME
+#if defined (ASM_OUTPUT_SECTION_NAME) && defined (ASM_OUTPUT_CONSTRUCTOR)
   /* If we're using init priority we can't use assemble_*tor, but on ELF
      targets we can stick the references into named sections for GNU ld
      to collect.  */
index 48b566a..5085ebc 100644 (file)
@@ -330,13 +330,15 @@ make_friend_class (type, friend_type)
    pointed to by `this'.  */
 
 tree
-do_friend (ctype, declarator, decl, parmdecls, flags, quals, funcdef_flag)
-     tree ctype, declarator, decl, parmdecls;
+do_friend (ctype, declarator, decl, parmdecls, attrlist,
+          flags, quals, funcdef_flag)
+     tree ctype, declarator, decl, parmdecls, attrlist;
      enum overload_flags flags;
      tree quals;
      int funcdef_flag;
 {
   int is_friend_template = 0;
+  tree prefix_attributes, attributes;
 
   /* Every decl that gets here is a friend of something.  */
   DECL_FRIEND_P (decl) = 1;
@@ -350,8 +352,10 @@ do_friend (ctype, declarator, decl, parmdecls, flags, quals, funcdef_flag)
        declarator = DECL_NAME (get_first_fn (declarator));
     }
 
-  if (TREE_CODE (decl) == FUNCTION_DECL)
-    is_friend_template = PROCESSING_REAL_TEMPLATE_DECL_P ();
+  if (TREE_CODE (decl) != FUNCTION_DECL)
+    my_friendly_abort (990513);
+
+  is_friend_template = PROCESSING_REAL_TEMPLATE_DECL_P ();
 
   if (ctype)
     {
@@ -360,53 +364,35 @@ do_friend (ctype, declarator, decl, parmdecls, flags, quals, funcdef_flag)
        cname = DECL_NAME (cname);
 
       /* A method friend.  */
-      if (TREE_CODE (decl) == FUNCTION_DECL)
+      if (flags == NO_SPECIAL && ctype && declarator == cname)
+       DECL_CONSTRUCTOR_P (decl) = 1;
+
+      /* This will set up DECL_ARGUMENTS for us.  */
+      grokclassfn (ctype, decl, flags, quals);
+
+      if (is_friend_template)
+       decl = DECL_TI_TEMPLATE (push_template_decl (decl));
+      else if (template_class_depth (current_class_type))
+       decl = push_template_decl_real (decl, /*is_friend=*/1);
+
+      /* We can't do lookup in a type that involves template
+        parameters.  Instead, we rely on tsubst_friend_function
+        to check the validity of the declaration later.  */
+      if (uses_template_parms (ctype))
+       add_friend (current_class_type, decl);
+      /* A nested class may declare a member of an enclosing class
+        to be a friend, so we do lookup here even if CTYPE is in
+        the process of being defined.  */
+      else if (TYPE_SIZE (ctype) != 0 || TYPE_BEING_DEFINED (ctype))
        {
-         if (flags == NO_SPECIAL && ctype && declarator == cname)
-           DECL_CONSTRUCTOR_P (decl) = 1;
-
-         /* This will set up DECL_ARGUMENTS for us.  */
-         grokclassfn (ctype, decl, flags, quals);
-
-         if (is_friend_template)
-           decl = DECL_TI_TEMPLATE (push_template_decl (decl));
-         else if (template_class_depth (current_class_type))
-           decl = push_template_decl_real (decl, /*is_friend=*/1);
+         decl = check_classfn (ctype, decl);
 
-         /* We can't do lookup in a type that involves template
-            parameters.  Instead, we rely on tsubst_friend_function
-            to check the validity of the declaration later.  */
-         if (uses_template_parms (ctype))
+         if (decl)
            add_friend (current_class_type, decl);
-         /* A nested class may declare a member of an enclosing class
-            to be a friend, so we do lookup here even if CTYPE is in
-            the process of being defined.  */
-         else if (TYPE_SIZE (ctype) != 0 || TYPE_BEING_DEFINED (ctype))
-           {
-             decl = check_classfn (ctype, decl);
-
-             if (decl)
-               add_friend (current_class_type, decl);
-           }
-         else
-           cp_error ("member `%D' declared as friend before type `%T' defined",
-                     decl, ctype);
        }
       else
-       {
-         /* Possibly a bunch of method friends.  */
-
-         /* Get the class they belong to.  */
-         tree ctype = IDENTIFIER_TYPE_VALUE (cname);
-         tree fields = lookup_fnfields (TYPE_BINFO (ctype), declarator, 0);
-
-         if (fields)
-           add_friends (current_class_type, declarator, ctype);
-         else
-           cp_error ("method `%D' is not a member of class `%T'",
-                     declarator, ctype);
-         decl = void_type_node;
-       }
+       cp_error ("member `%D' declared as friend before type `%T' defined",
+                 decl, ctype);
     }
   /* A global friend.
      @@ or possibly a friend from a base class ?!?  */
@@ -459,32 +445,28 @@ do_friend (ctype, declarator, decl, parmdecls, flags, quals, funcdef_flag)
                  is_friend_template ? DECL_TI_TEMPLATE (decl) : decl);
       DECL_FRIEND_P (decl) = 1;
     }
+
+  /* Unfortunately, we have to handle attributes here.  Normally we would
+     handle them in start_decl_1, but since this is a friend decl start_decl_1
+     never gets to see it.  */
+
+  if (attrlist)
+    {
+      attributes = TREE_PURPOSE (attrlist);
+      prefix_attributes = TREE_VALUE (attrlist);
+    }
   else
     {
-      /* @@ Should be able to ingest later definitions of this function
-        before use.  */
-      tree decl = lookup_name_nonclass (declarator);
-      if (decl == NULL_TREE)
-       {
-         cp_warning ("implicitly declaring `%T' as struct", declarator);
-         decl = xref_tag (record_type_node, declarator, 1);
-         decl = TYPE_MAIN_DECL (decl);
-       }
+      attributes = NULL_TREE;
+      prefix_attributes = NULL_TREE;
+    } 
 
-      /* Allow abbreviated declarations of overloaded functions,
-        but not if those functions are really class names.  */
-      if (TREE_CODE (decl) == TREE_LIST && TREE_TYPE (TREE_PURPOSE (decl)))
-       {
-         cp_warning ("`friend %T' archaic, use `friend class %T' instead",
-                     declarator, declarator);
-         decl = TREE_TYPE (TREE_PURPOSE (decl));
-       }
+#ifdef SET_DEFAULT_DECL_ATTRIBUTES
+  SET_DEFAULT_DECL_ATTRIBUTES (decl, attributes);
+#endif
+  
+  /* Set attributes here so if duplicate decl, will have proper attributes.  */
+  cplus_decl_attributes (decl, attributes, prefix_attributes);
 
-      if (TREE_CODE (decl) == TREE_LIST)
-       add_friends (current_class_type, TREE_PURPOSE (decl), NULL_TREE);
-      else
-       make_friend_class (current_class_type, TREE_TYPE (decl));
-      decl = void_type_node;
-    }
   return decl;
 }
index 7fb2030..aab25c3 100644 (file)
@@ -1893,6 +1893,7 @@ build_new (placement, decl, init, use_global_new)
   tree type, rval;
   tree nelts = NULL_TREE, t;
   int has_array = 0;
+  int momentary;
 
   tree pending_sizes = NULL_TREE;
 
@@ -1952,6 +1953,9 @@ build_new (placement, decl, init, use_global_new)
                      == NULL_TREE)
                    pedwarn ("size in array new must have integral type");
 
+                 /* The size must live long so it can be used in a
+                    cleanup.  */
+                 momentary = suspend_momentary ();
                  this_nelts = save_expr (cp_convert (sizetype, this_nelts));
                  absdcl = TREE_OPERAND (absdcl, 0);
                  if (this_nelts == integer_zero_node)
@@ -1961,6 +1965,7 @@ build_new (placement, decl, init, use_global_new)
                    }
                  else
                    nelts = build_binary_op (MULT_EXPR, nelts, this_nelts);
+                 resume_momentary (momentary);
                }
            }
          else
@@ -2046,7 +2051,9 @@ build_new (placement, decl, init, use_global_new)
      both new int and new int[10] return an int*.  5.3.4.  */
   if (TREE_CODE (type) == ARRAY_TYPE && has_array == 0)
     {
+      momentary = suspend_momentary ();
       nelts = array_type_nelts_top (type);
+      resume_momentary (momentary);
       has_array = 1;
       type = TREE_TYPE (type);
     }
@@ -2429,9 +2436,6 @@ build_new_1 (exp)
              fn = TREE_OPERAND (fn, 0);
            }
 
-         /* Copy size to the saveable obstack.  */
-         size = mapcar (size, permanent_p);
-
          cleanup = build_op_delete_call (dcode, alloc_node, size, flags, fn);
 
          resume_momentary (yes);
index f5285b3..913b323 100644 (file)
@@ -576,7 +576,7 @@ static const short yyrhs[] = {    -1,
    327,   318,    80,     0,    54,     0,    80,   298,   328,     0,
     80,   298,     0,    70,   298,   328,     0,    70,   298,     0,
    326,   298,     0,   326,   298,   328,     0,   329,     0,    94,
-   186,   111,     0,   329,    94,   301,   111,     0,   331,     0,
+   301,   111,     0,   329,    94,   301,   111,     0,   331,     0,
    247,   331,     0,    80,   299,   330,     0,    80,   330,     0,
     80,   299,     0,    80,     0,    70,   299,   330,     0,    70,
    330,     0,    70,   299,     0,    70,     0,   326,   298,     0,
@@ -1080,7 +1080,7 @@ static const short yydefact[] = {     3,
    273,   793,   792,     0,   271,   270,   268,   269,   267,   266,
    265,   262,   263,   264,   260,   261,   255,   256,   257,   258,
    259,   253,   254,     0,     0,     0,     0,     0,   240,   228,
-   244,     0,     0,   227,   578,   578,     0,   578,   575,   676,
+   244,     0,     0,   227,   578,   578,   582,   578,   575,   676,
      0,     0,     0,     0,     0,   338,     0,   342,     0,   344,
      0,     0,   687,   686,   679,   683,   682,   831,   392,     0,
      0,   702,     0,     0,   835,   368,   835,   689,   578,   801,
@@ -1193,407 +1193,407 @@ static const short yydefgoto[] = {  1666,
   1020,   744,  1218,  1219,   533,    84,    85
 };
 
-static const short yypact[] = {   108,
-   127,-32768,-32768,  6638,-32768,    55,    57,    72,   240,    62,
-   142,-32768,-32768,   625,-32768,   150,   208,   211,-32768,-32768,
--32768,   756,   883,  1366,   130,-32768,   188,   338,-32768,  2656,
-  2656,-32768,   422,-32768,  6638,   223,-32768,-32768,   279,-32768,
-    98,  4351,-32768,-32768,   268,   823,   365,   293,   423,-32768,
--32768,-32768,-32768,   123,  3083,-32768,  6545,-32768,  2122,   781,
--32768,   465,-32768,-32768,  2046,   404,-32768,   436,-32768,-32768,
-   474,  4127,-32768,-32768,-32768,  1037,-32768,-32768,-32768,  2040,
--32768,-32768,   431,  3562,   460,-32768,-32768, 10933,-32768, 10933,
--32768, 10933,-32768,-32768,-32768,    72,   240,   188,   503,   458,
-   523,   423,-32768,   621,-32768,   431, 11019, 11019,   491,-32768,
--32768,-32768,-32768,-32768,   330,   541,   579,   772,   794,   552,
-   558,-32768,-32768,   897,-32768,   618,    72,   240,-32768,   188,
-   503,-32768,  1941,  1787,   556, 12117, 10933,-32768, 10933,  6884,
-  4421,-32768,-32768,  2343,   606,  4421,-32768,   764,  4782,  4782,
-   422,   508,   551,-32768,   555,  1198,   577,   589,-32768,-32768,
-   676,-32768,   591,-32768,  4576,-32768,-32768,   130,  3913,   613,
--32768,-32768,-32768,   268,  1640, 12172,   868,   655,-32768,-32768,
-   628,   465,   745,   137,   283,   695,-32768,-32768,   653,   187,
--32768,-32768,  5207,  5207,  6890,  1037,   903,-32768,-32768,   242,
--32768,-32768,  3275,-32768,-32768,-32768,-32768,-32768,  2122,   909,
--32768,   465,  1037,-32768,-32768,-32768,  2314,  2122,-32768,   465,
+static const short yypact[] = {   101,
+   131,-32768,-32768,  6638,-32768,    77,    38,    48,    71,    62,
+   142,-32768,-32768,   764,-32768,   149,   215,   260,-32768,-32768,
+-32768,  1023,  1475,  1196,   182,-32768,   332,    75,-32768,  2656,
+  2656,-32768,  6884,-32768,  6638,   299,-32768,-32768,   207,-32768,
+   155,  4351,-32768,-32768,   329,  1150,   434,   471,   444,-32768,
+-32768,-32768,-32768,   525,  3083,-32768,  6545,-32768,  1177,   428,
+-32768,   504,-32768,-32768,  2046,   171,-32768,   498,-32768,-32768,
+   515,  4127,-32768,-32768,-32768,  1037,-32768,-32768,-32768,  2040,
+-32768,-32768,   791,  3562,   502,-32768,-32768, 10933,-32768, 10933,
+-32768, 10933,-32768,-32768,-32768,    48,    71,   332,   529,   499,
+   554,   444,-32768,   664,-32768,   791, 11019, 11019,   522,-32768,
+-32768,-32768,-32768,-32768,   592,   574,   163,   295,   391,   589,
+   633,-32768,-32768,  1413,-32768,   618,    48,    71,-32768,   332,
+   529,-32768,  1941,  1787,   636, 12117, 10933,-32768, 10933,  6890,
+  4421,-32768,-32768,  2343,   923,  4421,-32768,  1569,  4782,  4782,
+  6884,   609,   640,-32768,   683,   422,   656,   690,-32768,-32768,
+   723,-32768,   694,-32768,  4576,-32768,-32768,   182,  3913,   710,
+-32768,-32768,-32768,   329,  1640, 12172,   728,   754,-32768,-32768,
+   747,   504,   843,    76,   397,   794,-32768,-32768,   757,   251,
+-32768,-32768,  5207,  5207,  7300,  1037,   804,-32768,-32768,   606,
+-32768,-32768,  2846,-32768,-32768,-32768,-32768,-32768,  1177,   834,
+-32768,   504,  1037,-32768,-32768,-32768,  2122,  1177,-32768,   504,
 -32768,  1640,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,   703,-32768,   423,-32768,   465,  1413,  1023,-32768,
--32768,   436,-32768,-32768,-32768,-32768,  1086,   431,-32768,   526,
-   777,-32768,   316,-32768,-32768,-32768,-32768,-32768,  5793,-32768,
--32768,   251,-32768,   704,   709,-32768,-32768,-32768,-32768,   760,
+-32768,-32768,   802,-32768,   444,-32768,   504,  1583,  1662,-32768,
+-32768,   498,-32768,-32768,-32768,-32768,   976,   791,-32768,   415,
+  1446,-32768,   254,-32768,-32768,-32768,-32768,-32768,  5793,-32768,
+-32768,   466,-32768,   790,   807,-32768,-32768,-32768,-32768,   847,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,   714,-32768,-32768,  1086,  4127,   578,-32768,-32768,
-   736,-32768,-32768, 11627, 11713, 11799, 11799,-32768,-32768,-32768,
--32768,-32768,   738,   763,   773,   804,   824,  1205,   503, 11105,
-  1446, 11799,-32768,-32768, 11799,-32768,-32768, 11799,  8717,-32768,
- 11799,   328,   844,-32768, 11799,-32768, 11191,-32768, 12355,   367,
-  1836,  3337, 11277,-32768,   894,  2675,-32768,  2485,  3147,  5599,
--32768,   368,-32768,  2011,  2176,   328,   328, 10933, 12117,-32768,
-  1446,   800,  1446,-32768,-32768,   816,   871, 12288,   848,   849,
-   872,  1718,   591,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,   541,   579,   772,  1446,   794,   552,   920,   558,-32768,
-   955,-32768,  1549,    72,   240,-32768,-32768,-32768,-32768,-32768,
--32768, 12226,-32768,  1640,  5776,  1791,-32768,   328,   817,-32768,
--32768,   466,-32768,   932,   941,-32768,-32768,-32768,  4421,-32768,
--32768,  4421,-32768,   913,-32768,-32768,-32768,  1198,  1198,  1198,
--32768,-32768,-32768,  5793,    95,   914,   925,-32768,-32768,-32768,
--32768, 12117,-32768,   931,   937,-32768,-32768,   676,-32768,   465,
--32768,-32768,-32768,-32768,   111,-32768,-32768,-32768,-32768,  9269,
- 11105,-32768,-32768,-32768, 11105,   935,-32768,  5148,   113,  7300,
-  5886,-32768,-32768,  5886,-32768,  6144,  6144,  6890,  7304,   943,
--32768,   465,  1640,-32768,   946,-32768,-32768,  6312,  2314,  2122,
-  1640,-32768,   465,-32768,-32768,   465,  2314,-32768,  1016,-32768,
- 10933,   703,-32768,-32768,  1413,-32768,   944,  5002,  1086,   465,
--32768,-32768,   986,   988,  1013,   995,-32768,-32768,-32768,-32768,
-   731,-32768,   427,   967,   970,-32768,-32768,  1086,-32768,-32768,
-   647,-32768,-32768, 10933, 11105,   736,  8717,-32768,   500,  8717,
--32768,-32768,-32768, 11019,  6398,  6398,  6398,  6398, 12333,-32768,
--32768,-32768,-32768,   974, 11369, 11369,  8717,   976,    49,   978,
-  1032,   984,-32768,-32768,-32768,-32768, 10933,-32768,  8808,  8717,
+-32768,-32768,   813,-32768,-32768,   976,  4127,  1349,-32768,-32768,
+   812,-32768,-32768, 11627, 11713, 11799, 11799,-32768,-32768,-32768,
+-32768,-32768,   837,   869,   871,   876,   880,   716,   529, 11105,
+  1688, 11799,-32768,-32768, 11799,-32768,-32768, 11799,  8717,-32768,
+ 11799,   346,   900,-32768, 11799,-32768, 11191,-32768, 12359,   263,
+  1780,  3337, 11277,-32768,   980,  2675,-32768,  2485,  3147,  5599,
+-32768,   362,-32768,  2011,  2176,   346,   346, 10933, 12117,-32768,
+  1688,   860,  1688,-32768,-32768,   886,   938, 12292,   903,   907,
+   915,   626,   694,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,   574,   163,   295,  1688,   391,   589,   960,   633,-32768,
+   989,-32768,  1549,    48,    71,-32768,-32768,-32768,-32768,-32768,
+-32768,  3845,-32768,  1640,  5776,  1850,-32768,   346,   670,-32768,
+-32768,   601,-32768,   972,   977,-32768,-32768,-32768,  4421,-32768,
+-32768,  4421,-32768,   949,-32768,-32768,-32768,   422,   422,   422,
+-32768,-32768,-32768,  5793,    83,   951,   953,-32768,-32768,-32768,
+-32768, 12117,-32768,   873,   897,-32768,-32768,   723,-32768,   504,
+-32768,-32768,-32768,-32768,    90,-32768,-32768,-32768,-32768,  9269,
+ 11105,-32768,-32768,-32768, 11105,   956,-32768,  5148,   151,  7304,
+  5886,-32768,-32768,  5886,-32768,  6144,  6144,  7300,  7536,   961,
+-32768,   504,  1640,-32768,   962,-32768,-32768,  6312,  2122,  1177,
+  1640,-32768,   504,-32768,-32768,   504,  2122,-32768,  1047,-32768,
+ 10933,   802,-32768,-32768,  1583,-32768,   944,  5002,   976,   504,
+-32768,-32768,  1004,  1008,  1030,  1012,-32768,-32768,-32768,-32768,
+   427,-32768,   403,   979,   981,-32768,-32768,   976,-32768,-32768,
+   647,-32768,-32768, 10933, 11105,   812,  8717,-32768,   410,  8717,
+-32768,-32768,-32768, 11019,  6398,  6398,  6398,  6398, 12337,-32768,
+-32768,-32768,-32768,   986, 11369, 11369,  8717,   987,   117,   990,
+  1042,   996,-32768,-32768,-32768,-32768, 10933,-32768,  8808,  8717,
 -32768, 11105, 11105,  7914, 11105, 11105, 11105, 11105, 11105, 11105,
  11105, 11105, 11105, 11105, 11105, 11105, 11105, 11105, 11105, 11105,
  11105, 11105, 11105,-32768, 11105,-32768,-32768,-32768,-32768,-32768,
- 11105, 11105,-32768,-32768,  2929,   285,   662,  9810,-32768,-32768,
--32768,  1044,   777,  1094,   509,   515,   522,  2194,   606,-32768,
-  1931,  1931,-32768,  6174,   993,  1024,  1059,-32768,-32768,   313,
- 10308,  1046,-32768,   805,   431,-32768,-32768, 11105,-32768,-32768,
--32768,-32768,-32768,   192,   460,-32768,-32768,   328,-32768,  1640,
-  1850,-32768,  1045,  1057,-32768,-32768,  1446,   920,-32768,  9542,
-  9633,-32768,-32768,-32768,-32768,-32768,-32768,-32768,    58,-32768,
-  1026,  1029,   591,  1549,  1071, 10933,-32768,  1081,-32768,-32768,
-  1787,  1616,  1106,   406,  1079,  1082,-32768,-32768,  2205, 12172,
-  2205,  4040,  2046, 11935,-32768,  1083,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,  1050,  1051,-32768,  1092,-32768,-32768,
-   268,-32768,-32768,-32768,-32768,    99,  1218,  1103,  1032,-32768,
--32768,-32768,-32768,  5532, 12333,-32768,   871,  1060, 12288,-32768,
--32768,  1061,-32768,  1067,   496,  4877,  1073,-32768,    75,  7833,
-  1118,  1120,   525,-32768,-32768,-32768,-32768,  5886,  5886,  6444,
-  6444,  7304,   805,-32768,-32768,  6312,-32768,  1124,-32768,-32768,
-  1056,   113,-32768,  2314,-32768,-32768,   465,  1114,-32768,   579,
-   772,-32768,  1098,-32768,   558,  1134,-32768,-32768,   524,-32768,
--32768,  1482,-32768,   896,   928,-32768, 11105, 11867,-32768, 11867,
-   122,   122,   315,   557,  6631, 11990,    93,  5893,-32768,    69,
-   122,-32768,   113,  4217, 10933, 10933,-32768, 10933,   113,  4217,
--32768,-32768,-32768,-32768,-32768,-32768,   637,   637,   637,   328,
-  1087,  1089, 10584,  1059,  1095,  1097,  1099,  1125,  5395,  1133,
-  1135,  1138,-32768,  1111,-32768,-32768,  1117,-32768,-32768,  1153,
-   733,   734,   432,   171, 11105,  1165,-32768,  1171,  1127, 12333,
- 12333,-32768,-32768,  1178, 12373, 12390,  6994,  3455,  3620,  4256,
-  3132,  1790,  1790,  1790,  2527,  2527,  1322,  1322,   707,   707,
-   707,-32768,-32768,  1139,  1141,  1132, 11105, 11019,-32768,   285,
--32768,  9269, 11105,-32768,-32768,-32768, 11105,-32768,-32768,  1152,
- 11799,  1142,  1162,  1185,  1216,-32768, 11105,-32768, 11105,-32768,
- 11105,  1948,  3403,-32768,-32768,  3403,-32768,   156,  1948,  1144,
-  1158,-32768,  1159,  6398,   113,-32768,   113,  4475,-32768,  4217,
-  1166,  4662,  4662,  8438,  1161, 11191,  1168,  3753,  3684,  2176,
-  1107,  1175,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 11105,
-  1446,  1164,  1057,-32768, 12333,-32768, 12333,  1718,  1177, 11455,
--32768,  1181,  1234,-32768,   328,-32768,-32768,-32768,-32768,-32768,
-  1576, 12226,-32768,  6398, 10933,  3002,  3002,  5308,-32768,-32768,
--32768,-32768,  3275,-32768,-32768,-32768,  1239, 11105,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,   268,-32768,   541,
--32768,   794,   552, 11105,  1237,-32768,   641,   652,   661,  1032,
--32768,    83,-32768,    32,-32768,-32768,-32768,-32768,-32768,-32768,
- 10400,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1120,  1233,
+ 11105, 11105,-32768,-32768,  1271,   595,   112,  9810,-32768,-32768,
+-32768,  1048,  1446,  1098,   413,   425,   511,  2194,   923,-32768,
+  1931,  1931,-32768,  6174,  1005,  1016,  1070,-32768,-32768,   719,
+ 10308,  1046,-32768,   703,   791,-32768,-32768, 11105,-32768,-32768,
+-32768,-32768,-32768,    92,   502,-32768,-32768,   346,-32768,  1640,
+  2314,-32768,  1055,  1063,-32768,-32768,  1688,   960,-32768,  9542,
+  9633,-32768,-32768,-32768,-32768,-32768,-32768,-32768,    88,-32768,
+  1032,  1022,   694,  1549,  1079, 10933,-32768,  1074,-32768,-32768,
+  1787,  1616,  1102,   319,  1077,  1078,-32768,-32768,  2205, 12172,
+  2205,  4040,  2046, 11935,-32768,  1082,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,  1035,  1039,-32768,  1092,-32768,-32768,
+   329,-32768,-32768,-32768,-32768,    89,   243,  1096,  1042,-32768,
+-32768,-32768,-32768,  5532, 12337,-32768,   938,  1051, 12292,-32768,
+-32768,  1057,-32768,  1059,   209,  4877,  1060,-32768,   265,  7833,
+  1105,  1111,   533,-32768,-32768,-32768,-32768,  5886,  5886,  6444,
+  6444,  7536,   703,-32768,-32768,  6312,-32768,  1118,-32768,-32768,
+  1084,   151,-32768,  2122,-32768,-32768,   504,  1114,-32768,   163,
+   295,-32768,  1104,-32768,   633,  1146,-32768,-32768,   324,-32768,
+-32768,  1718,-32768,   731,   846,-32768, 11105, 11867,-32768, 11867,
+   180,   180,   193,   543,  6631, 11990,    78,  5893,-32768,   178,
+   180,-32768,   151,  4217, 10933, 10933,-32768, 10933,   151,  4217,
+-32768,-32768,-32768,-32768,-32768,-32768,   883,   883,   883,   346,
+  1099,  1113, 10584,  1070,  1115,  1117,  1119,  1140,  5395,  1144,
+  1154,  1155,-32768,  1127,-32768,-32768,  1131,-32768,-32768,  1181,
+   312,   392,   309,   181, 11105,  1184,-32768,  1188,  1141, 12337,
+ 12337,-32768,-32768,  1192, 12377, 12394,  6994,  3455,  3620,  4256,
+  1848,  2529,  2529,  2529,  2624,  2624,  1982,  1982,   884,   884,
+   884,-32768,-32768,  1147,  1151,  1152, 11105, 11019,-32768,   595,
+-32768,  9269, 11105,-32768,-32768,-32768,-32768,-32768,-32768,  1170,
+ 11799,  1157,  1178,  1191,  1222,-32768, 11105,-32768, 11105,-32768,
+ 11105,  1948,  3403,-32768,-32768,  3403,-32768,    94,  1948,  1162,
+  1164,-32768,  1163,  6398,   151,-32768,   151,  4475,-32768,  4217,
+  1166,  4662,  4662,  8438,  1165, 11191,  1174,  3753,  3275,  2176,
+   805,  1175,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 11105,
+  1688,  1169,  1063,-32768, 12337,-32768, 12337,   626,  1182, 11455,
+-32768,  1185,  1226,-32768,   346,-32768,-32768,-32768,-32768,-32768,
+  1576,  3845,-32768,  6398, 10933,  3002,  3002,  5308,-32768,-32768,
+-32768,-32768,  2846,-32768,-32768,-32768,  1129, 11105,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,   329,-32768,   574,
+-32768,   391,   589, 11105,  1232,-32768,   553,   569,   585,  1042,
+-32768,    45,-32768,    69,-32768,-32768,-32768,-32768,-32768,-32768,
+ 10400,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1111,  1233,
 -32768,-32768,-32768,  6398,   968,   968,  1732,-32768,-32768,-32768,
-  1235,-32768,-32768, 11019,-32768,-32768,-32768,-32768,  1475,-32768,
-  4217, 12333,-32768,  2422,-32768,   465,   465,-32768,-32768,-32768,
--32768,-32768,  4217,   451,   789, 11105,  1016,-32768,  1242,-32768,
--32768,-32768,   215,   226,  2040,   606,   396,   122,  1245,-32768,
-   459,  1244,   465,  7092,-32768,-32768,-32768,   465,-32768,  1199,
-   328,   328,   328,-32768,  1200,   113,  4217,   113,  4217,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1217,  1223,
-  1229,  1230,  1050,-32768, 12221,  9269,  8902,  1215,-32768, 11105,
--32768,-32768,-32768,  1219,  1224,  1225,  6398,-32768,-32768,  1227,
-   190,   861,   861,  1214,   861,-32768,-32768, 11799,  1319, 10933,
--32768,  1228,  1231,  1232,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,   113,  1238,-32768,  1226,  3753,-32768,-32768,
-  3264,  3264,  5989,  3811,-32768,-32768,-32768,-32768,-32768, 12333,
--32768,-32768,  1236,-32768,-32768,   153,  1240,-32768,-32768,-32768,
+  1234,-32768,-32768, 11019,-32768,-32768,-32768,-32768,   777,-32768,
+  4217, 12337,-32768,  2422,-32768,   504,   504,-32768,-32768,-32768,
+-32768,-32768,  4217,   451,   493, 11105,  1047,-32768,  1237,-32768,
+-32768,-32768,   315,   345,  2040,   923,   459,   180,  1244,-32768,
+   507,  1242,   504,  7092,-32768,-32768,-32768,   504,-32768,  1198,
+   346,   346,   346,-32768,  1200,   151,  4217,   151,  4217,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1217,  1218,
+  1220,  1221,  1035,-32768, 12225,  9269,  8902,  1213,-32768, 11105,
+-32768,-32768,-32768,  1214,  1216,  1224,  6398,-32768,-32768,  1225,
+   168,   861,   861,  1228,   861,-32768,-32768, 11799,  1327, 10933,
+-32768,  1229,  1235,  1238,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,   151,  1240,-32768,  1230,  3753,-32768,-32768,
+  3264,  3264,  5989,  3684,-32768,-32768,-32768,-32768,-32768, 12337,
+-32768,-32768,  1227,-32768,-32768,   210,  1247,-32768,-32768,-32768,
 -32768,-32768,-32768,-32768,  5660,  3422,  3422,  4112,  4112,  5308,
-  5772,    54,  3275,-32768,  4229, 12355,-32768,-32768,-32768,  1246,
--32768,  1218,-32768, 11105,-32768, 11105,-32768, 11105,-32768,  1446,
--32768,-32768,  8345,  1308,-32768,  8993,-32768, 10492, 10492,  8532,
-   182,  1247,   250,-32768,  9269,  9084,-32768,-32768,   155,  2164,
-  2164,  1688,  1688,  9269,-32768,-32768,  1251,  1254,   944,-32768,
--32768,-32768,   113,  1256,-32768,  1279,  1279,   113,  1257, 11105,
- 11105,  7597,   465,  6764,   465,   465,  1129,   465,  7497,-32768,
--32768,  7702,  1279,-32768,-32768,  1296,-32768,-32768,-32768,  1266,
--32768,  1270, 11105, 11105, 11105, 11105,  9269,-32768,  1291,-32768,
--32768, 12333,-32768,-32768,-32768,   471,  1225,-32768,-32768,-32768,
--32768,-32768,-32768,  1268,-32768,  1334,   328,-32768,-32768,-32768,
-   113,-32768,-32768,-32768,-32768,-32768,-32768, 11105,-32768,-32768,
-  5772,  3422,  3422,  4771,  4771,  7427,-32768,   277,  4229,-32768,
--32768,  1274,  1275,  1277,  1290,-32768,   952,   161,  1329,   810,
-   819,-32768,-32768,-32768,-32768,-32768, 11105,  1330,  1335,  1336,
- 10670,   262,  1446,   415,   583,-32768,-32768, 10761,  1385,-32768,
--32768,-32768,  1349,-32768,  7537, 12058,  6768,  8235,-32768,-32768,
-  1403,-32768,-32768,-32768,  9919,-32768,-32768,  1321,  1381,-32768,
+  5772,   282,  2846,-32768,  4229, 12359,-32768,-32768,-32768,  1251,
+-32768,   243,-32768, 11105,-32768, 11105,-32768, 11105,-32768,  1688,
+-32768,-32768,  8345,  1307,-32768,  8993,-32768, 10492, 10492,  8532,
+   318,  1254,   321,-32768,  9269,  9084,-32768,-32768,   211,  2164,
+  2164,   662,   662,  9269,-32768,-32768,  1257,  1262,   944,-32768,
+-32768,-32768,   151,  1263,-32768,  1281,  1281,   151,  1266, 11105,
+ 11105, 12203,   504,  6764,   504,   504,  1107,   504,  7548,-32768,
+-32768,  7702,  1281,-32768,-32768,  1296,-32768,-32768,-32768,  1270,
+-32768,  1273, 11105, 11105, 11105, 11105,  9269,-32768,  1317,-32768,
+-32768, 12337,-32768,-32768,-32768,   779,  1224,-32768,-32768,-32768,
+-32768,-32768,-32768,  1272,-32768,  1335,   346,-32768,-32768,-32768,
+   151,-32768,-32768,-32768,-32768,-32768,-32768, 11105,-32768,-32768,
+  5772,  3422,  3422,  4771,  4771,  7427,-32768,   383,  4229,-32768,
+-32768,  1277,  1278,  1283,  1298,-32768,   927,   212,  1330,   623,
+   824,-32768,-32768,-32768,-32768,-32768, 11105,  1333,  1336,  1344,
+ 10670,   227,  1688,   952,   763,-32768,-32768, 10761,  1393,-32768,
+-32768,-32768,  1350,-32768,  7661, 12058,  6768,  8235,-32768,-32768,
+  1404,-32768,-32768,-32768,  9919,-32768,-32768,  1301,  1381,-32768,
 -32768,-32768,-32768,  6398,-32768,-32768,  9269,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,  7597,  7597,-32768,  1279,
-   594,   905, 11105,-32768,-32768,-32768,  1016,  1016,  1279,  1279,
-   731,  1279,-32768,-32768,-32768,   113,   113,-32768,-32768,  1323,
-  1324,  1325,  1340,-32768,  9269, 11105,-32768,   471,-32768,-32768,
--32768,-32768,   113,  1344,  4799,  4799,   805,  6024,-32768,-32768,
--32768,-32768,  1290,-32768,  1446,-32768,-32768,-32768,-32768,-32768,
--32768,   665,   665,  1032,  1337,  1345,  7997,-32768,-32768,-32768,
--32768,  1367, 11105,  1377,  1378,  1390,  1569,  1583,-32768,  1032,
--32768,-32768,  1360,-32768,-32768,  1016,   958,-32768,   994,  1016,
- 10847,  1014,   176,-32768,-32768,-32768,-32768,-32768,-32768,   336,
--32768,-32768,   113,   113,-32768,-32768,-32768, 11105, 11105,  7597,
-   465,   465,-32768,-32768,-32768,  8103,-32768,-32768,   113,   113,
--32768,-32768,-32768,-32768,-32768,  1347,-32768,-32768,-32768,  7801,
-  7801,  6295,  2286,  1369,-32768,-32768,-32768, 11019,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768, 12203, 12203,-32768,  1281,
+   767,   908, 11105,-32768,-32768,-32768,  1047,  1047,  1281,  1281,
+   427,  1281,-32768,-32768,-32768,   151,   151,-32768,-32768,  1314,
+  1315,  1319,  1322,-32768,  9269, 11105,-32768,   779,-32768,-32768,
+-32768,-32768,   151,  1323,  4799,  4799,   703,  6024,-32768,-32768,
+-32768,-32768,  1298,-32768,  1688,-32768,-32768,-32768,-32768,-32768,
+-32768,   598,   598,  1042,  1339,  1340,  7997,-32768,-32768,-32768,
+-32768,  1377, 11105,  1378,  1380,  1388,  1754,  1833,-32768,  1042,
+-32768,-32768,  1355,-32768,-32768,  1047,   929,-32768,   958,  1047,
+ 10847,   994,   221,-32768,-32768,-32768,-32768,-32768,-32768,   517,
+-32768,-32768,   151,   151,-32768,-32768,-32768, 11105, 11105, 12203,
+   504,   504,-32768,-32768,-32768,  8103,-32768,-32768,   151,   151,
+-32768,-32768,-32768,-32768,-32768,  1347,-32768,-32768,-32768,  7527,
+  7527,  6295,  2286,  1360,-32768,-32768,-32768, 11019,-32768,-32768,
 -32768,  1442, 10215,  8626, 11019, 11105,-32768, 10027,-32768,  1400,
--32768,-32768,  1409,-32768,  1390,  1569,-32768,-32768,   676,-32768,
--32768, 11541, 11541,  9178,-32768,-32768,  1032,-32768,-32768,  7597,
 7597,-32768,  1279,  1279,-32768,  9724,-32768,-32768,-32768,-32768,
--32768,  2286,  5469,-32768,-32768,  1357,   410,  1640,  1032, 10121,
--32768,-32768,    83,-32768,-32768,  1406,  1363, 12311, 10027,-32768,
--32768,-32768,-32768,  1290,    81,-32768,-32768,-32768,-32768,-32768,
-  1365, 12243,  1376,  1373,  1382,  1032,-32768,  1016,-32768,-32768,
--32768,-32768,   673,-32768,  9360,-32768,-32768,-32768,-32768,  1290,
-  1466,  1436,-32768,-32768,-32768,   365,   268,-32768,-32768,-32768,
-   465,    83,-32768, 11105,  1437,-32768,  1439,-32768,  1032, 10027,
-  1414,   667,  1449,-32768,-32768,   186,-32768,  1451,-32768,  1405,
--32768,-32768,-32768,-32768, 11105,  1466,  1463,  1466,-32768,   111,
--32768,-32768,-32768,  9451,  1417,   685,-32768,-32768,-32768,  9269,
-  1425,-32768,  1529,  1481,-32768,-32768,-32768,   179,-32768, 10121,
-  1533,  1485,-32768,-32768,-32768,  1546,  1548,-32768
+-32768,-32768,  1408,-32768,  1388,  1754,-32768,-32768,   723,-32768,
+-32768, 11541, 11541,  9178,-32768,-32768,  1042,-32768,-32768, 12203,
12203,-32768,  1281,  1281,-32768,  9724,-32768,-32768,-32768,-32768,
+-32768,  2286,  5469,-32768,-32768,  1357,   548,  1640,  1042, 10121,
+-32768,-32768,    45,-32768,-32768,  1403,  1358, 12315, 10027,-32768,
+-32768,-32768,-32768,  1298,    81,-32768,-32768,-32768,-32768,-32768,
+  1364, 12247,  1375,  1365,  1369,  1042,-32768,  1047,-32768,-32768,
+-32768,-32768,   668,-32768,  9360,-32768,-32768,-32768,-32768,  1298,
+  1470,  1425,-32768,-32768,-32768,   434,   329,-32768,-32768,-32768,
+   504,    45,-32768, 11105,  1426,-32768,  1430,-32768,  1042, 10027,
+  1406,   250,  1437,-32768,-32768,   141,-32768,  1433,-32768,  1397,
+-32768,-32768,-32768,-32768, 11105,  1470,  1447,  1470,-32768,    90,
+-32768,-32768,-32768,  9451,  1405,   586,-32768,-32768,-32768,  9269,
+  1407,-32768,  1497,  1463,-32768,-32768,-32768,   235,-32768, 10121,
+  1514,  1473,-32768,-32768,-32768,  1538,  1539,-32768
 };
 
 static const short yypgoto[] = {-32768,
-  1558,-32768,  -301,  1393,  -385,    29,     8,  1562,-32768,  1531,
--32768,-32768,   265,-32768,   376,-32768,   382,-32768,   121,   901,
-    37,    31,-32768,-32768,  -632,-32768,-32768,   608,    39,  1402,
-  1136,  1427,  -703,   -24,  -172,     6,   116,-32768,-32768,-32768,
--32768,-32768,   799,-32768,-32768,-32768,-32768,-32768,-32768,   412,
+  1540,-32768,  -334,  1371,  -399,    29,     8,  1542,-32768,  1510,
+-32768,-32768,   122,-32768,   230,-32768,   300,-32768,    98,   874,
+    39,    31,-32768,-32768,  -638,-32768,-32768,   596,    47,  1394,
+  1122,  1401,  -703,   -37,  -172,     5,   116,-32768,-32768,-32768,
+-32768,-32768,   774,-32768,-32768,-32768,-32768,-32768,-32768,   379,
    687,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,  1502,  -668,  6906,  1364,    79,  -587,  -311,   -67,
-  1469,  -518,-32768,  1604,-32768,   181,-32768, -1404,-32768, -1267,
-   -45,-32768,  2063,  1435,  -283,   341,  -553,-32768,  -856,  6731,
-  1649,  1869,  4947,  1331,  -325,   -99,   -92,  1646,  -129,   -51,
+-32768,-32768,  1481,  -576,  6906,  1354,    79,  -605,  -311,   -67,
+  1439,  -530,-32768,  1604,-32768,   162,-32768, -1428,-32768, -1267,
+   -78,-32768,  2063,  1435,  -247,   325,  -570,-32768,  -856,  6731,
+  1649,  1869,  4947,  1297,  -341,   -61,   -84,  1646,  -129,   -51,
    246,-32768,-32768,-32768,  -339,-32768,  -153,-32768,-32768, -1273,
-   -52,  -345,  6249,    40,  1515,  -124,   146,   347,  -191,    -4,
-  -128,  -174,  -167,    -2,   174,    85,-32768,  -365,-32768,-32768,
--32768,-32768,-32768,   274,  1342,   -57,-32768,   681,-32768,-32768,
- -1179,  -211,   907,-32768,-32768,-32768,-32768,-32768,    10,-32768,
--32768,-32768,-32768,-32768,-32768,   693,  -366,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,  1396,-32768,   418,   611,-32768,-32768,
--32768,   581,  -751,-32768,-32768,-32768,-32768,-32768,-32768,   862,
--32768,   408,  1004,   722,  1062,  2110,   109,    22,  -471,  1465,
+   -52,  -345,  6249,    40,  1515,  -158,   146,   347,  -191,    -4,
+  -109,  -174,  -167,     6,   174,   267,-32768,  -108,-32768,-32768,
+-32768,-32768,-32768,   274,  1342,   -57,-32768,   660,-32768,-32768,
+ -1126,  -211,   890,-32768,-32768,-32768,-32768,-32768,    10,-32768,
+-32768,-32768,-32768,-32768,-32768,   661,  -366,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,  1373,-32768,   389,   590,-32768,-32768,
+-32768,   556,  -758,-32768,-32768,-32768,-32768,-32768,-32768,   840,
+-32768,   398,   993,   697,  1050,  2110,   109,    22,  -463,  1457,
   3545,   353,-32768,  -494,-32768,    12,   291,   438,  -143,   740,
-   -84,  5317,  1320,-32768,  6267,  2755,  1981,   -12,  -106,-32768,
-  1550,   -65,-32768,  5689,  3720,  -372,-32768,  2404,  -165,-32768,
--32768,   327,-32768,-32768,   472,    43,  -335,-32768,-32768,-32768,
--32768, -1459,-32768, -1246, -1436,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,    51,
--32768,-32768,-32768,-32768,-32768,   106, -1361,-32768,-32768,   -56,
--32768,-32768,-32768,-32768, -1447,    48,-32768,    50,-32768,  -685,
-  -361,   672,-32768,-32768,-32768,-32768,  -392,-32768,  -383,  -180,
--32768,   998,   322,-32768,   169,-32768,  -234
+  -113,  5317,  1312,-32768,  6267,  2755,  1981,   -12,  -106,-32768,
+  1537,   -65,-32768,  5689,  3720,  -369,-32768,  2404,  -165,-32768,
+-32768,   326,-32768,-32768,   472,    23,  -335,-32768,-32768,-32768,
+-32768, -1418,-32768, -1294, -1446,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,    49,
+-32768,-32768,-32768,-32768,-32768,   103, -1361,-32768,-32768,   -56,
+-32768,-32768,-32768,-32768, -1440,    44,-32768,    46,-32768,  -725,
+  -361,   667,-32768,-32768,-32768,-32768,  -392,-32768,  -383,  -180,
+-32768,   998,   335,-32768,    64,-32768,  -234
 };
 
 
-#define        YYLAST          12474
+#define        YYLAST          12478
 
 
 static const short yytable[] = {    59,
    444,   443,   196,   632,   224,   420,   423,   435,   445,   695,
-   122,    36,   780,   761,  1000,   642,   516,   490,   696,   392,
-   538,   541,   356,  1118,   357,   103,   432,   298,   256,   641,
-    59,   982,    35,   397,    42,   693,  1043,    59,  1045,   177,
-   398,   399,    36,    55,   646,   647,  1075,   174,   839,   400,
-   878,   178,   209,   571,   711,   509,  1373,  1374,   391,   934,
-   976,  1505,   507,    35,  1451,    42,  1566,   247,   221,   408,
-   169,   672,    42,  1395,    55,   190,  1562,  1576,   170,   296,
-   171,   175,   224,   349,   489,   349,  1013,   349,   495,   498,
-  1206,   610,   256,   497,   260,   594,   701,   702,   224,  1589,
-  -601,  1466,   349,   349,   528,   610,   738,    -1,  1469,   610,
-  1567,   719,    72,   983,    86,  1200,   948,   364,  1080,   722,
-   645,   519,   196,  1592,  1085,    89,    -2,   766,  1076,  1072,
-    88,   406,   349,  1014,   349,    93,  1015,   452,   141,   146,
-  1207,   595,  1601,    72,   802,    90,  -601,  -601,    15,    57,
-    72,   256,  -415,   913,   224,   163,  -295,   528,   253,  1633,
-    59,  -601,   224,    87,    59,   949,   177,  1008,   720,  -582,
-   440,   209,   208,   743,   174,   404,   190,  1077,   178,   224,
-    57,  -415,   629,   633,   636,  -415,  1639,   176,  1602,    94,
-  1618,  1201,   297,   824,  -356,   164,  1651,   169,   453,    42,
-  1477,  1073,   708,   135,    55,   170,   989,   171,   175,  1483,
-  1484,  1298,  1485,  1364,  1009,  -582,   189,  1010,   221,   182,
-  1427,   190,   998,  1592,   138,   837,   221,   221,  -302,   308,
-  -415,   454,  -144,   467,  1145,  1427,   620,  1661,  1505,  -365,
-  1564,    15,   107,  -356,    72,    26,   615,   453,   726,   249,
-  -366,   403,    15,   616,     8,   521,   221,   419,   422,   260,
-  1299,   137,  1365,   838,    95,   110,   111,  1156,    38,  1428,
-  1159,  1570,  -365,    72,  -302,  -302,  -365,    72,   155,   468,
-   454,   405,   823,  -366,  1536,   607,  1662,  -366,  -582,  -295,
-   648,   208,   247,    91,   716,  1594,  -626,  1279,   363,    38,
-   108,   471,   474,   109,   642,   221,   130,   131,   680,  -365,
-    57,  1187,  1188,    92,   176,   161,   961,   112,   113,   675,
-  -366,   147,  1599,  -600,   349,  1117,   987,   988,  1171,   459,
-   522,   881,   420,   423,  -582,   485,   935,   296,   162,  1048,
-   523,  1443,  -626,  -626,  1629,   247,   460,   695,   882,   432,
-    58,   698,   187,   349,   651,  1234,  1019,  -626,   221,   919,
-   495,   498,   517,  1579,  1580,   764,   260,  1239,   495,  -600,
-  -600,   952,  1049,  1634,   179,   461,  1050,   883,   516,    39,
-   498,    58,  -304,  1001,  -600,    40,   493,   374,    58,   183,
-   632,   138,   224,   375,   155,   155,   155,   692,   650,   498,
-   209,  1260,   564,  1262,   565,   920,   921,   199,   518,  1051,
-    39,   139,   224,   594,   637,   221,    40,   215,   216,  1407,
-  -120,   224,    15,    14,     7,   127,   128,    10,  -304,  -304,
-   295,   411,   683,   768,     8,     9,   413,    59,   224,   177,
-   155,    76,   738,  -298,  1226,    20,  1174,   713,   738,  1147,
-   297,   178,    18,  -120,    23,   449,   620,  -120,   129,   595,
-   638,   240,    21,   736,   962,   241,   820,    72,    26,   127,
-   128,  1446,    76,   813,   649,    26,   188,    27,    28,    76,
-   963,   175,    58,  -118,   147,    15,   130,   131,  1295,  1296,
-  -120,   149,   201,  -143,   213,    18,   349,   243,   221,   221,
-  1075,   150,   823,    59,   405,   137,   221,  1008,  1093,    32,
-   694,    58,  1240,   363,   151,    58,  -118,   881,   221,   814,
-  -118,   130,   131,   971,    88,   629,   633,   199,   636,   349,
-  1037,   245,   349,   299,   882,   349,   788,   221,   986,   349,
-   829,   829,   829,   829,   780,   522,   620,   795,   607,   520,
-    72,  1497,   349,  -118,  1009,   896,   138,  1010,   738,  -831,
-  1038,   898,   349,   883,  1406,   349,   360,   759,   900,   695,
-   633,  1023,   511,   407,   199,   765,   694,   410,   696,    91,
-   362,   127,   128,   372,   748,   749,   794,   176,   957,   680,
-   642,  1033,   823,  1035,   376,   693,   958,   937,  1039,    92,
-   296,   897,    76,  1052,   641,   380,    76,   899,   955,   127,
-   128,   381,   201,   213,   901,  -295,    72,  1024,   512,   692,
-   116,   117,   118,   791,     8,     9,   736,    95,    96,    97,
-   401,    26,   377,   130,   131,   495,   969,   528,   974,   975,
-   127,   128,   571,  1170,  1449,   519,   260,   529,   189,  1053,
-   127,   128,    90,   796,  1284,  1478,   137,   530,   425,   201,
-   221,   130,   131,   633,  1199,   127,   128,    88,   363,   122,
-  1119,   349,   767,   119,   120,   392,   130,   131,    26,   738,
-    98,    99,   100,   975,   433,   209,   303,  1193,   295,   247,
-    26,   738,   130,   131,   363,   645,  -621,   998,  1195,    -7,
-   101,   221,   130,   131,   999,    58,   529,  1197,   115,   703,
-   164,  1507,   704,   297,   447,    26,   530,   130,   131,  1613,
-   448,   155,   155,   155,   707,   738,   252,   738,  1636,   903,
-   906,   885,   694,  1194,   780,   692,  1135,  1081,  1082,   694,
-  1083,   886,  1058,  1135,  1196,   221,  1653,   451,   691,  1280,
-  1281,   233,  1283,  1198,   463,   887,   199,  1508,    95,   110,
-   111,   411,  1135,   464,   413,  1614,    95,   414,   415,  1255,
-  1256,  1257,   158,   221,  1637,   824,   501,   811,   520,    95,
-   110,   111,   513,    59,    91,    59,    89,    91,    58,   592,
-   593,   209,  1654,    59,  -141,  -142,   652,   524,   432,   692,
-   349,   349,   525,   349,    92,   692,    90,    92,     8,     9,
-   388,   112,   113,   114,   691,  1189,   788,    21,   788,    98,
-   113,   526,   745,   812,   527,   378,   788,   795,   535,  1044,
-   544,   745,   112,   113,   416,   199,   545,   795,   221,   222,
-   223,   201,    89,   199,   224,    92,   546,   379,   694,    15,
-  1241,   224,   363,  -415,    58,  1229,  1230,  1231,  1025,  1026,
-   130,   131,    90,    89,   127,   128,   794,   137,   794,   519,
-   224,  1430,    91,   349,   794,   567,   794,   547,  1121,    76,
-  1431,  -415,  -415,    90,   252,   116,   117,   118,   158,   158,
-   158,   564,    92,   565,  1268,  1270,    72,   548,    72,   382,
-   383,   384,   567,   791,   610,   791,    72,   410,   656,   829,
+   122,    36,   780,   641,  1000,   642,   516,   490,   696,   392,
+   400,   761,   356,  1118,   357,   103,   432,   298,   256,  1043,
+    59,  1045,    35,   878,    42,   693,   839,    59,   672,  1075,
+   711,   934,    36,    55,   646,   647,   174,   177,   398,   399,
+   489,   178,   209,  1466,   976,   509,   538,   541,   391,   497,
+  1469,  1505,   507,    35,  1451,    42,  1562,   247,   221,   408,
+   169,   397,    42,  1566,    55,   190,   452,  1200,  1080,   296,
+   170,   175,   224,   349,  1085,   349,  1567,   349,   171,   571,
+   719,   610,   256,   610,   260,   983,   701,   702,   224,   610,
+    -1,    89,   349,   349,   528,  1008,   738,   495,   498,  1373,
+  1374,    88,    72,  1592,  1072,   127,   128,   364,  1576,   722,
+   645,    90,   196,   982,    91,    38,  1395,  1206,   138,   308,
+    -2,   406,   349,  -356,   349,    93,    86,   453,   141,   146,
+  1589,  1639,  1601,    72,    92,    26,   948,   720,   139,    57,
+    72,   256,  1009,  1201,   224,  1010,    38,   528,   253,   519,
+    59,   913,   224,   594,    59,    26,  1618,   130,   131,   440,
+   454,   209,   208,   174,   177,   404,   190,  1207,   178,   224,
+    57,   885,   629,   633,   636,    87,  1073,   176,  1602,    94,
+   708,   886,   297,   824,  1145,   949,   989,   169,  -356,    42,
+  1633,   838,   453,  1651,    55,   887,    15,   170,   175,   595,
+  -415,   743,   163,  1592,   620,   171,   377,  1048,   221,   182,
+  1008,   190,   998,  1570,  -295,   837,   221,   221,   240,    95,
+   110,   111,   241,    39,   138,   454,    90,  1076,  1505,  -415,
+  1564,   107,  -144,  -415,    72,   990,   770,   771,   726,   249,
+  1049,   403,   164,  1477,  1050,   135,   221,   419,   422,   260,
+   823,   616,  1483,  1484,    39,  1485,   162,  1009,  1298,  1364,
+  1010,  1427,  -831,    72,  1599,  1279,  1013,    72,   155,   680,
+  1427,   405,   112,   113,   615,   607,  1077,  1051,  -415,   991,
+   648,   208,   247,  1661,   716,  1594,    26,   467,   992,   993,
+   517,   471,   474,    40,   642,   221,  1443,   108,  1117,   594,
+    57,  1636,   987,   988,   176,  1234,   961,  1299,  1365,   675,
+  1428,   147,  1171,  1014,   349,  1634,  1015,  1239,  -601,  1536,
+  1037,   764,   420,   423,    40,   994,   935,   296,   952,  -365,
+   523,    15,  1662,   468,  1629,   247,   518,   695,   378,   432,
+    58,   698,   109,   349,   651,   595,  1019,  1637,   221,  1156,
+  1038,  1260,  1159,  1262,  -302,    89,   260,  -626,    92,  -366,
+  -143,    15,  -365,  -141,  -601,  -601,  -365,   962,   516,   495,
+   498,    58,   137,  1001,   766,    90,   493,   495,    58,  -601,
+   632,   161,   224,   963,   155,   155,   155,   692,   650,   498,
+   209,   802,  -366,  1187,  1188,   137,  -366,   199,   637,  -365,
+  -302,  -302,   224,  -626,  -626,   221,  1579,  1580,   498,  1407,
+   564,   224,   565,  1124,   300,  -295,  1226,    10,  -626,  -600,
+   295,   411,   683,   768,  1174,   179,   413,    59,   224,  -366,
+   155,    76,   738,   459,   379,    91,   713,   177,   738,   813,
+   297,   178,    18,  -142,   638,   449,   620,  1147,   183,   896,
+   460,   511,    21,   736,   137,    92,   820,    72,    91,     8,
+   521,   898,    76,   811,   649,  -600,  -600,   426,   427,    76,
+    91,   175,    58,  -120,   147,    15,   222,   223,    92,   461,
+  -600,   428,   201,  1075,   213,   814,   349,   188,   221,   221,
+    92,   429,   823,    59,   405,   897,   221,   512,  1093,    32,
+   694,    58,  1240,   363,   430,    58,  -120,   899,   221,   812,
+  -120,   130,   131,   971,    88,   629,   633,   199,   636,   349,
+   187,  -118,   349,    15,    18,   349,   788,   221,   986,   349,
+   829,   829,   829,   829,   780,   522,    89,   795,   607,   520,
+    72,  1497,   349,  -120,  1241,   215,   216,   900,   738,   243,
+   680,    14,   349,  -304,  -118,   349,    90,   958,  -118,   695,
+   633,  -582,   245,   407,   199,   299,   694,   410,   696,  1023,
+  1295,  1296,   138,    20,   748,   749,   794,   176,   641,  1052,
+   642,  1033,    23,  1035,   620,   693,   957,   937,  1039,  1193,
+   296,  -118,    76,   901,   127,   128,    76,   360,   955,  -304,
+  -304,   362,   201,   213,   372,  1195,    72,  -582,   189,   692,
+   116,   117,   118,   791,  -298,  1024,   736,   376,    95,   110,
+   111,  1197,   665,   666,   667,  1053,   969,   528,   974,   975,
+   823,   881,   380,  1170,  1507,  1194,   260,  1653,   363,   374,
+   127,   128,  -582,   796,   495,   375,   130,   131,   882,   201,
+   221,  1196,  1284,   633,  1199,     8,     9,     8,     9,   122,
+  1119,   349,   767,   119,   120,   392,    89,  1198,   571,   738,
+   522,   112,   113,   975,  1430,   209,   381,   883,   295,   247,
+  1508,   738,    18,  1654,   363,   645,    90,   998,  -582,   485,
+   101,   221,   130,   131,   999,    58,     8,     9,   115,   703,
+   401,   363,   704,   297,  1613,    26,  -295,   130,   131,   130,
+   131,   155,   155,   155,   707,   738,   252,   738,   567,   903,
+   906,  1220,   694,   303,   780,   692,  1135,  1081,  1082,   694,
+  1083,  1221,  1058,  1135,   564,   221,   565,   425,   691,   759,
+   363,   233,  1280,  1281,  1222,  1283,   199,   765,   130,   131,
+  1614,   411,  1135,   433,   413,   919,    95,    96,    97,  1255,
+  1256,  1257,   158,   221,  -183,   824,   189,  1040,   520,   116,
+   770,   771,   252,    59,    91,    59,   222,   446,    58,   137,
+  -183,   209,  -183,    59,     8,     9,   652,  -621,   432,   692,
+   349,   349,    -7,   349,    92,   692,   773,   164,     8,     9,
+   388,   920,   921,   447,   691,  1189,   788,    26,   788,    98,
+    99,   100,   745,  1041,  1449,   881,   788,   795,  1478,  1044,
+    26,   745,   119,   120,   416,   199,   137,   795,   221,   448,
+    88,   201,   882,   199,   224,   451,   130,   131,   694,   127,
+   128,   224,   363,   463,    58,  1229,  1230,  1231,  1025,  1026,
+   130,   131,   483,   484,   127,   128,   794,   464,   794,   519,
+   224,   883,  1406,   349,   794,   501,   794,    91,  1121,    76,
+  1090,  1091,  1092,   524,   522,  1431,   127,   128,   158,   158,
+   158,   519,   491,   492,  1268,  1270,    72,    92,    72,    26,
+   525,   130,   131,   791,   535,   791,    72,   410,   526,   829,
   1057,  1067,   694,   791,    26,   692,   130,   131,   694,   736,
-   201,   256,  1640,   659,   502,   504,   222,   446,   201,   660,
-   885,   127,   128,   796,   158,   796,    26,   514,   119,   120,
-   886,   260,  1040,   796,   385,   801,   116,   770,   771,    91,
-   772,   295,   386,   387,   887,   662,   663,   692,    89,   829,
-   349,   483,   484,   692,  1046,  1047,  1479,   491,   492,    92,
-   691,     8,     9,   773,  1078,  1411,   246,   691,    90,   664,
-   774,    26,  1135,   130,   131,  1090,  1091,  1092,  1041,   483,
-   714,  1058,   683,   676,  1270,   491,   715,    26,    18,   119,
-   120,   824,   199,  1360,  1362,    90,   736,   550,   677,  1135,
-  1425,  1426,  1366,   256,    92,  1135,   483,  1530,   432,   829,
-   705,    26,    -6,   130,   131,    95,    96,    97,   694,   349,
-   903,   906,   694,   709,   420,   423,   692,  1220,   703,   704,
-  1031,   199,    15,   199,   199,   731,   707,  1221,   692,   658,
-   755,   432,   491,  1531,  -578,  1404,   760,  -578,   668,   805,
-  1222,   806,  1287,    15,   420,   423,   807,  -415,   808,    59,
-   694,   658,   483,  1535,  1176,  1177,   694,   815,    98,    99,
-   816,   833,   692,   835,   692,   836,   691,   201,   199,   720,
-   224,   838,   916,   215,   216,  -415,  -415,   893,  1511,    14,
-  -415,   895,   788,   912,  -578,   916,  -578,  -578,   940,  -578,
-     8,     9,   829,   795,  1528,   941,   914,   224,   950,   694,
-  -578,    20,  -578,   224,   954,   349,   201,   972,   201,   201,
-    23,   256,   127,  1391,    58,  1135,    58,   951,  -578,  -578,
-   956,    20,   964,   253,    58,   965,   978,  1063,   692,   694,
-   691,   985,   794,  -578,   363,  1472,   691,  -298,   984,  1057,
-   695,   694,   130,   131,   453,   224,  1029,  1005,  1006,  1585,
-  1457,   432,  1462,   201,  1007,   692,   363,  1017,  1459,   999,
-  1012,  -830,    72,  1021,   130,   131,   522,  1028,  1032,   791,
-  1034,   769,  1036,  1495,  1094,   694,  1095,   694,  1347,  1099,
-   300,  1511,  1096,    10,  1097,   736,  1098,  1100,   522,  1101,
-  1339,   824,  1102,   155,  -140,   158,   158,   158,  1103,   796,
-   990,   770,   771,  1511,  1104,   801,  1106,   801,    18,  1107,
-  1243,  1338,  1064,  1071,  1109,   801,  1245,  1246,    21,  1110,
-  1243,  1248,  1113,   224,  1246,  1126,  1111,    59,  1112,  1129,
-  1610,  1138,  1128,   426,   427,   846,   155,   147,  1130,   903,
-   906,   694,  1131,  -183,   991,  1139,   691,   428,  1149,  1140,
-   691,    26,  1162,   992,   993,  1150,  1146,   429,   137,  -183,
-   788,  -183,  1155,  1511,  1165,    32,  1302,  1303,   694,  1168,
-   430,   795,  1456,  1169,  1456,  1192,  1215,   -52,  1225,   894,
-  1244,   692,   -52,  1249,   722,  1250,  1254,  1258,   691,  1263,
-   994,    72,   501,   -52,   691,  1264,  1302,  1303,   694,  1236,
-  1237,  1265,  1266,  1271,  1282,   523,  1286,  1273,  1025,  1026,
-   794,  1274,  1275,  1347,  1278,  1288,  1294,  1135,  1289,  1290,
-  1200,   209,   460,  1347,  1297,  1293,  1251,  1300,  1346,  -663,
-  1347,  1253,  1405,  1310,  1359,  1339,   221,   691,  1368,   829,
-    72,  1369,  1339,  1372,  1376,   528,  1338,   791,   960,   127,
-   128,   140,   140,  1398,   156,  1575,  1338,  1399,  1409,   977,
-  1410,  1419,  1420,  1338,  1421,  1422,  1135,   691,   420,   423,
-  1429,  1438,  -304,  1452,  1439,  1440,  1063,   796,   212,   691,
-   220,   589,   590,   591,   592,   593,   237,  -304,  1454,   129,
-   846,  -304,  1415,  1416,   694,    95,    96,    97,  1467,    26,
-    58,   130,   131,   155,   155,   155,  1519,  -304,  1470,  1514,
-  1491,  1492,  1493,   691,  1627,   691,  1521,  1515,  1655,  -304,
-  -304,   375,  -304,  1522,  -304,   224,    72,  1494,    95,   110,
-   111,  1499,  1529,   155,   155,   155,    72,  1551,  1561,  1571,
-   363,  1553,  1572,    72,  1587,  1596,   411,   413,    98,    99,
-  1597,  1603,  1605,  -304,  -304,   520,  1621,   116,   770,   771,
-  1608,  1064,   140,  1346,   116,   770,   771,   140,  -304,  1609,
-   156,   156,   156,  1346,   224,  1625,  1631,   692,  1632,   691,
-  1346,   112,   113,  1557,   773,  1588,  1635,  1638,  1347,  1347,
-  1557,   801,  1643,  1347,  1642,  1379,  1380,   212,  1389,  1390,
-  1339,  1392,  1647,   450,  1652,  1339,   691,   745,    26,   349,
-   119,   120,  1656,   745,   470,   470,   479,   119,   120,  1657,
-  1659,  1338,  1338,  1664,  1665,  1667,  1338,  1668,   692,    58,
-   220,   300,   394,   395,    10,  1347,   691,     1,   496,   220,
-  1481,  1482,   442,     5,  1347,   160,   221,  1339,  1526,  1172,
-   441,    95,   110,   111,   953,   745,  1339,   712,    95,   110,
-   111,  1626,   225,   226,   227,    95,   110,   111,  1338,    21,
-  1557,   439,   703,   704,  1068,   359,  1387,  1338,    58,   707,
-   140,   503,    26,  1311,    27,   319,    18,   409,  1415,  1416,
-   694,   228,   410,  1510,  1663,  1347,   297,  1408,   382,   383,
-   384,    72,    72,   297,   112,  1523,    72,  1339,  1164,   534,
-  1004,   112,   113,   493,   668,  1163,    32,   506,   112,  1525,
-   748,   749,     7,     8,     9,    10,  1370,   960,  1338,  1232,
-  1475,  1476,   691,   745,  1252,  1347,  1393,  1070,  1346,  1346,
-   943,   694,  1161,  1346,   486,   617,   880,  1339,    72,    26,
-   156,   386,   387,   390,  1465,  1356,  1641,    72,   153,  1600,
-    21,  1388,  1649,  1646,    58,  1471,  1388,  1648,  1338,   801,
-  1214,     8,     9,    26,    58,    27,    28,   199,     0,   199,
+   201,   256,  1640,   527,   502,   504,   127,   128,   201,   544,
+   885,   483,   714,   796,   158,   796,    26,   514,   130,   131,
+   886,   260,   545,   796,   546,   801,   116,   770,   771,   547,
+   772,   295,   529,   548,   887,   491,   715,   692,   567,   829,
+   349,    89,   530,   692,  1046,  1047,   592,   593,   656,  1479,
+   691,     8,     9,   773,  1078,  1411,   246,   691,   130,   131,
+   774,    90,  1135,   215,   216,  1425,  1426,   483,  1530,    14,
+   610,  1058,   683,   659,  1270,   129,   660,    26,    18,   119,
+   120,   824,   199,  1360,  1362,    26,   736,   550,  1446,  1135,
+   662,    20,  1366,   256,   663,  1135,   491,  1531,   432,   829,
+    23,    26,   664,   130,   131,    95,   110,   111,   694,   349,
+   903,   906,   694,   676,   420,   423,   692,  1220,   703,   704,
+  1031,   199,   677,   199,   199,    90,   707,  1221,   692,   658,
+    92,   432,   483,  1535,  -578,  1404,   705,  -578,   668,    -6,
+  1222,   709,  1287,    15,   420,   423,   731,  -415,   755,    59,
+   694,   658,   760,    15,  1176,  1177,   694,   805,   112,   113,
+   114,   806,   692,   807,   692,   808,   691,   201,   199,   815,
+   224,   816,   916,   833,   835,  -415,  -415,   836,  1511,   720,
+  -415,   893,   788,   838,  -578,   895,  -578,  -578,   914,  -578,
+   127,  1391,   829,   795,  1528,   912,   916,   224,   940,   694,
+  -578,   941,  -578,   224,   950,   349,   201,   972,   201,   201,
+   951,   256,   954,   956,    58,  1135,    58,    20,  -578,  -578,
+   964,   965,  -298,   253,    58,   978,   984,  1063,   692,   694,
+   691,   985,   794,  -578,   363,  1472,   691,   453,  1005,  1057,
+   695,   694,   130,   131,  1006,   224,  1007,  1012,  -830,  1585,
+  1457,   432,  1462,   201,  1021,   692,    15,  1017,  1459,   999,
+  -415,  1028,    72,   214,   215,   216,   522,   -52,  1032,   791,
+    14,   769,   -52,  1495,  1029,   694,  1034,   694,  1347,   127,
+   128,  1511,   501,   -52,  1036,   736,  1094,    18,  -415,  -415,
+  1339,   824,    20,   155,  1099,   158,   158,   158,  1100,   796,
+  1095,    23,  1096,  1511,  1097,   801,  1098,   801,  1101,  1102,
+  1243,  1338,  1064,  1071,  1103,   801,  1245,  1246,  1104,   129,
+  1243,  1248,  -140,   224,  1246,  1106,  1107,    59,  1109,    26,
+  1610,   130,   131,  1110,  1111,   846,   155,   147,  1112,   903,
+   906,   694,  1113,  1126,  1130,  1129,   691,  1128,  1131,  1138,
+   691,  1139,  1149,  1140,     8,     9,  1146,  1162,    12,    13,
+   788,  1150,  1155,  1511,    14,  1169,  1302,  1303,   694,  1165,
+  1192,   795,  1456,  1168,  1456,  1244,  1215,  1225,    16,   894,
+    17,   692,  1249,  1250,   722,  1254,    20,  1258,   691,  1263,
+  1264,    72,  1265,  1266,   691,    23,  1302,  1303,   694,  1236,
+  1237,  1271,  1273,  1274,    26,   523,   130,   131,  1025,  1026,
+   794,  1275,  1278,  1347,  1286,  1297,  1288,  1135,  1282,  1200,
+  1294,   209,  1289,  1347,   460,  1290,  1251,  1293,  1346,  -663,
+  1347,  1253,   127,   128,  1300,  1339,   221,   691,  1310,   829,
+    72,  1359,  1339,   879,  1368,   528,  1338,   791,   960,  1369,
+  1372,   140,   140,  1376,   156,  1575,  1338,  1398,  1405,   977,
+  1399,  1410,  1409,  1338,  1419,  1420,  1135,   691,   420,   423,
+  1421,  1429,  -304,  1422,  1438,  1439,  1063,   796,   212,   691,
+   220,  1452,    26,  1440,   130,   131,   237,  -304,  1470,  1454,
+   846,  -304,  1415,  1416,   694,   382,   383,   384,   529,  1467,
+    58,  1491,  1492,   155,   155,   155,  1493,  -304,   530,  1494,
+  1499,  1514,  1515,   691,  1627,   691,  1519,  1521,  1655,  -304,
+  -304,  1522,  -304,   375,  -304,   224,    72,  1529,    95,   110,
+   111,   513,  1553,   155,   155,   155,    72,  1551,  1561,  1571,
+   385,  1572,  1596,    72,  1587,  1597,   411,   413,   386,   387,
+  1603,  1605,  1608,  -304,  -304,   520,  1609,   116,   117,   118,
+  1621,  1064,   140,  1346,  1625,  1631,    21,   140,  -304,  1632,
+   156,   156,   156,  1346,   224,  1638,  1642,   692,  1635,   691,
+  1346,   112,   113,  1557,  1643,  1588,  1647,  1657,  1347,  1347,
+  1557,   801,  1652,  1347,  1656,  1379,  1380,   212,  1389,  1390,
+  1339,  1392,  1659,   450,  1664,  1339,   691,   745,    26,   349,
+   119,   120,  1665,   745,   470,   470,   479,  1667,  1668,     1,
+   442,  1338,  1338,     5,   160,  1526,  1338,   953,   692,    58,
+   220,   300,   394,   395,    10,  1347,   691,  1172,   496,   220,
+  1481,  1482,   441,   712,  1347,   439,   221,  1339,  1626,  1068,
+  1311,    95,   414,   415,   359,   745,  1339,   409,    95,   110,
+   111,  1663,   225,   226,   227,    95,    96,    97,  1338,    21,
+  1557,   503,   703,   704,  1510,   534,  1387,  1338,    58,   707,
+   140,  1408,    26,  1163,    27,   319,    18,  1164,  1415,  1416,
+   694,   228,   410,  1004,   506,  1347,   297,  1370,   382,   383,
+   384,    72,    72,   297,    98,   113,    72,  1339,  1232,  1252,
+   363,   112,   113,   493,   668,  1070,    32,  1161,    98,    99,
+   748,   749,     7,     8,     9,    10,  1393,   960,  1338,   943,
+  1475,  1476,   691,   745,   880,  1347,   486,   617,  1346,  1346,
+   390,   694,  1649,  1346,    95,    96,    97,  1339,    72,    26,
+   156,   386,   387,  1465,  1641,  1356,  1600,    72,   153,  1646,
+    21,  1388,     0,  1648,    58,  1214,  1388,     0,  1338,   801,
+    95,   110,   111,    26,    58,    27,    28,   199,  1471,   199,
      0,    58,     0,   297,     0,  1346,   155,   158,     0,   193,
-   366,   370,     0,     0,  1346,     0,     0,     0,    18,   194,
-    95,   110,   111,     0,   665,   666,   667,    32,    72,     0,
+   366,   370,     0,     0,  1346,     0,     0,    98,    99,   194,
+   116,   770,   771,     0,     0,     0,     0,    32,    72,     0,
      0,     0,   195,     0,     0,     8,     9,     0,     0,     0,
-   519,    26,     0,   130,   131,     0,   212,   220,     0,     0,
-   158,     0,     0,  1542,  1543,  1544,     0,  1220,     0,  1030,
-   140,  1611,    18,   140,     0,  1346,     0,  1221,    72,   156,
-   156,   156,     0,   112,   113,   140,     0,   155,   155,   155,
-  1222,     0,   201,  1460,   201,    26,     0,   130,   131,   300,
-   394,   395,    10,  1269,     0,   421,   424,   214,   215,   216,
-  1079,  1220,     0,     0,    14,  1346,  1084,     0,     0,     0,
-     0,  1221,   470,  1577,  1578,   470,     0,   479,   479,   479,
-     0,    18,     0,   450,  1222,     0,    20,    21,     0,   470,
-   496,   220,     0,     0,   450,    23,     0,     0,   496,     0,
+   519,     0,     0,   112,   113,     0,   212,   220,     0,     0,
+   158,     0,     0,  1542,  1543,  1544,    95,   110,   111,  1030,
+   140,  1611,    18,   140,     0,  1346,     0,     0,    72,   156,
+   156,   156,     0,   119,   120,   140,     0,   155,   155,   155,
+     0,     0,   201,  1460,   201,    26,     0,   130,   131,   300,
+   394,   395,    10,  1269,     0,   421,   424,     0,     0,     0,
+  1079,  1220,     0,     0,     0,  1346,  1084,     0,     0,   112,
+  1523,  1221,   470,  1577,  1578,   470,     0,   479,   479,   479,
+     0,     0,     0,   450,  1222,     0,   596,    21,     0,   470,
+   496,   220,     0,     0,   450,    95,   110,   111,   496,     0,
    153,     0,    27,   319,     0,     0,     0,     0,   691,     0,
-   699,   450,     0,     0,   295,   745,   214,   215,   216,    58,
-    58,   295,     0,    14,    58,   585,   586,   587,   588,   589,
-   590,   591,   592,   593,    32,     0,     0,     0,   156,     0,
-    18,   156,   596,     0,  1628,    20,  1316,     0,     0,     0,
+     0,   450,     0,     0,   295,   745,   214,   215,   216,    58,
+    58,   295,     0,    14,    58,   597,   598,     0,     0,     0,
+   599,   600,   601,   602,    32,     0,     0,     0,   156,     0,
+    18,   156,     0,     0,  1628,    20,  1316,     0,   112,  1525,
      0,     0,  1269,     0,    23,   728,   156,   156,   156,   691,
-     0,     0,   734,     0,   745,     0,    58,     0,     0,   938,
+     0,     0,   734,     0,   745,     0,    58,     0,     0,   699,
    199,   156,  1141,     0,  1142,    58,   689,   158,   158,   158,
-     0,   597,   598,     0,     0,     0,   599,   600,   601,   602,
-     0,     0,   558,     0,   127,   128,     0,     0,     0,    13,
+   582,   583,   584,   585,   586,   587,   588,   589,   590,   591,
+   592,   593,   558,     0,   127,   128,     0,     0,     0,    13,
      0,   295,     0,   300,   394,   395,    10,   158,   158,   158,
      0,   127,   128,     0,   542,   543,   339,     0,   339,     0,
    339,    18,   902,   902,     0,   909,    58,     0,     0,   821,
@@ -1606,13 +1606,13 @@ static const short yytable[] = {    59,
      0,   212,     0,   220,   237,   875,     0,   623,     0,     0,
    624,   625,     7,     8,   250,    10,     0,     0,    95,    96,
     97,    21,   225,   226,   227,     0,     0,     0,   251,     0,
-   258,     0,     0,     0,     0,     0,    27,   319,   730,     0,
+   258,   589,   590,   591,   592,   593,    27,   319,   730,     0,
      0,     0,   932,     0,   421,   706,    18,   220,     0,     0,
     21,   228,     0,  1259,   258,  1261,     0,   251,     0,   470,
    470,   479,   479,   479,     0,    27,    28,   470,    32,    26,
      0,    98,    99,   229,     0,   496,     0,     0,   450,     0,
      0,  1506,     0,   258,     0,     0,     0,     0,     0,   252,
-     0,     0,   421,   424,   258,     0,     0,    32,   214,   215,
+     0,     0,   421,   424,   258,     0,     0,    32,   494,   215,
    216,     0,     0,  1524,  1527,    14,     0,   212,   689,     0,
    558,  1292,     0,   558,     0,   689,     0,   826,   230,   231,
    232,     0,    18,     0,     0,     0,     0,    20,     0,     0,
@@ -1632,12 +1632,12 @@ static const short yytable[] = {    59,
      9,     0,    32,     0,   623,     0,     0,   968,   625,     0,
    469,     0,   237,     0,     0,     0,     0,  1175,  1175,  1181,
      0,  1114,  1115,   488,     0,     0,    18,  1120,   689,     0,
-   494,   215,   216,     0,   689,     0,     0,    14,   725,   729,
+   214,   215,   216,     0,   689,     0,     0,    14,   725,   729,
      0,  1132,   620,  1133,   258,  1134,   729,     0,     0,    26,
      0,   130,   131,     0,    18,     7,   127,   128,    10,    20,
      0,     0,  1181,     0,     0,  1500,     0,     0,    23,     0,
      0,     0,     0,     0,     0,  1501,  1223,  1223,  1223,   339,
-     0,     0,     0,     0,     0,   623,     0,     0,  1502,   625,
+     0,     0,     0,   938,     0,   623,     0,     0,  1502,   625,
      0,     0,     0,    21,  1167,     0,     0,   450,   450,     0,
    251,     0,   258,  1487,  1488,     0,   421,   706,    27,    28,
      0,     0,   339,   729,     0,     0,     0,     0,     0,     0,
@@ -1649,7 +1649,7 @@ static const short yytable[] = {    59,
    872,   873,    21,   729,     0,     0,     0,     0,   927,   729,
   1538,  1539,     0,     0,     0,    26,   689,    27,    28,     0,
      0,  1235,   689,  1056,     0,   258,  1549,  1550,   127,   128,
-  1124,   193,  1148,  1148,   928,     0,     0,     0,     0,   729,
+     0,   193,  1148,  1148,   928,     0,     0,     0,     0,   729,
      0,   194,     0,     0,     0,     0,   729,     0,     0,    32,
      0,   258,     0,     0,   195,     0,     0,  1175,  1175,  1301,
   1301,  1181,     0,   727,     0,   689,  1175,   558,   945,   947,
@@ -1660,8 +1660,8 @@ static const short yytable[] = {    59,
    551,   552,     0,     0,   623,     0,     0,   624,   625,     0,
      0,     0,     0,   450,   450,     0,   450,   450,     0,   450,
    756,     0,   725,     0,     0,   762,     0,   727,   258,     0,
-     0,   689,     0,   689,   587,   588,   589,   590,   591,   592,
-   593,     0,     0,   153,   258,     0,     0,     0,     0,     0,
+     0,   689,     0,   689,   585,   586,   587,   588,   589,   590,
+   591,   592,   593,   153,   258,     0,     0,     0,     0,     0,
    803,     0,     0,     0,     0,     0,   809,     0,  1312,     0,
   1313,     0,  1314,     0,     0,     0,     0,  1227,   817,   818,
      0,   819,     0,  1175,  1175,  1301,  1301,  1181,     0,     0,
@@ -1670,7 +1670,7 @@ static const short yytable[] = {    59,
      0,     0,     0,   339,   339,   611,   339,   300,   394,   395,
     10,     0,   612,     0,     0,     0,    18,   212,   220,     0,
      0,   729,     0,   727,   689,     0,    21,     0,     0,     0,
-   727,     0,     0,     0,     0,     0,     0,     0,     0,    26,
+   727,   587,   588,   589,   590,   591,   592,   593,     0,    26,
      0,    27,    28,  1105,     0,    21,     0,     0,   450,   450,
      0,     0,   613,     0,   689,    30,     0,     0,    26,     0,
     27,   319,  1414,   258,     0,    31,   917,   918,     0,     0,
@@ -1684,25 +1684,25 @@ static const short yytable[] = {    59,
      0,    80,     0,   558,     0,     0,     0,     0,   729,   238,
    689,   450,   450,   450,   421,   424,   104,     0,     0,     0,
      0,     0,     0,   339,     0,     0,     0,   262,   104,     0,
-     0,  1503,  1503,  1552,     0,     0,  1186,     0,     0,     0,
-     0,     0,     0,     0,   421,  1358,   551,   552,     0,     0,
+     0,  1503,  1503,  1552,     0,     0,  1186,     0,     7,     8,
+     9,    10,     0,     0,   421,  1358,   551,   552,     0,     0,
    104,     0,   729,  1027,     0,     0,  1400,  1401,  1402,  1403,
      0,     0,     0,   479,   479,   479,     0,     0,     0,   729,
-     0,   450,   450,     0,     0,   727,     0,     0,   133,     0,
-    80,     0,     0,     0,   144,   144,     0,     0,     0,   412,
-   144,     0,     0,   144,   144,   144,     0,     0,     0,   258,
+     0,   450,   450,     0,     0,   727,    21,     0,   133,     0,
+    80,     0,     0,   251,   144,   144,     0,     0,     0,   412,
+   144,    27,    28,   144,   144,   144,     0,     0,     0,   258,
      0,   258,     0,     0,     0,     0,     0,     0,     0,    80,
-  1086,     0,  1088,    80,  1242,     0,     0,     0,     0,   203,
-    80,     0,     8,     9,  1442,     0,    12,    13,     0,   727,
-   727,     0,    14,     0,     0,   727,     0,   203,   203,   203,
-   421,   706,   450,   258,     0,     0,    16,     0,    17,   727,
-     0,   727,     0,   727,    20,     0,     0,     0,     0,     0,
-     0,     0,     0,    23,   725,   725,   203,     0,  1272,     0,
-     0,     0,    26,     0,   130,   131,   563,     0,     0,     0,
+  1086,     0,  1088,    80,  1242,   252,     0,     0,     0,   203,
+    80,     0,     0,    32,  1442,     0,     0,     0,     0,   727,
+   727,     0,     0,     0,     0,   727,     0,   203,   203,   203,
+   421,   706,   450,   258,     0,     0,     0,     0,     0,   727,
+     0,   727,     0,   727,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,   725,   725,   203,     0,  1272,     0,
+     0,     0,     0,     0,     0,     0,   563,     0,     0,     0,
      0,     0,     0,   505,  1122,  1123,     0,  1125,   339,     0,
      0,     0,   104,     0,     7,     8,     9,    10,     0,  1496,
     13,     0,   727,   144,     0,     0,   689,     0,     0,     0,
-     0,   879,     0,     0,   904,   907,     0,     0,  1144,     0,
+     0,     0,     0,     0,   904,   907,     0,     0,  1144,     0,
      0,     0,    18,     0,     0,     0,     0,     0,     0,     0,
      0,     0,    21,     0,     0,   258,  1520,     0,   620,     0,
      0,   104,   531,     0,     0,    26,   727,    27,    28,     0,
@@ -1720,20 +1720,20 @@ static const short yytable[] = {    59,
     32,     0,     0,   144,     0,   195,   144,     0,   421,  1358,
    551,   552,    20,     0,     0,     0,     0,     0,   144,     0,
      0,    23,     0,   620,     0,  1437,    80,     0,  1555,     0,
-    26,     0,   130,   131,   582,   583,   584,   585,   586,   587,
-   588,   589,   590,   591,   592,   593,   621,  1630,     0,     0,
+    26,     0,   130,   131,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,   621,  1630,     0,     0,
      0,     0,     0,     0,   203,   203,   622,   258,   203,     0,
    203,   203,   203,   753,     0,   725,   623,   203,  1645,   631,
    625,     0,   203,     0,     0,   203,     0,   853,  1291,     0,
      0,  1480,     0,     0,     0,     0,   727,     0,   727,     0,
    727,     0,    80,     0,     0,     0,   300,   127,   128,    10,
-     0,     0,    13,   725,     0,     0,     0,     7,     8,     9,
+     0,     0,    13,   725,     0,     0,     0,   300,     8,     9,
     10,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,  1309,    18,     0,     0,     0,     0,   104,
    104,   104,   104,     0,    21,     0,  1136,     0,     0,  1137,
    620,     0,     0,     0,     0,    21,     0,    26,     0,    27,
    319,  1143,   251,     0,     0,   904,   907,     0,     0,   729,
-    27,    28,     0,  1151,     0,     0,     0,     0,     0,     0,
+    27,   319,     0,  1151,     0,     0,     0,     0,     0,     0,
      8,     9,     0,  1152,    12,    13,  1540,  1541,     0,     0,
     14,    32,     0,   623,   252,     0,  1153,   625,     0,   104,
    727,   531,    32,  1396,    16,     0,    17,  1397,     0,   904,
@@ -1776,21 +1776,21 @@ static const short yytable[] = {    59,
      0,   251,     0,   106,     0,     0,     0,   472,   475,    27,
    319,     0,   126,   134,     0,     0,     0,     0,     0,   145,
    145,     0,   145,     0,    83,   300,   127,   128,    10,     0,
-     0,    83,     0,   252,     0,  1183,     0,     0,     0,     0,
+     0,    83,     0,   522,     0,  1183,     0,     0,     0,     0,
      0,    32,     0,     0,   145,     0,    83,     0,   104,   753,
    753,   753,     0,    18,   239,     0,     0,     0,     0,     0,
      0,   248,     0,    21,     0,   104,     0,     0,  1065,   620,
      0,     0,     0,   248,     0,     0,    26,   104,    27,   319,
-     0,     0,     0,   300,     8,     9,    10,     0,  1136,  1137,
+     0,     0,     0,     0,     0,     0,     0,     0,  1136,  1137,
   1247,  1143,  1151,     0,     0,     0,     0,     0,    80,     0,
      0,     0,  1152,     0,     0,     0,     0,     0,     0,     0,
-    32,   104,   623,   104,     0,  1153,   625,     0,     0,     0,
-     0,    21,     0,     0,     0,    83,     0,     0,   251,   145,
-   145,     0,     0,     0,     0,   145,    27,   319,   145,   145,
-   145,   104,     0,     0,     0,     0,   531,   531,     0,   531,
-     0,     0,     0,     0,    83,     0,     0,     0,    83,     0,
-   522,     0,     0,     0,   145,    83,     0,     0,    32,     0,
-     0,     0,   531,   904,   907,   531,   531,   634,     0,     0,
+    32,   104,   623,   104,     0,  1153,   625,     0,     8,     9,
+     0,   167,    12,    13,     0,    83,     0,     0,    14,   145,
+   145,     0,     0,     0,     0,   145,     0,     0,   145,   145,
+   145,   104,    16,     0,    17,    18,   531,   531,     0,   531,
+    20,     0,     0,     0,    83,     0,     0,     0,    83,   682,
+     0,     0,   168,     0,   145,    83,     0,     0,    26,     0,
+   130,   131,   531,   904,   907,   531,   531,   634,     0,     0,
      0,     0,   145,   145,   145,     7,     8,     9,    10,   167,
     12,    13,     0,     0,     0,     0,    14,     0,     0,   203,
    203,   203,   203,   203,  1183,   753,     0,     0,     0,   203,
@@ -2089,16 +2089,16 @@ static const short yytable[] = {    59,
   1461,     0,     0,   970,   970,   970,  1184,  1184,  1184,  1307,
      0,     0,   908,   970,    78,     0,     0,     0,     0,   908,
      0,     0,     0,     0,     0,     0,     7,   127,   128,    10,
-     0,     0,     7,     8,     9,    10,  1184,  1184,  1184,     0,
+     0,     0,     7,   127,   128,    10,  1184,  1184,  1184,     0,
    257,   261,     0,     0,     0,     0,     0,     0,   754,   754,
    754,   754,     0,     0,    18,     0,   202,     0,     0,   102,
     18,     0,     0,     0,    21,     0,     0,     0,   121,   102,
     21,     0,   204,     0,     0,   102,   102,    26,   102,    27,
     28,     0,     0,    26,     0,    27,    28,     0,     0,     0,
-     0,     0,     0,    30,     0,   202,     0,   202,   202,   476,
-     0,     0,     0,    31,     0,     0,     0,     0,     0,   477,
-   235,    32,     0,     0,     0,     0,    33,    32,     0,     0,
-     0,     0,   478,     0,     0,     0,     0,     0,   688,  1307,
+     0,     0,     0,   149,     0,   202,     0,   202,   202,    30,
+     0,     0,     0,   150,     0,     0,     0,     0,     0,    31,
+   235,    32,     0,     0,     0,     0,   151,    32,     0,     0,
+     0,     0,    33,     0,     0,     0,     0,     0,   688,  1307,
    970,   970,  1307,  1307,  1307,     0,     0,   970,     0,     0,
      0,     0,   202,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,   202,   202,   202,   202,   202,   487,
@@ -2130,16 +2130,16 @@ static const short yytable[] = {    59,
      0,     0,  1217,     0,     0,     0,     0,  1182,     0,     0,
      0,     0,  1228,     0,     0,     0,     0,     0,     0,   735,
      0,   202,   202,   202,     0,     0,     0,     0,   102,     0,
-     0,   735,     7,     8,     9,    10,   300,     8,     9,    10,
+     0,   735,     7,     8,     9,    10,     7,     8,     9,    10,
    202,     0,     0,     0,     0,     0,     0,   102,     0,     0,
      0,     0,     0,     0,   102,     0,     0,   102,     0,     0,
     18,   487,     0,     0,    18,   735,     0,   735,     0,   102,
     21,     0,     0,     0,    21,     0,     0,     0,     0,     0,
      0,   626,   626,    26,   626,    27,    28,    26,     0,    27,
-   319,   926,     0,     0,     0,  1277,     0,     0,     0,   193,
-     0,     0,     0,   750,     0,     0,     0,     0,     0,   194,
-     0,     0,     0,   751,     0,     0,     0,    32,     0,     0,
-     0,    32,   195,     0,     0,     0,   752,     0,     0,     0,
+    28,   926,     0,     0,     0,  1277,     0,     0,     0,   476,
+     0,     0,     0,   193,     0,     0,     0,     0,     0,   477,
+     0,     0,     0,   194,     0,     0,     0,    32,     0,     0,
+     0,    32,   478,     0,     0,     0,   195,     0,     0,     0,
      0,   908,     0,     0,     0,     0,     0,     0,     0,     0,
    102,     0,   775,     0,     0,     0,     0,     0,     0,   626,
    257,   626,   626,     0,   626,     0,     0,     0,   908,   300,
@@ -2149,47 +2149,47 @@ static const short yytable[] = {    59,
      0,     0,    20,     0,     0,     0,   626,    21,     0,     0,
      0,    23,     0,   620,  1182,  1182,  1182,     0,     0,     0,
     26,     0,    27,   319,     0,     0,   202,   202,   202,   202,
-     0,     0,     0,     0,     0,     0,  1304,     0,     0,  1381,
-   127,   128,    10,     0,     0,     0,  1305,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,  1304,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,  1305,     0,     0,     0,
    202,     0,   102,     0,    32,     0,   623,     0,     0,  1306,
    625,     0,     0,   102,   102,     0,   102,   102,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,    21,     0,     7,
-     8,     9,    10,     0,     0,     0,     0,     0,     0,     0,
-    26,     0,    27,    28,   908,     0,     0,     0,  1383,   626,
-     0,     0,     0,     0,     0,     0,    30,   202,   202,   202,
-   202,   202,  1182,     0,     0,   202,    31,    21,     0,   102,
-     0,     0,     0,     0,    32,     0,   102,   121,     0,    33,
-    26,     0,    27,    28,     0,     0,  1455,     0,   235,     0,
-     0,     0,     0,     0,     0,     0,   193,     0,     0,     0,
-     0,   202,  1217,   202,     0,     0,   194,     0,     0,     0,
-     0,     0,   775,     0,    32,     0,     0,    18,     0,   195,
-     0,     0,   626,   626,     0,     0,   626,     0,     0,   626,
-     0,     0,     0,     0,     0,     0,     0,     0,   626,     0,
-     0,     0,   926,   926,   926,     0,     0,     0,   626,   572,
-   573,   574,   575,   576,   577,   578,   579,   580,   581,   582,
-   583,   584,   585,   586,   587,   588,   589,   590,   591,   592,
-   593,   202,   202,  1308,   202,     0,     0,   775,     0,     0,
+     8,     9,     0,     0,     0,    13,     0,     0,   300,     8,
+     9,    10,     0,     0,     0,     0,     0,     0,     0,     0,
+  1381,   127,   128,    10,   908,     0,     0,    18,     0,   626,
+     0,     0,     0,     0,     0,     0,    18,   202,   202,   202,
+   202,   202,  1182,   620,     0,   202,    21,     0,     0,   102,
+    26,     0,   130,   131,     0,     0,   102,   121,    21,    26,
+     0,    27,   319,     0,     0,     0,  1500,     0,   235,     0,
+     0,    26,     0,    27,    28,   750,  1501,     0,     0,  1383,
+     0,   202,  1217,   202,     0,   751,   623,    30,     0,  1502,
+   625,     0,   775,    32,     0,     0,     0,    31,   752,     0,
+     0,     0,   626,   626,     0,    32,   626,     0,     0,   626,
+    33,     0,     0,     0,     0,     0,     0,     0,   626,     0,
+     0,     0,   926,   926,   926,     0,     0,     0,   626,     0,
+     0,     0,     0,     7,     8,     9,    10,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,   202,   202,  1308,   202,     0,     0,   775,     0,     0,
    102,     0,     0,     0,     0,     0,   626,   626,   626,     0,
-     0,     0,   783,     0,     7,     8,   784,    10,   167,    12,
-    13,     0,     0,     0,     0,    14,     0,     0,     0,     0,
-     0,     0,   102,   102,   102,     0,     0,  1182,     0,    16,
-     0,    17,    18,    19,   102,     0,     0,    20,  -526,     0,
-     0,   926,    21,     0,     0,     0,    23,   785,     0,   168,
-   908,     0,     0,     0,     0,    26,     0,    27,    28,     0,
+     0,    21,   783,     0,     7,     8,   784,    10,   167,    12,
+    13,     0,     0,     0,    26,    14,    27,    28,     0,     0,
+  1455,     0,   102,   102,   102,     0,     0,  1182,     0,    16,
+   193,    17,    18,    19,   102,     0,     0,    20,  -526,     0,
+   194,   926,    21,     0,     0,     0,    23,   785,    32,   168,
+   908,     0,     0,   195,     0,    26,     0,    27,    28,     0,
      0,   786,     0,   787,     0,     0,   202,   202,  1182,   202,
      0,    30,     0,     0,     0,     0,     0,     0,     0,     0,
      0,    31,   562,     0,     0,     0,     0,     0,     0,    32,
      0,     0,     0,     0,    33,     0,     0,     0,  1182,  1182,
-  1182,   688,     0,     0,     8,     9,     0,   102,   102,    13,
+  1182,   688,     0,     0,     0,     0,     0,   102,   102,     0,
   -526,   102,     0,     0,   102,     0,     0,     0,   202,     0,
      0,     0,     0,   102,   202,     0,     0,     0,     0,     0,
-     0,    18,     0,   102,     0,     7,     8,     9,    10,   167,
-    12,    13,     0,     0,  1016,     0,    14,   620,     0,     0,
-     0,     0,     0,     0,    26,     0,   130,   131,     0,     0,
+     0,     0,     0,   102,     0,     7,     8,     9,    10,   167,
+    12,    13,     0,     0,  1016,     0,    14,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     16,     0,    17,    18,     0,     0,     0,     0,    20,     0,
-  1500,     0,     0,    21,     0,     0,     0,    23,   626,     0,
-  1501,   626,   626,   626,     0,     0,    26,     0,    27,    28,
-   623,     0,     0,  1502,   625,     0,     0,     0,     0,     0,
+     0,     0,     0,    21,     0,     0,     0,    23,   626,     0,
+     0,   626,   626,   626,     0,     0,    26,     0,    27,    28,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,    30,     0,     0,   626,   626,   626,   626,   626,
    626,   626,    31,     0,   852,   626,   300,     8,     9,    10,
     32,    12,   536,   302,   303,    33,   304,    14,     0,     0,
@@ -2622,229 +2622,229 @@ static const short yytable[] = {    59,
      0,     0,     0,     0,     0,     0,    31,     0,     0,    16,
      0,    17,    18,     0,    32,     0,     0,    20,     0,    33,
      0,     0,    21,     0,     0,     0,    23,     0,     0,     0,
-     0,     0,     0,     0,     0,    26,     0,    27,    28,     8,
-     9,     0,   167,    12,    13,     0,     0,     0,     0,    14,
+     0,     0,     0,     0,     0,    26,     0,    27,    28,     0,
+     0,     0,     0,    18,     0,     0,     0,     0,     0,     0,
      0,    30,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,    31,     0,    16,     0,    17,    18,     0,     0,    32,
-     0,    20,     0,     0,    33,     0,     0,     0,     0,     0,
-   682,     0,     0,   168,     0,     0,     0,     0,     0,    26,
-     0,   130,   131,   572,   573,   574,   575,   576,   577,   578,
-   579,   580,   581,   582,   583,   584,   585,   586,   587,   588,
-   589,   590,   591,   592,   593,   572,   573,   574,   575,   576,
-   577,   578,   579,   580,   581,   582,   583,   584,   585,   586,
-   587,   588,   589,   590,   591,   592,   593,     0,     0,     0,
-     0,  1267,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   661,     0,     0,  1604,
-   572,   573,   574,   575,   576,   577,   578,   579,   580,   581,
-   582,   583,   584,   585,   586,   587,   588,   589,   590,   591,
-   592,   593,  1598,   572,   573,   574,   575,   576,   577,   578,
-   579,   580,   581,   582,   583,   584,   585,   586,   587,   588,
-   589,   590,   591,   592,   593,   572,   573,   574,   575,   576,
+     0,    31,     0,     0,     0,     0,     0,     0,     0,    32,
+     0,     0,     0,     0,    33,   572,   573,   574,   575,   576,
    577,   578,   579,   580,   581,   582,   583,   584,   585,   586,
    587,   588,   589,   590,   591,   592,   593,   572,   573,   574,
-   575,   576,   577,   578,   579,   580,   581,   582,   583,     0,
-   585,   586,   587,   588,   589,   590,   591,   592,   593,   576,
-   577,   578,   579,   580,   581,   582,   583,   584,   585,   586,
-   587,   588,   589,   590,   591,   592,   593,   577,   578,   579,
-   580,   581,   582,   583,   584,   585,   586,   587,   588,   589,
-   590,   591,   592,   593
+   575,   576,   577,   578,   579,   580,   581,   582,   583,   584,
+   585,   586,   587,   588,   589,   590,   591,   592,   593,   572,
+   573,   574,   575,   576,   577,   578,   579,   580,   581,   582,
+   583,   584,   585,   586,   587,   588,   589,   590,   591,   592,
+   593,     0,     0,     0,     0,  1267,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+   661,     0,     0,  1604,   572,   573,   574,   575,   576,   577,
+   578,   579,   580,   581,   582,   583,   584,   585,   586,   587,
+   588,   589,   590,   591,   592,   593,  1598,   572,   573,   574,
+   575,   576,   577,   578,   579,   580,   581,   582,   583,   584,
+   585,   586,   587,   588,   589,   590,   591,   592,   593,   572,
+   573,   574,   575,   576,   577,   578,   579,   580,   581,   582,
+   583,   584,   585,   586,   587,   588,   589,   590,   591,   592,
+   593,   572,   573,   574,   575,   576,   577,   578,   579,   580,
+   581,   582,   583,     0,   585,   586,   587,   588,   589,   590,
+   591,   592,   593,   576,   577,   578,   579,   580,   581,   582,
+   583,   584,   585,   586,   587,   588,   589,   590,   591,   592,
+   593,   577,   578,   579,   580,   581,   582,   583,   584,   585,
+   586,   587,   588,   589,   590,   591,   592,   593
 };
 
 static const short yycheck[] = {     4,
    175,   174,    55,   349,    62,   149,   150,   161,   176,   402,
-    23,     4,   507,   485,   718,   355,   251,   209,   402,   126,
-   304,   305,    90,   880,    92,    14,   156,    84,    80,   355,
-    35,   700,     4,   133,     4,   402,   788,    42,   790,    42,
-   133,   134,    35,     4,   356,   357,   798,    42,   567,   134,
-   604,    42,    57,   337,   440,   247,  1236,  1237,   124,   647,
-   693,  1423,   243,    35,  1338,    35,  1514,    72,    59,   137,
-    42,   373,    42,  1253,    35,    54,  1513,  1537,    42,    84,
-    42,    42,   140,    88,   209,    90,    12,    92,   217,   218,
-    59,    11,   144,   218,    83,    47,   408,   409,   156,  1559,
-    47,  1348,   107,   108,   296,    11,   468,     0,  1355,    11,
-  1515,     1,     4,   701,    60,    33,    59,   106,   804,   455,
-   355,     9,   175,  1560,   810,    54,     0,   493,    60,    37,
-    74,   136,   137,    59,   139,    74,    62,     1,    30,    31,
-   109,    93,    62,    35,   510,    74,    93,    94,    27,     4,
-    42,   203,    31,   625,   212,    58,   108,   349,    80,  1619,
-   165,   108,   220,   109,   169,   108,   169,    12,    58,    47,
-   165,   176,    57,    61,   169,   136,   155,   109,   169,   237,
-    35,    60,   348,   349,   350,    64,     1,    42,   108,    48,
-  1595,   109,    84,   539,    58,    98,  1644,   169,    62,   169,
-  1380,   109,   108,    74,   165,   169,   108,   169,   169,  1389,
-  1390,    59,  1392,    59,    59,    93,    94,    62,   209,    46,
-    60,   200,   717,  1660,    54,   561,   217,   218,    47,    38,
-   109,    95,    62,    47,   920,    60,    47,    59,  1600,    25,
-  1514,    27,    93,    58,   136,    54,   346,    62,   460,    76,
-    25,   136,    27,   346,     4,     5,   247,   149,   150,   248,
-   108,    74,   108,   108,     3,     4,     5,   936,     4,   109,
-   939,  1518,    58,   165,    93,    94,    62,   169,    33,    93,
-    95,   136,    93,    58,   109,   342,   108,    62,    47,   108,
-   358,   176,   297,    54,   448,  1563,    47,   108,    48,    35,
-    93,   193,   194,    93,   644,   296,    56,    57,   393,    95,
-   165,   980,   981,    74,   169,    93,   683,    56,    57,   385,
-    95,    31,  1569,    47,   329,   879,   712,   713,   961,    47,
-    80,    47,   476,   477,    93,    94,   648,   342,    60,    25,
-   262,    80,    93,    94,  1612,   350,    64,   740,    64,   479,
-     4,   404,    60,   358,   359,  1041,   740,   108,   349,    47,
-   489,   490,    47,  1543,  1544,   490,   355,  1053,   497,    93,
-    94,   673,    58,  1620,   107,    93,    62,    93,   613,     4,
-   509,    35,    47,   719,   108,     4,   213,    58,    42,    25,
-   736,    54,   450,    64,   149,   150,   151,   402,   359,   528,
-   405,  1087,    75,  1089,    77,    93,    94,    55,    93,    95,
-    35,    74,   470,    47,    47,   406,    35,     8,     9,  1276,
-    25,   479,    27,    14,     3,     4,     5,     6,    93,    94,
-    84,   141,   402,   501,     4,     5,   146,   442,   496,   442,
-   195,     4,   804,   108,  1032,    36,   965,   442,   810,   921,
-   342,   442,    31,    58,    45,   182,    47,    62,    44,    93,
-    93,    58,    41,   468,    59,    62,   534,   359,    54,     4,
-     5,    57,    35,    47,   359,    54,    54,    56,    57,    42,
-    75,   442,   136,    25,   194,    27,    56,    57,  1157,  1158,
-    95,    70,    55,    62,    57,    31,   501,    62,   489,   490,
-  1252,    80,    93,   508,   359,    74,   497,    12,   820,    88,
-   402,   165,    62,    48,    93,   169,    58,    47,   509,    93,
+    23,     4,   507,   355,   718,   355,   251,   209,   402,   126,
+   134,   485,    90,   880,    92,    14,   156,    84,    80,   788,
+    35,   790,     4,   604,     4,   402,   567,    42,   373,   798,
+   440,   647,    35,     4,   356,   357,    42,    42,   133,   134,
+   209,    42,    57,  1348,   693,   247,   304,   305,   124,   218,
+  1355,  1423,   243,    35,  1338,    35,  1513,    72,    59,   137,
+    42,   133,    42,  1514,    35,    54,     1,    33,   804,    84,
+    42,    42,   140,    88,   810,    90,  1515,    92,    42,   337,
+     1,    11,   144,    11,    83,   701,   408,   409,   156,    11,
+     0,    54,   107,   108,   296,    12,   468,   217,   218,  1236,
+  1237,    74,     4,  1560,    37,     4,     5,   106,  1537,   455,
+   355,    74,   175,   700,    54,     4,  1253,    59,    54,    38,
+     0,   136,   137,    58,   139,    74,    60,    62,    30,    31,
+  1559,     1,    62,    35,    74,    54,    59,    58,    74,     4,
+    42,   203,    59,   109,   212,    62,    35,   349,    80,     9,
+   165,   625,   220,    47,   169,    54,  1595,    56,    57,   165,
+    95,   176,    57,   169,   169,   136,   155,   109,   169,   237,
+    35,    70,   348,   349,   350,   109,   109,    42,   108,    48,
+   108,    80,    84,   539,   920,   108,   108,   169,    58,   169,
+  1619,   108,    62,  1644,   165,    94,    27,   169,   169,    93,
+    31,    61,    58,  1660,    47,   169,    54,    25,   209,    46,
+    12,   200,   717,  1518,   108,   561,   217,   218,    58,     3,
+     4,     5,    62,     4,    54,    95,    74,    60,  1600,    60,
+  1514,    93,    62,    64,   136,     3,     4,     5,   460,    76,
+    58,   136,    98,  1380,    62,    74,   247,   149,   150,   248,
+    93,   346,  1389,  1390,    35,  1392,    60,    59,    59,    59,
+    62,    60,    64,   165,  1569,   108,    12,   169,    33,   393,
+    60,   136,    56,    57,   346,   342,   109,    95,   109,    47,
+   358,   176,   297,    59,   448,  1563,    54,    47,    56,    57,
+    47,   193,   194,     4,   644,   296,    80,    93,   879,    47,
+   165,    62,   712,   713,   169,  1041,   683,   108,   108,   385,
+   109,    31,   961,    59,   329,  1620,    62,  1053,    47,   109,
+     7,   490,   476,   477,    35,    93,   648,   342,   673,    25,
+   262,    27,   108,    93,  1612,   350,    93,   740,    54,   479,
+     4,   404,    93,   358,   359,    93,   740,   108,   349,   936,
+    37,  1087,   939,  1089,    47,    54,   355,    47,    74,    25,
+    62,    27,    58,    62,    93,    94,    62,    59,   613,   489,
+   490,    35,    74,   719,   493,    74,   213,   497,    42,   108,
+   736,    93,   450,    75,   149,   150,   151,   402,   359,   509,
+   405,   510,    58,   980,   981,    74,    62,    55,    47,    95,
+    93,    94,   470,    93,    94,   406,  1543,  1544,   528,  1276,
+    75,   479,    77,   887,     3,   108,  1032,     6,   108,    47,
+    84,   141,   402,   501,   965,   107,   146,   442,   496,    95,
+   195,     4,   804,    47,    54,    54,   442,   442,   810,    47,
+   342,   442,    31,    62,    93,   182,    47,   921,    25,    47,
+    64,    47,    41,   468,    74,    74,   534,   359,    54,     4,
+     5,    47,    35,    47,   359,    93,    94,    56,    57,    42,
+    54,   442,   136,    25,   194,    27,    59,    60,    74,    93,
+   108,    70,    55,  1252,    57,    93,   501,    54,   489,   490,
+    74,    80,    93,   508,   359,    93,   497,    93,   820,    88,
+   402,   165,    62,    48,    93,   169,    58,    93,   509,    93,
     62,    56,    57,   689,    74,   691,   692,   175,   694,   534,
-     7,    58,   537,    74,    64,   540,   508,   528,   711,   544,
-   545,   546,   547,   548,  1039,    80,    47,   508,   605,   259,
-   442,  1408,   557,    95,    59,    47,    54,    62,   920,    64,
-    37,    47,   567,    93,    94,   570,   109,   483,    47,   962,
-   736,    47,    47,   136,   222,   491,   468,   140,   962,    54,
-    58,     4,     5,    93,   476,   477,   508,   442,   681,   674,
-   930,   772,    93,   774,    54,   962,   681,   650,   779,    74,
-   605,    93,   165,    47,   930,    54,   169,    93,   676,     4,
-     5,    54,   175,   176,    93,   108,   508,    93,    93,   624,
-     3,     4,     5,   508,     4,     5,   631,     3,     4,     5,
-    75,    54,    54,    56,    57,   764,   689,   829,   691,   692,
-     4,     5,   926,   955,    62,     9,   635,    70,    94,    93,
-     4,     5,    74,   508,  1126,    62,    74,    80,   108,   222,
-   651,    56,    57,   829,  1000,     4,     5,    74,    48,   682,
-   882,   676,   499,    56,    57,   782,    56,    57,    54,  1041,
-    56,    57,    58,   736,   108,   690,    11,    47,   342,   694,
-    54,  1053,    56,    57,    48,   930,   108,  1192,    47,   109,
-    14,   692,    56,    57,   717,   359,    70,    47,    22,   419,
-    98,    47,   422,   605,    60,    54,    80,    56,    57,    47,
-    93,   476,   477,   478,   434,  1087,    80,  1089,    62,   621,
-   622,    70,   624,    93,  1229,   740,   902,   805,   806,   631,
-   808,    80,   795,   909,    93,   736,    62,     3,   402,  1122,
-  1123,    65,  1125,    93,    60,    94,   404,    93,     3,     4,
-     5,   471,   928,   111,   474,    93,     3,     4,     5,  1081,
-  1082,  1083,    33,   764,   108,  1121,    74,    47,   488,     3,
-     4,     5,     6,   788,    54,   790,    54,    54,   442,    83,
-    84,   796,   108,   798,    62,    62,   359,    94,   928,   804,
-   805,   806,    94,   808,    74,   810,    74,    74,     4,     5,
-   124,    56,    57,    58,   468,   988,   788,    41,   790,    56,
-    57,    62,   470,    93,   111,    54,   798,   788,    93,   790,
-    93,   479,    56,    57,   148,   483,    74,   798,   829,    59,
-    60,   404,    54,   491,   902,    74,    74,    54,   740,    27,
-    62,   909,    48,    31,   508,  1036,  1037,  1038,   750,   751,
-    56,    57,    74,    54,     4,     5,   788,    74,   790,     9,
-   928,    62,    54,   878,   796,    59,   798,    74,   883,   442,
-    62,    59,    60,    74,    80,     3,     4,     5,   149,   150,
-   151,    75,    74,    77,  1106,  1107,   788,    74,   790,     3,
-     4,     5,    59,   788,    11,   790,   798,   470,   109,   914,
+    60,    25,   537,    27,    31,   540,   508,   528,   711,   544,
+   545,   546,   547,   548,  1039,    80,    54,   508,   605,   259,
+   442,  1408,   557,    95,    62,     8,     9,    47,   920,    62,
+   674,    14,   567,    47,    58,   570,    74,   681,    62,   962,
+   736,    47,    58,   136,   222,    74,   468,   140,   962,    47,
+  1157,  1158,    54,    36,   476,   477,   508,   442,   930,    47,
+   930,   772,    45,   774,    47,   962,   681,   650,   779,    47,
+   605,    95,   165,    93,     4,     5,   169,   109,   676,    93,
+    94,    58,   175,   176,    93,    47,   508,    93,    94,   624,
+     3,     4,     5,   508,   108,    93,   631,    54,     3,     4,
+     5,    47,     7,     8,     9,    93,   689,   829,   691,   692,
+    93,    47,    54,   955,    47,    93,   635,    62,    48,    58,
+     4,     5,    47,   508,   764,    64,    56,    57,    64,   222,
+   651,    93,  1126,   829,  1000,     4,     5,     4,     5,   682,
+   882,   676,   499,    56,    57,   782,    54,    93,   926,  1041,
+    80,    56,    57,   736,    62,   690,    54,    93,   342,   694,
+    93,  1053,    31,   108,    48,   930,    74,  1192,    93,    94,
+    14,   692,    56,    57,   717,   359,     4,     5,    22,   419,
+    75,    48,   422,   605,    47,    54,   108,    56,    57,    56,
+    57,   476,   477,   478,   434,  1087,    80,  1089,    59,   621,
+   622,    70,   624,    11,  1229,   740,   902,   805,   806,   631,
+   808,    80,   795,   909,    75,   736,    77,   108,   402,   483,
+    48,    65,  1122,  1123,    93,  1125,   404,   491,    56,    57,
+    93,   471,   928,   108,   474,    47,     3,     4,     5,  1081,
+  1082,  1083,    33,   764,    59,  1121,    94,    47,   488,     3,
+     4,     5,    80,   788,    54,   790,    59,    60,   442,    74,
+    75,   796,    77,   798,     4,     5,   359,   108,   928,   804,
+   805,   806,   109,   808,    74,   810,    30,    98,     4,     5,
+   124,    93,    94,    60,   468,   988,   788,    54,   790,    56,
+    57,    58,   470,    93,    62,    47,   798,   788,    62,   790,
+    54,   479,    56,    57,   148,   483,    74,   798,   829,    93,
+    74,   404,    64,   491,   902,     3,    56,    57,   740,     4,
+     5,   909,    48,    60,   508,  1036,  1037,  1038,   750,   751,
+    56,    57,    59,    60,     4,     5,   788,   111,   790,     9,
+   928,    93,    94,   878,   796,    74,   798,    54,   883,   442,
+   817,   818,   819,    94,    80,    62,     4,     5,   149,   150,
+   151,     9,    59,    60,  1106,  1107,   788,    74,   790,    54,
+    94,    56,    57,   788,    93,   790,   798,   470,    62,   914,
    795,   796,   804,   798,    54,   920,    56,    57,   810,   924,
-   483,   973,  1626,   108,   238,   239,    59,    60,   491,    59,
-    70,     4,     5,   788,   195,   790,    54,   251,    56,    57,
-    80,   930,    47,   798,    48,   508,     3,     4,     5,    54,
-     7,   605,    56,    57,    94,   108,   108,   962,    54,   964,
-   965,    59,    60,   968,   791,   792,    62,    59,    60,    74,
-   624,     4,     5,    30,   801,  1287,     9,   631,    74,   108,
-    37,    54,  1148,    56,    57,   817,   818,   819,    93,    59,
-    60,  1044,   962,    74,  1206,    59,    60,    54,    31,    56,
-    57,  1347,   650,  1215,  1216,    74,  1011,   321,    54,  1175,
-    59,    60,  1224,  1065,    74,  1181,    59,    60,  1148,  1024,
-   108,    54,   109,    56,    57,     3,     4,     5,   920,  1034,
-   922,   923,   924,   109,  1178,  1179,  1041,    70,   748,   749,
-   767,   689,    27,   691,   692,   111,   756,    80,  1053,   363,
-   108,  1181,    59,    60,     9,  1267,   111,    12,   372,    74,
-    93,    74,  1130,    27,  1208,  1209,    54,    31,    74,  1074,
-   962,   385,    59,    60,   966,   967,   968,   111,    56,    57,
-   111,   108,  1087,   108,  1089,   108,   740,   650,   736,    58,
-  1148,   108,    47,     8,     9,    59,    60,    54,  1434,    14,
-    64,     8,  1074,   111,    59,    47,    61,    62,    64,    64,
-     4,     5,  1117,  1074,  1450,    59,    93,  1175,    93,  1011,
-    75,    36,    77,  1181,    54,  1130,   689,   690,   691,   692,
-    45,  1183,     4,     5,   788,  1301,   790,   109,    93,    94,
-    60,    36,    64,  1065,   798,    64,    64,   795,  1153,  1041,
-   804,    60,  1074,   108,    48,  1367,   810,   108,   108,  1044,
-  1553,  1053,    56,    57,    62,  1223,   111,   108,   108,  1553,
-  1345,  1301,  1347,   736,   108,  1180,    48,   740,  1346,  1192,
-   108,    64,  1074,    64,    56,    57,    80,    64,    75,  1074,
-    93,   505,    59,  1405,   108,  1087,   108,  1089,  1203,    75,
-     3,  1537,   108,     6,   108,  1210,   108,    75,    80,    75,
-  1203,  1557,    75,   968,    62,   476,   477,   478,   108,  1074,
-     3,     4,     5,  1559,   108,   788,    62,   790,    31,    59,
-  1057,  1203,   795,   796,   108,   798,  1063,  1064,    41,    62,
-  1067,  1068,   111,  1301,  1071,    94,   108,  1252,   108,    88,
-  1586,   108,   111,    56,    57,   569,  1011,   967,    74,  1151,
-  1152,  1153,    47,    59,    47,   108,   920,    70,   108,   111,
-   924,    54,   109,    56,    57,   108,   111,    80,    74,    75,
-  1252,    77,   108,  1619,   108,    88,  1178,  1179,  1180,   109,
-    93,  1252,  1345,    60,  1347,    59,    64,    59,    64,   613,
-    59,  1306,    64,    59,  1640,    62,   108,   108,   962,    93,
-    93,  1203,    74,    75,   968,    93,  1208,  1209,  1210,  1046,
-  1047,    93,    93,   109,   111,  1247,     8,   109,  1220,  1221,
-  1252,   108,   108,  1338,   108,   108,   111,  1503,   108,   108,
-    33,  1346,    64,  1348,   109,   108,  1073,   108,  1203,    54,
-  1355,  1078,    62,   108,   108,  1348,  1347,  1011,   108,  1364,
-  1252,   108,  1355,   108,   108,  1557,  1338,  1252,   682,     4,
-     5,    30,    31,   108,    33,  1529,  1348,   108,   111,   693,
-    47,   108,   108,  1355,   108,    96,  1552,  1041,  1532,  1533,
-    62,    62,    12,     9,    60,    60,  1044,  1252,    57,  1053,
-    59,    80,    81,    82,    83,    84,    65,    27,    60,    44,
-   724,    31,  1304,  1305,  1306,     3,     4,     5,    16,    54,
-  1074,    56,    57,  1178,  1179,  1180,    60,    47,   108,    93,
-   108,   108,   108,  1087,  1607,  1089,    60,    93,  1650,    59,
-    60,    64,    62,    54,    64,  1503,  1338,   108,     3,     4,
-     5,   108,    93,  1208,  1209,  1210,  1348,   111,    17,    60,
-    48,    93,    54,  1355,   108,    60,  1176,  1177,    56,    57,
-   108,   107,    97,    93,    94,  1185,    11,     3,     4,     5,
-   108,  1044,   141,  1338,     3,     4,     5,   146,   108,   108,
-   149,   150,   151,  1348,  1552,    60,    60,  1502,    60,  1153,
-  1355,    56,    57,  1508,    30,  1558,    93,    59,  1513,  1514,
-  1515,  1074,   108,  1518,    64,  1242,  1243,   176,  1245,  1246,
-  1513,  1248,    60,   182,   108,  1518,  1180,  1175,    54,  1534,
-    56,    57,   108,  1181,   193,   194,   195,    56,    57,    11,
-    60,  1513,  1514,    11,    60,     0,  1518,     0,  1553,  1203,
-   209,     3,     4,     5,     6,  1560,  1210,     0,   217,   218,
-  1387,  1388,   170,     2,  1569,    35,  1557,  1560,  1448,   962,
-   169,     3,     4,     5,   674,  1223,  1569,   442,     3,     4,
-     5,  1606,     7,     8,     9,     3,     4,     5,  1560,    41,
-  1595,   165,  1302,  1303,   796,    94,  1244,  1569,  1252,  1309,
-   259,   238,    54,  1192,    56,    57,    31,   139,  1500,  1501,
-  1502,    36,  1175,  1433,  1660,  1620,  1508,  1277,     3,     4,
-     5,  1513,  1514,  1515,    56,    57,  1518,  1620,   948,   299,
-   724,    56,    57,  1460,   948,   943,    88,   242,    56,    57,
-  1532,  1533,     3,     4,     5,     6,  1229,   961,  1620,  1039,
-  1377,  1378,  1306,  1301,  1074,  1660,  1249,   796,  1513,  1514,
-   657,  1553,   941,  1518,   200,   346,   605,  1660,  1560,    54,
-   329,    56,    57,   124,  1348,  1204,  1626,  1569,    33,  1574,
-    41,  1244,  1640,  1636,  1338,  1364,  1249,  1638,  1660,  1252,
-  1019,     4,     5,    54,  1348,    56,    57,  1345,    -1,  1347,
+   483,   973,  1626,   111,   238,   239,     4,     5,   491,    93,
+    70,    59,    60,   788,   195,   790,    54,   251,    56,    57,
+    80,   930,    74,   798,    74,   508,     3,     4,     5,    74,
+     7,   605,    70,    74,    94,    59,    60,   962,    59,   964,
+   965,    54,    80,   968,   791,   792,    83,    84,   109,    62,
+   624,     4,     5,    30,   801,  1287,     9,   631,    56,    57,
+    37,    74,  1148,     8,     9,    59,    60,    59,    60,    14,
+    11,  1044,   962,   108,  1206,    44,    59,    54,    31,    56,
+    57,  1347,   650,  1215,  1216,    54,  1011,   321,    57,  1175,
+   108,    36,  1224,  1065,   108,  1181,    59,    60,  1148,  1024,
+    45,    54,   108,    56,    57,     3,     4,     5,   920,  1034,
+   922,   923,   924,    74,  1178,  1179,  1041,    70,   748,   749,
+   767,   689,    54,   691,   692,    74,   756,    80,  1053,   363,
+    74,  1181,    59,    60,     9,  1267,   108,    12,   372,   109,
+    93,   109,  1130,    27,  1208,  1209,   111,    31,   108,  1074,
+   962,   385,   111,    27,   966,   967,   968,    74,    56,    57,
+    58,    74,  1087,    54,  1089,    74,   740,   650,   736,   111,
+  1148,   111,    47,   108,   108,    59,    60,   108,  1434,    58,
+    64,    54,  1074,   108,    59,     8,    61,    62,    93,    64,
+     4,     5,  1117,  1074,  1450,   111,    47,  1175,    64,  1011,
+    75,    59,    77,  1181,    93,  1130,   689,   690,   691,   692,
+   109,  1183,    54,    60,   788,  1301,   790,    36,    93,    94,
+    64,    64,   108,  1065,   798,    64,   108,   795,  1153,  1041,
+   804,    60,  1074,   108,    48,  1367,   810,    62,   108,  1044,
+  1553,  1053,    56,    57,   108,  1223,   108,   108,    64,  1553,
+  1345,  1301,  1347,   736,    64,  1180,    27,   740,  1346,  1192,
+    31,    64,  1074,     7,     8,     9,    80,    59,    75,  1074,
+    14,   505,    64,  1405,   111,  1087,    93,  1089,  1203,     4,
+     5,  1537,    74,    75,    59,  1210,   108,    31,    59,    60,
+  1203,  1557,    36,   968,    75,   476,   477,   478,    75,  1074,
+   108,    45,   108,  1559,   108,   788,   108,   790,    75,    75,
+  1057,  1203,   795,   796,   108,   798,  1063,  1064,   108,    44,
+  1067,  1068,    62,  1301,  1071,    62,    59,  1252,   108,    54,
+  1586,    56,    57,    62,   108,   569,  1011,   967,   108,  1151,
+  1152,  1153,   111,    94,    74,    88,   920,   111,    47,   108,
+   924,   108,   108,   111,     4,     5,   111,   109,     8,     9,
+  1252,   108,   108,  1619,    14,    60,  1178,  1179,  1180,   108,
+    59,  1252,  1345,   109,  1347,    59,    64,    64,    28,   613,
+    30,  1306,    59,    62,  1640,   108,    36,   108,   962,    93,
+    93,  1203,    93,    93,   968,    45,  1208,  1209,  1210,  1046,
+  1047,   109,   109,   108,    54,  1247,    56,    57,  1220,  1221,
+  1252,   108,   108,  1338,     8,   109,   108,  1503,   111,    33,
+   111,  1346,   108,  1348,    64,   108,  1073,   108,  1203,    54,
+  1355,  1078,     4,     5,   108,  1348,  1347,  1011,   108,  1364,
+  1252,   108,  1355,    93,   108,  1557,  1338,  1252,   682,   108,
+   108,    30,    31,   108,    33,  1529,  1348,   108,    62,   693,
+   108,    47,   111,  1355,   108,   108,  1552,  1041,  1532,  1533,
+   108,    62,    12,    96,    62,    60,  1044,  1252,    57,  1053,
+    59,     9,    54,    60,    56,    57,    65,    27,   108,    60,
+   724,    31,  1304,  1305,  1306,     3,     4,     5,    70,    16,
+  1074,   108,   108,  1178,  1179,  1180,   108,    47,    80,   108,
+   108,    93,    93,  1087,  1607,  1089,    60,    60,  1650,    59,
+    60,    54,    62,    64,    64,  1503,  1338,    93,     3,     4,
+     5,     6,    93,  1208,  1209,  1210,  1348,   111,    17,    60,
+    48,    54,    60,  1355,   108,   108,  1176,  1177,    56,    57,
+   107,    97,   108,    93,    94,  1185,   108,     3,     4,     5,
+    11,  1044,   141,  1338,    60,    60,    41,   146,   108,    60,
+   149,   150,   151,  1348,  1552,    59,    64,  1502,    93,  1153,
+  1355,    56,    57,  1508,   108,  1558,    60,    11,  1513,  1514,
+  1515,  1074,   108,  1518,   108,  1242,  1243,   176,  1245,  1246,
+  1513,  1248,    60,   182,    11,  1518,  1180,  1175,    54,  1534,
+    56,    57,    60,  1181,   193,   194,   195,     0,     0,     0,
+   170,  1513,  1514,     2,    35,  1448,  1518,   674,  1553,  1203,
+   209,     3,     4,     5,     6,  1560,  1210,   962,   217,   218,
+  1387,  1388,   169,   442,  1569,   165,  1557,  1560,  1606,   796,
+  1192,     3,     4,     5,    94,  1223,  1569,   139,     3,     4,
+     5,  1660,     7,     8,     9,     3,     4,     5,  1560,    41,
+  1595,   238,  1302,  1303,  1433,   299,  1244,  1569,  1252,  1309,
+   259,  1277,    54,   943,    56,    57,    31,   948,  1500,  1501,
+  1502,    36,  1175,   724,   242,  1620,  1508,  1229,     3,     4,
+     5,  1513,  1514,  1515,    56,    57,  1518,  1620,  1039,  1074,
+    48,    56,    57,  1460,   948,   796,    88,   941,    56,    57,
+  1532,  1533,     3,     4,     5,     6,  1249,   961,  1620,   657,
+  1377,  1378,  1306,  1301,   605,  1660,   200,   346,  1513,  1514,
+   124,  1553,  1640,  1518,     3,     4,     5,  1660,  1560,    54,
+   329,    56,    57,  1348,  1626,  1204,  1574,  1569,    33,  1636,
+    41,  1244,    -1,  1638,  1338,  1019,  1249,    -1,  1660,  1252,
+     3,     4,     5,    54,  1348,    56,    57,  1345,  1364,  1347,
     -1,  1355,    -1,  1595,    -1,  1560,  1461,   968,    -1,    70,
-   107,   108,    -1,    -1,  1569,    -1,    -1,    -1,    31,    80,
-     3,     4,     5,    -1,     7,     8,     9,    88,  1620,    -1,
+   107,   108,    -1,    -1,  1569,    -1,    -1,    56,    57,    80,
+     3,     4,     5,    -1,    -1,    -1,    -1,    88,  1620,    -1,
     -1,    -1,    93,    -1,    -1,     4,     5,    -1,    -1,    -1,
-     9,    54,    -1,    56,    57,    -1,   405,   406,    -1,    -1,
-  1011,    -1,    -1,  1480,  1481,  1482,    -1,    70,    -1,   762,
-   419,  1588,    31,   422,    -1,  1620,    -1,    80,  1660,   428,
+     9,    -1,    -1,    56,    57,    -1,   405,   406,    -1,    -1,
+  1011,    -1,    -1,  1480,  1481,  1482,     3,     4,     5,   762,
+   419,  1588,    31,   422,    -1,  1620,    -1,    -1,  1660,   428,
    429,   430,    -1,    56,    57,   434,    -1,  1532,  1533,  1534,
-    93,    -1,  1345,  1346,  1347,    54,    -1,    56,    57,     3,
-     4,     5,     6,  1107,    -1,   150,   151,     7,     8,     9,
-   803,    70,    -1,    -1,    14,  1660,   809,    -1,    -1,    -1,
-    -1,    80,   471,  1540,  1541,   474,    -1,   476,   477,   478,
-    -1,    31,    -1,   482,    93,    -1,    36,    41,    -1,   488,
-   489,   490,    -1,    -1,   493,    45,    -1,    -1,   497,    -1,
+    -1,    -1,  1345,  1346,  1347,    54,    -1,    56,    57,     3,
+     4,     5,     6,  1107,    -1,   150,   151,    -1,    -1,    -1,
+   803,    70,    -1,    -1,    -1,  1660,   809,    -1,    -1,    56,
+    57,    80,   471,  1540,  1541,   474,    -1,   476,   477,   478,
+    -1,    -1,    -1,   482,    93,    -1,    47,    41,    -1,   488,
+   489,   490,    -1,    -1,   493,     3,     4,     5,   497,    -1,
    195,    -1,    56,    57,    -1,    -1,    -1,    -1,  1502,    -1,
-    60,   510,    -1,    -1,  1508,  1503,     7,     8,     9,  1513,
-  1514,  1515,    -1,    14,  1518,    76,    77,    78,    79,    80,
-    81,    82,    83,    84,    88,    -1,    -1,    -1,   537,    -1,
-    31,   540,    47,    -1,  1611,    36,  1200,    -1,    -1,    -1,
+    -1,   510,    -1,    -1,  1508,  1503,     7,     8,     9,  1513,
+  1514,  1515,    -1,    14,  1518,    86,    87,    -1,    -1,    -1,
+    91,    92,    93,    94,    88,    -1,    -1,    -1,   537,    -1,
+    31,   540,    -1,    -1,  1611,    36,  1200,    -1,    56,    57,
     -1,    -1,  1206,    -1,    45,   461,   555,   556,   557,  1553,
     -1,    -1,   468,    -1,  1552,    -1,  1560,    -1,    -1,    60,
   1558,   570,   915,    -1,   917,  1569,   402,  1178,  1179,  1180,
-    -1,    86,    87,    -1,    -1,    -1,    91,    92,    93,    94,
-    -1,    -1,   329,    -1,     4,     5,    -1,    -1,    -1,     9,
+    73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
+    83,    84,   329,    -1,     4,     5,    -1,    -1,    -1,     9,
     -1,  1595,    -1,     3,     4,     5,     6,  1208,  1209,  1210,
     -1,     4,     5,    -1,   306,   307,    88,    -1,    90,    -1,
     92,    31,   621,   622,    -1,   624,  1620,    -1,    -1,   535,
@@ -2857,7 +2857,7 @@ static const short yycheck[] = {     4,
     -1,   690,    -1,   692,   693,   601,    -1,    90,    -1,    -1,
     93,    94,     3,     4,     5,     6,    -1,    -1,     3,     4,
      5,    41,     7,     8,     9,    -1,    -1,    -1,    48,    -1,
-    80,    -1,    -1,    -1,    -1,    -1,    56,    57,   465,    -1,
+    80,    80,    81,    82,    83,    84,    56,    57,   465,    -1,
     -1,    -1,   638,    -1,   429,   430,    31,   736,    -1,    -1,
     41,    36,    -1,  1086,   104,  1088,    -1,    48,    -1,   748,
    749,   750,   751,   752,    -1,    56,    57,   756,    88,    54,
@@ -2888,7 +2888,7 @@ static const short yycheck[] = {     4,
     -1,    56,    57,    -1,    31,     3,     4,     5,     6,    36,
     -1,    -1,  1011,    -1,    -1,    70,    -1,    -1,    45,    -1,
     -1,    -1,    -1,    -1,    -1,    80,  1025,  1026,  1027,   501,
-    -1,    -1,    -1,    -1,    -1,    90,    -1,    -1,    93,    94,
+    -1,    -1,    -1,    60,    -1,    90,    -1,    -1,    93,    94,
     -1,    -1,    -1,    41,   950,    -1,    -1,  1046,  1047,    -1,
     48,    -1,   412,  1396,  1397,    -1,   751,   752,    56,    57,
     -1,    -1,   534,   535,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -2900,7 +2900,7 @@ static const short yycheck[] = {     4,
    592,   593,    41,   595,    -1,    -1,    -1,    -1,   823,   601,
   1473,  1474,    -1,    -1,    -1,    54,   962,    56,    57,    -1,
     -1,    60,   968,    62,    -1,   505,  1489,  1490,     4,     5,
-   887,    70,  1151,  1152,  1153,    -1,    -1,    -1,    -1,   631,
+    -1,    70,  1151,  1152,  1153,    -1,    -1,    -1,    -1,   631,
     -1,    80,    -1,    -1,    -1,    -1,   638,    -1,    -1,    88,
     -1,   531,    -1,    -1,    93,    -1,    -1,  1176,  1177,  1178,
   1179,  1180,    -1,   461,    -1,  1011,  1185,   924,   660,   661,
@@ -2911,8 +2911,8 @@ static const short yycheck[] = {     4,
    922,   923,    -1,    -1,    90,    -1,    -1,    93,    94,    -1,
     -1,    -1,    -1,  1242,  1243,    -1,  1245,  1246,    -1,  1248,
    481,    -1,   724,    -1,    -1,   486,    -1,   535,   618,    -1,
-    -1,  1087,    -1,  1089,    78,    79,    80,    81,    82,    83,
-    84,    -1,    -1,   968,   634,    -1,    -1,    -1,    -1,    -1,
+    -1,  1087,    -1,  1089,    76,    77,    78,    79,    80,    81,
+    82,    83,    84,   968,   634,    -1,    -1,    -1,    -1,    -1,
    511,    -1,    -1,    -1,    -1,    -1,   517,    -1,  1194,    -1,
   1196,    -1,  1198,    -1,    -1,    -1,    -1,  1034,   529,   530,
     -1,   532,    -1,  1302,  1303,  1304,  1305,  1306,    -1,    -1,
@@ -2921,7 +2921,7 @@ static const short yycheck[] = {     4,
     -1,    -1,    -1,   805,   806,     1,   808,     3,     4,     5,
      6,    -1,     8,    -1,    -1,    -1,    31,  1346,  1347,    -1,
     -1,   823,    -1,   631,  1180,    -1,    41,    -1,    -1,    -1,
-   638,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    54,
+   638,    78,    79,    80,    81,    82,    83,    84,    -1,    54,
     -1,    56,    57,   845,    -1,    41,    -1,    -1,  1377,  1378,
     -1,    -1,    48,    -1,  1210,    70,    -1,    -1,    54,    -1,
     56,    57,  1298,   753,    -1,    80,   627,   628,    -1,    -1,
@@ -2935,25 +2935,25 @@ static const short yycheck[] = {     4,
     -1,    57,    -1,  1210,    -1,    -1,    -1,    -1,   950,    65,
   1306,  1480,  1481,  1482,  1179,  1180,    72,    -1,    -1,    -1,
     -1,    -1,    -1,   965,    -1,    -1,    -1,    83,    84,    -1,
-    -1,  1500,  1501,  1502,    -1,    -1,   978,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,  1209,  1210,  1208,  1209,    -1,    -1,
+    -1,  1500,  1501,  1502,    -1,    -1,   978,    -1,     3,     4,
+     5,     6,    -1,    -1,  1209,  1210,  1208,  1209,    -1,    -1,
    106,    -1,   994,   754,    -1,    -1,  1263,  1264,  1265,  1266,
     -1,    -1,    -1,  1532,  1533,  1534,    -1,    -1,    -1,  1011,
-    -1,  1540,  1541,    -1,    -1,   823,    -1,    -1,   134,    -1,
-   136,    -1,    -1,    -1,   140,   141,    -1,    -1,    -1,   145,
-   146,    -1,    -1,   149,   150,   151,    -1,    -1,    -1,   929,
+    -1,  1540,  1541,    -1,    -1,   823,    41,    -1,   134,    -1,
+   136,    -1,    -1,    48,   140,   141,    -1,    -1,    -1,   145,
+   146,    56,    57,   149,   150,   151,    -1,    -1,    -1,   929,
     -1,   931,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   165,
-   811,    -1,   813,   169,  1056,    -1,    -1,    -1,    -1,   175,
-   176,    -1,     4,     5,  1331,    -1,     8,     9,    -1,   877,
-   878,    -1,    14,    -1,    -1,   883,    -1,   193,   194,   195,
-  1305,  1306,  1611,   973,    -1,    -1,    28,    -1,    30,   897,
-    -1,   899,    -1,   901,    36,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    45,  1106,  1107,   222,    -1,  1110,    -1,
-    -1,    -1,    54,    -1,    56,    57,  1338,    -1,    -1,    -1,
+   811,    -1,   813,   169,  1056,    80,    -1,    -1,    -1,   175,
+   176,    -1,    -1,    88,  1331,    -1,    -1,    -1,    -1,   877,
+   878,    -1,    -1,    -1,    -1,   883,    -1,   193,   194,   195,
+  1305,  1306,  1611,   973,    -1,    -1,    -1,    -1,    -1,   897,
+    -1,   899,    -1,   901,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,  1106,  1107,   222,    -1,  1110,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,  1338,    -1,    -1,    -1,
     -1,    -1,    -1,   239,   885,   886,    -1,   888,  1130,    -1,
     -1,    -1,   248,    -1,     3,     4,     5,     6,    -1,  1406,
      9,    -1,   950,   259,    -1,    -1,  1502,    -1,    -1,    -1,
-    -1,    93,    -1,    -1,   621,   622,    -1,    -1,   919,    -1,
+    -1,    -1,    -1,    -1,   621,   622,    -1,    -1,   919,    -1,
     -1,    -1,    31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     -1,    -1,    41,    -1,    -1,  1065,  1443,    -1,    47,    -1,
     -1,   297,   298,    -1,    -1,    54,   994,    56,    57,    -1,
@@ -2971,8 +2971,8 @@ static const short yycheck[] = {     4,
     88,    -1,    -1,   419,    -1,    93,   422,    -1,  1533,  1534,
   1532,  1533,    36,    -1,    -1,    -1,    -1,    -1,   434,    -1,
     -1,    45,    -1,    47,    -1,  1327,   442,    -1,  1595,    -1,
-    54,    -1,    56,    57,    73,    74,    75,    76,    77,    78,
-    79,    80,    81,    82,    83,    84,    70,  1614,    -1,    -1,
+    54,    -1,    56,    57,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    70,  1614,    -1,    -1,
     -1,    -1,    -1,    -1,   470,   471,    80,  1247,   474,    -1,
    476,   477,   478,   479,    -1,  1367,    90,   483,  1635,    93,
     94,    -1,   488,    -1,    -1,   491,    -1,  1644,  1139,    -1,
@@ -3032,16 +3032,16 @@ static const short yycheck[] = {     4,
   1026,  1027,    -1,    31,    65,    -1,    -1,    -1,    -1,    -1,
     -1,    72,    -1,    41,    -1,  1041,    -1,    -1,  1044,    47,
     -1,    -1,    -1,    84,    -1,    -1,    54,  1053,    56,    57,
-    -1,    -1,    -1,     3,     4,     5,     6,    -1,  1415,  1416,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1415,  1416,
   1066,  1418,    70,    -1,    -1,    -1,    -1,    -1,  1074,    -1,
     -1,    -1,    80,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    88,  1087,    90,  1089,    -1,    93,    94,    -1,    -1,    -1,
-    -1,    41,    -1,    -1,    -1,   136,    -1,    -1,    48,   140,
-   141,    -1,    -1,    -1,    -1,   146,    56,    57,   149,   150,
-   151,  1117,    -1,    -1,    -1,    -1,  1122,  1123,    -1,  1125,
-    -1,    -1,    -1,    -1,   165,    -1,    -1,    -1,   169,    -1,
-    80,    -1,    -1,    -1,   175,   176,    -1,    -1,    88,    -1,
-    -1,    -1,  1148,  1500,  1501,  1151,  1152,  1153,    -1,    -1,
+    88,  1087,    90,  1089,    -1,    93,    94,    -1,     4,     5,
+    -1,     7,     8,     9,    -1,   136,    -1,    -1,    14,   140,
+   141,    -1,    -1,    -1,    -1,   146,    -1,    -1,   149,   150,
+   151,  1117,    28,    -1,    30,    31,  1122,  1123,    -1,  1125,
+    36,    -1,    -1,    -1,   165,    -1,    -1,    -1,   169,    45,
+    -1,    -1,    48,    -1,   175,   176,    -1,    -1,    54,    -1,
+    56,    57,  1148,  1500,  1501,  1151,  1152,  1153,    -1,    -1,
     -1,    -1,   193,   194,   195,     3,     4,     5,     6,     7,
      8,     9,    -1,    -1,    -1,    -1,    14,    -1,    -1,  1175,
   1176,  1177,  1178,  1179,  1180,  1181,    -1,    -1,    -1,  1185,
@@ -3400,47 +3400,47 @@ static const short yycheck[] = {     4,
     -1,    -1,    36,    -1,    -1,    -1,   736,    41,    -1,    -1,
     -1,    45,    -1,    47,  1208,  1209,  1210,    -1,    -1,    -1,
     54,    -1,    56,    57,    -1,    -1,  1220,  1221,  1222,  1223,
-    -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,    -1,     3,
-     4,     5,     6,    -1,    -1,    -1,    80,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    80,    -1,    -1,    -1,
   1244,    -1,   607,    -1,    88,    -1,    90,    -1,    -1,    93,
     94,    -1,    -1,   618,   619,    -1,   621,   622,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    41,    -1,     3,
-     4,     5,     6,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    54,    -1,    56,    57,  1306,    -1,    -1,    -1,    62,   829,
-    -1,    -1,    -1,    -1,    -1,    -1,    70,  1301,  1302,  1303,
-  1304,  1305,  1306,    -1,    -1,  1309,    80,    41,    -1,   674,
-    -1,    -1,    -1,    -1,    88,    -1,   681,   682,    -1,    93,
-    54,    -1,    56,    57,    -1,    -1,    60,    -1,   693,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,    -1,    -1,
-    -1,  1345,  1364,  1347,    -1,    -1,    80,    -1,    -1,    -1,
-    -1,    -1,   717,    -1,    88,    -1,    -1,    31,    -1,    93,
-    -1,    -1,   902,   903,    -1,    -1,   906,    -1,    -1,   909,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   918,    -1,
-    -1,    -1,   922,   923,   924,    -1,    -1,    -1,   928,    63,
-    64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
-    74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
-    84,  1415,  1416,  1417,  1418,    -1,    -1,   782,    -1,    -1,
+     4,     5,    -1,    -1,    -1,     9,    -1,    -1,     3,     4,
+     5,     6,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     3,     4,     5,     6,  1306,    -1,    -1,    31,    -1,   829,
+    -1,    -1,    -1,    -1,    -1,    -1,    31,  1301,  1302,  1303,
+  1304,  1305,  1306,    47,    -1,  1309,    41,    -1,    -1,   674,
+    54,    -1,    56,    57,    -1,    -1,   681,   682,    41,    54,
+    -1,    56,    57,    -1,    -1,    -1,    70,    -1,   693,    -1,
+    -1,    54,    -1,    56,    57,    70,    80,    -1,    -1,    62,
+    -1,  1345,  1364,  1347,    -1,    80,    90,    70,    -1,    93,
+    94,    -1,   717,    88,    -1,    -1,    -1,    80,    93,    -1,
+    -1,    -1,   902,   903,    -1,    88,   906,    -1,    -1,   909,
+    93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   918,    -1,
+    -1,    -1,   922,   923,   924,    -1,    -1,    -1,   928,    -1,
+    -1,    -1,    -1,     3,     4,     5,     6,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,  1415,  1416,  1417,  1418,    -1,    -1,   782,    -1,    -1,
    785,    -1,    -1,    -1,    -1,    -1,   966,   967,   968,    -1,
-    -1,    -1,     1,    -1,     3,     4,     5,     6,     7,     8,
-     9,    -1,    -1,    -1,    -1,    14,    -1,    -1,    -1,    -1,
-    -1,    -1,   817,   818,   819,    -1,    -1,  1461,    -1,    28,
-    -1,    30,    31,    32,   829,    -1,    -1,    36,    37,    -1,
-    -1,  1011,    41,    -1,    -1,    -1,    45,    46,    -1,    48,
-  1502,    -1,    -1,    -1,    -1,    54,    -1,    56,    57,    -1,
+    -1,    41,     1,    -1,     3,     4,     5,     6,     7,     8,
+     9,    -1,    -1,    -1,    54,    14,    56,    57,    -1,    -1,
+    60,    -1,   817,   818,   819,    -1,    -1,  1461,    -1,    28,
+    70,    30,    31,    32,   829,    -1,    -1,    36,    37,    -1,
+    80,  1011,    41,    -1,    -1,    -1,    45,    46,    88,    48,
+  1502,    -1,    -1,    93,    -1,    54,    -1,    56,    57,    -1,
     -1,    60,    -1,    62,    -1,    -1,  1500,  1501,  1502,  1503,
     -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     -1,    80,  1534,    -1,    -1,    -1,    -1,    -1,    -1,    88,
     -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,  1532,  1533,
-  1534,  1553,    -1,    -1,     4,     5,    -1,   902,   903,     9,
+  1534,  1553,    -1,    -1,    -1,    -1,    -1,   902,   903,    -1,
    109,   906,    -1,    -1,   909,    -1,    -1,    -1,  1552,    -1,
     -1,    -1,    -1,   918,  1558,    -1,    -1,    -1,    -1,    -1,
-    -1,    31,    -1,   928,    -1,     3,     4,     5,     6,     7,
-     8,     9,    -1,    -1,    12,    -1,    14,    47,    -1,    -1,
-    -1,    -1,    -1,    -1,    54,    -1,    56,    57,    -1,    -1,
+    -1,    -1,    -1,   928,    -1,     3,     4,     5,     6,     7,
+     8,     9,    -1,    -1,    12,    -1,    14,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     28,    -1,    30,    31,    -1,    -1,    -1,    -1,    36,    -1,
-    70,    -1,    -1,    41,    -1,    -1,    -1,    45,  1148,    -1,
-    80,  1151,  1152,  1153,    -1,    -1,    54,    -1,    56,    57,
-    90,    -1,    -1,    93,    94,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    41,    -1,    -1,    -1,    45,  1148,    -1,
+    -1,  1151,  1152,  1153,    -1,    -1,    54,    -1,    56,    57,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     -1,    -1,    70,    -1,    -1,  1175,  1176,  1177,  1178,  1179,
   1180,  1181,    80,    -1,     1,  1185,     3,     4,     5,     6,
     88,     8,     9,    10,    11,    93,    13,    14,    -1,    -1,
@@ -3873,35 +3873,35 @@ static const short yycheck[] = {     4,
     -1,    -1,    -1,    -1,    -1,    -1,    80,    -1,    -1,    28,
     -1,    30,    31,    -1,    88,    -1,    -1,    36,    -1,    93,
     -1,    -1,    41,    -1,    -1,    -1,    45,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    54,    -1,    56,    57,     4,
-     5,    -1,     7,     8,     9,    -1,    -1,    -1,    -1,    14,
+    -1,    -1,    -1,    -1,    -1,    54,    -1,    56,    57,    -1,
+    -1,    -1,    -1,    31,    -1,    -1,    -1,    -1,    -1,    -1,
     -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    80,    -1,    28,    -1,    30,    31,    -1,    -1,    88,
-    -1,    36,    -1,    -1,    93,    -1,    -1,    -1,    -1,    -1,
-    45,    -1,    -1,    48,    -1,    -1,    -1,    -1,    -1,    54,
-    -1,    56,    57,    63,    64,    65,    66,    67,    68,    69,
-    70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
-    80,    81,    82,    83,    84,    63,    64,    65,    66,    67,
-    68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
-    78,    79,    80,    81,    82,    83,    84,    -1,    -1,    -1,
-    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    59,    -1,    -1,   107,
-    63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
-    73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
-    83,    84,    62,    63,    64,    65,    66,    67,    68,    69,
-    70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
-    80,    81,    82,    83,    84,    63,    64,    65,    66,    67,
+    -1,    80,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    88,
+    -1,    -1,    -1,    -1,    93,    63,    64,    65,    66,    67,
     68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
     78,    79,    80,    81,    82,    83,    84,    63,    64,    65,
-    66,    67,    68,    69,    70,    71,    72,    73,    74,    -1,
-    76,    77,    78,    79,    80,    81,    82,    83,    84,    67,
-    68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
-    78,    79,    80,    81,    82,    83,    84,    68,    69,    70,
-    71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
-    81,    82,    83,    84
+    66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
+    76,    77,    78,    79,    80,    81,    82,    83,    84,    63,
+    64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
+    74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
+    84,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    59,    -1,    -1,   107,    63,    64,    65,    66,    67,    68,
+    69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
+    79,    80,    81,    82,    83,    84,    62,    63,    64,    65,
+    66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
+    76,    77,    78,    79,    80,    81,    82,    83,    84,    63,
+    64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
+    74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
+    84,    63,    64,    65,    66,    67,    68,    69,    70,    71,
+    72,    73,    74,    -1,    76,    77,    78,    79,    80,    81,
+    82,    83,    84,    67,    68,    69,    70,    71,    72,    73,
+    74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
+    84,    68,    69,    70,    71,    72,    73,    74,    75,    76,
+    77,    78,    79,    80,    81,    82,    83,    84
 };
 /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
-#line 3 "/usr/lib/bison.simple"
+#line 3 "/usr/cygnus/gnupro-98r2/share/bison.simple"
 
 /* Skeleton output parser for bison,
    Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
@@ -4094,7 +4094,7 @@ __yy_memcpy (char *to, char *from, int count)
 #endif
 #endif
 \f
-#line 196 "/usr/lib/bison.simple"
+#line 196 "/usr/cygnus/gnupro-98r2/share/bison.simple"
 
 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
    into yyparse.  The argument should have type void *.
@@ -8183,7 +8183,7 @@ case 880:
     break;}
 }
    /* the action file gets copied in in place of this dollarsign */
-#line 498 "/usr/lib/bison.simple"
+#line 498 "/usr/cygnus/gnupro-98r2/share/bison.simple"
 \f
   yyvsp -= yylen;
   yyssp -= yylen;
index 677730c..c51b989 100644 (file)
@@ -3123,7 +3123,7 @@ new_declarator:
 
 /* ANSI direct-new-declarator (5.3.4) */
 direct_new_declarator:
-         '[' expr ']'
+         '[' nonmomentary_expr ']'
                { $$ = build_parse_node (ARRAY_REF, NULL_TREE, $2); }
        | direct_new_declarator '[' nonmomentary_expr ']'
                { $$ = build_parse_node (ARRAY_REF, $$, $3); }