[Scummvm-git-logs] scummvm master -> 8e5702b0be248963a42bc181490a2669e0873b24

sev- noreply at scummvm.org
Sat Nov 20 00:19:52 UTC 2021


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
8e5702b0be DIRECTOR: handle method end statements


Commit: 8e5702b0be248963a42bc181490a2669e0873b24
    https://github.com/scummvm/scummvm/commit/8e5702b0be248963a42bc181490a2669e0873b24
Author: Misty De Meo (mistydemeo at gmail.com)
Date: 2021-11-20T01:19:49+01:00

Commit Message:
DIRECTOR: handle method end statements

Co-authored-by: djsrv <dservilla at gmail.com>

Changed paths:
    engines/director/lingo/lingo-gr.cpp
    engines/director/lingo/lingo-gr.y


diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index fd74bb74e8..8a9afa2efb 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -641,16 +641,16 @@ union yyalloc
 /* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  191
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   4445
+#define YYLAST   4428
 
 /* YYNTOKENS -- Number of terminals.  */
 #define YYNTOKENS  102
 /* YYNNTS -- Number of nonterminals.  */
 #define YYNNTS  65
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  325
+#define YYNRULES  326
 /* YYNSTATES -- Number of states.  */
-#define YYNSTATES  607
+#define YYNSTATES  610
 
 /* YYMAXUTOK -- Last valid token kind.  */
 #define YYMAXUTOK   342
@@ -710,37 +710,37 @@ static const yytype_int16 yyrline[] =
 {
        0,   201,   201,   203,   209,   216,   217,   218,   219,   220,
      221,   250,   254,   256,   258,   259,   262,   268,   275,   276,
-     281,   285,   289,   290,   291,   298,   299,   300,   301,   302,
+     277,   282,   286,   290,   291,   292,   299,   300,   301,   302,
      303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
      313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
      323,   324,   325,   326,   327,   328,   329,   330,   331,   332,
      333,   334,   335,   336,   337,   338,   339,   340,   341,   342,
-     343,   344,   345,   346,   347,   348,   349,   350,   353,   354,
+     343,   344,   345,   346,   347,   348,   349,   350,   351,   354,
      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
-     365,   366,   367,   368,   369,   370,   371,   374,   375,   376,
-     379,   383,   393,   394,   397,   398,   399,   400,   401,   402,
-     405,   406,   407,   410,   411,   412,   413,   414,   415,   416,
-     417,   422,   423,   424,   425,   426,   427,   430,   433,   438,
-     442,   448,   453,   456,   461,   467,   467,   473,   478,   484,
-     490,   496,   504,   505,   506,   507,   510,   510,   512,   513,
-     514,   517,   521,   525,   531,   535,   539,   543,   544,   546,
-     548,   550,   552,   556,   560,   564,   566,   567,   571,   577,
-     584,   585,   588,   589,   593,   599,   606,   607,   613,   614,
+     365,   366,   367,   368,   369,   370,   371,   372,   375,   376,
+     377,   380,   384,   394,   395,   398,   399,   400,   401,   402,
+     403,   406,   407,   408,   411,   412,   413,   414,   415,   416,
+     417,   418,   423,   424,   425,   426,   427,   428,   431,   434,
+     439,   443,   449,   454,   457,   462,   468,   468,   474,   479,
+     485,   491,   497,   505,   506,   507,   508,   511,   511,   513,
+     514,   515,   518,   522,   526,   532,   536,   540,   544,   545,
+     547,   549,   551,   553,   557,   561,   565,   567,   568,   572,
+     578,   585,   586,   589,   590,   594,   600,   607,   608,   614,
      615,   616,   617,   618,   619,   620,   621,   622,   623,   624,
-     625,   628,   630,   631,   634,   635,   638,   639,   640,   642,
-     644,   646,   648,   650,   652,   654,   656,   659,   660,   661,
-     662,   665,   666,   669,   674,   677,   682,   688,   689,   690,
-     691,   692,   695,   696,   697,   698,   699,   702,   704,   705,
-     706,   707,   708,   709,   710,   711,   712,   713,   717,   718,
-     719,   720,   721,   724,   724,   726,   727,   730,   731,   732,
-     733,   734,   737,   738,   739,   742,   746,   751,   752,   753,
-     756,   757,   760,   761,   765,   766,   767,   768,   769,   770,
+     625,   626,   629,   631,   632,   635,   636,   639,   640,   641,
+     643,   645,   647,   649,   651,   653,   655,   657,   660,   661,
+     662,   663,   666,   667,   670,   675,   678,   683,   689,   690,
+     691,   692,   693,   696,   697,   698,   699,   700,   703,   705,
+     706,   707,   708,   709,   710,   711,   712,   713,   714,   718,
+     719,   720,   721,   722,   725,   725,   727,   728,   731,   732,
+     733,   734,   735,   738,   739,   740,   743,   747,   752,   753,
+     754,   757,   758,   761,   762,   766,   767,   768,   769,   770,
      771,   772,   773,   774,   775,   776,   777,   778,   779,   780,
-     781,   782,   783,   790,   791,   792,   793,   794,   795,   796,
+     781,   782,   783,   784,   791,   792,   793,   794,   795,   796,
      797,   798,   799,   800,   801,   802,   803,   804,   805,   806,
-     807,   808,   811,   812,   813,   814,   815,   816,   817,   818,
+     807,   808,   809,   812,   813,   814,   815,   816,   817,   818,
      819,   820,   821,   822,   823,   824,   825,   826,   827,   828,
-     831,   832,   835,   836,   839,   843
+     829,   832,   833,   836,   837,   840,   844
 };
 #endif
 
@@ -809,7 +809,7 @@ static const yytype_int16 yytoknum[] =
 };
 #endif
 
-#define YYPACT_NINF (-512)
+#define YYPACT_NINF (-507)
 
 #define yypact_value_is_default(Yyn) \
   ((Yyn) == YYPACT_NINF)
@@ -823,67 +823,67 @@ static const yytype_int16 yytoknum[] =
      STATE-NUM.  */
 static const yytype_int16 yypact[] =
 {
-    2901,  -512,  3465,  -512,  -512,  -512,  -512,     8,  -512,   -16,
-    -512,  3465,  1849,     8,  1945,  -512,  -512,  3465,  -512,    31,
-    -512,  -512,  2041,    16,  3544,  -512,    -8,  -512,  -512,  3465,
-    2041,  1849,  3465,  -512,  -512,  -512,  -512,  -512,  -512,  -512,
-    -512,  -512,  -512,  -512,  -512,  -512,  -512,  -512,  -512,  -512,
-    -512,  -512,  -512,  -512,  -512,  -512,  -512,  -512,  -512,  -512,
-    -512,  -512,  -512,  -512,  -512,  -512,  1945,  3465,  3465,     3,
-    3780,  -512,    68,  2901,  -512,  -512,  -512,  -512,  2041,  -512,
-    -512,  -512,  -512,  -512,  -512,  -512,  -512,  -512,  -512,  -512,
-    -512,  -512,  -512,  -512,  -512,  -512,  -512,  -512,  -512,  -512,
-    -512,  -512,  -512,  -512,  -512,  -512,  -512,  -512,  -512,  -512,
-    -512,  -512,  -512,    77,  -512,  -512,  2137,  2137,  1945,  1945,
-    1945,  1945,    61,     6,    27,  -512,  -512,    59,   -12,  -512,
-    -512,  -512,  -512,  2137,  2137,  2137,  2137,  1945,  1945,  2233,
-    1945,  1945,  1945,  1945,  3623,  1945,  2233,  2233,  1369,   791,
-      62,    67,    81,  -512,  -512,  -512,  -512,  -512,  -512,  -512,
-    -512,  -512,  -512,   889,  -512,    87,  1945,   691,  3465,    89,
-      98,   985,  3465,  1945,  3465,  -512,  -512,    -2,  -512,  -512,
-     100,   103,  1081,   104,   107,   108,   517,   109,  3465,  -512,
-    -512,  -512,  -512,   111,  1177,  -512,  3465,  1465,  -512,  -512,
-    -512,   363,   386,   503,   597,   135,  -512,  -512,  -512,  3465,
-    -512,  -512,  1273,  4272,  -512,   -45,    32,    35,    65,    76,
-     135,   161,   179,  4219,  -512,  -512,  -512,  3951,   110,   112,
-     114,   -58,   -11,  -512,  4272,   115,   116,  1561,  -512,  -512,
-     182,  1945,  1945,  1945,  1945,  2617,  2617,  2809,  1945,  2713,
-    2713,  1945,  1945,  1945,  1945,  1945,  1945,  1945,  1945,  -512,
-    -512,  4041,  -512,  -512,  4028,  2980,  1945,  1945,  1945,  1945,
-    1945,   121,  -512,  -512,  3702,  3702,  3702,   -13,  4054,   189,
-    -512,  -512,  1945,   -61,  -512,  1945,  -512,  -512,  -512,  3780,
-    3059,  -512,   124,  -512,  -512,  -512,  3971,  2233,  1945,  2233,
-    1945,  2233,  1945,  2233,  1945,  -512,  -512,  -512,  -512,    43,
-    -512,   184,  4285,  -512,  -512,  -512,  -512,  -512,  -512,  -512,
-    -512,  -512,  -512,  2329,  2425,  2233,  2233,  1657,  -512,  1945,
-    1945,  -512,  1945,  3386,  -512,  -512,  1945,  -512,   125,  1945,
-      26,    26,    26,    26,  4351,  4351,  -512,    72,    26,    26,
-      26,    26,    72,    15,    15,  -512,  -512,   125,  1945,  1945,
-    1945,  1945,  1945,  1945,  1945,  1945,  1945,  1945,  1945,  1945,
-    1945,  1945,  1945,  1945,  1945,  1945,  -512,  3296,   204,  3059,
-      61,  -512,   127,  -512,   129,   130,  1945,  1945,  3059,  2521,
-    4108,  3465,  -512,  -512,  -512,   -61,  -512,  4121,  -512,  -512,
-    -512,   140,  3059,  -512,  3059,  1753,  -512,  3832,  -512,  3845,
-    -512,  3865,  -512,  3918,  -512,  -512,  2233,  1945,    43,    43,
-      43,    43,  2233,  2233,    43,  2233,  2233,  -512,  -512,  -512,
-    -512,  -512,  -512,  -512,   125,  4272,  4272,  4272,   110,   112,
-     132,  -512,  4272,  1945,   133,  4272,  -512,    26,    26,    26,
-      26,  4351,  4351,  -512,    72,    26,    26,    26,    26,    72,
-      15,    15,  -512,  -512,   125,  -512,  -512,    -3,  3296,  -512,
-    3138,  -512,  -512,  -512,  -512,  4134,     2,   149,  1945,  1945,
-    1945,  1945,  -512,  -512,  -512,  3465,  -512,  -512,   160,  -512,
-     247,  -512,   125,  2233,  2233,  2233,  2233,  -512,  4272,  2233,
-    2233,  2233,  2233,  -512,   229,   197,  -512,  -512,   170,  -512,
-    -512,  3217,   164,  -512,  -512,  3296,  -512,  3059,   235,  1945,
-     178,  -512,  4298,  -512,  3938,  4298,  4298,   180,  -512,  3465,
-     176,  -512,  -512,  -512,  -512,  -512,  -512,  -512,  -512,   207,
-    2233,  -512,  -512,  3296,  -512,  -512,   194,   195,  1945,  4188,
-    -512,  1945,  1945,  1945,  1945,  1945,  1945,  1945,  1945,  1945,
-    1945,  1945,  1945,  1945,  1945,  1945,  1945,   211,  3059,    83,
-    -512,  2233,   194,  -512,   187,  4201,  3059,    34,    34,    34,
-     333,   333,  -512,    94,    34,    34,    34,    34,    94,    53,
-      53,  -512,  -512,  1945,  -512,  -512,  -512,  -512,  -512,  3059,
-     202,  4298,   203,   191,   196,  -512,  -512
+    2904,  -507,  3468,  -507,  -507,  -507,  -507,    34,  -507,   -14,
+    -507,  3468,  1852,    34,  1948,  -507,  -507,  3468,  -507,     6,
+    -507,  -507,  2044,   112,  3547,  -507,   -61,  -507,  -507,  3468,
+    2044,  1852,  3468,  -507,  -507,  -507,  -507,  -507,  -507,  -507,
+    -507,  -507,  -507,  -507,  -507,  -507,  -507,  -507,  -507,  -507,
+    -507,  -507,  -507,  -507,  -507,  -507,  -507,  -507,  -507,  -507,
+    -507,  -507,  -507,  -507,  -507,  -507,  1948,  3468,  3468,   -47,
+    3783,  -507,    75,  2904,  -507,  -507,  -507,  -507,  2044,  -507,
+    -507,  -507,  -507,  -507,  -507,  -507,  -507,  -507,  -507,  -507,
+    -507,  -507,  -507,  -507,  -507,  -507,  -507,  -507,  -507,  -507,
+    -507,  -507,  -507,  -507,  -507,  -507,  -507,  -507,  -507,  -507,
+    -507,  -507,  -507,   -64,  -507,  -507,  2140,  2140,  1948,  1948,
+    1948,  1948,    27,    22,    30,  -507,  -507,    43,    23,  -507,
+    -507,  -507,  -507,  2140,  2140,  2140,  2140,  1948,  1948,  2236,
+    1948,  1948,  1948,  1948,  3626,  1948,  2236,  2236,  1372,   794,
+      46,    51,    56,  -507,  -507,  -507,  -507,  -507,  -507,  -507,
+    -507,  -507,  -507,   892,  -507,    62,  1948,  3901,  3468,    64,
+      85,   988,  3468,  1948,  3468,  -507,  -507,    -5,  -507,  -507,
+      87,    99,  1084,   100,   108,   109,   693,   116,  3468,  -507,
+    -507,  -507,  -507,   118,  1180,  -507,  3468,  1468,  -507,  -507,
+    -507,   364,   387,   440,   515,    67,  -507,  -507,  -507,  3468,
+    -507,  -507,  1276,  4202,  -507,   -33,    10,    15,    19,    48,
+      67,   138,   162,  4189,  -507,  -507,  -507,  3921,   113,   114,
+     117,   -48,   -12,  -507,  4202,   119,   120,  1564,  -507,  -507,
+     194,  1948,  1948,  1948,  1948,  2620,  2620,  2812,  1948,  2716,
+    2716,  1948,  1948,  1948,  1948,  1948,  1948,  1948,  1948,  -507,
+    -507,  4011,  -507,  -507,  3954,  2983,  1948,  1948,  1948,  1948,
+    1948,   126,  -507,  -507,  3705,  3705,  3705,     7,  4024,   196,
+    -507,  -507,  1948,     3,  -507,  1948,  -507,  -507,  -507,  3783,
+    3062,  -507,   127,  -507,  -507,  -507,  3934,  2236,  1948,  2236,
+    1948,  2236,  1948,  2236,  1948,  -507,  -507,  -507,  -507,    24,
+    -507,   199,  4255,  -507,  -507,  -507,  -507,  -507,  -507,  -507,
+    -507,  -507,  -507,  2332,  2428,  2236,  2236,  1660,  -507,  1948,
+    1948,  -507,  1948,  3389,  -507,  -507,  1948,  -507,   134,  1948,
+      81,    81,    81,    81,  4281,  4281,  -507,    71,    81,    81,
+      81,    81,    71,   -31,   -31,  -507,  -507,   134,  1948,  1948,
+    1948,  1948,  1948,  1948,  1948,  1948,  1948,  1948,  1948,  1948,
+    1948,  1948,  1948,  1948,  1948,  1948,  -507,  3299,   215,  3062,
+      27,  -507,   137,  -507,   139,   161,  1948,  1948,  3062,  2524,
+    4037,  3468,  3468,  -507,  -507,  -507,     3,  -507,  4091,  -507,
+    -507,  -507,   171,  3062,  -507,  3062,  1756,  -507,   568,  -507,
+     598,  -507,  3835,  -507,  3848,  -507,  -507,  2236,  1948,    24,
+      24,    24,    24,  2236,  2236,    24,  2236,  2236,  -507,  -507,
+    -507,  -507,  -507,  -507,  -507,   134,  4202,  4202,  4202,   113,
+     114,   158,  -507,  4202,  1948,   160,  4202,  -507,    81,    81,
+      81,    81,  4281,  4281,  -507,    71,    81,    81,    81,    81,
+      71,   -31,   -31,  -507,  -507,   134,  -507,  -507,    -2,  3299,
+    -507,  3141,  -507,  -507,  -507,  -507,  4104,    12,   182,  1948,
+    1948,  1948,  1948,  -507,  -507,  -507,    73,  3468,  -507,  -507,
+     173,  -507,   260,  -507,   134,  2236,  2236,  2236,  2236,  -507,
+    4202,  2236,  2236,  2236,  2236,  -507,   245,   204,  -507,  -507,
+     177,  -507,  -507,  3220,   183,  -507,  -507,  3299,  -507,  3062,
+     243,  1948,   185,  -507,  4268,  -507,  3868,  4268,  4268,  -507,
+     186,  -507,  3468,   184,  -507,  -507,  -507,  -507,  -507,  -507,
+    -507,  -507,   216,  2236,  -507,  -507,  3299,  -507,  -507,   203,
+     206,  1948,  4117,  -507,  1948,  1948,  1948,  1948,  1948,  1948,
+    1948,  1948,  1948,  1948,  1948,  1948,  1948,  1948,  1948,  1948,
+     218,  3062,    83,  -507,  2236,   203,  -507,   198,  4171,  3062,
+      95,    95,    95,  4334,  4334,  -507,   107,    95,    95,    95,
+      95,   107,   -26,   -26,  -507,  -507,  1948,  -507,  -507,  -507,
+    -507,  -507,  3062,   210,  4268,   212,   205,   224,  -507,  -507
 };
 
   /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -891,91 +891,91 @@ static const yytype_int16 yypact[] =
      means the default is an error.  */
 static const yytype_int16 yydefact[] =
 {
-       0,    25,    22,    32,    39,    63,    73,    37,    38,     0,
-      40,    97,   127,    41,     0,    42,    44,     0,    55,    56,
-      59,    61,   127,    62,     0,    71,     0,    74,    72,     0,
-     127,   127,    97,    30,    60,    57,    54,    29,    31,    35,
-      68,    33,    34,    45,    46,    48,    49,    76,    77,    26,
-      27,    28,    50,    65,    36,    47,    51,    52,    53,    58,
-      69,    70,    66,    67,    43,    75,     0,    97,     0,     0,
-      64,     5,     0,     2,     3,     6,     7,     8,   127,     9,
-     102,   104,   110,   111,   112,   105,   106,   107,   108,   109,
-      80,    37,    79,    81,    83,    84,    41,    85,    87,    56,
-      93,    62,    94,    96,    82,    90,    91,    86,    95,    92,
-      89,    88,    64,     0,    78,    23,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   123,   100,     0,    98,   178,
-     179,   181,   180,    32,    39,    63,    73,    40,    55,    57,
-      33,    45,    48,    76,    69,    67,     0,     0,     0,   322,
-     191,     0,     0,   262,   186,   187,   188,   189,   220,   221,
-     190,   263,   264,   135,   265,     0,     0,     0,    97,     0,
-       0,   135,     0,     0,    69,   191,   194,     0,   195,   165,
-       0,     0,   135,     0,     0,     0,     0,     0,    97,   103,
-     126,     1,     4,     0,   135,    10,     0,     0,   197,   213,
-     196,     0,     0,     0,     0,     0,   124,   122,   148,    99,
-     211,   212,   137,   138,   182,    26,    27,    28,    50,    65,
-      47,    58,   217,     0,   260,   261,   132,     0,   181,   180,
-       0,   191,     0,   255,   324,     0,   323,     0,   115,   116,
-      59,     0,     0,     0,     0,    30,    60,    54,     0,    35,
-      68,     0,     0,     0,     0,     0,     0,     0,   136,   128,
-     283,   135,   284,   125,     0,     0,     0,     0,     0,     0,
-       0,     0,   121,   114,    44,    29,    31,     0,     0,   245,
-     146,   147,     0,    14,   119,    74,   117,   118,   150,     0,
-     166,   149,     0,   113,    24,   214,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   207,   209,   210,   208,     0,
-     101,    59,   141,   228,   229,   230,   231,   232,   233,   234,
-     235,   236,   237,     0,     0,     0,     0,     0,   185,     0,
-       0,   253,     0,     0,   254,   252,     0,   183,   135,     0,
-     275,   276,   273,   274,   277,   278,   270,   280,   281,   282,
-     272,   271,   279,   266,   267,   268,   269,   135,     0,     0,
+       0,    26,    23,    33,    40,    64,    74,    38,    39,     0,
+      41,    98,   128,    42,     0,    43,    45,     0,    56,    57,
+      60,    62,   128,    63,     0,    72,     0,    75,    73,     0,
+     128,   128,    98,    31,    61,    58,    55,    30,    32,    36,
+      69,    34,    35,    46,    47,    49,    50,    77,    78,    27,
+      28,    29,    51,    66,    37,    48,    52,    53,    54,    59,
+      70,    71,    67,    68,    44,    76,     0,    98,     0,     0,
+      65,     5,     0,     2,     3,     6,     7,     8,   128,     9,
+     103,   105,   111,   112,   113,   106,   107,   108,   109,   110,
+      81,    38,    80,    82,    84,    85,    42,    86,    88,    57,
+      94,    63,    95,    97,    83,    91,    92,    87,    96,    93,
+      90,    89,    65,     0,    79,    24,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   124,   101,     0,    99,   179,
+     180,   182,   181,    33,    40,    64,    74,    41,    56,    58,
+      34,    46,    49,    77,    70,    68,     0,     0,     0,   323,
+     192,     0,     0,   263,   187,   188,   189,   190,   221,   222,
+     191,   264,   265,   136,   266,     0,     0,     0,    98,     0,
+       0,   136,     0,     0,    70,   192,   195,     0,   196,   166,
+       0,     0,   136,     0,     0,     0,     0,     0,    98,   104,
+     127,     1,     4,     0,   136,    10,     0,     0,   198,   214,
+     197,     0,     0,     0,     0,     0,   125,   123,   149,   100,
+     212,   213,   138,   139,   183,    27,    28,    29,    51,    66,
+      48,    59,   218,     0,   261,   262,   133,     0,   182,   181,
+       0,   192,     0,   256,   325,     0,   324,     0,   116,   117,
+      60,     0,     0,     0,     0,    31,    61,    55,     0,    36,
+      69,     0,     0,     0,     0,     0,     0,     0,   137,   129,
+     284,   136,   285,   126,     0,     0,     0,     0,     0,     0,
+       0,     0,   122,   115,    45,    30,    32,     0,     0,   246,
+     147,   148,     0,    14,   120,    75,   118,   119,   151,     0,
+     167,   150,     0,   114,    25,   215,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   208,   210,   211,   209,     0,
+     102,    60,   142,   229,   230,   231,   232,   233,   234,   235,
+     236,   237,   238,     0,     0,     0,     0,     0,   186,     0,
+       0,   254,     0,     0,   255,   253,     0,   184,   136,     0,
+     276,   277,   274,   275,   278,   279,   271,   281,   282,   283,
+     273,   272,   280,   267,   268,   269,   270,   136,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   136,   130,   172,   151,   166,
-      69,   192,     0,   193,     0,     0,     0,     0,   166,     0,
-       0,     0,    18,    19,    12,    15,    16,     0,   163,   170,
-     171,     0,   167,   168,   166,     0,   198,     0,   202,     0,
-     204,     0,   200,     0,   243,   244,     0,     0,    34,    46,
-      49,    77,    51,    52,    53,    66,    67,   219,   223,   222,
-     218,   320,   321,   133,   135,   259,   257,   258,     0,     0,
-       0,   256,   325,   136,     0,   140,   129,   294,   295,   292,
-     293,   296,   297,   289,   299,   300,   301,   291,   290,   298,
-     285,   286,   287,   288,   135,   176,   177,   157,   173,   174,
-       0,    11,   142,   143,   144,     0,     0,     0,    51,    52,
-      66,    67,   246,   247,   145,    97,    17,   120,     0,   169,
-      21,   215,   135,     0,     0,     0,     0,   206,   139,     0,
-       0,     0,     0,   227,     0,     0,   225,   226,     0,   184,
-     131,     0,     0,   152,   175,   172,   153,   166,     0,     0,
-       0,   302,   248,   303,     0,   250,   251,     0,   164,    22,
-       0,   199,   203,   205,   201,   238,   240,   241,   239,     0,
-       0,   242,   134,   172,   155,   158,   157,     0,     0,     0,
-     159,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   166,     0,
-     216,     0,   157,   154,     0,     0,   166,   312,   313,   311,
-     314,   315,   308,   317,   318,   319,   310,   309,   316,   304,
-     305,   306,   307,     0,    13,    20,   224,   156,   162,   166,
-       0,   249,     0,     0,     0,   160,   161
+       0,     0,     0,     0,     0,   137,   131,   173,   152,   167,
+      70,   193,     0,   194,     0,     0,     0,     0,   167,     0,
+       0,    23,     0,    18,    19,    12,    15,    16,     0,   164,
+     171,   172,     0,   168,   169,   167,     0,   199,     0,   203,
+       0,   205,     0,   201,     0,   244,   245,     0,     0,    35,
+      47,    50,    78,    52,    53,    54,    67,    68,   220,   224,
+     223,   219,   321,   322,   134,   136,   260,   258,   259,     0,
+       0,     0,   257,   326,   137,     0,   141,   130,   295,   296,
+     293,   294,   297,   298,   290,   300,   301,   302,   292,   291,
+     299,   286,   287,   288,   289,   136,   177,   178,   158,   174,
+     175,     0,    11,   143,   144,   145,     0,     0,     0,    52,
+      53,    67,    68,   247,   248,   146,     0,    98,    17,   121,
+       0,   170,    22,   216,   136,     0,     0,     0,     0,   207,
+     140,     0,     0,     0,     0,   228,     0,     0,   226,   227,
+       0,   185,   132,     0,     0,   153,   176,   173,   154,   167,
+       0,     0,     0,   303,   249,   304,     0,   251,   252,    20,
+       0,   165,    23,     0,   200,   204,   206,   202,   239,   241,
+     242,   240,     0,     0,   243,   135,   173,   156,   159,   158,
+       0,     0,     0,   160,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,   167,     0,   217,     0,   158,   155,     0,     0,   167,
+     313,   314,   312,   315,   316,   309,   318,   319,   320,   311,
+     310,   317,   305,   306,   307,   308,     0,    13,    21,   225,
+     157,   163,   167,     0,   250,     0,     0,     0,   161,   162
 };
 
   /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
-    -512,  -512,  -512,   220,  -512,  -512,  -512,  -512,  -512,  -100,
-    -512,  -232,     0,     9,   -27,  -512,     1,  -363,   -66,  -512,
-      28,  -234,   284,  -512,  -512,  -512,  -512,  -512,  -511,  -512,
-    -512,  -512,  -367,  -512,   -86,  -486,  -512,  -149,   -83,   -22,
-    -127,  -512,    -4,  -512,  -512,    21,  -512,     5,  -184,  -512,
-    -512,  -250,  -512,  -512,  -512,  -512,    -1,  -512,   201,    -6,
-     113,  -252,   157,  -512,  -230
+    -507,  -507,  -507,   226,  -507,  -507,  -507,  -507,  -507,   -75,
+    -507,  -378,     0,     9,   -27,  -507,     1,  -362,   -66,  -507,
+      49,  -239,   291,  -507,  -507,  -507,  -507,  -507,  -506,  -507,
+    -507,  -507,  -369,  -507,   -78,  -496,  -507,  -142,   -42,   -22,
+     -83,  -507,    -4,  -507,  -507,   -25,  -507,     5,  -176,  -507,
+    -507,  -213,  -507,  -507,  -507,  -507,    -1,  -507,   201,    -6,
+     129,  -253,   157,  -507,  -230
 };
 
   /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
-       0,    72,    73,    74,    75,    76,   393,   394,   395,   396,
-      77,   113,   114,   150,   127,   128,   400,    80,    81,    82,
-     151,   259,   152,    83,   282,    84,    85,    86,   513,    87,
-      88,    89,   401,   402,   403,   467,   468,   469,   153,   154,
-     382,   177,   155,   309,   156,   198,   157,   427,   428,   158,
-     159,   416,   178,   482,   160,   232,   233,   161,   162,   234,
-     261,   522,   164,   235,   236
+       0,    72,    73,    74,    75,    76,   394,   395,   396,   397,
+      77,   113,   114,   150,   127,   128,   401,    80,    81,    82,
+     151,   259,   152,    83,   282,    84,    85,    86,   515,    87,
+      88,    89,   402,   403,   404,   468,   469,   470,   153,   154,
+     382,   177,   155,   309,   156,   198,   157,   428,   429,   158,
+     159,   417,   178,   483,   160,   232,   233,   161,   162,   234,
+     261,   524,   164,   235,   236
 };
 
   /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
@@ -984,305 +984,329 @@ static const yytype_int16 yydefgoto[] =
 static const yytype_int16 yytable[] =
 {
       78,    79,   176,   123,   190,   185,   163,   338,   167,   165,
-     386,   115,   471,   511,   466,   124,   171,   518,   116,   117,
-     126,   477,   391,   313,   182,   163,   168,   376,   357,   546,
-     314,   387,   280,   175,   392,   573,   519,   490,   180,   237,
-     187,   126,   281,   332,   241,   242,   243,   244,   266,   267,
-     170,   268,   172,   173,   248,   269,   270,   572,   181,   183,
-     186,   597,   169,   118,   268,   119,   414,   120,   191,   121,
-      78,   415,   194,    78,    79,   268,   126,   188,   248,   125,
-     260,   512,   122,   556,   209,   333,   557,   179,   260,   334,
-     251,   252,   253,   254,   255,   256,   257,   434,   189,   260,
-     315,   206,   556,   317,   444,   466,   193,   316,   256,   257,
-     318,   260,   201,   202,   203,   204,   253,   254,   255,   256,
-     257,   268,   207,   446,   562,   563,   564,   565,   566,   260,
-     205,   212,   213,   319,   201,   202,   203,   204,   200,   223,
-     320,   271,   227,   556,   321,   464,   565,   566,   384,   385,
-     547,   322,   466,   222,   208,   200,   210,   211,   231,   237,
-     264,   292,   238,   254,   255,   256,   257,   278,   499,   500,
-     501,   502,   195,   196,   505,   492,   239,   126,   595,   196,
-     466,   277,   263,   279,   272,   563,   564,   565,   566,   323,
-     305,   296,   306,   273,   307,   283,   308,   126,   284,   286,
-     508,   594,   287,   288,   291,   294,   293,   324,   339,   600,
-     417,   329,   336,   330,   331,   335,   379,   389,   310,   404,
-     470,   443,   472,   398,   473,   474,   488,   524,   525,   526,
-     510,   509,   602,   332,   520,   340,   341,   342,   343,   344,
+     472,   115,   391,   486,   513,   467,   171,   124,   268,   478,
+     126,   549,   376,   559,   182,   163,   168,   520,   357,   280,
+     386,   195,   196,   175,   179,   313,   492,   169,   180,   281,
+     187,   126,   314,   576,   116,   117,   521,   415,   189,   237,
+     575,   387,   416,   332,   241,   242,   243,   244,   266,   267,
+     186,   268,   256,   257,   248,   269,   270,   568,   569,   600,
+      78,   170,   194,    78,    79,   191,   126,   188,   315,   181,
+     183,   125,   514,   317,   333,   316,   392,   319,   334,   118,
+     318,   119,   200,   120,   320,   121,   205,   435,   393,   445,
+     251,   252,   253,   254,   255,   256,   257,   467,   122,   200,
+     210,   211,   201,   202,   203,   204,   321,   206,   447,   209,
+     268,   260,   305,   322,   306,   207,   307,   193,   308,   260,
+     268,   212,   213,   248,   201,   202,   203,   204,   208,   223,
+     260,   271,   227,   237,   559,   465,   238,   560,   172,   173,
+     550,   239,   260,   222,   572,   467,   559,   263,   231,   272,
+     264,   292,   254,   255,   256,   257,   323,   278,   529,   196,
+     260,   253,   254,   255,   256,   257,   494,   126,   598,   196,
+     273,   277,   283,   279,   467,   565,   566,   567,   568,   569,
+     324,   296,   384,   385,   284,   286,   510,   126,   566,   567,
+     568,   569,   597,   287,   288,   294,   501,   502,   503,   504,
+     603,   291,   507,   293,   329,   330,   336,   331,   310,   335,
+     339,   379,   405,   399,   389,   418,   512,   526,   527,   528,
+     444,   471,   473,   605,   474,   340,   341,   342,   343,   344,
      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
-     355,   356,   381,   381,   381,   528,   529,   539,   530,   545,
-     344,   345,   346,   348,   349,    78,   378,   540,   542,   548,
-     383,   383,   383,   550,   570,   568,   390,   571,   512,   397,
-     574,   593,   598,   175,   175,   175,   605,   603,   604,    78,
-      78,   606,   407,   192,   409,   486,   411,   569,   413,   577,
-     578,   579,   580,   581,   582,   583,   584,   585,   586,   587,
-     588,   589,   590,   591,   592,   184,   489,   199,   199,   514,
-     262,   541,     0,   435,   436,   312,   437,     0,   262,   430,
-     442,     0,   441,   445,   199,   199,   199,   199,     0,   262,
-     214,   601,   440,     0,     0,     0,     0,   224,   225,     0,
-       0,   262,   447,   448,   449,   450,   451,   452,   453,   454,
-     455,   456,   457,   458,   459,   460,   461,   462,   463,   262,
-       0,     0,     0,     0,     0,   551,   552,    78,   553,    78,
-     475,   476,   556,     0,     0,   557,   558,   559,    78,     0,
-       0,   297,     0,     0,     0,     0,     0,   298,     0,     0,
-     485,     0,    78,     0,    78,   241,   242,   243,   244,   266,
-     267,   498,   268,     0,   299,   248,   269,   270,     0,     0,
-     300,   560,   561,   562,   563,   564,   565,   566,   241,   242,
-     243,   244,   266,   267,     0,   268,     0,   442,   248,   269,
-     270,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   251,   252,   253,   254,   255,   256,   257,   527,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    78,     0,
-      78,   516,     0,     0,   251,   252,   253,   254,   255,   256,
-     257,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   126,     0,     0,     0,   406,     0,
-     408,     0,   410,     0,   412,     0,     0,     0,     0,     0,
-       0,    78,   544,   549,     0,    78,     0,    78,     0,     0,
-       0,     0,     0,     0,   429,   429,   431,   432,     0,     0,
-       0,   301,     0,     0,     0,     0,     0,   302,   115,     0,
-       0,     0,   575,    78,     0,   241,   242,   243,   244,   266,
-     267,   289,   268,     0,     0,   248,   269,   270,     0,   241,
-     242,   243,   244,   266,   267,     0,   268,     0,    78,   248,
-     269,   270,     0,     0,     0,     0,    78,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     483,   251,   252,   253,   254,   255,   256,   257,     0,    78,
-       0,     0,     0,     0,     0,   251,   252,   253,   254,   255,
-     256,   257,   290,     0,     0,     0,     0,   497,     0,     0,
-       0,     0,     0,   503,   504,   303,   506,   507,     0,     0,
-       0,   304,     0,     0,     0,   523,   523,   523,   523,   241,
-     242,   243,   244,   266,   267,     0,   268,     0,     0,   248,
+     355,   356,   381,   381,   381,   533,   475,   490,   511,   332,
+     344,   345,   346,   348,   349,    78,   378,   522,   531,   532,
+     383,   383,   383,   542,   543,   545,   390,   551,   548,   398,
+     553,   571,   573,   175,   175,   175,   574,   514,   596,    78,
+      78,   577,   408,   601,   410,   606,   412,   607,   414,   192,
+     608,   580,   581,   582,   583,   584,   585,   586,   587,   588,
+     589,   590,   591,   592,   593,   594,   595,   199,   199,   609,
+     262,   488,   184,   436,   437,   491,   438,   516,   262,   431,
+     443,   544,   442,   446,   199,   199,   199,   199,     0,   262,
+     214,   312,   441,   604,     0,     0,     0,   224,   225,     0,
+       0,   262,   448,   449,   450,   451,   452,   453,   454,   455,
+     456,   457,   458,   459,   460,   461,   462,   463,   464,   262,
+       0,     0,     0,     0,     0,     0,     0,    78,     0,    78,
+     476,   477,     0,     0,     0,     0,     0,     0,    78,     0,
+       0,     0,   297,     0,     0,     0,     0,     0,   298,     0,
+     115,   487,     0,    78,     0,    78,   241,   242,   243,   244,
+     266,   267,   500,   268,     0,   299,   248,   269,   270,     0,
+       0,   300,     0,     0,     0,     0,     0,     0,     0,   241,
+     242,   243,   244,   266,   267,     0,   268,     0,   443,   248,
      269,   270,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   251,   252,   253,   254,   255,   256,   257,     0,
+     530,     0,     0,     0,     0,     0,     0,     0,   301,    78,
+       0,    78,   518,     0,   302,   251,   252,   253,   254,   255,
+     256,   257,   241,   242,   243,   244,   266,   267,     0,   268,
+       0,     0,   248,   269,   270,     0,   126,     0,   407,     0,
+     409,     0,   411,     0,   413,     0,     0,     0,     0,     0,
+       0,     0,     0,    78,   547,   552,     0,    78,     0,    78,
+       0,     0,     0,     0,   430,   430,   432,   433,   251,   252,
+     253,   254,   255,   256,   257,     0,     0,     0,     0,     0,
+       0,   115,     0,   303,     0,   578,    78,     0,     0,   304,
+       0,     0,     0,     0,     0,     0,     0,   241,   242,   243,
+     244,   266,   267,     0,   268,     0,     0,   248,   269,   270,
+       0,    78,     0,     0,     0,     0,     0,     0,     0,    78,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     484,     0,     0,     0,     0,     0,   495,     0,     0,     0,
+       0,     0,    78,   251,   252,   253,   254,   255,   256,   257,
+     241,   242,   243,   244,   266,   267,     0,   268,   499,     0,
+     248,   269,   270,     0,   505,   506,   496,   508,   509,     0,
+       0,     0,     0,     0,     0,     0,   525,   525,   525,   525,
+     241,   242,   243,   244,   266,   267,     0,   268,     0,     0,
+     248,   269,   270,     0,     0,     0,   251,   252,   253,   254,
+     255,   256,   257,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   521,
-     521,   521,   521,     0,     0,   251,   252,   253,   254,   255,
-     256,   257,     0,     0,   531,   532,   533,   534,     0,     0,
-     535,   536,   537,   538,     0,     0,     0,     0,   523,   523,
+     523,   523,   523,   523,     0,     0,   251,   252,   253,   254,
+     255,   256,   257,     0,     0,     0,   534,   535,   536,   537,
+       0,     0,   538,   539,   540,   541,     0,     0,     0,     0,
+       0,   525,   525,   525,   525,   525,   525,   525,   525,   525,
+     525,   525,   525,   525,   525,   525,   525,   289,     0,     0,
+       0,     0,     0,     0,     0,   241,   242,   243,   244,   266,
+     267,     0,   268,     0,   505,   248,   269,   270,     0,     0,
+       0,     0,     0,   525,     0,   523,   523,   523,   523,   523,
      523,   523,   523,   523,   523,   523,   523,   523,   523,   523,
-     523,   523,   523,   523,   265,     0,     0,     0,     0,     0,
-       0,     0,     0,   241,   242,   243,   244,   266,   267,     0,
-     268,   503,     0,   248,   269,   270,     0,     0,     0,     0,
-     523,     0,   521,   521,   521,   521,   521,   521,   521,   521,
-     521,   521,   521,   521,   521,   521,   521,   521,     0,     0,
-       0,     0,   596,     0,     0,     0,     0,     0,     0,   251,
-     252,   253,   254,   255,   256,   257,     0,     0,     0,     0,
-       0,     0,     0,     0,   521,   129,   130,     1,   228,   229,
-      90,   133,   134,   135,   136,    91,     8,    92,    93,    10,
-      94,    95,    96,    97,    15,    16,    98,    18,    99,    20,
-      21,   100,   101,   102,   103,    25,     0,    27,    28,   104,
-     105,   106,   107,     0,     0,     0,     0,    33,    34,   139,
-      36,    37,    38,     0,    39,    40,   140,    42,   141,    44,
-     142,    46,   143,    48,    49,    50,    51,    52,    53,    54,
-      55,    56,    57,    58,    59,   144,    61,    62,   145,    64,
-      65,   108,   109,   110,   111,     0,     0,     0,   112,     0,
-       0,     0,   146,   147,     0,     0,     0,     0,   166,     0,
-     149,     0,   230,   129,   130,     1,   131,   132,    90,   133,
-     134,   135,   136,    91,     8,    92,    93,    10,    94,    95,
-      96,    97,    15,    16,    98,    18,    99,   240,    21,   100,
-     101,   102,   103,    25,     0,    27,    28,   104,   105,   106,
-     107,   241,   242,   243,   244,   245,   246,   139,   247,    37,
-      38,   248,   249,   250,   140,    42,   141,    44,   142,    46,
-     143,    48,    49,    50,    51,    52,    53,    54,    55,    56,
-      57,    58,    59,   144,    61,    62,   145,    64,    65,   108,
-     109,   110,   111,     0,     0,     0,   112,   251,   252,   253,
-     254,   255,   256,   257,     0,   258,   166,     0,   149,   129,
-     130,     1,   131,   132,    90,   133,   134,   135,   136,    91,
-       8,    92,    93,    10,    94,    95,    96,    97,    15,   274,
-      98,    18,    99,    20,    21,   100,   101,   102,   103,    25,
-       0,    27,    28,   104,   105,   106,   107,   241,   242,   243,
-     244,   245,   246,   139,   247,   275,   276,   248,   249,   250,
-     140,    42,   141,    44,   142,    46,   143,    48,    49,    50,
-      51,    52,    53,    54,    55,    56,    57,    58,    59,   144,
-      61,    62,   145,    64,    65,   108,   109,   110,   111,     0,
-       0,     0,   112,   251,   252,   253,   254,   255,   256,   257,
-       0,   258,   166,     0,   149,   129,   130,     1,   131,   132,
-      90,   133,   134,   135,   136,    91,     8,    92,    93,    10,
-      94,    95,    96,    97,    15,    16,    98,    18,    99,    20,
-      21,   100,   101,   102,   103,    25,     0,   285,    28,   104,
-     105,   106,   107,   241,   242,   243,   244,   245,   246,   139,
-     247,    37,    38,   248,   249,   250,   140,    42,   141,    44,
-     142,    46,   143,    48,    49,    50,    51,    52,    53,    54,
-      55,    56,    57,    58,    59,   144,    61,    62,   145,    64,
-      65,   108,   109,   110,   111,     0,     0,     0,   112,   251,
-     252,   253,   254,   255,   256,   257,     0,   258,   166,     0,
-     149,   129,   130,     1,   131,   132,    90,   133,   134,   135,
-     136,    91,     8,    92,    93,    10,    94,    95,    96,    97,
-      15,    16,    98,    18,    99,    20,    21,   100,   101,   102,
-     103,    25,     0,    27,    28,   104,   105,   106,   107,   241,
-     242,   243,   244,   245,   246,   139,   247,    37,    38,   248,
-     249,   250,   140,    42,   141,    44,   142,    46,   143,    48,
-      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
-      59,   144,    61,    62,   145,    64,    65,   108,   109,   110,
-     111,     0,     0,     0,   112,   251,   252,   253,   254,   255,
-     256,   257,     0,   258,   166,     0,   149,   129,   130,     1,
-     131,   132,    90,   133,   134,   135,   136,    91,     8,    92,
-      93,    10,    94,    95,    96,    97,    15,    16,    98,    18,
-      99,   311,    21,   100,   101,   102,   103,    25,     0,    27,
-      28,   104,   105,   106,   107,   241,   242,   243,   244,   245,
-     246,   139,   247,    37,    38,   248,   249,   250,   140,    42,
-     141,    44,   142,    46,   143,    48,    49,    50,    51,    52,
-      53,    54,    55,    56,    57,    58,    59,   144,    61,    62,
-     145,    64,    65,   108,   109,   110,   111,     0,     0,     0,
-     112,   251,   252,   253,   254,   255,   256,   257,     0,     0,
-     166,     0,   149,   129,   130,     1,   131,   132,    90,   133,
-     134,   135,   136,    91,     8,    92,    93,    10,    94,    95,
-      96,    97,    15,    16,    98,    18,    99,    20,    21,   100,
-     101,   102,   103,    25,     0,    27,    28,   104,   105,   106,
-     107,     0,     0,     0,     0,    33,    34,   139,    36,    37,
-      38,     0,    39,    40,   140,    42,   141,    44,   142,    46,
-     143,    48,    49,    50,    51,    52,    53,    54,    55,    56,
-      57,    58,    59,   144,    61,    62,   145,    64,    65,   108,
-     109,   110,   111,     0,     0,     0,   112,     0,     0,     0,
-     146,   147,     0,     0,     0,     0,   166,   226,   149,   129,
-     130,     1,   131,   132,    90,   133,   134,   135,   136,    91,
-       8,    92,    93,    10,    94,    95,    96,    97,    15,    16,
-      98,    18,    99,    20,    21,   100,   101,   102,   103,    25,
-       0,    27,    28,   104,   105,   106,   107,     0,     0,     0,
-       0,    33,    34,   139,    36,    37,    38,     0,    39,    40,
-     140,    42,   141,    44,   142,    46,   143,    48,    49,    50,
-      51,    52,    53,    54,    55,    56,    57,    58,    59,   144,
-      61,    62,   145,    64,    65,   108,   109,   110,   111,     0,
-       0,     0,   112,     0,     0,     0,   146,   147,     0,     0,
-       0,     0,   166,   295,   149,   129,   130,     1,   131,   132,
-      90,   133,   134,   135,   136,    91,     8,    92,    93,    10,
-      94,    95,    96,    97,    15,    16,    98,    18,    99,    20,
-      21,   100,   101,   102,   103,    25,     0,    27,    28,   104,
-     105,   106,   107,     0,     0,     0,     0,    33,    34,   139,
-      36,    37,    38,     0,    39,    40,   140,    42,   141,    44,
-     142,    46,   143,    48,    49,    50,    51,    52,    53,    54,
-      55,    56,    57,    58,    59,   144,    61,    62,   145,    64,
-      65,   108,   109,   110,   111,     0,     0,     0,   112,     0,
-       0,     0,   146,   147,     0,     0,     0,     0,   166,   337,
-     149,   129,   130,     1,   131,   132,    90,   133,   134,   135,
-     136,    91,     8,    92,    93,    10,    94,    95,    96,    97,
-      15,    16,    98,    18,    99,    20,    21,   100,   101,   102,
-     103,    25,     0,    27,    28,   104,   105,   106,   107,     0,
-       0,     0,     0,    33,    34,   139,    36,    37,    38,     0,
-      39,    40,   140,    42,   141,    44,   142,    46,   143,    48,
-      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
-      59,   144,    61,    62,   145,    64,    65,   108,   109,   110,
-     111,     0,     0,     0,   112,     0,     0,     0,   146,   147,
-       0,     0,     0,     0,   166,   433,   149,   129,   130,     1,
-     131,   132,    90,   133,   134,   135,   136,    91,     8,    92,
-      93,    10,    94,    95,    96,    97,    15,    16,    98,    18,
-      99,    20,    21,   100,   101,   102,   103,    25,     0,    27,
-      28,   104,   105,   106,   107,     0,     0,     0,     0,    33,
-      34,   139,    36,    37,    38,     0,    39,    40,   140,    42,
-     141,    44,   142,    46,   143,    48,    49,    50,    51,    52,
-      53,    54,    55,    56,    57,    58,    59,   144,    61,    62,
-     145,    64,    65,   108,   109,   110,   111,     0,     0,     0,
-     112,     0,     0,     0,   146,   147,     0,     0,     0,     0,
-     166,   491,   149,   129,   130,     1,   131,   132,    90,   133,
-     134,   135,   136,    91,     8,    92,    93,   137,    94,    95,
-      96,    97,    15,    16,    98,   138,    99,    20,    21,   100,
-     101,   102,   103,    25,     0,    27,    28,   104,   105,   106,
-     107,     0,     0,     0,     0,    33,    34,   139,    36,    37,
-      38,     0,    39,    40,   140,    42,   141,    44,   142,    46,
-     143,    48,    49,    50,    51,    52,    53,    54,    55,    56,
-      57,    58,    59,   144,    61,    62,   145,    64,    65,   108,
-     109,   110,   111,     0,     0,     0,   112,     0,     0,     0,
-     146,   147,     0,     0,     0,     0,   148,     0,   149,   129,
-     130,     1,   131,   132,    90,   133,   134,   135,   136,    91,
-       8,    92,    93,    10,    94,    95,    96,    97,    15,    16,
-      98,    18,    99,    20,    21,   100,   101,   102,   103,    25,
-       0,    27,    28,   104,   105,   106,   107,     0,     0,     0,
-       0,    33,    34,   139,    36,    37,    38,     0,    39,    40,
-     140,    42,   141,    44,   142,    46,   143,    48,    49,    50,
-      51,    52,    53,    54,    55,    56,    57,    58,    59,   144,
-      61,    62,   145,    64,    65,   108,   109,   110,   111,     0,
-       0,     0,   112,     0,     0,     0,   146,   147,     0,     0,
-       0,     0,   166,     0,   149,   129,   130,     1,   131,   132,
-      90,   133,   134,   135,   136,    91,     8,    92,    93,    10,
-      94,    95,    96,    97,    15,    16,    98,    18,    99,    20,
-      21,   100,   101,   102,   103,    25,     0,    27,    28,   104,
-     105,   106,   107,     0,     0,     0,     0,    33,    34,   139,
-      36,    37,    38,     0,    39,    40,   140,    42,   141,    44,
-     142,    46,   143,    48,    49,    50,    51,    52,    53,    54,
-      55,    56,    57,    58,    59,   144,    61,    62,   145,    64,
-      65,   108,   109,   110,   111,     0,     0,     0,   112,     0,
-       0,     0,   146,   147,     0,     0,     0,     0,   148,     0,
-     149,   129,   130,     1,   131,   132,    90,   133,   134,   135,
-     136,    91,     8,    92,    93,    10,    94,    95,    96,    97,
-      15,    16,    98,    18,    99,    20,    21,   100,   101,   102,
-     103,    25,     0,    27,    28,   104,   105,   106,   107,     0,
-       0,     0,     0,    33,    34,   139,    36,    37,    38,     0,
-      39,    40,   140,    42,   141,    44,   142,    46,   143,    48,
-      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
-      59,   144,    61,    62,    63,    64,    65,   108,   109,   110,
-     111,     0,     0,     0,   112,     0,     0,     0,   146,   147,
-       0,     0,     0,     0,   197,     0,   149,   129,   130,     1,
-     131,   132,    90,   133,   134,   135,   136,    91,     8,    92,
-      93,    10,    94,    95,    96,    97,    15,    16,    98,    18,
-      99,    20,    21,   100,   101,   102,   103,    25,     0,    27,
-      28,   104,   105,   106,   107,     0,     0,     0,     0,    33,
-      34,   139,    36,    37,    38,     0,    39,    40,   140,    42,
-     141,    44,   142,    46,   143,    48,    49,    50,    51,    52,
-      53,    54,    55,    56,    57,    58,    59,   144,    61,    62,
-      63,    64,    65,   108,   109,   110,   111,     0,     0,     0,
-     112,     0,     0,     0,   146,   147,     0,     0,     0,     0,
-     166,     0,   149,   129,   130,     1,   131,   132,    90,   133,
-     134,   135,   136,    91,     8,    92,    93,    10,    94,    95,
-      96,    97,    15,    16,    98,    18,    99,    20,    21,   100,
-     101,   102,   103,    25,     0,    27,    28,   104,   105,   106,
-     107,     0,     0,     0,     0,    33,    34,   139,    36,    37,
-      38,     0,    39,    40,   140,   418,   141,   419,   142,   420,
-     143,   421,    49,    50,    51,    52,    53,    54,    55,   422,
-     423,   424,    59,   144,    61,   425,   426,    64,    65,   108,
-     109,   110,   111,     0,     0,     0,   112,     0,     0,     0,
-     146,   147,     0,     0,     0,     0,   166,     0,   149,   129,
-     130,     1,   131,   132,    90,   133,   134,   135,   136,    91,
-       8,    92,    93,    10,    94,    95,    96,    97,    15,    16,
-      98,    18,    99,    20,    21,   100,   101,   102,   103,    25,
-       0,    27,    28,   104,   105,   106,   107,     0,     0,     0,
-       0,    33,    34,   139,    36,    37,    38,     0,    39,    40,
-     140,    42,   141,    44,   142,    46,   143,    48,    49,    50,
-      51,    52,    53,    54,    55,   422,   423,    58,    59,   144,
-      61,   425,   426,    64,    65,   108,   109,   110,   111,     0,
-       0,     0,   112,     0,     0,     0,   146,   147,     0,     0,
-       0,     0,   166,     0,   149,   129,   130,     1,   131,   132,
-      90,   133,   134,   135,   136,    91,     8,    92,    93,    10,
-      94,    95,    96,    97,    15,    16,    98,    18,    99,    20,
-      21,   100,   101,   102,   103,    25,     0,    27,    28,   104,
-     105,   106,   107,     0,     0,     0,     0,    33,    34,   139,
-      36,    37,    38,     0,    39,    40,   140,    42,   141,    44,
-     142,    46,   143,    48,    49,    50,    51,    52,    53,    54,
-      55,   478,   479,    58,    59,   144,    61,   480,   481,    64,
-      65,   108,   109,   110,   111,     0,     0,     0,   112,     0,
-       0,     0,   146,   147,     0,     0,     0,     0,   166,     0,
-     149,   129,   130,     1,   131,   132,    90,   133,   134,   135,
-     136,    91,     8,    92,    93,    10,    94,    95,    96,    97,
-      15,    16,    98,    18,    99,    20,    21,   100,   101,   102,
-     103,    25,     0,    27,    28,   104,   105,   106,   107,     0,
-       0,     0,     0,     0,     0,   139,    36,    37,    38,     0,
-      39,    40,   140,    42,   141,    44,   142,    46,   143,    48,
-      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
-      59,   144,    61,    62,   145,    64,    65,   108,   109,   110,
-     111,     0,     0,     0,   112,     0,     0,     0,   146,   147,
-       0,     0,     0,     0,   166,     0,   149,   129,   130,     1,
-     131,   132,    90,   133,   134,   135,   136,    91,     8,    92,
-      93,    10,    94,    95,    96,    97,    15,    16,    98,    18,
-      99,    20,    21,   100,   101,   102,   103,    25,     0,    27,
-      28,   104,   105,   106,   107,     0,     0,     0,     0,     0,
-       0,   139,    36,    37,    38,     0,     0,     0,   140,    42,
-     141,    44,   142,    46,   143,    48,    49,    50,    51,    52,
-      53,    54,    55,    56,    57,    58,    59,   144,    61,    62,
-     145,    64,    65,   108,   109,   110,   111,     0,     0,     0,
-     112,     0,     0,     0,   146,   147,     0,     0,     0,     0,
-     166,     0,   149,   129,   130,     1,   131,   132,    90,   133,
-     134,   135,   136,    91,     8,    92,    93,    10,    94,    95,
-      96,    97,    15,    16,    98,    18,    99,    20,    21,   100,
-     101,   102,   103,    25,     0,    27,    28,   104,   105,   106,
-     107,     0,     0,     0,     0,     0,     0,   139,     0,    37,
-      38,     0,     0,     0,   140,    42,   141,    44,   142,    46,
-     143,    48,    49,    50,    51,    52,    53,    54,    55,    56,
-      57,    58,    59,   144,    61,    62,   145,    64,    65,   108,
-     109,   110,   111,     0,     0,     0,   112,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   166,     1,   149,     0,
-       2,     3,     4,     5,     6,     7,     8,     0,     9,    10,
-      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
-      21,    22,    23,    24,     0,    25,    26,    27,    28,    29,
+     523,     0,     0,     0,     0,   599,     0,     0,     0,     0,
+       0,   251,   252,   253,   254,   255,   256,   257,   290,     0,
+       0,     0,     0,     0,     0,     0,     0,   523,   129,   130,
+       1,   228,   229,    90,   133,   134,   135,   136,    91,     8,
+      92,    93,    10,    94,    95,    96,    97,    15,    16,    98,
+      18,    99,    20,    21,   100,   101,   102,   103,    25,     0,
+      27,    28,   104,   105,   106,   107,     0,     0,     0,     0,
+      33,    34,   139,    36,    37,    38,     0,    39,    40,   140,
+      42,   141,    44,   142,    46,   143,    48,    49,    50,    51,
+      52,    53,    54,    55,    56,    57,    58,    59,   144,    61,
+      62,   145,    64,    65,   108,   109,   110,   111,     0,     0,
+       0,   112,     0,     0,     0,   146,   147,     0,     0,     0,
+       0,   166,     0,   149,     0,   230,   129,   130,     1,   131,
+     132,    90,   133,   134,   135,   136,    91,     8,    92,    93,
+      10,    94,    95,    96,    97,    15,    16,    98,    18,    99,
+     240,    21,   100,   101,   102,   103,    25,     0,    27,    28,
+     104,   105,   106,   107,   241,   242,   243,   244,   245,   246,
+     139,   247,    37,    38,   248,   249,   250,   140,    42,   141,
+      44,   142,    46,   143,    48,    49,    50,    51,    52,    53,
+      54,    55,    56,    57,    58,    59,   144,    61,    62,   145,
+      64,    65,   108,   109,   110,   111,     0,     0,     0,   112,
+     251,   252,   253,   254,   255,   256,   257,     0,   258,   166,
+       0,   149,   129,   130,     1,   131,   132,    90,   133,   134,
+     135,   136,    91,     8,    92,    93,    10,    94,    95,    96,
+      97,    15,   274,    98,    18,    99,    20,    21,   100,   101,
+     102,   103,    25,     0,    27,    28,   104,   105,   106,   107,
+     241,   242,   243,   244,   245,   246,   139,   247,   275,   276,
+     248,   249,   250,   140,    42,   141,    44,   142,    46,   143,
+      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
+      58,    59,   144,    61,    62,   145,    64,    65,   108,   109,
+     110,   111,     0,     0,     0,   112,   251,   252,   253,   254,
+     255,   256,   257,     0,   258,   166,     0,   149,   129,   130,
+       1,   131,   132,    90,   133,   134,   135,   136,    91,     8,
+      92,    93,    10,    94,    95,    96,    97,    15,    16,    98,
+      18,    99,    20,    21,   100,   101,   102,   103,    25,     0,
+     285,    28,   104,   105,   106,   107,   241,   242,   243,   244,
+     245,   246,   139,   247,    37,    38,   248,   249,   250,   140,
+      42,   141,    44,   142,    46,   143,    48,    49,    50,    51,
+      52,    53,    54,    55,    56,    57,    58,    59,   144,    61,
+      62,   145,    64,    65,   108,   109,   110,   111,     0,     0,
+       0,   112,   251,   252,   253,   254,   255,   256,   257,     0,
+     258,   166,     0,   149,   129,   130,     1,   131,   132,    90,
+     133,   134,   135,   136,    91,     8,    92,    93,    10,    94,
+      95,    96,    97,    15,    16,    98,    18,    99,    20,    21,
+     100,   101,   102,   103,    25,     0,    27,    28,   104,   105,
+     106,   107,   241,   242,   243,   244,   245,   246,   139,   247,
+      37,    38,   248,   249,   250,   140,    42,   141,    44,   142,
+      46,   143,    48,    49,    50,    51,    52,    53,    54,    55,
+      56,    57,    58,    59,   144,    61,    62,   145,    64,    65,
+     108,   109,   110,   111,     0,     0,     0,   112,   251,   252,
+     253,   254,   255,   256,   257,     0,   258,   166,     0,   149,
+     129,   130,     1,   131,   132,    90,   133,   134,   135,   136,
+      91,     8,    92,    93,    10,    94,    95,    96,    97,    15,
+      16,    98,    18,    99,   311,    21,   100,   101,   102,   103,
+      25,     0,    27,    28,   104,   105,   106,   107,   241,   242,
+     243,   244,   245,   246,   139,   247,    37,    38,   248,   249,
+     250,   140,    42,   141,    44,   142,    46,   143,    48,    49,
+      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
+     144,    61,    62,   145,    64,    65,   108,   109,   110,   111,
+       0,     0,     0,   112,   251,   252,   253,   254,   255,   256,
+     257,     0,     0,   166,     0,   149,   129,   130,     1,   131,
+     132,    90,   133,   134,   135,   136,    91,     8,    92,    93,
+      10,    94,    95,    96,    97,    15,    16,    98,    18,    99,
+      20,    21,   100,   101,   102,   103,    25,     0,    27,    28,
+     104,   105,   106,   107,     0,     0,     0,     0,    33,    34,
+     139,    36,    37,    38,     0,    39,    40,   140,    42,   141,
+      44,   142,    46,   143,    48,    49,    50,    51,    52,    53,
+      54,    55,    56,    57,    58,    59,   144,    61,    62,   145,
+      64,    65,   108,   109,   110,   111,     0,     0,     0,   112,
+       0,     0,     0,   146,   147,     0,     0,     0,     0,   166,
+     226,   149,   129,   130,     1,   131,   132,    90,   133,   134,
+     135,   136,    91,     8,    92,    93,    10,    94,    95,    96,
+      97,    15,    16,    98,    18,    99,    20,    21,   100,   101,
+     102,   103,    25,     0,    27,    28,   104,   105,   106,   107,
+       0,     0,     0,     0,    33,    34,   139,    36,    37,    38,
+       0,    39,    40,   140,    42,   141,    44,   142,    46,   143,
+      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
+      58,    59,   144,    61,    62,   145,    64,    65,   108,   109,
+     110,   111,     0,     0,     0,   112,     0,     0,     0,   146,
+     147,     0,     0,     0,     0,   166,   295,   149,   129,   130,
+       1,   131,   132,    90,   133,   134,   135,   136,    91,     8,
+      92,    93,    10,    94,    95,    96,    97,    15,    16,    98,
+      18,    99,    20,    21,   100,   101,   102,   103,    25,     0,
+      27,    28,   104,   105,   106,   107,     0,     0,     0,     0,
+      33,    34,   139,    36,    37,    38,     0,    39,    40,   140,
+      42,   141,    44,   142,    46,   143,    48,    49,    50,    51,
+      52,    53,    54,    55,    56,    57,    58,    59,   144,    61,
+      62,   145,    64,    65,   108,   109,   110,   111,     0,     0,
+       0,   112,     0,     0,     0,   146,   147,     0,     0,     0,
+       0,   166,   337,   149,   129,   130,     1,   131,   132,    90,
+     133,   134,   135,   136,    91,     8,    92,    93,    10,    94,
+      95,    96,    97,    15,    16,    98,    18,    99,    20,    21,
+     100,   101,   102,   103,    25,     0,    27,    28,   104,   105,
+     106,   107,     0,     0,     0,     0,    33,    34,   139,    36,
+      37,    38,     0,    39,    40,   140,    42,   141,    44,   142,
+      46,   143,    48,    49,    50,    51,    52,    53,    54,    55,
+      56,    57,    58,    59,   144,    61,    62,   145,    64,    65,
+     108,   109,   110,   111,     0,     0,     0,   112,     0,     0,
+       0,   146,   147,     0,     0,     0,     0,   166,   434,   149,
+     129,   130,     1,   131,   132,    90,   133,   134,   135,   136,
+      91,     8,    92,    93,    10,    94,    95,    96,    97,    15,
+      16,    98,    18,    99,    20,    21,   100,   101,   102,   103,
+      25,     0,    27,    28,   104,   105,   106,   107,     0,     0,
+       0,     0,    33,    34,   139,    36,    37,    38,     0,    39,
+      40,   140,    42,   141,    44,   142,    46,   143,    48,    49,
+      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
+     144,    61,    62,   145,    64,    65,   108,   109,   110,   111,
+       0,     0,     0,   112,     0,     0,     0,   146,   147,     0,
+       0,     0,     0,   166,   493,   149,   129,   130,     1,   131,
+     132,    90,   133,   134,   135,   136,    91,     8,    92,    93,
+     137,    94,    95,    96,    97,    15,    16,    98,   138,    99,
+      20,    21,   100,   101,   102,   103,    25,     0,    27,    28,
+     104,   105,   106,   107,     0,     0,     0,     0,    33,    34,
+     139,    36,    37,    38,     0,    39,    40,   140,    42,   141,
+      44,   142,    46,   143,    48,    49,    50,    51,    52,    53,
+      54,    55,    56,    57,    58,    59,   144,    61,    62,   145,
+      64,    65,   108,   109,   110,   111,     0,     0,     0,   112,
+       0,     0,     0,   146,   147,     0,     0,     0,     0,   148,
+       0,   149,   129,   130,     1,   131,   132,    90,   133,   134,
+     135,   136,    91,     8,    92,    93,    10,    94,    95,    96,
+      97,    15,    16,    98,    18,    99,    20,    21,   100,   101,
+     102,   103,    25,     0,    27,    28,   104,   105,   106,   107,
+       0,     0,     0,     0,    33,    34,   139,    36,    37,    38,
+       0,    39,    40,   140,    42,   141,    44,   142,    46,   143,
+      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
+      58,    59,   144,    61,    62,   145,    64,    65,   108,   109,
+     110,   111,     0,     0,     0,   112,     0,     0,     0,   146,
+     147,     0,     0,     0,     0,   166,     0,   149,   129,   130,
+       1,   131,   132,    90,   133,   134,   135,   136,    91,     8,
+      92,    93,    10,    94,    95,    96,    97,    15,    16,    98,
+      18,    99,    20,    21,   100,   101,   102,   103,    25,     0,
+      27,    28,   104,   105,   106,   107,     0,     0,     0,     0,
+      33,    34,   139,    36,    37,    38,     0,    39,    40,   140,
+      42,   141,    44,   142,    46,   143,    48,    49,    50,    51,
+      52,    53,    54,    55,    56,    57,    58,    59,   144,    61,
+      62,   145,    64,    65,   108,   109,   110,   111,     0,     0,
+       0,   112,     0,     0,     0,   146,   147,     0,     0,     0,
+       0,   148,     0,   149,   129,   130,     1,   131,   132,    90,
+     133,   134,   135,   136,    91,     8,    92,    93,    10,    94,
+      95,    96,    97,    15,    16,    98,    18,    99,    20,    21,
+     100,   101,   102,   103,    25,     0,    27,    28,   104,   105,
+     106,   107,     0,     0,     0,     0,    33,    34,   139,    36,
+      37,    38,     0,    39,    40,   140,    42,   141,    44,   142,
+      46,   143,    48,    49,    50,    51,    52,    53,    54,    55,
+      56,    57,    58,    59,   144,    61,    62,    63,    64,    65,
+     108,   109,   110,   111,     0,     0,     0,   112,     0,     0,
+       0,   146,   147,     0,     0,     0,     0,   197,     0,   149,
+     129,   130,     1,   131,   132,    90,   133,   134,   135,   136,
+      91,     8,    92,    93,    10,    94,    95,    96,    97,    15,
+      16,    98,    18,    99,    20,    21,   100,   101,   102,   103,
+      25,     0,    27,    28,   104,   105,   106,   107,     0,     0,
+       0,     0,    33,    34,   139,    36,    37,    38,     0,    39,
+      40,   140,    42,   141,    44,   142,    46,   143,    48,    49,
+      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
+     144,    61,    62,    63,    64,    65,   108,   109,   110,   111,
+       0,     0,     0,   112,     0,     0,     0,   146,   147,     0,
+       0,     0,     0,   166,     0,   149,   129,   130,     1,   131,
+     132,    90,   133,   134,   135,   136,    91,     8,    92,    93,
+      10,    94,    95,    96,    97,    15,    16,    98,    18,    99,
+      20,    21,   100,   101,   102,   103,    25,     0,    27,    28,
+     104,   105,   106,   107,     0,     0,     0,     0,    33,    34,
+     139,    36,    37,    38,     0,    39,    40,   140,   419,   141,
+     420,   142,   421,   143,   422,    49,    50,    51,    52,    53,
+      54,    55,   423,   424,   425,    59,   144,    61,   426,   427,
+      64,    65,   108,   109,   110,   111,     0,     0,     0,   112,
+       0,     0,     0,   146,   147,     0,     0,     0,     0,   166,
+       0,   149,   129,   130,     1,   131,   132,    90,   133,   134,
+     135,   136,    91,     8,    92,    93,    10,    94,    95,    96,
+      97,    15,    16,    98,    18,    99,    20,    21,   100,   101,
+     102,   103,    25,     0,    27,    28,   104,   105,   106,   107,
+       0,     0,     0,     0,    33,    34,   139,    36,    37,    38,
+       0,    39,    40,   140,    42,   141,    44,   142,    46,   143,
+      48,    49,    50,    51,    52,    53,    54,    55,   423,   424,
+      58,    59,   144,    61,   426,   427,    64,    65,   108,   109,
+     110,   111,     0,     0,     0,   112,     0,     0,     0,   146,
+     147,     0,     0,     0,     0,   166,     0,   149,   129,   130,
+       1,   131,   132,    90,   133,   134,   135,   136,    91,     8,
+      92,    93,    10,    94,    95,    96,    97,    15,    16,    98,
+      18,    99,    20,    21,   100,   101,   102,   103,    25,     0,
+      27,    28,   104,   105,   106,   107,     0,     0,     0,     0,
+      33,    34,   139,    36,    37,    38,     0,    39,    40,   140,
+      42,   141,    44,   142,    46,   143,    48,    49,    50,    51,
+      52,    53,    54,    55,   479,   480,    58,    59,   144,    61,
+     481,   482,    64,    65,   108,   109,   110,   111,     0,     0,
+       0,   112,     0,     0,     0,   146,   147,     0,     0,     0,
+       0,   166,     0,   149,   129,   130,     1,   131,   132,    90,
+     133,   134,   135,   136,    91,     8,    92,    93,    10,    94,
+      95,    96,    97,    15,    16,    98,    18,    99,    20,    21,
+     100,   101,   102,   103,    25,     0,    27,    28,   104,   105,
+     106,   107,     0,     0,     0,     0,     0,     0,   139,    36,
+      37,    38,     0,    39,    40,   140,    42,   141,    44,   142,
+      46,   143,    48,    49,    50,    51,    52,    53,    54,    55,
+      56,    57,    58,    59,   144,    61,    62,   145,    64,    65,
+     108,   109,   110,   111,     0,     0,     0,   112,     0,     0,
+       0,   146,   147,     0,     0,     0,     0,   166,     0,   149,
+     129,   130,     1,   131,   132,    90,   133,   134,   135,   136,
+      91,     8,    92,    93,    10,    94,    95,    96,    97,    15,
+      16,    98,    18,    99,    20,    21,   100,   101,   102,   103,
+      25,     0,    27,    28,   104,   105,   106,   107,     0,     0,
+       0,     0,     0,     0,   139,    36,    37,    38,     0,     0,
+       0,   140,    42,   141,    44,   142,    46,   143,    48,    49,
+      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
+     144,    61,    62,   145,    64,    65,   108,   109,   110,   111,
+       0,     0,     0,   112,     0,     0,     0,   146,   147,     0,
+       0,     0,     0,   166,     0,   149,   129,   130,     1,   131,
+     132,    90,   133,   134,   135,   136,    91,     8,    92,    93,
+      10,    94,    95,    96,    97,    15,    16,    98,    18,    99,
+      20,    21,   100,   101,   102,   103,    25,     0,    27,    28,
+     104,   105,   106,   107,     0,     0,     0,     0,     0,     0,
+     139,     0,    37,    38,     0,     0,     0,   140,    42,   141,
+      44,   142,    46,   143,    48,    49,    50,    51,    52,    53,
+      54,    55,    56,    57,    58,    59,   144,    61,    62,   145,
+      64,    65,   108,   109,   110,   111,     0,     0,     0,   112,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   166,
+       1,   149,     0,     2,     3,     4,     5,     6,     7,     8,
+       0,     9,    10,    11,    12,    13,    14,    15,    16,    17,
+      18,    19,    20,    21,    22,    23,    24,     0,    25,    26,
+      27,    28,    29,    30,    31,    32,     0,     0,     0,     0,
+      33,    34,    35,    36,    37,    38,     0,    39,    40,    41,
+      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
+      52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
+      62,    63,    64,    65,    66,    67,    68,     0,    69,     1,
+       0,    70,     0,     3,     4,     5,     6,     7,     8,    71,
+       9,    10,    11,    12,    13,    14,    15,    16,     0,    18,
+      19,    20,    21,    22,    23,    24,     0,    25,    26,    27,
+      28,     0,    30,    31,    32,     0,     0,     0,     0,    33,
+      34,    35,    36,    37,    38,     0,    39,    40,    41,    42,
+      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
+      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
+      63,    64,    65,    66,    67,     0,     0,    69,     1,     0,
+      70,     0,     3,     4,     5,     6,     7,     8,   377,     9,
+      10,    11,    12,    13,    14,    15,    16,     0,    18,    19,
+      20,    21,    22,    23,    24,     0,    25,    26,    27,    28,
+       0,    30,    31,    32,     0,     0,     0,     0,    33,    34,
+      35,    36,    37,    38,     0,    39,    40,    41,    42,    43,
+      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
+      54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
+      64,    65,    66,    67,     0,     0,    69,     1,     0,    70,
+       0,     3,     4,     5,     6,     7,     8,   400,     9,    10,
+      11,    12,    13,    14,    15,    16,     0,    18,    19,    20,
+      21,    22,    23,    24,     0,    25,    26,    27,    28,     0,
       30,    31,    32,     0,     0,     0,     0,    33,    34,    35,
       36,    37,    38,     0,    39,    40,    41,    42,    43,    44,
       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
-      65,    66,    67,    68,     0,    69,     1,     0,    70,     0,
-       3,     4,     5,     6,     7,     8,    71,     9,    10,    11,
+      65,    66,    67,     0,     0,    69,     1,     0,    70,     0,
+       3,     4,     5,     6,     7,     8,   517,     9,    10,    11,
       12,    13,    14,    15,    16,     0,    18,    19,    20,    21,
       22,    23,    24,     0,    25,    26,    27,    28,     0,    30,
       31,    32,     0,     0,     0,     0,    33,    34,    35,    36,
@@ -1290,447 +1314,445 @@ static const yytype_int16 yytable[] =
       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
       66,    67,     0,     0,    69,     1,     0,    70,     0,     3,
-       4,     5,     6,     7,     8,   377,     9,    10,    11,    12,
+       4,     5,     6,     7,     8,   546,     9,    10,    11,    12,
       13,    14,    15,    16,     0,    18,    19,    20,    21,    22,
       23,    24,     0,    25,    26,    27,    28,     0,    30,    31,
       32,     0,     0,     0,     0,    33,    34,    35,    36,    37,
       38,     0,    39,    40,    41,    42,    43,    44,    45,    46,
       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
-      67,     0,     0,    69,     1,     0,    70,     0,     3,     4,
-       5,     6,     7,     8,   399,     9,    10,    11,    12,    13,
-      14,    15,    16,     0,    18,    19,    20,    21,    22,    23,
-      24,     0,    25,    26,    27,    28,     0,    30,    31,    32,
+      67,     0,     0,     0,     0,     0,    70,     0,     0,     0,
+       0,     0,     0,     0,   466,     1,   439,   440,    90,     3,
+       4,     5,     6,    91,     8,    92,    93,    10,    94,    95,
+      96,    97,    15,    16,    98,    18,    99,    20,    21,   100,
+     101,   102,   103,    25,     0,    27,    28,   104,   105,   106,
+     107,     0,     0,     0,     0,    33,    34,    35,    36,    37,
+      38,     0,    39,    40,    41,    42,    43,    44,    45,    46,
+      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
+      57,    58,    59,    60,    61,    62,    63,    64,    65,   108,
+     109,   110,   111,     0,     1,     0,   112,    90,     3,     4,
+       5,     6,    91,     8,    92,    93,    10,    94,    95,    96,
+      97,    15,    16,    98,    18,    99,    20,    21,   100,   101,
+     102,   103,    25,     0,    27,    28,   104,   105,   106,   107,
        0,     0,     0,     0,    33,    34,    35,    36,    37,    38,
        0,    39,    40,    41,    42,    43,    44,    45,    46,    47,
       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
-      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
-       0,     0,    69,     1,     0,    70,     0,     3,     4,     5,
-       6,     7,     8,   515,     9,    10,    11,    12,    13,    14,
-      15,    16,     0,    18,    19,    20,    21,    22,    23,    24,
-       0,    25,    26,    27,    28,     0,    30,    31,    32,     0,
+      58,    59,    60,    61,    62,    63,    64,    65,   108,   109,
+     110,   111,     0,     1,     0,   112,    90,     3,     4,     5,
+       6,    91,     8,    92,    93,    10,    94,    95,    96,    97,
+      15,    16,    98,    18,    99,    20,    21,   100,   101,   102,
+     103,    25,     0,    27,    28,   104,   105,   106,   107,     0,
        0,     0,     0,    33,    34,    35,    36,    37,    38,     0,
       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
-      59,    60,    61,    62,    63,    64,    65,    66,    67,     0,
-       0,    69,     1,     0,    70,     0,     3,     4,     5,     6,
-       7,     8,   543,     9,    10,    11,    12,    13,    14,    15,
-      16,     0,    18,    19,    20,    21,    22,    23,    24,     0,
-      25,    26,    27,    28,     0,    30,    31,    32,     0,     0,
-       0,     0,    33,    34,    35,    36,    37,    38,     0,    39,
-      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
-      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
-      60,    61,    62,    63,    64,    65,    66,    67,     0,     0,
-       0,     0,     0,    70,     0,     0,     0,     0,     0,     0,
-       0,   465,     1,   438,   439,    90,     3,     4,     5,     6,
+      59,   174,    61,    62,    63,    64,    65,   108,   109,   110,
+     111,     0,     1,     0,   112,    90,     3,     4,     5,     6,
       91,     8,    92,    93,    10,    94,    95,    96,    97,    15,
       16,    98,    18,    99,    20,    21,   100,   101,   102,   103,
       25,     0,    27,    28,   104,   105,   106,   107,     0,     0,
        0,     0,    33,    34,    35,    36,    37,    38,     0,    39,
-      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
-      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
+      40,    41,    42,    43,    44,    45,    46,    47,    48,   215,
+     216,   217,   218,   219,    54,   220,    56,    57,    58,   221,
       60,    61,    62,    63,    64,    65,   108,   109,   110,   111,
-       0,     1,     0,   112,    90,     3,     4,     5,     6,    91,
+       0,     1,     0,   112,    90,   133,   134,     5,     6,    91,
        8,    92,    93,    10,    94,    95,    96,    97,    15,    16,
       98,    18,    99,    20,    21,   100,   101,   102,   103,    25,
        0,    27,    28,   104,   105,   106,   107,     0,     0,     0,
        0,    33,    34,    35,    36,    37,    38,     0,    39,    40,
-      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
-      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
-      61,    62,    63,    64,    65,   108,   109,   110,   111,     0,
-       1,     0,   112,    90,     3,     4,     5,     6,    91,     8,
-      92,    93,    10,    94,    95,    96,    97,    15,    16,    98,
-      18,    99,    20,    21,   100,   101,   102,   103,    25,     0,
-      27,    28,   104,   105,   106,   107,     0,     0,     0,     0,
-      33,    34,    35,    36,    37,    38,     0,    39,    40,    41,
-      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
-      52,    53,    54,    55,    56,    57,    58,    59,   174,    61,
-      62,    63,    64,    65,   108,   109,   110,   111,     0,     1,
-       0,   112,    90,     3,     4,     5,     6,    91,     8,    92,
-      93,    10,    94,    95,    96,    97,    15,    16,    98,    18,
-      99,    20,    21,   100,   101,   102,   103,    25,     0,    27,
-      28,   104,   105,   106,   107,     0,     0,     0,     0,    33,
+     140,    42,   141,    44,   142,    46,   143,    48,    49,    50,
+      51,    52,    53,    54,    55,    56,    57,    58,    59,   380,
+      61,    62,    63,    64,    65,   108,   109,   110,   111,     1,
+       0,     0,   112,     3,     4,     5,     6,     7,     8,     0,
+       9,    10,    11,    12,    13,     0,    15,    16,     0,    18,
+      19,    20,    21,    22,   101,    24,     0,    25,     0,    27,
+      28,     0,    30,    31,    32,     0,     0,     0,     0,    33,
       34,    35,    36,    37,    38,     0,    39,    40,    41,    42,
-      43,    44,    45,    46,    47,    48,   215,   216,   217,   218,
-     219,    54,   220,    56,    57,    58,   221,    60,    61,    62,
-      63,    64,    65,   108,   109,   110,   111,     0,     1,     0,
-     112,    90,   133,   134,     5,     6,    91,     8,    92,    93,
-      10,    94,    95,    96,    97,    15,    16,    98,    18,    99,
-      20,    21,   100,   101,   102,   103,    25,     0,    27,    28,
-     104,   105,   106,   107,     0,     0,     0,     0,    33,    34,
-      35,    36,    37,    38,     0,    39,    40,   140,    42,   141,
-      44,   142,    46,   143,    48,    49,    50,    51,    52,    53,
-      54,    55,    56,    57,    58,    59,   380,    61,    62,    63,
-      64,    65,   108,   109,   110,   111,     1,     0,     0,   112,
-       3,     4,     5,     6,     7,     8,     0,     9,    10,    11,
-      12,    13,     0,    15,    16,     0,    18,    19,    20,    21,
-      22,   101,    24,     0,    25,     0,    27,    28,     0,    30,
-      31,    32,     0,     0,     0,     0,    33,    34,    35,    36,
-      37,    38,     0,    39,    40,    41,    42,    43,    44,    45,
-      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
-      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
-     493,    67,     0,     0,     0,     0,     0,    70,     0,     0,
-       0,     0,     0,   494,   241,   242,   243,   244,   266,   267,
-       0,   268,     0,     0,   248,   269,   270,   241,   242,   243,
-     244,   266,   267,   495,   268,     0,     0,   248,   269,   270,
-       0,     0,     0,     0,     0,     0,     0,   241,   242,   243,
+      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
+      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
+      63,    64,    65,   497,    67,     0,     0,     0,     0,     0,
+      70,     0,     0,     0,     0,     0,   498,   241,   242,   243,
      244,   266,   267,     0,   268,     0,     0,   248,   269,   270,
-     251,   252,   253,   254,   255,   256,   257,     0,     0,     0,
-       0,     0,     0,   251,   252,   253,   254,   255,   256,   257,
-       0,     0,     0,     0,     0,     0,   496,     0,     0,     0,
-       0,     0,     0,   251,   252,   253,   254,   255,   256,   257,
-     241,   242,   243,   244,   266,   267,   567,   268,     0,     0,
+     241,   242,   243,   244,   266,   267,   570,   268,     0,     0,
      248,   269,   270,     0,     0,     0,     0,     0,     0,     0,
-     551,   552,     0,   553,   554,   555,     0,   556,     0,     0,
-     557,   558,   559,   241,   242,   243,   244,   266,   267,     0,
-     268,     0,     0,   248,   269,   270,   251,   252,   253,   254,
+     554,   555,     0,   556,   557,   558,     0,   559,     0,     0,
+     560,   561,   562,   251,   252,   253,   254,   255,   256,   257,
+       0,     0,     0,     0,   265,     0,   251,   252,   253,   254,
      255,   256,   257,   241,   242,   243,   244,   266,   267,     0,
-     268,     0,     0,   248,   269,   270,   560,   561,   562,   563,
-     564,   565,   566,     0,     0,     0,     0,     0,     0,   251,
+     268,     0,     0,   248,   269,   270,   563,   564,   565,   566,
+     567,   568,   569,   241,   242,   243,   244,   266,   267,     0,
+     268,     0,     0,   248,   269,   270,   241,   242,   243,   244,
+     266,   267,     0,   268,     0,     0,   248,   269,   270,   251,
+     252,   253,   254,   255,   256,   257,   241,   242,   243,   244,
+     266,   267,     0,   268,     0,     0,   248,   269,   270,   251,
      252,   253,   254,   255,   256,   257,     0,   327,     0,   328,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   251,
-     252,   253,   254,   255,   256,   257,     0,   405,     0,   328,
-     241,   242,   243,   244,   266,   267,     0,   268,     0,     0,
-     248,   269,   270,   358,   359,   360,   361,   362,   363,     0,
+       0,     0,   251,   252,   253,   254,   255,   256,   257,     0,
+     406,     0,   328,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   251,   252,   253,   254,   255,   256,   257,     0,
+       0,     0,   328,   358,   359,   360,   361,   362,   363,     0,
      364,     0,     0,   365,   366,   367,   241,   242,   243,   244,
-     266,   267,     0,   268,     0,     0,   248,   269,   270,     0,
-       0,     0,     0,     0,     0,     0,   251,   252,   253,   254,
-     255,   256,   257,     0,     0,     0,   328,     0,     0,   368,
+     266,   267,     0,   268,     0,     0,   248,   269,   270,   241,
+     242,   243,   244,   266,   267,     0,   268,     0,     0,   248,
+     269,   270,     0,     0,     0,     0,     0,     0,     0,   368,
      369,   370,   371,   372,   373,   374,     0,   375,     0,     0,
        0,     0,   251,   252,   253,   254,   255,   256,   257,   388,
-     241,   242,   243,   244,   266,   267,     0,   268,     0,     0,
-     248,   269,   270,   241,   242,   243,   244,   266,   267,     0,
+       0,     0,     0,     0,     0,   251,   252,   253,   254,   255,
+     256,   257,   485,   241,   242,   243,   244,   266,   267,     0,
      268,     0,     0,   248,   269,   270,   241,   242,   243,   244,
-     266,   267,     0,   268,     0,     0,   248,   269,   270,     0,
-       0,     0,     0,     0,     0,     0,   251,   252,   253,   254,
-     255,   256,   257,   484,     0,     0,     0,     0,     0,   251,
-     252,   253,   254,   255,   256,   257,   487,     0,     0,     0,
-       0,     0,   251,   252,   253,   254,   255,   256,   257,   517,
-     241,   242,   243,   244,   266,   267,     0,   268,     0,     0,
-     248,   269,   270,   241,   242,   243,   244,   266,   267,     0,
+     266,   267,     0,   268,     0,     0,   248,   269,   270,   241,
+     242,   243,   244,   266,   267,     0,   268,     0,     0,   248,
+     269,   270,     0,     0,     0,     0,     0,     0,     0,   251,
+     252,   253,   254,   255,   256,   257,   489,     0,     0,     0,
+       0,     0,   251,   252,   253,   254,   255,   256,   257,   519,
+       0,     0,     0,     0,     0,   251,   252,   253,   254,   255,
+     256,   257,   579,   241,   242,   243,   244,   266,   267,     0,
      268,     0,     0,   248,   269,   270,     0,     0,     0,     0,
        0,   241,   242,   243,   244,   266,   267,     0,   268,     0,
-       0,   248,   269,   270,     0,     0,   251,   252,   253,   254,
-     255,   256,   257,   576,     0,     0,     0,     0,     0,   251,
-     252,   253,   254,   255,   256,   257,   599,   325,   326,     0,
+       0,   248,   269,   270,   241,   242,   243,   244,   266,   267,
+       0,   268,     0,     0,   248,   269,   270,     0,     0,   251,
+     252,   253,   254,   255,   256,   257,   602,   325,   326,     0,
        0,     0,     0,     0,     0,     0,     0,   251,   252,   253,
-     254,   255,   256,   257,   241,   242,   243,   244,   266,   267,
-       0,   268,     0,     0,   248,   269,   270,   358,   359,   360,
+     254,   255,   256,   257,     0,     0,     0,     0,     0,     0,
+     251,   252,   253,   254,   255,   256,   257,   358,   359,   360,
      361,   362,   363,     0,   364,     0,     0,   365,   366,   367,
-     551,   552,     0,   553,   554,   555,     0,   556,     0,     0,
-     557,   558,   559,     0,     0,     0,     0,     0,     0,     0,
-     251,   252,   253,   254,   255,   256,   257,     0,     0,     0,
-       0,     0,     0,   368,   369,   370,   371,   372,   373,   374,
-       0,     0,     0,     0,     0,     0,   560,   561,   562,   563,
-     564,   565,   566,   241,   242,   243,   244,     0,     0,     0,
+     554,   555,     0,   556,   557,   558,     0,   559,     0,     0,
+     560,   561,   562,   241,   242,   243,   244,     0,     0,     0,
      268,     0,     0,   248,   269,   270,     0,     0,     0,     0,
+       0,     0,     0,   368,   369,   370,   371,   372,   373,   374,
+       0,     0,     0,     0,     0,     0,   563,   564,   565,   566,
+     567,   568,   569,     0,     0,     0,     0,     0,     0,   251,
+     252,   253,   254,   255,   256,   257,   554,   555,     0,   556,
+       0,     0,     0,   559,     0,     0,   560,   561,   562,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   251,
-     252,   253,   254,   255,   256,   257
+       0,     0,   563,   564,   565,   566,   567,   568,   569
 };
 
 static const yytype_int16 yycheck[] =
 {
        0,     0,    24,     7,    70,    32,    12,   237,    14,    13,
-      23,     2,   379,    16,   377,    31,    22,    15,    10,    11,
-      11,   388,    83,    68,    30,    31,    17,   261,   258,   515,
-      75,    44,    34,    24,    95,   546,    34,   404,    29,    97,
-      67,    32,    44,   101,    42,    43,    44,    45,    46,    47,
-      22,    49,    36,    37,    52,    53,    54,   543,    30,    31,
-      66,   572,    31,    55,    49,    57,    23,    59,     0,    61,
-      70,    28,    78,    73,    73,    49,    67,    68,    52,    95,
-     163,    84,    74,    49,    96,    96,    52,    95,   171,   100,
-      88,    89,    90,    91,    92,    93,    94,   327,    95,   182,
-      68,    95,    49,    68,   338,   468,    78,    75,    93,    94,
-      75,   194,   118,   119,   120,   121,    90,    91,    92,    93,
-      94,    49,    95,   357,    90,    91,    92,    93,    94,   212,
-      69,   137,   138,    68,   140,   141,   142,   143,   117,   145,
-      75,   168,   148,    49,    68,   375,    93,    94,   275,   276,
-     517,    75,   515,   144,    95,   134,   135,   136,   149,    97,
-     166,   188,    95,    91,    92,    93,    94,   173,   418,   419,
-     420,   421,    95,    96,   424,   405,    95,   168,    95,    96,
-     543,   172,    95,   174,    95,    91,    92,    93,    94,    28,
-      55,   197,    57,    95,    59,    95,    61,   188,    95,    95,
-     434,   568,    95,    95,    95,   196,    95,    28,    26,   576,
-      26,   101,    96,   101,   100,   100,    95,    28,   209,    95,
-      16,    96,    95,   289,    95,    95,    86,   479,   480,   481,
-     464,    98,   599,   101,    85,   241,   242,   243,   244,   245,
+     379,     2,     9,   391,    16,   377,    22,    31,    49,   388,
+      11,   517,   261,    49,    30,    31,    17,    15,   258,    34,
+      23,    95,    96,    24,    95,    68,   405,    31,    29,    44,
+      67,    32,    75,   549,    10,    11,    34,    23,    95,    97,
+     546,    44,    28,   101,    42,    43,    44,    45,    46,    47,
+      66,    49,    93,    94,    52,    53,    54,    93,    94,   575,
+      70,    22,    78,    73,    73,     0,    67,    68,    68,    30,
+      31,    95,    84,    68,    96,    75,    83,    68,   100,    55,
+      75,    57,   117,    59,    75,    61,    69,   327,    95,   338,
+      88,    89,    90,    91,    92,    93,    94,   469,    74,   134,
+     135,   136,   118,   119,   120,   121,    68,    95,   357,    96,
+      49,   163,    55,    75,    57,    95,    59,    78,    61,   171,
+      49,   137,   138,    52,   140,   141,   142,   143,    95,   145,
+     182,   168,   148,    97,    49,   375,    95,    52,    36,    37,
+     519,    95,   194,   144,   532,   517,    49,    95,   149,    95,
+     166,   188,    91,    92,    93,    94,    28,   173,    95,    96,
+     212,    90,    91,    92,    93,    94,   406,   168,    95,    96,
+      95,   172,    95,   174,   546,    90,    91,    92,    93,    94,
+      28,   197,   275,   276,    95,    95,   435,   188,    91,    92,
+      93,    94,   571,    95,    95,   196,   419,   420,   421,   422,
+     579,    95,   425,    95,   101,   101,    96,   100,   209,   100,
+      26,    95,    95,   289,    28,    26,   465,   480,   481,   482,
+      96,    16,    95,   602,    95,   241,   242,   243,   244,   245,
      246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
-     256,   257,   274,   275,   276,    95,     9,    28,   492,    95,
-     266,   267,   268,   269,   270,   265,   265,    70,    98,    34,
-     274,   275,   276,    95,    98,    95,   282,    70,    84,   285,
-      85,    70,    95,   274,   275,   276,    95,    85,    85,   289,
-     290,    95,   298,    73,   300,   395,   302,   529,   304,   551,
-     552,   553,   554,   555,   556,   557,   558,   559,   560,   561,
-     562,   563,   564,   565,   566,    31,   402,   116,   117,   468,
-     163,   505,    -1,   329,   330,   212,   332,    -1,   171,   324,
-     336,    -1,   333,   339,   133,   134,   135,   136,    -1,   182,
-     139,   593,   333,    -1,    -1,    -1,    -1,   146,   147,    -1,
+     256,   257,   274,   275,   276,   494,    95,    86,    98,   101,
+     266,   267,   268,   269,   270,   265,   265,    85,    95,     9,
+     274,   275,   276,    28,    70,    98,   282,    34,    95,   285,
+      95,    95,    98,   274,   275,   276,    70,    84,    70,   289,
+     290,    85,   298,    95,   300,    85,   302,    85,   304,    73,
+      95,   554,   555,   556,   557,   558,   559,   560,   561,   562,
+     563,   564,   565,   566,   567,   568,   569,   116,   117,    95,
+     163,   396,    31,   329,   330,   403,   332,   469,   171,   324,
+     336,   507,   333,   339,   133,   134,   135,   136,    -1,   182,
+     139,   212,   333,   596,    -1,    -1,    -1,   146,   147,    -1,
       -1,   194,   358,   359,   360,   361,   362,   363,   364,   365,
      366,   367,   368,   369,   370,   371,   372,   373,   374,   212,
-      -1,    -1,    -1,    -1,    -1,    42,    43,   377,    45,   379,
-     386,   387,    49,    -1,    -1,    52,    53,    54,   388,    -1,
-      -1,    28,    -1,    -1,    -1,    -1,    -1,    34,    -1,    -1,
-     391,    -1,   402,    -1,   404,    42,    43,    44,    45,    46,
-      47,   417,    49,    -1,    28,    52,    53,    54,    -1,    -1,
-      34,    88,    89,    90,    91,    92,    93,    94,    42,    43,
-      44,    45,    46,    47,    -1,    49,    -1,   443,    52,    53,
-      54,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    88,    89,    90,    91,    92,    93,    94,   485,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   468,    -1,
-     470,   470,    -1,    -1,    88,    89,    90,    91,    92,    93,
-      94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   485,    -1,    -1,    -1,   297,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   377,    -1,   379,
+     386,   387,    -1,    -1,    -1,    -1,    -1,    -1,   388,    -1,
+      -1,    -1,    28,    -1,    -1,    -1,    -1,    -1,    34,    -1,
+     391,   392,    -1,   403,    -1,   405,    42,    43,    44,    45,
+      46,    47,   418,    49,    -1,    28,    52,    53,    54,    -1,
+      -1,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,
+      43,    44,    45,    46,    47,    -1,    49,    -1,   444,    52,
+      53,    54,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    88,    89,    90,    91,    92,    93,    94,    -1,
+     487,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,   469,
+      -1,   471,   471,    -1,    34,    88,    89,    90,    91,    92,
+      93,    94,    42,    43,    44,    45,    46,    47,    -1,    49,
+      -1,    -1,    52,    53,    54,    -1,   487,    -1,   297,    -1,
      299,    -1,   301,    -1,   303,    -1,    -1,    -1,    -1,    -1,
-      -1,   511,   511,   519,    -1,   515,    -1,   517,    -1,    -1,
-      -1,    -1,    -1,    -1,   323,   324,   325,   326,    -1,    -1,
-      -1,    28,    -1,    -1,    -1,    -1,    -1,    34,   529,    -1,
-      -1,    -1,   548,   543,    -1,    42,    43,    44,    45,    46,
-      47,    34,    49,    -1,    -1,    52,    53,    54,    -1,    42,
-      43,    44,    45,    46,    47,    -1,    49,    -1,   568,    52,
-      53,    54,    -1,    -1,    -1,    -1,   576,    -1,    -1,    -1,
+      -1,    -1,    -1,   513,   513,   521,    -1,   517,    -1,   519,
+      -1,    -1,    -1,    -1,   323,   324,   325,   326,    88,    89,
+      90,    91,    92,    93,    94,    -1,    -1,    -1,    -1,    -1,
+      -1,   532,    -1,    28,    -1,   551,   546,    -1,    -1,    34,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    43,    44,
+      45,    46,    47,    -1,    49,    -1,    -1,    52,    53,    54,
+      -1,   571,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   579,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     389,    88,    89,    90,    91,    92,    93,    94,    -1,   599,
-      -1,    -1,    -1,    -1,    -1,    88,    89,    90,    91,    92,
-      93,    94,    95,    -1,    -1,    -1,    -1,   416,    -1,    -1,
-      -1,    -1,    -1,   422,   423,    28,   425,   426,    -1,    -1,
-      -1,    34,    -1,    -1,    -1,   478,   479,   480,   481,    42,
-      43,    44,    45,    46,    47,    -1,    49,    -1,    -1,    52,
-      53,    54,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     389,    -1,    -1,    -1,    -1,    -1,    28,    -1,    -1,    -1,
+      -1,    -1,   602,    88,    89,    90,    91,    92,    93,    94,
+      42,    43,    44,    45,    46,    47,    -1,    49,   417,    -1,
+      52,    53,    54,    -1,   423,   424,    28,   426,   427,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   479,   480,   481,   482,
+      42,    43,    44,    45,    46,    47,    -1,    49,    -1,    -1,
+      52,    53,    54,    -1,    -1,    -1,    88,    89,    90,    91,
+      92,    93,    94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   478,
-     479,   480,   481,    -1,    -1,    88,    89,    90,    91,    92,
-      93,    94,    -1,    -1,   493,   494,   495,   496,    -1,    -1,
-     499,   500,   501,   502,    -1,    -1,    -1,    -1,   551,   552,
-     553,   554,   555,   556,   557,   558,   559,   560,   561,   562,
-     563,   564,   565,   566,    33,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    42,    43,    44,    45,    46,    47,    -1,
-      49,   540,    -1,    52,    53,    54,    -1,    -1,    -1,    -1,
-     593,    -1,   551,   552,   553,   554,   555,   556,   557,   558,
-     559,   560,   561,   562,   563,   564,   565,   566,    -1,    -1,
-      -1,    -1,   571,    -1,    -1,    -1,    -1,    -1,    -1,    88,
-      89,    90,    91,    92,    93,    94,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   593,     4,     5,     6,     7,     8,
-       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
-      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-      29,    30,    31,    32,    33,    34,    -1,    36,    37,    38,
-      39,    40,    41,    -1,    -1,    -1,    -1,    46,    47,    48,
-      49,    50,    51,    -1,    53,    54,    55,    56,    57,    58,
-      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
-      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
-      79,    80,    81,    82,    83,    -1,    -1,    -1,    87,    -1,
-      -1,    -1,    91,    92,    -1,    -1,    -1,    -1,    97,    -1,
-      99,    -1,   101,     4,     5,     6,     7,     8,     9,    10,
-      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
-      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,    32,    33,    34,    -1,    36,    37,    38,    39,    40,
-      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
-      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
-      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
-      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
-      81,    82,    83,    -1,    -1,    -1,    87,    88,    89,    90,
-      91,    92,    93,    94,    -1,    96,    97,    -1,    99,     4,
-       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
-      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
-      -1,    36,    37,    38,    39,    40,    41,    42,    43,    44,
-      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
-      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
-      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
-      75,    76,    77,    78,    79,    80,    81,    82,    83,    -1,
-      -1,    -1,    87,    88,    89,    90,    91,    92,    93,    94,
-      -1,    96,    97,    -1,    99,     4,     5,     6,     7,     8,
-       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
-      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-      29,    30,    31,    32,    33,    34,    -1,    36,    37,    38,
-      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
-      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
-      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
-      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
-      79,    80,    81,    82,    83,    -1,    -1,    -1,    87,    88,
-      89,    90,    91,    92,    93,    94,    -1,    96,    97,    -1,
-      99,     4,     5,     6,     7,     8,     9,    10,    11,    12,
-      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
-      33,    34,    -1,    36,    37,    38,    39,    40,    41,    42,
-      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
-      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
-      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
-      83,    -1,    -1,    -1,    87,    88,    89,    90,    91,    92,
-      93,    94,    -1,    96,    97,    -1,    99,     4,     5,     6,
-       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
-      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-      27,    28,    29,    30,    31,    32,    33,    34,    -1,    36,
-      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
-      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
-      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
-      67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
-      77,    78,    79,    80,    81,    82,    83,    -1,    -1,    -1,
-      87,    88,    89,    90,    91,    92,    93,    94,    -1,    -1,
-      97,    -1,    99,     4,     5,     6,     7,     8,     9,    10,
-      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
-      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,    32,    33,    34,    -1,    36,    37,    38,    39,    40,
-      41,    -1,    -1,    -1,    -1,    46,    47,    48,    49,    50,
-      51,    -1,    53,    54,    55,    56,    57,    58,    59,    60,
-      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
-      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
-      81,    82,    83,    -1,    -1,    -1,    87,    -1,    -1,    -1,
-      91,    92,    -1,    -1,    -1,    -1,    97,    98,    99,     4,
-       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
-      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
-      -1,    36,    37,    38,    39,    40,    41,    -1,    -1,    -1,
-      -1,    46,    47,    48,    49,    50,    51,    -1,    53,    54,
-      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
-      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
-      75,    76,    77,    78,    79,    80,    81,    82,    83,    -1,
-      -1,    -1,    87,    -1,    -1,    -1,    91,    92,    -1,    -1,
-      -1,    -1,    97,    98,    99,     4,     5,     6,     7,     8,
-       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
-      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-      29,    30,    31,    32,    33,    34,    -1,    36,    37,    38,
-      39,    40,    41,    -1,    -1,    -1,    -1,    46,    47,    48,
-      49,    50,    51,    -1,    53,    54,    55,    56,    57,    58,
-      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
-      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
-      79,    80,    81,    82,    83,    -1,    -1,    -1,    87,    -1,
-      -1,    -1,    91,    92,    -1,    -1,    -1,    -1,    97,    98,
-      99,     4,     5,     6,     7,     8,     9,    10,    11,    12,
-      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
-      33,    34,    -1,    36,    37,    38,    39,    40,    41,    -1,
-      -1,    -1,    -1,    46,    47,    48,    49,    50,    51,    -1,
-      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
-      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
-      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
-      83,    -1,    -1,    -1,    87,    -1,    -1,    -1,    91,    92,
-      -1,    -1,    -1,    -1,    97,    98,    99,     4,     5,     6,
-       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
-      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-      27,    28,    29,    30,    31,    32,    33,    34,    -1,    36,
-      37,    38,    39,    40,    41,    -1,    -1,    -1,    -1,    46,
-      47,    48,    49,    50,    51,    -1,    53,    54,    55,    56,
-      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
-      67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
-      77,    78,    79,    80,    81,    82,    83,    -1,    -1,    -1,
-      87,    -1,    -1,    -1,    91,    92,    -1,    -1,    -1,    -1,
-      97,    98,    99,     4,     5,     6,     7,     8,     9,    10,
-      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
-      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,    32,    33,    34,    -1,    36,    37,    38,    39,    40,
-      41,    -1,    -1,    -1,    -1,    46,    47,    48,    49,    50,
-      51,    -1,    53,    54,    55,    56,    57,    58,    59,    60,
-      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
-      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
-      81,    82,    83,    -1,    -1,    -1,    87,    -1,    -1,    -1,
-      91,    92,    -1,    -1,    -1,    -1,    97,    -1,    99,     4,
-       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
-      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
-      -1,    36,    37,    38,    39,    40,    41,    -1,    -1,    -1,
-      -1,    46,    47,    48,    49,    50,    51,    -1,    53,    54,
-      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
-      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
-      75,    76,    77,    78,    79,    80,    81,    82,    83,    -1,
-      -1,    -1,    87,    -1,    -1,    -1,    91,    92,    -1,    -1,
-      -1,    -1,    97,    -1,    99,     4,     5,     6,     7,     8,
-       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
-      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-      29,    30,    31,    32,    33,    34,    -1,    36,    37,    38,
-      39,    40,    41,    -1,    -1,    -1,    -1,    46,    47,    48,
-      49,    50,    51,    -1,    53,    54,    55,    56,    57,    58,
-      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
-      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
-      79,    80,    81,    82,    83,    -1,    -1,    -1,    87,    -1,
-      -1,    -1,    91,    92,    -1,    -1,    -1,    -1,    97,    -1,
-      99,     4,     5,     6,     7,     8,     9,    10,    11,    12,
-      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
-      33,    34,    -1,    36,    37,    38,    39,    40,    41,    -1,
-      -1,    -1,    -1,    46,    47,    48,    49,    50,    51,    -1,
-      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
-      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
-      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
-      83,    -1,    -1,    -1,    87,    -1,    -1,    -1,    91,    92,
-      -1,    -1,    -1,    -1,    97,    -1,    99,     4,     5,     6,
-       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
-      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-      27,    28,    29,    30,    31,    32,    33,    34,    -1,    36,
-      37,    38,    39,    40,    41,    -1,    -1,    -1,    -1,    46,
+     479,   480,   481,   482,    -1,    -1,    88,    89,    90,    91,
+      92,    93,    94,    -1,    -1,    -1,   495,   496,   497,   498,
+      -1,    -1,   501,   502,   503,   504,    -1,    -1,    -1,    -1,
+      -1,   554,   555,   556,   557,   558,   559,   560,   561,   562,
+     563,   564,   565,   566,   567,   568,   569,    34,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    42,    43,    44,    45,    46,
+      47,    -1,    49,    -1,   543,    52,    53,    54,    -1,    -1,
+      -1,    -1,    -1,   596,    -1,   554,   555,   556,   557,   558,
+     559,   560,   561,   562,   563,   564,   565,   566,   567,   568,
+     569,    -1,    -1,    -1,    -1,   574,    -1,    -1,    -1,    -1,
+      -1,    88,    89,    90,    91,    92,    93,    94,    95,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   596,     4,     5,
+       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
+      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
+      26,    27,    28,    29,    30,    31,    32,    33,    34,    -1,
+      36,    37,    38,    39,    40,    41,    -1,    -1,    -1,    -1,
+      46,    47,    48,    49,    50,    51,    -1,    53,    54,    55,
+      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
+      66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
+      76,    77,    78,    79,    80,    81,    82,    83,    -1,    -1,
+      -1,    87,    -1,    -1,    -1,    91,    92,    -1,    -1,    -1,
+      -1,    97,    -1,    99,    -1,   101,     4,     5,     6,     7,
+       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
+      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
+      28,    29,    30,    31,    32,    33,    34,    -1,    36,    37,
+      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
+      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
+      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
+      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
+      78,    79,    80,    81,    82,    83,    -1,    -1,    -1,    87,
+      88,    89,    90,    91,    92,    93,    94,    -1,    96,    97,
+      -1,    99,     4,     5,     6,     7,     8,     9,    10,    11,
+      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
+      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
+      32,    33,    34,    -1,    36,    37,    38,    39,    40,    41,
+      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
+      52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
+      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
+      72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
+      82,    83,    -1,    -1,    -1,    87,    88,    89,    90,    91,
+      92,    93,    94,    -1,    96,    97,    -1,    99,     4,     5,
+       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
+      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
+      26,    27,    28,    29,    30,    31,    32,    33,    34,    -1,
+      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
+      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
+      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
+      66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
+      76,    77,    78,    79,    80,    81,    82,    83,    -1,    -1,
+      -1,    87,    88,    89,    90,    91,    92,    93,    94,    -1,
+      96,    97,    -1,    99,     4,     5,     6,     7,     8,     9,
+      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
+      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
+      30,    31,    32,    33,    34,    -1,    36,    37,    38,    39,
+      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
+      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
+      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
+      70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
+      80,    81,    82,    83,    -1,    -1,    -1,    87,    88,    89,
+      90,    91,    92,    93,    94,    -1,    96,    97,    -1,    99,
+       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
+      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
+      24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
+      34,    -1,    36,    37,    38,    39,    40,    41,    42,    43,
+      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
+      54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
+      64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
+      74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
+      -1,    -1,    -1,    87,    88,    89,    90,    91,    92,    93,
+      94,    -1,    -1,    97,    -1,    99,     4,     5,     6,     7,
+       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
+      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
+      28,    29,    30,    31,    32,    33,    34,    -1,    36,    37,
+      38,    39,    40,    41,    -1,    -1,    -1,    -1,    46,    47,
+      48,    49,    50,    51,    -1,    53,    54,    55,    56,    57,
+      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
+      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
+      78,    79,    80,    81,    82,    83,    -1,    -1,    -1,    87,
+      -1,    -1,    -1,    91,    92,    -1,    -1,    -1,    -1,    97,
+      98,    99,     4,     5,     6,     7,     8,     9,    10,    11,
+      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
+      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
+      32,    33,    34,    -1,    36,    37,    38,    39,    40,    41,
+      -1,    -1,    -1,    -1,    46,    47,    48,    49,    50,    51,
+      -1,    53,    54,    55,    56,    57,    58,    59,    60,    61,
+      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
+      72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
+      82,    83,    -1,    -1,    -1,    87,    -1,    -1,    -1,    91,
+      92,    -1,    -1,    -1,    -1,    97,    98,    99,     4,     5,
+       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
+      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
+      26,    27,    28,    29,    30,    31,    32,    33,    34,    -1,
+      36,    37,    38,    39,    40,    41,    -1,    -1,    -1,    -1,
+      46,    47,    48,    49,    50,    51,    -1,    53,    54,    55,
+      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
+      66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
+      76,    77,    78,    79,    80,    81,    82,    83,    -1,    -1,
+      -1,    87,    -1,    -1,    -1,    91,    92,    -1,    -1,    -1,
+      -1,    97,    98,    99,     4,     5,     6,     7,     8,     9,
+      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
+      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
+      30,    31,    32,    33,    34,    -1,    36,    37,    38,    39,
+      40,    41,    -1,    -1,    -1,    -1,    46,    47,    48,    49,
+      50,    51,    -1,    53,    54,    55,    56,    57,    58,    59,
+      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
+      70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
+      80,    81,    82,    83,    -1,    -1,    -1,    87,    -1,    -1,
+      -1,    91,    92,    -1,    -1,    -1,    -1,    97,    98,    99,
+       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
+      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
+      24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
+      34,    -1,    36,    37,    38,    39,    40,    41,    -1,    -1,
+      -1,    -1,    46,    47,    48,    49,    50,    51,    -1,    53,
+      54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
+      64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
+      74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
+      -1,    -1,    -1,    87,    -1,    -1,    -1,    91,    92,    -1,
+      -1,    -1,    -1,    97,    98,    99,     4,     5,     6,     7,
+       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
+      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
+      28,    29,    30,    31,    32,    33,    34,    -1,    36,    37,
+      38,    39,    40,    41,    -1,    -1,    -1,    -1,    46,    47,
+      48,    49,    50,    51,    -1,    53,    54,    55,    56,    57,
+      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
+      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
+      78,    79,    80,    81,    82,    83,    -1,    -1,    -1,    87,
+      -1,    -1,    -1,    91,    92,    -1,    -1,    -1,    -1,    97,
+      -1,    99,     4,     5,     6,     7,     8,     9,    10,    11,
+      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
+      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
+      32,    33,    34,    -1,    36,    37,    38,    39,    40,    41,
+      -1,    -1,    -1,    -1,    46,    47,    48,    49,    50,    51,
+      -1,    53,    54,    55,    56,    57,    58,    59,    60,    61,
+      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
+      72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
+      82,    83,    -1,    -1,    -1,    87,    -1,    -1,    -1,    91,
+      92,    -1,    -1,    -1,    -1,    97,    -1,    99,     4,     5,
+       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
+      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
+      26,    27,    28,    29,    30,    31,    32,    33,    34,    -1,
+      36,    37,    38,    39,    40,    41,    -1,    -1,    -1,    -1,
+      46,    47,    48,    49,    50,    51,    -1,    53,    54,    55,
+      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
+      66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
+      76,    77,    78,    79,    80,    81,    82,    83,    -1,    -1,
+      -1,    87,    -1,    -1,    -1,    91,    92,    -1,    -1,    -1,
+      -1,    97,    -1,    99,     4,     5,     6,     7,     8,     9,
+      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
+      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
+      30,    31,    32,    33,    34,    -1,    36,    37,    38,    39,
+      40,    41,    -1,    -1,    -1,    -1,    46,    47,    48,    49,
+      50,    51,    -1,    53,    54,    55,    56,    57,    58,    59,
+      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
+      70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
+      80,    81,    82,    83,    -1,    -1,    -1,    87,    -1,    -1,
+      -1,    91,    92,    -1,    -1,    -1,    -1,    97,    -1,    99,
+       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
+      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
+      24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
+      34,    -1,    36,    37,    38,    39,    40,    41,    -1,    -1,
+      -1,    -1,    46,    47,    48,    49,    50,    51,    -1,    53,
+      54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
+      64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
+      74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
+      -1,    -1,    -1,    87,    -1,    -1,    -1,    91,    92,    -1,
+      -1,    -1,    -1,    97,    -1,    99,     4,     5,     6,     7,
+       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
+      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
+      28,    29,    30,    31,    32,    33,    34,    -1,    36,    37,
+      38,    39,    40,    41,    -1,    -1,    -1,    -1,    46,    47,
+      48,    49,    50,    51,    -1,    53,    54,    55,    56,    57,
+      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
+      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
+      78,    79,    80,    81,    82,    83,    -1,    -1,    -1,    87,
+      -1,    -1,    -1,    91,    92,    -1,    -1,    -1,    -1,    97,
+      -1,    99,     4,     5,     6,     7,     8,     9,    10,    11,
+      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
+      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
+      32,    33,    34,    -1,    36,    37,    38,    39,    40,    41,
+      -1,    -1,    -1,    -1,    46,    47,    48,    49,    50,    51,
+      -1,    53,    54,    55,    56,    57,    58,    59,    60,    61,
+      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
+      72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
+      82,    83,    -1,    -1,    -1,    87,    -1,    -1,    -1,    91,
+      92,    -1,    -1,    -1,    -1,    97,    -1,    99,     4,     5,
+       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
+      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
+      26,    27,    28,    29,    30,    31,    32,    33,    34,    -1,
+      36,    37,    38,    39,    40,    41,    -1,    -1,    -1,    -1,
+      46,    47,    48,    49,    50,    51,    -1,    53,    54,    55,
+      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
+      66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
+      76,    77,    78,    79,    80,    81,    82,    83,    -1,    -1,
+      -1,    87,    -1,    -1,    -1,    91,    92,    -1,    -1,    -1,
+      -1,    97,    -1,    99,     4,     5,     6,     7,     8,     9,
+      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
+      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
+      30,    31,    32,    33,    34,    -1,    36,    37,    38,    39,
+      40,    41,    -1,    -1,    -1,    -1,    -1,    -1,    48,    49,
+      50,    51,    -1,    53,    54,    55,    56,    57,    58,    59,
+      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
+      70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
+      80,    81,    82,    83,    -1,    -1,    -1,    87,    -1,    -1,
+      -1,    91,    92,    -1,    -1,    -1,    -1,    97,    -1,    99,
+       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
+      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
+      24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
+      34,    -1,    36,    37,    38,    39,    40,    41,    -1,    -1,
+      -1,    -1,    -1,    -1,    48,    49,    50,    51,    -1,    -1,
+      -1,    55,    56,    57,    58,    59,    60,    61,    62,    63,
+      64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
+      74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
+      -1,    -1,    -1,    87,    -1,    -1,    -1,    91,    92,    -1,
+      -1,    -1,    -1,    97,    -1,    99,     4,     5,     6,     7,
+       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
+      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
+      28,    29,    30,    31,    32,    33,    34,    -1,    36,    37,
+      38,    39,    40,    41,    -1,    -1,    -1,    -1,    -1,    -1,
+      48,    -1,    50,    51,    -1,    -1,    -1,    55,    56,    57,
+      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
+      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
+      78,    79,    80,    81,    82,    83,    -1,    -1,    -1,    87,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    97,
+       6,    99,    -1,     9,    10,    11,    12,    13,    14,    15,
+      -1,    17,    18,    19,    20,    21,    22,    23,    24,    25,
+      26,    27,    28,    29,    30,    31,    32,    -1,    34,    35,
+      36,    37,    38,    39,    40,    41,    -1,    -1,    -1,    -1,
+      46,    47,    48,    49,    50,    51,    -1,    53,    54,    55,
+      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
+      66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
+      76,    77,    78,    79,    80,    81,    82,    -1,    84,     6,
+      -1,    87,    -1,    10,    11,    12,    13,    14,    15,    95,
+      17,    18,    19,    20,    21,    22,    23,    24,    -1,    26,
+      27,    28,    29,    30,    31,    32,    -1,    34,    35,    36,
+      37,    -1,    39,    40,    41,    -1,    -1,    -1,    -1,    46,
       47,    48,    49,    50,    51,    -1,    53,    54,    55,    56,
       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
-      77,    78,    79,    80,    81,    82,    83,    -1,    -1,    -1,
-      87,    -1,    -1,    -1,    91,    92,    -1,    -1,    -1,    -1,
-      97,    -1,    99,     4,     5,     6,     7,     8,     9,    10,
-      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
-      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,    32,    33,    34,    -1,    36,    37,    38,    39,    40,
-      41,    -1,    -1,    -1,    -1,    46,    47,    48,    49,    50,
-      51,    -1,    53,    54,    55,    56,    57,    58,    59,    60,
-      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
-      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
-      81,    82,    83,    -1,    -1,    -1,    87,    -1,    -1,    -1,
-      91,    92,    -1,    -1,    -1,    -1,    97,    -1,    99,     4,
-       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
-      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
-      -1,    36,    37,    38,    39,    40,    41,    -1,    -1,    -1,
-      -1,    46,    47,    48,    49,    50,    51,    -1,    53,    54,
-      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
-      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
-      75,    76,    77,    78,    79,    80,    81,    82,    83,    -1,
-      -1,    -1,    87,    -1,    -1,    -1,    91,    92,    -1,    -1,
-      -1,    -1,    97,    -1,    99,     4,     5,     6,     7,     8,
-       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
-      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-      29,    30,    31,    32,    33,    34,    -1,    36,    37,    38,
-      39,    40,    41,    -1,    -1,    -1,    -1,    46,    47,    48,
-      49,    50,    51,    -1,    53,    54,    55,    56,    57,    58,
-      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
-      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
-      79,    80,    81,    82,    83,    -1,    -1,    -1,    87,    -1,
-      -1,    -1,    91,    92,    -1,    -1,    -1,    -1,    97,    -1,
-      99,     4,     5,     6,     7,     8,     9,    10,    11,    12,
-      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
-      33,    34,    -1,    36,    37,    38,    39,    40,    41,    -1,
-      -1,    -1,    -1,    -1,    -1,    48,    49,    50,    51,    -1,
-      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
-      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
-      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
-      83,    -1,    -1,    -1,    87,    -1,    -1,    -1,    91,    92,
-      -1,    -1,    -1,    -1,    97,    -1,    99,     4,     5,     6,
-       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
-      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-      27,    28,    29,    30,    31,    32,    33,    34,    -1,    36,
-      37,    38,    39,    40,    41,    -1,    -1,    -1,    -1,    -1,
-      -1,    48,    49,    50,    51,    -1,    -1,    -1,    55,    56,
-      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
-      67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
-      77,    78,    79,    80,    81,    82,    83,    -1,    -1,    -1,
-      87,    -1,    -1,    -1,    91,    92,    -1,    -1,    -1,    -1,
-      97,    -1,    99,     4,     5,     6,     7,     8,     9,    10,
-      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
-      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,    32,    33,    34,    -1,    36,    37,    38,    39,    40,
-      41,    -1,    -1,    -1,    -1,    -1,    -1,    48,    -1,    50,
-      51,    -1,    -1,    -1,    55,    56,    57,    58,    59,    60,
-      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
-      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
-      81,    82,    83,    -1,    -1,    -1,    87,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    97,     6,    99,    -1,
-       9,    10,    11,    12,    13,    14,    15,    -1,    17,    18,
-      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-      29,    30,    31,    32,    -1,    34,    35,    36,    37,    38,
+      77,    78,    79,    80,    81,    -1,    -1,    84,     6,    -1,
+      87,    -1,    10,    11,    12,    13,    14,    15,    95,    17,
+      18,    19,    20,    21,    22,    23,    24,    -1,    26,    27,
+      28,    29,    30,    31,    32,    -1,    34,    35,    36,    37,
+      -1,    39,    40,    41,    -1,    -1,    -1,    -1,    46,    47,
+      48,    49,    50,    51,    -1,    53,    54,    55,    56,    57,
+      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
+      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
+      78,    79,    80,    81,    -1,    -1,    84,     6,    -1,    87,
+      -1,    10,    11,    12,    13,    14,    15,    95,    17,    18,
+      19,    20,    21,    22,    23,    24,    -1,    26,    27,    28,
+      29,    30,    31,    32,    -1,    34,    35,    36,    37,    -1,
       39,    40,    41,    -1,    -1,    -1,    -1,    46,    47,    48,
       49,    50,    51,    -1,    53,    54,    55,    56,    57,    58,
       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
-      79,    80,    81,    82,    -1,    84,     6,    -1,    87,    -1,
+      79,    80,    81,    -1,    -1,    84,     6,    -1,    87,    -1,
       10,    11,    12,    13,    14,    15,    95,    17,    18,    19,
       20,    21,    22,    23,    24,    -1,    26,    27,    28,    29,
       30,    31,    32,    -1,    34,    35,    36,    37,    -1,    39,
@@ -1746,32 +1768,32 @@ static const yytype_int16 yycheck[] =
       51,    -1,    53,    54,    55,    56,    57,    58,    59,    60,
       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
-      81,    -1,    -1,    84,     6,    -1,    87,    -1,    10,    11,
-      12,    13,    14,    15,    95,    17,    18,    19,    20,    21,
-      22,    23,    24,    -1,    26,    27,    28,    29,    30,    31,
-      32,    -1,    34,    35,    36,    37,    -1,    39,    40,    41,
+      81,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    95,     6,     7,     8,     9,    10,
+      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
+      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
+      31,    32,    33,    34,    -1,    36,    37,    38,    39,    40,
+      41,    -1,    -1,    -1,    -1,    46,    47,    48,    49,    50,
+      51,    -1,    53,    54,    55,    56,    57,    58,    59,    60,
+      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
+      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
+      81,    82,    83,    -1,     6,    -1,    87,     9,    10,    11,
+      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
+      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
+      32,    33,    34,    -1,    36,    37,    38,    39,    40,    41,
       -1,    -1,    -1,    -1,    46,    47,    48,    49,    50,    51,
       -1,    53,    54,    55,    56,    57,    58,    59,    60,    61,
       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
-      -1,    -1,    84,     6,    -1,    87,    -1,    10,    11,    12,
-      13,    14,    15,    95,    17,    18,    19,    20,    21,    22,
-      23,    24,    -1,    26,    27,    28,    29,    30,    31,    32,
-      -1,    34,    35,    36,    37,    -1,    39,    40,    41,    -1,
+      82,    83,    -1,     6,    -1,    87,     9,    10,    11,    12,
+      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
+      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
+      33,    34,    -1,    36,    37,    38,    39,    40,    41,    -1,
       -1,    -1,    -1,    46,    47,    48,    49,    50,    51,    -1,
       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
-      73,    74,    75,    76,    77,    78,    79,    80,    81,    -1,
-      -1,    84,     6,    -1,    87,    -1,    10,    11,    12,    13,
-      14,    15,    95,    17,    18,    19,    20,    21,    22,    23,
-      24,    -1,    26,    27,    28,    29,    30,    31,    32,    -1,
-      34,    35,    36,    37,    -1,    39,    40,    41,    -1,    -1,
-      -1,    -1,    46,    47,    48,    49,    50,    51,    -1,    53,
-      54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
-      64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
-      74,    75,    76,    77,    78,    79,    80,    81,    -1,    -1,
-      -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    95,     6,     7,     8,     9,    10,    11,    12,    13,
+      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
+      83,    -1,     6,    -1,    87,     9,    10,    11,    12,    13,
       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
       34,    -1,    36,    37,    38,    39,    40,    41,    -1,    -1,
@@ -1786,97 +1808,71 @@ static const yytype_int16 yycheck[] =
       -1,    46,    47,    48,    49,    50,    51,    -1,    53,    54,
       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
-      75,    76,    77,    78,    79,    80,    81,    82,    83,    -1,
-       6,    -1,    87,     9,    10,    11,    12,    13,    14,    15,
-      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-      26,    27,    28,    29,    30,    31,    32,    33,    34,    -1,
-      36,    37,    38,    39,    40,    41,    -1,    -1,    -1,    -1,
-      46,    47,    48,    49,    50,    51,    -1,    53,    54,    55,
-      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
-      66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
-      76,    77,    78,    79,    80,    81,    82,    83,    -1,     6,
-      -1,    87,     9,    10,    11,    12,    13,    14,    15,    16,
-      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-      27,    28,    29,    30,    31,    32,    33,    34,    -1,    36,
-      37,    38,    39,    40,    41,    -1,    -1,    -1,    -1,    46,
+      75,    76,    77,    78,    79,    80,    81,    82,    83,     6,
+      -1,    -1,    87,    10,    11,    12,    13,    14,    15,    -1,
+      17,    18,    19,    20,    21,    -1,    23,    24,    -1,    26,
+      27,    28,    29,    30,    31,    32,    -1,    34,    -1,    36,
+      37,    -1,    39,    40,    41,    -1,    -1,    -1,    -1,    46,
       47,    48,    49,    50,    51,    -1,    53,    54,    55,    56,
       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
-      77,    78,    79,    80,    81,    82,    83,    -1,     6,    -1,
-      87,     9,    10,    11,    12,    13,    14,    15,    16,    17,
-      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
-      28,    29,    30,    31,    32,    33,    34,    -1,    36,    37,
-      38,    39,    40,    41,    -1,    -1,    -1,    -1,    46,    47,
-      48,    49,    50,    51,    -1,    53,    54,    55,    56,    57,
-      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
-      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
-      78,    79,    80,    81,    82,    83,     6,    -1,    -1,    87,
-      10,    11,    12,    13,    14,    15,    -1,    17,    18,    19,
-      20,    21,    -1,    23,    24,    -1,    26,    27,    28,    29,
-      30,    31,    32,    -1,    34,    -1,    36,    37,    -1,    39,
-      40,    41,    -1,    -1,    -1,    -1,    46,    47,    48,    49,
-      50,    51,    -1,    53,    54,    55,    56,    57,    58,    59,
-      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
-      70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
-      28,    81,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,
-      -1,    -1,    -1,    28,    42,    43,    44,    45,    46,    47,
-      -1,    49,    -1,    -1,    52,    53,    54,    42,    43,    44,
-      45,    46,    47,    28,    49,    -1,    -1,    52,    53,    54,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    43,    44,
+      77,    78,    79,    28,    81,    -1,    -1,    -1,    -1,    -1,
+      87,    -1,    -1,    -1,    -1,    -1,    28,    42,    43,    44,
       45,    46,    47,    -1,    49,    -1,    -1,    52,    53,    54,
-      88,    89,    90,    91,    92,    93,    94,    -1,    -1,    -1,
-      -1,    -1,    -1,    88,    89,    90,    91,    92,    93,    94,
-      -1,    -1,    -1,    -1,    -1,    -1,    28,    -1,    -1,    -1,
-      -1,    -1,    -1,    88,    89,    90,    91,    92,    93,    94,
       42,    43,    44,    45,    46,    47,    28,    49,    -1,    -1,
       52,    53,    54,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       42,    43,    -1,    45,    46,    47,    -1,    49,    -1,    -1,
-      52,    53,    54,    42,    43,    44,    45,    46,    47,    -1,
-      49,    -1,    -1,    52,    53,    54,    88,    89,    90,    91,
+      52,    53,    54,    88,    89,    90,    91,    92,    93,    94,
+      -1,    -1,    -1,    -1,    33,    -1,    88,    89,    90,    91,
       92,    93,    94,    42,    43,    44,    45,    46,    47,    -1,
       49,    -1,    -1,    52,    53,    54,    88,    89,    90,    91,
-      92,    93,    94,    -1,    -1,    -1,    -1,    -1,    -1,    88,
-      89,    90,    91,    92,    93,    94,    -1,    96,    -1,    98,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    88,
+      92,    93,    94,    42,    43,    44,    45,    46,    47,    -1,
+      49,    -1,    -1,    52,    53,    54,    42,    43,    44,    45,
+      46,    47,    -1,    49,    -1,    -1,    52,    53,    54,    88,
+      89,    90,    91,    92,    93,    94,    42,    43,    44,    45,
+      46,    47,    -1,    49,    -1,    -1,    52,    53,    54,    88,
       89,    90,    91,    92,    93,    94,    -1,    96,    -1,    98,
-      42,    43,    44,    45,    46,    47,    -1,    49,    -1,    -1,
-      52,    53,    54,    42,    43,    44,    45,    46,    47,    -1,
+      -1,    -1,    88,    89,    90,    91,    92,    93,    94,    -1,
+      96,    -1,    98,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    88,    89,    90,    91,    92,    93,    94,    -1,
+      -1,    -1,    98,    42,    43,    44,    45,    46,    47,    -1,
       49,    -1,    -1,    52,    53,    54,    42,    43,    44,    45,
-      46,    47,    -1,    49,    -1,    -1,    52,    53,    54,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    88,    89,    90,    91,
-      92,    93,    94,    -1,    -1,    -1,    98,    -1,    -1,    88,
+      46,    47,    -1,    49,    -1,    -1,    52,    53,    54,    42,
+      43,    44,    45,    46,    47,    -1,    49,    -1,    -1,    52,
+      53,    54,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    88,
       89,    90,    91,    92,    93,    94,    -1,    96,    -1,    -1,
       -1,    -1,    88,    89,    90,    91,    92,    93,    94,    95,
-      42,    43,    44,    45,    46,    47,    -1,    49,    -1,    -1,
-      52,    53,    54,    42,    43,    44,    45,    46,    47,    -1,
+      -1,    -1,    -1,    -1,    -1,    88,    89,    90,    91,    92,
+      93,    94,    95,    42,    43,    44,    45,    46,    47,    -1,
       49,    -1,    -1,    52,    53,    54,    42,    43,    44,    45,
-      46,    47,    -1,    49,    -1,    -1,    52,    53,    54,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    88,    89,    90,    91,
-      92,    93,    94,    95,    -1,    -1,    -1,    -1,    -1,    88,
+      46,    47,    -1,    49,    -1,    -1,    52,    53,    54,    42,
+      43,    44,    45,    46,    47,    -1,    49,    -1,    -1,    52,
+      53,    54,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    88,
       89,    90,    91,    92,    93,    94,    95,    -1,    -1,    -1,
       -1,    -1,    88,    89,    90,    91,    92,    93,    94,    95,
-      42,    43,    44,    45,    46,    47,    -1,    49,    -1,    -1,
-      52,    53,    54,    42,    43,    44,    45,    46,    47,    -1,
+      -1,    -1,    -1,    -1,    -1,    88,    89,    90,    91,    92,
+      93,    94,    95,    42,    43,    44,    45,    46,    47,    -1,
       49,    -1,    -1,    52,    53,    54,    -1,    -1,    -1,    -1,
       -1,    42,    43,    44,    45,    46,    47,    -1,    49,    -1,
-      -1,    52,    53,    54,    -1,    -1,    88,    89,    90,    91,
-      92,    93,    94,    95,    -1,    -1,    -1,    -1,    -1,    88,
+      -1,    52,    53,    54,    42,    43,    44,    45,    46,    47,
+      -1,    49,    -1,    -1,    52,    53,    54,    -1,    -1,    88,
       89,    90,    91,    92,    93,    94,    95,    78,    79,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    88,    89,    90,
-      91,    92,    93,    94,    42,    43,    44,    45,    46,    47,
-      -1,    49,    -1,    -1,    52,    53,    54,    42,    43,    44,
+      91,    92,    93,    94,    -1,    -1,    -1,    -1,    -1,    -1,
+      88,    89,    90,    91,    92,    93,    94,    42,    43,    44,
       45,    46,    47,    -1,    49,    -1,    -1,    52,    53,    54,
       42,    43,    -1,    45,    46,    47,    -1,    49,    -1,    -1,
-      52,    53,    54,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      88,    89,    90,    91,    92,    93,    94,    -1,    -1,    -1,
+      52,    53,    54,    42,    43,    44,    45,    -1,    -1,    -1,
+      49,    -1,    -1,    52,    53,    54,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    88,    89,    90,    91,    92,    93,    94,
       -1,    -1,    -1,    -1,    -1,    -1,    88,    89,    90,    91,
-      92,    93,    94,    42,    43,    44,    45,    -1,    -1,    -1,
-      49,    -1,    -1,    52,    53,    54,    -1,    -1,    -1,    -1,
+      92,    93,    94,    -1,    -1,    -1,    -1,    -1,    -1,    88,
+      89,    90,    91,    92,    93,    94,    42,    43,    -1,    45,
+      -1,    -1,    -1,    49,    -1,    -1,    52,    53,    54,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    88,
-      89,    90,    91,    92,    93,    94
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    88,    89,    90,    91,    92,    93,    94
 };
 
   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1922,28 +1918,28 @@ static const yytype_uint8 yystos[] =
       44,    45,    46,    47,    49,    52,    53,    54,    88,    89,
       90,    91,    92,    93,    94,    96,   123,    95,   118,    95,
       74,   141,   142,   144,   142,   142,    23,    44,    95,    28,
-     161,    83,    95,   108,   109,   110,   111,   161,   120,    95,
-     118,   134,   135,   136,    95,    96,   160,   161,   160,   161,
-     160,   161,   160,   161,    23,    28,   153,    26,    56,    58,
-      60,    62,    70,    71,    72,    76,    77,   149,   150,   160,
-     149,   160,   160,    98,   166,   161,   161,   161,     7,     8,
-     115,   158,   161,    96,   123,   161,   123,   161,   161,   161,
+     161,     9,    83,    95,   108,   109,   110,   111,   161,   120,
+      95,   118,   134,   135,   136,    95,    96,   160,   161,   160,
+     161,   160,   161,   160,   161,    23,    28,   153,    26,    56,
+      58,    60,    62,    70,    71,    72,    76,    77,   149,   150,
+     160,   149,   160,   160,    98,   166,   161,   161,   161,     7,
+       8,   115,   158,   161,    96,   123,   161,   123,   161,   161,
      161,   161,   161,   161,   161,   161,   161,   161,   161,   161,
-     161,   161,   161,   161,   166,    95,   119,   137,   138,   139,
-      16,   134,    95,    95,    95,   161,   161,   134,    70,    71,
-      76,    77,   155,   160,    95,   115,   111,    95,    86,   136,
-     134,    98,   166,    28,    28,    28,    28,   160,   161,   153,
-     153,   153,   153,   160,   160,   153,   160,   160,   123,    98,
-     123,    16,    84,   130,   139,    95,   118,    95,    15,    34,
-      85,   160,   163,   164,   163,   163,   163,   116,    95,     9,
-     123,   160,   160,   160,   160,   160,   160,   160,   160,    28,
-      70,   150,    98,    95,   118,    95,   137,   134,    34,   161,
-      95,    42,    43,    45,    46,    47,    49,    52,    53,    54,
-      88,    89,    90,    91,    92,    93,    94,    28,    95,   113,
-      98,    70,   137,   130,    85,   161,    95,   163,   163,   163,
+     161,   161,   161,   161,   161,   166,    95,   119,   137,   138,
+     139,    16,   134,    95,    95,    95,   161,   161,   134,    70,
+      71,    76,    77,   155,   160,    95,   113,   115,   111,    95,
+      86,   136,   134,    98,   166,    28,    28,    28,    28,   160,
+     161,   153,   153,   153,   153,   160,   160,   153,   160,   160,
+     123,    98,   123,    16,    84,   130,   139,    95,   118,    95,
+      15,    34,    85,   160,   163,   164,   163,   163,   163,    95,
+     116,    95,     9,   123,   160,   160,   160,   160,   160,   160,
+     160,   160,    28,    70,   150,    98,    95,   118,    95,   137,
+     134,    34,   161,    95,    42,    43,    45,    46,    47,    49,
+      52,    53,    54,    88,    89,    90,    91,    92,    93,    94,
+      28,    95,   113,    98,    70,   137,   130,    85,   161,    95,
      163,   163,   163,   163,   163,   163,   163,   163,   163,   163,
-     163,   163,   163,    70,   134,    95,   160,   130,    95,    95,
-     134,   163,   134,    85,    85,    95,    95
+     163,   163,   163,   163,   163,   163,    70,   134,    95,   160,
+     130,    95,    95,   134,   163,   134,    85,    85,    95,    95
 };
 
   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
@@ -1951,37 +1947,37 @@ static const yytype_uint8 yyr1[] =
 {
        0,   102,   103,   104,   104,   105,   105,   105,   105,   105,
      105,   106,   107,   108,   109,   109,   110,   110,   111,   111,
-     112,   112,   113,   113,   113,   114,   114,   114,   114,   114,
+     111,   112,   112,   113,   113,   113,   114,   114,   114,   114,
      114,   114,   114,   114,   114,   114,   114,   114,   114,   114,
      114,   114,   114,   114,   114,   114,   114,   114,   114,   114,
      114,   114,   114,   114,   114,   114,   114,   114,   114,   114,
      114,   114,   114,   114,   114,   114,   114,   114,   114,   114,
-     114,   114,   114,   114,   114,   114,   114,   114,   115,   115,
+     114,   114,   114,   114,   114,   114,   114,   114,   114,   115,
      115,   115,   115,   115,   115,   115,   115,   115,   115,   115,
-     115,   115,   115,   115,   115,   115,   115,   116,   116,   116,
-     117,   117,   118,   118,   119,   119,   119,   119,   119,   119,
-     120,   120,   120,   121,   121,   121,   121,   121,   121,   121,
-     121,   121,   121,   121,   121,   121,   121,   122,   122,   122,
-     122,   122,   122,   122,   122,   123,   123,   124,   124,   124,
-     124,   124,   125,   125,   125,   125,   126,   126,   127,   127,
-     127,   128,   128,   129,   129,   129,   129,   130,   130,   131,
-     131,   131,   131,   132,   132,   133,   134,   134,   135,   135,
-     136,   136,   137,   137,   138,   138,   139,   139,   140,   140,
+     115,   115,   115,   115,   115,   115,   115,   115,   116,   116,
+     116,   117,   117,   118,   118,   119,   119,   119,   119,   119,
+     119,   120,   120,   120,   121,   121,   121,   121,   121,   121,
+     121,   121,   121,   121,   121,   121,   121,   121,   122,   122,
+     122,   122,   122,   122,   122,   122,   123,   123,   124,   124,
+     124,   124,   124,   125,   125,   125,   125,   126,   126,   127,
+     127,   127,   128,   128,   129,   129,   129,   129,   130,   130,
+     131,   131,   131,   131,   132,   132,   133,   134,   134,   135,
+     135,   136,   136,   137,   137,   138,   138,   139,   139,   140,
      140,   140,   140,   140,   140,   140,   140,   140,   140,   140,
-     140,   141,   142,   142,   143,   143,   144,   144,   144,   144,
-     144,   144,   144,   144,   144,   144,   144,   145,   145,   145,
-     145,   146,   146,   147,   147,   147,   147,   148,   148,   148,
-     148,   148,   149,   149,   149,   149,   149,   150,   151,   151,
-     151,   151,   151,   151,   151,   151,   151,   151,   152,   152,
-     152,   152,   152,   153,   153,   154,   154,   155,   155,   155,
-     155,   155,   156,   156,   156,   157,   157,   158,   158,   158,
-     159,   159,   160,   160,   161,   161,   161,   161,   161,   161,
+     140,   140,   141,   142,   142,   143,   143,   144,   144,   144,
+     144,   144,   144,   144,   144,   144,   144,   144,   145,   145,
+     145,   145,   146,   146,   147,   147,   147,   147,   148,   148,
+     148,   148,   148,   149,   149,   149,   149,   149,   150,   151,
+     151,   151,   151,   151,   151,   151,   151,   151,   151,   152,
+     152,   152,   152,   152,   153,   153,   154,   154,   155,   155,
+     155,   155,   155,   156,   156,   156,   157,   157,   158,   158,
+     158,   159,   159,   160,   160,   161,   161,   161,   161,   161,
      161,   161,   161,   161,   161,   161,   161,   161,   161,   161,
-     161,   161,   161,   162,   162,   162,   162,   162,   162,   162,
+     161,   161,   161,   161,   162,   162,   162,   162,   162,   162,
      162,   162,   162,   162,   162,   162,   162,   162,   162,   162,
-     162,   162,   163,   163,   163,   163,   163,   163,   163,   163,
+     162,   162,   162,   163,   163,   163,   163,   163,   163,   163,
      163,   163,   163,   163,   163,   163,   163,   163,   163,   163,
-     164,   164,   165,   165,   166,   166
+     163,   164,   164,   165,   165,   166,   166
 };
 
   /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
@@ -1989,37 +1985,37 @@ static const yytype_int8 yyr2[] =
 {
        0,     2,     1,     1,     2,     1,     1,     1,     1,     1,
        3,     5,     4,     5,     0,     1,     1,     2,     1,     1,
-       8,     5,     0,     1,     3,     1,     1,     1,     1,     1,
+       3,     8,     5,     0,     1,     3,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     0,     1,     2,
-       1,     3,     1,     2,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     3,     3,     3,     3,     3,     3,     3,
-       5,     3,     3,     2,     3,     3,     2,     0,     2,     4,
-       3,     5,     2,     4,     6,     0,     1,     2,     2,     5,
-       4,     3,     5,     5,     5,     5,     1,     1,     3,     3,
-       3,     4,     6,     6,     8,     7,     9,     0,     2,     7,
-      11,    12,     9,     4,     6,     2,     0,     1,     1,     2,
-       1,     1,     0,     1,     1,     2,     1,     1,     1,     1,
-       1,     1,     2,     3,     5,     3,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     2,     2,     4,     6,
-       4,     6,     4,     6,     4,     6,     5,     1,     1,     1,
-       1,     2,     2,     1,     2,     4,     6,     2,     4,     4,
-       1,     1,     1,     1,     5,     2,     2,     2,     3,     3,
-       3,     3,     3,     3,     3,     3,     3,     3,     6,     6,
-       6,     6,     6,     1,     1,     2,     4,     1,     2,     5,
-       2,     2,     3,     3,     3,     1,     3,     3,     3,     3,
-       2,     2,     1,     1,     1,     1,     3,     3,     3,     3,
+       1,     1,     1,     1,     1,     1,     1,     1,     0,     1,
+       2,     1,     3,     1,     2,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     3,     3,     3,     3,     3,     3,
+       3,     5,     3,     3,     2,     3,     3,     2,     0,     2,
+       4,     3,     5,     2,     4,     6,     0,     1,     2,     2,
+       5,     4,     3,     5,     5,     5,     5,     1,     1,     3,
+       3,     3,     4,     6,     6,     8,     7,     9,     0,     2,
+       7,    11,    12,     9,     4,     6,     2,     0,     1,     1,
+       2,     1,     1,     0,     1,     1,     2,     1,     1,     1,
+       1,     1,     1,     2,     3,     5,     3,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     2,     2,     4,
+       6,     4,     6,     4,     6,     4,     6,     5,     1,     1,
+       1,     1,     2,     2,     1,     2,     4,     6,     2,     4,
+       4,     1,     1,     1,     1,     5,     2,     2,     2,     3,
+       3,     3,     3,     3,     3,     3,     3,     3,     3,     6,
+       6,     6,     6,     6,     1,     1,     2,     4,     1,     2,
+       5,     2,     2,     3,     3,     3,     1,     3,     3,     3,
+       3,     2,     2,     1,     1,     1,     1,     3,     3,     3,
        3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
-       3,     3,     3,     1,     1,     3,     3,     3,     3,     3,
+       3,     3,     3,     3,     1,     1,     3,     3,     3,     3,
        3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
-       3,     3,     1,     1,     3,     3,     3,     3,     3,     3,
+       3,     3,     3,     1,     1,     3,     3,     3,     3,     3,
        3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
-       4,     4,     0,     1,     1,     3
+       3,     4,     4,     0,     1,     1,     3
 };
 
 
@@ -2293,37 +2289,37 @@ yydestruct (const char *yymsg,
     case YYSYMBOL_tVARID: /* tVARID  */
 #line 195 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 2297 "engines/director/lingo/lingo-gr.cpp"
+#line 2293 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case YYSYMBOL_tSTRING: /* tSTRING  */
 #line 195 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 2303 "engines/director/lingo/lingo-gr.cpp"
+#line 2299 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case YYSYMBOL_tSYMBOL: /* tSYMBOL  */
 #line 195 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 2309 "engines/director/lingo/lingo-gr.cpp"
+#line 2305 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case YYSYMBOL_tENDCLAUSE: /* tENDCLAUSE  */
 #line 195 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 2315 "engines/director/lingo/lingo-gr.cpp"
+#line 2311 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case YYSYMBOL_CMDID: /* CMDID  */
 #line 195 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 2321 "engines/director/lingo/lingo-gr.cpp"
+#line 2317 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case YYSYMBOL_ID: /* ID  */
 #line 195 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 2327 "engines/director/lingo/lingo-gr.cpp"
+#line 2323 "engines/director/lingo/lingo-gr.cpp"
         break;
 
       default:
@@ -2591,7 +2587,7 @@ yyreduce:
   case 2: /* script: scriptpartlist  */
 #line 201 "engines/director/lingo/lingo-gr.y"
                                                         { g_lingo->_compiler->_assemblyAST = new ScriptNode((yyvsp[0].nodelist)); }
-#line 2595 "engines/director/lingo/lingo-gr.cpp"
+#line 2591 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 3: /* scriptpartlist: scriptpart  */
@@ -2602,7 +2598,7 @@ yyreduce:
 			list->push_back((yyvsp[0].node));
 		}
 		(yyval.nodelist) = list; }
-#line 2606 "engines/director/lingo/lingo-gr.cpp"
+#line 2602 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 4: /* scriptpartlist: scriptpartlist scriptpart  */
@@ -2612,43 +2608,43 @@ yyreduce:
 			(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
 		}
 		(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2616 "engines/director/lingo/lingo-gr.cpp"
+#line 2612 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 5: /* scriptpart: '\n'  */
 #line 216 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = nullptr; }
-#line 2622 "engines/director/lingo/lingo-gr.cpp"
+#line 2618 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 10: /* scriptpart: tENDCLAUSE endargdef '\n'  */
 #line 221 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = nullptr; delete (yyvsp[-2].s); }
-#line 2628 "engines/director/lingo/lingo-gr.cpp"
+#line 2624 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 11: /* macro: tMACRO ID idlist '\n' stmtlist  */
 #line 250 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2634 "engines/director/lingo/lingo-gr.cpp"
+#line 2630 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 12: /* factory: tFACTORY ID '\n' methodlist  */
 #line 254 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new FactoryNode((yyvsp[-2].s), (yyvsp[0].nodelist)); }
-#line 2640 "engines/director/lingo/lingo-gr.cpp"
+#line 2636 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 13: /* method: tMETHOD ID idlist '\n' stmtlist  */
 #line 256 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2646 "engines/director/lingo/lingo-gr.cpp"
+#line 2642 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 14: /* methodlist: %empty  */
 #line 258 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.nodelist) = new NodeList; }
-#line 2652 "engines/director/lingo/lingo-gr.cpp"
+#line 2648 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 16: /* nonemptymethodlist: methodlistline  */
@@ -2659,7 +2655,7 @@ yyreduce:
 			list->push_back((yyvsp[0].node));
 		}
 		(yyval.nodelist) = list; }
-#line 2663 "engines/director/lingo/lingo-gr.cpp"
+#line 2659 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 17: /* nonemptymethodlist: nonemptymethodlist methodlistline  */
@@ -2669,1696 +2665,1702 @@ yyreduce:
 			(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
 		}
 		(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2673 "engines/director/lingo/lingo-gr.cpp"
+#line 2669 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 18: /* methodlistline: '\n'  */
 #line 275 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = nullptr; }
-#line 2679 "engines/director/lingo/lingo-gr.cpp"
+#line 2675 "engines/director/lingo/lingo-gr.cpp"
+    break;
+
+  case 20: /* methodlistline: tENDCLAUSE endargdef '\n'  */
+#line 277 "engines/director/lingo/lingo-gr.y"
+                                                        { (yyval.node) = nullptr; delete (yyvsp[-2].s); }
+#line 2681 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 20: /* handler: tON ID idlist '\n' stmtlist tENDCLAUSE endargdef '\n'  */
-#line 281 "engines/director/lingo/lingo-gr.y"
+  case 21: /* handler: tON ID idlist '\n' stmtlist tENDCLAUSE endargdef '\n'  */
+#line 282 "engines/director/lingo/lingo-gr.y"
                                                                {	// D3
 		(yyval.node) = new HandlerNode((yyvsp[-6].s), (yyvsp[-5].idlist), (yyvsp[-3].nodelist));
 		checkEnd((yyvsp[-2].s), (yyvsp[-6].s), false);
 		delete (yyvsp[-2].s); }
-#line 2688 "engines/director/lingo/lingo-gr.cpp"
+#line 2690 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 21: /* handler: tON ID idlist '\n' stmtlist  */
-#line 285 "engines/director/lingo/lingo-gr.y"
+  case 22: /* handler: tON ID idlist '\n' stmtlist  */
+#line 286 "engines/director/lingo/lingo-gr.y"
                                       {	// D4. No 'end' clause
 		(yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2695 "engines/director/lingo/lingo-gr.cpp"
+#line 2697 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 23: /* endargdef: ID  */
-#line 290 "engines/director/lingo/lingo-gr.y"
+  case 24: /* endargdef: ID  */
+#line 291 "engines/director/lingo/lingo-gr.y"
                                                         { delete (yyvsp[0].s); }
-#line 2701 "engines/director/lingo/lingo-gr.cpp"
+#line 2703 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 24: /* endargdef: endargdef ',' ID  */
-#line 291 "engines/director/lingo/lingo-gr.y"
+  case 25: /* endargdef: endargdef ',' ID  */
+#line 292 "engines/director/lingo/lingo-gr.y"
                                                 { delete (yyvsp[0].s); }
-#line 2707 "engines/director/lingo/lingo-gr.cpp"
+#line 2709 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 26: /* CMDID: tABBREVIATED  */
-#line 299 "engines/director/lingo/lingo-gr.y"
+  case 27: /* CMDID: tABBREVIATED  */
+#line 300 "engines/director/lingo/lingo-gr.y"
                         { (yyval.s) = new Common::String("abbreviated"); }
-#line 2713 "engines/director/lingo/lingo-gr.cpp"
+#line 2715 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 27: /* CMDID: tABBREV  */
-#line 300 "engines/director/lingo/lingo-gr.y"
+  case 28: /* CMDID: tABBREV  */
+#line 301 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("abbrev"); }
-#line 2719 "engines/director/lingo/lingo-gr.cpp"
+#line 2721 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 28: /* CMDID: tABBR  */
-#line 301 "engines/director/lingo/lingo-gr.y"
+  case 29: /* CMDID: tABBR  */
+#line 302 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("abbr"); }
-#line 2725 "engines/director/lingo/lingo-gr.cpp"
+#line 2727 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 29: /* CMDID: tAFTER  */
-#line 302 "engines/director/lingo/lingo-gr.y"
+  case 30: /* CMDID: tAFTER  */
+#line 303 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("after"); }
-#line 2731 "engines/director/lingo/lingo-gr.cpp"
+#line 2733 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 30: /* CMDID: tAND  */
-#line 303 "engines/director/lingo/lingo-gr.y"
+  case 31: /* CMDID: tAND  */
+#line 304 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("and"); }
-#line 2737 "engines/director/lingo/lingo-gr.cpp"
+#line 2739 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 31: /* CMDID: tBEFORE  */
-#line 304 "engines/director/lingo/lingo-gr.y"
+  case 32: /* CMDID: tBEFORE  */
+#line 305 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("before"); }
-#line 2743 "engines/director/lingo/lingo-gr.cpp"
+#line 2745 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 32: /* CMDID: tCAST  */
-#line 305 "engines/director/lingo/lingo-gr.y"
+  case 33: /* CMDID: tCAST  */
+#line 306 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("cast"); }
-#line 2749 "engines/director/lingo/lingo-gr.cpp"
+#line 2751 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 33: /* CMDID: tCHAR  */
-#line 306 "engines/director/lingo/lingo-gr.y"
+  case 34: /* CMDID: tCHAR  */
+#line 307 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("char"); }
-#line 2755 "engines/director/lingo/lingo-gr.cpp"
+#line 2757 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 34: /* CMDID: tCHARS  */
-#line 307 "engines/director/lingo/lingo-gr.y"
+  case 35: /* CMDID: tCHARS  */
+#line 308 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("chars"); }
-#line 2761 "engines/director/lingo/lingo-gr.cpp"
+#line 2763 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 35: /* CMDID: tCONTAINS  */
-#line 308 "engines/director/lingo/lingo-gr.y"
+  case 36: /* CMDID: tCONTAINS  */
+#line 309 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("contains"); }
-#line 2767 "engines/director/lingo/lingo-gr.cpp"
+#line 2769 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 36: /* CMDID: tDATE  */
-#line 309 "engines/director/lingo/lingo-gr.y"
+  case 37: /* CMDID: tDATE  */
+#line 310 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("date"); }
-#line 2773 "engines/director/lingo/lingo-gr.cpp"
+#line 2775 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 37: /* CMDID: tDELETE  */
-#line 310 "engines/director/lingo/lingo-gr.y"
+  case 38: /* CMDID: tDELETE  */
+#line 311 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("delete"); }
-#line 2779 "engines/director/lingo/lingo-gr.cpp"
+#line 2781 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 38: /* CMDID: tDOWN  */
-#line 311 "engines/director/lingo/lingo-gr.y"
+  case 39: /* CMDID: tDOWN  */
+#line 312 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("down"); }
-#line 2785 "engines/director/lingo/lingo-gr.cpp"
+#line 2787 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 39: /* CMDID: tFIELD  */
-#line 312 "engines/director/lingo/lingo-gr.y"
+  case 40: /* CMDID: tFIELD  */
+#line 313 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("field"); }
-#line 2791 "engines/director/lingo/lingo-gr.cpp"
+#line 2793 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 40: /* CMDID: tFRAME  */
-#line 313 "engines/director/lingo/lingo-gr.y"
+  case 41: /* CMDID: tFRAME  */
+#line 314 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("frame"); }
-#line 2797 "engines/director/lingo/lingo-gr.cpp"
+#line 2799 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 41: /* CMDID: tHILITE  */
-#line 314 "engines/director/lingo/lingo-gr.y"
+  case 42: /* CMDID: tHILITE  */
+#line 315 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("hilite"); }
-#line 2803 "engines/director/lingo/lingo-gr.cpp"
+#line 2805 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 42: /* CMDID: tIN  */
-#line 315 "engines/director/lingo/lingo-gr.y"
+  case 43: /* CMDID: tIN  */
+#line 316 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("in"); }
-#line 2809 "engines/director/lingo/lingo-gr.cpp"
+#line 2811 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 43: /* CMDID: tINTERSECTS  */
-#line 316 "engines/director/lingo/lingo-gr.y"
+  case 44: /* CMDID: tINTERSECTS  */
+#line 317 "engines/director/lingo/lingo-gr.y"
                         { (yyval.s) = new Common::String("intersects"); }
-#line 2815 "engines/director/lingo/lingo-gr.cpp"
+#line 2817 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 44: /* CMDID: tINTO  */
-#line 317 "engines/director/lingo/lingo-gr.y"
+  case 45: /* CMDID: tINTO  */
+#line 318 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("into"); }
-#line 2821 "engines/director/lingo/lingo-gr.cpp"
+#line 2823 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 45: /* CMDID: tITEM  */
-#line 318 "engines/director/lingo/lingo-gr.y"
+  case 46: /* CMDID: tITEM  */
+#line 319 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("item"); }
-#line 2827 "engines/director/lingo/lingo-gr.cpp"
+#line 2829 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 46: /* CMDID: tITEMS  */
-#line 319 "engines/director/lingo/lingo-gr.y"
+  case 47: /* CMDID: tITEMS  */
+#line 320 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("items"); }
-#line 2833 "engines/director/lingo/lingo-gr.cpp"
+#line 2835 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 47: /* CMDID: tLAST  */
-#line 320 "engines/director/lingo/lingo-gr.y"
+  case 48: /* CMDID: tLAST  */
+#line 321 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("last"); }
-#line 2839 "engines/director/lingo/lingo-gr.cpp"
+#line 2841 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 48: /* CMDID: tLINE  */
-#line 321 "engines/director/lingo/lingo-gr.y"
+  case 49: /* CMDID: tLINE  */
+#line 322 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("line"); }
-#line 2845 "engines/director/lingo/lingo-gr.cpp"
+#line 2847 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 49: /* CMDID: tLINES  */
-#line 322 "engines/director/lingo/lingo-gr.y"
+  case 50: /* CMDID: tLINES  */
+#line 323 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("lines"); }
-#line 2851 "engines/director/lingo/lingo-gr.cpp"
+#line 2853 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 50: /* CMDID: tLONG  */
-#line 323 "engines/director/lingo/lingo-gr.y"
+  case 51: /* CMDID: tLONG  */
+#line 324 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("long"); }
-#line 2857 "engines/director/lingo/lingo-gr.cpp"
+#line 2859 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 51: /* CMDID: tMENU  */
-#line 324 "engines/director/lingo/lingo-gr.y"
+  case 52: /* CMDID: tMENU  */
+#line 325 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("menu"); }
-#line 2863 "engines/director/lingo/lingo-gr.cpp"
+#line 2865 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 52: /* CMDID: tMENUITEM  */
-#line 325 "engines/director/lingo/lingo-gr.y"
+  case 53: /* CMDID: tMENUITEM  */
+#line 326 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("menuItem"); }
-#line 2869 "engines/director/lingo/lingo-gr.cpp"
+#line 2871 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 53: /* CMDID: tMENUITEMS  */
-#line 326 "engines/director/lingo/lingo-gr.y"
+  case 54: /* CMDID: tMENUITEMS  */
+#line 327 "engines/director/lingo/lingo-gr.y"
                         { (yyval.s) = new Common::String("menuItems"); }
-#line 2875 "engines/director/lingo/lingo-gr.cpp"
+#line 2877 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 54: /* CMDID: tMOD  */
-#line 327 "engines/director/lingo/lingo-gr.y"
+  case 55: /* CMDID: tMOD  */
+#line 328 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("mod"); }
-#line 2881 "engines/director/lingo/lingo-gr.cpp"
+#line 2883 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 55: /* CMDID: tMOVIE  */
-#line 328 "engines/director/lingo/lingo-gr.y"
+  case 56: /* CMDID: tMOVIE  */
+#line 329 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("movie"); }
-#line 2887 "engines/director/lingo/lingo-gr.cpp"
+#line 2889 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 56: /* CMDID: tNEXT  */
-#line 329 "engines/director/lingo/lingo-gr.y"
+  case 57: /* CMDID: tNEXT  */
+#line 330 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("next"); }
-#line 2893 "engines/director/lingo/lingo-gr.cpp"
+#line 2895 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 57: /* CMDID: tNOT  */
-#line 330 "engines/director/lingo/lingo-gr.y"
+  case 58: /* CMDID: tNOT  */
+#line 331 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("not"); }
-#line 2899 "engines/director/lingo/lingo-gr.cpp"
+#line 2901 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 58: /* CMDID: tNUMBER  */
-#line 331 "engines/director/lingo/lingo-gr.y"
+  case 59: /* CMDID: tNUMBER  */
+#line 332 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("number"); }
-#line 2905 "engines/director/lingo/lingo-gr.cpp"
+#line 2907 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 59: /* CMDID: tOF  */
-#line 332 "engines/director/lingo/lingo-gr.y"
+  case 60: /* CMDID: tOF  */
+#line 333 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("of"); }
-#line 2911 "engines/director/lingo/lingo-gr.cpp"
+#line 2913 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 60: /* CMDID: tOR  */
-#line 333 "engines/director/lingo/lingo-gr.y"
+  case 61: /* CMDID: tOR  */
+#line 334 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("or"); }
-#line 2917 "engines/director/lingo/lingo-gr.cpp"
+#line 2919 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 61: /* CMDID: tPREVIOUS  */
-#line 334 "engines/director/lingo/lingo-gr.y"
+  case 62: /* CMDID: tPREVIOUS  */
+#line 335 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("previous"); }
-#line 2923 "engines/director/lingo/lingo-gr.cpp"
+#line 2925 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 62: /* CMDID: tREPEAT  */
-#line 335 "engines/director/lingo/lingo-gr.y"
+  case 63: /* CMDID: tREPEAT  */
+#line 336 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("repeat"); }
-#line 2929 "engines/director/lingo/lingo-gr.cpp"
+#line 2931 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 63: /* CMDID: tSCRIPT  */
-#line 336 "engines/director/lingo/lingo-gr.y"
+  case 64: /* CMDID: tSCRIPT  */
+#line 337 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("script"); }
-#line 2935 "engines/director/lingo/lingo-gr.cpp"
+#line 2937 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 64: /* CMDID: tASSERTERROR  */
-#line 337 "engines/director/lingo/lingo-gr.y"
+  case 65: /* CMDID: tASSERTERROR  */
+#line 338 "engines/director/lingo/lingo-gr.y"
                         { (yyval.s) = new Common::String("scummvmAssertError"); }
-#line 2941 "engines/director/lingo/lingo-gr.cpp"
+#line 2943 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 65: /* CMDID: tSHORT  */
-#line 338 "engines/director/lingo/lingo-gr.y"
+  case 66: /* CMDID: tSHORT  */
+#line 339 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("short"); }
-#line 2947 "engines/director/lingo/lingo-gr.cpp"
+#line 2949 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 66: /* CMDID: tSOUND  */
-#line 339 "engines/director/lingo/lingo-gr.y"
+  case 67: /* CMDID: tSOUND  */
+#line 340 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("sound"); }
-#line 2953 "engines/director/lingo/lingo-gr.cpp"
+#line 2955 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 67: /* CMDID: tSPRITE  */
-#line 340 "engines/director/lingo/lingo-gr.y"
+  case 68: /* CMDID: tSPRITE  */
+#line 341 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("sprite"); }
-#line 2959 "engines/director/lingo/lingo-gr.cpp"
+#line 2961 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 68: /* CMDID: tSTARTS  */
-#line 341 "engines/director/lingo/lingo-gr.y"
+  case 69: /* CMDID: tSTARTS  */
+#line 342 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("starts"); }
-#line 2965 "engines/director/lingo/lingo-gr.cpp"
+#line 2967 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 69: /* CMDID: tTHE  */
-#line 342 "engines/director/lingo/lingo-gr.y"
+  case 70: /* CMDID: tTHE  */
+#line 343 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("the"); }
-#line 2971 "engines/director/lingo/lingo-gr.cpp"
+#line 2973 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 70: /* CMDID: tTIME  */
-#line 343 "engines/director/lingo/lingo-gr.y"
+  case 71: /* CMDID: tTIME  */
+#line 344 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("time"); }
-#line 2977 "engines/director/lingo/lingo-gr.cpp"
+#line 2979 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 71: /* CMDID: tTO  */
-#line 344 "engines/director/lingo/lingo-gr.y"
+  case 72: /* CMDID: tTO  */
+#line 345 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("to"); }
-#line 2983 "engines/director/lingo/lingo-gr.cpp"
+#line 2985 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 72: /* CMDID: tWHILE  */
-#line 345 "engines/director/lingo/lingo-gr.y"
+  case 73: /* CMDID: tWHILE  */
+#line 346 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("while"); }
-#line 2989 "engines/director/lingo/lingo-gr.cpp"
+#line 2991 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 73: /* CMDID: tWINDOW  */
-#line 346 "engines/director/lingo/lingo-gr.y"
+  case 74: /* CMDID: tWINDOW  */
+#line 347 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("window"); }
-#line 2995 "engines/director/lingo/lingo-gr.cpp"
+#line 2997 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 74: /* CMDID: tWITH  */
-#line 347 "engines/director/lingo/lingo-gr.y"
+  case 75: /* CMDID: tWITH  */
+#line 348 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("with"); }
-#line 3001 "engines/director/lingo/lingo-gr.cpp"
+#line 3003 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 75: /* CMDID: tWITHIN  */
-#line 348 "engines/director/lingo/lingo-gr.y"
+  case 76: /* CMDID: tWITHIN  */
+#line 349 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("within"); }
-#line 3007 "engines/director/lingo/lingo-gr.cpp"
+#line 3009 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 76: /* CMDID: tWORD  */
-#line 349 "engines/director/lingo/lingo-gr.y"
+  case 77: /* CMDID: tWORD  */
+#line 350 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("word"); }
-#line 3013 "engines/director/lingo/lingo-gr.cpp"
+#line 3015 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 77: /* CMDID: tWORDS  */
-#line 350 "engines/director/lingo/lingo-gr.y"
+  case 78: /* CMDID: tWORDS  */
+#line 351 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("words"); }
-#line 3019 "engines/director/lingo/lingo-gr.cpp"
+#line 3021 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 79: /* ID: tELSE  */
-#line 354 "engines/director/lingo/lingo-gr.y"
+  case 80: /* ID: tELSE  */
+#line 355 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("else"); }
-#line 3025 "engines/director/lingo/lingo-gr.cpp"
+#line 3027 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 80: /* ID: tENDCLAUSE  */
-#line 355 "engines/director/lingo/lingo-gr.y"
+  case 81: /* ID: tENDCLAUSE  */
+#line 356 "engines/director/lingo/lingo-gr.y"
                         { (yyval.s) = new Common::String("end"); delete (yyvsp[0].s); }
-#line 3031 "engines/director/lingo/lingo-gr.cpp"
+#line 3033 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 81: /* ID: tEXIT  */
-#line 356 "engines/director/lingo/lingo-gr.y"
+  case 82: /* ID: tEXIT  */
+#line 357 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("exit"); }
-#line 3037 "engines/director/lingo/lingo-gr.cpp"
+#line 3039 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 82: /* ID: tFACTORY  */
-#line 357 "engines/director/lingo/lingo-gr.y"
+  case 83: /* ID: tFACTORY  */
+#line 358 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("factory"); }
-#line 3043 "engines/director/lingo/lingo-gr.cpp"
+#line 3045 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 83: /* ID: tGLOBAL  */
-#line 358 "engines/director/lingo/lingo-gr.y"
+  case 84: /* ID: tGLOBAL  */
+#line 359 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("global"); }
-#line 3049 "engines/director/lingo/lingo-gr.cpp"
+#line 3051 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 84: /* ID: tGO  */
-#line 359 "engines/director/lingo/lingo-gr.y"
+  case 85: /* ID: tGO  */
+#line 360 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("go"); }
-#line 3055 "engines/director/lingo/lingo-gr.cpp"
+#line 3057 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 85: /* ID: tIF  */
-#line 360 "engines/director/lingo/lingo-gr.y"
+  case 86: /* ID: tIF  */
+#line 361 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("if"); }
-#line 3061 "engines/director/lingo/lingo-gr.cpp"
+#line 3063 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 86: /* ID: tINSTANCE  */
-#line 361 "engines/director/lingo/lingo-gr.y"
+  case 87: /* ID: tINSTANCE  */
+#line 362 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("instance"); }
-#line 3067 "engines/director/lingo/lingo-gr.cpp"
+#line 3069 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 87: /* ID: tMACRO  */
-#line 362 "engines/director/lingo/lingo-gr.y"
+  case 88: /* ID: tMACRO  */
+#line 363 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("macro"); }
-#line 3073 "engines/director/lingo/lingo-gr.cpp"
+#line 3075 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 88: /* ID: tMETHOD  */
-#line 363 "engines/director/lingo/lingo-gr.y"
+  case 89: /* ID: tMETHOD  */
+#line 364 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("method"); }
-#line 3079 "engines/director/lingo/lingo-gr.cpp"
+#line 3081 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 89: /* ID: tON  */
-#line 364 "engines/director/lingo/lingo-gr.y"
+  case 90: /* ID: tON  */
+#line 365 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("on"); }
-#line 3085 "engines/director/lingo/lingo-gr.cpp"
+#line 3087 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 90: /* ID: tOPEN  */
-#line 365 "engines/director/lingo/lingo-gr.y"
+  case 91: /* ID: tOPEN  */
+#line 366 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("open"); }
-#line 3091 "engines/director/lingo/lingo-gr.cpp"
+#line 3093 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 91: /* ID: tPLAY  */
-#line 366 "engines/director/lingo/lingo-gr.y"
+  case 92: /* ID: tPLAY  */
+#line 367 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("play"); }
-#line 3097 "engines/director/lingo/lingo-gr.cpp"
+#line 3099 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 92: /* ID: tPROPERTY  */
-#line 367 "engines/director/lingo/lingo-gr.y"
+  case 93: /* ID: tPROPERTY  */
+#line 368 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("property"); }
-#line 3103 "engines/director/lingo/lingo-gr.cpp"
+#line 3105 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 93: /* ID: tPUT  */
-#line 368 "engines/director/lingo/lingo-gr.y"
+  case 94: /* ID: tPUT  */
+#line 369 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("put"); }
-#line 3109 "engines/director/lingo/lingo-gr.cpp"
+#line 3111 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 94: /* ID: tSET  */
-#line 369 "engines/director/lingo/lingo-gr.y"
+  case 95: /* ID: tSET  */
+#line 370 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("set"); }
-#line 3115 "engines/director/lingo/lingo-gr.cpp"
+#line 3117 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 95: /* ID: tTELL  */
-#line 370 "engines/director/lingo/lingo-gr.y"
+  case 96: /* ID: tTELL  */
+#line 371 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("tell"); }
-#line 3121 "engines/director/lingo/lingo-gr.cpp"
+#line 3123 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 96: /* ID: tTHEN  */
-#line 371 "engines/director/lingo/lingo-gr.y"
+  case 97: /* ID: tTHEN  */
+#line 372 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("then"); }
-#line 3127 "engines/director/lingo/lingo-gr.cpp"
+#line 3129 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 97: /* idlist: %empty  */
-#line 374 "engines/director/lingo/lingo-gr.y"
+  case 98: /* idlist: %empty  */
+#line 375 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.idlist) = new IDList; }
-#line 3133 "engines/director/lingo/lingo-gr.cpp"
+#line 3135 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 100: /* nonemptyidlist: ID  */
-#line 379 "engines/director/lingo/lingo-gr.y"
+  case 101: /* nonemptyidlist: ID  */
+#line 380 "engines/director/lingo/lingo-gr.y"
                                                                 {
 		Common::Array<Common::String *> *list = new IDList;
 		list->push_back((yyvsp[0].s));
 		(yyval.idlist) = list; }
-#line 3142 "engines/director/lingo/lingo-gr.cpp"
+#line 3144 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 101: /* nonemptyidlist: nonemptyidlist ',' ID  */
-#line 383 "engines/director/lingo/lingo-gr.y"
+  case 102: /* nonemptyidlist: nonemptyidlist ',' ID  */
+#line 384 "engines/director/lingo/lingo-gr.y"
                                                         {
 		(yyvsp[-2].idlist)->push_back((yyvsp[0].s));
 		(yyval.idlist) = (yyvsp[-2].idlist); }
-#line 3150 "engines/director/lingo/lingo-gr.cpp"
+#line 3152 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 103: /* stmt: tENDIF '\n'  */
-#line 394 "engines/director/lingo/lingo-gr.y"
+  case 104: /* stmt: tENDIF '\n'  */
+#line 395 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = nullptr; }
-#line 3156 "engines/director/lingo/lingo-gr.cpp"
+#line 3158 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 113: /* proc: CMDID cmdargs '\n'  */
-#line 410 "engines/director/lingo/lingo-gr.y"
+  case 114: /* proc: CMDID cmdargs '\n'  */
+#line 411 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new CmdNode((yyvsp[-2].s), (yyvsp[-1].nodelist), g_lingo->_compiler->_linenumber - 1); }
-#line 3162 "engines/director/lingo/lingo-gr.cpp"
+#line 3164 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 114: /* proc: tPUT cmdargs '\n'  */
-#line 411 "engines/director/lingo/lingo-gr.y"
+  case 115: /* proc: tPUT cmdargs '\n'  */
+#line 412 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new CmdNode(new Common::String("put"), (yyvsp[-1].nodelist), g_lingo->_compiler->_linenumber - 1); }
-#line 3168 "engines/director/lingo/lingo-gr.cpp"
+#line 3170 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 115: /* proc: tGO cmdargs '\n'  */
-#line 412 "engines/director/lingo/lingo-gr.y"
+  case 116: /* proc: tGO cmdargs '\n'  */
+#line 413 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new CmdNode(new Common::String("go"), (yyvsp[-1].nodelist), g_lingo->_compiler->_linenumber - 1); }
-#line 3174 "engines/director/lingo/lingo-gr.cpp"
+#line 3176 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 116: /* proc: tGO frameargs '\n'  */
-#line 413 "engines/director/lingo/lingo-gr.y"
+  case 117: /* proc: tGO frameargs '\n'  */
+#line 414 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new CmdNode(new Common::String("go"), (yyvsp[-1].nodelist), g_lingo->_compiler->_linenumber - 1); }
-#line 3180 "engines/director/lingo/lingo-gr.cpp"
+#line 3182 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 117: /* proc: tPLAY cmdargs '\n'  */
-#line 414 "engines/director/lingo/lingo-gr.y"
+  case 118: /* proc: tPLAY cmdargs '\n'  */
+#line 415 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist), g_lingo->_compiler->_linenumber - 1); }
-#line 3186 "engines/director/lingo/lingo-gr.cpp"
+#line 3188 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 118: /* proc: tPLAY frameargs '\n'  */
-#line 415 "engines/director/lingo/lingo-gr.y"
+  case 119: /* proc: tPLAY frameargs '\n'  */
+#line 416 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist), g_lingo->_compiler->_linenumber - 1); }
-#line 3192 "engines/director/lingo/lingo-gr.cpp"
+#line 3194 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 119: /* proc: tOPEN cmdargs '\n'  */
-#line 416 "engines/director/lingo/lingo-gr.y"
+  case 120: /* proc: tOPEN cmdargs '\n'  */
+#line 417 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new CmdNode(new Common::String("open"), (yyvsp[-1].nodelist), g_lingo->_compiler->_linenumber - 1); }
-#line 3198 "engines/director/lingo/lingo-gr.cpp"
+#line 3200 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 120: /* proc: tOPEN expr tWITH expr '\n'  */
-#line 417 "engines/director/lingo/lingo-gr.y"
+  case 121: /* proc: tOPEN expr tWITH expr '\n'  */
+#line 418 "engines/director/lingo/lingo-gr.y"
                                                  {
 		NodeList *args = new NodeList;
 		args->push_back((yyvsp[-3].node));
 		args->push_back((yyvsp[-1].node));
 		(yyval.node) = new CmdNode(new Common::String("open"), args, g_lingo->_compiler->_linenumber - 1); }
-#line 3208 "engines/director/lingo/lingo-gr.cpp"
+#line 3210 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 121: /* proc: tNEXT tREPEAT '\n'  */
-#line 422 "engines/director/lingo/lingo-gr.y"
+  case 122: /* proc: tNEXT tREPEAT '\n'  */
+#line 423 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new NextRepeatNode(); }
-#line 3214 "engines/director/lingo/lingo-gr.cpp"
+#line 3216 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 122: /* proc: tEXIT tREPEAT '\n'  */
-#line 423 "engines/director/lingo/lingo-gr.y"
+  case 123: /* proc: tEXIT tREPEAT '\n'  */
+#line 424 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new ExitRepeatNode(); }
-#line 3220 "engines/director/lingo/lingo-gr.cpp"
+#line 3222 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 123: /* proc: tEXIT '\n'  */
-#line 424 "engines/director/lingo/lingo-gr.y"
+  case 124: /* proc: tEXIT '\n'  */
+#line 425 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new ExitNode(); }
-#line 3226 "engines/director/lingo/lingo-gr.cpp"
+#line 3228 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 124: /* proc: tDELETE chunk '\n'  */
-#line 425 "engines/director/lingo/lingo-gr.y"
+  case 125: /* proc: tDELETE chunk '\n'  */
+#line 426 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new DeleteNode((yyvsp[-1].node)); }
-#line 3232 "engines/director/lingo/lingo-gr.cpp"
+#line 3234 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 125: /* proc: tHILITE chunk '\n'  */
-#line 426 "engines/director/lingo/lingo-gr.y"
+  case 126: /* proc: tHILITE chunk '\n'  */
+#line 427 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new HiliteNode((yyvsp[-1].node)); }
-#line 3238 "engines/director/lingo/lingo-gr.cpp"
+#line 3240 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 126: /* proc: tASSERTERROR stmtoneliner  */
-#line 427 "engines/director/lingo/lingo-gr.y"
+  case 127: /* proc: tASSERTERROR stmtoneliner  */
+#line 428 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new AssertErrorNode((yyvsp[0].node)); }
-#line 3244 "engines/director/lingo/lingo-gr.cpp"
+#line 3246 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 127: /* cmdargs: %empty  */
-#line 430 "engines/director/lingo/lingo-gr.y"
+  case 128: /* cmdargs: %empty  */
+#line 431 "engines/director/lingo/lingo-gr.y"
                                                                                         {
 		// This matches `cmd`
 		(yyval.nodelist) = new NodeList; }
-#line 3252 "engines/director/lingo/lingo-gr.cpp"
+#line 3254 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 128: /* cmdargs: expr trailingcomma  */
-#line 433 "engines/director/lingo/lingo-gr.y"
+  case 129: /* cmdargs: expr trailingcomma  */
+#line 434 "engines/director/lingo/lingo-gr.y"
                                                                                         {
 		// This matches `cmd arg` and `cmd(arg)`
 		NodeList *args = new NodeList;
 		args->push_back((yyvsp[-1].node));
 		(yyval.nodelist) = args; }
-#line 3262 "engines/director/lingo/lingo-gr.cpp"
+#line 3264 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 129: /* cmdargs: expr ',' nonemptyexprlist trailingcomma  */
-#line 438 "engines/director/lingo/lingo-gr.y"
+  case 130: /* cmdargs: expr ',' nonemptyexprlist trailingcomma  */
+#line 439 "engines/director/lingo/lingo-gr.y"
                                                                 {
 		// This matches `cmd args, ...)
 		(yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-3].node));
 		(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3271 "engines/director/lingo/lingo-gr.cpp"
+#line 3273 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 130: /* cmdargs: expr expr_nounarymath trailingcomma  */
-#line 442 "engines/director/lingo/lingo-gr.y"
+  case 131: /* cmdargs: expr expr_nounarymath trailingcomma  */
+#line 443 "engines/director/lingo/lingo-gr.y"
                                                                         {
 		// This matches `cmd arg arg`
 		NodeList *args = new NodeList;
 		args->push_back((yyvsp[-2].node));
 		args->push_back((yyvsp[-1].node));
 		(yyval.nodelist) = args; }
-#line 3282 "engines/director/lingo/lingo-gr.cpp"
+#line 3284 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 131: /* cmdargs: expr expr_nounarymath ',' nonemptyexprlist trailingcomma  */
-#line 448 "engines/director/lingo/lingo-gr.y"
+  case 132: /* cmdargs: expr expr_nounarymath ',' nonemptyexprlist trailingcomma  */
+#line 449 "engines/director/lingo/lingo-gr.y"
                                                                                 {
 		// This matches `cmd arg arg, ...`
 		(yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-3].node));
 		(yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-4].node));
 		(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3292 "engines/director/lingo/lingo-gr.cpp"
+#line 3294 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 132: /* cmdargs: '(' ')'  */
-#line 453 "engines/director/lingo/lingo-gr.y"
+  case 133: /* cmdargs: '(' ')'  */
+#line 454 "engines/director/lingo/lingo-gr.y"
                                                                         {
 		// This matches `cmd()`
 		(yyval.nodelist) = new NodeList; }
-#line 3300 "engines/director/lingo/lingo-gr.cpp"
+#line 3302 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 133: /* cmdargs: '(' expr ',' ')'  */
-#line 456 "engines/director/lingo/lingo-gr.y"
+  case 134: /* cmdargs: '(' expr ',' ')'  */
+#line 457 "engines/director/lingo/lingo-gr.y"
                            {
 		// This matches `cmd(args,)`
 		NodeList *args = new NodeList;
 		args->push_back((yyvsp[-2].node));
 		(yyval.nodelist) = args; }
-#line 3310 "engines/director/lingo/lingo-gr.cpp"
+#line 3312 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 134: /* cmdargs: '(' expr ',' nonemptyexprlist trailingcomma ')'  */
-#line 461 "engines/director/lingo/lingo-gr.y"
+  case 135: /* cmdargs: '(' expr ',' nonemptyexprlist trailingcomma ')'  */
+#line 462 "engines/director/lingo/lingo-gr.y"
                                                                 {
 		// This matches `cmd(args, ...)`
 		(yyvsp[-2].nodelist)->insert_at(0, (yyvsp[-4].node));
 		(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 3319 "engines/director/lingo/lingo-gr.cpp"
+#line 3321 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 137: /* frameargs: tFRAME expr  */
-#line 473 "engines/director/lingo/lingo-gr.y"
+  case 138: /* frameargs: tFRAME expr  */
+#line 474 "engines/director/lingo/lingo-gr.y"
                                                                         {
 		// This matches `play frame arg`
 		NodeList *args = new NodeList;
 		args->push_back(new FrameNode((yyvsp[0].node)));
 		(yyval.nodelist) = args; }
-#line 3329 "engines/director/lingo/lingo-gr.cpp"
+#line 3331 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 138: /* frameargs: tMOVIE expr  */
-#line 478 "engines/director/lingo/lingo-gr.y"
+  case 139: /* frameargs: tMOVIE expr  */
+#line 479 "engines/director/lingo/lingo-gr.y"
                                                                                 {
 		// This matches `play movie arg`
 		NodeList *args = new NodeList;
 		args->push_back(new IntNode(1));
 		args->push_back(new MovieNode((yyvsp[0].node)));
 		(yyval.nodelist) = args; }
-#line 3340 "engines/director/lingo/lingo-gr.cpp"
+#line 3342 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 139: /* frameargs: tFRAME expr tOF tMOVIE expr  */
-#line 484 "engines/director/lingo/lingo-gr.y"
+  case 140: /* frameargs: tFRAME expr tOF tMOVIE expr  */
+#line 485 "engines/director/lingo/lingo-gr.y"
                                                                 {
 		// This matches `play frame arg of movie arg`
 		NodeList *args = new NodeList;
 		args->push_back(new FrameNode((yyvsp[-3].node)));
 		args->push_back(new MovieNode((yyvsp[0].node)));
 		(yyval.nodelist) = args; }
-#line 3351 "engines/director/lingo/lingo-gr.cpp"
+#line 3353 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 140: /* frameargs: expr tOF tMOVIE expr  */
-#line 490 "engines/director/lingo/lingo-gr.y"
+  case 141: /* frameargs: expr tOF tMOVIE expr  */
+#line 491 "engines/director/lingo/lingo-gr.y"
                                                                 {
 		// This matches `play arg of movie arg` (weird but valid)
 		NodeList *args = new NodeList;
 		args->push_back((yyvsp[-3].node));
 		args->push_back(new MovieNode((yyvsp[0].node)));
 		(yyval.nodelist) = args; }
-#line 3362 "engines/director/lingo/lingo-gr.cpp"
+#line 3364 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 141: /* frameargs: tFRAME expr expr_nounarymath  */
-#line 496 "engines/director/lingo/lingo-gr.y"
+  case 142: /* frameargs: tFRAME expr expr_nounarymath  */
+#line 497 "engines/director/lingo/lingo-gr.y"
                                                         {
 		// This matches `play frame arg arg` (also weird but valid)
 		NodeList *args = new NodeList;
 		args->push_back(new FrameNode((yyvsp[-1].node)));
 		args->push_back((yyvsp[0].node));
 		(yyval.nodelist) = args; }
-#line 3373 "engines/director/lingo/lingo-gr.cpp"
+#line 3375 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 142: /* asgn: tPUT expr tINTO varorchunk '\n'  */
-#line 504 "engines/director/lingo/lingo-gr.y"
+  case 143: /* asgn: tPUT expr tINTO varorchunk '\n'  */
+#line 505 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new PutIntoNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3379 "engines/director/lingo/lingo-gr.cpp"
+#line 3381 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 143: /* asgn: tPUT expr tAFTER varorchunk '\n'  */
-#line 505 "engines/director/lingo/lingo-gr.y"
+  case 144: /* asgn: tPUT expr tAFTER varorchunk '\n'  */
+#line 506 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = new PutAfterNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3385 "engines/director/lingo/lingo-gr.cpp"
+#line 3387 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 144: /* asgn: tPUT expr tBEFORE varorchunk '\n'  */
-#line 506 "engines/director/lingo/lingo-gr.y"
+  case 145: /* asgn: tPUT expr tBEFORE varorchunk '\n'  */
+#line 507 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = new PutBeforeNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3391 "engines/director/lingo/lingo-gr.cpp"
+#line 3393 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 145: /* asgn: tSET varorthe to expr '\n'  */
-#line 507 "engines/director/lingo/lingo-gr.y"
+  case 146: /* asgn: tSET varorthe to expr '\n'  */
+#line 508 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = new SetNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3397 "engines/director/lingo/lingo-gr.cpp"
+#line 3399 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 148: /* definevars: tGLOBAL idlist '\n'  */
-#line 512 "engines/director/lingo/lingo-gr.y"
+  case 149: /* definevars: tGLOBAL idlist '\n'  */
+#line 513 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = new GlobalNode((yyvsp[-1].idlist)); }
-#line 3403 "engines/director/lingo/lingo-gr.cpp"
+#line 3405 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 149: /* definevars: tPROPERTY idlist '\n'  */
-#line 513 "engines/director/lingo/lingo-gr.y"
+  case 150: /* definevars: tPROPERTY idlist '\n'  */
+#line 514 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new PropertyNode((yyvsp[-1].idlist)); }
-#line 3409 "engines/director/lingo/lingo-gr.cpp"
+#line 3411 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 150: /* definevars: tINSTANCE idlist '\n'  */
-#line 514 "engines/director/lingo/lingo-gr.y"
+  case 151: /* definevars: tINSTANCE idlist '\n'  */
+#line 515 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new InstanceNode((yyvsp[-1].idlist)); }
-#line 3415 "engines/director/lingo/lingo-gr.cpp"
+#line 3417 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 151: /* ifstmt: tIF expr tTHEN stmt  */
-#line 517 "engines/director/lingo/lingo-gr.y"
+  case 152: /* ifstmt: tIF expr tTHEN stmt  */
+#line 518 "engines/director/lingo/lingo-gr.y"
                             {
 		NodeList *stmtlist = new NodeList;
 		stmtlist->push_back((yyvsp[0].node));
 		(yyval.node) = new IfStmtNode((yyvsp[-2].node), stmtlist); }
-#line 3424 "engines/director/lingo/lingo-gr.cpp"
+#line 3426 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 152: /* ifstmt: tIF expr tTHEN '\n' stmtlist_insideif endif  */
-#line 521 "engines/director/lingo/lingo-gr.y"
+  case 153: /* ifstmt: tIF expr tTHEN '\n' stmtlist_insideif endif  */
+#line 522 "engines/director/lingo/lingo-gr.y"
                                                       {
 		(yyval.node) = new IfStmtNode((yyvsp[-4].node), (yyvsp[-1].nodelist)); }
-#line 3431 "engines/director/lingo/lingo-gr.cpp"
+#line 3433 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 153: /* ifelsestmt: tIF expr tTHEN stmt tELSE stmt  */
-#line 525 "engines/director/lingo/lingo-gr.y"
+  case 154: /* ifelsestmt: tIF expr tTHEN stmt tELSE stmt  */
+#line 526 "engines/director/lingo/lingo-gr.y"
                                                          {
 		NodeList *stmtlist1 = new NodeList;
 		stmtlist1->push_back((yyvsp[-2].node));
 		NodeList *stmtlist2 = new NodeList;
 		stmtlist2->push_back((yyvsp[0].node));
 		(yyval.node) = new IfElseStmtNode((yyvsp[-4].node), stmtlist1, stmtlist2); }
-#line 3442 "engines/director/lingo/lingo-gr.cpp"
+#line 3444 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 154: /* ifelsestmt: tIF expr tTHEN stmt tELSE '\n' stmtlist_insideif endif  */
-#line 531 "engines/director/lingo/lingo-gr.y"
+  case 155: /* ifelsestmt: tIF expr tTHEN stmt tELSE '\n' stmtlist_insideif endif  */
+#line 532 "engines/director/lingo/lingo-gr.y"
                                                                                    {
 		NodeList *stmtlist1 = new NodeList;
 		stmtlist1->push_back((yyvsp[-4].node));
 		(yyval.node) = new IfElseStmtNode((yyvsp[-6].node), stmtlist1, (yyvsp[-1].nodelist)); }
-#line 3451 "engines/director/lingo/lingo-gr.cpp"
+#line 3453 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 155: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist_insideif tELSE stmt  */
-#line 535 "engines/director/lingo/lingo-gr.y"
+  case 156: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist_insideif tELSE stmt  */
+#line 536 "engines/director/lingo/lingo-gr.y"
                                                                              {
 		NodeList *stmtlist2 = new NodeList;
 		stmtlist2->push_back((yyvsp[0].node));
 		(yyval.node) = new IfElseStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist), stmtlist2); }
-#line 3460 "engines/director/lingo/lingo-gr.cpp"
+#line 3462 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 156: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist_insideif tELSE '\n' stmtlist_insideif endif  */
-#line 539 "engines/director/lingo/lingo-gr.y"
+  case 157: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist_insideif tELSE '\n' stmtlist_insideif endif  */
+#line 540 "engines/director/lingo/lingo-gr.y"
                                                                                                          {
 		(yyval.node) = new IfElseStmtNode((yyvsp[-7].node), (yyvsp[-4].nodelist), (yyvsp[-1].nodelist)); }
-#line 3467 "engines/director/lingo/lingo-gr.cpp"
+#line 3469 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 157: /* endif: %empty  */
-#line 543 "engines/director/lingo/lingo-gr.y"
+  case 158: /* endif: %empty  */
+#line 544 "engines/director/lingo/lingo-gr.y"
                         { warning("LingoCompiler::parse: no end if"); }
-#line 3473 "engines/director/lingo/lingo-gr.cpp"
+#line 3475 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 159: /* loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n'  */
-#line 546 "engines/director/lingo/lingo-gr.y"
+  case 160: /* loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n'  */
+#line 547 "engines/director/lingo/lingo-gr.y"
                                                         {
 		(yyval.node) = new RepeatWhileNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3480 "engines/director/lingo/lingo-gr.cpp"
+#line 3482 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 160: /* loop: tREPEAT tWITH ID tEQ expr tTO expr '\n' stmtlist tENDREPEAT '\n'  */
-#line 548 "engines/director/lingo/lingo-gr.y"
+  case 161: /* loop: tREPEAT tWITH ID tEQ expr tTO expr '\n' stmtlist tENDREPEAT '\n'  */
+#line 549 "engines/director/lingo/lingo-gr.y"
                                                                                        {
 		(yyval.node) = new RepeatWithToNode((yyvsp[-8].s), (yyvsp[-6].node), false, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3487 "engines/director/lingo/lingo-gr.cpp"
+#line 3489 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 161: /* loop: tREPEAT tWITH ID tEQ expr tDOWN tTO expr '\n' stmtlist tENDREPEAT '\n'  */
-#line 550 "engines/director/lingo/lingo-gr.y"
+  case 162: /* loop: tREPEAT tWITH ID tEQ expr tDOWN tTO expr '\n' stmtlist tENDREPEAT '\n'  */
+#line 551 "engines/director/lingo/lingo-gr.y"
                                                                                              {
 		(yyval.node) = new RepeatWithToNode((yyvsp[-9].s), (yyvsp[-7].node), true, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3494 "engines/director/lingo/lingo-gr.cpp"
+#line 3496 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 162: /* loop: tREPEAT tWITH ID tIN expr '\n' stmtlist tENDREPEAT '\n'  */
-#line 552 "engines/director/lingo/lingo-gr.y"
+  case 163: /* loop: tREPEAT tWITH ID tIN expr '\n' stmtlist tENDREPEAT '\n'  */
+#line 553 "engines/director/lingo/lingo-gr.y"
                                                                   {
 		(yyval.node) = new RepeatWithInNode((yyvsp[-6].s), (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3501 "engines/director/lingo/lingo-gr.cpp"
+#line 3503 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 163: /* tell: tTELL expr tTO stmtoneliner  */
-#line 556 "engines/director/lingo/lingo-gr.y"
+  case 164: /* tell: tTELL expr tTO stmtoneliner  */
+#line 557 "engines/director/lingo/lingo-gr.y"
                                                                 {
 		NodeList *stmtlist = new NodeList;
 		stmtlist->push_back((yyvsp[0].node));
 		(yyval.node) = new TellNode((yyvsp[-2].node), stmtlist); }
-#line 3510 "engines/director/lingo/lingo-gr.cpp"
+#line 3512 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 164: /* tell: tTELL expr '\n' stmtlist tENDTELL '\n'  */
-#line 560 "engines/director/lingo/lingo-gr.y"
+  case 165: /* tell: tTELL expr '\n' stmtlist tENDTELL '\n'  */
+#line 561 "engines/director/lingo/lingo-gr.y"
                                                         {
 		(yyval.node) = new TellNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3517 "engines/director/lingo/lingo-gr.cpp"
+#line 3519 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 165: /* when: tWHEN '\n'  */
-#line 564 "engines/director/lingo/lingo-gr.y"
+  case 166: /* when: tWHEN '\n'  */
+#line 565 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new WhenNode((yyvsp[-1].w).eventName, (yyvsp[-1].w).stmt); }
-#line 3523 "engines/director/lingo/lingo-gr.cpp"
+#line 3525 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 166: /* stmtlist: %empty  */
-#line 566 "engines/director/lingo/lingo-gr.y"
+  case 167: /* stmtlist: %empty  */
+#line 567 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.nodelist) = new NodeList; }
-#line 3529 "engines/director/lingo/lingo-gr.cpp"
+#line 3531 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 168: /* nonemptystmtlist: stmtlistline  */
-#line 571 "engines/director/lingo/lingo-gr.y"
+  case 169: /* nonemptystmtlist: stmtlistline  */
+#line 572 "engines/director/lingo/lingo-gr.y"
                                                                 {
 		NodeList *list = new NodeList;
 		if ((yyvsp[0].node)) {
 			list->push_back((yyvsp[0].node));
 		}
 		(yyval.nodelist) = list; }
-#line 3540 "engines/director/lingo/lingo-gr.cpp"
+#line 3542 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 169: /* nonemptystmtlist: nonemptystmtlist stmtlistline  */
-#line 577 "engines/director/lingo/lingo-gr.y"
+  case 170: /* nonemptystmtlist: nonemptystmtlist stmtlistline  */
+#line 578 "engines/director/lingo/lingo-gr.y"
                                                         {
 		if ((yyvsp[0].node)) {
 			(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
 		}
 		(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3550 "engines/director/lingo/lingo-gr.cpp"
+#line 3552 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 170: /* stmtlistline: '\n'  */
-#line 584 "engines/director/lingo/lingo-gr.y"
+  case 171: /* stmtlistline: '\n'  */
+#line 585 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = nullptr; }
-#line 3556 "engines/director/lingo/lingo-gr.cpp"
+#line 3558 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 172: /* stmtlist_insideif: %empty  */
-#line 588 "engines/director/lingo/lingo-gr.y"
+  case 173: /* stmtlist_insideif: %empty  */
+#line 589 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.nodelist) = new NodeList; }
-#line 3562 "engines/director/lingo/lingo-gr.cpp"
+#line 3564 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 174: /* nonemptystmtlist_insideif: stmtlistline_insideif  */
-#line 593 "engines/director/lingo/lingo-gr.y"
+  case 175: /* nonemptystmtlist_insideif: stmtlistline_insideif  */
+#line 594 "engines/director/lingo/lingo-gr.y"
                                                 {
 		NodeList *list = new NodeList;
 		if ((yyvsp[0].node)) {
 			list->push_back((yyvsp[0].node));
 		}
 		(yyval.nodelist) = list; }
-#line 3573 "engines/director/lingo/lingo-gr.cpp"
+#line 3575 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 175: /* nonemptystmtlist_insideif: nonemptystmtlist_insideif stmtlistline_insideif  */
-#line 599 "engines/director/lingo/lingo-gr.y"
+  case 176: /* nonemptystmtlist_insideif: nonemptystmtlist_insideif stmtlistline_insideif  */
+#line 600 "engines/director/lingo/lingo-gr.y"
                                                                         {
 		if ((yyvsp[0].node)) {
 			(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
 		}
 		(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3583 "engines/director/lingo/lingo-gr.cpp"
+#line 3585 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 176: /* stmtlistline_insideif: '\n'  */
-#line 606 "engines/director/lingo/lingo-gr.y"
+  case 177: /* stmtlistline_insideif: '\n'  */
+#line 607 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = nullptr; }
-#line 3589 "engines/director/lingo/lingo-gr.cpp"
+#line 3591 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 178: /* simpleexpr_nounarymath: tINT  */
-#line 613 "engines/director/lingo/lingo-gr.y"
+  case 179: /* simpleexpr_nounarymath: tINT  */
+#line 614 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new IntNode((yyvsp[0].i)); }
-#line 3595 "engines/director/lingo/lingo-gr.cpp"
+#line 3597 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 179: /* simpleexpr_nounarymath: tFLOAT  */
-#line 614 "engines/director/lingo/lingo-gr.y"
+  case 180: /* simpleexpr_nounarymath: tFLOAT  */
+#line 615 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new FloatNode((yyvsp[0].f)); }
-#line 3601 "engines/director/lingo/lingo-gr.cpp"
+#line 3603 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 180: /* simpleexpr_nounarymath: tSYMBOL  */
-#line 615 "engines/director/lingo/lingo-gr.y"
+  case 181: /* simpleexpr_nounarymath: tSYMBOL  */
+#line 616 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new SymbolNode((yyvsp[0].s)); }
-#line 3607 "engines/director/lingo/lingo-gr.cpp"
+#line 3609 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 181: /* simpleexpr_nounarymath: tSTRING  */
-#line 616 "engines/director/lingo/lingo-gr.y"
+  case 182: /* simpleexpr_nounarymath: tSTRING  */
+#line 617 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new StringNode((yyvsp[0].s)); }
-#line 3613 "engines/director/lingo/lingo-gr.cpp"
+#line 3615 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 182: /* simpleexpr_nounarymath: tNOT simpleexpr  */
-#line 617 "engines/director/lingo/lingo-gr.y"
+  case 183: /* simpleexpr_nounarymath: tNOT simpleexpr  */
+#line 618 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = new UnaryOpNode(LC::c_not, (yyvsp[0].node)); }
-#line 3619 "engines/director/lingo/lingo-gr.cpp"
+#line 3621 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 183: /* simpleexpr_nounarymath: ID '(' ')'  */
-#line 618 "engines/director/lingo/lingo-gr.y"
+  case 184: /* simpleexpr_nounarymath: ID '(' ')'  */
+#line 619 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new FuncNode((yyvsp[-2].s), new NodeList); }
-#line 3625 "engines/director/lingo/lingo-gr.cpp"
+#line 3627 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 184: /* simpleexpr_nounarymath: ID '(' nonemptyexprlist trailingcomma ')'  */
-#line 619 "engines/director/lingo/lingo-gr.y"
+  case 185: /* simpleexpr_nounarymath: ID '(' nonemptyexprlist trailingcomma ')'  */
+#line 620 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new FuncNode((yyvsp[-4].s), (yyvsp[-2].nodelist)); }
-#line 3631 "engines/director/lingo/lingo-gr.cpp"
+#line 3633 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 185: /* simpleexpr_nounarymath: '(' expr ')'  */
-#line 620 "engines/director/lingo/lingo-gr.y"
+  case 186: /* simpleexpr_nounarymath: '(' expr ')'  */
+#line 621 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = (yyvsp[-1].node); }
-#line 3637 "engines/director/lingo/lingo-gr.cpp"
+#line 3639 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 191: /* var: ID  */
-#line 628 "engines/director/lingo/lingo-gr.y"
+  case 192: /* var: ID  */
+#line 629 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new VarNode((yyvsp[0].s)); }
-#line 3643 "engines/director/lingo/lingo-gr.cpp"
+#line 3645 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 196: /* chunk: tFIELD refargs  */
-#line 638 "engines/director/lingo/lingo-gr.y"
+  case 197: /* chunk: tFIELD refargs  */
+#line 639 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.node) = new FuncNode(new Common::String("field"), (yyvsp[0].nodelist)); }
-#line 3649 "engines/director/lingo/lingo-gr.cpp"
+#line 3651 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 197: /* chunk: tCAST refargs  */
-#line 639 "engines/director/lingo/lingo-gr.y"
+  case 198: /* chunk: tCAST refargs  */
+#line 640 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new FuncNode(new Common::String("cast"), (yyvsp[0].nodelist)); }
-#line 3655 "engines/director/lingo/lingo-gr.cpp"
+#line 3657 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 198: /* chunk: tCHAR expr tOF simpleexpr  */
-#line 640 "engines/director/lingo/lingo-gr.y"
+  case 199: /* chunk: tCHAR expr tOF simpleexpr  */
+#line 641 "engines/director/lingo/lingo-gr.y"
                                                 {
 		(yyval.node) = new ChunkExprNode(kChunkChar, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3662 "engines/director/lingo/lingo-gr.cpp"
+#line 3664 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 199: /* chunk: tCHAR expr tTO expr tOF simpleexpr  */
-#line 642 "engines/director/lingo/lingo-gr.y"
+  case 200: /* chunk: tCHAR expr tTO expr tOF simpleexpr  */
+#line 643 "engines/director/lingo/lingo-gr.y"
                                                                 {
 		(yyval.node) = new ChunkExprNode(kChunkChar, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3669 "engines/director/lingo/lingo-gr.cpp"
+#line 3671 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 200: /* chunk: tWORD expr tOF simpleexpr  */
-#line 644 "engines/director/lingo/lingo-gr.y"
+  case 201: /* chunk: tWORD expr tOF simpleexpr  */
+#line 645 "engines/director/lingo/lingo-gr.y"
                                                 {
 		(yyval.node) = new ChunkExprNode(kChunkWord, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3676 "engines/director/lingo/lingo-gr.cpp"
+#line 3678 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 201: /* chunk: tWORD expr tTO expr tOF simpleexpr  */
-#line 646 "engines/director/lingo/lingo-gr.y"
+  case 202: /* chunk: tWORD expr tTO expr tOF simpleexpr  */
+#line 647 "engines/director/lingo/lingo-gr.y"
                                                                 {
 		(yyval.node) = new ChunkExprNode(kChunkWord, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3683 "engines/director/lingo/lingo-gr.cpp"
+#line 3685 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 202: /* chunk: tITEM expr tOF simpleexpr  */
-#line 648 "engines/director/lingo/lingo-gr.y"
+  case 203: /* chunk: tITEM expr tOF simpleexpr  */
+#line 649 "engines/director/lingo/lingo-gr.y"
                                                 {
 		(yyval.node) = new ChunkExprNode(kChunkItem, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3690 "engines/director/lingo/lingo-gr.cpp"
+#line 3692 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 203: /* chunk: tITEM expr tTO expr tOF simpleexpr  */
-#line 650 "engines/director/lingo/lingo-gr.y"
+  case 204: /* chunk: tITEM expr tTO expr tOF simpleexpr  */
+#line 651 "engines/director/lingo/lingo-gr.y"
                                                                 {
 		(yyval.node) = new ChunkExprNode(kChunkItem, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3697 "engines/director/lingo/lingo-gr.cpp"
+#line 3699 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 204: /* chunk: tLINE expr tOF simpleexpr  */
-#line 652 "engines/director/lingo/lingo-gr.y"
+  case 205: /* chunk: tLINE expr tOF simpleexpr  */
+#line 653 "engines/director/lingo/lingo-gr.y"
                                                 {
 		(yyval.node) = new ChunkExprNode(kChunkLine, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3704 "engines/director/lingo/lingo-gr.cpp"
+#line 3706 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 205: /* chunk: tLINE expr tTO expr tOF simpleexpr  */
-#line 654 "engines/director/lingo/lingo-gr.y"
+  case 206: /* chunk: tLINE expr tTO expr tOF simpleexpr  */
+#line 655 "engines/director/lingo/lingo-gr.y"
                                                                 {
 		(yyval.node) = new ChunkExprNode(kChunkLine, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3711 "engines/director/lingo/lingo-gr.cpp"
+#line 3713 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 206: /* chunk: tTHE tLAST chunktype inof simpleexpr  */
-#line 656 "engines/director/lingo/lingo-gr.y"
+  case 207: /* chunk: tTHE tLAST chunktype inof simpleexpr  */
+#line 657 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = new TheLastNode((yyvsp[-2].chunktype), (yyvsp[0].node)); }
-#line 3717 "engines/director/lingo/lingo-gr.cpp"
+#line 3719 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 207: /* chunktype: tCHAR  */
-#line 659 "engines/director/lingo/lingo-gr.y"
+  case 208: /* chunktype: tCHAR  */
+#line 660 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.chunktype) = kChunkChar; }
-#line 3723 "engines/director/lingo/lingo-gr.cpp"
+#line 3725 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 208: /* chunktype: tWORD  */
-#line 660 "engines/director/lingo/lingo-gr.y"
+  case 209: /* chunktype: tWORD  */
+#line 661 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.chunktype) = kChunkWord; }
-#line 3729 "engines/director/lingo/lingo-gr.cpp"
+#line 3731 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 209: /* chunktype: tITEM  */
-#line 661 "engines/director/lingo/lingo-gr.y"
+  case 210: /* chunktype: tITEM  */
+#line 662 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.chunktype) = kChunkItem; }
-#line 3735 "engines/director/lingo/lingo-gr.cpp"
+#line 3737 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 210: /* chunktype: tLINE  */
-#line 662 "engines/director/lingo/lingo-gr.y"
+  case 211: /* chunktype: tLINE  */
+#line 663 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.chunktype) = kChunkLine; }
-#line 3741 "engines/director/lingo/lingo-gr.cpp"
+#line 3743 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 211: /* object: tSCRIPT refargs  */
-#line 665 "engines/director/lingo/lingo-gr.y"
+  case 212: /* object: tSCRIPT refargs  */
+#line 666 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.node) = new FuncNode(new Common::String("script"), (yyvsp[0].nodelist)); }
-#line 3747 "engines/director/lingo/lingo-gr.cpp"
+#line 3749 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 212: /* object: tWINDOW refargs  */
-#line 666 "engines/director/lingo/lingo-gr.y"
+  case 213: /* object: tWINDOW refargs  */
+#line 667 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new FuncNode(new Common::String("window"), (yyvsp[0].nodelist)); }
-#line 3753 "engines/director/lingo/lingo-gr.cpp"
+#line 3755 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 213: /* refargs: simpleexpr  */
-#line 669 "engines/director/lingo/lingo-gr.y"
+  case 214: /* refargs: simpleexpr  */
+#line 670 "engines/director/lingo/lingo-gr.y"
                                                                                 {
 		// This matches `ref arg` and `ref(arg)`
 		NodeList *args = new NodeList;
 		args->push_back((yyvsp[0].node));
 		(yyval.nodelist) = args; }
-#line 3763 "engines/director/lingo/lingo-gr.cpp"
+#line 3765 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 214: /* refargs: '(' ')'  */
-#line 674 "engines/director/lingo/lingo-gr.y"
+  case 215: /* refargs: '(' ')'  */
+#line 675 "engines/director/lingo/lingo-gr.y"
                                                                                         {
 		// This matches `ref()`
 		(yyval.nodelist) = new NodeList; }
-#line 3771 "engines/director/lingo/lingo-gr.cpp"
+#line 3773 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 215: /* refargs: '(' expr ',' ')'  */
-#line 677 "engines/director/lingo/lingo-gr.y"
+  case 216: /* refargs: '(' expr ',' ')'  */
+#line 678 "engines/director/lingo/lingo-gr.y"
                            {
 		// This matches `ref(args,)`
 		NodeList *args = new NodeList;
 		args->push_back((yyvsp[-2].node));
 		(yyval.nodelist) = args; }
-#line 3781 "engines/director/lingo/lingo-gr.cpp"
+#line 3783 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 216: /* refargs: '(' expr ',' nonemptyexprlist trailingcomma ')'  */
-#line 682 "engines/director/lingo/lingo-gr.y"
+  case 217: /* refargs: '(' expr ',' nonemptyexprlist trailingcomma ')'  */
+#line 683 "engines/director/lingo/lingo-gr.y"
                                                                 {
 		// This matches `ref(args, ...)`
 		(yyvsp[-2].nodelist)->insert_at(0, (yyvsp[-4].node));
 		(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 3790 "engines/director/lingo/lingo-gr.cpp"
+#line 3792 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 217: /* the: tTHE ID  */
-#line 688 "engines/director/lingo/lingo-gr.y"
+  case 218: /* the: tTHE ID  */
+#line 689 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new TheNode((yyvsp[0].s)); }
-#line 3796 "engines/director/lingo/lingo-gr.cpp"
+#line 3798 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 218: /* the: tTHE ID tOF theobj  */
-#line 689 "engines/director/lingo/lingo-gr.y"
+  case 219: /* the: tTHE ID tOF theobj  */
+#line 690 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new TheOfNode((yyvsp[-2].s), (yyvsp[0].node)); }
-#line 3802 "engines/director/lingo/lingo-gr.cpp"
+#line 3804 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 219: /* the: tTHE tNUMBER tOF theobj  */
-#line 690 "engines/director/lingo/lingo-gr.y"
+  case 220: /* the: tTHE tNUMBER tOF theobj  */
+#line 691 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new TheOfNode(new Common::String("number"), (yyvsp[0].node)); }
-#line 3808 "engines/director/lingo/lingo-gr.cpp"
+#line 3810 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 224: /* theobj: tMENUITEM simpleexpr tOF tMENU simpleexpr  */
-#line 697 "engines/director/lingo/lingo-gr.y"
+  case 225: /* theobj: tMENUITEM simpleexpr tOF tMENU simpleexpr  */
+#line 698 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new MenuItemNode((yyvsp[-3].node), (yyvsp[0].node)); }
-#line 3814 "engines/director/lingo/lingo-gr.cpp"
+#line 3816 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 225: /* theobj: tSOUND simpleexpr  */
-#line 698 "engines/director/lingo/lingo-gr.y"
+  case 226: /* theobj: tSOUND simpleexpr  */
+#line 699 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new SoundNode((yyvsp[0].node)); }
-#line 3820 "engines/director/lingo/lingo-gr.cpp"
+#line 3822 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 226: /* theobj: tSPRITE simpleexpr  */
-#line 699 "engines/director/lingo/lingo-gr.y"
+  case 227: /* theobj: tSPRITE simpleexpr  */
+#line 700 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new SpriteNode((yyvsp[0].node)); }
-#line 3826 "engines/director/lingo/lingo-gr.cpp"
+#line 3828 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 227: /* menu: tMENU simpleexpr  */
-#line 702 "engines/director/lingo/lingo-gr.y"
+  case 228: /* menu: tMENU simpleexpr  */
+#line 703 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new MenuNode((yyvsp[0].node)); }
-#line 3832 "engines/director/lingo/lingo-gr.cpp"
+#line 3834 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 228: /* thedatetime: tTHE tABBREVIATED tDATE  */
-#line 704 "engines/director/lingo/lingo-gr.y"
+  case 229: /* thedatetime: tTHE tABBREVIATED tDATE  */
+#line 705 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheDate); }
-#line 3838 "engines/director/lingo/lingo-gr.cpp"
+#line 3840 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 229: /* thedatetime: tTHE tABBREVIATED tTIME  */
-#line 705 "engines/director/lingo/lingo-gr.y"
+  case 230: /* thedatetime: tTHE tABBREVIATED tTIME  */
+#line 706 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheTime); }
-#line 3844 "engines/director/lingo/lingo-gr.cpp"
+#line 3846 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 230: /* thedatetime: tTHE tABBREV tDATE  */
-#line 706 "engines/director/lingo/lingo-gr.y"
+  case 231: /* thedatetime: tTHE tABBREV tDATE  */
+#line 707 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheDate); }
-#line 3850 "engines/director/lingo/lingo-gr.cpp"
+#line 3852 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 231: /* thedatetime: tTHE tABBREV tTIME  */
-#line 707 "engines/director/lingo/lingo-gr.y"
+  case 232: /* thedatetime: tTHE tABBREV tTIME  */
+#line 708 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheTime); }
-#line 3856 "engines/director/lingo/lingo-gr.cpp"
+#line 3858 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 232: /* thedatetime: tTHE tABBR tDATE  */
-#line 708 "engines/director/lingo/lingo-gr.y"
+  case 233: /* thedatetime: tTHE tABBR tDATE  */
+#line 709 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheDate); }
-#line 3862 "engines/director/lingo/lingo-gr.cpp"
+#line 3864 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 233: /* thedatetime: tTHE tABBR tTIME  */
-#line 709 "engines/director/lingo/lingo-gr.y"
+  case 234: /* thedatetime: tTHE tABBR tTIME  */
+#line 710 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheTime); }
-#line 3868 "engines/director/lingo/lingo-gr.cpp"
+#line 3870 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 234: /* thedatetime: tTHE tLONG tDATE  */
-#line 710 "engines/director/lingo/lingo-gr.y"
+  case 235: /* thedatetime: tTHE tLONG tDATE  */
+#line 711 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new TheDateTimeNode(kTheLong, kTheDate); }
-#line 3874 "engines/director/lingo/lingo-gr.cpp"
+#line 3876 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 235: /* thedatetime: tTHE tLONG tTIME  */
-#line 711 "engines/director/lingo/lingo-gr.y"
+  case 236: /* thedatetime: tTHE tLONG tTIME  */
+#line 712 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new TheDateTimeNode(kTheLong, kTheTime); }
-#line 3880 "engines/director/lingo/lingo-gr.cpp"
+#line 3882 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 236: /* thedatetime: tTHE tSHORT tDATE  */
-#line 712 "engines/director/lingo/lingo-gr.y"
+  case 237: /* thedatetime: tTHE tSHORT tDATE  */
+#line 713 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new TheDateTimeNode(kTheShort, kTheDate); }
-#line 3886 "engines/director/lingo/lingo-gr.cpp"
+#line 3888 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 237: /* thedatetime: tTHE tSHORT tTIME  */
-#line 713 "engines/director/lingo/lingo-gr.y"
+  case 238: /* thedatetime: tTHE tSHORT tTIME  */
+#line 714 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new TheDateTimeNode(kTheShort, kTheTime); }
-#line 3892 "engines/director/lingo/lingo-gr.cpp"
+#line 3894 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 238: /* thenumberof: tTHE tNUMBER tOF tCHARS inof simpleexpr  */
-#line 717 "engines/director/lingo/lingo-gr.y"
+  case 239: /* thenumberof: tTHE tNUMBER tOF tCHARS inof simpleexpr  */
+#line 718 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new TheNumberOfNode(kNumberOfChars, (yyvsp[0].node)); }
-#line 3898 "engines/director/lingo/lingo-gr.cpp"
+#line 3900 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 239: /* thenumberof: tTHE tNUMBER tOF tWORDS inof simpleexpr  */
-#line 718 "engines/director/lingo/lingo-gr.y"
+  case 240: /* thenumberof: tTHE tNUMBER tOF tWORDS inof simpleexpr  */
+#line 719 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new TheNumberOfNode(kNumberOfWords, (yyvsp[0].node)); }
-#line 3904 "engines/director/lingo/lingo-gr.cpp"
+#line 3906 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 240: /* thenumberof: tTHE tNUMBER tOF tITEMS inof simpleexpr  */
-#line 719 "engines/director/lingo/lingo-gr.y"
+  case 241: /* thenumberof: tTHE tNUMBER tOF tITEMS inof simpleexpr  */
+#line 720 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new TheNumberOfNode(kNumberOfItems, (yyvsp[0].node)); }
-#line 3910 "engines/director/lingo/lingo-gr.cpp"
+#line 3912 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 241: /* thenumberof: tTHE tNUMBER tOF tLINES inof simpleexpr  */
-#line 720 "engines/director/lingo/lingo-gr.y"
+  case 242: /* thenumberof: tTHE tNUMBER tOF tLINES inof simpleexpr  */
+#line 721 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new TheNumberOfNode(kNumberOfLines, (yyvsp[0].node)); }
-#line 3916 "engines/director/lingo/lingo-gr.cpp"
+#line 3918 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 242: /* thenumberof: tTHE tNUMBER tOF tMENUITEMS inof menu  */
-#line 721 "engines/director/lingo/lingo-gr.y"
+  case 243: /* thenumberof: tTHE tNUMBER tOF tMENUITEMS inof menu  */
+#line 722 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new TheNumberOfNode(kNumberOfMenuItems, (yyvsp[0].node)); }
-#line 3922 "engines/director/lingo/lingo-gr.cpp"
+#line 3924 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 245: /* writablethe: tTHE ID  */
-#line 726 "engines/director/lingo/lingo-gr.y"
+  case 246: /* writablethe: tTHE ID  */
+#line 727 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new TheNode((yyvsp[0].s)); }
-#line 3928 "engines/director/lingo/lingo-gr.cpp"
+#line 3930 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 246: /* writablethe: tTHE ID tOF writabletheobj  */
-#line 727 "engines/director/lingo/lingo-gr.y"
+  case 247: /* writablethe: tTHE ID tOF writabletheobj  */
+#line 728 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = new TheOfNode((yyvsp[-2].s), (yyvsp[0].node)); }
-#line 3934 "engines/director/lingo/lingo-gr.cpp"
+#line 3936 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 248: /* writabletheobj: tMENU expr_noeq  */
-#line 731 "engines/director/lingo/lingo-gr.y"
+  case 249: /* writabletheobj: tMENU expr_noeq  */
+#line 732 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new MenuNode((yyvsp[0].node)); }
-#line 3940 "engines/director/lingo/lingo-gr.cpp"
+#line 3942 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 249: /* writabletheobj: tMENUITEM expr_noeq tOF tMENU expr_noeq  */
-#line 732 "engines/director/lingo/lingo-gr.y"
+  case 250: /* writabletheobj: tMENUITEM expr_noeq tOF tMENU expr_noeq  */
+#line 733 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new MenuItemNode((yyvsp[-3].node), (yyvsp[0].node)); }
-#line 3946 "engines/director/lingo/lingo-gr.cpp"
+#line 3948 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 250: /* writabletheobj: tSOUND expr_noeq  */
-#line 733 "engines/director/lingo/lingo-gr.y"
+  case 251: /* writabletheobj: tSOUND expr_noeq  */
+#line 734 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new SoundNode((yyvsp[0].node)); }
-#line 3952 "engines/director/lingo/lingo-gr.cpp"
+#line 3954 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 251: /* writabletheobj: tSPRITE expr_noeq  */
-#line 734 "engines/director/lingo/lingo-gr.y"
+  case 252: /* writabletheobj: tSPRITE expr_noeq  */
+#line 735 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new SpriteNode((yyvsp[0].node)); }
-#line 3958 "engines/director/lingo/lingo-gr.cpp"
+#line 3960 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 252: /* list: '[' exprlist ']'  */
-#line 737 "engines/director/lingo/lingo-gr.y"
+  case 253: /* list: '[' exprlist ']'  */
+#line 738 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new ListNode((yyvsp[-1].nodelist)); }
-#line 3964 "engines/director/lingo/lingo-gr.cpp"
+#line 3966 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 253: /* list: '[' ':' ']'  */
-#line 738 "engines/director/lingo/lingo-gr.y"
+  case 254: /* list: '[' ':' ']'  */
+#line 739 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = new PropListNode(new NodeList); }
-#line 3970 "engines/director/lingo/lingo-gr.cpp"
+#line 3972 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 254: /* list: '[' proplist ']'  */
-#line 739 "engines/director/lingo/lingo-gr.y"
+  case 255: /* list: '[' proplist ']'  */
+#line 740 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = new PropListNode((yyvsp[-1].nodelist)); }
-#line 3976 "engines/director/lingo/lingo-gr.cpp"
+#line 3978 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 255: /* proplist: proppair  */
-#line 742 "engines/director/lingo/lingo-gr.y"
+  case 256: /* proplist: proppair  */
+#line 743 "engines/director/lingo/lingo-gr.y"
                                                         {
 		NodeList *list = new NodeList; 
 		list->push_back((yyvsp[0].node));
 		(yyval.nodelist) = list; }
-#line 3985 "engines/director/lingo/lingo-gr.cpp"
+#line 3987 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 256: /* proplist: proplist ',' proppair  */
-#line 746 "engines/director/lingo/lingo-gr.y"
+  case 257: /* proplist: proplist ',' proppair  */
+#line 747 "engines/director/lingo/lingo-gr.y"
                                                 {
 		(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
 		(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 3993 "engines/director/lingo/lingo-gr.cpp"
+#line 3995 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 257: /* proppair: tSYMBOL ':' expr  */
-#line 751 "engines/director/lingo/lingo-gr.y"
+  case 258: /* proppair: tSYMBOL ':' expr  */
+#line 752 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 3999 "engines/director/lingo/lingo-gr.cpp"
+#line 4001 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 258: /* proppair: ID ':' expr  */
-#line 752 "engines/director/lingo/lingo-gr.y"
+  case 259: /* proppair: ID ':' expr  */
+#line 753 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 4005 "engines/director/lingo/lingo-gr.cpp"
+#line 4007 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 259: /* proppair: tSTRING ':' expr  */
-#line 753 "engines/director/lingo/lingo-gr.y"
+  case 260: /* proppair: tSTRING ':' expr  */
+#line 754 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = new PropPairNode(new StringNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 4011 "engines/director/lingo/lingo-gr.cpp"
+#line 4013 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 260: /* unarymath: '+' simpleexpr  */
-#line 756 "engines/director/lingo/lingo-gr.y"
+  case 261: /* unarymath: '+' simpleexpr  */
+#line 757 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = (yyvsp[0].node); }
-#line 4017 "engines/director/lingo/lingo-gr.cpp"
+#line 4019 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 261: /* unarymath: '-' simpleexpr  */
-#line 757 "engines/director/lingo/lingo-gr.y"
+  case 262: /* unarymath: '-' simpleexpr  */
+#line 758 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new UnaryOpNode(LC::c_negate, (yyvsp[0].node)); }
-#line 4023 "engines/director/lingo/lingo-gr.cpp"
+#line 4025 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 266: /* expr: expr '+' expr  */
-#line 767 "engines/director/lingo/lingo-gr.y"
+  case 267: /* expr: expr '+' expr  */
+#line 768 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4029 "engines/director/lingo/lingo-gr.cpp"
+#line 4031 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 267: /* expr: expr '-' expr  */
-#line 768 "engines/director/lingo/lingo-gr.y"
+  case 268: /* expr: expr '-' expr  */
+#line 769 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4035 "engines/director/lingo/lingo-gr.cpp"
+#line 4037 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 268: /* expr: expr '*' expr  */
-#line 769 "engines/director/lingo/lingo-gr.y"
+  case 269: /* expr: expr '*' expr  */
+#line 770 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4041 "engines/director/lingo/lingo-gr.cpp"
+#line 4043 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 269: /* expr: expr '/' expr  */
-#line 770 "engines/director/lingo/lingo-gr.y"
+  case 270: /* expr: expr '/' expr  */
+#line 771 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4047 "engines/director/lingo/lingo-gr.cpp"
+#line 4049 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 270: /* expr: expr tMOD expr  */
-#line 771 "engines/director/lingo/lingo-gr.y"
+  case 271: /* expr: expr tMOD expr  */
+#line 772 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4053 "engines/director/lingo/lingo-gr.cpp"
+#line 4055 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 271: /* expr: expr '>' expr  */
-#line 772 "engines/director/lingo/lingo-gr.y"
+  case 272: /* expr: expr '>' expr  */
+#line 773 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4059 "engines/director/lingo/lingo-gr.cpp"
+#line 4061 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 272: /* expr: expr '<' expr  */
-#line 773 "engines/director/lingo/lingo-gr.y"
+  case 273: /* expr: expr '<' expr  */
+#line 774 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4065 "engines/director/lingo/lingo-gr.cpp"
+#line 4067 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 273: /* expr: expr tEQ expr  */
-#line 774 "engines/director/lingo/lingo-gr.y"
+  case 274: /* expr: expr tEQ expr  */
+#line 775 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4071 "engines/director/lingo/lingo-gr.cpp"
+#line 4073 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 274: /* expr: expr tNEQ expr  */
-#line 775 "engines/director/lingo/lingo-gr.y"
+  case 275: /* expr: expr tNEQ expr  */
+#line 776 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4077 "engines/director/lingo/lingo-gr.cpp"
+#line 4079 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 275: /* expr: expr tGE expr  */
-#line 776 "engines/director/lingo/lingo-gr.y"
+  case 276: /* expr: expr tGE expr  */
+#line 777 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4083 "engines/director/lingo/lingo-gr.cpp"
+#line 4085 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 276: /* expr: expr tLE expr  */
-#line 777 "engines/director/lingo/lingo-gr.y"
+  case 277: /* expr: expr tLE expr  */
+#line 778 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4089 "engines/director/lingo/lingo-gr.cpp"
+#line 4091 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 277: /* expr: expr tAND expr  */
-#line 778 "engines/director/lingo/lingo-gr.y"
+  case 278: /* expr: expr tAND expr  */
+#line 779 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4095 "engines/director/lingo/lingo-gr.cpp"
+#line 4097 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 278: /* expr: expr tOR expr  */
-#line 779 "engines/director/lingo/lingo-gr.y"
+  case 279: /* expr: expr tOR expr  */
+#line 780 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4101 "engines/director/lingo/lingo-gr.cpp"
+#line 4103 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 279: /* expr: expr '&' expr  */
-#line 780 "engines/director/lingo/lingo-gr.y"
+  case 280: /* expr: expr '&' expr  */
+#line 781 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4107 "engines/director/lingo/lingo-gr.cpp"
+#line 4109 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 280: /* expr: expr tCONCAT expr  */
-#line 781 "engines/director/lingo/lingo-gr.y"
+  case 281: /* expr: expr tCONCAT expr  */
+#line 782 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4113 "engines/director/lingo/lingo-gr.cpp"
+#line 4115 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 281: /* expr: expr tCONTAINS expr  */
-#line 782 "engines/director/lingo/lingo-gr.y"
+  case 282: /* expr: expr tCONTAINS expr  */
+#line 783 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4119 "engines/director/lingo/lingo-gr.cpp"
+#line 4121 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 282: /* expr: expr tSTARTS expr  */
-#line 783 "engines/director/lingo/lingo-gr.y"
+  case 283: /* expr: expr tSTARTS expr  */
+#line 784 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4125 "engines/director/lingo/lingo-gr.cpp"
+#line 4127 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 285: /* expr_nounarymath: expr_nounarymath '+' expr  */
-#line 792 "engines/director/lingo/lingo-gr.y"
+  case 286: /* expr_nounarymath: expr_nounarymath '+' expr  */
+#line 793 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4131 "engines/director/lingo/lingo-gr.cpp"
+#line 4133 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 286: /* expr_nounarymath: expr_nounarymath '-' expr  */
-#line 793 "engines/director/lingo/lingo-gr.y"
+  case 287: /* expr_nounarymath: expr_nounarymath '-' expr  */
+#line 794 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4137 "engines/director/lingo/lingo-gr.cpp"
+#line 4139 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 287: /* expr_nounarymath: expr_nounarymath '*' expr  */
-#line 794 "engines/director/lingo/lingo-gr.y"
+  case 288: /* expr_nounarymath: expr_nounarymath '*' expr  */
+#line 795 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4143 "engines/director/lingo/lingo-gr.cpp"
+#line 4145 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 288: /* expr_nounarymath: expr_nounarymath '/' expr  */
-#line 795 "engines/director/lingo/lingo-gr.y"
+  case 289: /* expr_nounarymath: expr_nounarymath '/' expr  */
+#line 796 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4149 "engines/director/lingo/lingo-gr.cpp"
+#line 4151 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 289: /* expr_nounarymath: expr_nounarymath tMOD expr  */
-#line 796 "engines/director/lingo/lingo-gr.y"
+  case 290: /* expr_nounarymath: expr_nounarymath tMOD expr  */
+#line 797 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4155 "engines/director/lingo/lingo-gr.cpp"
+#line 4157 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 290: /* expr_nounarymath: expr_nounarymath '>' expr  */
-#line 797 "engines/director/lingo/lingo-gr.y"
+  case 291: /* expr_nounarymath: expr_nounarymath '>' expr  */
+#line 798 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4161 "engines/director/lingo/lingo-gr.cpp"
+#line 4163 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 291: /* expr_nounarymath: expr_nounarymath '<' expr  */
-#line 798 "engines/director/lingo/lingo-gr.y"
+  case 292: /* expr_nounarymath: expr_nounarymath '<' expr  */
+#line 799 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4167 "engines/director/lingo/lingo-gr.cpp"
+#line 4169 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 292: /* expr_nounarymath: expr_nounarymath tEQ expr  */
-#line 799 "engines/director/lingo/lingo-gr.y"
+  case 293: /* expr_nounarymath: expr_nounarymath tEQ expr  */
+#line 800 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4173 "engines/director/lingo/lingo-gr.cpp"
+#line 4175 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 293: /* expr_nounarymath: expr_nounarymath tNEQ expr  */
-#line 800 "engines/director/lingo/lingo-gr.y"
+  case 294: /* expr_nounarymath: expr_nounarymath tNEQ expr  */
+#line 801 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4179 "engines/director/lingo/lingo-gr.cpp"
+#line 4181 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 294: /* expr_nounarymath: expr_nounarymath tGE expr  */
-#line 801 "engines/director/lingo/lingo-gr.y"
+  case 295: /* expr_nounarymath: expr_nounarymath tGE expr  */
+#line 802 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4185 "engines/director/lingo/lingo-gr.cpp"
+#line 4187 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 295: /* expr_nounarymath: expr_nounarymath tLE expr  */
-#line 802 "engines/director/lingo/lingo-gr.y"
+  case 296: /* expr_nounarymath: expr_nounarymath tLE expr  */
+#line 803 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4191 "engines/director/lingo/lingo-gr.cpp"
+#line 4193 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 296: /* expr_nounarymath: expr_nounarymath tAND expr  */
-#line 803 "engines/director/lingo/lingo-gr.y"
+  case 297: /* expr_nounarymath: expr_nounarymath tAND expr  */
+#line 804 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4197 "engines/director/lingo/lingo-gr.cpp"
+#line 4199 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 297: /* expr_nounarymath: expr_nounarymath tOR expr  */
-#line 804 "engines/director/lingo/lingo-gr.y"
+  case 298: /* expr_nounarymath: expr_nounarymath tOR expr  */
+#line 805 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4203 "engines/director/lingo/lingo-gr.cpp"
+#line 4205 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 298: /* expr_nounarymath: expr_nounarymath '&' expr  */
-#line 805 "engines/director/lingo/lingo-gr.y"
+  case 299: /* expr_nounarymath: expr_nounarymath '&' expr  */
+#line 806 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4209 "engines/director/lingo/lingo-gr.cpp"
+#line 4211 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 299: /* expr_nounarymath: expr_nounarymath tCONCAT expr  */
-#line 806 "engines/director/lingo/lingo-gr.y"
+  case 300: /* expr_nounarymath: expr_nounarymath tCONCAT expr  */
+#line 807 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4215 "engines/director/lingo/lingo-gr.cpp"
+#line 4217 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 300: /* expr_nounarymath: expr_nounarymath tCONTAINS expr  */
-#line 807 "engines/director/lingo/lingo-gr.y"
+  case 301: /* expr_nounarymath: expr_nounarymath tCONTAINS expr  */
+#line 808 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4221 "engines/director/lingo/lingo-gr.cpp"
+#line 4223 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 301: /* expr_nounarymath: expr_nounarymath tSTARTS expr  */
-#line 808 "engines/director/lingo/lingo-gr.y"
+  case 302: /* expr_nounarymath: expr_nounarymath tSTARTS expr  */
+#line 809 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4227 "engines/director/lingo/lingo-gr.cpp"
+#line 4229 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 304: /* expr_noeq: expr_noeq '+' expr_noeq  */
-#line 813 "engines/director/lingo/lingo-gr.y"
+  case 305: /* expr_noeq: expr_noeq '+' expr_noeq  */
+#line 814 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4233 "engines/director/lingo/lingo-gr.cpp"
+#line 4235 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 305: /* expr_noeq: expr_noeq '-' expr_noeq  */
-#line 814 "engines/director/lingo/lingo-gr.y"
+  case 306: /* expr_noeq: expr_noeq '-' expr_noeq  */
+#line 815 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4239 "engines/director/lingo/lingo-gr.cpp"
+#line 4241 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 306: /* expr_noeq: expr_noeq '*' expr_noeq  */
-#line 815 "engines/director/lingo/lingo-gr.y"
+  case 307: /* expr_noeq: expr_noeq '*' expr_noeq  */
+#line 816 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4245 "engines/director/lingo/lingo-gr.cpp"
+#line 4247 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 307: /* expr_noeq: expr_noeq '/' expr_noeq  */
-#line 816 "engines/director/lingo/lingo-gr.y"
+  case 308: /* expr_noeq: expr_noeq '/' expr_noeq  */
+#line 817 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4251 "engines/director/lingo/lingo-gr.cpp"
+#line 4253 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 308: /* expr_noeq: expr_noeq tMOD expr_noeq  */
-#line 817 "engines/director/lingo/lingo-gr.y"
+  case 309: /* expr_noeq: expr_noeq tMOD expr_noeq  */
+#line 818 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4257 "engines/director/lingo/lingo-gr.cpp"
+#line 4259 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 309: /* expr_noeq: expr_noeq '>' expr_noeq  */
-#line 818 "engines/director/lingo/lingo-gr.y"
+  case 310: /* expr_noeq: expr_noeq '>' expr_noeq  */
+#line 819 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4263 "engines/director/lingo/lingo-gr.cpp"
+#line 4265 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 310: /* expr_noeq: expr_noeq '<' expr_noeq  */
-#line 819 "engines/director/lingo/lingo-gr.y"
+  case 311: /* expr_noeq: expr_noeq '<' expr_noeq  */
+#line 820 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4269 "engines/director/lingo/lingo-gr.cpp"
+#line 4271 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 311: /* expr_noeq: expr_noeq tNEQ expr_noeq  */
-#line 820 "engines/director/lingo/lingo-gr.y"
+  case 312: /* expr_noeq: expr_noeq tNEQ expr_noeq  */
+#line 821 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4275 "engines/director/lingo/lingo-gr.cpp"
+#line 4277 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 312: /* expr_noeq: expr_noeq tGE expr_noeq  */
-#line 821 "engines/director/lingo/lingo-gr.y"
+  case 313: /* expr_noeq: expr_noeq tGE expr_noeq  */
+#line 822 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4281 "engines/director/lingo/lingo-gr.cpp"
+#line 4283 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 313: /* expr_noeq: expr_noeq tLE expr_noeq  */
-#line 822 "engines/director/lingo/lingo-gr.y"
+  case 314: /* expr_noeq: expr_noeq tLE expr_noeq  */
+#line 823 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4287 "engines/director/lingo/lingo-gr.cpp"
+#line 4289 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 314: /* expr_noeq: expr_noeq tAND expr_noeq  */
-#line 823 "engines/director/lingo/lingo-gr.y"
+  case 315: /* expr_noeq: expr_noeq tAND expr_noeq  */
+#line 824 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4293 "engines/director/lingo/lingo-gr.cpp"
+#line 4295 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 315: /* expr_noeq: expr_noeq tOR expr_noeq  */
-#line 824 "engines/director/lingo/lingo-gr.y"
+  case 316: /* expr_noeq: expr_noeq tOR expr_noeq  */
+#line 825 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4299 "engines/director/lingo/lingo-gr.cpp"
+#line 4301 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 316: /* expr_noeq: expr_noeq '&' expr_noeq  */
-#line 825 "engines/director/lingo/lingo-gr.y"
+  case 317: /* expr_noeq: expr_noeq '&' expr_noeq  */
+#line 826 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4305 "engines/director/lingo/lingo-gr.cpp"
+#line 4307 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 317: /* expr_noeq: expr_noeq tCONCAT expr_noeq  */
-#line 826 "engines/director/lingo/lingo-gr.y"
+  case 318: /* expr_noeq: expr_noeq tCONCAT expr_noeq  */
+#line 827 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4311 "engines/director/lingo/lingo-gr.cpp"
+#line 4313 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 318: /* expr_noeq: expr_noeq tCONTAINS expr_noeq  */
-#line 827 "engines/director/lingo/lingo-gr.y"
+  case 319: /* expr_noeq: expr_noeq tCONTAINS expr_noeq  */
+#line 828 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4317 "engines/director/lingo/lingo-gr.cpp"
+#line 4319 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 319: /* expr_noeq: expr_noeq tSTARTS expr_noeq  */
-#line 828 "engines/director/lingo/lingo-gr.y"
+  case 320: /* expr_noeq: expr_noeq tSTARTS expr_noeq  */
+#line 829 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4323 "engines/director/lingo/lingo-gr.cpp"
+#line 4325 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 320: /* sprite: tSPRITE expr tINTERSECTS simpleexpr  */
-#line 831 "engines/director/lingo/lingo-gr.y"
+  case 321: /* sprite: tSPRITE expr tINTERSECTS simpleexpr  */
+#line 832 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = new IntersectsNode((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4329 "engines/director/lingo/lingo-gr.cpp"
+#line 4331 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 321: /* sprite: tSPRITE expr tWITHIN simpleexpr  */
-#line 832 "engines/director/lingo/lingo-gr.y"
+  case 322: /* sprite: tSPRITE expr tWITHIN simpleexpr  */
+#line 833 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new WithinNode((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4335 "engines/director/lingo/lingo-gr.cpp"
+#line 4337 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 322: /* exprlist: %empty  */
-#line 835 "engines/director/lingo/lingo-gr.y"
+  case 323: /* exprlist: %empty  */
+#line 836 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.nodelist) = new NodeList; }
-#line 4341 "engines/director/lingo/lingo-gr.cpp"
+#line 4343 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 324: /* nonemptyexprlist: expr  */
-#line 839 "engines/director/lingo/lingo-gr.y"
+  case 325: /* nonemptyexprlist: expr  */
+#line 840 "engines/director/lingo/lingo-gr.y"
                                                         {
 		NodeList *list = new NodeList; 
 		list->push_back((yyvsp[0].node));
 		(yyval.nodelist) = list; }
-#line 4350 "engines/director/lingo/lingo-gr.cpp"
+#line 4352 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 325: /* nonemptyexprlist: nonemptyexprlist ',' expr  */
-#line 843 "engines/director/lingo/lingo-gr.y"
+  case 326: /* nonemptyexprlist: nonemptyexprlist ',' expr  */
+#line 844 "engines/director/lingo/lingo-gr.y"
                                                 {
 		(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
 		(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 4358 "engines/director/lingo/lingo-gr.cpp"
+#line 4360 "engines/director/lingo/lingo-gr.cpp"
     break;
 
 
-#line 4362 "engines/director/lingo/lingo-gr.cpp"
+#line 4364 "engines/director/lingo/lingo-gr.cpp"
 
       default: break;
     }
@@ -4557,7 +4559,7 @@ yyreturn:
   return yyresult;
 }
 
-#line 848 "engines/director/lingo/lingo-gr.y"
+#line 849 "engines/director/lingo/lingo-gr.y"
 
 
 int yyreport_syntax_error(const yypcontext_t *ctx) {
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index 328a29cbe5..a459413da2 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -274,6 +274,7 @@ nonemptymethodlist: methodlistline[item]			{
 
 methodlistline: '\n'				{ $$ = nullptr; }
 	| method
+	| tENDCLAUSE endargdef '\n'			{ $$ = nullptr; delete $tENDCLAUSE; } // stray `end`s are allowed for some reason
 	;
 
 // HANDLER




More information about the Scummvm-git-logs mailing list