Add/update copyright notice in all source code files.
[mmh] / sbr / dtimep.c
index a8cce79..e72ec1f 100644 (file)
@@ -261,9 +261,6 @@ static void yy_flex_free YY_PROTO(( void * ));
 
 #define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
 
-
-#define yywrap() 1
-#define YY_SKIP_YYWRAP
 typedef unsigned char YY_CHAR;
 FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
 typedef int yy_state_type;
@@ -285,73 +282,72 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
        *yy_cp = '\0'; \
        yy_c_buf_p = yy_cp;
 
-#define YY_NUM_RULES 39
-#define YY_END_OF_BUFFER 40
-static yyconst short int yy_accept[572] =
+#define YY_NUM_RULES 30
+#define YY_END_OF_BUFFER 31
+static yyconst short int yy_accept[571] =
     {   0,
-        0,    0,   40,   38,   37,   38,   38,   38,   38,   34,
-       34,   34,   34,   34,   34,   34,   34,   34,   38,   35,
-       35,   36,   36,   36,   36,   36,   36,   36,   36,   36,
+        0,    0,   31,   29,   29,   29,   29,   29,   29,   29,
+       29,   29,   29,   29,   29,   29,   29,   29,   29,    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,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,   14,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,   28,
-
-        0,   27,    0,   33,   21,   20,    0,   19,   18,    0,
-        0,   15,   32,   31,    0,   17,   16,    0,    0,    0,
-        0,   23,    0,   22,    0,   26,    0,   25,   24,    0,
-        0,    0,    0,    0,    0,   30,   29,   12,   13,    0,
+        0,    0,    0,    0,    0,   14,    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,   12,   13,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,   26,   25,   19,   18,   17,   16,   15,   28,
+       27,   21,   20,   24,   23,   22,   12,   13,    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,   12,   13,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        9,    9,    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,    0,    0,    0,    0,    9,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    9,
+        9,    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,    0,    0,    0,    0,    9,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        9,   10,   11,    7,    7,    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,    9,
+        7,    7,    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,    7,    0,    0,
+        0,   10,   11,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    7,    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,    7,    0,    0,    0,    0,    0,
+        0,    0,    0,    7,    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,    8,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        8,    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,    6,
-        6,    6,    6,    6,    6,    6,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    5,    0,    5,    0,    0,
-        0,    0,    0,    0,    3,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    6,    6,
+        6,    6,    6,    6,    6,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    5,    0,    5,    0,    0,    0,
+        0,    0,    0,    3,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
-        0,    0,    0,    0,    0,    5,    5,    5,    0,    0,
-        8,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    5,    0,    0,    6,    6,
-        0,    6,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    3,    0,    0,    6,    0,    0,    0,    0,
-        0,    0,    6,    6,    0,    2,    4,    1,    1,    0,
-        6,    0,    0,    0,    1,    0,    0,    1,    2,    4,
-        0
+        0,    0,    0,    0,    5,    5,    5,    0,    0,    8,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    5,    0,    0,    6,    6,    0,
+        6,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    3,    0,    0,    6,    0,    0,    0,    0,    0,
+        0,    6,    6,    0,    2,    4,    1,    1,    0,    6,
+        0,    0,    0,    1,    0,    0,    1,    2,    4,    0
     } ;
 
 static yyconst int yy_ec[256] =
@@ -359,17 +355,17 @@ static yyconst int yy_ec[256] =
         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    2,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    4,    5,    6,    1,    7,    8,    9,    8,
-        8,    8,    8,    8,    8,    8,    8,   10,    1,    1,
-        1,    1,    1,    1,   13,   14,   15,   16,   17,   18,
-       19,   20,   21,   22,   23,   24,   25,   26,   27,   28,
-       29,   30,   31,   32,   33,   34,   35,   29,   36,    1,
-       11,    1,   12,    1,    1,    1,   13,   14,   15,   16,
-
-       17,   18,   19,   20,   21,   22,   23,   24,   25,   26,
-       27,   28,   29,   30,   31,   32,   33,   34,   35,   29,
-       36,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    2,    1,    1,    1,    1,    1,    1,    1,    4,
+        4,    1,    5,    6,    7,    1,    8,    9,   10,    9,
+        9,    9,    9,    9,    9,    9,    9,   11,    1,    1,
+        1,    1,    1,    1,   12,    1,   13,   14,   15,   16,
+       17,   18,    1,   19,    1,    1,   20,   21,   22,   23,
+        1,    1,   24,   25,   26,    1,   27,    1,    1,    1,
+       28,    1,   29,    1,    1,    1,   30,   31,   32,   33,
+
+       34,   16,   35,   36,   37,   19,    1,   38,   39,   40,
+       41,   42,    1,   43,   44,   45,   46,   47,   27,    1,
+       48,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -386,354 +382,363 @@ static yyconst int yy_ec[256] =
         1,    1,    1,    1,    1
     } ;
 
-static yyconst int yy_meta[37] =
+static yyconst int yy_meta[49] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1
     } ;
 
-static yyconst short int yy_base[572] =
+static yyconst short int yy_base[571] =
     {   0,
-        0,    0,  869,  870,  870,   29,   31,   63,   30,   45,
-      837,   31,  850,   44,   24,  841,   50,  870,   61,  870,
-       66,   53,  850,   52,  870,   72,   22,  832,  846,   70,
-       79,   82,   79,  831,   80,   82,  836,   83,   84,   86,
-      829,   87,  827,   88,  118,   98,  119,  845,  829,  824,
-      825,  822,  834,  820,  819,  818,  834,  816,  815,  832,
-      824,  812,  811,  810,  815,  808,  807,   98,   93,  806,
-      811,  804,  801,  802,  801,  800,  799,  798,  801,  802,
-      794,  809,  870,  809,  792,  791,  100,  119,  102,  805,
-      804,   99,  807,  792,  803,  800,  144,  804,  803,  870,
-
-      135,  870,  114,  870,  870,  870,  131,  870,  870,  136,
-       47,  870,  870,  870,  137,  870,  870,  139,  140,  144,
-      812,  870,  153,  870,  159,  870,  152,  870,  870,  158,
-      160,  162,  163,  169,  175,  870,  870,  164,  173,  783,
-      793,  796,  796,  783,  159,  154,  774,  775,  778,  178,
-      182,  794,  793,  194,  779,  771,  776,  767,  202,  797,
-      785,  784,  794,  793,  774,  780,  767,  777,  760,  772,
-      775,  756,  770,  768,  870,  870,  192,  193,  195,  204,
-      197,  196,  205,  206,  782,  214,  212,  203,  228,  232,
-      758,  757,  240,  779,  748,  765,  765,  242,  210,  760,
-
-      759,  233,  762,  747,  758,  755,  735,  740,  767,  732,
-      753,  749,  749,  739,  727,  746,  748,  729,  245,  735,
-      727,  732,  723,  742,  752,  751,  732,  726,  736,  732,
-      250,  253,  723,  722,  255,  744,  263,  743,  727,  713,
-      267,  740,  711,  721,  724,  724,  711,  193,  237,  702,
-      703,  706,  269,  697,  270,  715,  701,  717,  715,  274,
-      715,  691,  710,  269,  273,  723,  692,  709,  709,  691,
-      718,  705,  701,  692,  282,  278,  293,  704,  703,  288,
-      291,  684,  677,  275,  695,  694,  291,  697,  682,  693,
-      690,  286,  223,  303,  304,  307,  308,  309,  310,  704,
-
-      311,  312,  313,  675,  702,  667,  685,  665,  314,  687,
-      321,  329,  697,  681,  667,  660,  678,  664,  679,  333,
-      690,  870,  870,  344,  346,  689,  688,  659,  669,  672,
-      672,  659,  309,  291,  650,  651,  654,  348,  657,  649,
-      654,  645,  664,  674,  673,  654,  648,  658,  654,  668,
-      356,  639,  357,  632,  358,  309,  361,  637,  630,  635,
-      662,  646,  652,  356,  369,  659,  364,  372,  374,  345,
-      366,  373,  377,  380,  382,  383,  658,  388,  384,  386,
-      404,  657,  626,  643,  643,  625,  652,  639,  635,  626,
-      648,  387,  411,  647,  646,  645,  644,  615,  388,  614,
-
-      616,  389,  394,  625,  421,  422,  617,  609,  614,  605,
-      624,  634,  633,  614,  608,  618,  614,  426,  628,  427,
-      627,  611,  597,  590,  608,  594,  609,  612,  399,  619,
-      610,  598,  592,  585,  590,  582,  597,  597,  428,  430,
-      610,  579,  596,  596,  578,  605,  592,  588,  579,  432,
-      435,  444,  573,  566,  571,  598,  582,  439,  441,  582,
-      581,  563,  579,  564,  562,  566,  449,  452,  589,  573,
-      559,  552,  570,  556,  571,  454,  457,  465,  460,  463,
-      582,  581,  580,  551,  570,  468,  566,  565,  547,  563,
-      544,  558,  556,  476,  471,  479,  542,  535,  540,  567,
-
-      551,  481,  565,  483,  485,  493,  495,  503,  564,  498,
-      870,  529,  528,  547,  526,  545,  547,  528,  505,  556,
-      555,  554,  553,  498,  508,  494,  415,  501,  870,  870,
-      473,  870,  469,  419,  417,  405,  511,  391,  381,  513,
-      521,  516,  870,  300,  296,  870,  309,  518,  523,  525,
-      527,  529,  870,  870,  234,  250,  213,  531,  533,  207,
-      870,  535,  537,  539,  541,  543,  545,  870,  870,  870,
-      870
+        0,    0,  907,  908,   37,   52,   55,   78,   24,  872,
+       25,   44,   48,  864,  872,   61,   46,  869,   81,   70,
+       82,   84,  882,   85,   86,  877,   87,  875,   69,   70,
+       72,  860,   79,   82,  854,   84,  852,  109,  111,  127,
+      115,  125,  853,  860,  862,  862,  855,  851,   13,   87,
+      850,  842,  843,  842,  844,  845,  838,  849,  849,  851,
+      838,  854,  853,  852,  851,  850,  849,  848,  847,  846,
+      845,  844,  843,  842,  841,  908,  820,  819,  818,  817,
+      816,  815,  814,  813,  812,  811,  810,  809,  808,  807,
+      127,  135,   92,  817,  816,   51,  819,  807,  815,  812,
+
+      145,  138,  140,  129,  148,  156,  154,  157,  159,  162,
+      843,  163,  168,  170,  171,  174,  176,  177,  178,  186,
+      815,  814,  908,  908,  908,  908,  908,  908,  908,  908,
+      908,  908,  908,  908,  908,  908,  188,  194,  799,  806,
+      808,  808,  798,  147,  147,  790,  791,  793,  197,  205,
+      206,  796,  789,  793,  785,  225,  828,  799,  798,  825,
+      824,  789,  794,  784,  791,  778,  786,  789,  774,  784,
+      782,  787,  786,  908,  908,  199,  172,  197,  208,  179,
+      212,  219,  222,  811,  227,  221,  226,  223,  233,  266,
+      810,  766,  779,  779,  268,  206,  774,  773,  210,  776,
+
+      764,  772,  769,  754,  758,  798,  751,  767,  763,  763,
+      756,  746,  760,  762,  747,  770,  769,  271,  750,  743,
+      747,  739,  754,  781,  780,  745,  741,  748,  744,  277,
+      280,  282,  775,  257,  774,  741,  731,  291,  771,  729,
+      736,  738,  738,  728,  245,  251,  720,  721,  723,  294,
+      716,  295,  729,  719,  731,  729,  296,  729,  710,  724,
+      717,  716,  299,  307,  752,  708,  721,  721,  707,  747,
+      717,  713,  707,  316,  310,  327,  313,  318,  702,  696,
+      292,  709,  708,  258,  711,  699,  707,  704,  304,  228,
+      312,  331,  293,  338,  341,  340,  735,  342,  343,  345,
+
+      693,  733,  686,  699,  684,  346,  701,  701,  700,  347,
+      349,  726,  693,  683,  677,  690,  680,  691,  344,  719,
+      358,  360,  718,  717,  675,  682,  684,  684,  674,  323,
+      330,  666,  667,  669,  378,  672,  665,  669,  661,  676,
+      703,  702,  667,  663,  670,  666,  697,  375,  655,  377,
+      649,  908,  908,  383,  385,  387,  653,  647,  651,  691,
+      658,  680,  389,  398,  688,  392,  401,  369,  363,  348,
+      389,  402,  403,  406,  413,  687,  410,  411,  414,  418,
+      686,  642,  655,  655,  641,  681,  651,  647,  641,  677,
+      415,  420,  676,  675,  674,  673,  631,  424,  630,  631,
+
+      389,  221,  637,  444,  445,  632,  625,  629,  621,  636,
+      663,  662,  627,  623,  630,  626,  447,  657,  456,  656,
+      623,  613,  607,  620,  610,  621,  640,  429,  648,  638,
+      611,  607,  601,  605,  598,  609,  609,  451,  454,  639,
+      595,  608,  608,  594,  634,  604,  600,  594,  456,  459,
+      469,  589,  583,  587,  627,  594,  463,  465,  594,  593,
+      579,  591,  580,  578,  581,  474,  478,  618,  585,  575,
+      569,  582,  572,  583,  480,  483,  492,  486,  490,  611,
+      610,  609,  567,  598,  495,  578,  577,  563,  575,  560,
+      570,  568,  504,  498,  507,  558,  552,  556,  596,  563,
+
+      509,  594,  511,  513,  522,  524,  533,  593,  527,  908,
+      546,  545,  559,  543,  557,  559,  544,  535,  585,  584,
+      583,  525,  482,  538,  475,  527,  531,  908,  908,  485,
+      908,  482,  462,  464,  474,  541,  451,  430,  543,  552,
+      546,  908,  388,  378,  908,  220,  548,  550,  554,  556,
+      558,  908,  908,  190,  111,   64,  560,  562,   54,  908,
+      564,  566,  568,  570,  572,  574,  908,  908,  908,  908
     } ;
 
-static yyconst short int yy_def[572] =
+static yyconst short int yy_def[571] =
     {   0,
-      571,    1,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-        0
+      570,    1,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,    0
     } ;
 
-static yyconst short int yy_nxt[907] =
+static yyconst short int yy_nxt[957] =
     {   0,
-        4,    4,    5,    6,    4,    7,    4,    8,    8,    4,
-        9,    4,   10,   11,   12,   13,   14,   15,   16,   17,
-       18,   19,   20,   20,   21,   22,   23,   24,   25,   25,
-       26,   27,   28,   25,   29,   30,   31,   31,   32,   32,
-       60,   81,   48,   33,   34,   35,   55,   36,  159,   37,
-       38,  160,   39,   61,   82,   40,   41,   49,   42,   58,
-       50,   56,  161,   43,   45,   63,   44,   76,   46,   46,
-       47,   47,   51,   65,   59,   52,   66,   53,   69,   73,
-       64,   70,   77,   74,   78,   85,   87,   87,   79,   88,
-       88,   67,   71,   68,   50,   55,   72,   58,   63,   66,
-
-       86,   70,   76,   85,   80,   97,   97,  138,  138,   52,
-       56,  144,   59,   64,   67,  154,   72,   77,   86,   45,
-       45,  118,  120,  119,   46,   46,  139,  139,  121,  140,
-       89,  145,  154,   90,  141,   91,  154,  154,  154,   92,
-      154,  154,   93,   94,   95,  154,  156,  157,   96,  150,
-      150,  151,  151,  154,  159,  155,  164,  160,  165,  159,
-      154,  154,  160,  159,  159,  158,  160,  160,  166,  162,
-      159,  175,  175,  160,  163,  167,  159,  171,  168,  160,
-      176,  176,  182,  184,  183,  189,  190,  150,  150,  185,
-      169,  170,  172,  219,  219,  154,  219,  219,  219,  173,
-
-      174,  193,  193,  159,  219,  219,  219,  219,  541,  198,
-      198,  222,  220,  219,  199,  219,  297,  200,  298,  201,
-      227,  226,  563,  202,  338,  221,  203,  204,  205,  224,
-      228,  225,  206,  223,  230,  231,  231,  243,  229,  232,
-      232,  235,  244,  241,  236,  247,  219,  237,  237,  242,
-      242,  275,  264,  265,  275,  340,  235,  276,  276,  562,
-      277,  277,  280,  281,  235,  248,  299,  236,  241,  561,
-      159,  159,  300,  160,  160,  159,  311,  311,  160,  284,
-      312,  312,  285,  275,  286,  321,  321,  338,  287,  320,
-      320,  288,  289,  290,  275,  324,  324,  291,  325,  325,
-
-      321,  321,  328,  332,  338,  338,  339,  329,  338,  338,
-      338,  338,  338,  338,  338,  159,  394,  394,  160,  341,
-      376,  555,  355,  333,  346,  345,  377,  347,  356,  356,
-      355,  554,  374,  342,  375,  553,  357,  357,  348,  343,
-      363,  363,  364,  344,  349,  365,  406,  365,  366,  338,
-      366,  367,  367,  368,  368,  381,  381,  159,  159,  355,
-      160,  160,  355,  399,  399,  393,  393,  406,  394,  394,
-      365,  405,  405,  365,  406,  406,  366,  408,  406,  405,
-      405,  406,  409,  406,  406,  406,  400,  406,  159,  406,
-      540,  160,  406,  401,  407,  431,  431,  414,  413,  402,
-
-      403,  434,  410,  404,  415,  418,  458,  458,  419,  411,
-      416,  420,  420,  436,  537,  412,  541,  417,  428,  428,
-      429,  435,  365,  406,  542,  366,  437,  418,  418,  439,
-      440,  419,  547,  450,  451,  467,  467,  468,  468,  476,
-      476,  477,  478,  478,  477,  452,  485,  485,  486,  486,
-      494,  479,  480,  494,  546,  502,  495,  495,  503,  496,
-      496,  504,  504,  477,  505,  505,  502,  507,  507,  503,
-      508,  508,  506,  506,  477,  511,  511,  494,  520,  520,
-      494,  545,  502,  519,  519,  544,  520,  520,  525,  525,
-      526,  526,  527,  527,  502,  502,  502,  503,  503,  503,
-
-      526,  526,  504,  504,  502,  528,  528,  503,  543,  543,
-      506,  506,  536,  536,  537,  539,  539,  540,  548,  548,
-      549,  549,  541,  552,  552,  556,  556,  538,  550,  551,
-      557,  557,  558,  558,  559,  559,  560,  560,  564,  564,
-      565,  565,  566,  566,  567,  567,  568,  568,  568,  568,
-      569,  569,  570,  570,  406,  406,  406,  494,  535,  534,
-      533,  532,  531,  530,  529,  338,  502,  524,  406,  523,
-      522,  521,  518,  517,  516,  515,  514,  513,  512,  510,
-      509,  338,  338,  338,  501,  500,  499,  377,  498,  497,
-      406,  493,  492,  491,  490,  489,  488,  487,  484,  338,
-
-      483,  482,  481,  475,  474,  473,  406,  472,  471,  470,
-      469,  406,  466,  465,  464,  463,  462,  461,  460,  459,
-      219,  429,  457,  456,  455,  300,  454,  453,  338,  452,
-      449,  448,  447,  446,  406,  406,  445,  444,  443,  442,
-      441,  438,  433,  432,  430,  219,  219,  219,  355,  154,
-      427,  426,  425,  338,  424,  423,  422,  421,  338,  406,
-      365,  364,  398,  219,  397,  396,  395,  392,  391,  154,
-      390,  389,  388,  387,  338,  338,  386,  385,  384,  383,
-      382,  380,  379,  378,  373,  372,  371,  370,  369,  154,
-      154,  275,  362,  361,  360,  185,  359,  358,  219,  354,
-
-      353,  352,  351,  154,  350,  338,  337,  336,  335,  334,
-      331,  330,  327,  326,  323,  322,  319,  318,  317,  219,
-      316,  315,  314,  313,  219,  310,  309,  308,  307,  306,
-      305,  304,  121,  303,  302,  301,  296,  295,  294,  293,
-      292,  241,  283,  282,  154,  235,  279,  278,  274,  273,
-      272,  271,  219,  219,  270,  269,  268,  267,  266,  263,
-      262,  261,  260,  259,  258,  257,  256,  255,  154,  254,
-      253,  252,  251,  250,  249,  246,  245,  240,  239,  238,
-      154,  234,  233,  219,  218,  217,  216,  215,  214,  213,
-      212,  211,  210,  209,  154,  154,  208,  207,  159,  197,
-
-      196,  195,  194,  192,  191,  188,  187,  186,  181,  180,
-      179,  178,  177,  154,  153,  152,  149,  148,  147,  146,
-      143,  142,  137,  136,  135,  134,  133,  132,  131,  130,
-      129,  128,  127,  126,  125,  124,  123,  122,  117,  116,
-      115,  114,  113,  112,  111,  110,  109,  108,  107,  106,
-      105,  104,  103,  102,  101,  100,   99,   98,   83,   74,
-       62,   54,   84,   83,   75,   62,   57,   54,  571,    3,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-
-      571,  571,  571,  571,  571,  571
+        4,    5,    5,    5,    6,    4,    7,    4,    8,    8,
+        4,    9,    4,   10,    4,   11,    4,    4,   12,   13,
+       14,   15,    4,   16,   17,    4,   18,   19,    4,    9,
+        4,    4,   10,    4,    4,    4,    4,    4,   13,   14,
+       15,    4,    4,   16,   17,    4,    4,    4,   20,   21,
+      108,   22,  109,   23,   24,  540,   25,   26,   46,   27,
+       38,   38,   28,   39,   39,   43,   29,   47,   30,   44,
+       31,   32,   33,   48,  562,   34,   35,   50,   36,   40,
+      143,   57,   37,   62,   41,   41,   42,   42,   51,   49,
+       54,   58,   60,   63,   55,   64,  144,   66,   69,   71,
+
+       74,   77,   79,   61,   81,   65,   56,   67,   70,   72,
+       75,   84,   78,   80,   86,   82,   89,   91,   91,   92,
+       92,  561,   85,  101,  101,   87,   40,   90,   40,  110,
+      151,   41,   41,  139,  111,  137,  137,  140,   93,  151,
+       94,  151,   95,  138,  138,   96,   97,   98,   99,  151,
+      100,  149,  149,  150,  150,  151,   93,  156,  151,   94,
+      151,  157,  154,  151,  156,   97,   98,   99,  157,  151,
+      100,  151,  156,  218,  152,  151,  157,  156,  156,  156,
+      218,  157,  157,  157,  181,  153,  182,  156,  158,  183,
+      155,  157,  161,  162,  184,  163,  174,  174,  218,  159,
+
+      218,  164,  175,  175,  160,  188,  189,  151,  168,  218,
+      165,  149,  149,  218,  190,  190,  166,  220,  167,  169,
+      218,  170,  218,  218,  223,  171,  156,  218,  218,  335,
+      221,  230,  230,  195,  195,  219,  196,  560,  197,  244,
+      198,  231,  231,  199,  200,  201,  202,  240,  203,  554,
+      222,  241,  225,  226,  196,  245,  435,  197,  232,  224,
+      227,  228,  233,  200,  201,  202,  436,  232,  203,  238,
+      229,  233,  218,  337,  234,  234,  239,  239,  274,  263,
+      264,  274,  294,  232,  295,  275,  275,  329,  276,  276,
+      277,  278,  238,  296,  335,  156,  156,  156,  297,  157,
+
+      157,  157,  281,  330,  282,  335,  283,  310,  310,  284,
+      285,  286,  287,  335,  288,  311,  311,  274,  320,  320,
+      281,  321,  321,  282,  319,  319,  322,  322,  274,  285,
+      286,  287,  335,  325,  288,  320,  320,  326,  340,  335,
+      336,  335,  335,  335,  335,  338,  335,  156,  354,  405,
+      354,  157,  362,  362,  363,  355,  355,  356,  356,  364,
+      373,  364,  374,  365,  405,  365,  366,  366,  367,  367,
+      405,  343,  375,  339,  342,  344,  156,  376,  156,  335,
+      157,  408,  157,  345,  354,  341,  380,  380,  354,  346,
+      405,  392,  392,  393,  393,  393,  393,  398,  398,  364,
+
+      404,  404,  364,  405,  405,  406,  365,  405,  407,  404,
+      404,  405,  405,  399,  405,  405,  156,  400,  433,  417,
+      157,  401,  402,  418,  403,  553,  419,  419,  427,  427,
+      428,  409,  430,  430,  434,  552,  400,  457,  457,  412,
+      539,  401,  402,  414,  413,  364,  405,  410,  417,  365,
+      411,  415,  405,  438,  439,  449,  450,  417,  416,  466,
+      466,  418,  467,  467,  475,  475,  476,  477,  477,  476,
+      451,  484,  484,  485,  485,  493,  501,  478,  479,  493,
+      502,  501,  494,  494,  536,  502,  495,  495,  503,  503,
+      476,  504,  504,  501,  506,  506,  546,  502,  507,  507,
+
+      505,  505,  476,  510,  510,  493,  519,  519,  493,  545,
+      501,  544,  518,  518,  543,  519,  519,  524,  524,  525,
+      525,  526,  526,  501,  537,  501,  405,  502,  540,  502,
+      525,  525,  503,  503,  501,  527,  527,  541,  502,  542,
+      542,  505,  505,  535,  535,  536,  538,  538,  539,  547,
+      547,  548,  548,  540,  551,  551,  555,  555,  556,  556,
+      549,  550,  557,  557,  558,  558,  559,  559,  563,  563,
+      564,  564,  565,  565,  566,  566,  567,  567,  567,  567,
+      568,  568,  569,  569,  405,  405,  493,  534,  533,  532,
+      531,  530,  529,  528,  335,  501,  523,  405,  522,  521,
+
+      520,  517,  516,  515,  514,  513,  512,  511,  509,  508,
+      335,  335,  335,  500,  499,  498,  376,  497,  496,  405,
+      492,  491,  490,  489,  488,  487,  486,  483,  335,  482,
+      481,  480,  474,  473,  472,  405,  471,  470,  469,  468,
+      405,  465,  464,  463,  462,  461,  460,  459,  458,  218,
+      428,  456,  455,  454,  297,  453,  452,  335,  451,  448,
+      447,  446,  445,  405,  405,  444,  443,  442,  441,  440,
+      437,  432,  431,  429,  218,  218,  218,  354,  151,  426,
+      425,  424,  335,  423,  422,  421,  420,  335,  405,  364,
+      363,  397,  218,  396,  395,  394,  391,  390,  151,  389,
+
+      388,  387,  386,  335,  335,  385,  384,  383,  382,  381,
+      379,  378,  377,  372,  371,  370,  369,  368,  151,  151,
+      274,  361,  360,  359,  184,  358,  357,  218,  353,  352,
+      351,  350,  349,  348,  151,  347,  335,  334,  333,  332,
+      331,  328,  327,  324,  323,  318,  317,  316,  218,  315,
+      314,  313,  312,  218,  309,  308,  307,  306,  305,  304,
+      303,  302,  301,  111,  300,  299,  298,  293,  292,  291,
+      290,  289,  238,  280,  279,  151,  232,  273,  272,  271,
+      270,  218,  218,  269,  268,  267,  266,  265,  262,  261,
+      260,  259,  258,  257,  256,  255,  254,  253,  252,  151,
+
+      251,  250,  249,  248,  247,  246,  243,  242,  237,  236,
+      235,  151,  218,  217,  216,  215,  214,  213,  212,  211,
+      210,  209,  208,  207,  206,  151,  151,  205,  204,  156,
+      194,  193,  192,  191,  187,  186,  185,  180,  179,  178,
+      177,  176,  173,  172,  151,  148,  147,  146,  145,  142,
+      141,  136,  135,  134,  133,  132,  131,  130,  129,  128,
+      127,  126,  125,  124,  123,  136,  135,  134,  133,  132,
+      131,  130,  129,  128,  127,  126,  125,  124,  123,  122,
+      121,  120,  119,  118,  117,  116,  115,  114,  113,  112,
+      107,  106,  105,  104,  103,  102,   76,   88,   83,   76,
+
+       73,   68,   59,   53,   52,   45,  570,    3,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570
     } ;
 
-static yyconst short int yy_chk[907] =
+static yyconst short int yy_chk[957] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    6,    6,    7,    7,
-       15,   27,    9,    7,    7,    7,   12,    7,  111,    7,
-        7,  111,    7,   15,   27,    7,    7,    9,    7,   14,
-       10,   12,  111,    7,    8,   17,    7,   24,    8,    8,
-        8,    8,   10,   19,   14,   10,   19,   10,   21,   22,
-       17,   21,   24,   22,   26,   30,   31,   31,   26,   32,
-       32,   19,   21,   19,   33,   35,   21,   36,   38,   39,
-
-       30,   40,   42,   44,   26,   46,   46,   87,   87,   33,
-       35,   92,   36,   38,   39,  103,   40,   42,   44,   45,
-       47,   68,   69,   68,   47,   47,   88,   88,   69,   89,
-       45,   92,  107,   45,   89,   45,  101,  110,  115,   45,
-      118,  119,   45,   45,   45,  120,  103,  107,   45,   97,
-       97,   97,   97,  127,  123,  101,  119,  123,  120,  130,
-      125,  131,  130,  132,  133,  110,  132,  133,  123,  115,
-      134,  138,  138,  134,  118,  125,  135,  132,  127,  135,
-      139,  139,  145,  146,  145,  150,  150,  151,  151,  146,
-      130,  131,  133,  177,  178,  154,  179,  182,  181,  134,
-
-      135,  154,  154,  159,  188,  180,  183,  184,  560,  159,
-      159,  179,  177,  187,  159,  186,  248,  159,  248,  159,
-      184,  183,  557,  159,  293,  178,  159,  159,  159,  181,
-      186,  182,  159,  180,  188,  189,  189,  199,  187,  190,
-      190,  193,  199,  198,  193,  202,  219,  193,  193,  198,
-      198,  231,  219,  219,  232,  293,  235,  231,  231,  556,
-      232,  232,  235,  235,  237,  202,  249,  237,  241,  555,
-      253,  255,  249,  253,  255,  260,  264,  264,  260,  241,
-      265,  265,  241,  275,  241,  276,  276,  292,  241,  275,
-      275,  241,  241,  241,  277,  280,  280,  241,  281,  281,
-
-      277,  277,  284,  287,  294,  295,  292,  284,  296,  297,
-      298,  299,  301,  302,  303,  309,  356,  356,  309,  294,
-      334,  547,  311,  287,  299,  298,  334,  301,  311,  311,
-      312,  545,  333,  295,  333,  544,  312,  312,  302,  296,
-      320,  320,  320,  297,  303,  324,  370,  325,  324,  338,
-      325,  324,  324,  325,  325,  338,  338,  351,  353,  355,
-      351,  353,  357,  364,  364,  355,  355,  371,  357,  357,
-      365,  367,  367,  368,  372,  369,  368,  370,  373,  368,
-      368,  374,  371,  375,  376,  379,  365,  380,  392,  378,
-      539,  392,  538,  365,  369,  399,  399,  376,  375,  365,
-
-      365,  402,  372,  365,  378,  381,  429,  429,  381,  373,
-      379,  381,  381,  403,  536,  374,  527,  380,  393,  393,
-      393,  402,  405,  406,  527,  405,  403,  418,  420,  406,
-      406,  420,  535,  418,  418,  439,  439,  440,  440,  450,
-      450,  450,  451,  451,  451,  452,  458,  458,  459,  459,
-      467,  452,  452,  468,  534,  476,  467,  467,  476,  468,
-      468,  476,  476,  476,  477,  477,  478,  479,  479,  478,
-      480,  480,  478,  478,  478,  486,  486,  494,  495,  495,
-      496,  533,  502,  494,  494,  531,  496,  496,  502,  502,
-      504,  504,  505,  505,  506,  526,  507,  506,  526,  507,
-
-      506,  506,  507,  507,  508,  510,  510,  508,  528,  528,
-      508,  508,  519,  519,  519,  525,  525,  525,  537,  537,
-      540,  540,  541,  542,  542,  548,  548,  524,  541,  541,
-      549,  549,  550,  550,  551,  551,  552,  552,  558,  558,
-      559,  559,  562,  562,  563,  563,  564,  564,  565,  565,
-      566,  566,  567,  567,  523,  522,  521,  520,  518,  517,
-      516,  515,  514,  513,  512,  509,  503,  501,  500,  499,
-      498,  497,  493,  492,  491,  490,  489,  488,  487,  485,
-      484,  483,  482,  481,  475,  474,  473,  472,  471,  470,
-      469,  466,  465,  464,  463,  462,  461,  460,  457,  456,
-
-      455,  454,  453,  449,  448,  447,  446,  445,  444,  443,
-      442,  441,  438,  437,  436,  435,  434,  433,  432,  431,
-      430,  428,  427,  426,  425,  424,  423,  422,  421,  419,
-      417,  416,  415,  414,  413,  412,  411,  410,  409,  408,
-      407,  404,  401,  400,  398,  397,  396,  395,  394,  391,
-      390,  389,  388,  387,  386,  385,  384,  383,  382,  377,
-      366,  363,  362,  361,  360,  359,  358,  354,  352,  350,
-      349,  348,  347,  346,  345,  344,  343,  342,  341,  340,
-      339,  337,  336,  335,  332,  331,  330,  329,  328,  327,
-      326,  321,  319,  318,  317,  316,  315,  314,  313,  310,
-
-      308,  307,  306,  305,  304,  300,  291,  290,  289,  288,
-      286,  285,  283,  282,  279,  278,  274,  273,  272,  271,
-      270,  269,  268,  267,  266,  263,  262,  261,  259,  258,
-      257,  256,  254,  252,  251,  250,  247,  246,  245,  244,
-      243,  242,  240,  239,  238,  236,  234,  233,  230,  229,
-      228,  227,  226,  225,  224,  223,  222,  221,  220,  218,
-      217,  216,  215,  214,  213,  212,  211,  210,  209,  208,
-      207,  206,  205,  204,  203,  201,  200,  197,  196,  195,
-      194,  192,  191,  185,  174,  173,  172,  171,  170,  169,
-      168,  167,  166,  165,  164,  163,  162,  161,  160,  158,
-
-      157,  156,  155,  153,  152,  149,  148,  147,  144,  143,
-      142,  141,  140,  121,   99,   98,   96,   95,   94,   93,
-       91,   90,   86,   85,   84,   82,   81,   80,   79,   78,
-       77,   76,   75,   74,   73,   72,   71,   70,   67,   66,
-       65,   64,   63,   62,   61,   60,   59,   58,   57,   56,
-       55,   54,   53,   52,   51,   50,   49,   48,   43,   41,
-       37,   34,   29,   28,   23,   16,   13,   11,    3,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
-
-      571,  571,  571,  571,  571,  571
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    5,    5,
+       49,    5,   49,    5,    5,  559,    5,    5,   11,    5,
+        6,    6,    5,    7,    7,    9,    5,   11,    5,    9,
+        5,    5,    5,   12,  556,    5,    5,   13,    5,    8,
+       96,   17,    5,   20,    8,    8,    8,    8,   13,   12,
+       16,   17,   19,   20,   16,   21,   96,   22,   24,   25,
+
+       27,   29,   30,   19,   31,   21,   16,   22,   24,   25,
+       27,   33,   29,   30,   34,   31,   36,   38,   38,   39,
+       39,  555,   33,   41,   41,   34,   42,   36,   40,   50,
+      104,   42,   42,   93,   50,   91,   91,   93,   40,  102,
+       40,  103,   40,   92,   92,   40,   40,   40,   40,  105,
+       40,  101,  101,  101,  101,  107,   40,  106,  108,   40,
+      109,  106,  104,  110,  112,   40,   40,   40,  112,  113,
+       40,  114,  115,  177,  102,  116,  115,  117,  118,  119,
+      180,  117,  118,  119,  144,  103,  144,  120,  106,  145,
+      105,  120,  109,  110,  145,  112,  137,  137,  178,  107,
+
+      176,  113,  138,  138,  108,  149,  149,  151,  117,  179,
+      114,  150,  150,  181,  151,  151,  115,  177,  116,  118,
+      182,  119,  186,  183,  180,  120,  156,  187,  185,  290,
+      178,  188,  188,  156,  156,  176,  156,  554,  156,  199,
+      156,  189,  189,  156,  156,  156,  156,  196,  156,  546,
+      179,  196,  182,  183,  156,  199,  402,  156,  234,  181,
+      185,  186,  234,  156,  156,  156,  402,  190,  156,  195,
+      187,  190,  218,  290,  190,  190,  195,  195,  230,  218,
+      218,  231,  245,  232,  245,  230,  230,  284,  231,  231,
+      232,  232,  238,  246,  293,  250,  252,  257,  246,  250,
+
+      252,  257,  238,  284,  238,  289,  238,  263,  263,  238,
+      238,  238,  238,  291,  238,  264,  264,  274,  275,  275,
+      238,  277,  277,  238,  274,  274,  278,  278,  276,  238,
+      238,  238,  292,  281,  238,  276,  276,  281,  293,  294,
+      289,  296,  295,  298,  299,  291,  300,  306,  310,  370,
+      311,  306,  319,  319,  319,  310,  310,  311,  311,  321,
+      330,  322,  330,  321,  369,  322,  321,  321,  322,  322,
+      368,  296,  331,  292,  295,  298,  348,  331,  350,  335,
+      348,  370,  350,  299,  354,  294,  335,  335,  356,  300,
+      371,  354,  354,  355,  355,  356,  356,  363,  363,  364,
+
+      366,  366,  367,  372,  373,  368,  367,  374,  369,  367,
+      367,  377,  378,  364,  375,  379,  391,  364,  401,  380,
+      391,  364,  364,  380,  364,  544,  380,  380,  392,  392,
+      392,  371,  398,  398,  401,  543,  364,  428,  428,  374,
+      538,  364,  364,  377,  375,  404,  405,  372,  417,  404,
+      373,  378,  537,  405,  405,  417,  417,  419,  379,  438,
+      438,  419,  439,  439,  449,  449,  449,  450,  450,  450,
+      451,  457,  457,  458,  458,  466,  525,  451,  451,  467,
+      525,  475,  466,  466,  535,  475,  467,  467,  475,  475,
+      475,  476,  476,  477,  478,  478,  534,  477,  479,  479,
+
+      477,  477,  477,  485,  485,  493,  494,  494,  495,  533,
+      501,  532,  493,  493,  530,  495,  495,  501,  501,  503,
+      503,  504,  504,  505,  523,  506,  522,  505,  526,  506,
+      505,  505,  506,  506,  507,  509,  509,  526,  507,  527,
+      527,  507,  507,  518,  518,  518,  524,  524,  524,  536,
+      536,  539,  539,  540,  541,  541,  547,  547,  548,  548,
+      540,  540,  549,  549,  550,  550,  551,  551,  557,  557,
+      558,  558,  561,  561,  562,  562,  563,  563,  564,  564,
+      565,  565,  566,  566,  521,  520,  519,  517,  516,  515,
+      514,  513,  512,  511,  508,  502,  500,  499,  498,  497,
+
+      496,  492,  491,  490,  489,  488,  487,  486,  484,  483,
+      482,  481,  480,  474,  473,  472,  471,  470,  469,  468,
+      465,  464,  463,  462,  461,  460,  459,  456,  455,  454,
+      453,  452,  448,  447,  446,  445,  444,  443,  442,  441,
+      440,  437,  436,  435,  434,  433,  432,  431,  430,  429,
+      427,  426,  425,  424,  423,  422,  421,  420,  418,  416,
+      415,  414,  413,  412,  411,  410,  409,  408,  407,  406,
+      403,  400,  399,  397,  396,  395,  394,  393,  390,  389,
+      388,  387,  386,  385,  384,  383,  382,  381,  376,  365,
+      362,  361,  360,  359,  358,  357,  351,  349,  347,  346,
+
+      345,  344,  343,  342,  341,  340,  339,  338,  337,  336,
+      334,  333,  332,  329,  328,  327,  326,  325,  324,  323,
+      320,  318,  317,  316,  315,  314,  313,  312,  309,  308,
+      307,  305,  304,  303,  302,  301,  297,  288,  287,  286,
+      285,  283,  282,  280,  279,  273,  272,  271,  270,  269,
+      268,  267,  266,  265,  262,  261,  260,  259,  258,  256,
+      255,  254,  253,  251,  249,  248,  247,  244,  243,  242,
+      241,  240,  239,  237,  236,  235,  233,  229,  228,  227,
+      226,  225,  224,  223,  222,  221,  220,  219,  217,  216,
+      215,  214,  213,  212,  211,  210,  209,  208,  207,  206,
+
+      205,  204,  203,  202,  201,  200,  198,  197,  194,  193,
+      192,  191,  184,  173,  172,  171,  170,  169,  168,  167,
+      166,  165,  164,  163,  162,  161,  160,  159,  158,  157,
+      155,  154,  153,  152,  148,  147,  146,  143,  142,  141,
+      140,  139,  122,  121,  111,  100,   99,   98,   97,   95,
+       94,   90,   89,   88,   87,   86,   85,   84,   83,   82,
+       81,   80,   79,   78,   77,   75,   74,   73,   72,   71,
+       70,   69,   68,   67,   66,   65,   64,   63,   62,   61,
+       60,   59,   58,   57,   56,   55,   54,   53,   52,   51,
+       48,   47,   46,   45,   44,   43,   37,   35,   32,   28,
+
+       26,   23,   18,   15,   14,   10,    3,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+      570,  570,  570,  570,  570,  570
     } ;
 
 static yy_state_type yy_last_accepting_state;
@@ -749,20 +754,39 @@ static char *yy_last_accepting_cpos;
 char *yytext;
 #line 1 "dtimep.lex"
 #define INITIAL 0
-#line 3 "dtimep.lex"
+#line 2 "dtimep.lex"
 #include <h/nmh.h>
 #include <h/tws.h>
 
+  /* Since we're looking at a string at a time, don't worry about
+   *  wrapping to the next buffer.
+   */
+#define yywrap() 1
+#define YY_SKIP_YYWRAP
+
 #define YY_NO_UNPUT
-#define YY_DECL struct tws * dparsetime(char *lexstr)
+
+  /* This is the tricky thing that makes this function cool.  We
+   *  replace the traditional int yylex(void) declaration with our
+   *  dparsetime() declaration, essentially piggy-backing off the
+   *  utility of the yylex() function and adding what we need to make
+   *  the parsing function useful to us.
+   */
+#define YY_DECL struct tws *dparsetime(char *lexstr)
+
+  /* yyerminate() is called after the input string is matched to
+   * completion (actually, when the lexer reaches an EOF).  The only
+   * thing that really needs to be in this macro function is the
+   * return call, which must be substituted inline into dparsetime.
+   */
 
 #define yyterminate() (void)yy_delete_buffer(lexhandle); \
   if(!(tw.tw_flags & TW_SUCC)) { \
     return (struct tws *)NULL; \
   } \
-  if(tw.tw_year < 1960) \
+  if(tw.tw_year < 1970) \
     tw.tw_year += 1900; \
-  if(tw.tw_year < 1960) \
+  if(tw.tw_year < 1970) \
     tw.tw_year += 100; \
   return(&tw)
 
@@ -814,8 +838,10 @@ static int month_map[] = {
 };
 
 /*
- * Same trick for day-of-week using the hash function
- *  (c1 & 7) + (c2 & 4)
+ * Lookup table for day-of-week using the same hash trick as for above name-of-
+ * month table, but using the first and second character, not second and third.
+ *
+ * Compute index into table using: (day_name[0] & 7) + (day_name[1] & 4)
  */
 static int day_map[] = {
        0,
@@ -832,44 +858,86 @@ static int day_map[] = {
        3       /*11 - Wed */
 };
 
-#define INIT()   { cp = yytext;}
-#define SETWDAY() { cp++; \
-                   tw.tw_wday= day_map[(cp[0] & 7) + (cp[1] & 4)]; \
-                   tw.tw_flags &= ~TW_SDAY; tw.tw_flags |= TW_SEXP; \
-                   SKIPA(); }
-#define SETMON() { cp++; \
-                   tw.tw_mon = month_map[(cp[0] + cp[1]) & 0x1f]; \
-                  SKIPA(); }
+/* The SET* macros will parse for the appropriate field, and leave the
+ * cp pointer at the first character after the desired field. Be
+ * careful with variable-length fields or alpha-num mixes.
+
+ * The SKIP* macros skip over characters of a particular class and
+ * leave cp at the position of the first character that doesn't match
+ * that class. Correspondingly, SKIPTO* skips until it reaches a
+ * character of a particular class.
+ */
+
+#define INIT()       { cp = yytext;} 
+#define SETWDAY()    { tw.tw_wday= day_map[(cp[0] & 7) + (cp[1] & 4)]; \
+                       tw.tw_flags &= ~TW_SDAY; tw.tw_flags |= TW_SEXP; \
+                       SKIPA(); }
+#define SETMON()     { cp++; \
+                       tw.tw_mon = month_map[(cp[0] + cp[1]) & 0x1f]; \
+                      SKIPA(); }
 #define SETMON_NUM() { tw.tw_mon = atoi(cp)-1; \
-                  SKIPD(); }
-#define SETYEAR() { tw.tw_year = atoi(cp); \
-                  SKIPD(); }
-#define SETDAY() { tw.tw_mday = atoi(cp); \
-                   tw.tw_flags |= TW_YES; \
-                  SKIPD(); }
-#define SETTIME() { tw.tw_hour = atoi(cp); \
-                    cp += 2; \
-                    SKIPTOD(); \
-                    tw.tw_min = atoi(cp); \
-                    cp += 2; \
-                    if(*cp == ':') { tw.tw_sec = atoi(++cp); SKIPD(); } \
-                    }
-#define SETZONE(x) { tw.tw_zone = ((x)/100)*60+(x)%100; \
-                     tw.tw_flags |= TW_SZEXP; \
-                     SKIPD(); }
-#define SETDST()   { tw.tw_flags |= TW_DST; }
-#define SKIPD()  { while ( isdigit(*cp++) ) ; \
-                      --cp; }
-#define SKIPTOD()  { while ( !isdigit(*cp++) ) ; \
-                      --cp; }
-#define SKIPA()  { while ( isalpha(*cp++) ) ; \
-                      --cp; }
-#define SKIPTOA()  { while ( !isalpha(*cp++) ) ; \
-                      --cp; }
-#define SKIPSP()  { while ( isspace(*cp++) ) ; \
-                      --cp; }
-#define SKIPTOSP()  { while ( !isspace(*cp++) ) ; \
-                      --cp; }
+                      SKIPD(); }
+#define SETYEAR()    { tw.tw_year = atoi(cp); \
+                      SKIPD(); }
+#define SETDAY()     { tw.tw_mday = atoi(cp); \
+                       tw.tw_flags |= TW_YES; \
+                      SKIPD(); }
+#define SETTIME()    { tw.tw_hour = atoi(cp); \
+                       cp += 2; \
+                       SKIPTOD(); \
+                       tw.tw_min = atoi(cp); \
+                       cp += 2; \
+                       if(*cp == ':') { \
+                          tw.tw_sec = atoi(++cp); SKIPD(); } }
+#define SETZONE(x)   { tw.tw_zone = ((x)/100)*60+(x)%100; \
+                       tw.tw_flags |= TW_SZEXP; \
+                       SKIPD(); }
+#define SETDST()     { tw.tw_flags |= TW_DST; }
+#define SKIPD()      { while ( isdigit(*cp++) ) ; \
+                       --cp; }
+#define SKIPTOD()    { while ( !isdigit(*cp++) ) ; \
+                       --cp; }
+#define SKIPA()      { while ( isalpha(*cp++) ) ; \
+                       --cp; }
+#define SKIPTOA()    { while ( !isalpha(*cp++) ) ; \
+                       --cp; }
+#define SKIPSP()     { while ( isspace(*cp++) ) ; \
+                       --cp; }
+#define SKIPTOSP()   { while ( !isspace(*cp++) ) ; \
+                       --cp; }
+
+#ifdef ADJUST_NUMERIC_ONLY_TZ_OFFSETS_WRT_DST
+# ifdef TIME_WITH_SYS_TIME
+#  include <sys/time.h>
+#  include <time.h>
+# else
+#  ifdef HAVE_SYS_TIME_H
+#   include <sys/time.h>
+#  else
+#   include <time.h>
+#  endif
+# endif
+
+static void
+zonehack (struct tws *tw)
+{
+    register struct tm *tm;
+
+    if (dmktime (tw) == (time_t) -1)
+       return;
+
+    tm = localtime (&tw->tw_clock);
+    if (tm->tm_isdst) {
+       tw->tw_flags |= TW_DST;
+       tw->tw_zone -= 60;
+    }
+}
+#endif /* ADJUST_NUMERIC_ONLY_TZ_OFFSETS_WRT_DST */
+/* The year can either be 2 digits, or 4. However, after
+Y2K, we found that some MUA were reporting the year 100, hence
+the middle term here. yyterminate() resolves the actual
+issues with 2-digit years.
+*/
 
 /* Macros after this point can all be overridden by user definitions in
  * section 1.
@@ -1020,16 +1088,19 @@ YY_DECL
        register char *yy_cp = NULL, *yy_bp = NULL;
        register int yy_act;
 
-#line 159 "dtimep.lex"
+#line 223 "dtimep.lex"
 
 
+  /* This section begins the definition of dparsetime().
+     Put here any local variable definitions and initializations */
   
   YY_BUFFER_STATE lexhandle;
 
-  register char *cp;  /* *cp is internal to the lexing function yylex() */
+  register char *cp;
   static struct tws tw; 
 
   memset(&tw,0,sizeof(struct tws));
+
   lexhandle = yy_scan_string(lexstr);
 
 
@@ -1083,13 +1154,13 @@ yy_match:
                        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                                {
                                yy_current_state = (int) yy_def[yy_current_state];
-                               if ( yy_current_state >= 572 )
+                               if ( yy_current_state >= 571 )
                                        yy_c = yy_meta[(unsigned int) yy_c];
                                }
                        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
                        ++yy_cp;
                        }
-               while ( yy_base[yy_current_state] != 870 );
+               while ( yy_base[yy_current_state] != 908 );
 
 yy_find_action:
                yy_act = yy_accept[yy_current_state];
@@ -1117,7 +1188,7 @@ do_action:        /* This label is used only to access EOF actions. */
 
 case 1:
 YY_RULE_SETUP
-#line 171 "dtimep.lex"
+#line 238 "dtimep.lex"
 {
                                      INIT();
                                     SETWDAY();
@@ -1129,11 +1200,11 @@ YY_RULE_SETUP
                                     SETTIME();
                                     SKIPTOD();
                                     SETYEAR();
-                                  }
+                                     }
        YY_BREAK
 case 2:
 YY_RULE_SETUP
-#line 184 "dtimep.lex"
+#line 251 "dtimep.lex"
 {
                                      INIT();
                                     SETWDAY();
@@ -1145,11 +1216,11 @@ YY_RULE_SETUP
                                     SETYEAR();
                                     SKIPTOD();
                                     SETTIME();
-                                  }
+                                     }
        YY_BREAK
 case 3:
 YY_RULE_SETUP
-#line 196 "dtimep.lex"
+#line 263 "dtimep.lex"
 {
                                      INIT();
                                     SETDAY();
@@ -1159,11 +1230,11 @@ YY_RULE_SETUP
                                     SETYEAR();
                                     SKIPTOD();
                                     SETTIME();
-                                  }
+                                     }
        YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 206 "dtimep.lex"
+#line 273 "dtimep.lex"
 {
                                      INIT();
                                     SETWDAY();
@@ -1175,11 +1246,11 @@ YY_RULE_SETUP
                                     SETYEAR();
                                     SKIPTOD();
                                     SETTIME();
-                                  }
+                                     }
        YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 218 "dtimep.lex"
+#line 285 "dtimep.lex"
 {
                                      INIT();
                                     SETWDAY();
@@ -1189,11 +1260,11 @@ YY_RULE_SETUP
                                     SETDAY();
                                     SKIPTOD();
                                     SETYEAR();
-                                  }
+                                     }
        YY_BREAK
 case 6:
 YY_RULE_SETUP
-#line 228 "dtimep.lex"
+#line 295 "dtimep.lex"
 {
                                      INIT();
                                     SETMON();
@@ -1203,11 +1274,11 @@ YY_RULE_SETUP
                                     SETYEAR();
                                     SKIPTOA();
                                     SETWDAY();
-                                  }
+                                     }
        YY_BREAK
 case 7:
 YY_RULE_SETUP
-#line 238 "dtimep.lex"
+#line 305 "dtimep.lex"
 {
                                      INIT();
                                     SETMON();
@@ -1215,11 +1286,11 @@ YY_RULE_SETUP
                                     SETDAY();
                                     SKIPTOD();
                                     SETYEAR();
-                                  }
+                                     }
        YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 246 "dtimep.lex"
+#line 313 "dtimep.lex"
 {
                                      INIT();
                                     if(europeandate) {
@@ -1237,11 +1308,11 @@ YY_RULE_SETUP
                                     SETYEAR();
                                     SKIPTOD();
                                     SETTIME();
-                                  }
+                                     }
        YY_BREAK
 case 9:
 YY_RULE_SETUP
-#line 264 "dtimep.lex"
+#line 331 "dtimep.lex"
 {
                                      INIT();
                                     if(europeandate) {
@@ -1257,173 +1328,134 @@ YY_RULE_SETUP
                                     }
                                     SKIPTOD();
                                     SETYEAR();
-                                  }
+                                     }
        YY_BREAK
 case 10:
 YY_RULE_SETUP
-#line 281 "dtimep.lex"
+#line 348 "dtimep.lex"
 
        YY_BREAK
 case 11:
 YY_RULE_SETUP
-#line 282 "dtimep.lex"
+#line 349 "dtimep.lex"
 tw.tw_hour += 12;
        YY_BREAK
 case 12:
 YY_RULE_SETUP
-#line 284 "dtimep.lex"
+#line 351 "dtimep.lex"
 {
                                     INIT();
                                     SKIPTOD();
                                     SETZONE(atoi(cp));
-                                }
+#ifdef ADJUST_NUMERIC_ONLY_TZ_OFFSETS_WRT_DST
+                                   zonehack (&tw);
+#endif /* ADJUST_NUMERIC_ONLY_TZ_OFFSETS_WRT_DST */
+                                   yyterminate();
+                                    }
        YY_BREAK
 case 13:
 YY_RULE_SETUP
-#line 289 "dtimep.lex"
+#line 360 "dtimep.lex"
 {
                                     INIT();
                                     SKIPTOD();
                                     SETZONE(-atoi(cp));
-                                }
+#ifdef ADJUST_NUMERIC_ONLY_TZ_OFFSETS_WRT_DST
+                                   zonehack (&tw);
+#endif /* ADJUST_NUMERIC_ONLY_TZ_OFFSETS_WRT_DST */
+                                   yyterminate();
+                                   
+                                    }
        YY_BREAK
 case 14:
 YY_RULE_SETUP
-#line 294 "dtimep.lex"
-INIT(); SETZONE(0);
+#line 370 "dtimep.lex"
+INIT(); SETZONE(0); yyterminate();
        YY_BREAK
 case 15:
 YY_RULE_SETUP
-#line 295 "dtimep.lex"
-INIT(); SETZONE(0);
+#line 371 "dtimep.lex"
+INIT(); SETZONE(0); yyterminate();
        YY_BREAK
 case 16:
 YY_RULE_SETUP
-#line 296 "dtimep.lex"
-INIT(); SETZONE(200);
+#line 372 "dtimep.lex"
+INIT(); SETZONE(-500); yyterminate();
        YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 297 "dtimep.lex"
-INIT(); SETDST(); SETZONE(2);
+#line 373 "dtimep.lex"
+{ INIT(); SETDST(); SETZONE(-500);
+                                      yyterminate(); }
        YY_BREAK
 case 18:
 YY_RULE_SETUP
-#line 298 "dtimep.lex"
-INIT(); SETZONE(-500);
+#line 375 "dtimep.lex"
+INIT(); SETZONE(-600); yyterminate();
        YY_BREAK
 case 19:
 YY_RULE_SETUP
-#line 299 "dtimep.lex"
-INIT(); SETDST(); SETZONE(-500);
+#line 376 "dtimep.lex"
+{ INIT(); SETDST(); SETZONE(-600);
+                                      yyterminate(); }
        YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 300 "dtimep.lex"
-INIT(); SETZONE(-600);
+#line 378 "dtimep.lex"
+INIT(); SETZONE(-700); yyterminate();
        YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 301 "dtimep.lex"
-INIT(); SETDST(); SETZONE(-600);
+#line 379 "dtimep.lex"
+{ INIT(); SETDST(); SETZONE(-700);
+                                      yyterminate(); }
        YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 302 "dtimep.lex"
-INIT(); SETZONE(-700);
+#line 381 "dtimep.lex"
+INIT(); SETZONE(-800); yyterminate();
        YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 303 "dtimep.lex"
-INIT(); SETDST(); SETZONE(-700);
+#line 382 "dtimep.lex"
+{ INIT(); SETDST(); SETZONE(-800);
+                                      yyterminate(); }
        YY_BREAK
 case 24:
 YY_RULE_SETUP
-#line 304 "dtimep.lex"
-INIT(); SETZONE(-800);
+#line 384 "dtimep.lex"
+INIT(); SETZONE(-330); yyterminate();
        YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 305 "dtimep.lex"
-INIT(); SETDST(); SETZONE(-800);
+#line 385 "dtimep.lex"
+INIT(); SETZONE(-400); yyterminate();
        YY_BREAK
 case 26:
 YY_RULE_SETUP
-#line 306 "dtimep.lex"
-INIT(); SETZONE(-330);
+#line 386 "dtimep.lex"
+{ INIT(); SETDST(); SETZONE(-400);
+                                      yyterminate(); }
        YY_BREAK
 case 27:
 YY_RULE_SETUP
-#line 307 "dtimep.lex"
-INIT(); SETZONE(-400);
+#line 388 "dtimep.lex"
+INIT(); SETZONE(-1000); yyterminate();
        YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 308 "dtimep.lex"
-INIT(); SETDST(); SETZONE(-400);
+#line 389 "dtimep.lex"
+{ INIT(); SETDST(); SETZONE(-1000);
+                                      yyterminate(); }
        YY_BREAK
 case 29:
 YY_RULE_SETUP
-#line 309 "dtimep.lex"
-INIT(); SETZONE(-900);
-       YY_BREAK
-case 30:
-YY_RULE_SETUP
-#line 310 "dtimep.lex"
-INIT(); SETDST(); SETZONE(-900);
-       YY_BREAK
-case 31:
-YY_RULE_SETUP
-#line 311 "dtimep.lex"
-INIT(); SETZONE(-1000);
-       YY_BREAK
-case 32:
-YY_RULE_SETUP
-#line 312 "dtimep.lex"
-INIT(); SETDST(); SETZONE(-1000);
-       YY_BREAK
-case 33:
-YY_RULE_SETUP
-#line 313 "dtimep.lex"
-INIT(); SETDST(); SETZONE(-100);
-       YY_BREAK
-case 34:
-YY_RULE_SETUP
-#line 314 "dtimep.lex"
-{
-                                       INIT();
-                                       SETZONE(100*(('a'-1) - tolower(*cp)));
-                       }
-       YY_BREAK
-case 35:
-YY_RULE_SETUP
-#line 318 "dtimep.lex"
-{
-                                       INIT();
-                                       SETZONE(100*('a' - tolower(*cp)));
-                       }
-       YY_BREAK
-case 36:
-YY_RULE_SETUP
-#line 322 "dtimep.lex"
-{
-                                       INIT();
-                                       SETZONE(100*(tolower(*cp) - 'm'));
-                       }
-       YY_BREAK
-case 37:
-YY_RULE_SETUP
-#line 328 "dtimep.lex"
+#line 391 "dtimep.lex"
 
        YY_BREAK
-case 38:
-YY_RULE_SETUP
-#line 329 "dtimep.lex"
-
-       YY_BREAK
-case 39:
+case 30:
 YY_RULE_SETUP
-#line 333 "dtimep.lex"
+#line 392 "dtimep.lex"
 ECHO;
        YY_BREAK
 case YY_STATE_EOF(INITIAL):
@@ -1717,7 +1749,7 @@ static yy_state_type yy_get_previous_state()
                while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                        {
                        yy_current_state = (int) yy_def[yy_current_state];
-                       if ( yy_current_state >= 572 )
+                       if ( yy_current_state >= 571 )
                                yy_c = yy_meta[(unsigned int) yy_c];
                        }
                yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -1752,11 +1784,11 @@ yy_state_type yy_current_state;
        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                {
                yy_current_state = (int) yy_def[yy_current_state];
-               if ( yy_current_state >= 572 )
+               if ( yy_current_state >= 571 )
                        yy_c = yy_meta[(unsigned int) yy_c];
                }
        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-       yy_is_jam = (yy_current_state == 571);
+       yy_is_jam = (yy_current_state == 570);
 
        return yy_is_jam ? 0 : yy_current_state;
        }
@@ -2311,4 +2343,4 @@ int main()
        return 0;
        }
 #endif
-#line 333 "dtimep.lex"
+#line 392 "dtimep.lex"